log21 2.10.0__tar.gz → 2.10.1__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 (27) hide show
  1. {log21-2.10.0/src/log21.egg-info → log21-2.10.1}/PKG-INFO +1 -1
  2. {log21-2.10.0 → log21-2.10.1}/pyproject.toml +1 -1
  3. {log21-2.10.0 → log21-2.10.1}/src/log21/Argparse.py +47 -12
  4. {log21-2.10.0 → log21-2.10.1}/src/log21/__init__.py +1 -1
  5. {log21-2.10.0 → log21-2.10.1/src/log21.egg-info}/PKG-INFO +1 -1
  6. {log21-2.10.0 → log21-2.10.1}/LICENSE.txt +0 -0
  7. {log21-2.10.0 → log21-2.10.1}/README.md +0 -0
  8. {log21-2.10.0 → log21-2.10.1}/setup.cfg +0 -0
  9. {log21-2.10.0 → log21-2.10.1}/src/log21/Argumentify.py +0 -0
  10. {log21-2.10.0 → log21-2.10.1}/src/log21/Colors.py +0 -0
  11. {log21-2.10.0 → log21-2.10.1}/src/log21/CrashReporter/Formatters.py +0 -0
  12. {log21-2.10.0 → log21-2.10.1}/src/log21/CrashReporter/Reporters.py +0 -0
  13. {log21-2.10.0 → log21-2.10.1}/src/log21/CrashReporter/__init__.py +0 -0
  14. {log21-2.10.0 → log21-2.10.1}/src/log21/FileHandler.py +0 -0
  15. {log21-2.10.0 → log21-2.10.1}/src/log21/Formatters.py +0 -0
  16. {log21-2.10.0 → log21-2.10.1}/src/log21/Levels.py +0 -0
  17. {log21-2.10.0 → log21-2.10.1}/src/log21/Logger.py +0 -0
  18. {log21-2.10.0 → log21-2.10.1}/src/log21/LoggingWindow.py +0 -0
  19. {log21-2.10.0 → log21-2.10.1}/src/log21/Manager.py +0 -0
  20. {log21-2.10.0 → log21-2.10.1}/src/log21/PPrint.py +0 -0
  21. {log21-2.10.0 → log21-2.10.1}/src/log21/ProgressBar.py +0 -0
  22. {log21-2.10.0 → log21-2.10.1}/src/log21/StreamHandler.py +0 -0
  23. {log21-2.10.0 → log21-2.10.1}/src/log21/TreePrint.py +0 -0
  24. {log21-2.10.0 → log21-2.10.1}/src/log21.egg-info/SOURCES.txt +0 -0
  25. {log21-2.10.0 → log21-2.10.1}/src/log21.egg-info/dependency_links.txt +0 -0
  26. {log21-2.10.0 → log21-2.10.1}/src/log21.egg-info/requires.txt +0 -0
  27. {log21-2.10.0 → log21-2.10.1}/src/log21.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: log21
3
- Version: 2.10.0
3
+ Version: 2.10.1
4
4
  Summary: A simple logging package that helps you log colorized messages in Windows console.
5
5
  Author-email: "CodeWriter21(Mehrad Pooryoussof)" <CodeWriter21@gmail.com>
6
6
  License: Apache License 2.0
@@ -26,7 +26,7 @@ dependencies = [
26
26
  "webcolors",
27
27
  "docstring-parser"
28
28
  ]
29
- version = "2.10.0"
29
+ version = "2.10.1"
30
30
 
31
31
  [tool.setuptools.packages.find]
32
32
  where = ["src"]
@@ -280,15 +280,28 @@ class ColorizingHelpFormatter(_argparse.HelpFormatter):
280
280
  group_actions = set()
281
281
  inserts = {}
282
282
  for group in groups:
283
+ if not group._group_actions:
284
+ raise ValueError(f'empty group {group}')
285
+
283
286
  try:
284
287
  start = actions.index(group._group_actions[0])
285
288
  except ValueError:
286
289
  continue
287
290
  else:
288
- end = start + len(group._group_actions)
291
+ group_action_count = len(group._group_actions)
292
+ end = start + group_action_count
289
293
  if actions[start:end] == group._group_actions:
294
+
295
+ suppressed_actions_count = 0
290
296
  for action in group._group_actions:
291
297
  group_actions.add(action)
298
+ if action.help is _argparse.SUPPRESS:
299
+ suppressed_actions_count += 1
300
+
301
+ exposed_actions_count = group_action_count - suppressed_actions_count
302
+ if not exposed_actions_count:
303
+ continue
304
+
292
305
  if not group.required:
293
306
  if start in inserts:
294
307
  inserts[start] += ' ['
@@ -298,7 +311,7 @@ class ColorizingHelpFormatter(_argparse.HelpFormatter):
298
311
  inserts[end] += ']'
299
312
  else:
300
313
  inserts[end] = ']'
301
- else:
314
+ elif exposed_actions_count > 1:
302
315
  if start in inserts:
303
316
  inserts[start] += ' ('
304
317
  else:
@@ -941,7 +954,22 @@ class ColorizingArgumentParser(_argparse.ArgumentParser, _ActionsContainer):
941
954
 
942
955
  # get the optional identified at this index
943
956
  option_tuple = option_string_indices[start_index]
944
- action, option_string, explicit_arg = option_tuple
957
+ if len(option_tuple) == 3:
958
+ action, option_string, explicit_arg = option_tuple
959
+ sep = None
960
+ elif len(option_tuple) == 4:
961
+ action, option_string, sep, explicit_arg = option_tuple
962
+ else:
963
+ # Tell the user that there seem to have been a change in argparse module
964
+ # and if they see this error they should immediately report it in an
965
+ # issue at GitHub.com/MPCodeWriter21/log21 with their Python version
966
+ raise ValueError(
967
+ 'Unknown option tuple length, please report this issue at: '
968
+ 'https://GitHub.com/MPCodeWriter21/log21\n'
969
+ f'Python version: {_sys.version}'
970
+ f'Option tuple: {option_tuple}'
971
+ f'log21 version: {_log21.__version__}'
972
+ )
945
973
 
946
974
  # identify additional optionals in the same arg string
947
975
  # (e.g. -xyz is the same as -x -y -z if no args are required)
@@ -964,20 +992,27 @@ class ColorizingArgumentParser(_argparse.ArgumentParser, _ActionsContainer):
964
992
  # of the tail of the option string
965
993
  chars = self.prefix_chars
966
994
  if arg_count == 0 and option_string[1] not in chars:
995
+ if sep or explicit_arg[0] in chars:
996
+ msg = _gettext('ignored explicit argument %r')
997
+ raise _argparse.ArgumentError(action, msg % explicit_arg)
967
998
  action_tuples.append((action, [], option_string))
968
999
  char = option_string[0]
969
1000
  option_string = char + explicit_arg[0]
970
- new_explicit_arg = explicit_arg[1:] or None
971
1001
  optionals_map = self._option_string_actions
972
1002
  if option_string in optionals_map:
973
1003
  action = optionals_map[option_string]
974
- explicit_arg = new_explicit_arg
1004
+ explicit_arg = explicit_arg[1:]
1005
+ if not explicit_arg:
1006
+ sep = explicit_arg = None
1007
+ elif explicit_arg[0] == '=':
1008
+ sep = '='
1009
+ explicit_arg = explicit_arg[1:]
1010
+ else:
1011
+ sep = ''
975
1012
  else:
976
- msg = _gettext(
977
- f'ignored explicit argument {explicit_arg!r}'
978
- )
979
- raise _argparse.ArgumentError(action, msg)
980
-
1013
+ extras.append(char + explicit_arg)
1014
+ stop = start_index + 1
1015
+ break
981
1016
  # if the action expect exactly one argument, we've
982
1017
  # successfully matched the option; exit the loop
983
1018
  elif arg_count == 1:
@@ -989,8 +1024,8 @@ class ColorizingArgumentParser(_argparse.ArgumentParser, _ActionsContainer):
989
1024
  # error if a double-dash option did not use the
990
1025
  # explicit argument
991
1026
  else:
992
- msg = _gettext(f'ignored explicit argument {explicit_arg!r}')
993
- raise _argparse.ArgumentError(action, msg)
1027
+ msg = _gettext('ignored explicit argument %r')
1028
+ raise _argparse.ArgumentError(action, msg % explicit_arg)
994
1029
 
995
1030
  # if there is no explicit argument, try to match the
996
1031
  # optional's string arguments with the following strings
@@ -24,7 +24,7 @@ from .LoggingWindow import LoggingWindow, LoggingWindowHandler
24
24
  from .StreamHandler import StreamHandler, ColorizingStreamHandler
25
25
 
26
26
  __author__ = 'CodeWriter21 (Mehrad Pooryoussof)'
27
- __version__ = '2.10.0'
27
+ __version__ = '2.10.1'
28
28
  __github__ = 'Https://GitHub.com/MPCodeWriter21/log21'
29
29
  __all__ = [
30
30
  'ColorizingStreamHandler', 'DecolorizingFileHandler', 'ColorizingFormatter',
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: log21
3
- Version: 2.10.0
3
+ Version: 2.10.1
4
4
  Summary: A simple logging package that helps you log colorized messages in Windows console.
5
5
  Author-email: "CodeWriter21(Mehrad Pooryoussof)" <CodeWriter21@gmail.com>
6
6
  License: Apache License 2.0
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