winipedia-utils 0.4.33__tar.gz → 0.4.34__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 (93) hide show
  1. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/PKG-INFO +1 -1
  2. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/pyproject.toml +1 -1
  3. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/git/github/workflows/base/base.py +4 -1
  4. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/projects/poetry/config.py +21 -0
  5. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/LICENSE +0 -0
  6. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/README.md +0 -0
  7. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/__init__.py +0 -0
  8. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/concurrent/__init__.py +0 -0
  9. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/concurrent/concurrent.py +0 -0
  10. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/concurrent/multiprocessing.py +0 -0
  11. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/concurrent/multithreading.py +0 -0
  12. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/data/__init__.py +0 -0
  13. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/data/dataframe/__init__.py +0 -0
  14. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/data/dataframe/cleaning.py +0 -0
  15. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/data/structures/__init__.py +0 -0
  16. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/data/structures/dicts.py +0 -0
  17. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/git/__init__.py +0 -0
  18. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/git/github/__init__.py +0 -0
  19. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/git/github/repo/__init__.py +0 -0
  20. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/git/github/repo/protect.py +0 -0
  21. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/git/github/repo/repo.py +0 -0
  22. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/git/github/workflows/__init__.py +0 -0
  23. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/git/github/workflows/base/__init__.py +0 -0
  24. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/git/github/workflows/health_check.py +0 -0
  25. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/git/github/workflows/publish.py +0 -0
  26. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/git/github/workflows/release.py +0 -0
  27. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/git/gitignore/__init__.py +0 -0
  28. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/git/gitignore/config.py +0 -0
  29. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/git/gitignore/gitignore.py +0 -0
  30. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/git/pre_commit/__init__.py +0 -0
  31. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/git/pre_commit/config.py +0 -0
  32. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/git/pre_commit/hooks.py +0 -0
  33. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/git/pre_commit/run_hooks.py +0 -0
  34. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/iterating/__init__.py +0 -0
  35. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/iterating/iterate.py +0 -0
  36. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/logging/__init__.py +0 -0
  37. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/logging/ansi.py +0 -0
  38. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/logging/config.py +0 -0
  39. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/logging/logger.py +0 -0
  40. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/modules/__init__.py +0 -0
  41. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/modules/class_.py +0 -0
  42. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/modules/function.py +0 -0
  43. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/modules/module.py +0 -0
  44. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/modules/package.py +0 -0
  45. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/oop/__init__.py +0 -0
  46. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/oop/mixins/__init__.py +0 -0
  47. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/oop/mixins/meta.py +0 -0
  48. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/oop/mixins/mixin.py +0 -0
  49. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/os/__init__.py +0 -0
  50. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/os/os.py +0 -0
  51. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/projects/__init__.py +0 -0
  52. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/projects/poetry/__init__.py +0 -0
  53. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/projects/poetry/poetry.py +0 -0
  54. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/projects/project.py +0 -0
  55. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/py.typed +0 -0
  56. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/resources/__init__.py +0 -0
  57. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/resources/svgs/__init__.py +0 -0
  58. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/resources/svgs/delete_garbage_can.svg +0 -0
  59. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/resources/svgs/download_arrow.svg +0 -0
  60. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/resources/svgs/exit_fullscreen_icon.svg +0 -0
  61. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/resources/svgs/fullscreen_icon.svg +0 -0
  62. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/resources/svgs/menu_icon.svg +0 -0
  63. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/resources/svgs/pause_icon.svg +0 -0
  64. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/resources/svgs/play_icon.svg +0 -0
  65. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/resources/svgs/plus_icon.svg +0 -0
  66. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/resources/svgs/svg.py +0 -0
  67. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/security/__init__.py +0 -0
  68. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/security/cryptography.py +0 -0
  69. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/security/keyring.py +0 -0
  70. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/setup.py +0 -0
  71. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/testing/__init__.py +0 -0
  72. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/testing/assertions.py +0 -0
  73. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/testing/config.py +0 -0
  74. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/testing/convention.py +0 -0
  75. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/testing/create_tests.py +0 -0
  76. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/testing/fixtures.py +0 -0
  77. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/testing/skip.py +0 -0
  78. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/testing/tests/__init__.py +0 -0
  79. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/testing/tests/base/__init__.py +0 -0
  80. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/testing/tests/base/fixtures/__init__.py +0 -0
  81. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/testing/tests/base/fixtures/fixture.py +0 -0
  82. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/testing/tests/base/fixtures/scopes/__init__.py +0 -0
  83. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/testing/tests/base/fixtures/scopes/class_.py +0 -0
  84. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/testing/tests/base/fixtures/scopes/function.py +0 -0
  85. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/testing/tests/base/fixtures/scopes/module.py +0 -0
  86. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/testing/tests/base/fixtures/scopes/package.py +0 -0
  87. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/testing/tests/base/fixtures/scopes/session.py +0 -0
  88. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/testing/tests/base/utils/__init__.py +0 -0
  89. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/testing/tests/base/utils/utils.py +0 -0
  90. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/testing/tests/conftest.py +0 -0
  91. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/text/__init__.py +0 -0
  92. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/winipedia_utils/text/config.py +0 -0
  93. {winipedia_utils-0.4.33 → winipedia_utils-0.4.34}/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.33
3
+ Version: 0.4.34
4
4
  Summary: A package with many utility functions
5
5
  License-Expression: MIT
6
6
  License-File: LICENSE
@@ -1,7 +1,7 @@
1
1
  # Project section
2
2
  [project]
3
3
  name = "winipedia-utils"
4
- version = "0.4.33"
4
+ version = "0.4.34"
5
5
  description = "A package with many utility functions"
6
6
  readme = "README.md"
7
7
  requires-python = ">=3.12"
@@ -7,6 +7,7 @@ from typing import Any
7
7
  import winipedia_utils
8
8
  from winipedia_utils.modules.module import make_obj_importpath
9
9
  from winipedia_utils.modules.package import get_src_package
10
+ from winipedia_utils.projects.poetry.config import PyprojectConfigFile
10
11
  from winipedia_utils.text.config import YamlConfigFile
11
12
  from winipedia_utils.text.string import split_on_uppercase
12
13
 
@@ -149,7 +150,9 @@ class Workflow(YamlConfigFile):
149
150
  {
150
151
  "name": "Setup Python",
151
152
  "uses": "actions/setup-python@main",
152
- "with": {"python-version": "3.x"},
153
+ "with": {
154
+ "python-version": PyprojectConfigFile.get_latest_possible_python_version() # noqa: E501
155
+ },
153
156
  }
154
157
  )
155
158
  steps.append(
@@ -3,6 +3,9 @@
3
3
  from pathlib import Path
4
4
  from typing import Any, cast
5
5
 
6
+ from packaging.specifiers import SpecifierSet
7
+ from packaging.version import Version
8
+
6
9
  from winipedia_utils.modules.package import get_src_package, make_name_from_package
7
10
  from winipedia_utils.testing.convention import TESTS_PACKAGE_NAME
8
11
  from winipedia_utils.text.config import ConfigFile, TomlConfigFile
@@ -130,6 +133,24 @@ class PyprojectConfigFile(TomlConfigFile):
130
133
  """Get the main author name."""
131
134
  return cls.get_main_author()["name"]
132
135
 
136
+ @classmethod
137
+ def get_latest_possible_python_version(cls) -> str:
138
+ """Get the latest possible python version."""
139
+ constraint = cls.load()["project"]["requires-python"]
140
+ spec = constraint.strip().strip('"').strip("'")
141
+ sset = SpecifierSet(spec)
142
+ # find upper bound specifiers
143
+ uppers = [Version(sp.version) for sp in sset if sp.operator in ("<", "<=")]
144
+ if uppers:
145
+ top = max(uppers)
146
+ # if strict "<", we might treat it as “one less” in minor
147
+ if any(sp.operator == "<" and Version(sp.version) == top for sp in sset):
148
+ # subtract one minor
149
+ return f"{top.major}.{top.minor - 1}"
150
+ return f"{top.major}.{top.minor}"
151
+ # no upper bound → “3.x”
152
+ return "3.x"
153
+
133
154
 
134
155
  class TypedConfigFile(ConfigFile):
135
156
  """Config file for py.typed."""