log21 2.10.1__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 (32) hide show
  1. log21-3.0.0/PKG-INFO +202 -0
  2. log21-3.0.0/README.md +177 -0
  3. {log21-2.10.1 → log21-3.0.0}/pyproject.toml +22 -30
  4. {log21-2.10.1 → 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.1/src/log21/Argparse.py → log21-3.0.0/src/log21/argparse.py +167 -142
  8. log21-2.10.1/src/log21/Argumentify.py → log21-3.0.0/src/log21/argumentify.py +62 -56
  9. log21-2.10.1/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.1/src/log21/CrashReporter/Formatters.py → log21-3.0.0/src/log21/crash_reporter/formatters.py +6 -2
  12. log21-2.10.1/src/log21/CrashReporter/Reporters.py → log21-3.0.0/src/log21/crash_reporter/reporters.py +43 -41
  13. log21-2.10.1/src/log21/FileHandler.py → log21-3.0.0/src/log21/file_handler.py +12 -9
  14. log21-2.10.1/src/log21/Formatters.py → log21-3.0.0/src/log21/formatters.py +41 -46
  15. log21-2.10.1/src/log21/Levels.py → log21-3.0.0/src/log21/levels.py +1 -1
  16. log21-2.10.1/src/log21/Logger.py → log21-3.0.0/src/log21/logger.py +53 -35
  17. log21-2.10.1/src/log21/LoggingWindow.py → log21-3.0.0/src/log21/logging_window.py +115 -112
  18. log21-2.10.1/src/log21/Manager.py → log21-3.0.0/src/log21/manager.py +20 -12
  19. log21-2.10.1/src/log21/PPrint.py → log21-3.0.0/src/log21/pprint.py +250 -50
  20. log21-2.10.1/src/log21/ProgressBar.py → log21-3.0.0/src/log21/progress_bar.py +59 -16
  21. log21-2.10.1/src/log21/StreamHandler.py → log21-3.0.0/src/log21/stream_handler.py +20 -15
  22. log21-2.10.1/src/log21/TreePrint.py → log21-3.0.0/src/log21/tree_print.py +61 -23
  23. log21-2.10.1/LICENSE.txt +0 -201
  24. log21-2.10.1/PKG-INFO +0 -136
  25. log21-2.10.1/README.md +0 -105
  26. log21-2.10.1/setup.cfg +0 -4
  27. log21-2.10.1/src/log21/CrashReporter/__init__.py +0 -13
  28. log21-2.10.1/src/log21.egg-info/PKG-INFO +0 -136
  29. log21-2.10.1/src/log21.egg-info/SOURCES.txt +0 -25
  30. log21-2.10.1/src/log21.egg-info/dependency_links.txt +0 -1
  31. log21-2.10.1/src/log21.egg-info/requires.txt +0 -10
  32. log21-2.10.1/src/log21.egg-info/top_level.txt +0 -1
log21-3.0.0/PKG-INFO ADDED
@@ -0,0 +1,202 @@
1
+ Metadata-Version: 2.3
2
+ Name: log21
3
+ Version: 3.0.0
4
+ Summary: A simple logging package
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
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.9
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Operating System :: Unix
16
+ Classifier: Operating System :: Microsoft :: Windows
17
+ Classifier: Operating System :: MacOS :: MacOS X
18
+ Requires-Dist: webcolors
19
+ Requires-Dist: docstring-parser
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
25
+
26
+ log21
27
+ =====
28
+
29
+ ![version](https://img.shields.io/pypi/v/log21)
30
+ ![stars](https://img.shields.io/github/stars/MPCodeWriter21/log21)
31
+ ![forks](https://img.shields.io/github/forks/MPCodeWriter21/log21)
32
+ ![repo size](https://img.shields.io/github/repo-size/MPCodeWriter21/log21)
33
+ [![CodeFactor](https://www.codefactor.io/repository/github/mpcodewriter21/log21/badge)](https://www.codefactor.io/repository/github/mpcodewriter21/log21)
34
+
35
+ A simple logging package that helps you log colorized messages in Windows console and
36
+ other operating systems.
37
+
38
+ Features
39
+ --------
40
+
41
+ + Colors : The main reason for this package was to log text in the Windows console with
42
+ the support of ANSI colors.
43
+ + Argument parsing : log21's argument parser can be used like python's argparse, but it
44
+ also colorizes the output.
45
+ + Logging : A similar logger to logging. Logger but with colorized output and other
46
+ options such as levelname modifications. It can also decolorize the output if you want
47
+ to log into a file.
48
+ + Pretty printing : Have you ever wanted to colorize the output of the pprint module?
49
+ log21's pretty printer can do that.
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.
52
+ + ProgressBar : log21's progress bar can be used to show progress of a process in a
53
+ beautiful way.
54
+ + LoggingWindow : Helps you to log messages and debug your code in a window other than
55
+ the console.
56
+ + CrashReporter : log21's crash reporter can be used to report crashes in different
57
+ ways. You can use it to log crashes to console or files or use it to receive crash
58
+ reports of your program through email. And you can also define your own crash
59
+ reporter functions and use them instead!
60
+ + Argumentify : You can use the argumentify feature to decrease the number of lines you
61
+ need to write to parse command-line arguments. It's colored by the way!
62
+ + Any idea? Feel free to [open an issue](https://github.com/MPCodeWriter21/log21/issues)
63
+ or submit a pull request.
64
+
65
+ ![Issues](https://img.shields.io/github/issues/MPCodeWriter21/log21)
66
+ ![contributors](https://img.shields.io/github/contributors/MPCodeWriter21/log21)
67
+
68
+ Installation
69
+ ------------
70
+
71
+ Well, this is a python package so the first thing you need is python.
72
+
73
+ If you don't have python installed, please visit [Python.org](https://python.org) and
74
+ install the latest version of python.
75
+
76
+ Then you can install log21 using pip module:
77
+
78
+ ```bash
79
+ python -m pip install log21 -U
80
+ ```
81
+
82
+ Or you can clone [the repository](https://github.com/MPCodeWriter21/log21) and run:
83
+
84
+ ```bash
85
+ pip install .
86
+ ```
87
+
88
+ Or let the pip get it using git:
89
+
90
+ ```bash
91
+ pip install git+https://github.com/MPCodeWriter21/log21
92
+ ```
93
+
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.
157
+
158
+ #### Notes
159
+
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.
166
+
167
+ [Full CHANGELOG](https://github.com/MPCodeWriter21/log21/blob/master/CHANGELOG.md)
168
+
169
+ Usage Examples
170
+ ---------------
171
+
172
+ See [EXAMPLES.md](https://github.com/MPCodeWriter21/log21/blob/master/EXAMPLES.md)
173
+
174
+ About
175
+ -----
176
+
177
+ Author: CodeWriter21 (Mehrad Pooryoussof)
178
+
179
+ GitHub: [MPCodeWriter21](https://github.com/MPCodeWriter21)
180
+
181
+ Telegram Channel: [@CodeWriter21](https://t.me/CodeWriter21)
182
+
183
+ ### License
184
+
185
+ ![License](https://img.shields.io/github/license/MPCodeWriter21/log21)
186
+
187
+ [apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)
188
+
189
+ ### Donate
190
+
191
+ In order to support this project you can donate some crypto of your choice 8D
192
+
193
+ [Donate Addresses](https://github.com/MPCodeWriter21/log21/blob/master/DONATE.md)
194
+
195
+ Or if you can't, give [this project](https://github.com/MPCodeWriter21/log21) a star on
196
+ GitHub :)
197
+
198
+ References
199
+ ----------
200
+
201
+ + ANSI Color Codes (Wikipedia):
202
+ [https://en.wikipedia.org/wiki/ANSI_escape_code](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors)
log21-3.0.0/README.md ADDED
@@ -0,0 +1,177 @@
1
+ log21
2
+ =====
3
+
4
+ ![version](https://img.shields.io/pypi/v/log21)
5
+ ![stars](https://img.shields.io/github/stars/MPCodeWriter21/log21)
6
+ ![forks](https://img.shields.io/github/forks/MPCodeWriter21/log21)
7
+ ![repo size](https://img.shields.io/github/repo-size/MPCodeWriter21/log21)
8
+ [![CodeFactor](https://www.codefactor.io/repository/github/mpcodewriter21/log21/badge)](https://www.codefactor.io/repository/github/mpcodewriter21/log21)
9
+
10
+ A simple logging package that helps you log colorized messages in Windows console and
11
+ other operating systems.
12
+
13
+ Features
14
+ --------
15
+
16
+ + Colors : The main reason for this package was to log text in the Windows console with
17
+ the support of ANSI colors.
18
+ + Argument parsing : log21's argument parser can be used like python's argparse, but it
19
+ also colorizes the output.
20
+ + Logging : A similar logger to logging. Logger but with colorized output and other
21
+ options such as levelname modifications. It can also decolorize the output if you want
22
+ to log into a file.
23
+ + Pretty printing : Have you ever wanted to colorize the output of the pprint module?
24
+ log21's pretty printer can do that.
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.
27
+ + ProgressBar : log21's progress bar can be used to show progress of a process in a
28
+ beautiful way.
29
+ + LoggingWindow : Helps you to log messages and debug your code in a window other than
30
+ the console.
31
+ + CrashReporter : log21's crash reporter can be used to report crashes in different
32
+ ways. You can use it to log crashes to console or files or use it to receive crash
33
+ reports of your program through email. And you can also define your own crash
34
+ reporter functions and use them instead!
35
+ + Argumentify : You can use the argumentify feature to decrease the number of lines you
36
+ need to write to parse command-line arguments. It's colored by the way!
37
+ + Any idea? Feel free to [open an issue](https://github.com/MPCodeWriter21/log21/issues)
38
+ or submit a pull request.
39
+
40
+ ![Issues](https://img.shields.io/github/issues/MPCodeWriter21/log21)
41
+ ![contributors](https://img.shields.io/github/contributors/MPCodeWriter21/log21)
42
+
43
+ Installation
44
+ ------------
45
+
46
+ Well, this is a python package so the first thing you need is python.
47
+
48
+ If you don't have python installed, please visit [Python.org](https://python.org) and
49
+ install the latest version of python.
50
+
51
+ Then you can install log21 using pip module:
52
+
53
+ ```bash
54
+ python -m pip install log21 -U
55
+ ```
56
+
57
+ Or you can clone [the repository](https://github.com/MPCodeWriter21/log21) and run:
58
+
59
+ ```bash
60
+ pip install .
61
+ ```
62
+
63
+ Or let the pip get it using git:
64
+
65
+ ```bash
66
+ pip install git+https://github.com/MPCodeWriter21/log21
67
+ ```
68
+
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.
132
+
133
+ #### Notes
134
+
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.
141
+
142
+ [Full CHANGELOG](https://github.com/MPCodeWriter21/log21/blob/master/CHANGELOG.md)
143
+
144
+ Usage Examples
145
+ ---------------
146
+
147
+ See [EXAMPLES.md](https://github.com/MPCodeWriter21/log21/blob/master/EXAMPLES.md)
148
+
149
+ About
150
+ -----
151
+
152
+ Author: CodeWriter21 (Mehrad Pooryoussof)
153
+
154
+ GitHub: [MPCodeWriter21](https://github.com/MPCodeWriter21)
155
+
156
+ Telegram Channel: [@CodeWriter21](https://t.me/CodeWriter21)
157
+
158
+ ### License
159
+
160
+ ![License](https://img.shields.io/github/license/MPCodeWriter21/log21)
161
+
162
+ [apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)
163
+
164
+ ### Donate
165
+
166
+ In order to support this project you can donate some crypto of your choice 8D
167
+
168
+ [Donate Addresses](https://github.com/MPCodeWriter21/log21/blob/master/DONATE.md)
169
+
170
+ Or if you can't, give [this project](https://github.com/MPCodeWriter21/log21) a star on
171
+ GitHub :)
172
+
173
+ References
174
+ ----------
175
+
176
+ + ANSI Color Codes (Wikipedia):
177
+ [https://en.wikipedia.org/wiki/ANSI_escape_code](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors)
@@ -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.1"
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"]