winipedia-utils 0.4.46__tar.gz → 0.4.48__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 (94) hide show
  1. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/PKG-INFO +3 -2
  2. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/README.md +2 -1
  3. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/pyproject.toml +1 -1
  4. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/modules/package.py +15 -4
  5. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/LICENSE +0 -0
  6. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/__init__.py +0 -0
  7. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/concurrent/__init__.py +0 -0
  8. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/concurrent/concurrent.py +0 -0
  9. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/concurrent/multiprocessing.py +0 -0
  10. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/concurrent/multithreading.py +0 -0
  11. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/data/__init__.py +0 -0
  12. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/data/dataframe/__init__.py +0 -0
  13. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/data/dataframe/cleaning.py +0 -0
  14. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/data/structures/__init__.py +0 -0
  15. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/data/structures/dicts.py +0 -0
  16. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/git/__init__.py +0 -0
  17. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/git/github/__init__.py +0 -0
  18. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/git/github/github.py +0 -0
  19. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/git/github/repo/__init__.py +0 -0
  20. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/git/github/repo/protect.py +0 -0
  21. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/git/github/repo/repo.py +0 -0
  22. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/git/github/workflows/__init__.py +0 -0
  23. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/git/github/workflows/base/__init__.py +0 -0
  24. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/git/github/workflows/base/base.py +0 -0
  25. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/git/github/workflows/health_check.py +0 -0
  26. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/git/github/workflows/publish.py +0 -0
  27. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/git/github/workflows/release.py +0 -0
  28. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/git/gitignore/__init__.py +0 -0
  29. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/git/gitignore/config.py +0 -0
  30. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/git/gitignore/gitignore.py +0 -0
  31. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/git/pre_commit/__init__.py +0 -0
  32. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/git/pre_commit/config.py +0 -0
  33. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/git/pre_commit/hooks.py +0 -0
  34. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/git/pre_commit/run_hooks.py +0 -0
  35. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/iterating/__init__.py +0 -0
  36. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/iterating/iterate.py +0 -0
  37. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/logging/__init__.py +0 -0
  38. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/logging/ansi.py +0 -0
  39. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/logging/config.py +0 -0
  40. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/logging/logger.py +0 -0
  41. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/modules/__init__.py +0 -0
  42. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/modules/class_.py +0 -0
  43. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/modules/function.py +0 -0
  44. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/modules/module.py +0 -0
  45. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/oop/__init__.py +0 -0
  46. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/oop/mixins/__init__.py +0 -0
  47. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/oop/mixins/meta.py +0 -0
  48. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/oop/mixins/mixin.py +0 -0
  49. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/os/__init__.py +0 -0
  50. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/os/os.py +0 -0
  51. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/projects/__init__.py +0 -0
  52. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/projects/poetry/__init__.py +0 -0
  53. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/projects/poetry/config.py +0 -0
  54. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/projects/poetry/poetry.py +0 -0
  55. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/projects/project.py +0 -0
  56. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/py.typed +0 -0
  57. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/resources/__init__.py +0 -0
  58. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/resources/svgs/__init__.py +0 -0
  59. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/resources/svgs/delete_garbage_can.svg +0 -0
  60. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/resources/svgs/download_arrow.svg +0 -0
  61. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/resources/svgs/exit_fullscreen_icon.svg +0 -0
  62. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/resources/svgs/fullscreen_icon.svg +0 -0
  63. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/resources/svgs/menu_icon.svg +0 -0
  64. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/resources/svgs/pause_icon.svg +0 -0
  65. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/resources/svgs/play_icon.svg +0 -0
  66. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/resources/svgs/plus_icon.svg +0 -0
  67. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/resources/svgs/svg.py +0 -0
  68. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/security/__init__.py +0 -0
  69. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/security/cryptography.py +0 -0
  70. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/security/keyring.py +0 -0
  71. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/setup.py +0 -0
  72. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/testing/__init__.py +0 -0
  73. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/testing/assertions.py +0 -0
  74. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/testing/config.py +0 -0
  75. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/testing/convention.py +0 -0
  76. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/testing/create_tests.py +0 -0
  77. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/testing/fixtures.py +0 -0
  78. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/testing/skip.py +0 -0
  79. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/testing/tests/__init__.py +0 -0
  80. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/testing/tests/base/__init__.py +0 -0
  81. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/testing/tests/base/fixtures/__init__.py +0 -0
  82. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/testing/tests/base/fixtures/fixture.py +0 -0
  83. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/testing/tests/base/fixtures/scopes/__init__.py +0 -0
  84. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/testing/tests/base/fixtures/scopes/class_.py +0 -0
  85. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/testing/tests/base/fixtures/scopes/function.py +0 -0
  86. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/testing/tests/base/fixtures/scopes/module.py +0 -0
  87. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/testing/tests/base/fixtures/scopes/package.py +0 -0
  88. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/testing/tests/base/fixtures/scopes/session.py +0 -0
  89. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/testing/tests/base/utils/__init__.py +0 -0
  90. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/testing/tests/base/utils/utils.py +0 -0
  91. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/testing/tests/conftest.py +0 -0
  92. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/text/__init__.py +0 -0
  93. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/text/config.py +0 -0
  94. {winipedia_utils-0.4.46 → winipedia_utils-0.4.48}/winipedia_utils/text/string.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: winipedia-utils
3
- Version: 0.4.46
3
+ Version: 0.4.48
4
4
  Summary: A package with many utility functions
5
5
  License-Expression: MIT
6
6
  License-File: LICENSE
@@ -79,7 +79,8 @@ git clone https://github.com/owner/repo.git
79
79
  poetry init # or poetry new
80
80
  # 4: Poetry will ask you some stuff when you run poetry init.
81
81
  # First author name must be equal to the GitHub repository owner (username).
82
- # The repository name must be equal to the package/project name.
82
+ # The repository name must be equal to the package/project name.
83
+ # (- instead of _ is fine, but only as the project name in pyproject.toml, folder names should all be _)
83
84
 
84
85
  # 5: Add winipedia-utils to your project
85
86
  poetry add winipedia-utils
@@ -52,7 +52,8 @@ git clone https://github.com/owner/repo.git
52
52
  poetry init # or poetry new
53
53
  # 4: Poetry will ask you some stuff when you run poetry init.
54
54
  # First author name must be equal to the GitHub repository owner (username).
55
- # The repository name must be equal to the package/project name.
55
+ # The repository name must be equal to the package/project name.
56
+ # (- instead of _ is fine, but only as the project name in pyproject.toml, folder names should all be _)
56
57
 
57
58
  # 5: Add winipedia-utils to your project
58
59
  poetry add winipedia-utils
@@ -1,7 +1,7 @@
1
1
  # Project section
2
2
  [project]
3
3
  name = "winipedia-utils"
4
- version = "0.4.46"
4
+ version = "0.4.48"
5
5
  description = "A package with many utility functions"
6
6
  readme = "README.md"
7
7
  requires-python = ">=3.12"
@@ -447,7 +447,7 @@ class DependencyGraph(nx.DiGraph): # type: ignore [type-arg]
447
447
  def build(self) -> None:
448
448
  """Build the graph from installed Python distributions."""
449
449
  for dist in importlib.metadata.distributions():
450
- name = dist.metadata["Name"].lower()
450
+ name = self.parse_distname_from_metadata(dist)
451
451
  self.add_node(name)
452
452
 
453
453
  requires = dist.requires or []
@@ -456,14 +456,24 @@ class DependencyGraph(nx.DiGraph): # type: ignore [type-arg]
456
456
  if dep:
457
457
  self.add_edge(name, dep) # package → dependency
458
458
 
459
+ @staticmethod
460
+ def parse_distname_from_metadata(dist: importlib.metadata.Distribution) -> str:
461
+ """Extract the distribution name from its metadata."""
462
+ # replace - with _ to handle packages like winipedia-utils
463
+ name: str = dist.metadata["Name"]
464
+ return DependencyGraph.normalize_package_name(name)
465
+
466
+ @staticmethod
467
+ def normalize_package_name(name: str) -> str:
468
+ """Normalize a package name."""
469
+ return name.lower().replace("-", "_").strip()
470
+
459
471
  @staticmethod
460
472
  def parse_pkg_name_from_req(req: str) -> str | None:
461
473
  """Extract the bare dependency name from a requirement string."""
462
- if not req:
463
- return None
464
474
  # split on the first non alphanumeric character like >, <, =, etc.
465
475
  dep = re.split(r"[^a-zA-Z0-9]", req.strip())[0].strip()
466
- return dep.lower().strip() if dep else None
476
+ return DependencyGraph.normalize_package_name(dep) if dep else None
467
477
 
468
478
  def get_all_depending_on(
469
479
  self, package: ModuleType, *, include_self: bool = False
@@ -477,6 +487,7 @@ class DependencyGraph(nx.DiGraph): # type: ignore [type-arg]
477
487
  Returns:
478
488
  A set of imported module objects representing dependents.
479
489
  """
490
+ # replace - with _ to handle packages like winipedia-utils
480
491
  target = package.__name__.lower()
481
492
  if target not in self:
482
493
  msg = f"Package '{target}' not found in dependency graph"