inewave 1.5.2__py3-none-any.whl → 1.5.4__py3-none-any.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.
- inewave/__init__.py +1 -1
- inewave/newave/modelos/modif.py +139 -62
- {inewave-1.5.2.dist-info → inewave-1.5.4.dist-info}/METADATA +1 -1
- {inewave-1.5.2.dist-info → inewave-1.5.4.dist-info}/RECORD +8 -8
- tests/newave/test_modif.py +10 -9
- {inewave-1.5.2.dist-info → inewave-1.5.4.dist-info}/LICENSE.md +0 -0
- {inewave-1.5.2.dist-info → inewave-1.5.4.dist-info}/WHEEL +0 -0
- {inewave-1.5.2.dist-info → inewave-1.5.4.dist-info}/top_level.txt +0 -0
inewave/__init__.py
CHANGED
inewave/newave/modelos/modif.py
CHANGED
|
@@ -1,11 +1,68 @@
|
|
|
1
1
|
from cfinterface.components.register import Register
|
|
2
2
|
from cfinterface.components.line import Line
|
|
3
|
+
from cfinterface.components.field import Field
|
|
3
4
|
from cfinterface.components.integerfield import IntegerField
|
|
4
5
|
from cfinterface.components.literalfield import LiteralField
|
|
5
6
|
from cfinterface.components.floatfield import FloatField
|
|
6
|
-
from cfinterface.components.
|
|
7
|
+
from cfinterface.adapters.components.repository import factory
|
|
8
|
+
from copy import deepcopy
|
|
7
9
|
from datetime import datetime
|
|
8
|
-
from typing import Optional
|
|
10
|
+
from typing import Optional, IO
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ModifRegister(Register):
|
|
14
|
+
"""
|
|
15
|
+
Registro base para o arquivo modif.dat, que contém
|
|
16
|
+
características específicas deste arquivo:
|
|
17
|
+
|
|
18
|
+
- Possibilidade de ler uma linha assumindo que o conteúdo
|
|
19
|
+
de cada campo é separado por um número variável
|
|
20
|
+
de espaços.
|
|
21
|
+
- Capacidade de escrever uma linha assumindo uma formatação
|
|
22
|
+
constante para melhor visualização.
|
|
23
|
+
|
|
24
|
+
OBS: Atualmente só utilizados para registros VOLMIN e VOLMAX.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
def __init__(
|
|
28
|
+
self,
|
|
29
|
+
previous=None,
|
|
30
|
+
next=None,
|
|
31
|
+
data=None,
|
|
32
|
+
) -> None:
|
|
33
|
+
self.__identifier_field: Field = LiteralField(
|
|
34
|
+
self.__class__.IDENTIFIER_DIGITS, 0
|
|
35
|
+
)
|
|
36
|
+
self.__previous = previous
|
|
37
|
+
self.__next = next
|
|
38
|
+
if data is None:
|
|
39
|
+
self.__data = [None] * len(self.__class__.LINE.fields)
|
|
40
|
+
else:
|
|
41
|
+
self.__data = data
|
|
42
|
+
|
|
43
|
+
def read(self, file: IO, storage: str = "", *args, **kwargs) -> bool:
|
|
44
|
+
delimited_fields = [deepcopy(f) for f in self.__class__.LINE.fields]
|
|
45
|
+
line = Line(
|
|
46
|
+
[self.__identifier_field] + delimited_fields,
|
|
47
|
+
delimiter=" ",
|
|
48
|
+
storage=storage,
|
|
49
|
+
)
|
|
50
|
+
line_full_spaces = file.readline().strip()
|
|
51
|
+
line_parts = [p for p in line_full_spaces.split(" ") if len(p) > 0]
|
|
52
|
+
line_simple_spaces = " ".join(line_parts)
|
|
53
|
+
self.data = line.read(line_simple_spaces)[1:]
|
|
54
|
+
return True
|
|
55
|
+
|
|
56
|
+
def write(self, file: IO, storage: str = "", *args, **kwargs) -> bool:
|
|
57
|
+
if not self.empty:
|
|
58
|
+
line = Line(
|
|
59
|
+
[self.__identifier_field] + self.__class__.LINE.fields,
|
|
60
|
+
delimiter=self.__class__.LINE.delimiter,
|
|
61
|
+
storage=storage,
|
|
62
|
+
)
|
|
63
|
+
linedata = line.write([self.__class__.IDENTIFIER] + self.data)
|
|
64
|
+
factory(storage).write(file, linedata)
|
|
65
|
+
return True
|
|
9
66
|
|
|
10
67
|
|
|
11
68
|
class USINA(Register):
|
|
@@ -46,7 +103,7 @@ class USINA(Register):
|
|
|
46
103
|
self.data[1] = t
|
|
47
104
|
|
|
48
105
|
|
|
49
|
-
class VOLMIN(
|
|
106
|
+
class VOLMIN(ModifRegister):
|
|
50
107
|
"""
|
|
51
108
|
Registro que contém uma modificação de volume mínimo
|
|
52
109
|
operativo para uma usina.
|
|
@@ -85,7 +142,7 @@ class VOLMIN(Register):
|
|
|
85
142
|
self.data[1] = t
|
|
86
143
|
|
|
87
144
|
|
|
88
|
-
class VOLMAX(
|
|
145
|
+
class VOLMAX(ModifRegister):
|
|
89
146
|
"""
|
|
90
147
|
Registro que contém uma modificação de volume máximo
|
|
91
148
|
operativo para uma usina.
|
|
@@ -124,7 +181,7 @@ class VOLMAX(Register):
|
|
|
124
181
|
self.data[1] = t
|
|
125
182
|
|
|
126
183
|
|
|
127
|
-
class NUMCNJ(
|
|
184
|
+
class NUMCNJ(ModifRegister):
|
|
128
185
|
"""
|
|
129
186
|
Registro que contém uma modificação de número de conjunto
|
|
130
187
|
de máquinas.
|
|
@@ -132,7 +189,7 @@ class NUMCNJ(Register):
|
|
|
132
189
|
|
|
133
190
|
IDENTIFIER = " NUMCNJ"
|
|
134
191
|
IDENTIFIER_DIGITS = 8
|
|
135
|
-
LINE = Line([IntegerField(
|
|
192
|
+
LINE = Line([IntegerField(2, 11)])
|
|
136
193
|
|
|
137
194
|
@property
|
|
138
195
|
def numero(self) -> int:
|
|
@@ -149,7 +206,7 @@ class NUMCNJ(Register):
|
|
|
149
206
|
self.data[0] = t
|
|
150
207
|
|
|
151
208
|
|
|
152
|
-
class NUMMAQ(
|
|
209
|
+
class NUMMAQ(ModifRegister):
|
|
153
210
|
"""
|
|
154
211
|
Registro que contém uma modificação do número de máquinas em um
|
|
155
212
|
conjunto de máquinas.
|
|
@@ -157,7 +214,7 @@ class NUMMAQ(Register):
|
|
|
157
214
|
|
|
158
215
|
IDENTIFIER = " NUMMAQ"
|
|
159
216
|
IDENTIFIER_DIGITS = 8
|
|
160
|
-
LINE = Line([IntegerField(3,
|
|
217
|
+
LINE = Line([IntegerField(3, 11), IntegerField(3, 14)])
|
|
161
218
|
|
|
162
219
|
@property
|
|
163
220
|
def conjunto(self) -> Optional[int]:
|
|
@@ -188,7 +245,7 @@ class NUMMAQ(Register):
|
|
|
188
245
|
self.data[1] = t
|
|
189
246
|
|
|
190
247
|
|
|
191
|
-
class VAZMIN(
|
|
248
|
+
class VAZMIN(ModifRegister):
|
|
192
249
|
"""
|
|
193
250
|
Registro que contém uma modificação de vazão mínima (m3/s).
|
|
194
251
|
"""
|
|
@@ -212,14 +269,16 @@ class VAZMIN(Register):
|
|
|
212
269
|
self.data[0] = t
|
|
213
270
|
|
|
214
271
|
|
|
215
|
-
class CFUGA(
|
|
272
|
+
class CFUGA(ModifRegister):
|
|
216
273
|
"""
|
|
217
274
|
Registro que contém uma modificação do nível do canal de fuga.
|
|
218
275
|
"""
|
|
219
276
|
|
|
220
277
|
IDENTIFIER = " CFUGA"
|
|
221
278
|
IDENTIFIER_DIGITS = 8
|
|
222
|
-
LINE = Line(
|
|
279
|
+
LINE = Line(
|
|
280
|
+
[IntegerField(2, 10), IntegerField(4, 13), FloatField(7, 18, 3)]
|
|
281
|
+
)
|
|
223
282
|
|
|
224
283
|
@property
|
|
225
284
|
def data_inicio(self) -> datetime:
|
|
@@ -229,11 +288,12 @@ class CFUGA(Register):
|
|
|
229
288
|
:return: A data de início da modificação
|
|
230
289
|
:rtype: Optional[datetime]
|
|
231
290
|
"""
|
|
232
|
-
return self.data[0]
|
|
291
|
+
return datetime(self.data[1], self.data[0], 1)
|
|
233
292
|
|
|
234
293
|
@data_inicio.setter
|
|
235
294
|
def data_inicio(self, t: datetime):
|
|
236
|
-
self.data[0] = t
|
|
295
|
+
self.data[0] = t.month
|
|
296
|
+
self.data[1] = t.year
|
|
237
297
|
|
|
238
298
|
@property
|
|
239
299
|
def nivel(self) -> float:
|
|
@@ -243,21 +303,23 @@ class CFUGA(Register):
|
|
|
243
303
|
:return: O novo nível
|
|
244
304
|
:rtype: Optional[int]
|
|
245
305
|
"""
|
|
246
|
-
return self.data[
|
|
306
|
+
return self.data[2]
|
|
247
307
|
|
|
248
308
|
@nivel.setter
|
|
249
309
|
def nivel(self, t: float):
|
|
250
|
-
self.data[
|
|
310
|
+
self.data[2] = t
|
|
251
311
|
|
|
252
312
|
|
|
253
|
-
class CMONT(
|
|
313
|
+
class CMONT(ModifRegister):
|
|
254
314
|
"""
|
|
255
315
|
Registro que contém uma modificação do nível do canal de montante.
|
|
256
316
|
"""
|
|
257
317
|
|
|
258
318
|
IDENTIFIER = " CMONT"
|
|
259
319
|
IDENTIFIER_DIGITS = 8
|
|
260
|
-
LINE = Line(
|
|
320
|
+
LINE = Line(
|
|
321
|
+
[IntegerField(2, 10), IntegerField(4, 13), FloatField(7, 18, 3)]
|
|
322
|
+
)
|
|
261
323
|
|
|
262
324
|
@property
|
|
263
325
|
def data_inicio(self) -> datetime:
|
|
@@ -267,11 +329,12 @@ class CMONT(Register):
|
|
|
267
329
|
:return: A data de início da modificação
|
|
268
330
|
:rtype: Optional[datetime]
|
|
269
331
|
"""
|
|
270
|
-
return self.data[0]
|
|
332
|
+
return datetime(self.data[1], self.data[0], 1)
|
|
271
333
|
|
|
272
334
|
@data_inicio.setter
|
|
273
335
|
def data_inicio(self, t: datetime):
|
|
274
|
-
self.data[0] = t
|
|
336
|
+
self.data[0] = t.month
|
|
337
|
+
self.data[1] = t.year
|
|
275
338
|
|
|
276
339
|
@property
|
|
277
340
|
def nivel(self) -> Optional[float]:
|
|
@@ -281,11 +344,11 @@ class CMONT(Register):
|
|
|
281
344
|
:return: O novo nível
|
|
282
345
|
:rtype: Optional[float]
|
|
283
346
|
"""
|
|
284
|
-
return self.data[
|
|
347
|
+
return self.data[2]
|
|
285
348
|
|
|
286
349
|
@nivel.setter
|
|
287
350
|
def nivel(self, t: float):
|
|
288
|
-
self.data[
|
|
351
|
+
self.data[2] = t
|
|
289
352
|
|
|
290
353
|
|
|
291
354
|
class VMAXT(Register):
|
|
@@ -298,7 +361,8 @@ class VMAXT(Register):
|
|
|
298
361
|
IDENTIFIER_DIGITS = 8
|
|
299
362
|
LINE = Line(
|
|
300
363
|
[
|
|
301
|
-
|
|
364
|
+
IntegerField(2, 10),
|
|
365
|
+
IntegerField(4, 13),
|
|
302
366
|
FloatField(7, 18, 3),
|
|
303
367
|
LiteralField(3, 26),
|
|
304
368
|
]
|
|
@@ -312,11 +376,12 @@ class VMAXT(Register):
|
|
|
312
376
|
:return: A data de início da modificação
|
|
313
377
|
:rtype: Optional[datetime]
|
|
314
378
|
"""
|
|
315
|
-
return self.data[0]
|
|
379
|
+
return datetime(self.data[1], self.data[0], 1)
|
|
316
380
|
|
|
317
381
|
@data_inicio.setter
|
|
318
382
|
def data_inicio(self, t: datetime):
|
|
319
|
-
self.data[0] = t
|
|
383
|
+
self.data[0] = t.month
|
|
384
|
+
self.data[1] = t.year
|
|
320
385
|
|
|
321
386
|
@property
|
|
322
387
|
def volume(self) -> Optional[float]:
|
|
@@ -326,11 +391,11 @@ class VMAXT(Register):
|
|
|
326
391
|
:return: O novo volume
|
|
327
392
|
:rtype: Optional[float]
|
|
328
393
|
"""
|
|
329
|
-
return self.data[
|
|
394
|
+
return self.data[2]
|
|
330
395
|
|
|
331
396
|
@volume.setter
|
|
332
397
|
def volume(self, t: float):
|
|
333
|
-
self.data[
|
|
398
|
+
self.data[2] = t
|
|
334
399
|
|
|
335
400
|
@property
|
|
336
401
|
def unidade(self) -> Optional[str]:
|
|
@@ -340,11 +405,11 @@ class VMAXT(Register):
|
|
|
340
405
|
:return: A unidade
|
|
341
406
|
:rtype: Optional[str]
|
|
342
407
|
"""
|
|
343
|
-
return self.data[
|
|
408
|
+
return self.data[3]
|
|
344
409
|
|
|
345
410
|
@unidade.setter
|
|
346
411
|
def unidade(self, t: str):
|
|
347
|
-
self.data[
|
|
412
|
+
self.data[3] = t
|
|
348
413
|
|
|
349
414
|
|
|
350
415
|
class VMINT(Register):
|
|
@@ -357,7 +422,8 @@ class VMINT(Register):
|
|
|
357
422
|
IDENTIFIER_DIGITS = 8
|
|
358
423
|
LINE = Line(
|
|
359
424
|
[
|
|
360
|
-
|
|
425
|
+
IntegerField(2, 10),
|
|
426
|
+
IntegerField(4, 13),
|
|
361
427
|
FloatField(7, 18, 3),
|
|
362
428
|
LiteralField(3, 26),
|
|
363
429
|
]
|
|
@@ -371,11 +437,12 @@ class VMINT(Register):
|
|
|
371
437
|
:return: A data de início da modificação
|
|
372
438
|
:rtype: Optional[datetime]
|
|
373
439
|
"""
|
|
374
|
-
return self.data[0]
|
|
440
|
+
return datetime(self.data[1], self.data[0], 1)
|
|
375
441
|
|
|
376
442
|
@data_inicio.setter
|
|
377
443
|
def data_inicio(self, t: datetime):
|
|
378
|
-
self.data[0] = t
|
|
444
|
+
self.data[0] = t.month
|
|
445
|
+
self.data[1] = t.year
|
|
379
446
|
|
|
380
447
|
@property
|
|
381
448
|
def volume(self) -> Optional[float]:
|
|
@@ -385,11 +452,11 @@ class VMINT(Register):
|
|
|
385
452
|
:return: O novo volume
|
|
386
453
|
:rtype: Optional[float]
|
|
387
454
|
"""
|
|
388
|
-
return self.data[
|
|
455
|
+
return self.data[2]
|
|
389
456
|
|
|
390
457
|
@volume.setter
|
|
391
458
|
def volume(self, t: float):
|
|
392
|
-
self.data[
|
|
459
|
+
self.data[2] = t
|
|
393
460
|
|
|
394
461
|
@property
|
|
395
462
|
def unidade(self) -> Optional[str]:
|
|
@@ -399,11 +466,11 @@ class VMINT(Register):
|
|
|
399
466
|
:return: A unidade
|
|
400
467
|
:rtype: Optional[str]
|
|
401
468
|
"""
|
|
402
|
-
return self.data[
|
|
469
|
+
return self.data[3]
|
|
403
470
|
|
|
404
471
|
@unidade.setter
|
|
405
472
|
def unidade(self, t: str):
|
|
406
|
-
self.data[
|
|
473
|
+
self.data[3] = t
|
|
407
474
|
|
|
408
475
|
|
|
409
476
|
class VMINP(Register):
|
|
@@ -416,7 +483,8 @@ class VMINP(Register):
|
|
|
416
483
|
IDENTIFIER_DIGITS = 8
|
|
417
484
|
LINE = Line(
|
|
418
485
|
[
|
|
419
|
-
|
|
486
|
+
IntegerField(2, 10),
|
|
487
|
+
IntegerField(4, 13),
|
|
420
488
|
FloatField(7, 18, 3),
|
|
421
489
|
LiteralField(3, 26),
|
|
422
490
|
]
|
|
@@ -430,11 +498,12 @@ class VMINP(Register):
|
|
|
430
498
|
:return: A data de início da modificação
|
|
431
499
|
:rtype: Optional[datetime]
|
|
432
500
|
"""
|
|
433
|
-
return self.data[0]
|
|
501
|
+
return datetime(self.data[1], self.data[0], 1)
|
|
434
502
|
|
|
435
503
|
@data_inicio.setter
|
|
436
504
|
def data_inicio(self, t: datetime):
|
|
437
|
-
self.data[0] = t
|
|
505
|
+
self.data[0] = t.month
|
|
506
|
+
self.data[1] = t.year
|
|
438
507
|
|
|
439
508
|
@property
|
|
440
509
|
def volume(self) -> Optional[float]:
|
|
@@ -444,11 +513,11 @@ class VMINP(Register):
|
|
|
444
513
|
:return: O novo volume
|
|
445
514
|
:rtype: Optional[float]
|
|
446
515
|
"""
|
|
447
|
-
return self.data[
|
|
516
|
+
return self.data[2]
|
|
448
517
|
|
|
449
518
|
@volume.setter
|
|
450
519
|
def volume(self, t: float):
|
|
451
|
-
self.data[
|
|
520
|
+
self.data[2] = t
|
|
452
521
|
|
|
453
522
|
@property
|
|
454
523
|
def unidade(self) -> Optional[str]:
|
|
@@ -458,11 +527,11 @@ class VMINP(Register):
|
|
|
458
527
|
:return: A unidade
|
|
459
528
|
:rtype: Optional[str]
|
|
460
529
|
"""
|
|
461
|
-
return self.data[
|
|
530
|
+
return self.data[3]
|
|
462
531
|
|
|
463
532
|
@unidade.setter
|
|
464
533
|
def unidade(self, t: str):
|
|
465
|
-
self.data[
|
|
534
|
+
self.data[3] = t
|
|
466
535
|
|
|
467
536
|
|
|
468
537
|
class VAZMINT(Register):
|
|
@@ -475,7 +544,8 @@ class VAZMINT(Register):
|
|
|
475
544
|
IDENTIFIER_DIGITS = 8
|
|
476
545
|
LINE = Line(
|
|
477
546
|
[
|
|
478
|
-
|
|
547
|
+
IntegerField(2, 10),
|
|
548
|
+
IntegerField(4, 13),
|
|
479
549
|
FloatField(7, 18, 2),
|
|
480
550
|
]
|
|
481
551
|
)
|
|
@@ -488,11 +558,12 @@ class VAZMINT(Register):
|
|
|
488
558
|
:return: A data de início da modificação
|
|
489
559
|
:rtype: Optional[datetime]
|
|
490
560
|
"""
|
|
491
|
-
return self.data[0]
|
|
561
|
+
return datetime(self.data[1], self.data[0], 1)
|
|
492
562
|
|
|
493
563
|
@data_inicio.setter
|
|
494
564
|
def data_inicio(self, t: datetime):
|
|
495
|
-
self.data[0] = t
|
|
565
|
+
self.data[0] = t.month
|
|
566
|
+
self.data[1] = t.year
|
|
496
567
|
|
|
497
568
|
@property
|
|
498
569
|
def vazao(self) -> Optional[float]:
|
|
@@ -502,11 +573,11 @@ class VAZMINT(Register):
|
|
|
502
573
|
:return: A nova vazão
|
|
503
574
|
:rtype: Optional[float]
|
|
504
575
|
"""
|
|
505
|
-
return self.data[
|
|
576
|
+
return self.data[2]
|
|
506
577
|
|
|
507
578
|
@vazao.setter
|
|
508
579
|
def vazao(self, t: float):
|
|
509
|
-
self.data[
|
|
580
|
+
self.data[2] = t
|
|
510
581
|
|
|
511
582
|
|
|
512
583
|
class VAZMAXT(Register):
|
|
@@ -519,7 +590,8 @@ class VAZMAXT(Register):
|
|
|
519
590
|
IDENTIFIER_DIGITS = 8
|
|
520
591
|
LINE = Line(
|
|
521
592
|
[
|
|
522
|
-
|
|
593
|
+
IntegerField(2, 10),
|
|
594
|
+
IntegerField(4, 13),
|
|
523
595
|
FloatField(7, 18, 2),
|
|
524
596
|
]
|
|
525
597
|
)
|
|
@@ -532,11 +604,12 @@ class VAZMAXT(Register):
|
|
|
532
604
|
:return: A data de início da modificação
|
|
533
605
|
:rtype: Optional[datetime]
|
|
534
606
|
"""
|
|
535
|
-
return self.data[0]
|
|
607
|
+
return datetime(self.data[1], self.data[0], 1)
|
|
536
608
|
|
|
537
609
|
@data_inicio.setter
|
|
538
610
|
def data_inicio(self, t: datetime):
|
|
539
|
-
self.data[0] = t
|
|
611
|
+
self.data[0] = t.month
|
|
612
|
+
self.data[1] = t.year
|
|
540
613
|
|
|
541
614
|
@property
|
|
542
615
|
def vazao(self) -> Optional[float]:
|
|
@@ -546,11 +619,11 @@ class VAZMAXT(Register):
|
|
|
546
619
|
:return: A nova vazão
|
|
547
620
|
:rtype: Optional[float]
|
|
548
621
|
"""
|
|
549
|
-
return self.data[
|
|
622
|
+
return self.data[2]
|
|
550
623
|
|
|
551
624
|
@vazao.setter
|
|
552
625
|
def vazao(self, t: float):
|
|
553
|
-
self.data[
|
|
626
|
+
self.data[2] = t
|
|
554
627
|
|
|
555
628
|
|
|
556
629
|
class TURBMAXT(Register):
|
|
@@ -563,7 +636,8 @@ class TURBMAXT(Register):
|
|
|
563
636
|
IDENTIFIER_DIGITS = 9
|
|
564
637
|
LINE = Line(
|
|
565
638
|
[
|
|
566
|
-
|
|
639
|
+
IntegerField(2, 10),
|
|
640
|
+
IntegerField(4, 13),
|
|
567
641
|
FloatField(7, 18, 2),
|
|
568
642
|
]
|
|
569
643
|
)
|
|
@@ -576,11 +650,12 @@ class TURBMAXT(Register):
|
|
|
576
650
|
:return: A data de início da modificação
|
|
577
651
|
:rtype: Optional[datetime]
|
|
578
652
|
"""
|
|
579
|
-
return self.data[0]
|
|
653
|
+
return datetime(self.data[1], self.data[0], 1)
|
|
580
654
|
|
|
581
655
|
@data_inicio.setter
|
|
582
656
|
def data_inicio(self, t: datetime):
|
|
583
|
-
self.data[0] = t
|
|
657
|
+
self.data[0] = t.month
|
|
658
|
+
self.data[1] = t.year
|
|
584
659
|
|
|
585
660
|
@property
|
|
586
661
|
def turbinamento(self) -> Optional[float]:
|
|
@@ -590,11 +665,11 @@ class TURBMAXT(Register):
|
|
|
590
665
|
:return: O novo turbinamento
|
|
591
666
|
:rtype: Optional[float]
|
|
592
667
|
"""
|
|
593
|
-
return self.data[
|
|
668
|
+
return self.data[2]
|
|
594
669
|
|
|
595
670
|
@turbinamento.setter
|
|
596
671
|
def turbinamento(self, t: float):
|
|
597
|
-
self.data[
|
|
672
|
+
self.data[2] = t
|
|
598
673
|
|
|
599
674
|
|
|
600
675
|
class TURBMINT(Register):
|
|
@@ -607,7 +682,8 @@ class TURBMINT(Register):
|
|
|
607
682
|
IDENTIFIER_DIGITS = 9
|
|
608
683
|
LINE = Line(
|
|
609
684
|
[
|
|
610
|
-
|
|
685
|
+
IntegerField(2, 10),
|
|
686
|
+
IntegerField(4, 13),
|
|
611
687
|
FloatField(7, 18, 2),
|
|
612
688
|
]
|
|
613
689
|
)
|
|
@@ -620,11 +696,12 @@ class TURBMINT(Register):
|
|
|
620
696
|
:return: A data de início da modificação
|
|
621
697
|
:rtype: Optional[datetime]
|
|
622
698
|
"""
|
|
623
|
-
return self.data[0]
|
|
699
|
+
return datetime(self.data[1], self.data[0], 1)
|
|
624
700
|
|
|
625
701
|
@data_inicio.setter
|
|
626
702
|
def data_inicio(self, t: datetime):
|
|
627
|
-
self.data[0] = t
|
|
703
|
+
self.data[0] = t.month
|
|
704
|
+
self.data[1] = t.year
|
|
628
705
|
|
|
629
706
|
@property
|
|
630
707
|
def turbinamento(self) -> Optional[float]:
|
|
@@ -634,8 +711,8 @@ class TURBMINT(Register):
|
|
|
634
711
|
:return: O novo turbinamento
|
|
635
712
|
:rtype: Optional[float]
|
|
636
713
|
"""
|
|
637
|
-
return self.data[
|
|
714
|
+
return self.data[2]
|
|
638
715
|
|
|
639
716
|
@turbinamento.setter
|
|
640
717
|
def turbinamento(self, t: float):
|
|
641
|
-
self.data[
|
|
718
|
+
self.data[2] = t
|
|
@@ -3,7 +3,7 @@ examples/plot_dger.py,sha256=e8Qi-DEBmxgGBgfJfABqx39rThuRXQlMHTOfobT601U,1563
|
|
|
3
3
|
examples/plot_modif.py,sha256=hqB3WRRYP4CBEvnnhrBwlbIrFWzkiHqgaXe76b3olzo,2735
|
|
4
4
|
examples/plot_pmo.py,sha256=-NgaJnsr8N6-8DWWfSH8n8G8Ad9E0StFJBt21xwZxME,1473
|
|
5
5
|
examples/plot_sistema.py,sha256=mM287WEkPV_5NCz-nB9kH9So9KOAbjBfBeB0PTVfHCA,2422
|
|
6
|
-
inewave/__init__.py,sha256=
|
|
6
|
+
inewave/__init__.py,sha256=B54mRO8_-sByHXiUevblw2KgadGzWmVYGsogkcGgZOs,235
|
|
7
7
|
inewave/config.py,sha256=fMgG2sqE_PNz30QCNxkgfPf78SEOAVfV07kGtO1bREE,1106
|
|
8
8
|
inewave/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
9
|
inewave/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -125,7 +125,7 @@ inewave/newave/modelos/gtminpat.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
|
|
|
125
125
|
inewave/newave/modelos/hidr.py,sha256=-HMrsPjy6XhLQAU3sV8Tj5GrqHzGX0NZZ5Auc-pqUQE,15742
|
|
126
126
|
inewave/newave/modelos/itaipu.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
127
127
|
inewave/newave/modelos/manutt.py,sha256=kOX1XGcIkOW0WCPg7bq7fSDbAACBZ7h5LbzTydgPdoM,3732
|
|
128
|
-
inewave/newave/modelos/modif.py,sha256=
|
|
128
|
+
inewave/newave/modelos/modif.py,sha256=yiM8FgR1V1m5eF-432KOto9kDPVLoyg5HD5SgyarIk4,16644
|
|
129
129
|
inewave/newave/modelos/newavetim.py,sha256=XxIwI47Tg39geiDworvs1Bqc7x_oUrrbwUEqXu3ShwM,2060
|
|
130
130
|
inewave/newave/modelos/nwv_avl_evap.py,sha256=0hsOjpxND9z2KpvaxZEfGF5AS_IJ3K_ROdwKg18zPgo,1208
|
|
131
131
|
inewave/newave/modelos/nwv_cortes_evap.py,sha256=YaWA3kz309p5JYOmowQzRF2Z8eKY14QvvQQxEaKHcY4,1272
|
|
@@ -651,7 +651,7 @@ tests/newave/test_forwarh.py,sha256=Mfb0YR7plQVkYipjYD-Fi2flnOc-d7Q4D7aqXDthvao,
|
|
|
651
651
|
tests/newave/test_ghmin.py,sha256=hy5muLAbW7SgB3ZV6uj0w4jkzc5FUlYvCX2gPYiQhC8,2360
|
|
652
652
|
tests/newave/test_hidr.py,sha256=P_DdI7B4SrNRDpjnVxugX7ipwV8DYCX7jDgC2waPDLk,1628
|
|
653
653
|
tests/newave/test_manutt.py,sha256=vZ-YKzLatzKSd09HXb6DUPge5pOjZIYssBrwofsDYYA,2249
|
|
654
|
-
tests/newave/test_modif.py,sha256=
|
|
654
|
+
tests/newave/test_modif.py,sha256=J67q4p7FqycuB6fFJuS3MKmoKmxcLHqFUmeprYbYw0A,6897
|
|
655
655
|
tests/newave/test_newavetim.py,sha256=_qZbSRyTKoHYeTp7i3V3kprcjMtc9-yKbBxXHyNMuoc,1731
|
|
656
656
|
tests/newave/test_nwv_avl_evap.py,sha256=MuSXR65rZFSOkuSUF3XrErnDJgUboEjGMXWHPOVKiTk,1532
|
|
657
657
|
tests/newave/test_nwv_cortes_evap.py,sha256=D2hkXzdE__s4zmlN1G6OIWIA-AvRqOwtI4Vp0FKZ2-8,1660
|
|
@@ -804,8 +804,8 @@ tests/nwlistop/test_vmort.py,sha256=KUqgO1HznEzu7TX5xu8wLhSl_sKSJteNfMd9zVcruls,
|
|
|
804
804
|
tests/nwlistop/test_vmortm.py,sha256=re8ypER8xgRbgRdgBd1H97G1ebNxtYZn23_nBGyWwhU,1204
|
|
805
805
|
tests/nwlistop/test_vmortsin.py,sha256=LvdpNPPZtnQWIxrLMUx_KIg6k22pOif6SzmRasAjquc,1113
|
|
806
806
|
tests/nwlistop/test_vturuh.py,sha256=wvQ9zq9nuHdt0CPNt3SkPKMGq5WHQs7nZUnRaY33ONQ,1190
|
|
807
|
-
inewave-1.5.
|
|
808
|
-
inewave-1.5.
|
|
809
|
-
inewave-1.5.
|
|
810
|
-
inewave-1.5.
|
|
811
|
-
inewave-1.5.
|
|
807
|
+
inewave-1.5.4.dist-info/LICENSE.md,sha256=0jOBL78mjzscN0-XI-6YtK1IqnODUbG85DaKAMH4XJ8,1070
|
|
808
|
+
inewave-1.5.4.dist-info/METADATA,sha256=i8A1Klu4orf2xELIVc9Jx8EgY2AVOMhA3Q4uCzgBzgw,1958
|
|
809
|
+
inewave-1.5.4.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
|
810
|
+
inewave-1.5.4.dist-info/top_level.txt,sha256=o3hXlvlgJI4qWYy-wVzUYago7roEBl3kP5IL3QR9L70,23
|
|
811
|
+
inewave-1.5.4.dist-info/RECORD,,
|
tests/newave/test_modif.py
CHANGED
|
@@ -75,7 +75,7 @@ def test_registro_vmaxt_modif():
|
|
|
75
75
|
with open("", "") as fp:
|
|
76
76
|
r.read(fp)
|
|
77
77
|
|
|
78
|
-
assert r.data == [
|
|
78
|
+
assert r.data == [12, 2021, 61.310, "'%'"]
|
|
79
79
|
assert r.data_inicio == datetime(2021, 12, 1)
|
|
80
80
|
assert r.volume == 61.310
|
|
81
81
|
assert r.unidade == "'%'"
|
|
@@ -88,7 +88,7 @@ def test_registro_vazmint_modif():
|
|
|
88
88
|
with open("", "") as fp:
|
|
89
89
|
r.read(fp)
|
|
90
90
|
|
|
91
|
-
assert r.data == [
|
|
91
|
+
assert r.data == [10, 2021, 10.00]
|
|
92
92
|
assert r.data_inicio == datetime(2021, 10, 1)
|
|
93
93
|
assert r.vazao == 10.00
|
|
94
94
|
|
|
@@ -146,7 +146,7 @@ def test_registro_vmint_modif():
|
|
|
146
146
|
with open("", "") as fp:
|
|
147
147
|
r.read(fp)
|
|
148
148
|
|
|
149
|
-
assert r.data == [
|
|
149
|
+
assert r.data == [10, 2021, 20.0, "'%'"]
|
|
150
150
|
assert r.data_inicio == datetime(2021, 10, 1)
|
|
151
151
|
assert r.volume == 20.0
|
|
152
152
|
assert r.unidade == "'%'"
|
|
@@ -159,7 +159,7 @@ def test_registro_vminp_modif():
|
|
|
159
159
|
with open("", "") as fp:
|
|
160
160
|
r.read(fp)
|
|
161
161
|
|
|
162
|
-
assert r.data == [
|
|
162
|
+
assert r.data == [10, 2021, 20.0, "'%'"]
|
|
163
163
|
assert r.data_inicio == datetime(2021, 10, 1)
|
|
164
164
|
assert r.volume == 20.0
|
|
165
165
|
assert r.unidade == "'%'"
|
|
@@ -172,7 +172,7 @@ def test_registro_cfuga_modif():
|
|
|
172
172
|
with open("", "") as fp:
|
|
173
173
|
r.read(fp)
|
|
174
174
|
|
|
175
|
-
assert r.data == [
|
|
175
|
+
assert r.data == [10, 2021, 5.60]
|
|
176
176
|
assert r.data_inicio == datetime(2021, 10, 1)
|
|
177
177
|
assert r.nivel == 5.60
|
|
178
178
|
|
|
@@ -184,7 +184,7 @@ def test_registro_cmont_modif():
|
|
|
184
184
|
with open("", "") as fp:
|
|
185
185
|
r.read(fp)
|
|
186
186
|
|
|
187
|
-
assert r.data == [
|
|
187
|
+
assert r.data == [10, 2021, 71.30]
|
|
188
188
|
assert r.data_inicio == datetime(2021, 10, 1)
|
|
189
189
|
assert r.nivel == 71.30
|
|
190
190
|
|
|
@@ -196,7 +196,7 @@ def test_registro_vazmaxt_modif():
|
|
|
196
196
|
with open("", "") as fp:
|
|
197
197
|
r.read(fp)
|
|
198
198
|
|
|
199
|
-
assert r.data == [
|
|
199
|
+
assert r.data == [1, 2020, 0.00]
|
|
200
200
|
assert r.data_inicio == datetime(2020, 1, 1)
|
|
201
201
|
assert r.vazao == 0.0
|
|
202
202
|
|
|
@@ -208,7 +208,7 @@ def test_registro_turbmaxt_modif():
|
|
|
208
208
|
with open("", "") as fp:
|
|
209
209
|
r.read(fp)
|
|
210
210
|
|
|
211
|
-
assert r.data == [
|
|
211
|
+
assert r.data == [1, 2020, 0.00]
|
|
212
212
|
assert r.data_inicio == datetime(2020, 1, 1)
|
|
213
213
|
assert r.turbinamento == 0.0
|
|
214
214
|
|
|
@@ -220,7 +220,7 @@ def test_registro_turbmint_modif():
|
|
|
220
220
|
with open("", "") as fp:
|
|
221
221
|
r.read(fp)
|
|
222
222
|
|
|
223
|
-
assert r.data == [
|
|
223
|
+
assert r.data == [1, 2020, 0.00]
|
|
224
224
|
assert r.data_inicio == datetime(2020, 1, 1)
|
|
225
225
|
assert r.turbinamento == 0.0
|
|
226
226
|
|
|
@@ -258,6 +258,7 @@ def test_leitura_escrita_modif():
|
|
|
258
258
|
linhas_escritas = [
|
|
259
259
|
chamadas[i].args[0] for i in range(1, len(chamadas) - 1)
|
|
260
260
|
]
|
|
261
|
+
|
|
261
262
|
m_releitura: MagicMock = mock_open(read_data="".join(linhas_escritas))
|
|
262
263
|
with patch("builtins.open", m_releitura):
|
|
263
264
|
cf2 = Modif.read(ARQ_TESTE)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|