logger-36 2024.7__tar.gz → 2024.8__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 (48) hide show
  1. {logger-36-2024.7 → logger-36-2024.8}/MANIFEST.in +1 -0
  2. {logger-36-2024.7 → logger-36-2024.8}/PKG-INFO +36 -16
  3. {logger-36-2024.7 → logger-36-2024.8}/README-COPYRIGHT-utf8.txt +3 -3
  4. {logger-36-2024.7 → logger-36-2024.8}/README.rst +35 -15
  5. {logger-36-2024.7 → logger-36-2024.8}/documentation/wiki/description.asciidoc +17 -1
  6. {logger-36-2024.7 → logger-36-2024.8}/logger_36/__init__.py +1 -1
  7. {logger-36-2024.7 → logger-36-2024.8}/logger_36/catalog/config/console_rich.py +1 -1
  8. {logger-36-2024.7 → logger-36-2024.8}/logger_36/catalog/handler/console.py +1 -1
  9. {logger-36-2024.7 → logger-36-2024.8}/logger_36/catalog/handler/console_rich.py +1 -2
  10. {logger-36-2024.7 → logger-36-2024.8}/logger_36/catalog/handler/file.py +1 -1
  11. {logger-36-2024.7 → logger-36-2024.8}/logger_36/catalog/handler/generic.py +1 -1
  12. {logger-36-2024.7 → logger-36-2024.8}/logger_36/catalog/logging/chronos.py +1 -1
  13. {logger-36-2024.7 → logger-36-2024.8}/logger_36/catalog/logging/gpu.py +1 -1
  14. {logger-36-2024.7 → logger-36-2024.8}/logger_36/catalog/logging/memory.py +1 -1
  15. {logger-36-2024.7 → logger-36-2024.8}/logger_36/catalog/logging/system.py +1 -1
  16. {logger-36-2024.7 → logger-36-2024.8}/logger_36/config/issue.py +1 -1
  17. {logger-36-2024.7 → logger-36-2024.8}/logger_36/config/memory.py +1 -1
  18. {logger-36-2024.7 → logger-36-2024.8}/logger_36/config/message.py +1 -1
  19. {logger-36-2024.7 → logger-36-2024.8}/logger_36/config/system.py +1 -1
  20. {logger-36-2024.7 → logger-36-2024.8}/logger_36/constant/generic.py +1 -1
  21. {logger-36-2024.7 → logger-36-2024.8}/logger_36/constant/handler.py +1 -1
  22. {logger-36-2024.7 → logger-36-2024.8}/logger_36/constant/issue.py +1 -1
  23. {logger-36-2024.7 → logger-36-2024.8}/logger_36/constant/logger.py +1 -1
  24. {logger-36-2024.7 → logger-36-2024.8}/logger_36/constant/memory.py +1 -1
  25. {logger-36-2024.7 → logger-36-2024.8}/logger_36/constant/message.py +1 -1
  26. {logger-36-2024.7 → logger-36-2024.8}/logger_36/constant/record.py +1 -1
  27. {logger-36-2024.7 → logger-36-2024.8}/logger_36/constant/system.py +1 -1
  28. {logger-36-2024.7 → logger-36-2024.8}/logger_36/instance.py +1 -1
  29. {logger-36-2024.7 → logger-36-2024.8}/logger_36/main.py +1 -1
  30. {logger-36-2024.7 → logger-36-2024.8}/logger_36/task/format/memory.py +1 -1
  31. {logger-36-2024.7 → logger-36-2024.8}/logger_36/task/format/message.py +1 -1
  32. {logger-36-2024.7 → logger-36-2024.8}/logger_36/task/format/rule.py +1 -1
  33. {logger-36-2024.7 → logger-36-2024.8}/logger_36/task/inspection.py +1 -1
  34. {logger-36-2024.7 → logger-36-2024.8}/logger_36/task/measure/chronos.py +1 -1
  35. {logger-36-2024.7 → logger-36-2024.8}/logger_36/task/measure/memory.py +1 -1
  36. {logger-36-2024.7 → logger-36-2024.8}/logger_36/task/storage.py +1 -1
  37. {logger-36-2024.7 → logger-36-2024.8}/logger_36/type/extension.py +1 -1
  38. {logger-36-2024.7 → logger-36-2024.8}/logger_36/type/issue.py +1 -1
  39. {logger-36-2024.7 → logger-36-2024.8}/logger_36/type/logger.py +1 -1
  40. {logger-36-2024.7 → logger-36-2024.8}/logger_36/version.py +2 -2
  41. {logger-36-2024.7 → logger-36-2024.8}/logger_36.egg-info/PKG-INFO +36 -16
  42. {logger-36-2024.7 → logger-36-2024.8}/pyproject.toml +0 -1
  43. {logger-36-2024.7 → logger-36-2024.8}/setup.py +60 -53
  44. {logger-36-2024.7 → logger-36-2024.8}/README-LICENCE-utf8.txt +0 -0
  45. {logger-36-2024.7 → logger-36-2024.8}/logger_36.egg-info/SOURCES.txt +0 -0
  46. {logger-36-2024.7 → logger-36-2024.8}/logger_36.egg-info/dependency_links.txt +0 -0
  47. {logger-36-2024.7 → logger-36-2024.8}/logger_36.egg-info/top_level.txt +0 -0
  48. {logger-36-2024.7 → logger-36-2024.8}/setup.cfg +0 -0
@@ -1,3 +1,4 @@
1
1
  include README-COPYRIGHT-utf8.txt
2
2
  include README-LICENCE-utf8.txt
3
+ include requirements.txt
3
4
  include documentation/wiki/description.asciidoc
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: logger-36
3
- Version: 2024.7
3
+ Version: 2024.8
4
4
  Summary: Simple logger with a catalog of handlers
5
5
  Home-page: https://src.koda.cnrs.fr/eric.debreuve/logger-36/
6
6
  Author: Eric Debreuve
@@ -18,7 +18,7 @@ Requires-Python: >=3.10
18
18
  Description-Content-Type: text/x-rst
19
19
 
20
20
  ..
21
- Copyright CNRS/Inria/UCA
21
+ Copyright CNRS/Inria/UniCA
22
22
  Contributor(s): Eric Debreuve (since 2023)
23
23
 
24
24
  eric.debreuve@cnrs.fr
@@ -50,7 +50,7 @@ Description-Content-Type: text/x-rst
50
50
  knowledge of the CeCILL license and that you accept its terms.
51
51
 
52
52
  .. |PROJECT_NAME| replace:: logger-36
53
- .. |SHORT_DESCRIPTION| replace:: Simple logger using ``rich_``
53
+ .. |SHORT_DESCRIPTION| replace:: Simple logger with a catalog of handlers
54
54
 
55
55
  .. |PYPI_NAME_LITERAL| replace:: ``logger-36``
56
56
  .. |PYPI_PROJECT_URL| replace:: https://pypi.org/project/logger-36/
@@ -59,6 +59,9 @@ Description-Content-Type: text/x-rst
59
59
  .. |DOCUMENTATION_URL| replace:: https://src.koda.cnrs.fr/eric.debreuve/logger-36/-/wikis/home
60
60
  .. _DOCUMENTATION_URL: https://src.koda.cnrs.fr/eric.debreuve/logger-36/-/wikis/home
61
61
 
62
+ .. |DEPENDENCIES_MANDATORY| replace:: platformdirs
63
+ .. |DEPENDENCIES_OPTIONAL| replace:: psutil, rich
64
+
62
65
 
63
66
 
64
67
  ===================================
@@ -67,6 +70,13 @@ Description-Content-Type: text/x-rst
67
70
 
68
71
 
69
72
 
73
+ Documentation
74
+ =============
75
+
76
+ The documentation is available at |DOCUMENTATION_URL|_.
77
+
78
+
79
+
70
80
  Installation
71
81
  ============
72
82
 
@@ -74,31 +84,41 @@ This project is published
74
84
  on the `Python Package Index (PyPI) <https://pypi.org/>`_
75
85
  at: |PYPI_PROJECT_URL|_.
76
86
  It should be installable from Python distribution platforms or Integrated Development Environments (IDEs).
77
- Otherwise, it can be installed from a command console:
87
+ Otherwise, it can be installed from a command console using `pip <https://pip.pypa.io/>`_:
78
88
 
79
- - For all users, after acquiring administrative rights:
80
- - First installation: ``pip install`` |PYPI_NAME_LITERAL|
81
- - Installation update: ``pip install --upgrade`` |PYPI_NAME_LITERAL|
82
- - For the current user (no administrative rights required):
83
- - First installation: ``pip install --user`` |PYPI_NAME_LITERAL|
84
- - Installation update: ``pip install --user --upgrade`` |PYPI_NAME_LITERAL|
89
+ +--------------+-------------------------------------------------------+----------------------------------------------------------+
90
+ | | For all users (after acquiring administrative rights) | For the current user (no administrative rights required) |
91
+ +==============+=======================================================+==========================================================+
92
+ | Installation | ``pip install`` |PYPI_NAME_LITERAL| | ``pip install --user`` |PYPI_NAME_LITERAL| |
93
+ +--------------+-------------------------------------------------------+----------------------------------------------------------+
94
+ | Update | ``pip install --upgrade`` |PYPI_NAME_LITERAL| | ``pip install --user --upgrade`` |PYPI_NAME_LITERAL| |
95
+ +--------------+-------------------------------------------------------+----------------------------------------------------------+
85
96
 
86
97
 
87
98
 
88
- Documentation
89
- =============
99
+ Dependencies
100
+ ============
90
101
 
91
- The documentation is available at |DOCUMENTATION_URL|_.
102
+ The development relies on several packages:
103
+
104
+ - Mandatory: |DEPENDENCIES_MANDATORY|
105
+ - Optional: |DEPENDENCIES_OPTIONAL|
106
+
107
+ The mandatory dependencies are installed automatically by `pip <https://pip.pypa.io/>`_, if they are not already, as part of the installation of |PROJECT_NAME|.
108
+ Python distribution platforms or Integrated Development Environments (IDEs) should also take care of this.
109
+ The optional dependencies, if any, must be installed independently by following the related instructions, for added functionalities of |PROJECT_NAME|.
92
110
 
93
111
 
94
112
 
95
113
  Acknowledgments
96
114
  ===============
97
115
 
98
- The project is developed with `PyCharm Community <https://www.jetbrains.com/pycharm/>`_.
116
+ .. image:: https://img.shields.io/badge/code%20style-black-000000.svg
117
+ :target: https://github.com/psf/black
118
+ .. image:: https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336
119
+ :target: https://pycqa.github.io/isort/
99
120
 
100
- The development relies on several open-source packages
101
- (see ``install_requires`` in ``setup.py``, if present; otherwise ``import`` statements should be searched for).
121
+ The project is developed with `PyCharm Community <https://www.jetbrains.com/pycharm/>`_.
102
122
 
103
123
  The code is formatted by `Black <https://github.com/psf/black/>`_, *The Uncompromising Code Formatter*.
104
124
 
@@ -1,15 +1,15 @@
1
- Copyright CNRS/Inria/UCA
1
+ Copyright CNRS/Inria/UniCA
2
2
  Contributor(s): Eric Debreuve (since 2023)
3
3
 
4
4
  eric.debreuve@cnrs.fr
5
5
 
6
6
  This software is being developed by Eric Debreuve, a CNRS employee and member of team Morpheme.
7
- Team Morpheme is a joint team between Inria, CNRS, and UCA.
7
+ Team Morpheme is a joint team between Inria, CNRS, and UniCA.
8
8
  It is hosted by the Centre Inria d'Université Côte d'Azur, Laboratory I3S, and Laboratory iBV.
9
9
 
10
10
  CNRS: https://www.cnrs.fr/index.php/en
11
11
  Inria: https://www.inria.fr/en/
12
- UCA: https://univ-cotedazur.eu/
12
+ UniCA: https://univ-cotedazur.eu/
13
13
  Centre Inria d'Université Côte d'Azur: https://www.inria.fr/en/centre/sophia/
14
14
  I3S: https://www.i3s.unice.fr/en/
15
15
  iBV: http://ibv.unice.fr/
@@ -1,5 +1,5 @@
1
1
  ..
2
- Copyright CNRS/Inria/UCA
2
+ Copyright CNRS/Inria/UniCA
3
3
  Contributor(s): Eric Debreuve (since 2023)
4
4
 
5
5
  eric.debreuve@cnrs.fr
@@ -31,7 +31,7 @@
31
31
  knowledge of the CeCILL license and that you accept its terms.
32
32
 
33
33
  .. |PROJECT_NAME| replace:: logger-36
34
- .. |SHORT_DESCRIPTION| replace:: Simple logger using ``rich_``
34
+ .. |SHORT_DESCRIPTION| replace:: Simple logger with a catalog of handlers
35
35
 
36
36
  .. |PYPI_NAME_LITERAL| replace:: ``logger-36``
37
37
  .. |PYPI_PROJECT_URL| replace:: https://pypi.org/project/logger-36/
@@ -40,6 +40,9 @@
40
40
  .. |DOCUMENTATION_URL| replace:: https://src.koda.cnrs.fr/eric.debreuve/logger-36/-/wikis/home
41
41
  .. _DOCUMENTATION_URL: https://src.koda.cnrs.fr/eric.debreuve/logger-36/-/wikis/home
42
42
 
43
+ .. |DEPENDENCIES_MANDATORY| replace:: platformdirs
44
+ .. |DEPENDENCIES_OPTIONAL| replace:: psutil, rich
45
+
43
46
 
44
47
 
45
48
  ===================================
@@ -48,6 +51,13 @@
48
51
 
49
52
 
50
53
 
54
+ Documentation
55
+ =============
56
+
57
+ The documentation is available at |DOCUMENTATION_URL|_.
58
+
59
+
60
+
51
61
  Installation
52
62
  ============
53
63
 
@@ -55,31 +65,41 @@ This project is published
55
65
  on the `Python Package Index (PyPI) <https://pypi.org/>`_
56
66
  at: |PYPI_PROJECT_URL|_.
57
67
  It should be installable from Python distribution platforms or Integrated Development Environments (IDEs).
58
- Otherwise, it can be installed from a command console:
68
+ Otherwise, it can be installed from a command console using `pip <https://pip.pypa.io/>`_:
59
69
 
60
- - For all users, after acquiring administrative rights:
61
- - First installation: ``pip install`` |PYPI_NAME_LITERAL|
62
- - Installation update: ``pip install --upgrade`` |PYPI_NAME_LITERAL|
63
- - For the current user (no administrative rights required):
64
- - First installation: ``pip install --user`` |PYPI_NAME_LITERAL|
65
- - Installation update: ``pip install --user --upgrade`` |PYPI_NAME_LITERAL|
70
+ +--------------+-------------------------------------------------------+----------------------------------------------------------+
71
+ | | For all users (after acquiring administrative rights) | For the current user (no administrative rights required) |
72
+ +==============+=======================================================+==========================================================+
73
+ | Installation | ``pip install`` |PYPI_NAME_LITERAL| | ``pip install --user`` |PYPI_NAME_LITERAL| |
74
+ +--------------+-------------------------------------------------------+----------------------------------------------------------+
75
+ | Update | ``pip install --upgrade`` |PYPI_NAME_LITERAL| | ``pip install --user --upgrade`` |PYPI_NAME_LITERAL| |
76
+ +--------------+-------------------------------------------------------+----------------------------------------------------------+
66
77
 
67
78
 
68
79
 
69
- Documentation
70
- =============
80
+ Dependencies
81
+ ============
71
82
 
72
- The documentation is available at |DOCUMENTATION_URL|_.
83
+ The development relies on several packages:
84
+
85
+ - Mandatory: |DEPENDENCIES_MANDATORY|
86
+ - Optional: |DEPENDENCIES_OPTIONAL|
87
+
88
+ The mandatory dependencies are installed automatically by `pip <https://pip.pypa.io/>`_, if they are not already, as part of the installation of |PROJECT_NAME|.
89
+ Python distribution platforms or Integrated Development Environments (IDEs) should also take care of this.
90
+ The optional dependencies, if any, must be installed independently by following the related instructions, for added functionalities of |PROJECT_NAME|.
73
91
 
74
92
 
75
93
 
76
94
  Acknowledgments
77
95
  ===============
78
96
 
79
- The project is developed with `PyCharm Community <https://www.jetbrains.com/pycharm/>`_.
97
+ .. image:: https://img.shields.io/badge/code%20style-black-000000.svg
98
+ :target: https://github.com/psf/black
99
+ .. image:: https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336
100
+ :target: https://pycqa.github.io/isort/
80
101
 
81
- The development relies on several open-source packages
82
- (see ``install_requires`` in ``setup.py``, if present; otherwise ``import`` statements should be searched for).
102
+ The project is developed with `PyCharm Community <https://www.jetbrains.com/pycharm/>`_.
83
103
 
84
104
  The code is formatted by `Black <https://github.com/psf/black/>`_, *The Uncompromising Code Formatter*.
85
105
 
@@ -1,4 +1,4 @@
1
- // Copyright CNRS/Inria/UCA
1
+ // Copyright CNRS/Inria/UniCA
2
2
  // Contributor(s): Eric Debreuve (since 2023)
3
3
  //
4
4
  // eric.debreuve@cnrs.fr
@@ -39,4 +39,20 @@
39
39
  :REPOSITORY_NAME: logger-36
40
40
  :REPOSITORY_USER: eric.debreuve
41
41
  :REPOSITORY_SITE: src.koda.cnrs.fr
42
+ :DOCUMENTATION_SITE: -/wikis/home
42
43
  :SINCE_YEAR: 2023
44
+
45
+ :LICENSE_SHORT: CeCILL-2.1
46
+ :LICENCE_LONG: CEA CNRS Inria Logiciel Libre License, version 2.1
47
+ :PY_VERSION_MAJOR: 3
48
+ :PY_VERSION_MIN: 3.10
49
+
50
+ :PYPI_NAME: logger-36
51
+ :PYPI_TOPIC: Software Development
52
+ :PYPI_AUDIENCE: Developers
53
+ :PYPI_STATUS: 5 - Production/Stable
54
+
55
+ :IMPORT_NAME: logger_36
56
+ :CONFIG_FOLDER: None
57
+
58
+ :DEPENDENCIES_OPTIONAL: psutil, rich
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -58,7 +58,6 @@ from rich.markup import escape as EscapedForRich
58
58
  from rich.text import Text as text_t
59
59
  from rich.traceback import install as InstallTracebackHandler
60
60
 
61
-
62
61
  _COMMON_TRACEBACK_ARGUMENTS = ("theme", "width")
63
62
  _EXCLUSIVE_TRACEBACK_ARGUMENTS = (
64
63
  "extra_lines",
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -29,4 +29,4 @@
29
29
  # The fact that you are presently reading this means that you have had
30
30
  # knowledge of the CeCILL license and that you accept its terms.
31
31
 
32
- __version__ = "2024.7"
32
+ __version__ = "2024.8"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: logger-36
3
- Version: 2024.7
3
+ Version: 2024.8
4
4
  Summary: Simple logger with a catalog of handlers
5
5
  Home-page: https://src.koda.cnrs.fr/eric.debreuve/logger-36/
6
6
  Author: Eric Debreuve
@@ -18,7 +18,7 @@ Requires-Python: >=3.10
18
18
  Description-Content-Type: text/x-rst
19
19
 
20
20
  ..
21
- Copyright CNRS/Inria/UCA
21
+ Copyright CNRS/Inria/UniCA
22
22
  Contributor(s): Eric Debreuve (since 2023)
23
23
 
24
24
  eric.debreuve@cnrs.fr
@@ -50,7 +50,7 @@ Description-Content-Type: text/x-rst
50
50
  knowledge of the CeCILL license and that you accept its terms.
51
51
 
52
52
  .. |PROJECT_NAME| replace:: logger-36
53
- .. |SHORT_DESCRIPTION| replace:: Simple logger using ``rich_``
53
+ .. |SHORT_DESCRIPTION| replace:: Simple logger with a catalog of handlers
54
54
 
55
55
  .. |PYPI_NAME_LITERAL| replace:: ``logger-36``
56
56
  .. |PYPI_PROJECT_URL| replace:: https://pypi.org/project/logger-36/
@@ -59,6 +59,9 @@ Description-Content-Type: text/x-rst
59
59
  .. |DOCUMENTATION_URL| replace:: https://src.koda.cnrs.fr/eric.debreuve/logger-36/-/wikis/home
60
60
  .. _DOCUMENTATION_URL: https://src.koda.cnrs.fr/eric.debreuve/logger-36/-/wikis/home
61
61
 
62
+ .. |DEPENDENCIES_MANDATORY| replace:: platformdirs
63
+ .. |DEPENDENCIES_OPTIONAL| replace:: psutil, rich
64
+
62
65
 
63
66
 
64
67
  ===================================
@@ -67,6 +70,13 @@ Description-Content-Type: text/x-rst
67
70
 
68
71
 
69
72
 
73
+ Documentation
74
+ =============
75
+
76
+ The documentation is available at |DOCUMENTATION_URL|_.
77
+
78
+
79
+
70
80
  Installation
71
81
  ============
72
82
 
@@ -74,31 +84,41 @@ This project is published
74
84
  on the `Python Package Index (PyPI) <https://pypi.org/>`_
75
85
  at: |PYPI_PROJECT_URL|_.
76
86
  It should be installable from Python distribution platforms or Integrated Development Environments (IDEs).
77
- Otherwise, it can be installed from a command console:
87
+ Otherwise, it can be installed from a command console using `pip <https://pip.pypa.io/>`_:
78
88
 
79
- - For all users, after acquiring administrative rights:
80
- - First installation: ``pip install`` |PYPI_NAME_LITERAL|
81
- - Installation update: ``pip install --upgrade`` |PYPI_NAME_LITERAL|
82
- - For the current user (no administrative rights required):
83
- - First installation: ``pip install --user`` |PYPI_NAME_LITERAL|
84
- - Installation update: ``pip install --user --upgrade`` |PYPI_NAME_LITERAL|
89
+ +--------------+-------------------------------------------------------+----------------------------------------------------------+
90
+ | | For all users (after acquiring administrative rights) | For the current user (no administrative rights required) |
91
+ +==============+=======================================================+==========================================================+
92
+ | Installation | ``pip install`` |PYPI_NAME_LITERAL| | ``pip install --user`` |PYPI_NAME_LITERAL| |
93
+ +--------------+-------------------------------------------------------+----------------------------------------------------------+
94
+ | Update | ``pip install --upgrade`` |PYPI_NAME_LITERAL| | ``pip install --user --upgrade`` |PYPI_NAME_LITERAL| |
95
+ +--------------+-------------------------------------------------------+----------------------------------------------------------+
85
96
 
86
97
 
87
98
 
88
- Documentation
89
- =============
99
+ Dependencies
100
+ ============
90
101
 
91
- The documentation is available at |DOCUMENTATION_URL|_.
102
+ The development relies on several packages:
103
+
104
+ - Mandatory: |DEPENDENCIES_MANDATORY|
105
+ - Optional: |DEPENDENCIES_OPTIONAL|
106
+
107
+ The mandatory dependencies are installed automatically by `pip <https://pip.pypa.io/>`_, if they are not already, as part of the installation of |PROJECT_NAME|.
108
+ Python distribution platforms or Integrated Development Environments (IDEs) should also take care of this.
109
+ The optional dependencies, if any, must be installed independently by following the related instructions, for added functionalities of |PROJECT_NAME|.
92
110
 
93
111
 
94
112
 
95
113
  Acknowledgments
96
114
  ===============
97
115
 
98
- The project is developed with `PyCharm Community <https://www.jetbrains.com/pycharm/>`_.
116
+ .. image:: https://img.shields.io/badge/code%20style-black-000000.svg
117
+ :target: https://github.com/psf/black
118
+ .. image:: https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336
119
+ :target: https://pycqa.github.io/isort/
99
120
 
100
- The development relies on several open-source packages
101
- (see ``install_requires`` in ``setup.py``, if present; otherwise ``import`` statements should be searched for).
121
+ The project is developed with `PyCharm Community <https://www.jetbrains.com/pycharm/>`_.
102
122
 
103
123
  The code is formatted by `Black <https://github.com/psf/black/>`_, *The Uncompromising Code Formatter*.
104
124
 
@@ -1,6 +1,5 @@
1
1
  [build-system]
2
2
  requires = [
3
3
  "setuptools>=42",
4
- "wheel"
5
4
  ]
6
5
  build-backend = "setuptools.build_meta"
@@ -1,4 +1,4 @@
1
- # Copyright CNRS/Inria/UCA
1
+ # Copyright CNRS/Inria/UniCA
2
2
  # Contributor(s): Eric Debreuve (since 2023)
3
3
  #
4
4
  # eric.debreuve@cnrs.fr
@@ -30,15 +30,18 @@
30
30
  # knowledge of the CeCILL license and that you accept its terms.
31
31
 
32
32
  import re as rgex
33
+ from importlib import util
33
34
  from pathlib import Path as path_t
35
+ from typing import Dict
34
36
 
35
37
  from setuptools import setup
36
38
 
37
39
  HERE = path_t(__file__).parent.resolve()
38
- DOCUMENTATION_HOME = HERE / "documentation" / "wiki" / "description.asciidoc"
40
+ LOCAL_DOCUMENTATION = HERE / "documentation" / "wiki"
41
+ ASCIIDOC_DESCRIPTION = "description.asciidoc"
39
42
 
40
43
 
41
- def DescriptionFromDocumentation(documentation: path_t, /) -> dict[str, str]:
44
+ def DescriptionFromAsciidoc(documentation: path_t, /) -> Dict[str, str]:
42
45
  """"""
43
46
  output = {}
44
47
 
@@ -54,59 +57,50 @@ def DescriptionFromDocumentation(documentation: path_t, /) -> dict[str, str]:
54
57
  return output
55
58
 
56
59
 
57
- DESCRIPTION = DescriptionFromDocumentation(DOCUMENTATION_HOME)
58
-
59
-
60
- LICENSE_SHORT = "CeCILL-2.1"
61
- LICENCE_LONG = "CEA CNRS Inria Logiciel Libre License, version 2.1"
62
- PY_VERSION = "3"
63
- PY_VERSION_MIN = "3.10"
64
-
65
- DOCUMENTATION_SITE = "-/wikis/home"
66
-
67
- PYPI_NAME = "logger-36"
68
- PYPI_TOPIC = "Software Development"
69
- PYPI_AUDIENCE = "Developers"
70
- PYPI_STATUS = "5 - Production/Stable"
71
-
72
- IMPORT_NAME = "logger_36"
60
+ DESCRIPTION = DescriptionFromAsciidoc(LOCAL_DOCUMENTATION / ASCIIDOC_DESCRIPTION)
73
61
  PACKAGES = [
74
- IMPORT_NAME,
75
- f"{IMPORT_NAME}.catalog",
76
- f"{IMPORT_NAME}.catalog.config",
77
- f"{IMPORT_NAME}.catalog.handler",
78
- f"{IMPORT_NAME}.catalog.logging",
79
- f"{IMPORT_NAME}.config",
80
- f"{IMPORT_NAME}.constant",
81
- f"{IMPORT_NAME}.task",
82
- f"{IMPORT_NAME}.task.format",
83
- f"{IMPORT_NAME}.task.measure",
84
- f"{IMPORT_NAME}.type",
62
+ DESCRIPTION["IMPORT_NAME"],
63
+ f"{DESCRIPTION['IMPORT_NAME']}.catalog",
64
+ f"{DESCRIPTION['IMPORT_NAME']}.catalog.config",
65
+ f"{DESCRIPTION['IMPORT_NAME']}.catalog.handler",
66
+ f"{DESCRIPTION['IMPORT_NAME']}.catalog.logging",
67
+ f"{DESCRIPTION['IMPORT_NAME']}.config",
68
+ f"{DESCRIPTION['IMPORT_NAME']}.constant",
69
+ f"{DESCRIPTION['IMPORT_NAME']}.task",
70
+ f"{DESCRIPTION['IMPORT_NAME']}.task.format",
71
+ f"{DESCRIPTION['IMPORT_NAME']}.task.measure",
72
+ f"{DESCRIPTION['IMPORT_NAME']}.type",
85
73
  ]
86
- EXCLUDED_FOLDERS = ()
87
- ENTRY_POINTS = {}
74
+ EXCLUDED_PACKAGES = (
75
+ f"{DESCRIPTION['IMPORT_NAME']}.documentation",
76
+ )
77
+ ENTRY_POINTS = {
78
+ "console_scripts": [],
79
+ "gui_scripts": [],
80
+ }
88
81
 
89
82
 
90
83
  long_description = (HERE / "README.rst").read_text(encoding="utf-8")
84
+
91
85
  repository_url = (
92
86
  f"https://"
93
87
  f"{DESCRIPTION['REPOSITORY_SITE']}/"
94
88
  f"{DESCRIPTION['REPOSITORY_USER']}/"
95
89
  f"{DESCRIPTION['REPOSITORY_NAME']}/"
96
90
  )
97
- documentation_url = f"{repository_url}/{DOCUMENTATION_SITE}"
91
+ documentation_url = f"{repository_url}/{DESCRIPTION['DOCUMENTATION_SITE']}"
98
92
 
99
93
 
100
94
  def CheckCoherenceBetweenDeclarationAndReality() -> None:
101
95
  """"""
102
- folders = [IMPORT_NAME]
103
- for node in (HERE / IMPORT_NAME).rglob("*"):
96
+ folders = [DESCRIPTION["IMPORT_NAME"]]
97
+ for node in (HERE / DESCRIPTION["IMPORT_NAME"]).rglob("*"):
104
98
  if node.is_dir() and not str(node).startswith("."):
105
99
  node = node.relative_to(HERE)
106
100
  node = ".".join(node.parts)
107
101
  if not (
108
- (node in EXCLUDED_FOLDERS)
109
- or any(node.startswith(_fld + ".") for _fld in EXCLUDED_FOLDERS)
102
+ (node in EXCLUDED_PACKAGES)
103
+ or any(node.startswith(_fld + ".") for _fld in EXCLUDED_PACKAGES)
110
104
  ):
111
105
  folders.append(node)
112
106
  folders = sorted(folders)
@@ -116,21 +110,34 @@ def CheckCoherenceBetweenDeclarationAndReality() -> None:
116
110
  raise ValueError(
117
111
  f"Mismatch between declared and found packages:\n"
118
112
  f" - Declared=\n {packages}\n"
119
- f" - Found=\n {folders}"
113
+ f" - Found=\n {folders}\n"
114
+ f" - Undeclared=\n {set(folders).difference(packages)}\n"
115
+ f" - Nonexistent=\n {set(packages).difference(folders)}"
120
116
  )
121
117
 
122
118
 
123
- def Version():
119
+ def Version() -> str:
124
120
  """"""
125
- contents = {}
126
- with open(HERE / IMPORT_NAME / "version.py") as accessor:
127
- exec(accessor.read(), contents)
121
+ where = HERE / DESCRIPTION["IMPORT_NAME"] / "version.py"
122
+ spec = util.spec_from_file_location(where.stem, where)
123
+ module = spec.loader.load_module(spec.name)
128
124
 
129
- output = contents["__version__"]
125
+ output = module.__version__
130
126
  if isinstance(output, str) and rgex.fullmatch(r"20[0-9]{2}\.[1-9][0-9]*", output):
131
127
  return output
132
128
 
133
- raise ValueError(f"Invalid version: {output}.")
129
+ raise ValueError(f"{output}: Invalid version")
130
+
131
+
132
+ def Requirements() -> tuple[str, ...]:
133
+ """"""
134
+ if not (HERE / "requirements.txt").is_file():
135
+ return ()
136
+
137
+ with open(HERE / "requirements.txt") as accessor:
138
+ output = accessor.readlines()
139
+
140
+ return tuple(output)
134
141
 
135
142
 
136
143
  if __name__ == "__main__":
@@ -141,19 +148,19 @@ if __name__ == "__main__":
141
148
  author=DESCRIPTION["AUTHOR"],
142
149
  author_email=DESCRIPTION["EMAIL"],
143
150
  #
144
- name=PYPI_NAME,
151
+ name=DESCRIPTION["PYPI_NAME"],
145
152
  description=DESCRIPTION["SHORT_DESCRIPTION"],
146
153
  long_description=long_description,
147
154
  long_description_content_type="text/x-rst",
148
- license=LICENSE_SHORT,
155
+ license=DESCRIPTION["LICENSE_SHORT"],
149
156
  version=Version(),
150
157
  #
151
158
  classifiers=[
152
- f"Topic :: {PYPI_TOPIC}",
153
- f"Intended Audience :: {PYPI_AUDIENCE}",
154
- f"License :: OSI Approved :: {LICENCE_LONG} ({LICENSE_SHORT})",
155
- f"Programming Language :: Python :: {PY_VERSION}",
156
- f"Development Status :: {PYPI_STATUS}",
159
+ f"Topic :: {DESCRIPTION['PYPI_TOPIC']}",
160
+ f"Intended Audience :: {DESCRIPTION['PYPI_AUDIENCE']}",
161
+ f"License :: OSI Approved :: {DESCRIPTION['LICENCE_LONG']} ({DESCRIPTION['LICENSE_SHORT']})",
162
+ f"Programming Language :: Python :: {DESCRIPTION['PY_VERSION_MAJOR']}",
163
+ f"Development Status :: {DESCRIPTION['PYPI_STATUS']}",
157
164
  ],
158
165
  keywords=DESCRIPTION["KEYWORDS"],
159
166
  #
@@ -165,6 +172,6 @@ if __name__ == "__main__":
165
172
  #
166
173
  packages=PACKAGES,
167
174
  entry_points=ENTRY_POINTS,
168
- python_requires=f">={PY_VERSION_MIN}",
169
- install_requires=[],
175
+ python_requires=f">={DESCRIPTION['PY_VERSION_MIN']}",
176
+ install_requires=Requirements(),
170
177
  )
File without changes