psr-factory 4.1.0b2__py3-none-win_amd64.whl → 4.1.0b3__py3-none-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
psr/factory/__init__.py CHANGED
@@ -2,6 +2,6 @@
2
2
  # Unauthorized copying of this file, via any medium is strictly prohibited
3
3
  # Proprietary and confidential
4
4
 
5
- __version__ = "4.1.0b2"
5
+ __version__ = "4.1.0b3"
6
6
 
7
7
  from .api import *
psr/factory/api.py CHANGED
@@ -2174,6 +2174,10 @@ def _initialize():
2174
2174
  "INDEX_STARTS_AT_ZERO": True,
2175
2175
  "NAME": "Python",
2176
2176
  "VERSION": f"{sys.version}",
2177
+ "EXE": f"{sys.executable}",
2178
+ "LIB": f"{factorylib.get_lib_path()}",
2179
+ "BASE_PREFIX": f"{sys.base_prefix}",
2180
+ "REAL_PREFIX": f"{sys.prefix}",
2177
2181
  }
2178
2182
  for prop, value in map_prop_values.items():
2179
2183
  _value = Value()
psr/factory/factory.dll CHANGED
Binary file
psr/factory/factory.pmd CHANGED
@@ -2914,6 +2914,8 @@ DEFINE_MODEL MODL:Optmain_Options
2914
2914
  PARM INTEGER RFBF
2915
2915
  PARM INTEGER ASNM
2916
2916
  PARM INTEGER ASDT
2917
+ PARM INTEGER TUNE
2918
+ PARM INTEGER NCVR
2917
2919
  END_MODEL
2918
2920
 
2919
2921
  //--------------------------------------------------------------------------------------------------
@@ -4103,6 +4105,7 @@ DEFINE_MODEL MODL:SDDP_V10.2_Hidro
4103
4105
  VETOR DATE Data @addyear_modification
4104
4106
  VETOR INTEGER Existing INDEX Data
4105
4107
  VETOR INTEGER Unidades INDEX Data
4108
+ VETOR REAL MinGen INDEX Data
4106
4109
  VETOR REAL PotInst INDEX Data
4107
4110
  VETOR REAL FPMed INDEX Data
4108
4111
  VETOR REAL Qmin INDEX Data
@@ -4245,6 +4248,10 @@ DEFINE_MODEL MODL:SDDP_V10.2_Hidro
4245
4248
  PARM INTEGER SingleReserveInfo
4246
4249
  PARM INTEGER SingleReserveUnit
4247
4250
 
4251
+ PARM REAL MinTurbiningPenalty
4252
+ VETOR DATE DataMinTurbining @chronological @addyear_chronological
4253
+ VETOR REAL MinTurbining INDEX DataMinTurbining
4254
+
4248
4255
  PARM REAL MaxTurbiningPenalty
4249
4256
  VETOR DATE DataMaxTurbining @chronological @addyear_chronological
4250
4257
  VETOR REAL MaxTurbining INDEX DataMaxTurbining
@@ -4998,7 +5005,7 @@ DEFINE_MODEL MODL:SDDP_WaterWay
4998
5005
  PARM REAL FlowMax
4999
5006
  VETOR DATE DataFlowMaximum
5000
5007
  VETOR REAL FlowMaximum INDEX DataFlowMaximum
5001
- PARM INTEGER TravelTime
5008
+ PARM REAL TravelTime
5002
5009
  PARM INTEGER Disabled
5003
5010
  END_MODEL
5004
5011
 
@@ -5238,6 +5245,38 @@ DEFINE_MODEL MODL:SDDP_Execution_Options
5238
5245
  PARM INTEGER HIRS
5239
5246
  PARM INTEGER FINJ
5240
5247
  PARM INTEGER ETYP
5248
+ PARM INTEGER RFCF
5249
+ PARM INTEGER PFCF
5250
+ PARM INTEGER PENL
5251
+ PARM INTEGER LSFI
5252
+ PARM INTEGER FIXL
5253
+ PARM INTEGER HCMT
5254
+ PARM REAL MXFT
5255
+ PARM INTEGER HLFR
5256
+ PARM INTEGER LSUP
5257
+ PARM INTEGER PVNC
5258
+ PARM INTEGER HMEM
5259
+ PARM INTEGER HTPP
5260
+ PARM INTEGER FSCN
5261
+ PARM INTEGER SKPS
5262
+ PARM REAL MMPP
5263
+ PARM INTEGER FMIP
5264
+ PARM INTEGER MUPR
5265
+ PARM INTEGER MXBD
5266
+ PARM REAL TOLR
5267
+ PARM INTEGER IGMR
5268
+ PARM REAL GCTE
5269
+ PARM INTEGER LCIR
5270
+ PARM INTEGER VSEC
5271
+ PARM INTEGER SRPD
5272
+ PARM INTEGER LSST
5273
+ PARM REAL LLSF
5274
+ PARM INTEGER GLLS
5275
+ PARM INTEGER LSAL
5276
+ PARM INTEGER PTOU
5277
+ PARM INTEGER SHOT
5278
+ PARM INTEGER FCFO
5279
+ PARM INTEGER HYRM
5241
5280
 
5242
5281
  PARM REAL NCPL_MIPR
5243
5282
  PARM REAL NCPL_LTOL
@@ -5281,10 +5320,13 @@ END_MODEL
5281
5320
  // Generic variable
5282
5321
  //--------------------------------------------------------------------------------------------------
5283
5322
  DEFINE_MODEL PSRGenericVariable
5284
- PARM STRING unit
5285
- PARM INTEGER resol
5323
+ PARM STRING unit
5324
+ PARM INTEGER resol
5286
5325
  PARM INTEGER type // 0 continuous, 1 binary
5326
+ PARM INTEGER UseCostAndBounds //determines if following values are used
5287
5327
  PARM REAL cost
5328
+ PARM REAL UpperBound
5329
+ PARM REAL LowerBound
5288
5330
  END_MODEL
5289
5331
 
5290
5332
  //--------------------------------------------------------------------------------------------------
@@ -5295,6 +5337,7 @@ DEFINE_MODEL PSRHydroUnit
5295
5337
  VETOR INTEGER Nunits INDEX Data
5296
5338
  VETOR REAL MinTurb INDEX Data
5297
5339
  VETOR REAL MaxTurb INDEX Data
5340
+ VETOR REAL MinGen INDEX Data
5298
5341
  VETOR REAL MaxGen INDEX Data
5299
5342
  VETOR INTEGER Existing INDEX Data
5300
5343
  END_MODEL
@@ -5329,10 +5372,10 @@ END_MODEL
5329
5372
  DEFINE_MODEL MODL:SDDP_Area
5330
5373
  DIMENSION block
5331
5374
 
5332
- //--- Importação da Area do ---
5333
- VETOR DATE DateTransfer @addyear_modification
5334
- VETOR REAL MaxImport DIM(block) INDEX DateTransfer
5335
- VETOR REAL MaxExport DIM(block) INDEX DateTransfer
5375
+ VETOR DATE DateMinTransfer @addyear_modification
5376
+ VETOR DATE DateMaxTransfer @addyear_modification
5377
+ VETOR REAL MinTransfer DIM(block) INDEX DateMinTransfer
5378
+ VETOR REAL MaxTransfer DIM(block) INDEX DateMaxTransfer
5336
5379
  END_MODEL
5337
5380
 
5338
5381
  //----------------------------------------------------------------------
@@ -5694,6 +5737,7 @@ DEFINE_MODEL MODL:SDDP_FlowController
5694
5737
  VETOR REAL Xmax INDEX Data
5695
5738
  VETOR REAL Rn INDEX Data
5696
5739
  VETOR REAL Re INDEX Data
5740
+ VETOR REAL MaxPower INDEX Data
5697
5741
 
5698
5742
  PARM INTEGER Location
5699
5743
  PARM INTEGER FlowControlType
@@ -5949,6 +5993,7 @@ DEFINE_CLASS PSRGenerationOfferHydroPlant
5949
5993
  VECTOR DATE Date @addyear_modification
5950
5994
  VECTOR REAL Price INDEX Date
5951
5995
  VECTOR REAL Quantity INDEX Date
5996
+ PARM REFERENCE Plant PSRHydroPlant
5952
5997
  END_CLASS
5953
5998
 
5954
5999
  DEFINE_CLASS PSRGenerationOfferThermalPlant
@@ -5958,6 +6003,7 @@ DEFINE_CLASS PSRGenerationOfferThermalPlant
5958
6003
  VECTOR DATE Date @addyear_modification
5959
6004
  VECTOR REAL Price INDEX Date
5960
6005
  VECTOR REAL Quantity INDEX Date
6006
+ PARM REFERENCE Plant PSRThermalPlant
5961
6007
  END_CLASS
5962
6008
 
5963
6009
  DEFINE_CLASS PSRGenerationOfferRenewablePlant
@@ -5967,6 +6013,7 @@ DEFINE_CLASS PSRGenerationOfferRenewablePlant
5967
6013
  VECTOR DATE Date @addyear_modification
5968
6014
  VECTOR REAL Price INDEX Date
5969
6015
  VECTOR REAL Quantity INDEX Date
6016
+ PARM REFERENCE Plant PSRGndPlant
5970
6017
  END_CLASS
5971
6018
 
5972
6019
  //----------------------------------------------------------------------
psr/factory/factory.pmk CHANGED
@@ -6442,6 +6442,9 @@ RelCrit REAL,2
6442
6442
  END_DATA
6443
6443
  END_MASK
6444
6444
 
6445
+ //---------------------------------------------------------------------
6446
+ // Horizonte Rolante
6447
+ //---------------------------------------------------------------------
6445
6448
  DEFINE_MASK CSVDATA OPTGEN_dathzn
6446
6449
 
6447
6450
  DEFINE_HEADER
@@ -6472,7 +6475,22 @@ SensitivityGroup STRING,3
6472
6475
  Active INTEGER,4
6473
6476
  Serie INTEGER,5
6474
6477
  END_DATA
6478
+ END_MASK
6479
+
6480
+ //---------------------------------------------------------------------
6481
+ // Chronological GAP
6482
+ //---------------------------------------------------------------------
6483
+ DEFINE_MASK CSVDATA OPTGEN_dattgyear
6484
+
6485
+ DEFINE_HEADER
6486
+ !year,GAP(%),TimeLimit(s)
6487
+ END_HEADER
6475
6488
 
6489
+ DEFINE_DATA
6490
+ InitialYear INTEGER,1
6491
+ GAP REAL,2
6492
+ TimeLimit INTEGER,3
6493
+ END_DATA
6476
6494
  END_MASK
6477
6495
  //---------------------------------------------------------------------
6478
6496
  //---------------------------------------------------------------------
@@ -7643,7 +7661,7 @@ END_MASK
7643
7661
  DEFINE_MASK ROWDATA SDDP_v10.2_chidro
7644
7662
 
7645
7663
  DEFINE_HEADER
7646
- !NUM ...Nombre... .PV. .VAA .TAA #Uni Tipo ....Pot .FPMed. .QMin.. .QMax.. .VMin.. .VMax.. .VInic. Min.V+T ..VNC.. ..ICP.. ...IH.. ..FP1.. ..Vol1. ..FP2.. ..Vol2. ..FP3.. ..Vol3. ..FP4.. ..Vol4. ..FP5.. ..Vol5. .Area1. ..Vol1. .Area2. ..Vol2. .Area3. ..Vol3. .Area4. ..Vol4. .Area5. ..Vol5. .Filt1. ..Vol1. .Filt2. ..Vol2. .Filt3. ..Vol3. .Filt4. ..Vol4. .Filt5. ..Vol5. .Cota1. .Vol1.. .Cota2. .Vol2.. .Cota3. .Vol3.. .Cota4. .Vol4.. .Cota5. .Vol5.. .Ev1 .Ev2 .Ev3 .Ev4 .Ev5 .Ev6 .Ev7 .Ev8 .Ev9 Ev10 Ev11 Ev12 tini tfil .faa tare .varea. tfil .vfiltr F.Reg.. pVar .ICV C.Vert. sfal Cos.O&M Irxh RendT&G .EA. Niv.Jus I JuAr I .TurIn1 .TotIn1 .TurIn2 .TotIn2 .TurIn3 .TotIn3 .TurIn4 .TotIn4 .TurIn5 .TotIn5 H V .CFuga1 ..Def1. .CFuga2 ..Def2. .CFuga3 ..Def3. .CFuga4 ..Def4. .CFuga5 ..Def5. E PHidTur PHidVer sv st OpMd IrrR IfTp ForFill ForDraw ForPenT ForPen.
7664
+ !NUM ...Nombre... .PV. .VAA .TAA #Uni Tipo ....Pot .FPMed. .QMin.. .QMax.. .VMin.. .VMax.. .VInic. Min.V+T ..VNC.. ..ICP.. ...IH.. ..FP1.. ..Vol1. ..FP2.. ..Vol2. ..FP3.. ..Vol3. ..FP4.. ..Vol4. ..FP5.. ..Vol5. .Area1. ..Vol1. .Area2. ..Vol2. .Area3. ..Vol3. .Area4. ..Vol4. .Area5. ..Vol5. .Filt1. ..Vol1. .Filt2. ..Vol2. .Filt3. ..Vol3. .Filt4. ..Vol4. .Filt5. ..Vol5. .Cota1. .Vol1.. .Cota2. .Vol2.. .Cota3. .Vol3.. .Cota4. .Vol4.. .Cota5. .Vol5.. .Ev1 .Ev2 .Ev3 .Ev4 .Ev5 .Ev6 .Ev7 .Ev8 .Ev9 Ev10 Ev11 Ev12 tini tfil .faa tare .varea. tfil .vfiltr F.Reg.. pVar .ICV C.Vert. sfal Cos.O&M Irxh RendT&G .EA. Niv.Jus I JuAr I .TurIn1 .TotIn1 .TurIn2 .TotIn2 .TurIn3 .TotIn3 .TurIn4 .TotIn4 .TurIn5 .TotIn5 H V .CFuga1 ..Def1. .CFuga2 ..Def2. .CFuga3 ..Def3. .CFuga4 ..Def4. .CFuga5 ..Def5. E PHidTur PHidVer sv st OpMd IrrR IfTp ForFill ForDraw ForPenT ForPen. .MinGen
7647
7665
  END_HEADER
7648
7666
 
7649
7667
  DEFINE_MACRO
@@ -7717,8 +7735,9 @@ IrrigationDchr INTEGER 820 823 AUTOSET(model.
7717
7735
  InfiltType INTEGER 825 828 AUTOSET(model.parm("InfiltType"))
7718
7736
  ForebayFillUp REAL 830 836 AUTOSET(model.parm("ForebayFillUp"))
7719
7737
  ForebayDrawDown REAL 838 844 AUTOSET(model.parm("ForebayDrawDown"))
7720
- ForebayPenType INTEGER 846 849 AUTOSET(model.parm("ForebayPenType"))
7721
- ForebayPen REAL 851 857 AUTOSET(model.parm("ForebayPen"))
7738
+ ForebayPenType INTEGER 846 852 AUTOSET(model.parm("ForebayPenType"))
7739
+ ForebayPen REAL 854 860 AUTOSET(model.parm("ForebayPen"))
7740
+ MinGen REAL 862 868 AUTOSET
7722
7741
 
7723
7742
  END_DATA
7724
7743
 
@@ -9829,7 +9848,7 @@ DEFINE_BLOCK
9829
9848
  BLOCK_IDENT Num
9830
9849
 
9831
9850
  DEFINE_HEADER
9832
- !NUM ...Nombre... .PV. .VAA .TAA #Uni Tipo ....Pot .FPMed. .QMin.. .QMax.. .VMin.. .VMax.. .VInic. Min.V+T ..VNC.. ..ICP.. ...IH.. ..FP1.. ..Vol1. ..FP2.. ..Vol2. ..FP3.. ..Vol3. ..FP4.. ..Vol4. ..FP5.. ..Vol5. .Area1. ..Vol1. .Area2. ..Vol2. .Area3. ..Vol3. .Area4. ..Vol4. .Area5. ..Vol5. .Filt1. ..Vol1. .Filt2. ..Vol2. .Filt3. ..Vol3. .Filt4. ..Vol4. .Filt5. ..Vol5. .Cota1. .Vol1.. .Cota2. .Vol2.. .Cota3. .Vol3.. .Cota4. .Vol4.. .Cota5. .Vol5.. .Ev1 .Ev2 .Ev3 .Ev4 .Ev5 .Ev6 .Ev7 .Ev8 .Ev9 Ev10 Ev11 Ev12 tini tfil .faa tare .varea. tfil .vfiltr F.Reg.. pVar .ICV C.Vert. sfal Cos.O&M Irxh RendT&G .EA. Niv.Jus I JuAr I .TurIn1 .TotIn1 .TurIn2 .TotIn2 .TurIn3 .TotIn3 .TurIn4 .TotIn4 .TurIn5 .TotIn5 H V .CFuga1 ..Def1. .CFuga2 ..Def2. .CFuga3 ..Def3. .CFuga4 ..Def4. .CFuga5 ..Def5. E
9851
+ !NUM ...Nombre... .PV. .VAA .TAA #Uni Tipo ....Pot .FPMed. .QMin.. .QMax.. .VMin.. .VMax.. .VInic. Min.V+T ..VNC.. ..ICP.. ...IH.. ..FP1.. ..Vol1. ..FP2.. ..Vol2. ..FP3.. ..Vol3. ..FP4.. ..Vol4. ..FP5.. ..Vol5. .Area1. ..Vol1. .Area2. ..Vol2. .Area3. ..Vol3. .Area4. ..Vol4. .Area5. ..Vol5. .Filt1. ..Vol1. .Filt2. ..Vol2. .Filt3. ..Vol3. .Filt4. ..Vol4. .Filt5. ..Vol5. .Cota1. .Vol1.. .Cota2. .Vol2.. .Cota3. .Vol3.. .Cota4. .Vol4.. .Cota5. .Vol5.. .Ev1 .Ev2 .Ev3 .Ev4 .Ev5 .Ev6 .Ev7 .Ev8 .Ev9 Ev10 Ev11 Ev12 tini tfil .faa tare .varea. tfil .vfiltr F.Reg.. pVar .ICV C.Vert. sfal Cos.O&M Irxh RendT&G .EA. Niv.Jus I JuAr I .TurIn1 .TotIn1 .TurIn2 .TotIn2 .TurIn3 .TotIn3 .TurIn4 .TotIn4 .TurIn5 .TotIn5 H V .CFuga1 ..Def1. .CFuga2 ..Def2. .CFuga3 ..Def3. .CFuga4 ..Def4. .CFuga5 ..Def5. E .MinGen
9833
9852
  END_HEADER
9834
9853
 
9835
9854
  DEFINE_MACRO
@@ -9858,6 +9877,7 @@ TotIn($(P)) REAL 619+(16*$(P)),626+(16*$(P)) AUTOSET
9858
9877
  OxT_Tail($(P)) REAL 695+(16*$(P)) 701+(16*$(P)) AUTOSET
9859
9878
  OxT_Outflow($(P)) REAL 703+(16*$(P)) 709+(16*$(P)) AUTOSET
9860
9879
  Eaflu INTEGER 791 791 AUTOSET
9880
+ MinGen REAL 793 799 AUTOSET
9861
9881
  END_DATA
9862
9882
 
9863
9883
  END_BLOCK
@@ -11122,6 +11142,98 @@ END_BLOCK
11122
11142
 
11123
11143
  END_MASK
11124
11144
 
11145
+ //---------------------------------------------------------------------
11146
+ //---------------------------------------------------------------------
11147
+ DEFINE_MASK MIXROWDATA SDDP_v10.2_mntbme
11148
+
11149
+ TOTAL_BLOCK 2
11150
+
11151
+ //-------------------------------------------------------------
11152
+ //-- PRIMEIRO BLOCO -> Identificacao da Usina ---
11153
+ //-------------------------------------------------------------
11154
+ DEFINE_BLOCK
11155
+ BLOCK_IDENT ****
11156
+ BLOCK_LENGTH 1
11157
+ NEXT_BLOCK 2
11158
+
11159
+ DEFINE_DATA
11160
+ IdentBloco STRING 1,12 ****_Planta:
11161
+ Num INTEGER 14,17
11162
+ Nome STRING 19,30
11163
+ IdentPenal STRING 32,37 Penal:
11164
+ MinTurbiningPenalty REAL 42,50 AUTOSET(model.parm("MinTurbiningPenalty"))
11165
+ END_DATA
11166
+
11167
+ END_BLOCK
11168
+ //-------------------------------------------------------------
11169
+ //-- SEGUNDO BLOCO -> Dados ---
11170
+ //-------------------------------------------------------------
11171
+ DEFINE_BLOCK
11172
+ BLOCK_IDENT Year
11173
+
11174
+ DEFINE_HEADER
11175
+ A~no ......1 ......2 ......3 ......4 ......5 ......6 ......7 ......8 ......9 .....10 .....11 .....12
11176
+ END_HEADER
11177
+
11178
+ DEFINE_MACRO
11179
+ VAR N 1,12
11180
+ END_MACRO
11181
+
11182
+ DEFINE_DATA
11183
+ Ano INTEGER 1,4
11184
+ Dado$(N) REAL 5+8*($(N)-1),12+8*($(N)-1)
11185
+ END_DATA
11186
+
11187
+ END_BLOCK
11188
+
11189
+ END_MASK
11190
+
11191
+ //---------------------------------------------------------------------
11192
+ //---------------------------------------------------------------------
11193
+ DEFINE_MASK MIXROWDATA SDDP_v10.2_mntbse
11194
+
11195
+ TOTAL_BLOCK 2
11196
+
11197
+ //-------------------------------------------------------------
11198
+ //-- PRIMEIRO BLOCO -> Identificacao da Usina ---
11199
+ //-------------------------------------------------------------
11200
+ DEFINE_BLOCK
11201
+ BLOCK_IDENT ****
11202
+ BLOCK_LENGTH 1
11203
+ NEXT_BLOCK 2
11204
+
11205
+ DEFINE_DATA
11206
+ IdentBloco STRING 1,12 ****_Planta:
11207
+ Num INTEGER 14,17
11208
+ Nome STRING 19,30
11209
+ IdentPenal STRING 32,37 Penal:
11210
+ MinTurbiningPenalty REAL 42,50 AUTOSET(model.parm("MinTurbiningPenalty"))
11211
+ END_DATA
11212
+
11213
+ END_BLOCK
11214
+ //-------------------------------------------------------------
11215
+ //-- SEGUNDO BLOCO -> Dados ---
11216
+ //-------------------------------------------------------------
11217
+ DEFINE_BLOCK
11218
+ BLOCK_IDENT Year
11219
+
11220
+ DEFINE_HEADER
11221
+ A~no ......1 ......2 ......3 ......4 ......5 ......6 ......7 ......8 ......9 .....10 .....11 .....12 .....13 .....14 .....15 .....16 .....17 .....18 .....19 .....20 .....21 .....22 .....23 .....24 .....25 .....26 .....27 .....28 .....29 .....30 .....31 .....32 .....33 .....34 .....35 .....36 .....37 .....38 .....39 .....40 .....41 .....42 .....43 .....44 .....45 .....46 .....47 .....48 .....49 .....50 .....51 .....52
11222
+ END_HEADER
11223
+
11224
+ DEFINE_MACRO
11225
+ VAR N 1,52
11226
+ END_MACRO
11227
+
11228
+ DEFINE_DATA
11229
+ Ano INTEGER 1,4
11230
+ Dado$(N) REAL 5+8*($(N)-1),12+8*($(N)-1)
11231
+ END_DATA
11232
+
11233
+ END_BLOCK
11234
+
11235
+ END_MASK
11236
+
11125
11237
  //---------------------------------------------------------------------
11126
11238
  //---------------------------------------------------------------------
11127
11239
  DEFINE_MASK MIXROWDATA SDDP_v10.2_mxtbme
@@ -11669,7 +11781,7 @@ MaxReactivePower REAL,21 AUTOSET
11669
11781
  ReactivePowerFactor REAL,22 AUTOSET
11670
11782
  GenDev REAL,23 AUTOSET
11671
11783
  MaxDev REAL,24 AUTOSET
11672
- DevOpt REAL,25 AUTOSET(model.parm("DevOpt"))
11784
+ DevOpt INTEGER,25 AUTOSET(model.parm("DevOpt"))
11673
11785
 
11674
11786
  END_DATA
11675
11787
 
@@ -13839,7 +13951,7 @@ MaxReactivePower REAL,15 AUTOSET
13839
13951
  ReactivePowerFactor REAL,16 AUTOSET
13840
13952
  GenDev REAL,17 AUTOSET
13841
13953
  MaxDev REAL,18 AUTOSET
13842
- DevOpt INTEGER,19 AUTOSET
13954
+ DevOpt INTEGER,19 AUTOSET(model.parm("DevOpt"))
13843
13955
  END_DATA
13844
13956
  END_MASK
13845
13957
  //---------------------------------------------------------------------
@@ -13855,7 +13967,7 @@ Code INTEGER,2
13855
13967
  Name STRING,3
13856
13968
  Bus INTEGER,4
13857
13969
  Existing INTEGER,5 AUTOSET
13858
- NumberOfUnits INTEGER,6 AUTOSET
13970
+ Unidades INTEGER,6 AUTOSET
13859
13971
  PotInst REAL,7 AUTOSET
13860
13972
  SM REAL,8 AUTOSET
13861
13973
  Efficiency REAL,9 AUTOSET
@@ -13869,7 +13981,6 @@ MaxDev REAL,16 AUTOSET
13869
13981
  END_DATA
13870
13982
  END_MASK
13871
13983
 
13872
-
13873
13984
  //---------------------------------------------------------------------
13874
13985
  //---------------------------------------------------------------------
13875
13986
  DEFINE_MASK CSVDATA SDDP_polca
@@ -13888,7 +13999,6 @@ A4 REAL, 7
13888
13999
  END_DATA
13889
14000
  END_MASK
13890
14001
 
13891
-
13892
14002
  //---------------------------------------------------------------------
13893
14003
  //---------------------------------------------------------------------
13894
14004
  DEFINE_MASK CSVDATA SDDP_hidtrb
@@ -13915,7 +14025,7 @@ HydroFrom STRING, 3
13915
14025
  HydroTo STRING, 4
13916
14026
  FlowMin REAL, 5 AUTOSET(model.parm("FlowMin"))
13917
14027
  FlowMax REAL, 6 AUTOSET(model.parm("FlowMax"))
13918
- TravelTime INTEGER, 7 AUTOSET(model.parm("TravelTime"))
14028
+ TravelTime REAL, 7 AUTOSET(model.parm("TravelTime"))
13919
14029
  Currency STRING, 8 AUTOSET(model.parm("Currency"))
13920
14030
  Disabled INTEGER, 9 AUTOSET(model.parm("Disabled"))
13921
14031
  END_DATA
@@ -14368,11 +14478,14 @@ name STRING,2
14368
14478
  unit STRING,3 AUTOSET(model.parm("unit"))
14369
14479
  resol INTEGER,4 AUTOSET(model.parm("resol"))
14370
14480
  type INTEGER,5 AUTOSET(model.parm("type"))
14371
- cost REAL,6 AUTOSET(model.parm("cost"))
14481
+ type INTEGER,6 AUTOSET(model.parm("UseCostAndBounds"))
14482
+ cost REAL,7 AUTOSET(model.parm("cost"))
14483
+ cost REAL,8 AUTOSET(model.parm("UpperBound"))
14484
+ cost REAL,9 AUTOSET(model.parm("LowerBound"))
14372
14485
  END_DATA
14373
14486
  DEFINE_HEADER
14374
14487
  $version=1
14375
- !code,name,unit,resol,type,cost
14488
+ !code,name,unit,resol,type,UseCostAndBounds,cost,UpperBound,LowerBound
14376
14489
  END_HEADER
14377
14490
  END_MASK
14378
14491
  //---------------------------------------------------------------------
@@ -15058,7 +15171,7 @@ DEFINE_MASK CSVDATA SDDP_dflowcontroller
15058
15171
 
15059
15172
  DEFINE_HEADER
15060
15173
  $version=1
15061
- !Code,Name,CircuitCode,ControlType,DeviceType,Location,Existing,Decommissioned,Xmin,Xmax,Rating,EmergencyRating,OutageProbability
15174
+ !Code,Name,CircuitCode,ControlType,DeviceType,Location,Existing,Decommissioned,Xmin,Xmax,Rating,EmergencyRating,MaxPower,OutageProbability
15062
15175
  END_HEADER
15063
15176
 
15064
15177
  DEFINE_DATA
@@ -15074,7 +15187,8 @@ Xmin REAL 9 AUTOSET
15074
15187
  Xmax REAL 10 AUTOSET
15075
15188
  Rn REAL 11 AUTOSET
15076
15189
  Re REAL 12 AUTOSET
15077
- Prob REAL 13 AUTOSET
15190
+ MaxPower REAL 13 AUTOSET
15191
+ Prob REAL 14 AUTOSET
15078
15192
  END_DATA
15079
15193
 
15080
15194
  END_MASK
@@ -15083,7 +15197,7 @@ DEFINE_MASK CSVDATA SDDP_mflowcontroller
15083
15197
 
15084
15198
  DEFINE_HEADER
15085
15199
  $version=1
15086
- !Day,Month,Year,Code,Name,CircuitCode,Existing,Decommissioned,Xmin,Xmax,Rating,EmergencyRating,OutageProbability
15200
+ !Day,Month,Year,Code,Name,CircuitCode,Existing,Decommissioned,Xmin,Xmax,Rating,EmergencyRating,MaxPower,OutageProbability
15087
15201
  END_HEADER
15088
15202
 
15089
15203
  DEFINE_DATA
@@ -15099,7 +15213,8 @@ Xmin REAL 9 AUTOSET
15099
15213
  Xmax REAL 10 AUTOSET
15100
15214
  Rn REAL 11 AUTOSET
15101
15215
  Re REAL 12 AUTOSET
15102
- Prob REAL 13 AUTOSET
15216
+ MaxPower REAL 13 AUTOSET
15217
+ Prob REAL 14 AUTOSET
15103
15218
  END_DATA
15104
15219
 
15105
15220
  END_MASK
@@ -15752,9 +15867,9 @@ END_DATA
15752
15867
  END_MASK
15753
15868
  //---------------------------------------------------------------------
15754
15869
  //---------------------------------------------------------------------
15755
- DEFINE_MASK CSVDATA SDDP_areatransf
15870
+ DEFINE_MASK CSVDATA SDDP_areamintransf
15756
15871
  DEFINE_AUTOMATIC_INFO
15757
- FILENAME areatransf.dat
15872
+ FILENAME areamintransf.dat
15758
15873
  VERSION 1
15759
15874
  CONTEXT_READ sddpac
15760
15875
  CONTEXT_WRITE sddpac
@@ -15764,15 +15879,38 @@ ATTRIBUTE_ID code
15764
15879
  END_AUTOMATIC_INFO
15765
15880
 
15766
15881
  DEFINE_DATA
15767
- code REFERENCE 1
15768
- DateTransfer DATE 2 YYYY/MM/DD AUTOSET
15769
- block INTEGER 3
15770
- MaxImport REAL 4
15771
- MaxExport REAL 5
15882
+ code REFERENCE 1
15883
+ DateMinTransfer DATE 2 YYYY/MM/DD AUTOSET
15884
+ block INTEGER 3
15885
+ MinTransfer REAL 4
15886
+ END_DATA
15887
+ DEFINE_HEADER
15888
+ $version=1
15889
+ !code,Date,block,MinTransfer
15890
+ END_HEADER
15891
+ END_MASK
15892
+ //---------------------------------------------------------------------
15893
+ //---------------------------------------------------------------------
15894
+ DEFINE_MASK CSVDATA SDDP_areamaxtransf
15895
+ DEFINE_AUTOMATIC_INFO
15896
+ FILENAME areamaxtransf.dat
15897
+ VERSION 1
15898
+ CONTEXT_READ sddpac
15899
+ CONTEXT_WRITE sddpac
15900
+ CLASSNAME PSRArea
15901
+ MODEL MODL:SDDP_Area
15902
+ ATTRIBUTE_ID code
15903
+ END_AUTOMATIC_INFO
15904
+
15905
+ DEFINE_DATA
15906
+ code REFERENCE 1
15907
+ DateMaxTransfer DATE 2 YYYY/MM/DD AUTOSET
15908
+ block INTEGER 3
15909
+ MaxTransfer REAL 4
15772
15910
  END_DATA
15773
15911
  DEFINE_HEADER
15774
15912
  $version=1
15775
- !code,Date,block,MinImport,MaxExport
15913
+ !code,Date,block,MaxTransfer
15776
15914
  END_HEADER
15777
15915
  END_MASK
15778
15916
  //---------------------------------------------------------------------
psr/factory/factorylib.py CHANGED
@@ -12,10 +12,13 @@ import psr.psrfcommon
12
12
  lib = None
13
13
 
14
14
  if sys.platform == "win32":
15
+ def get_lib_path() -> str:
16
+ return os.path.join(os.path.dirname(__file__), "factory.dll")
15
17
  def load_lib():
16
- lib_path = os.path.join(os.path.dirname(__file__), "factory.dll")
17
- return ctypes.cdll.LoadLibrary(lib_path)
18
+ return ctypes.cdll.LoadLibrary(get_lib_path())
18
19
  else:
20
+ def get_lib_path() -> str:
21
+ return os.path.join(os.path.dirname(__file__), "libfactory.so")
19
22
  def load_lib():
20
23
  with psr.psrfcommon.change_cwd(os.path.dirname(__file__)):
21
24
  lib_path = "./libfactory.so"
Binary file
@@ -0,0 +1,108 @@
1
+ Metadata-Version: 2.4
2
+ Name: psr-factory
3
+ Version: 4.1.0b3
4
+ Summary: PSR database management module.
5
+ Author-email: "PSR Inc." <psrfactory@psr-inc.com>
6
+ License: MIT License
7
+
8
+ Copyright (c) 2025 PSR Factory
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+
28
+ Project-URL: documentation, https://docs.psr-inc.com/factory/
29
+ Keywords: psr,factory,sddp
30
+ Classifier: Development Status :: 4 - Beta
31
+ Classifier: Programming Language :: C
32
+ Classifier: Programming Language :: C++
33
+ Classifier: Programming Language :: Python :: 3
34
+ Classifier: Programming Language :: Python :: 3.9
35
+ Classifier: Programming Language :: Python :: 3.10
36
+ Classifier: Programming Language :: Python :: 3.11
37
+ Classifier: Programming Language :: Python :: 3.12
38
+ Classifier: Programming Language :: Python :: 3.13
39
+ Classifier: Topic :: Software Development
40
+ Classifier: Topic :: Scientific/Engineering
41
+ Classifier: Operating System :: Microsoft :: Windows
42
+ Classifier: Operating System :: POSIX :: Linux
43
+ Classifier: License :: OSI Approved :: MIT License
44
+ Requires-Python: >=3.9
45
+ Description-Content-Type: text/markdown
46
+ License-File: LICENSE.txt
47
+ Dynamic: license-file
48
+
49
+ PSR Factory (version 4.1.0b3)
50
+ ============================
51
+
52
+ Factory is a library that helps to manage SDDP cases.
53
+ It contains functions that create, load, and save studies, and also functions that create,
54
+ access, and modify objects in a study.
55
+
56
+
57
+ Installation
58
+ ------------
59
+
60
+ ### System-wide installation
61
+
62
+ Open the command prompt and run the following command:
63
+ ```bash
64
+ pip install psr-factory
65
+ ```
66
+
67
+ Or, if the package directly from the wheel (whl) file:
68
+
69
+ ```bash
70
+ pip install psr_factory-4.1.0b3-py3-none-win_amd64.whl
71
+ ```
72
+
73
+ Factory will be available to all Python scripts in your system after importing it:
74
+
75
+ ```python
76
+ import psr.factory
77
+ ```
78
+
79
+
80
+ Usage sample
81
+ ------------
82
+
83
+ ```python
84
+ import psr.factory
85
+
86
+ study = psr.factory.load_study(r"C:\temp\my\study")
87
+ system_1 = study.find("System.*")[0]
88
+
89
+ battery = psr.factory.create("Battery")
90
+ battery.code = 1
91
+ battery.name = "Battery 1"
92
+ battery.set("InstalledCapacity", 10.0)
93
+ battery.set("RefSystem", system_1)
94
+ study.add(battery)
95
+
96
+ study.save(r"C:\temp\my\updated_study")
97
+ ```
98
+
99
+
100
+ Full documentation
101
+ ------------------
102
+
103
+ The full documentation and reference is available at [https://docs.psr-inc.com/factory/](https://docs.psr-inc.com/factory/).
104
+
105
+ Releases
106
+ --------
107
+
108
+ New releases can be found in the release notes at [https://psrenergy-docs.github.io/factory/releases.html](https://psrenergy-docs.github.io/factory/releases.html).
@@ -10,13 +10,13 @@ psr/cloud/status.py,sha256=vcI4B9S6wCt9maT5NNrVwYaEgGIvy6kkC1UVpJjYbtw,3607
10
10
  psr/cloud/tempfile.py,sha256=1IOeye0eKWnmBynK5K5FMWiTaEVhn4GbQ8_y0THEva0,3893
11
11
  psr/cloud/version.py,sha256=FMkUnJ7LLpNt9YmROO5l8D4w-g7A6-Fo0eI9JbYZh0o,192
12
12
  psr/cloud/xml.py,sha256=dmBh4iRieORCctm1obz1EGA2QN-KkZlH5_dQfBud-AI,1847
13
- psr/factory/__init__.py,sha256=yW9nyLv3uwvnNV1-1OPmfg43kB7Ioeulb-jPNU1Lw3s,218
14
- psr/factory/api.py,sha256=a2iH0am4O9SStICiy0iID_s3OHX__fC2w0q9UczQUFk,95251
15
- psr/factory/factory.dll,sha256=o-FjmD45wpt_f89h8s6dbCh2NH6LT5NGLMh47iMe6_c,17730096
16
- psr/factory/factory.pmd,sha256=3fGQyBFd16Msfn4ZJe8TDFc759XylW5HqQhdwsSReMM,228259
17
- psr/factory/factory.pmk,sha256=1AQ9L3PAPmCvFZaecjGH7psIa-SURZ7WNnZp1rCnL98,551552
18
- psr/factory/factorylib.py,sha256=7WK-g9K8juNoEwndCeTGYLMOV421QjO8Q0NlTqgvZzs,26839
19
- psr/factory/libcurl-x64.dll,sha256=upYQ3cF76RcWm5DWoTNkYvYNkh9CngyYmL7e1qBeqAs,5328944
13
+ psr/factory/__init__.py,sha256=IVy9wUtd7XwVWcncZkrnNFvxa6H-DdlVgggY6VReIPk,218
14
+ psr/factory/api.py,sha256=Ruz9klp70FJnsarb-Se5b5G5FAyqa11mBsP7CqBAzuo,95439
15
+ psr/factory/factory.dll,sha256=C4cVo0_k0GHWTkktG6_Eu_gg6rgsR7_RTgLJxd8PPPk,17828912
16
+ psr/factory/factory.pmd,sha256=r-2idBk98sKzDC-h0-nn6CF8Pr-mxz1RtnpEpvIEaU0,229581
17
+ psr/factory/factory.pmk,sha256=NzPpz4_bR3hvBAff9BWqf-6IWcHNwDd31PHUizo4YYs,555896
18
+ psr/factory/factorylib.py,sha256=Orcg4X47J3J1CNr0WEERucqsTJLqt0TV9VFFZXLv6WE,26978
19
+ psr/factory/libcurl-x64.dll,sha256=d8hRt8TBfeZxKiqQj1ZLxOjdgtZTawVMimzV3KGykRw,5328944
20
20
  psr/factory/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
21
  psr/psrfcommon/__init__.py,sha256=WXR560XQllIjtFpWd0jiJEbUAQIyh5-6lwj-42_J95c,200
22
22
  psr/psrfcommon/psrfcommon.py,sha256=NABM5ahvyfSizDC9c0Vu9dVK1pD_vOzIGFHL1oz2E1o,1464
@@ -24,7 +24,8 @@ psr/psrfcommon/tempfile.py,sha256=5S13wa2DCLYTUdwbLm_KMBRnDRJ0WDlu8GO2BmZoNdg,39
24
24
  psr/runner/__init__.py,sha256=kI9HDX-B_LMQJUHHylFHas2rNpWfNNa0pZXoIvX_Alw,230
25
25
  psr/runner/runner.py,sha256=fiuwKDRnqOLfV5UKJamLMZqm7PneeVjgEEmhpZbMm98,26340
26
26
  psr/runner/version.py,sha256=mch2Y8anSXGMn9w72Z78PhSRhOyn55EwaoLAYhY4McE,194
27
- psr_factory-4.1.0b2.dist-info/METADATA,sha256=Slc6h7a1sMccXnw0G9rYjBTY2NKS4Te73pSoZ3C9sqM,1757
28
- psr_factory-4.1.0b2.dist-info/WHEEL,sha256=GRAwO4abswPoD8u6X5Ix8yKoy-wTIXRf_V-PAIDNIsM,97
29
- psr_factory-4.1.0b2.dist-info/top_level.txt,sha256=Jb393O96WQk3b5D1gMcrZBLKJJgZpzNjTPoldUi00ck,4
30
- psr_factory-4.1.0b2.dist-info/RECORD,,
27
+ psr_factory-4.1.0b3.dist-info/licenses/LICENSE.txt,sha256=N6mqZK2Ft3iXGHj-by_MHC_dJo9qwn0URjakEPys3H4,1089
28
+ psr_factory-4.1.0b3.dist-info/METADATA,sha256=e3ajWcmlXdJYZfnNBcpHI6cjg8lMBx6Ay1pm1XDdwuE,3721
29
+ psr_factory-4.1.0b3.dist-info/WHEEL,sha256=GRAwO4abswPoD8u6X5Ix8yKoy-wTIXRf_V-PAIDNIsM,97
30
+ psr_factory-4.1.0b3.dist-info/top_level.txt,sha256=Jb393O96WQk3b5D1gMcrZBLKJJgZpzNjTPoldUi00ck,4
31
+ psr_factory-4.1.0b3.dist-info/RECORD,,
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 PSR Factory
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,70 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: psr-factory
3
- Version: 4.1.0b2
4
- Summary: PSR database management module.
5
- Author-email: "PSR Inc." <psrfactory@psr-inc.com>
6
- Project-URL: documentation, https://docs.psr-inc.com/factory/
7
- Classifier: Programming Language :: Python :: 3
8
- Requires-Python: >=3.9
9
- Description-Content-Type: text/markdown
10
-
11
- PSR Factory (version 4.1.0b2)
12
- ============================
13
-
14
- Factory is a library that helps to manage SDDP cases.
15
- It contains functions that create, load, and save studies, and also functions that create,
16
- access, and modify objects in a study.
17
-
18
-
19
- Installation
20
- ------------
21
-
22
- ### System-wide installation
23
-
24
- Open the command prompt and run the following command:
25
- ```bash
26
- pip install psr-factory
27
- ```
28
-
29
- Or, if the package directly from the wheel (whl) file:
30
-
31
- ```bash
32
- pip install psr_factory-4.1.0b2-py3-none-win_amd64.whl
33
- ```
34
-
35
- Factory will be available to all Python scripts in your system after importing it:
36
-
37
- ```python
38
- import psr.factory
39
- ```
40
-
41
-
42
- Usage sample
43
- ------------
44
-
45
- ```python
46
- import psr.factory
47
-
48
- study = psr.factory.load_study(r"C:\temp\my\study")
49
- system_1 = study.find("System.*")[0]
50
-
51
- battery = psr.factory.create("Battery")
52
- battery.code = 1
53
- battery.name = "Battery 1"
54
- battery.set("InstalledCapacity", 10.0)
55
- battery.set("RefSystem", system_1)
56
- study.add(battery)
57
-
58
- study.save(r"C:\temp\my\updated_study")
59
- ```
60
-
61
-
62
- Full documentation
63
- ------------------
64
-
65
- The full documentation and reference is available at [https://docs.psr-inc.com/factory/](https://docs.psr-inc.com/manual/factory/).
66
-
67
- Releases
68
- --------
69
-
70
- New releases can be found in the release notes at [https://psrenergy-docs.github.io/factory/releases.html](https://psrenergy-docs.github.io/factory/releases.html).