winipedia-utils 0.1.11__tar.gz → 0.1.13__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 (67) hide show
  1. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/PKG-INFO +1 -1
  2. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/pyproject.toml +1 -1
  3. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/oop/mixins/meta.py +20 -8
  4. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/LICENSE +0 -0
  5. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/README.md +0 -0
  6. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/__init__.py +0 -0
  7. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/concurrent/__init__.py +0 -0
  8. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/concurrent/concurrent.py +0 -0
  9. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/concurrent/multiprocessing.py +0 -0
  10. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/concurrent/multithreading.py +0 -0
  11. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/consts.py +0 -0
  12. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/data/__init__.py +0 -0
  13. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/data/dataframe.py +0 -0
  14. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/django/__init__.py +0 -0
  15. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/django/bulk.py +0 -0
  16. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/django/command.py +0 -0
  17. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/django/database.py +0 -0
  18. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/git/__init__.py +0 -0
  19. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/git/gitignore/__init__.py +0 -0
  20. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/git/gitignore/gitignore.py +0 -0
  21. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/git/pre_commit/__init__.py +0 -0
  22. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/git/pre_commit/config.py +0 -0
  23. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/git/pre_commit/hooks.py +0 -0
  24. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/git/pre_commit/run_hooks.py +0 -0
  25. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/iterating/__init__.py +0 -0
  26. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/iterating/iterate.py +0 -0
  27. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/logging/__init__.py +0 -0
  28. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/logging/ansi.py +0 -0
  29. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/logging/config.py +0 -0
  30. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/logging/logger.py +0 -0
  31. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/modules/__init__.py +0 -0
  32. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/modules/class_.py +0 -0
  33. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/modules/function.py +0 -0
  34. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/modules/module.py +0 -0
  35. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/modules/package.py +0 -0
  36. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/oop/__init__.py +0 -0
  37. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/oop/mixins/__init__.py +0 -0
  38. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/oop/mixins/mixin.py +0 -0
  39. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/os/__init__.py +0 -0
  40. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/os/os.py +0 -0
  41. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/projects/__init__.py +0 -0
  42. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/projects/poetry/__init__.py +0 -0
  43. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/projects/poetry/config.py +0 -0
  44. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/projects/poetry/poetry.py +0 -0
  45. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/projects/project.py +0 -0
  46. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/py.typed +0 -0
  47. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/setup.py +0 -0
  48. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/testing/__init__.py +0 -0
  49. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/testing/assertions.py +0 -0
  50. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/testing/convention.py +0 -0
  51. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/testing/create_tests.py +0 -0
  52. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/testing/fixtures.py +0 -0
  53. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/testing/tests/__init__.py +0 -0
  54. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/testing/tests/base/__init__.py +0 -0
  55. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/testing/tests/base/fixtures/__init__.py +0 -0
  56. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/testing/tests/base/fixtures/fixture.py +0 -0
  57. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/testing/tests/base/fixtures/scopes/__init__.py +0 -0
  58. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/testing/tests/base/fixtures/scopes/class_.py +0 -0
  59. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/testing/tests/base/fixtures/scopes/function.py +0 -0
  60. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/testing/tests/base/fixtures/scopes/module.py +0 -0
  61. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/testing/tests/base/fixtures/scopes/package.py +0 -0
  62. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/testing/tests/base/fixtures/scopes/session.py +0 -0
  63. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/testing/tests/base/utils/__init__.py +0 -0
  64. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/testing/tests/base/utils/utils.py +0 -0
  65. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/testing/tests/conftest.py +0 -0
  66. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/text/__init__.py +0 -0
  67. {winipedia_utils-0.1.11 → winipedia_utils-0.1.13}/winipedia_utils/text/string.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: winipedia-utils
3
- Version: 0.1.11
3
+ Version: 0.1.13
4
4
  Summary: A package with many utility functions
5
5
  License: MIT
6
6
  Author: Winipedia
@@ -1,7 +1,7 @@
1
1
  # Project section
2
2
  [project]
3
3
  name = "winipedia-utils"
4
- version = "0.1.11"
4
+ version = "0.1.13"
5
5
  description = "A package with many utility functions"
6
6
  readme = "README.md"
7
7
  requires-python = ">=3.12"
@@ -51,9 +51,20 @@ class LoggingMeta(type):
51
51
 
52
52
  for attr_name, attr_value in dct.items():
53
53
  if mcs.is_loggable_method(attr_value):
54
- dct[attr_name] = mcs.wrap_with_logging(
55
- func=attr_value, class_name=name, call_times={}
56
- )
54
+ if isinstance(attr_value, classmethod):
55
+ wrapped_method = mcs.wrap_with_logging(
56
+ func=attr_value.__func__, class_name=name, call_times={}
57
+ )
58
+ dct[attr_name] = classmethod(wrapped_method)
59
+ elif isinstance(attr_value, staticmethod):
60
+ wrapped_method = mcs.wrap_with_logging(
61
+ func=attr_value.__func__, class_name=name, call_times={}
62
+ )
63
+ dct[attr_name] = staticmethod(wrapped_method)
64
+ else:
65
+ dct[attr_name] = mcs.wrap_with_logging(
66
+ func=attr_value, class_name=name, call_times={}
67
+ )
57
68
 
58
69
  return super().__new__(mcs, name, bases, dct)
59
70
 
@@ -96,7 +107,7 @@ class LoggingMeta(type):
96
107
  time_time = time.time # Cache the time.time function for performance
97
108
 
98
109
  @wraps(func)
99
- def wrapper(self: object, *args: object, **kwargs: object) -> object:
110
+ def wrapper(*args: object, **kwargs: object) -> object:
100
111
  # call_times as a dictionary to store the call times of the function
101
112
  # we only log if the time since the last call is greater than the threshold
102
113
  # this is to avoid spamming the logs
@@ -132,7 +143,7 @@ class LoggingMeta(type):
132
143
 
133
144
  # Execute the function and return the result
134
145
 
135
- result = func(self, *args, **kwargs)
146
+ result = func(*args, **kwargs)
136
147
 
137
148
  if do_logging:
138
149
  duration = time_time() - current_time
@@ -249,8 +260,10 @@ class ImplementationMeta(type):
249
260
  True if the method is marked with @final, False otherwise
250
261
 
251
262
  """
252
- method = unwrap_method(method)
253
- return getattr(method, "__final__", False)
263
+ unwrapped_method = unwrap_method(method)
264
+ return getattr(method, "__final__", False) or getattr(
265
+ unwrapped_method, "__final__", False
266
+ )
254
267
 
255
268
  @staticmethod
256
269
  def is_abstract_method(method: Callable[..., Any]) -> bool:
@@ -263,7 +276,6 @@ class ImplementationMeta(type):
263
276
  True if the method is marked with @abstractmethod, False otherwise
264
277
 
265
278
  """
266
- method = unwrap_method(method)
267
279
  return getattr(method, "__isabstractmethod__", False)
268
280
 
269
281
  def check_attrs_implemented(cls) -> None: