encommon 0.12.0__tar.gz → 0.12.2__tar.gz

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.
Files changed (81) hide show
  1. {encommon-0.12.0/encommon.egg-info → encommon-0.12.2}/PKG-INFO +31 -14
  2. {encommon-0.12.0 → encommon-0.12.2}/README.md +30 -13
  3. {encommon-0.12.0 → encommon-0.12.2}/encommon/config/logger.py +3 -0
  4. {encommon-0.12.0 → encommon-0.12.2}/encommon/config/params.py +0 -2
  5. {encommon-0.12.0 → encommon-0.12.2}/encommon/times/params.py +0 -4
  6. {encommon-0.12.0 → encommon-0.12.2}/encommon/times/test/test_timers.py +2 -0
  7. {encommon-0.12.0 → encommon-0.12.2}/encommon/times/timers.py +27 -16
  8. {encommon-0.12.0 → encommon-0.12.2}/encommon/times/windows.py +20 -14
  9. encommon-0.12.2/encommon/version.txt +1 -0
  10. {encommon-0.12.0 → encommon-0.12.2/encommon.egg-info}/PKG-INFO +31 -14
  11. encommon-0.12.0/encommon/version.txt +0 -1
  12. {encommon-0.12.0 → encommon-0.12.2}/LICENSE +0 -0
  13. {encommon-0.12.0 → encommon-0.12.2}/MANIFEST.in +0 -0
  14. {encommon-0.12.0 → encommon-0.12.2}/encommon/__init__.py +0 -0
  15. {encommon-0.12.0 → encommon-0.12.2}/encommon/config/__init__.py +0 -0
  16. {encommon-0.12.0 → encommon-0.12.2}/encommon/config/config.py +0 -0
  17. {encommon-0.12.0 → encommon-0.12.2}/encommon/config/files.py +0 -0
  18. {encommon-0.12.0 → encommon-0.12.2}/encommon/config/paths.py +0 -0
  19. {encommon-0.12.0 → encommon-0.12.2}/encommon/config/test/__init__.py +0 -0
  20. {encommon-0.12.0 → encommon-0.12.2}/encommon/config/test/test_config.py +0 -0
  21. {encommon-0.12.0 → encommon-0.12.2}/encommon/config/test/test_files.py +0 -0
  22. {encommon-0.12.0 → encommon-0.12.2}/encommon/config/test/test_logger.py +0 -0
  23. {encommon-0.12.0 → encommon-0.12.2}/encommon/config/test/test_paths.py +0 -0
  24. {encommon-0.12.0 → encommon-0.12.2}/encommon/config/test/test_utils.py +0 -0
  25. {encommon-0.12.0 → encommon-0.12.2}/encommon/config/utils.py +0 -0
  26. {encommon-0.12.0 → encommon-0.12.2}/encommon/conftest.py +0 -0
  27. {encommon-0.12.0 → encommon-0.12.2}/encommon/crypts/__init__.py +0 -0
  28. {encommon-0.12.0 → encommon-0.12.2}/encommon/crypts/crypts.py +0 -0
  29. {encommon-0.12.0 → encommon-0.12.2}/encommon/crypts/hashes.py +0 -0
  30. {encommon-0.12.0 → encommon-0.12.2}/encommon/crypts/params.py +0 -0
  31. {encommon-0.12.0 → encommon-0.12.2}/encommon/crypts/test/__init__.py +0 -0
  32. {encommon-0.12.0 → encommon-0.12.2}/encommon/crypts/test/test_crypts.py +0 -0
  33. {encommon-0.12.0 → encommon-0.12.2}/encommon/crypts/test/test_hashes.py +0 -0
  34. {encommon-0.12.0 → encommon-0.12.2}/encommon/py.typed +0 -0
  35. {encommon-0.12.0 → encommon-0.12.2}/encommon/times/__init__.py +0 -0
  36. {encommon-0.12.0 → encommon-0.12.2}/encommon/times/common.py +0 -0
  37. {encommon-0.12.0 → encommon-0.12.2}/encommon/times/duration.py +0 -0
  38. {encommon-0.12.0 → encommon-0.12.2}/encommon/times/parse.py +0 -0
  39. {encommon-0.12.0 → encommon-0.12.2}/encommon/times/test/__init__.py +0 -0
  40. {encommon-0.12.0 → encommon-0.12.2}/encommon/times/test/test_duration.py +0 -0
  41. {encommon-0.12.0 → encommon-0.12.2}/encommon/times/test/test_params.py +0 -0
  42. {encommon-0.12.0 → encommon-0.12.2}/encommon/times/test/test_parse.py +0 -0
  43. {encommon-0.12.0 → encommon-0.12.2}/encommon/times/test/test_timer.py +0 -0
  44. {encommon-0.12.0 → encommon-0.12.2}/encommon/times/test/test_times.py +0 -0
  45. {encommon-0.12.0 → encommon-0.12.2}/encommon/times/test/test_utils.py +0 -0
  46. {encommon-0.12.0 → encommon-0.12.2}/encommon/times/test/test_window.py +0 -0
  47. {encommon-0.12.0 → encommon-0.12.2}/encommon/times/test/test_windows.py +0 -0
  48. {encommon-0.12.0 → encommon-0.12.2}/encommon/times/timer.py +0 -0
  49. {encommon-0.12.0 → encommon-0.12.2}/encommon/times/times.py +0 -0
  50. {encommon-0.12.0 → encommon-0.12.2}/encommon/times/utils.py +0 -0
  51. {encommon-0.12.0 → encommon-0.12.2}/encommon/times/window.py +0 -0
  52. {encommon-0.12.0 → encommon-0.12.2}/encommon/types/__init__.py +0 -0
  53. {encommon-0.12.0 → encommon-0.12.2}/encommon/types/dicts.py +0 -0
  54. {encommon-0.12.0 → encommon-0.12.2}/encommon/types/empty.py +0 -0
  55. {encommon-0.12.0 → encommon-0.12.2}/encommon/types/notate.py +0 -0
  56. {encommon-0.12.0 → encommon-0.12.2}/encommon/types/strings.py +0 -0
  57. {encommon-0.12.0 → encommon-0.12.2}/encommon/types/test/__init__.py +0 -0
  58. {encommon-0.12.0 → encommon-0.12.2}/encommon/types/test/test_dicts.py +0 -0
  59. {encommon-0.12.0 → encommon-0.12.2}/encommon/types/test/test_empty.py +0 -0
  60. {encommon-0.12.0 → encommon-0.12.2}/encommon/types/test/test_notate.py +0 -0
  61. {encommon-0.12.0 → encommon-0.12.2}/encommon/types/test/test_strings.py +0 -0
  62. {encommon-0.12.0 → encommon-0.12.2}/encommon/utils/__init__.py +0 -0
  63. {encommon-0.12.0 → encommon-0.12.2}/encommon/utils/common.py +0 -0
  64. {encommon-0.12.0 → encommon-0.12.2}/encommon/utils/files.py +0 -0
  65. {encommon-0.12.0 → encommon-0.12.2}/encommon/utils/match.py +0 -0
  66. {encommon-0.12.0 → encommon-0.12.2}/encommon/utils/paths.py +0 -0
  67. {encommon-0.12.0 → encommon-0.12.2}/encommon/utils/sample.py +0 -0
  68. {encommon-0.12.0 → encommon-0.12.2}/encommon/utils/stdout.py +0 -0
  69. {encommon-0.12.0 → encommon-0.12.2}/encommon/utils/test/__init__.py +0 -0
  70. {encommon-0.12.0 → encommon-0.12.2}/encommon/utils/test/test_files.py +0 -0
  71. {encommon-0.12.0 → encommon-0.12.2}/encommon/utils/test/test_match.py +0 -0
  72. {encommon-0.12.0 → encommon-0.12.2}/encommon/utils/test/test_paths.py +0 -0
  73. {encommon-0.12.0 → encommon-0.12.2}/encommon/utils/test/test_sample.py +0 -0
  74. {encommon-0.12.0 → encommon-0.12.2}/encommon/utils/test/test_stdout.py +0 -0
  75. {encommon-0.12.0 → encommon-0.12.2}/encommon.egg-info/SOURCES.txt +0 -0
  76. {encommon-0.12.0 → encommon-0.12.2}/encommon.egg-info/dependency_links.txt +0 -0
  77. {encommon-0.12.0 → encommon-0.12.2}/encommon.egg-info/requires.txt +0 -0
  78. {encommon-0.12.0 → encommon-0.12.2}/encommon.egg-info/top_level.txt +0 -0
  79. {encommon-0.12.0 → encommon-0.12.2}/pyproject.toml +0 -0
  80. {encommon-0.12.0 → encommon-0.12.2}/reqs-install.txt +0 -0
  81. {encommon-0.12.0 → encommon-0.12.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: encommon
3
- Version: 0.12.0
3
+ Version: 0.12.2
4
4
  Summary: Enasis Network Common Library
5
5
  License: MIT
6
6
  Classifier: Programming Language :: Python :: 3
@@ -74,16 +74,33 @@ information found in the `htmlcov` folder in the root of the project.
74
74
  make -s pytest
75
75
  ```
76
76
 
77
- ## Build and upload to PyPi
78
- Build the package.
79
- ```
80
- make -s pypackage
81
- ```
82
- Upload to the test PyPi.
83
- ```
84
- make -s pypi-upload-test
85
- ```
86
- Upload to the prod PyPi.
87
- ```
88
- make -s pypi-upload-prod
89
- ```
77
+ ## Version management
78
+ :warning: Ensure that no changes are pending.
79
+
80
+ 1. Rebuild the environment.
81
+ ```
82
+ make -s check-revenv
83
+ ```
84
+
85
+ 1. Update the [version.txt](encommon/version.txt) file.
86
+
87
+ 1. Push to the `main` branch.
88
+
89
+ 1. Create [repository](https://github.com/enasisnetwork/encommon) release.
90
+
91
+ 1. Build the Python package.<br>
92
+ ```
93
+ make -s pypackage
94
+ ```
95
+
96
+ 1. Upload Python package to PyPi test.
97
+ ```
98
+ make -s pypi-upload-test
99
+ ```
100
+
101
+ 1. Upload Python package to PyPi prod.
102
+ ```
103
+ make -s pypi-upload-prod
104
+ ```
105
+
106
+ 1. Update [Read the Docs](https://encommon.readthedocs.io) documentation.
@@ -55,16 +55,33 @@ information found in the `htmlcov` folder in the root of the project.
55
55
  make -s pytest
56
56
  ```
57
57
 
58
- ## Build and upload to PyPi
59
- Build the package.
60
- ```
61
- make -s pypackage
62
- ```
63
- Upload to the test PyPi.
64
- ```
65
- make -s pypi-upload-test
66
- ```
67
- Upload to the prod PyPi.
68
- ```
69
- make -s pypi-upload-prod
70
- ```
58
+ ## Version management
59
+ :warning: Ensure that no changes are pending.
60
+
61
+ 1. Rebuild the environment.
62
+ ```
63
+ make -s check-revenv
64
+ ```
65
+
66
+ 1. Update the [version.txt](encommon/version.txt) file.
67
+
68
+ 1. Push to the `main` branch.
69
+
70
+ 1. Create [repository](https://github.com/enasisnetwork/encommon) release.
71
+
72
+ 1. Build the Python package.<br>
73
+ ```
74
+ make -s pypackage
75
+ ```
76
+
77
+ 1. Upload Python package to PyPi test.
78
+ ```
79
+ make -s pypi-upload-test
80
+ ```
81
+
82
+ 1. Upload Python package to PyPi prod.
83
+ ```
84
+ make -s pypi-upload-prod
85
+ ```
86
+
87
+ 1. Update [Read the Docs](https://encommon.readthedocs.io) documentation.
@@ -266,6 +266,9 @@ class Message:
266
266
  class FileFormatter(Formatter):
267
267
  """
268
268
  Supplement class for built-in logger exception formatter.
269
+
270
+ .. note::
271
+ Input parameters are not defined, check parent class.
269
272
  """
270
273
 
271
274
 
@@ -37,8 +37,6 @@ class LoggerParams(BaseModel, extra='forbid'):
37
37
  :param stdo_level: Minimum level for the message to pass.
38
38
  :param file_level: Minimum level for the message to pass.
39
39
  :param file_path: Enables writing to the filesystem path.
40
- :param data: Keyword arguments passed to Pydantic model.
41
- Parameter is picked up by autodoc, please ignore.
42
40
  """
43
41
 
44
42
  stdo_level: Optional[LOGLEVELS] = None
@@ -24,8 +24,6 @@ class TimerParams(BaseModel, extra='forbid'):
24
24
 
25
25
  :param timer: Seconds that are used for related timer.
26
26
  :param start: Optional time for when the timer started.
27
- :param data: Keyword arguments passed to Pydantic model.
28
- Parameter is picked up by autodoc, please ignore.
29
27
  """
30
28
 
31
29
  timer: float
@@ -81,8 +79,6 @@ class WindowParams(BaseModel, extra='forbid'):
81
79
  :param stop: Determine the ending for scheduling window.
82
80
  :param anchor: Optionally define time anchor for window.
83
81
  :param delay: Period of time schedulng will be delayed.
84
- :param data: Keyword arguments passed to Pydantic model.
85
- Parameter is picked up by autodoc, please ignore.
86
82
  """
87
83
 
88
84
  window: SCHEDULE
@@ -58,6 +58,7 @@ def timers(
58
58
  timer = TimersTable(
59
59
  group='default',
60
60
  unique='two',
61
+ last='1970-01-01T00:00:00Z',
61
62
  update='1970-01-01T00:00:00Z')
62
63
 
63
64
  session.add(timer)
@@ -68,6 +69,7 @@ def timers(
68
69
  timer = TimersTable(
69
70
  group='default',
70
71
  unique='tre',
72
+ last='1970-01-01T00:00:00Z',
71
73
  update='1970-01-01T00:00:00Z')
72
74
 
73
75
  session.add(timer)
@@ -36,6 +36,9 @@ TIMERS = dict[str, Timer]
36
36
  class SQLBase(DeclarativeBase):
37
37
  """
38
38
  Some additional class that SQLAlchemy requires to work.
39
+
40
+ .. note::
41
+ Input parameters are not defined, check parent class.
39
42
  """
40
43
 
41
44
 
@@ -48,8 +51,6 @@ class TimersTable(SQLBase):
48
51
  Fields are not completely documented for this model.
49
52
  """
50
53
 
51
- __tablename__ = 'timers'
52
-
53
54
  group = Column(
54
55
  String,
55
56
  primary_key=True,
@@ -60,10 +61,16 @@ class TimersTable(SQLBase):
60
61
  primary_key=True,
61
62
  nullable=False)
62
63
 
64
+ last = Column(
65
+ String,
66
+ nullable=False)
67
+
63
68
  update = Column(
64
69
  String,
65
70
  nullable=False)
66
71
 
72
+ __tablename__ = 'timers'
73
+
67
74
 
68
75
 
69
76
  class Timers:
@@ -249,28 +256,30 @@ class Timers:
249
256
  group = self.__group
250
257
 
251
258
  session = self.store_session
252
- table = TimersTable
253
-
254
259
 
255
260
  config = params.timers
256
261
 
257
262
 
258
- records = (
259
- session.query(table)
260
- .filter(table.group == group)
261
- .order_by(table.unique))
263
+ _table = TimersTable
264
+ _group = _table.group
265
+ _unique = _table.unique
262
266
 
263
- for record in records.all():
267
+ query = (
268
+ session.query(_table)
269
+ .filter(_group == group)
270
+ .order_by(_unique))
271
+
272
+ for record in query.all():
264
273
 
265
274
  unique = str(record.unique)
266
- update = str(record.update)
275
+ last = str(record.last)
267
276
 
268
277
  if unique not in config:
269
278
  continue
270
279
 
271
280
  _config = config[unique]
272
281
 
273
- _config.start = update
282
+ _config.start = last
274
283
 
275
284
 
276
285
  items = config.items()
@@ -318,12 +327,14 @@ class Timers:
318
327
  append = TimersTable(
319
328
  group=group,
320
329
  unique=unique,
330
+ last=timer.times.subsec,
321
331
  update=update.subsec)
322
332
 
323
333
  session.merge(append)
324
334
 
325
335
 
326
336
  session.commit()
337
+ session.close()
327
338
 
328
339
 
329
340
  def ready(
@@ -367,12 +378,12 @@ class Timers:
367
378
  :returns: Newly constructed instance of related class.
368
379
  """
369
380
 
370
- timers = self.params.timers
381
+ config = self.params.timers
371
382
 
372
- if unique in timers:
383
+ if unique in config:
373
384
  raise ValueError('unique')
374
385
 
375
- timers[unique] = params
386
+ config[unique] = params
376
387
 
377
388
  self.load_children()
378
389
 
@@ -400,9 +411,9 @@ class Timers:
400
411
 
401
412
  timer = timers[unique]
402
413
 
403
- self.save_children()
414
+ timer.update(value)
404
415
 
405
- return timer.update(value)
416
+ self.save_children()
406
417
 
407
418
 
408
419
  def delete(
@@ -36,6 +36,9 @@ WINDOWS = dict[str, Window]
36
36
  class SQLBase(DeclarativeBase):
37
37
  """
38
38
  Some additional class that SQLAlchemy requires to work.
39
+
40
+ .. note::
41
+ Input parameters are not defined, check parent class.
39
42
  """
40
43
 
41
44
 
@@ -48,8 +51,6 @@ class WindowsTable(SQLBase):
48
51
  Fields are not completely documented for this model.
49
52
  """
50
53
 
51
- __tablename__ = 'windows'
52
-
53
54
  group = Column(
54
55
  String,
55
56
  primary_key=True,
@@ -72,6 +73,8 @@ class WindowsTable(SQLBase):
72
73
  String,
73
74
  nullable=False)
74
75
 
76
+ __tablename__ = 'windows'
77
+
75
78
 
76
79
 
77
80
  class Windows:
@@ -298,18 +301,20 @@ class Windows:
298
301
  group = self.__group
299
302
 
300
303
  session = self.store_session
301
- table = WindowsTable
302
-
303
304
 
304
305
  config = params.windows
305
306
 
306
307
 
307
- records = (
308
- session.query(table)
309
- .filter(table.group == group)
310
- .order_by(table.unique))
308
+ _table = WindowsTable
309
+ _group = _table.group
310
+ _unique = _table.unique
311
+
312
+ query = (
313
+ session.query(_table)
314
+ .filter(_group == group)
315
+ .order_by(_unique))
311
316
 
312
- for record in records.all():
317
+ for record in query.all():
313
318
 
314
319
  unique = str(record.unique)
315
320
  next = str(record.next)
@@ -394,6 +399,7 @@ class Windows:
394
399
 
395
400
 
396
401
  session.commit()
402
+ session.close()
397
403
 
398
404
 
399
405
  def ready(
@@ -437,12 +443,12 @@ class Windows:
437
443
  :returns: Newly constructed instance of related class.
438
444
  """
439
445
 
440
- windows = self.params.windows
446
+ config = self.params.windows
441
447
 
442
- if unique in windows:
448
+ if unique in config:
443
449
  raise ValueError('unique')
444
450
 
445
- windows[unique] = params
451
+ config[unique] = params
446
452
 
447
453
  self.load_children()
448
454
 
@@ -470,9 +476,9 @@ class Windows:
470
476
 
471
477
  window = windows[unique]
472
478
 
473
- self.save_children()
479
+ window.update(value)
474
480
 
475
- return window.update(value)
481
+ self.save_children()
476
482
 
477
483
 
478
484
  def delete(
@@ -0,0 +1 @@
1
+ 0.12.2
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: encommon
3
- Version: 0.12.0
3
+ Version: 0.12.2
4
4
  Summary: Enasis Network Common Library
5
5
  License: MIT
6
6
  Classifier: Programming Language :: Python :: 3
@@ -74,16 +74,33 @@ information found in the `htmlcov` folder in the root of the project.
74
74
  make -s pytest
75
75
  ```
76
76
 
77
- ## Build and upload to PyPi
78
- Build the package.
79
- ```
80
- make -s pypackage
81
- ```
82
- Upload to the test PyPi.
83
- ```
84
- make -s pypi-upload-test
85
- ```
86
- Upload to the prod PyPi.
87
- ```
88
- make -s pypi-upload-prod
89
- ```
77
+ ## Version management
78
+ :warning: Ensure that no changes are pending.
79
+
80
+ 1. Rebuild the environment.
81
+ ```
82
+ make -s check-revenv
83
+ ```
84
+
85
+ 1. Update the [version.txt](encommon/version.txt) file.
86
+
87
+ 1. Push to the `main` branch.
88
+
89
+ 1. Create [repository](https://github.com/enasisnetwork/encommon) release.
90
+
91
+ 1. Build the Python package.<br>
92
+ ```
93
+ make -s pypackage
94
+ ```
95
+
96
+ 1. Upload Python package to PyPi test.
97
+ ```
98
+ make -s pypi-upload-test
99
+ ```
100
+
101
+ 1. Upload Python package to PyPi prod.
102
+ ```
103
+ make -s pypi-upload-prod
104
+ ```
105
+
106
+ 1. Update [Read the Docs](https://encommon.readthedocs.io) documentation.
@@ -1 +0,0 @@
1
- 0.12.0
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes