winipedia-utils 0.2.47__tar.gz → 0.2.50__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 (86) hide show
  1. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/PKG-INFO +1 -1
  2. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/pyproject.toml +1 -1
  3. winipedia_utils-0.2.50/winipedia_utils/git/workflows/base/base.py +84 -0
  4. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/git/workflows/publish.py +0 -2
  5. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/git/workflows/release.py +2 -1
  6. winipedia_utils-0.2.47/winipedia_utils/git/workflows/base/base.py +0 -47
  7. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/LICENSE +0 -0
  8. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/README.md +0 -0
  9. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/__init__.py +0 -0
  10. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/concurrent/__init__.py +0 -0
  11. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/concurrent/concurrent.py +0 -0
  12. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/concurrent/multiprocessing.py +0 -0
  13. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/concurrent/multithreading.py +0 -0
  14. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/consts.py +0 -0
  15. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/data/__init__.py +0 -0
  16. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/data/dataframe/__init__.py +0 -0
  17. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/data/dataframe/cleaning.py +0 -0
  18. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/data/structures/__init__.py +0 -0
  19. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/data/structures/dicts.py +0 -0
  20. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/git/__init__.py +0 -0
  21. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/git/gitignore/__init__.py +0 -0
  22. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/git/gitignore/gitignore.py +0 -0
  23. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/git/pre_commit/__init__.py +0 -0
  24. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/git/pre_commit/config.py +0 -0
  25. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/git/pre_commit/hooks.py +0 -0
  26. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/git/pre_commit/run_hooks.py +0 -0
  27. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/git/workflows/__init__.py +0 -0
  28. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/git/workflows/base/__init__.py +0 -0
  29. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/iterating/__init__.py +0 -0
  30. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/iterating/iterate.py +0 -0
  31. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/logging/__init__.py +0 -0
  32. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/logging/ansi.py +0 -0
  33. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/logging/config.py +0 -0
  34. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/logging/logger.py +0 -0
  35. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/modules/__init__.py +0 -0
  36. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/modules/class_.py +0 -0
  37. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/modules/function.py +0 -0
  38. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/modules/module.py +0 -0
  39. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/modules/package.py +0 -0
  40. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/oop/__init__.py +0 -0
  41. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/oop/mixins/__init__.py +0 -0
  42. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/oop/mixins/meta.py +0 -0
  43. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/oop/mixins/mixin.py +0 -0
  44. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/os/__init__.py +0 -0
  45. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/os/os.py +0 -0
  46. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/projects/__init__.py +0 -0
  47. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/projects/poetry/__init__.py +0 -0
  48. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/projects/poetry/config.py +0 -0
  49. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/projects/poetry/poetry.py +0 -0
  50. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/projects/project.py +0 -0
  51. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/py.typed +0 -0
  52. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/resources/__init__.py +0 -0
  53. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/resources/svgs/__init__.py +0 -0
  54. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/resources/svgs/delete_garbage_can.svg +0 -0
  55. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/resources/svgs/download_arrow.svg +0 -0
  56. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/resources/svgs/exit_fullscreen_icon.svg +0 -0
  57. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/resources/svgs/fullscreen_icon.svg +0 -0
  58. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/resources/svgs/menu_icon.svg +0 -0
  59. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/resources/svgs/pause_icon.svg +0 -0
  60. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/resources/svgs/play_icon.svg +0 -0
  61. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/resources/svgs/plus_icon.svg +0 -0
  62. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/resources/svgs/svg.py +0 -0
  63. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/security/__init__.py +0 -0
  64. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/security/cryptography.py +0 -0
  65. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/security/keyring.py +0 -0
  66. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/setup.py +0 -0
  67. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/testing/__init__.py +0 -0
  68. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/testing/assertions.py +0 -0
  69. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/testing/convention.py +0 -0
  70. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/testing/create_tests.py +0 -0
  71. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/testing/fixtures.py +0 -0
  72. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/testing/tests/__init__.py +0 -0
  73. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/testing/tests/base/__init__.py +0 -0
  74. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/testing/tests/base/fixtures/__init__.py +0 -0
  75. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/testing/tests/base/fixtures/fixture.py +0 -0
  76. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/testing/tests/base/fixtures/scopes/__init__.py +0 -0
  77. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/testing/tests/base/fixtures/scopes/class_.py +0 -0
  78. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/testing/tests/base/fixtures/scopes/function.py +0 -0
  79. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/testing/tests/base/fixtures/scopes/module.py +0 -0
  80. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/testing/tests/base/fixtures/scopes/package.py +0 -0
  81. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/testing/tests/base/fixtures/scopes/session.py +0 -0
  82. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/testing/tests/base/utils/__init__.py +0 -0
  83. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/testing/tests/base/utils/utils.py +0 -0
  84. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/testing/tests/conftest.py +0 -0
  85. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/winipedia_utils/text/__init__.py +0 -0
  86. {winipedia_utils-0.2.47 → winipedia_utils-0.2.50}/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.2.47
3
+ Version: 0.2.50
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.2.47"
4
+ version = "0.2.50"
5
5
  description = "A package with many utility functions"
6
6
  readme = "README.md"
7
7
  requires-python = ">=3.12"
@@ -0,0 +1,84 @@
1
+ """Contains base utilities for git workflows."""
2
+
3
+ from typing import Any
4
+
5
+
6
+ def _get_checkout_step(
7
+ fetch_depth: int | None = None,
8
+ ) -> dict[str, Any]:
9
+ """Get the checkout step.
10
+
11
+ Args:
12
+ fetch_depth: The fetch depth to use. If None, no fetch depth is specified.
13
+
14
+ Returns:
15
+ The checkout step.
16
+ """
17
+ step: dict[str, Any] = {
18
+ "name": "Checkout repository",
19
+ "uses": "actions/checkout@v5",
20
+ }
21
+ if fetch_depth is not None:
22
+ step["with"] = {"fetch-depth": fetch_depth}
23
+ return step
24
+
25
+
26
+ def _get_poetry_setup_steps(
27
+ *,
28
+ install_dependencies: bool = False,
29
+ fetch_depth: int | None = None,
30
+ configure_pipy_token: bool = False,
31
+ force_main_head: bool = False,
32
+ ) -> list[dict[str, Any]]:
33
+ """Get the poetry steps.
34
+
35
+ Args:
36
+ install_dependencies: Whether to install dependencies.
37
+ fetch_depth: The fetch depth to use. If None, no fetch depth is specified.
38
+ configure_pipy_token: Whether to configure the pipy token.
39
+ force_main_head: Whether to exit if the running branch or current commit is not
40
+ equal to the most recent commit on main. This is useful for workflows that
41
+ should only run on main.
42
+
43
+ Returns:
44
+ The poetry steps.
45
+ """
46
+ steps = [_get_checkout_step(fetch_depth)]
47
+ if force_main_head:
48
+ # exit with code 1 if the running branch is not main
49
+ steps.append(
50
+ {
51
+ "name": "Assert running on head of main",
52
+ "run": """|
53
+ git fetch origin main --depth=1
54
+ main_sha=$(git rev-parse origin/main)
55
+ if [ "$GITHUB_SHA" != "$main_sha" ]; then
56
+ echo "Tag commit is not the latest commit on main."
57
+ exit 1
58
+ fi
59
+ """,
60
+ }
61
+ )
62
+ steps.append(
63
+ {
64
+ "name": "Setup Python",
65
+ "uses": "actions/setup-python@v6",
66
+ "with": {"python-version": "3.x"},
67
+ }
68
+ )
69
+ steps.append(
70
+ {
71
+ "name": "Install Poetry",
72
+ "run": "curl -sSL https://install.python-poetry.org | python3 -",
73
+ }
74
+ )
75
+ if configure_pipy_token:
76
+ steps.append(
77
+ {
78
+ "name": "Configure Poetry",
79
+ "run": "poetry config pypi-token.pypi ${{ secrets.PYPI_TOKEN }}",
80
+ }
81
+ )
82
+ if install_dependencies:
83
+ steps.append({"name": "Install Dependencies", "run": "poetry install"})
84
+ return steps
@@ -38,9 +38,7 @@ def _get_publish_config() -> dict[str, Any]:
38
38
  "workflow_run": {
39
39
  "workflows": [WORKFLOW_NAME],
40
40
  "types": ["completed"],
41
- "branches": ["main"],
42
41
  },
43
- "release": {"types": ["published"]},
44
42
  },
45
43
  "jobs": {
46
44
  "publish": {
@@ -35,7 +35,7 @@ def _get_release_config() -> dict[str, Any]:
35
35
  """Dict that represents the release workflow yaml."""
36
36
  return {
37
37
  "name": WORKFLOW_NAME,
38
- "on": {"push": {"tags": ["v*"], "branches": ["main"]}},
38
+ "on": {"push": {"tags": ["v*"]}},
39
39
  "permissions": {
40
40
  "contents": "write",
41
41
  },
@@ -47,6 +47,7 @@ def _get_release_config() -> dict[str, Any]:
47
47
  _get_poetry_setup_steps(
48
48
  install_dependencies=True,
49
49
  fetch_depth=0,
50
+ force_main_head=True,
50
51
  )
51
52
  ),
52
53
  {
@@ -1,47 +0,0 @@
1
- """Contains base utilities for git workflows."""
2
-
3
- from typing import Any
4
-
5
-
6
- def _get_checkout_step(fetch_depth: int | None = None) -> dict[str, Any]:
7
- """Get the checkout step."""
8
- step: dict[str, Any] = {
9
- "name": "Checkout repository",
10
- "uses": "actions/checkout@v5",
11
- }
12
- if fetch_depth is not None:
13
- step["with"] = {"fetch-depth": fetch_depth}
14
- return step
15
-
16
-
17
- def _get_poetry_setup_steps(
18
- *,
19
- install_dependencies: bool = False,
20
- fetch_depth: int | None = None,
21
- configure_pipy_token: bool = False,
22
- ) -> list[dict[str, Any]]:
23
- """Get the poetry steps."""
24
- steps = [_get_checkout_step(fetch_depth)]
25
- steps.append(
26
- {
27
- "name": "Setup Python",
28
- "uses": "actions/setup-python@v6",
29
- "with": {"python-version": "3.x"},
30
- }
31
- )
32
- steps.append(
33
- {
34
- "name": "Install Poetry",
35
- "run": "curl -sSL https://install.python-poetry.org | python3 -",
36
- }
37
- )
38
- if configure_pipy_token:
39
- steps.append(
40
- {
41
- "name": "Configure Poetry",
42
- "run": "poetry config pypi-token.pypi ${{ secrets.PYPI_TOKEN }}",
43
- }
44
- )
45
- if install_dependencies:
46
- steps.append({"name": "Install Dependencies", "run": "poetry install"})
47
- return steps