winipedia-utils 0.4.22__tar.gz → 0.4.26__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.
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/PKG-INFO +41 -2
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/README.md +40 -1
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/pyproject.toml +1 -1
- winipedia_utils-0.4.26/winipedia_utils/data/dataframe/cleaning.py +615 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/git/github/repo/protect.py +1 -2
- winipedia_utils-0.4.22/winipedia_utils/data/dataframe/cleaning.py +0 -378
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/LICENSE +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/concurrent/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/concurrent/concurrent.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/concurrent/multiprocessing.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/concurrent/multithreading.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/data/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/data/dataframe/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/data/structures/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/data/structures/dicts.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/git/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/git/github/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/git/github/repo/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/git/github/repo/repo.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/git/github/workflows/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/git/github/workflows/base/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/git/github/workflows/base/base.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/git/github/workflows/health_check.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/git/github/workflows/publish.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/git/github/workflows/release.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/git/gitignore/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/git/gitignore/config.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/git/gitignore/gitignore.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/git/pre_commit/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/git/pre_commit/config.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/git/pre_commit/hooks.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/git/pre_commit/run_hooks.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/iterating/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/iterating/iterate.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/logging/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/logging/ansi.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/logging/config.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/logging/logger.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/modules/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/modules/class_.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/modules/function.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/modules/module.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/modules/package.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/oop/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/oop/mixins/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/oop/mixins/meta.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/oop/mixins/mixin.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/os/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/os/os.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/projects/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/projects/poetry/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/projects/poetry/config.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/projects/poetry/poetry.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/projects/project.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/py.typed +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/resources/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/resources/svgs/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/resources/svgs/delete_garbage_can.svg +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/resources/svgs/download_arrow.svg +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/resources/svgs/exit_fullscreen_icon.svg +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/resources/svgs/fullscreen_icon.svg +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/resources/svgs/menu_icon.svg +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/resources/svgs/pause_icon.svg +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/resources/svgs/play_icon.svg +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/resources/svgs/plus_icon.svg +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/resources/svgs/svg.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/security/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/security/cryptography.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/security/keyring.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/setup.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/testing/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/testing/assertions.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/testing/config.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/testing/convention.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/testing/create_tests.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/testing/fixtures.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/testing/skip.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/testing/tests/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/testing/tests/base/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/testing/tests/base/fixtures/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/testing/tests/base/fixtures/fixture.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/testing/tests/base/fixtures/scopes/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/testing/tests/base/fixtures/scopes/class_.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/testing/tests/base/fixtures/scopes/function.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/testing/tests/base/fixtures/scopes/module.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/testing/tests/base/fixtures/scopes/package.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/testing/tests/base/fixtures/scopes/session.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/testing/tests/base/utils/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/testing/tests/base/utils/utils.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/testing/tests/conftest.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/text/__init__.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/winipedia_utils/text/config.py +0 -0
- {winipedia_utils-0.4.22 → winipedia_utils-0.4.26}/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.
|
|
3
|
+
Version: 0.4.26
|
|
4
4
|
Summary: A package with many utility functions
|
|
5
5
|
License-Expression: MIT
|
|
6
6
|
License-File: LICENSE
|
|
@@ -108,7 +108,7 @@ The setup creates the following configuration files:
|
|
|
108
108
|
- `.github/workflows/publish.yaml` - Publishing workflow (Publishes to PyPI when a release is created by the release workflow, if you use this workflow, you need to add a PYPI_TOKEN (named PYPI_TOKEN) to your GitHub secrets that has write access to the package on PyPI.)
|
|
109
109
|
- `py.typed` - PEP 561 marker for type hints
|
|
110
110
|
- `experiment.py` - For experimentation (ignored by git)
|
|
111
|
-
- `
|
|
111
|
+
- `test_zero.py` - Test file with one empyt test (so that initial tests pass)
|
|
112
112
|
- `conftest.py` - Pytest configuration file
|
|
113
113
|
|
|
114
114
|
### Pre-commit Hook Workflow
|
|
@@ -160,6 +160,45 @@ Configuration files are managed automatically by the setup system:
|
|
|
160
160
|
- **Custom additions** - You can add custom configurations as long as the standard configurations remain intact
|
|
161
161
|
- **Modified standards** - If you modify the standard configurations, they will be restored on the next setup run
|
|
162
162
|
|
|
163
|
+
## Branch Protection
|
|
164
|
+
|
|
165
|
+
As soon as you push to `main` on GitHub (provided the `REPO_TOKEN` secret is set up correctly), the `health_check.yaml` workflow will run and execute `winipedia_utils.git.github.repo.protect`, which uses PyGithub to protect the repository.
|
|
166
|
+
|
|
167
|
+
### Repository Settings
|
|
168
|
+
|
|
169
|
+
The following repository settings are configured:
|
|
170
|
+
|
|
171
|
+
- **name** - Repository name from `pyproject.toml` or folder name (should match repo name)
|
|
172
|
+
- **description** - Repository description from `pyproject.toml`
|
|
173
|
+
- **default_branch** - `main`
|
|
174
|
+
- **delete_branch_on_merge** - `true`
|
|
175
|
+
- **allow_update_branch** - `true`
|
|
176
|
+
- **allow_merge_commit** - `false`
|
|
177
|
+
- **allow_rebase_merge** - `true`
|
|
178
|
+
- **allow_squash_merge** - `true`
|
|
179
|
+
|
|
180
|
+
### Branch Protection Rules
|
|
181
|
+
|
|
182
|
+
A ruleset named `main protection` is created for the `main` branch with the following rules:
|
|
183
|
+
|
|
184
|
+
- **Deletion** - Prevents branch deletion
|
|
185
|
+
- **Non-fast-forward** - Prevents non-fast-forward pushes (forces linear history by rejecting force pushes)
|
|
186
|
+
- **Creation** - Prevents branch creation directly on the protected branch
|
|
187
|
+
- **Update** - Prevents direct updates to protected branch (all changes must go through pull requests)
|
|
188
|
+
- **Required Linear History** - Enforces linear commit history (no merge commits allowed)
|
|
189
|
+
- **Required Signatures** - Requires all commits to be signed with GPG or SSH keys
|
|
190
|
+
- **Pull Request Requirements:**
|
|
191
|
+
- Requires 1 approving review (at least one person must approve before merge)
|
|
192
|
+
- Dismisses stale reviews on push (if you push a new commit, all reviews are dismissed and must be re-approved)
|
|
193
|
+
- Requires code owner review (designated code owners must approve changes to their files)
|
|
194
|
+
- Requires last push approval (the most recent push must be approved, not an earlier one)
|
|
195
|
+
- Requires review thread resolution (all comments in reviews must be resolved before merge)
|
|
196
|
+
- Allowed merge methods: `squash` and `rebase` (no merge commits, keeps history clean)
|
|
197
|
+
- **Required Status Checks:**
|
|
198
|
+
- Strict mode enabled (all status checks must pass on the latest commit, not older ones (sets the health check as required status check))
|
|
199
|
+
- Health check workflow must pass (the CI/CD pipeline must complete successfully)
|
|
200
|
+
- **Bypass Actors** - Repository admins can bypass all rules (for emergency situations)
|
|
201
|
+
|
|
163
202
|
## Utilities
|
|
164
203
|
|
|
165
204
|
Winipedia Utils provides comprehensive utility modules for common development tasks:
|
|
@@ -82,7 +82,7 @@ The setup creates the following configuration files:
|
|
|
82
82
|
- `.github/workflows/publish.yaml` - Publishing workflow (Publishes to PyPI when a release is created by the release workflow, if you use this workflow, you need to add a PYPI_TOKEN (named PYPI_TOKEN) to your GitHub secrets that has write access to the package on PyPI.)
|
|
83
83
|
- `py.typed` - PEP 561 marker for type hints
|
|
84
84
|
- `experiment.py` - For experimentation (ignored by git)
|
|
85
|
-
- `
|
|
85
|
+
- `test_zero.py` - Test file with one empyt test (so that initial tests pass)
|
|
86
86
|
- `conftest.py` - Pytest configuration file
|
|
87
87
|
|
|
88
88
|
### Pre-commit Hook Workflow
|
|
@@ -134,6 +134,45 @@ Configuration files are managed automatically by the setup system:
|
|
|
134
134
|
- **Custom additions** - You can add custom configurations as long as the standard configurations remain intact
|
|
135
135
|
- **Modified standards** - If you modify the standard configurations, they will be restored on the next setup run
|
|
136
136
|
|
|
137
|
+
## Branch Protection
|
|
138
|
+
|
|
139
|
+
As soon as you push to `main` on GitHub (provided the `REPO_TOKEN` secret is set up correctly), the `health_check.yaml` workflow will run and execute `winipedia_utils.git.github.repo.protect`, which uses PyGithub to protect the repository.
|
|
140
|
+
|
|
141
|
+
### Repository Settings
|
|
142
|
+
|
|
143
|
+
The following repository settings are configured:
|
|
144
|
+
|
|
145
|
+
- **name** - Repository name from `pyproject.toml` or folder name (should match repo name)
|
|
146
|
+
- **description** - Repository description from `pyproject.toml`
|
|
147
|
+
- **default_branch** - `main`
|
|
148
|
+
- **delete_branch_on_merge** - `true`
|
|
149
|
+
- **allow_update_branch** - `true`
|
|
150
|
+
- **allow_merge_commit** - `false`
|
|
151
|
+
- **allow_rebase_merge** - `true`
|
|
152
|
+
- **allow_squash_merge** - `true`
|
|
153
|
+
|
|
154
|
+
### Branch Protection Rules
|
|
155
|
+
|
|
156
|
+
A ruleset named `main protection` is created for the `main` branch with the following rules:
|
|
157
|
+
|
|
158
|
+
- **Deletion** - Prevents branch deletion
|
|
159
|
+
- **Non-fast-forward** - Prevents non-fast-forward pushes (forces linear history by rejecting force pushes)
|
|
160
|
+
- **Creation** - Prevents branch creation directly on the protected branch
|
|
161
|
+
- **Update** - Prevents direct updates to protected branch (all changes must go through pull requests)
|
|
162
|
+
- **Required Linear History** - Enforces linear commit history (no merge commits allowed)
|
|
163
|
+
- **Required Signatures** - Requires all commits to be signed with GPG or SSH keys
|
|
164
|
+
- **Pull Request Requirements:**
|
|
165
|
+
- Requires 1 approving review (at least one person must approve before merge)
|
|
166
|
+
- Dismisses stale reviews on push (if you push a new commit, all reviews are dismissed and must be re-approved)
|
|
167
|
+
- Requires code owner review (designated code owners must approve changes to their files)
|
|
168
|
+
- Requires last push approval (the most recent push must be approved, not an earlier one)
|
|
169
|
+
- Requires review thread resolution (all comments in reviews must be resolved before merge)
|
|
170
|
+
- Allowed merge methods: `squash` and `rebase` (no merge commits, keeps history clean)
|
|
171
|
+
- **Required Status Checks:**
|
|
172
|
+
- Strict mode enabled (all status checks must pass on the latest commit, not older ones (sets the health check as required status check))
|
|
173
|
+
- Health check workflow must pass (the CI/CD pipeline must complete successfully)
|
|
174
|
+
- **Bypass Actors** - Repository admins can bypass all rules (for emergency situations)
|
|
175
|
+
|
|
137
176
|
## Utilities
|
|
138
177
|
|
|
139
178
|
Winipedia Utils provides comprehensive utility modules for common development tasks:
|