log21 3.0.0__tar.gz → 3.0.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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: log21
3
- Version: 3.0.0
3
+ Version: 3.0.2
4
4
  Summary: A simple logging package
5
5
  Keywords: python,log,colorize,color,logging,Python3,CodeWriter21
6
6
  Author: CodeWriter21(Mehrad Pooryoussof)
@@ -94,75 +94,56 @@ pip install git+https://github.com/MPCodeWriter21/log21
94
94
  Changelog
95
95
  ---------
96
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.
97
+ ### v3.0.2
98
+
99
+ Change `argumentify` to use the whole function description as the argument-parser
100
+ description instead of the one-line short description.
101
+
102
+ + Example:
103
+
104
+ ```python
105
+ def main(verbose: bool = False) -> None:
106
+ """This is a very useful tool and I will describe it thoroughly. It is so good that
107
+ we have a second line in the first part of the description.
108
+
109
+ And now we can talk more about the tool...
110
+
111
+ :param verbose: This flag will make the logs more verbose!
112
+ """
113
+
114
+ argumentify(main)
115
+ ```
116
+
117
+ The way old versions would look:
118
+
119
+ ```help
120
+ usage: test.py [-h] [--verbose]
121
+
122
+ This is a very useful tool and I will describe it thoroughly. It is so good that
123
+
124
+ options:
125
+ -h, --help
126
+ show this help message and exit
127
+ --verbose, -v
128
+ This flag will make the logs more verbose!
129
+
130
+ ```
131
+
132
+ Now at v3.0.2:
133
+
134
+ ```help
135
+ usage: test.py [-h] [--verbose]
136
+
137
+ This is a very useful tool and I will describe it thoroughly. It is so good that we have a
138
+ second line in the first part of the description. And now we can talk more about the tool...
139
+
140
+ options:
141
+ -h, --help
142
+ show this help message and exit
143
+ --verbose, -v
144
+ This flag will make the logs more verbose!
145
+
146
+ ```
166
147
 
167
148
  [Full CHANGELOG](https://github.com/MPCodeWriter21/log21/blob/master/CHANGELOG.md)
168
149
 
@@ -69,75 +69,56 @@ pip install git+https://github.com/MPCodeWriter21/log21
69
69
  Changelog
70
70
  ---------
71
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.
72
+ ### v3.0.2
73
+
74
+ Change `argumentify` to use the whole function description as the argument-parser
75
+ description instead of the one-line short description.
76
+
77
+ + Example:
78
+
79
+ ```python
80
+ def main(verbose: bool = False) -> None:
81
+ """This is a very useful tool and I will describe it thoroughly. It is so good that
82
+ we have a second line in the first part of the description.
83
+
84
+ And now we can talk more about the tool...
85
+
86
+ :param verbose: This flag will make the logs more verbose!
87
+ """
88
+
89
+ argumentify(main)
90
+ ```
91
+
92
+ The way old versions would look:
93
+
94
+ ```help
95
+ usage: test.py [-h] [--verbose]
96
+
97
+ This is a very useful tool and I will describe it thoroughly. It is so good that
98
+
99
+ options:
100
+ -h, --help
101
+ show this help message and exit
102
+ --verbose, -v
103
+ This flag will make the logs more verbose!
104
+
105
+ ```
106
+
107
+ Now at v3.0.2:
108
+
109
+ ```help
110
+ usage: test.py [-h] [--verbose]
111
+
112
+ This is a very useful tool and I will describe it thoroughly. It is so good that we have a
113
+ second line in the first part of the description. And now we can talk more about the tool...
114
+
115
+ options:
116
+ -h, --help
117
+ show this help message and exit
118
+ --verbose, -v
119
+ This flag will make the logs more verbose!
120
+
121
+ ```
141
122
 
142
123
  [Full CHANGELOG](https://github.com/MPCodeWriter21/log21/blob/master/CHANGELOG.md)
143
124
 
@@ -23,7 +23,7 @@ dependencies = [
23
23
  "webcolors",
24
24
  "docstring-parser"
25
25
  ]
26
- version = "3.0.0"
26
+ version = "3.0.2"
27
27
 
28
28
  [build-system]
29
29
  requires = ["uv_build>=0.8.15,<0.9.0"]
@@ -31,7 +31,7 @@ from .stream_handler import StreamHandler, ColorizingStreamHandler
31
31
  # yapf: enable
32
32
 
33
33
  __author__ = 'CodeWriter21 (Mehrad Pooryoussof)'
34
- __version__ = '3.0.0'
34
+ __version__ = '3.0.2'
35
35
  __github__ = 'https://GitHub.com/MPCodeWriter21/log21'
36
36
  __all__ = [
37
37
  'ColorizingStreamHandler', 'DecolorizingFileHandler', 'ColorizingFormatter',
@@ -359,7 +359,7 @@ def _add_arguments(
359
359
  config['required'] = True
360
360
  if argument.kind == _inspect._ParameterKind.VAR_POSITIONAL:
361
361
  config['nargs'] = '*'
362
- if argument.default:
362
+ if argument.default is not None:
363
363
  config['default'] = argument.default
364
364
  parser.add_argument(
365
365
  *generate_flag(argument, reserved_flags=reserved_flags), **config
@@ -384,9 +384,7 @@ def _argumentify_one(func: Callable) -> None:
384
384
  )
385
385
 
386
386
  # Create the parser
387
- parser = _argparse.ColorizingArgumentParser(
388
- description=info.docstring.short_description
389
- )
387
+ parser = _argparse.ColorizingArgumentParser(description=info.docstring.description)
390
388
  # Add the arguments
391
389
  _add_arguments(parser, info)
392
390
  cli_args = parser.parse_args()
@@ -432,7 +430,7 @@ def _argumentify(functions: _Dict[str, Callable]) -> None:
432
430
  parser = _argparse.ColorizingArgumentParser()
433
431
  subparsers = parser.add_subparsers(required=True)
434
432
  for name, (_, info) in functions_info.items():
435
- subparser = subparsers.add_parser(name, help=info.docstring.short_description)
433
+ subparser = subparsers.add_parser(name, help=info.docstring.description)
436
434
  _add_arguments(subparser, info)
437
435
  subparser.set_defaults(func=info.function)
438
436
  cli_args = parser.parse_args()
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes