class lslibdata:
    """class for holding/producing the data required to in problem of
       the LotSizeLib
    required fields:

    MIP DATA
    * T - number of periods (in the MIP/big bucket model)
    * Period - the list 1..T, i.e.range(1,T+1)
    * Prod - list of products
    * Blck - list of blocks
    * Compat[p] - (dict) -> list of compatible blocks for each product 'p'
    * ModelFile - name of the model file in the AMPL syntax
    * ModelFile - name of the data file in the AMPL syntax
    """
    pass

    
            
T=8
P=8
B=1
pp08a = lslibdata()
pp08a.ModelFile = "pp08a.mod"
pp08a.DataFile = "pp08a.dat"
pp08a.T = T
pp08a.Period = range(1,pp08a.T+1)
pp08a.Prod = ["%d" % i for i in range(1,P+1)]
pp08a.Blck = ["%d" % i for i in range(1,B+1)]
pp08a.Compat = {}
for p in pp08a.Prod:
    pp08a.Compat[p] = pp08a.Blck[:]
del T; del P; del B

T=4
P=5
B=1
rgna = lslibdata()
rgna.ModelFile = "rgna.mod"
rgna.DataFile = "rgna.dat"
rgna.T = T
rgna.Period = range(1,rgna.T+1)
rgna.Prod = ["%d" % i for i in range(1,P+1)]
rgna.Blck = ["%d" % i for i in range(1,B+1)]
rgna.Compat = {}
for p in rgna.Prod:
    rgna.Compat[p] = rgna.Blck[:]
del T; del P; del B

T=12
P=20
B=1
set1ch = lslibdata()
set1ch.ModelFile = "set1ch.mod"
set1ch.DataFile = "set1ch.dat"
set1ch.T = T
set1ch.Period = range(1,set1ch.T+1)
set1ch.Prod = ["%d" % i for i in range(1,P+1)]
set1ch.Blck = ["%d" % i for i in range(1,B+1)]
set1ch.Compat = {}
for p in set1ch.Prod:
    set1ch.Compat[p] = set1ch.Blck[:]
del T; del P; del B


T=6
P=7
B=4
vpm2a = lslibdata()
vpm2a.ModelFile = "vpm2a.mod"
vpm2a.DataFile = "vpm2a.dat"
vpm2a.T = T
vpm2a.Period = range(1,vpm2a.T+1)
vpm2a.Prod = ["%d" % i for i in range(1,P+1)]
vpm2a.Blck = ["%d" % i for i in range(1,B+1)]
vpm2a.Compat = {}
for p in vpm2a.Prod:
    vpm2a.Compat[p] = vpm2a.Blck[:]
del T; del P; del B


T=30
P=24
B=1
tr24_30 = lslibdata()
tr24_30.ModelFile = "tr24_30.mod"
tr24_30.DataFile = "tr24_30.dat"
tr24_30.T = T
tr24_30.Period = range(1,tr24_30.T+1)
tr24_30.Prod = ["%d" % i for i in range(1,P+1)]
tr24_30.Blck = ["%d" % i for i in range(1,B+1)]
tr24_30.Compat = {}
for p in tr24_30.Prod:
    tr24_30.Compat[p] = tr24_30.Blck[:]
del T; del P; del B


T=15
P=6
B=1
tr6_15 = lslibdata()
tr6_15.ModelFile = "tr6_15.mod"
tr6_15.DataFile = "tr6_15.dat"
tr6_15.T = T
tr6_15.Period = range(1,tr6_15.T+1)
tr6_15.Prod = ["%d" % i for i in range(1,P+1)]
tr6_15.Blck = ["%d" % i for i in range(1,B+1)]
tr6_15.Compat = {}
for p in tr6_15.Prod:
    tr6_15.Compat[p] = tr6_15.Blck[:]
del T; del P; del B


T=30
P=6
B=1
tr6_30 = lslibdata()
tr6_30.ModelFile = "tr6_30.mod"
tr6_30.DataFile = "tr6_30.dat"
tr6_30.T = T
tr6_30.Period = range(1,tr6_30.T+1)
tr6_30.Prod = ["%d" % i for i in range(1,P+1)]
tr6_30.Blck = ["%d" % i for i in range(1,B+1)]
tr6_30.Compat = {}
for p in tr6_30.Prod:
    tr6_30.Compat[p] = tr6_30.Blck[:]
del T; del P; del B


T=30
P=12
B=1
tr12_30 = lslibdata()
tr12_30.ModelFile = "tr12_30.mod"
tr12_30.DataFile = "tr12_30.dat"
tr12_30.T = T
tr12_30.Period = range(1,tr12_30.T+1)
tr12_30.Prod = ["%d" % i for i in range(1,P+1)]
tr12_30.Blck = ["%d" % i for i in range(1,B+1)]
tr12_30.Compat = {}
for p in tr12_30.Prod:
    tr12_30.Compat[p] = tr12_30.Blck[:]
del T; del P; del B
