log21 2.10.2__tar.gz → 3.0.0__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 (30) hide show
  1. {log21-2.10.2 → log21-3.0.0}/PKG-INFO +88 -27
  2. log21-2.10.2/src/log21.egg-info/PKG-INFO → log21-3.0.0/README.md +75 -39
  3. {log21-2.10.2 → log21-3.0.0}/pyproject.toml +22 -30
  4. {log21-2.10.2 → log21-3.0.0}/src/log21/__init__.py +121 -102
  5. log21-3.0.0/src/log21/_argparse.py +2690 -0
  6. log21-3.0.0/src/log21/_module_helper.py +22 -0
  7. log21-2.10.2/src/log21/Argparse.py → log21-3.0.0/src/log21/argparse.py +167 -142
  8. log21-2.10.2/src/log21/Argumentify.py → log21-3.0.0/src/log21/argumentify.py +62 -56
  9. log21-2.10.2/src/log21/Colors.py → log21-3.0.0/src/log21/colors.py +11 -12
  10. log21-3.0.0/src/log21/crash_reporter/__init__.py +17 -0
  11. log21-2.10.2/src/log21/CrashReporter/Formatters.py → log21-3.0.0/src/log21/crash_reporter/formatters.py +6 -2
  12. log21-2.10.2/src/log21/CrashReporter/Reporters.py → log21-3.0.0/src/log21/crash_reporter/reporters.py +43 -41
  13. log21-2.10.2/src/log21/FileHandler.py → log21-3.0.0/src/log21/file_handler.py +12 -9
  14. log21-2.10.2/src/log21/Formatters.py → log21-3.0.0/src/log21/formatters.py +41 -46
  15. log21-2.10.2/src/log21/Levels.py → log21-3.0.0/src/log21/levels.py +1 -1
  16. log21-2.10.2/src/log21/Logger.py → log21-3.0.0/src/log21/logger.py +53 -35
  17. log21-2.10.2/src/log21/LoggingWindow.py → log21-3.0.0/src/log21/logging_window.py +115 -112
  18. log21-2.10.2/src/log21/Manager.py → log21-3.0.0/src/log21/manager.py +20 -12
  19. log21-2.10.2/src/log21/PPrint.py → log21-3.0.0/src/log21/pprint.py +250 -50
  20. log21-2.10.2/src/log21/ProgressBar.py → log21-3.0.0/src/log21/progress_bar.py +59 -16
  21. log21-2.10.2/src/log21/StreamHandler.py → log21-3.0.0/src/log21/stream_handler.py +20 -15
  22. log21-2.10.2/src/log21/TreePrint.py → log21-3.0.0/src/log21/tree_print.py +61 -23
  23. log21-2.10.2/LICENSE.txt +0 -201
  24. log21-2.10.2/README.md +0 -110
  25. log21-2.10.2/setup.cfg +0 -4
  26. log21-2.10.2/src/log21/CrashReporter/__init__.py +0 -13
  27. log21-2.10.2/src/log21.egg-info/SOURCES.txt +0 -25
  28. log21-2.10.2/src/log21.egg-info/dependency_links.txt +0 -1
  29. log21-2.10.2/src/log21.egg-info/requires.txt +0 -10
  30. log21-2.10.2/src/log21.egg-info/top_level.txt +0 -1
@@ -1,33 +1,27 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: log21
3
- Version: 2.10.2
4
- Summary: A simple logging package that helps you log colorized messages in Windows console.
5
- Author-email: "CodeWriter21(Mehrad Pooryoussof)" <CodeWriter21@gmail.com>
6
- License: Apache License 2.0
7
- Project-URL: Homepage, https://github.com/MPCodeWriter21/log21
8
- Project-URL: Donations, https://github.com/MPCodeWriter21/log21/blob/master/DONATE.md
9
- Project-URL: Source, https://github.com/MPCodeWriter21/log21
3
+ Version: 3.0.0
4
+ Summary: A simple logging package
10
5
  Keywords: python,log,colorize,color,logging,Python3,CodeWriter21
6
+ Author: CodeWriter21(Mehrad Pooryoussof)
7
+ Author-email: CodeWriter21(Mehrad Pooryoussof) <CodeWriter21@gmail.com>
8
+ License: Apache License 2.0
11
9
  Classifier: Intended Audience :: Developers
12
10
  Classifier: Programming Language :: Python :: 3
13
- Classifier: Programming Language :: Python :: 3.7
11
+ Classifier: Programming Language :: Python :: 3.9
14
12
  Classifier: Programming Language :: Python :: 3.10
15
13
  Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
16
15
  Classifier: Operating System :: Unix
17
16
  Classifier: Operating System :: Microsoft :: Windows
18
17
  Classifier: Operating System :: MacOS :: MacOS X
19
- Requires-Python: >=3.8
20
- Description-Content-Type: text/markdown
21
- License-File: LICENSE.txt
22
18
  Requires-Dist: webcolors
23
19
  Requires-Dist: docstring-parser
24
- Provides-Extra: dev
25
- Requires-Dist: yapf; extra == "dev"
26
- Requires-Dist: isort; extra == "dev"
27
- Requires-Dist: docformatter; extra == "dev"
28
- Requires-Dist: pylint; extra == "dev"
29
- Requires-Dist: json5; extra == "dev"
30
- Requires-Dist: pytest; extra == "dev"
20
+ Requires-Python: >=3.9
21
+ Project-URL: Donations, https://github.com/MPCodeWriter21/log21/blob/master/DONATE.md
22
+ Project-URL: Homepage, https://github.com/MPCodeWriter21/log21
23
+ Project-URL: Source, https://github.com/MPCodeWriter21/log21
24
+ Description-Content-Type: text/markdown
31
25
 
32
26
  log21
33
27
  =====
@@ -46,15 +40,15 @@ Features
46
40
 
47
41
  + Colors : The main reason for this package was to log text in the Windows console with
48
42
  the support of ANSI colors.
49
- + Argument parsing : log21's argument parser can be used like python's argparse but it
43
+ + Argument parsing : log21's argument parser can be used like python's argparse, but it
50
44
  also colorizes the output.
51
45
  + Logging : A similar logger to logging. Logger but with colorized output and other
52
46
  options such as levelname modifications. It can also decolorize the output if you want
53
47
  to log into a file.
54
48
  + Pretty printing : Have you ever wanted to colorize the output of the pprint module?
55
49
  log21's pretty printer can do that.
56
- + Tree printing : You can pass a dict or list to `log21.tree_print` function and it will
57
- print it in a tree-like structure. It's also colorized XD.
50
+ + Tree printing : You can pass a dict or list to `log21.tree_print` function, and it
51
+ will print it in a tree-like structure. It's also colorized XD.
58
52
  + ProgressBar : log21's progress bar can be used to show progress of a process in a
59
53
  beautiful way.
60
54
  + LoggingWindow : Helps you to log messages and debug your code in a window other than
@@ -97,12 +91,78 @@ Or let the pip get it using git:
97
91
  pip install git+https://github.com/MPCodeWriter21/log21
98
92
  ```
99
93
 
100
- Changes
101
- -------
94
+ Changelog
95
+ ---------
96
+
97
+ ### v3.0.0
98
+
99
+ This release introduces a cleaned-up internal structure, stricter naming conventions,
100
+ and several quality-of-life improvements. While most users will not notice behavioral
101
+ changes, **v3 contains breaking changes for code that relies on internal imports or
102
+ specific exception names**.
103
+
104
+ #### Breaking Changes
105
+
106
+ + **Internal module renaming and normalization**
107
+ + All internal modules were renamed to lowercase and, in some cases, split or
108
+ reorganized.
109
+ + Imports such as `log21.Colors`, `log21.Logger`, `log21.ProgressBar`, etc. are no
110
+ longer valid.
111
+ + Users importing from internal modules must update their imports to the new module
112
+ names.
113
+ + Public imports from `log21` remain supported.
114
+
115
+ + **Argumentify exception renames**
116
+ + Several exceptions were renamed to follow a consistent `*Error` naming convention:
117
+ + `TooFewArguments` → `TooFewArgumentsError`
118
+ + `RequiredArgument` → `RequiredArgumentError`
119
+ + `IncompatibleArguments` → `IncompatibleArgumentsError`
120
+ + Code that explicitly raises or catches these exceptions must be updated.
121
+
122
+ #### Changes
123
+
124
+ + **Crash reporter behavior improvement**
125
+ + Prevented the default file crash reporter from creating `.crash_report` files when it
126
+ is not actually used.
127
+ + Implemented using an internal `FakeModule` helper.
128
+
129
+ + **Argparse compatibility update**
130
+ + Bundled and used the Python 3.13 `argparse` implementation to ensure consistent
131
+ behavior across supported Python versions.
132
+
133
+ + **Progress bar module rename**
134
+ + Renamed the internal progress bar module to `progress_bar` for consistency with the
135
+ new naming scheme.
136
+ + This will not break the usages of `log21.progress_bar(...)` since the call
137
+ functionality was added to the module using the `FakeModule` helper.
138
+
139
+ + **Examples added and updated**
140
+ + Added new example code files.
141
+ + Updated existing examples to match the v3 API and conventions.
142
+
143
+ #### Fixes
144
+
145
+ + Resolved various linting and static-analysis issues across the codebase.
146
+ + Addressed minor compatibility issues uncovered by running linters and pre-commit hooks.
147
+ + Resolved errors occurring in environments with newer versions of argparse.
148
+
149
+ #### Internal and Maintenance Changes
150
+
151
+ + Migrated the build system configuration to `uv`.
152
+ + Updated Python version classifiers and set the supported Python version to 3.9+.
153
+ + Added `vermin` to the pre-commit configuration.
154
+ + Updated `.gitignore`, license metadata, and tool configurations.
155
+ + Silenced and resolved a large number of linter warnings.
156
+ + General internal refactoring with no intended user-visible behavioral changes.
102
157
 
103
- ### 2.10.1
158
+ #### Notes
104
159
 
105
- + Updated the Argparse module to be usable with python 3.12.3.
160
+ + There are **no intentional behavioral changes** in logging output, argument parsing
161
+ logic, or UI components.
162
+ + Most projects will require **minimal or no changes** unless they depend on internal
163
+ modules or renamed exceptions.
164
+ + See [MIGRATION-V2-V3.md](https://github.com/MPCodeWriter21/log21/blob/master/MIGRATION-V2-V3.md)
165
+ for detailed upgrade instructions.
106
166
 
107
167
  [Full CHANGELOG](https://github.com/MPCodeWriter21/log21/blob/master/CHANGELOG.md)
108
168
 
@@ -132,7 +192,8 @@ In order to support this project you can donate some crypto of your choice 8D
132
192
 
133
193
  [Donate Addresses](https://github.com/MPCodeWriter21/log21/blob/master/DONATE.md)
134
194
 
135
- Or if you can't, give [this project](https://github.com/MPCodeWriter21/log21) a star on GitHub :)
195
+ Or if you can't, give [this project](https://github.com/MPCodeWriter21/log21) a star on
196
+ GitHub :)
136
197
 
137
198
  References
138
199
  ----------
@@ -1,34 +1,3 @@
1
- Metadata-Version: 2.1
2
- Name: log21
3
- Version: 2.10.2
4
- Summary: A simple logging package that helps you log colorized messages in Windows console.
5
- Author-email: "CodeWriter21(Mehrad Pooryoussof)" <CodeWriter21@gmail.com>
6
- License: Apache License 2.0
7
- Project-URL: Homepage, https://github.com/MPCodeWriter21/log21
8
- Project-URL: Donations, https://github.com/MPCodeWriter21/log21/blob/master/DONATE.md
9
- Project-URL: Source, https://github.com/MPCodeWriter21/log21
10
- Keywords: python,log,colorize,color,logging,Python3,CodeWriter21
11
- Classifier: Intended Audience :: Developers
12
- Classifier: Programming Language :: Python :: 3
13
- Classifier: Programming Language :: Python :: 3.7
14
- Classifier: Programming Language :: Python :: 3.10
15
- Classifier: Programming Language :: Python :: 3.11
16
- Classifier: Operating System :: Unix
17
- Classifier: Operating System :: Microsoft :: Windows
18
- Classifier: Operating System :: MacOS :: MacOS X
19
- Requires-Python: >=3.8
20
- Description-Content-Type: text/markdown
21
- License-File: LICENSE.txt
22
- Requires-Dist: webcolors
23
- Requires-Dist: docstring-parser
24
- Provides-Extra: dev
25
- Requires-Dist: yapf; extra == "dev"
26
- Requires-Dist: isort; extra == "dev"
27
- Requires-Dist: docformatter; extra == "dev"
28
- Requires-Dist: pylint; extra == "dev"
29
- Requires-Dist: json5; extra == "dev"
30
- Requires-Dist: pytest; extra == "dev"
31
-
32
1
  log21
33
2
  =====
34
3
 
@@ -46,15 +15,15 @@ Features
46
15
 
47
16
  + Colors : The main reason for this package was to log text in the Windows console with
48
17
  the support of ANSI colors.
49
- + Argument parsing : log21's argument parser can be used like python's argparse but it
18
+ + Argument parsing : log21's argument parser can be used like python's argparse, but it
50
19
  also colorizes the output.
51
20
  + Logging : A similar logger to logging. Logger but with colorized output and other
52
21
  options such as levelname modifications. It can also decolorize the output if you want
53
22
  to log into a file.
54
23
  + Pretty printing : Have you ever wanted to colorize the output of the pprint module?
55
24
  log21's pretty printer can do that.
56
- + Tree printing : You can pass a dict or list to `log21.tree_print` function and it will
57
- print it in a tree-like structure. It's also colorized XD.
25
+ + Tree printing : You can pass a dict or list to `log21.tree_print` function, and it
26
+ will print it in a tree-like structure. It's also colorized XD.
58
27
  + ProgressBar : log21's progress bar can be used to show progress of a process in a
59
28
  beautiful way.
60
29
  + LoggingWindow : Helps you to log messages and debug your code in a window other than
@@ -97,12 +66,78 @@ Or let the pip get it using git:
97
66
  pip install git+https://github.com/MPCodeWriter21/log21
98
67
  ```
99
68
 
100
- Changes
101
- -------
69
+ Changelog
70
+ ---------
71
+
72
+ ### v3.0.0
73
+
74
+ This release introduces a cleaned-up internal structure, stricter naming conventions,
75
+ and several quality-of-life improvements. While most users will not notice behavioral
76
+ changes, **v3 contains breaking changes for code that relies on internal imports or
77
+ specific exception names**.
78
+
79
+ #### Breaking Changes
80
+
81
+ + **Internal module renaming and normalization**
82
+ + All internal modules were renamed to lowercase and, in some cases, split or
83
+ reorganized.
84
+ + Imports such as `log21.Colors`, `log21.Logger`, `log21.ProgressBar`, etc. are no
85
+ longer valid.
86
+ + Users importing from internal modules must update their imports to the new module
87
+ names.
88
+ + Public imports from `log21` remain supported.
89
+
90
+ + **Argumentify exception renames**
91
+ + Several exceptions were renamed to follow a consistent `*Error` naming convention:
92
+ + `TooFewArguments` → `TooFewArgumentsError`
93
+ + `RequiredArgument` → `RequiredArgumentError`
94
+ + `IncompatibleArguments` → `IncompatibleArgumentsError`
95
+ + Code that explicitly raises or catches these exceptions must be updated.
96
+
97
+ #### Changes
98
+
99
+ + **Crash reporter behavior improvement**
100
+ + Prevented the default file crash reporter from creating `.crash_report` files when it
101
+ is not actually used.
102
+ + Implemented using an internal `FakeModule` helper.
103
+
104
+ + **Argparse compatibility update**
105
+ + Bundled and used the Python 3.13 `argparse` implementation to ensure consistent
106
+ behavior across supported Python versions.
107
+
108
+ + **Progress bar module rename**
109
+ + Renamed the internal progress bar module to `progress_bar` for consistency with the
110
+ new naming scheme.
111
+ + This will not break the usages of `log21.progress_bar(...)` since the call
112
+ functionality was added to the module using the `FakeModule` helper.
113
+
114
+ + **Examples added and updated**
115
+ + Added new example code files.
116
+ + Updated existing examples to match the v3 API and conventions.
117
+
118
+ #### Fixes
119
+
120
+ + Resolved various linting and static-analysis issues across the codebase.
121
+ + Addressed minor compatibility issues uncovered by running linters and pre-commit hooks.
122
+ + Resolved errors occurring in environments with newer versions of argparse.
123
+
124
+ #### Internal and Maintenance Changes
125
+
126
+ + Migrated the build system configuration to `uv`.
127
+ + Updated Python version classifiers and set the supported Python version to 3.9+.
128
+ + Added `vermin` to the pre-commit configuration.
129
+ + Updated `.gitignore`, license metadata, and tool configurations.
130
+ + Silenced and resolved a large number of linter warnings.
131
+ + General internal refactoring with no intended user-visible behavioral changes.
102
132
 
103
- ### 2.10.1
133
+ #### Notes
104
134
 
105
- + Updated the Argparse module to be usable with python 3.12.3.
135
+ + There are **no intentional behavioral changes** in logging output, argument parsing
136
+ logic, or UI components.
137
+ + Most projects will require **minimal or no changes** unless they depend on internal
138
+ modules or renamed exceptions.
139
+ + See [MIGRATION-V2-V3.md](https://github.com/MPCodeWriter21/log21/blob/master/MIGRATION-V2-V3.md)
140
+ for detailed upgrade instructions.
106
141
 
107
142
  [Full CHANGELOG](https://github.com/MPCodeWriter21/log21/blob/master/CHANGELOG.md)
108
143
 
@@ -132,7 +167,8 @@ In order to support this project you can donate some crypto of your choice 8D
132
167
 
133
168
  [Donate Addresses](https://github.com/MPCodeWriter21/log21/blob/master/DONATE.md)
134
169
 
135
- Or if you can't, give [this project](https://github.com/MPCodeWriter21/log21) a star on GitHub :)
170
+ Or if you can't, give [this project](https://github.com/MPCodeWriter21/log21) a star on
171
+ GitHub :)
136
172
 
137
173
  References
138
174
  ----------
@@ -1,23 +1,20 @@
1
- [build-system]
2
- requires = ["setuptools>=61.0.0", "wheel"]
3
- build-backend = "setuptools.build_meta"
4
-
5
1
  [project]
6
2
  name = "log21"
7
3
  authors = [
8
4
  {name = "CodeWriter21(Mehrad Pooryoussof)", email = "CodeWriter21@gmail.com"}
9
5
  ]
10
- description = "A simple logging package that helps you log colorized messages in Windows console."
6
+ description = "A simple logging package"
11
7
  readme = {file = "README.md", content-type = "text/markdown"}
12
- requires-python = ">=3.8"
8
+ requires-python = ">=3.9"
13
9
  keywords = ['python', 'log', 'colorize', 'color', 'logging', 'Python3', 'CodeWriter21']
14
10
  license = {text = "Apache License 2.0"}
15
11
  classifiers = [
16
12
  "Intended Audience :: Developers",
17
13
  "Programming Language :: Python :: 3",
18
- "Programming Language :: Python :: 3.7",
14
+ "Programming Language :: Python :: 3.9",
19
15
  "Programming Language :: Python :: 3.10",
20
16
  "Programming Language :: Python :: 3.11",
17
+ "Programming Language :: Python :: 3.12",
21
18
  "Operating System :: Unix",
22
19
  "Operating System :: Microsoft :: Windows",
23
20
  "Operating System :: MacOS :: MacOS X"
@@ -26,46 +23,41 @@ dependencies = [
26
23
  "webcolors",
27
24
  "docstring-parser"
28
25
  ]
29
- version = "2.10.2"
26
+ version = "3.0.0"
30
27
 
31
- [tool.setuptools.packages.find]
32
- where = ["src"]
28
+ [build-system]
29
+ requires = ["uv_build>=0.8.15,<0.9.0"]
30
+ build-backend = "uv_build"
33
31
 
34
32
  [project.urls]
35
33
  Homepage = "https://github.com/MPCodeWriter21/log21"
36
34
  Donations = "https://github.com/MPCodeWriter21/log21/blob/master/DONATE.md"
37
35
  Source = "https://github.com/MPCodeWriter21/log21"
38
36
 
39
- [project.optional-dependencies]
40
- dev = ["yapf", "isort", "docformatter", "pylint", "json5", "pytest"]
41
-
42
- [tool.pylint.messages_control]
43
- max-line-length = 88
44
-
45
- disable = [
46
- "too-few-public-methods",
47
- "too-many-arguments",
48
- "protected-access",
49
- "too-many-locals",
50
- "fixme",
51
- ]
52
-
53
- [tool.pylint.design]
54
- max-returns = 8
55
-
56
37
  [tool.yapf]
57
38
  column_limit = 88
58
39
  split_before_dot = true
59
- split_before_first_argument = true
60
40
  dedent_closing_brackets = true
41
+ split_before_first_argument = true
61
42
 
62
43
  [tool.isort]
63
44
  line_length = 88
64
- combine_as_imports = true
65
- length_sort = true
66
45
  order_by_type = true
46
+ length_sort = true
47
+ combine_as_imports = true
67
48
 
68
49
  [tool.docformatter]
69
50
  recursive = true
70
51
  wrap-summaries = 88
71
52
  wrap-descriptions = 88
53
+
54
+ [tool.ruff]
55
+ show-fixes = true
56
+ exclude = ["migrations"]
57
+ target-version = "py39"
58
+ line-length = 88
59
+
60
+ [tool.ruff.lint]
61
+ extend-select = ["C4", "SIM", "TCH", "PL", "ANN", "N", "B"]
62
+ ignore = ["PLR0911", "PLR0912", "PLR0913", "PLR0914", "ANN101", "B008", "N816",
63
+ "ANN002", "ANN003", "ANN401", "N802", "PLR2004"]