winipedia-utils 0.1.61__tar.gz → 0.1.62__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.

Potentially problematic release.


This version of winipedia-utils might be problematic. Click here for more details.

Files changed (100) hide show
  1. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/PKG-INFO +1 -1
  2. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/pyproject.toml +1 -1
  3. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/django/__init__.py +0 -3
  4. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/django/bulk.py +6 -4
  5. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/django/database.py +4 -4
  6. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/LICENSE +0 -0
  7. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/README.md +0 -0
  8. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/__init__.py +0 -0
  9. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/concurrent/__init__.py +0 -0
  10. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/concurrent/concurrent.py +0 -0
  11. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/concurrent/multiprocessing.py +0 -0
  12. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/concurrent/multithreading.py +0 -0
  13. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/consts.py +0 -0
  14. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/data/__init__.py +0 -0
  15. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/data/dataframe.py +0 -0
  16. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/django/command.py +0 -0
  17. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/git/__init__.py +0 -0
  18. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/git/gitignore/__init__.py +0 -0
  19. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/git/gitignore/gitignore.py +0 -0
  20. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/git/pre_commit/__init__.py +0 -0
  21. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/git/pre_commit/config.py +0 -0
  22. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/git/pre_commit/hooks.py +0 -0
  23. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/git/pre_commit/run_hooks.py +0 -0
  24. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/iterating/__init__.py +0 -0
  25. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/iterating/iterate.py +0 -0
  26. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/logging/__init__.py +0 -0
  27. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/logging/ansi.py +0 -0
  28. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/logging/config.py +0 -0
  29. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/logging/logger.py +0 -0
  30. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/modules/__init__.py +0 -0
  31. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/modules/class_.py +0 -0
  32. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/modules/function.py +0 -0
  33. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/modules/module.py +0 -0
  34. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/modules/package.py +0 -0
  35. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/oop/__init__.py +0 -0
  36. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/oop/mixins/__init__.py +0 -0
  37. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/oop/mixins/meta.py +0 -0
  38. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/oop/mixins/mixin.py +0 -0
  39. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/os/__init__.py +0 -0
  40. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/os/os.py +0 -0
  41. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/projects/__init__.py +0 -0
  42. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/projects/poetry/__init__.py +0 -0
  43. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/projects/poetry/config.py +0 -0
  44. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/projects/poetry/poetry.py +0 -0
  45. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/projects/project.py +0 -0
  46. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/py.typed +0 -0
  47. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/pyside/__init__.py +0 -0
  48. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/pyside/core/__init__.py +0 -0
  49. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/pyside/core/py_qiodevice.py +0 -0
  50. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/pyside/ui/__init__.py +0 -0
  51. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/pyside/ui/base/__init__.py +0 -0
  52. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/pyside/ui/base/base.py +0 -0
  53. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/pyside/ui/pages/__init__.py +0 -0
  54. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/pyside/ui/pages/base/__init__.py +0 -0
  55. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/pyside/ui/pages/base/base.py +0 -0
  56. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/pyside/ui/pages/browser.py +0 -0
  57. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/pyside/ui/pages/player.py +0 -0
  58. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/pyside/ui/widgets/__init__.py +0 -0
  59. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/pyside/ui/widgets/browser.py +0 -0
  60. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/pyside/ui/widgets/clickable_widget.py +0 -0
  61. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/pyside/ui/widgets/media_player.py +0 -0
  62. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/pyside/ui/widgets/notification.py +0 -0
  63. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/pyside/ui/windows/__init__.py +0 -0
  64. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/pyside/ui/windows/base/__init__.py +0 -0
  65. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/pyside/ui/windows/base/base.py +0 -0
  66. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/resources/__init__.py +0 -0
  67. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/resources/svgs/__init__.py +0 -0
  68. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/resources/svgs/delete_garbage_can.svg +0 -0
  69. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/resources/svgs/download_arrow.svg +0 -0
  70. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/resources/svgs/exit_fullscreen_icon.svg +0 -0
  71. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/resources/svgs/fullscreen_icon.svg +0 -0
  72. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/resources/svgs/menu_icon.svg +0 -0
  73. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/resources/svgs/pause_icon.svg +0 -0
  74. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/resources/svgs/play_icon.svg +0 -0
  75. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/resources/svgs/plus_icon.svg +0 -0
  76. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/resources/svgs/svg.py +0 -0
  77. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/security/__init__.py +0 -0
  78. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/security/cryptography.py +0 -0
  79. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/security/keyring.py +0 -0
  80. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/setup.py +0 -0
  81. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/testing/__init__.py +0 -0
  82. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/testing/assertions.py +0 -0
  83. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/testing/convention.py +0 -0
  84. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/testing/create_tests.py +0 -0
  85. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/testing/fixtures.py +0 -0
  86. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/testing/tests/__init__.py +0 -0
  87. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/testing/tests/base/__init__.py +0 -0
  88. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/testing/tests/base/fixtures/__init__.py +0 -0
  89. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/testing/tests/base/fixtures/fixture.py +0 -0
  90. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/testing/tests/base/fixtures/scopes/__init__.py +0 -0
  91. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/testing/tests/base/fixtures/scopes/class_.py +0 -0
  92. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/testing/tests/base/fixtures/scopes/function.py +0 -0
  93. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/testing/tests/base/fixtures/scopes/module.py +0 -0
  94. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/testing/tests/base/fixtures/scopes/package.py +0 -0
  95. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/testing/tests/base/fixtures/scopes/session.py +0 -0
  96. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/testing/tests/base/utils/__init__.py +0 -0
  97. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/testing/tests/base/utils/utils.py +0 -0
  98. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/testing/tests/conftest.py +0 -0
  99. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/winipedia_utils/text/__init__.py +0 -0
  100. {winipedia_utils-0.1.61 → winipedia_utils-0.1.62}/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.61
3
+ Version: 0.1.62
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.61"
4
+ version = "0.1.62"
5
5
  description = "A package with many utility functions"
6
6
  readme = "README.md"
7
7
  requires-python = ">=3.12,<3.14"
@@ -14,9 +14,6 @@ logger.info("Monkeypatched django-stubs")
14
14
  if not settings.configured:
15
15
  logger.info("Configuring minimal django settings")
16
16
  settings.configure(
17
- INSTALLED_APPS=[
18
- "django.contrib.contenttypes",
19
- ],
20
17
  DATABASES={
21
18
  "default": {
22
19
  "ENGINE": "django.db.backends.sqlite3",
@@ -9,9 +9,8 @@ from collections import defaultdict
9
9
  from collections.abc import Callable, Generator, Iterable
10
10
  from functools import partial
11
11
  from itertools import islice
12
- from typing import Any, Literal, cast, get_args
12
+ from typing import TYPE_CHECKING, Any, Literal, cast, get_args
13
13
 
14
- from django.contrib.contenttypes.fields import GenericForeignKey
15
14
  from django.db import router, transaction
16
15
  from django.db.models import (
17
16
  Field,
@@ -19,7 +18,6 @@ from django.db.models import (
19
18
  QuerySet,
20
19
  )
21
20
  from django.db.models.deletion import Collector
22
- from django.db.models.fields.related import ForeignObjectRel
23
21
 
24
22
  from winipedia_utils.concurrent.multithreading import multithread_loop
25
23
  from winipedia_utils.django.database import (
@@ -28,6 +26,10 @@ from winipedia_utils.django.database import (
28
26
  )
29
27
  from winipedia_utils.logging.logger import get_logger
30
28
 
29
+ if TYPE_CHECKING:
30
+ from django.contrib.contenttypes.fields import GenericForeignKey
31
+ from django.db.models.fields.related import ForeignObjectRel
32
+
31
33
  logger = get_logger(__name__)
32
34
 
33
35
  MODE_TYPES = Literal["create", "update", "delete"]
@@ -389,7 +391,7 @@ def bulk_create_bulks_in_steps(
389
391
  def get_differences_between_bulks(
390
392
  bulk1: list[Model],
391
393
  bulk2: list[Model],
392
- fields: list[Field[Any, Any] | ForeignObjectRel | GenericForeignKey],
394
+ fields: "list[Field[Any, Any] | ForeignObjectRel | GenericForeignKey]",
393
395
  ) -> tuple[list[Model], list[Model], list[Model], list[Model]]:
394
396
  """Compare two bulks and return their differences and intersections.
395
397
 
@@ -9,7 +9,6 @@ from datetime import datetime
9
9
  from graphlib import TopologicalSorter
10
10
  from typing import TYPE_CHECKING, Any, Self
11
11
 
12
- from django.contrib.contenttypes.fields import GenericForeignKey
13
12
  from django.db import connection
14
13
  from django.db.models import DateTimeField, Field, Model
15
14
  from django.db.models.fields.related import ForeignKey, ForeignObjectRel
@@ -18,6 +17,7 @@ from django.forms.models import model_to_dict
18
17
  from winipedia_utils.logging.logger import get_logger
19
18
 
20
19
  if TYPE_CHECKING:
20
+ from django.contrib.contenttypes.fields import GenericForeignKey
21
21
  from django.db.models.options import Options
22
22
 
23
23
  logger = get_logger(__name__)
@@ -51,7 +51,7 @@ def get_model_meta(model: type[Model]) -> "Options[Model]":
51
51
 
52
52
  def get_fields(
53
53
  model: type[Model],
54
- ) -> list[Field[Any, Any] | ForeignObjectRel | GenericForeignKey]:
54
+ ) -> "list[Field[Any, Any] | ForeignObjectRel | GenericForeignKey]":
55
55
  """Get all fields from a Django model including relationships.
56
56
 
57
57
  Retrieves all field objects from a Django model, including regular fields,
@@ -83,7 +83,7 @@ def get_fields(
83
83
 
84
84
 
85
85
  def get_field_names(
86
- fields: list[Field[Any, Any] | ForeignObjectRel | GenericForeignKey],
86
+ fields: "list[Field[Any, Any] | ForeignObjectRel | GenericForeignKey]",
87
87
  ) -> list[str]:
88
88
  """Get the names of all fields from a Django model including relationships.
89
89
 
@@ -222,7 +222,7 @@ def execute_sql(
222
222
 
223
223
  def hash_model_instance(
224
224
  instance: Model,
225
- fields: list[Field[Any, Any] | ForeignObjectRel | GenericForeignKey],
225
+ fields: "list[Field[Any, Any] | ForeignObjectRel | GenericForeignKey]",
226
226
  ) -> int:
227
227
  """Hash a model instance based on its field values.
228
228