pyrig 2.0.30__tar.gz → 4.2.3__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.
Files changed (232) hide show
  1. {pyrig-2.0.30 → pyrig-4.2.3}/LICENSE +1 -1
  2. pyrig-4.2.3/PKG-INFO +158 -0
  3. pyrig-4.2.3/README.md +127 -0
  4. pyrig-4.2.3/pyproject.toml +118 -0
  5. pyrig-4.2.3/pyrig/__init__.py +18 -0
  6. pyrig-4.2.3/pyrig/dev/__init__.py +15 -0
  7. pyrig-4.2.3/pyrig/dev/builders/__init__.py +5 -0
  8. pyrig-4.2.3/pyrig/dev/builders/base/__init__.py +15 -0
  9. pyrig-4.2.3/pyrig/dev/builders/base/base.py +343 -0
  10. pyrig-4.2.3/pyrig/dev/builders/pyinstaller.py +316 -0
  11. pyrig-4.2.3/pyrig/dev/cli/__init__.py +20 -0
  12. pyrig-4.2.3/pyrig/dev/cli/cli.py +252 -0
  13. pyrig-4.2.3/pyrig/dev/cli/commands/__init__.py +24 -0
  14. pyrig-4.2.3/pyrig/dev/cli/commands/build_artifacts.py +22 -0
  15. pyrig-4.2.3/pyrig/dev/cli/commands/create_root.py +29 -0
  16. pyrig-4.2.3/pyrig/dev/cli/commands/create_tests.py +70 -0
  17. pyrig-4.2.3/pyrig/dev/cli/commands/init_project.py +170 -0
  18. pyrig-4.2.3/pyrig/dev/cli/commands/make_inits.py +43 -0
  19. pyrig-4.2.3/pyrig/dev/cli/commands/protect_repo.py +84 -0
  20. pyrig-4.2.3/pyrig/dev/cli/shared_subcommands.py +36 -0
  21. pyrig-4.2.3/pyrig/dev/cli/subcommands.py +202 -0
  22. pyrig-4.2.3/pyrig/dev/configs/__init__.py +6 -0
  23. pyrig-4.2.3/pyrig/dev/configs/base/__init__.py +90 -0
  24. pyrig-4.2.3/pyrig/dev/configs/base/badges_md.py +118 -0
  25. pyrig-4.2.3/pyrig/dev/configs/base/base.py +529 -0
  26. pyrig-4.2.3/pyrig/dev/configs/base/copy_module.py +91 -0
  27. pyrig-4.2.3/pyrig/dev/configs/base/copy_module_docstr.py +63 -0
  28. pyrig-4.2.3/pyrig/dev/configs/base/dict_cf.py +50 -0
  29. pyrig-4.2.3/pyrig/dev/configs/base/init.py +57 -0
  30. pyrig-4.2.3/pyrig/dev/configs/base/json.py +85 -0
  31. pyrig-4.2.3/pyrig/dev/configs/base/list_cf.py +50 -0
  32. pyrig-4.2.3/pyrig/dev/configs/base/markdown.py +39 -0
  33. pyrig-4.2.3/pyrig/dev/configs/base/py_package.py +53 -0
  34. pyrig-4.2.3/pyrig/dev/configs/base/py_tests.py +44 -0
  35. pyrig-4.2.3/pyrig/dev/configs/base/python.py +39 -0
  36. pyrig-4.2.3/pyrig/dev/configs/base/string_.py +155 -0
  37. pyrig-4.2.3/pyrig/dev/configs/base/toml.py +131 -0
  38. pyrig-4.2.3/pyrig/dev/configs/base/txt.py +38 -0
  39. pyrig-4.2.3/pyrig/dev/configs/base/typed.py +74 -0
  40. pyrig-4.2.3/pyrig/dev/configs/base/workflow.py +1878 -0
  41. pyrig-4.2.3/pyrig/dev/configs/base/yaml.py +71 -0
  42. pyrig-4.2.3/pyrig/dev/configs/base/yml.py +40 -0
  43. pyrig-4.2.3/pyrig/dev/configs/containers/__init__.py +12 -0
  44. pyrig-4.2.3/pyrig/dev/configs/containers/container_file.py +129 -0
  45. pyrig-4.2.3/pyrig/dev/configs/docs/__init__.py +14 -0
  46. pyrig-4.2.3/pyrig/dev/configs/docs/mkdocs.py +110 -0
  47. pyrig-4.2.3/pyrig/dev/configs/dot_env.py +69 -0
  48. pyrig-4.2.3/pyrig/dev/configs/dot_python_version.py +49 -0
  49. pyrig-4.2.3/pyrig/dev/configs/git/__init__.py +14 -0
  50. pyrig-4.2.3/pyrig/dev/configs/git/branch_protection.py +94 -0
  51. pyrig-4.2.3/pyrig/dev/configs/git/gitignore.py +147 -0
  52. pyrig-4.2.3/pyrig/dev/configs/git/pre_commit.py +150 -0
  53. pyrig-4.2.3/pyrig/dev/configs/licence.py +90 -0
  54. pyrig-4.2.3/pyrig/dev/configs/markdown/__init__.py +13 -0
  55. pyrig-4.2.3/pyrig/dev/configs/markdown/docs/__init__.py +12 -0
  56. pyrig-4.2.3/pyrig/dev/configs/markdown/docs/api.py +61 -0
  57. pyrig-4.2.3/pyrig/dev/configs/markdown/docs/index.py +60 -0
  58. pyrig-4.2.3/pyrig/dev/configs/markdown/readme.py +56 -0
  59. pyrig-4.2.3/pyrig/dev/configs/py_typed.py +30 -0
  60. pyrig-4.2.3/pyrig/dev/configs/pyproject.py +358 -0
  61. pyrig-4.2.3/pyrig/dev/configs/pyrig/__init__.py +34 -0
  62. pyrig-4.2.3/pyrig/dev/configs/pyrig/pyproject.py +94 -0
  63. pyrig-4.2.3/pyrig/dev/configs/python/__init__.py +10 -0
  64. pyrig-4.2.3/pyrig/dev/configs/python/builders_init.py +51 -0
  65. pyrig-4.2.3/pyrig/dev/configs/python/configs_init.py +53 -0
  66. pyrig-4.2.3/pyrig/dev/configs/python/dot_experiment.py +76 -0
  67. pyrig-4.2.3/pyrig/dev/configs/python/main.py +103 -0
  68. pyrig-4.2.3/pyrig/dev/configs/python/management_init.py +64 -0
  69. pyrig-4.2.3/pyrig/dev/configs/python/resources_init.py +51 -0
  70. pyrig-4.2.3/pyrig/dev/configs/python/shared_subcommands.py +58 -0
  71. pyrig-4.2.3/pyrig/dev/configs/python/src_init.py +49 -0
  72. pyrig-4.2.3/pyrig/dev/configs/python/subcommands.py +56 -0
  73. pyrig-4.2.3/pyrig/dev/configs/testing/__init__.py +9 -0
  74. pyrig-4.2.3/pyrig/dev/configs/testing/conftest.py +72 -0
  75. pyrig-4.2.3/pyrig/dev/configs/testing/fixtures_init.py +61 -0
  76. pyrig-4.2.3/pyrig/dev/configs/testing/main_test.py +109 -0
  77. pyrig-4.2.3/pyrig/dev/configs/testing/zero_test.py +70 -0
  78. pyrig-4.2.3/pyrig/dev/configs/workflows/__init__.py +10 -0
  79. pyrig-4.2.3/pyrig/dev/configs/workflows/build.py +145 -0
  80. pyrig-4.2.3/pyrig/dev/configs/workflows/health_check.py +210 -0
  81. pyrig-4.2.3/pyrig/dev/configs/workflows/publish.py +143 -0
  82. pyrig-4.2.3/pyrig/dev/configs/workflows/release.py +134 -0
  83. pyrig-4.2.3/pyrig/dev/management/__init__.py +5 -0
  84. pyrig-4.2.3/pyrig/dev/management/base/__init__.py +10 -0
  85. pyrig-4.2.3/pyrig/dev/management/base/base.py +98 -0
  86. pyrig-4.2.3/pyrig/dev/management/container_engine.py +72 -0
  87. pyrig-4.2.3/pyrig/dev/management/docs_builder.py +57 -0
  88. pyrig-4.2.3/pyrig/dev/management/linter.py +75 -0
  89. pyrig-4.2.3/pyrig/dev/management/mdlinter.py +61 -0
  90. pyrig-4.2.3/pyrig/dev/management/package_manager.py +197 -0
  91. pyrig-4.2.3/pyrig/dev/management/pre_committer.py +86 -0
  92. pyrig-4.2.3/pyrig/dev/management/project_tester.py +53 -0
  93. pyrig-4.2.3/pyrig/dev/management/pyrigger.py +66 -0
  94. pyrig-4.2.3/pyrig/dev/management/remote_version_controller.py +133 -0
  95. pyrig-4.2.3/pyrig/dev/management/security_checker.py +62 -0
  96. pyrig-4.2.3/pyrig/dev/management/type_checker.py +47 -0
  97. pyrig-4.2.3/pyrig/dev/management/version_controller.py +459 -0
  98. pyrig-4.2.3/pyrig/dev/tests/__init__.py +15 -0
  99. pyrig-4.2.3/pyrig/dev/tests/conftest.py +51 -0
  100. pyrig-4.2.3/pyrig/dev/tests/fixtures/__init__.py +6 -0
  101. pyrig-4.2.3/pyrig/dev/tests/fixtures/assertions.py +94 -0
  102. pyrig-4.2.3/pyrig/dev/tests/fixtures/autouse/__init__.py +9 -0
  103. pyrig-4.2.3/pyrig/dev/tests/fixtures/autouse/session.py +585 -0
  104. pyrig-4.2.3/pyrig/dev/tests/fixtures/factories.py +97 -0
  105. pyrig-4.2.3/pyrig/dev/tests/mirror_test.py +907 -0
  106. pyrig-4.2.3/pyrig/dev/utils/__init__.py +33 -0
  107. pyrig-4.2.3/pyrig/dev/utils/github_api.py +237 -0
  108. pyrig-4.2.3/pyrig/dev/utils/packages.py +176 -0
  109. pyrig-4.2.3/pyrig/dev/utils/resources.py +170 -0
  110. pyrig-4.2.3/pyrig/dev/utils/testing.py +283 -0
  111. pyrig-4.2.3/pyrig/dev/utils/urls.py +50 -0
  112. pyrig-4.2.3/pyrig/dev/utils/version_control.py +103 -0
  113. pyrig-4.2.3/pyrig/dev/utils/versions.py +381 -0
  114. pyrig-4.2.3/pyrig/main.py +9 -0
  115. pyrig-4.2.3/pyrig/resources/GITIGNORE +216 -0
  116. pyrig-4.2.3/pyrig/resources/LATEST_PYTHON_VERSION +1 -0
  117. pyrig-4.2.3/pyrig/resources/MIT_LICENSE_TEMPLATE +21 -0
  118. pyrig-4.2.3/pyrig/resources/__init__.py +5 -0
  119. pyrig-4.2.3/pyrig/src/__init__.py +5 -0
  120. pyrig-4.2.3/pyrig/src/cli.py +71 -0
  121. pyrig-4.2.3/pyrig/src/git.py +35 -0
  122. pyrig-4.2.3/pyrig/src/graph.py +243 -0
  123. pyrig-4.2.3/pyrig/src/iterate.py +131 -0
  124. pyrig-4.2.3/pyrig/src/modules/__init__.py +15 -0
  125. pyrig-4.2.3/pyrig/src/modules/class_.py +256 -0
  126. pyrig-4.2.3/pyrig/src/modules/function.py +78 -0
  127. pyrig-4.2.3/pyrig/src/modules/imports.py +208 -0
  128. pyrig-4.2.3/pyrig/src/modules/inspection.py +145 -0
  129. pyrig-4.2.3/pyrig/src/modules/module.py +339 -0
  130. pyrig-4.2.3/pyrig/src/modules/package.py +536 -0
  131. pyrig-4.2.3/pyrig/src/modules/path.py +316 -0
  132. pyrig-4.2.3/pyrig/src/processes.py +152 -0
  133. pyrig-4.2.3/pyrig/src/requests.py +43 -0
  134. pyrig-4.2.3/pyrig/src/resource.py +52 -0
  135. pyrig-4.2.3/pyrig/src/string_.py +167 -0
  136. pyrig-2.0.30/PKG-INFO +0 -856
  137. pyrig-2.0.30/README.md +0 -837
  138. pyrig-2.0.30/pyproject.toml +0 -103
  139. pyrig-2.0.30/pyrig/__init__.py +0 -1
  140. pyrig-2.0.30/pyrig/dev/__init__.py +0 -1
  141. pyrig-2.0.30/pyrig/dev/artifacts/__init__.py +0 -1
  142. pyrig-2.0.30/pyrig/dev/artifacts/build.py +0 -8
  143. pyrig-2.0.30/pyrig/dev/artifacts/builder/__init__.py +0 -1
  144. pyrig-2.0.30/pyrig/dev/artifacts/builder/base/__init__.py +0 -1
  145. pyrig-2.0.30/pyrig/dev/artifacts/builder/base/base.py +0 -308
  146. pyrig-2.0.30/pyrig/dev/artifacts/builder/builder.py +0 -4
  147. pyrig-2.0.30/pyrig/dev/artifacts/resources/__init__.py +0 -1
  148. pyrig-2.0.30/pyrig/dev/cli/__init__.py +0 -1
  149. pyrig-2.0.30/pyrig/dev/cli/cli.py +0 -46
  150. pyrig-2.0.30/pyrig/dev/cli/subcommands.py +0 -60
  151. pyrig-2.0.30/pyrig/dev/configs/__init__.py +0 -1
  152. pyrig-2.0.30/pyrig/dev/configs/base/__init__.py +0 -1
  153. pyrig-2.0.30/pyrig/dev/configs/base/base.py +0 -484
  154. pyrig-2.0.30/pyrig/dev/configs/configs.py +0 -4
  155. pyrig-2.0.30/pyrig/dev/configs/dot_env.py +0 -50
  156. pyrig-2.0.30/pyrig/dev/configs/dot_python_version.py +0 -50
  157. pyrig-2.0.30/pyrig/dev/configs/git/__init__.py +0 -1
  158. pyrig-2.0.30/pyrig/dev/configs/git/gitignore.py +0 -120
  159. pyrig-2.0.30/pyrig/dev/configs/git/pre_commit.py +0 -117
  160. pyrig-2.0.30/pyrig/dev/configs/licence.py +0 -34
  161. pyrig-2.0.30/pyrig/dev/configs/py_typed.py +0 -15
  162. pyrig-2.0.30/pyrig/dev/configs/pyproject.py +0 -295
  163. pyrig-2.0.30/pyrig/dev/configs/python/__init__.py +0 -1
  164. pyrig-2.0.30/pyrig/dev/configs/python/builder.py +0 -15
  165. pyrig-2.0.30/pyrig/dev/configs/python/configs.py +0 -18
  166. pyrig-2.0.30/pyrig/dev/configs/python/experiment.py +0 -28
  167. pyrig-2.0.30/pyrig/dev/configs/python/main.py +0 -42
  168. pyrig-2.0.30/pyrig/dev/configs/python/resources_init.py +0 -29
  169. pyrig-2.0.30/pyrig/dev/configs/python/src_init.py +0 -29
  170. pyrig-2.0.30/pyrig/dev/configs/python/subcommands.py +0 -15
  171. pyrig-2.0.30/pyrig/dev/configs/readme.py +0 -43
  172. pyrig-2.0.30/pyrig/dev/configs/testing/__init__.py +0 -1
  173. pyrig-2.0.30/pyrig/dev/configs/testing/conftest.py +0 -34
  174. pyrig-2.0.30/pyrig/dev/configs/testing/fixtures/__init__.py +0 -1
  175. pyrig-2.0.30/pyrig/dev/configs/testing/fixtures/fixture.py +0 -15
  176. pyrig-2.0.30/pyrig/dev/configs/testing/fixtures/scopes/__init__.py +0 -1
  177. pyrig-2.0.30/pyrig/dev/configs/testing/fixtures/scopes/class_.py +0 -15
  178. pyrig-2.0.30/pyrig/dev/configs/testing/fixtures/scopes/function.py +0 -15
  179. pyrig-2.0.30/pyrig/dev/configs/testing/fixtures/scopes/module.py +0 -15
  180. pyrig-2.0.30/pyrig/dev/configs/testing/fixtures/scopes/package.py +0 -15
  181. pyrig-2.0.30/pyrig/dev/configs/testing/fixtures/scopes/session.py +0 -15
  182. pyrig-2.0.30/pyrig/dev/configs/testing/main_test.py +0 -58
  183. pyrig-2.0.30/pyrig/dev/configs/testing/zero_test.py +0 -34
  184. pyrig-2.0.30/pyrig/dev/configs/workflows/__init__.py +0 -1
  185. pyrig-2.0.30/pyrig/dev/configs/workflows/base/__init__.py +0 -1
  186. pyrig-2.0.30/pyrig/dev/configs/workflows/base/base.py +0 -969
  187. pyrig-2.0.30/pyrig/dev/configs/workflows/health_check.py +0 -102
  188. pyrig-2.0.30/pyrig/dev/configs/workflows/publish.py +0 -51
  189. pyrig-2.0.30/pyrig/dev/configs/workflows/release.py +0 -94
  190. pyrig-2.0.30/pyrig/dev/tests/__init__.py +0 -1
  191. pyrig-2.0.30/pyrig/dev/tests/conftest.py +0 -33
  192. pyrig-2.0.30/pyrig/dev/tests/fixtures/__init__.py +0 -1
  193. pyrig-2.0.30/pyrig/dev/tests/fixtures/fixture.py +0 -64
  194. pyrig-2.0.30/pyrig/dev/tests/fixtures/scopes/__init__.py +0 -1
  195. pyrig-2.0.30/pyrig/dev/tests/fixtures/scopes/class_.py +0 -34
  196. pyrig-2.0.30/pyrig/dev/tests/fixtures/scopes/function.py +0 -8
  197. pyrig-2.0.30/pyrig/dev/tests/fixtures/scopes/module.py +0 -37
  198. pyrig-2.0.30/pyrig/dev/tests/fixtures/scopes/package.py +0 -8
  199. pyrig-2.0.30/pyrig/dev/tests/fixtures/scopes/session.py +0 -388
  200. pyrig-2.0.30/pyrig/dev/tests/utils/__init__.py +0 -1
  201. pyrig-2.0.30/pyrig/dev/tests/utils/decorators.py +0 -43
  202. pyrig-2.0.30/pyrig/main.py +0 -19
  203. pyrig-2.0.30/pyrig/src/__init__.py +0 -1
  204. pyrig-2.0.30/pyrig/src/git/__init__.py +0 -1
  205. pyrig-2.0.30/pyrig/src/git/github/__init__.py +0 -1
  206. pyrig-2.0.30/pyrig/src/git/github/github.py +0 -49
  207. pyrig-2.0.30/pyrig/src/git/github/repo/__init__.py +0 -1
  208. pyrig-2.0.30/pyrig/src/git/github/repo/protect.py +0 -103
  209. pyrig-2.0.30/pyrig/src/git/github/repo/repo.py +0 -204
  210. pyrig-2.0.30/pyrig/src/graph.py +0 -91
  211. pyrig-2.0.30/pyrig/src/iterate.py +0 -92
  212. pyrig-2.0.30/pyrig/src/modules/__init__.py +0 -1
  213. pyrig-2.0.30/pyrig/src/modules/class_.py +0 -267
  214. pyrig-2.0.30/pyrig/src/modules/function.py +0 -124
  215. pyrig-2.0.30/pyrig/src/modules/inspection.py +0 -56
  216. pyrig-2.0.30/pyrig/src/modules/module.py +0 -573
  217. pyrig-2.0.30/pyrig/src/modules/package.py +0 -420
  218. pyrig-2.0.30/pyrig/src/os/__init__.py +0 -1
  219. pyrig-2.0.30/pyrig/src/os/os.py +0 -88
  220. pyrig-2.0.30/pyrig/src/project/__init__.py +0 -1
  221. pyrig-2.0.30/pyrig/src/project/create_root.py +0 -8
  222. pyrig-2.0.30/pyrig/src/project/init.py +0 -55
  223. pyrig-2.0.30/pyrig/src/project/mgt.py +0 -90
  224. pyrig-2.0.30/pyrig/src/project/versions.py +0 -214
  225. pyrig-2.0.30/pyrig/src/resource.py +0 -23
  226. pyrig-2.0.30/pyrig/src/string.py +0 -52
  227. pyrig-2.0.30/pyrig/src/testing/__init__.py +0 -1
  228. pyrig-2.0.30/pyrig/src/testing/assertions.py +0 -66
  229. pyrig-2.0.30/pyrig/src/testing/convention.py +0 -177
  230. pyrig-2.0.30/pyrig/src/testing/create_tests.py +0 -245
  231. pyrig-2.0.30/pyrig/src/testing/utils.py +0 -80
  232. {pyrig-2.0.30 → pyrig-4.2.3}/pyrig/py.typed +0 -0
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
18
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
19
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
20
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
21
+ SOFTWARE.
pyrig-4.2.3/PKG-INFO ADDED
@@ -0,0 +1,158 @@
1
+ Metadata-Version: 2.4
2
+ Name: pyrig
3
+ Version: 4.2.3
4
+ Summary: A Python toolkit to rig up your project that standardizes and automates project setup, configuration and development.
5
+ Keywords: project-setup,automation,scaffolding,cli,testing,ci-cd,devops,packaging
6
+ Author: Winipedia
7
+ License-Expression: MIT
8
+ License-File: LICENSE
9
+ Classifier: Development Status :: 5 - Production/Stable
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: Topic :: Software Development :: Build Tools
12
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
13
+ Classifier: Topic :: Software Development :: Quality Assurance
14
+ Classifier: Topic :: Software Development :: Testing
15
+ Classifier: Topic :: System :: Installation/Setup
16
+ Classifier: Topic :: System :: Software Distribution
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Programming Language :: Python :: 3.14
20
+ Classifier: Operating System :: OS Independent
21
+ Classifier: Typing :: Typed
22
+ Requires-Dist: typer>=0.20.0
23
+ Maintainer: Winipedia
24
+ Requires-Python: >=3.12
25
+ Project-URL: Changelog, https://github.com/Winipedia/pyrig/releases
26
+ Project-URL: Documentation, https://Winipedia.github.io/pyrig
27
+ Project-URL: Homepage, https://github.com/Winipedia/pyrig
28
+ Project-URL: Issues, https://github.com/Winipedia/pyrig/issues
29
+ Project-URL: Source, https://github.com/Winipedia/pyrig
30
+ Description-Content-Type: text/markdown
31
+
32
+ # pyrig
33
+
34
+ <!-- tooling -->
35
+ [![pyrig](https://img.shields.io/badge/built%20with-pyrig-3776AB?logo=buildkite&logoColor=black)](https://github.com/Winipedia/pyrig)
36
+ [![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)
37
+ [![Container](https://img.shields.io/badge/Container-Podman-A23CD6?logo=podman&logoColor=grey&colorA=0D1F3F&colorB=A23CD6)](https://podman.io/)
38
+ [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://pre-commit.com/)
39
+ [![MkDocs](https://img.shields.io/badge/MkDocs-Documentation-326CE5?logo=mkdocs&logoColor=white)](https://www.mkdocs.org/)
40
+ <!-- code-quality -->
41
+ [![ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
42
+ [![ty](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ty/main/assets/badge/v0.json)](https://github.com/astral-sh/ty)
43
+ [![security: bandit](https://img.shields.io/badge/security-bandit-yellow.svg)](https://github.com/PyCQA/bandit)
44
+ [![pytest](https://img.shields.io/badge/tested%20with-pytest-46a2f1.svg?logo=pytest)](https://pytest.org/)
45
+ [![codecov](https://codecov.io/gh/Winipedia/pyrig/branch/main/graph/badge.svg)](https://codecov.io/gh/Winipedia/pyrig)
46
+ [![rumdl](https://img.shields.io/badge/markdown-rumdl-darkgreen)](https://github.com/rvben/rumdl)
47
+ <!-- package-info -->
48
+ [![PyPI](https://img.shields.io/pypi/v/pyrig?logo=pypi&logoColor=white)](https://pypi.org/project/pyrig)
49
+ [![Python](https://img.shields.io/badge/python-3.12|3.13|3.14-blue.svg?logo=python&logoColor=white)](https://www.python.org/)
50
+ [![License](https://img.shields.io/github/license/Winipedia/pyrig)](https://github.com/Winipedia/pyrig/blob/main/LICENSE)
51
+ <!-- ci/cd -->
52
+ [![CI](https://img.shields.io/github/actions/workflow/status/Winipedia/pyrig/health_check.yaml?label=CI&logo=github)](https://github.com/Winipedia/pyrig/actions/workflows/health_check.yaml)
53
+ [![CD](https://img.shields.io/github/actions/workflow/status/Winipedia/pyrig/release.yaml?label=CD&logo=github)](https://github.com/Winipedia/pyrig/actions/workflows/release.yaml)
54
+ <!-- documentation -->
55
+ [![Documentation](https://img.shields.io/badge/Docs-GitHub%20Pages-black?style=for-the-badge&logo=github&logoColor=white)](https://Winipedia.github.io/pyrig)
56
+
57
+ ---
58
+
59
+ > A Python toolkit to rig up your project that standardizes and automates project setup, configuration and development.
60
+
61
+ ---
62
+
63
+ ## What is pyrig?
64
+
65
+ pyrig is an opinionated Python project toolkit that eliminates setup time and
66
+ enforces best practices. Run one command to get a complete, production-ready
67
+ project structure with CI/CD, testing, documentation, and more.
68
+
69
+ **Philosophy**: pyrig provides **minimal best practices fully
70
+ working defaults for everything a project needs**.
71
+ Every configuration, workflow, and tool is pre-configured
72
+ and working from day one, so you can focus on writing code
73
+ and start immediately developing
74
+ your application, project or library.
75
+
76
+ ### Key Features
77
+
78
+ **Zero Configuration Setup**:
79
+
80
+ - Complete project structure in minutes
81
+ - Pre-configured tools (uv, ruff, ty, pytest, MkDocs)
82
+ - GitHub Actions workflows (health check, build, release, publish)
83
+ - 90% test coverage enforcement
84
+ - Pre-commit hooks with all quality checks
85
+
86
+ **Automated Project Management**:
87
+
88
+ - CLI framework with automatic command discovery
89
+ - Configuration file system with validation
90
+ - Automatic test skeleton generation
91
+ - PyInstaller executable building
92
+ - Multi-package architecture support
93
+
94
+ **Opinionated Best Practices**:
95
+
96
+ - Python >=3.12 with modern type hints
97
+ - All ruff linting rules enabled
98
+ - Strict type checking with ty
99
+ - Signed commits and linear history
100
+ - Repository protection rules
101
+
102
+ ### Quick Example
103
+
104
+ ```bash
105
+ # Create repository on GitHub
106
+ git clone https://github.com/username/my-project.git
107
+ cd my-project
108
+
109
+ # Initialize with uv and pyrig
110
+ uv init
111
+ uv add pyrig
112
+ uv run pyrig init
113
+
114
+ # Complete project ready in minutes:
115
+ # ✓ Source code structure
116
+ # ✓ Test framework with 90% coverage
117
+ # ✓ CI/CD workflows
118
+ # ✓ Documentation site
119
+ # ✓ Pre-commit hooks
120
+ # ✓ Container support
121
+ ```
122
+
123
+ ### What You Get
124
+
125
+ After running `uv run pyrig init`, you get a complete project with:
126
+
127
+ - **Complete directory structure** with source code, tests, docs, and CI/CD
128
+ - **Pre-configured tools** (uv, ruff, ty, pytest, MkDocs, Podman)
129
+ - **GitHub Actions workflows** (health check, build, release, publish)
130
+ - **90% test coverage** enforcement
131
+ - **Pre-commit hooks** with all quality checks
132
+
133
+ See the
134
+ [Getting Started Guide](https://winipedia.github.io/pyrig/more/getting-started/)
135
+ for the complete project structure and detailed setup instructions.
136
+
137
+ ### CLI Commands
138
+
139
+ ```bash
140
+ uv run pyrig init # Complete project initialization
141
+ uv run pyrig mkroot # Update project structure
142
+ uv run pyrig mktests # Generate test skeletons
143
+ uv run pyrig build # Build all artifacts
144
+ uv run my-project --help # Your custom CLI
145
+ ```
146
+
147
+ ## Quick Start
148
+
149
+ New to pyrig? Start here:
150
+
151
+ - *[Getting Started Guide](https://winipedia.github.io/pyrig/more/getting-started/)*
152
+ - Complete setup from zero to fully configured project
153
+
154
+ **[Full Documentation](https://winipedia.github.io/pyrig/)** - Comprehensive documentation on GitHub Pages
155
+
156
+ **[CodeWiki Documentation](https://codewiki.google/github.com/winipedia/pyrig)** - AI-generated documentation
157
+
158
+ ---
pyrig-4.2.3/README.md ADDED
@@ -0,0 +1,127 @@
1
+ # pyrig
2
+
3
+ <!-- tooling -->
4
+ [![pyrig](https://img.shields.io/badge/built%20with-pyrig-3776AB?logo=buildkite&logoColor=black)](https://github.com/Winipedia/pyrig)
5
+ [![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)
6
+ [![Container](https://img.shields.io/badge/Container-Podman-A23CD6?logo=podman&logoColor=grey&colorA=0D1F3F&colorB=A23CD6)](https://podman.io/)
7
+ [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://pre-commit.com/)
8
+ [![MkDocs](https://img.shields.io/badge/MkDocs-Documentation-326CE5?logo=mkdocs&logoColor=white)](https://www.mkdocs.org/)
9
+ <!-- code-quality -->
10
+ [![ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
11
+ [![ty](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ty/main/assets/badge/v0.json)](https://github.com/astral-sh/ty)
12
+ [![security: bandit](https://img.shields.io/badge/security-bandit-yellow.svg)](https://github.com/PyCQA/bandit)
13
+ [![pytest](https://img.shields.io/badge/tested%20with-pytest-46a2f1.svg?logo=pytest)](https://pytest.org/)
14
+ [![codecov](https://codecov.io/gh/Winipedia/pyrig/branch/main/graph/badge.svg)](https://codecov.io/gh/Winipedia/pyrig)
15
+ [![rumdl](https://img.shields.io/badge/markdown-rumdl-darkgreen)](https://github.com/rvben/rumdl)
16
+ <!-- package-info -->
17
+ [![PyPI](https://img.shields.io/pypi/v/pyrig?logo=pypi&logoColor=white)](https://pypi.org/project/pyrig)
18
+ [![Python](https://img.shields.io/badge/python-3.12|3.13|3.14-blue.svg?logo=python&logoColor=white)](https://www.python.org/)
19
+ [![License](https://img.shields.io/github/license/Winipedia/pyrig)](https://github.com/Winipedia/pyrig/blob/main/LICENSE)
20
+ <!-- ci/cd -->
21
+ [![CI](https://img.shields.io/github/actions/workflow/status/Winipedia/pyrig/health_check.yaml?label=CI&logo=github)](https://github.com/Winipedia/pyrig/actions/workflows/health_check.yaml)
22
+ [![CD](https://img.shields.io/github/actions/workflow/status/Winipedia/pyrig/release.yaml?label=CD&logo=github)](https://github.com/Winipedia/pyrig/actions/workflows/release.yaml)
23
+ <!-- documentation -->
24
+ [![Documentation](https://img.shields.io/badge/Docs-GitHub%20Pages-black?style=for-the-badge&logo=github&logoColor=white)](https://Winipedia.github.io/pyrig)
25
+
26
+ ---
27
+
28
+ > A Python toolkit to rig up your project that standardizes and automates project setup, configuration and development.
29
+
30
+ ---
31
+
32
+ ## What is pyrig?
33
+
34
+ pyrig is an opinionated Python project toolkit that eliminates setup time and
35
+ enforces best practices. Run one command to get a complete, production-ready
36
+ project structure with CI/CD, testing, documentation, and more.
37
+
38
+ **Philosophy**: pyrig provides **minimal best practices fully
39
+ working defaults for everything a project needs**.
40
+ Every configuration, workflow, and tool is pre-configured
41
+ and working from day one, so you can focus on writing code
42
+ and start immediately developing
43
+ your application, project or library.
44
+
45
+ ### Key Features
46
+
47
+ **Zero Configuration Setup**:
48
+
49
+ - Complete project structure in minutes
50
+ - Pre-configured tools (uv, ruff, ty, pytest, MkDocs)
51
+ - GitHub Actions workflows (health check, build, release, publish)
52
+ - 90% test coverage enforcement
53
+ - Pre-commit hooks with all quality checks
54
+
55
+ **Automated Project Management**:
56
+
57
+ - CLI framework with automatic command discovery
58
+ - Configuration file system with validation
59
+ - Automatic test skeleton generation
60
+ - PyInstaller executable building
61
+ - Multi-package architecture support
62
+
63
+ **Opinionated Best Practices**:
64
+
65
+ - Python >=3.12 with modern type hints
66
+ - All ruff linting rules enabled
67
+ - Strict type checking with ty
68
+ - Signed commits and linear history
69
+ - Repository protection rules
70
+
71
+ ### Quick Example
72
+
73
+ ```bash
74
+ # Create repository on GitHub
75
+ git clone https://github.com/username/my-project.git
76
+ cd my-project
77
+
78
+ # Initialize with uv and pyrig
79
+ uv init
80
+ uv add pyrig
81
+ uv run pyrig init
82
+
83
+ # Complete project ready in minutes:
84
+ # ✓ Source code structure
85
+ # ✓ Test framework with 90% coverage
86
+ # ✓ CI/CD workflows
87
+ # ✓ Documentation site
88
+ # ✓ Pre-commit hooks
89
+ # ✓ Container support
90
+ ```
91
+
92
+ ### What You Get
93
+
94
+ After running `uv run pyrig init`, you get a complete project with:
95
+
96
+ - **Complete directory structure** with source code, tests, docs, and CI/CD
97
+ - **Pre-configured tools** (uv, ruff, ty, pytest, MkDocs, Podman)
98
+ - **GitHub Actions workflows** (health check, build, release, publish)
99
+ - **90% test coverage** enforcement
100
+ - **Pre-commit hooks** with all quality checks
101
+
102
+ See the
103
+ [Getting Started Guide](https://winipedia.github.io/pyrig/more/getting-started/)
104
+ for the complete project structure and detailed setup instructions.
105
+
106
+ ### CLI Commands
107
+
108
+ ```bash
109
+ uv run pyrig init # Complete project initialization
110
+ uv run pyrig mkroot # Update project structure
111
+ uv run pyrig mktests # Generate test skeletons
112
+ uv run pyrig build # Build all artifacts
113
+ uv run my-project --help # Your custom CLI
114
+ ```
115
+
116
+ ## Quick Start
117
+
118
+ New to pyrig? Start here:
119
+
120
+ - *[Getting Started Guide](https://winipedia.github.io/pyrig/more/getting-started/)*
121
+ - Complete setup from zero to fully configured project
122
+
123
+ **[Full Documentation](https://winipedia.github.io/pyrig/)** - Comprehensive documentation on GitHub Pages
124
+
125
+ **[CodeWiki Documentation](https://codewiki.google/github.com/winipedia/pyrig)** - AI-generated documentation
126
+
127
+ ---
@@ -0,0 +1,118 @@
1
+ [project]
2
+ name = "pyrig"
3
+ version = "4.2.3"
4
+ description = "A Python toolkit to rig up your project that standardizes and automates project setup, configuration and development."
5
+ authors = [
6
+ {name = "Winipedia"},
7
+ ]
8
+ maintainers = [
9
+ {name = "Winipedia"},
10
+ ]
11
+ license = "MIT"
12
+ license-files = [
13
+ "LICENSE",
14
+ ]
15
+ readme = "README.md"
16
+ requires-python = ">=3.12"
17
+ dependencies = [
18
+ "typer>=0.20.0",
19
+ ]
20
+ classifiers = [
21
+ "Development Status :: 5 - Production/Stable",
22
+ "Intended Audience :: Developers",
23
+ "Topic :: Software Development :: Build Tools",
24
+ "Topic :: Software Development :: Libraries :: Python Modules",
25
+ "Topic :: Software Development :: Quality Assurance",
26
+ "Topic :: Software Development :: Testing",
27
+ "Topic :: System :: Installation/Setup",
28
+ "Topic :: System :: Software Distribution",
29
+ "Programming Language :: Python :: 3.12",
30
+ "Programming Language :: Python :: 3.13",
31
+ "Programming Language :: Python :: 3.14",
32
+ "Operating System :: OS Independent",
33
+ "Typing :: Typed",
34
+ ]
35
+ keywords = [
36
+ "project-setup",
37
+ "automation",
38
+ "scaffolding",
39
+ "cli",
40
+ "testing",
41
+ "ci-cd",
42
+ "devops",
43
+ "packaging",
44
+ ]
45
+
46
+ [project.urls]
47
+ Homepage = "https://github.com/Winipedia/pyrig"
48
+ Documentation = "https://Winipedia.github.io/pyrig"
49
+ Source = "https://github.com/Winipedia/pyrig"
50
+ Issues = "https://github.com/Winipedia/pyrig/issues"
51
+ Changelog = "https://github.com/Winipedia/pyrig/releases"
52
+
53
+ [project.scripts]
54
+ pyrig = "pyrig.dev.cli.cli:main"
55
+
56
+ [dependency-groups]
57
+ dev = [
58
+ "pyrig-dev>=0.1.1",
59
+ ]
60
+
61
+ [build-system]
62
+ requires = [
63
+ "uv_build",
64
+ ]
65
+ build-backend = "uv_build"
66
+
67
+ [tool.uv.build-backend]
68
+ module-name = "pyrig"
69
+ module-root = ""
70
+
71
+ [tool.ruff]
72
+ exclude = [
73
+ ".*",
74
+ ]
75
+
76
+ [tool.ruff.lint]
77
+ select = [
78
+ "ALL",
79
+ ]
80
+ ignore = [
81
+ "D203",
82
+ "D213",
83
+ "COM812",
84
+ "ANN401",
85
+ ]
86
+ fixable = [
87
+ "ALL",
88
+ ]
89
+
90
+ [tool.ruff.lint.per-file-ignores]
91
+ "**/tests/**/*.py" = [
92
+ "S101",
93
+ ]
94
+
95
+ [tool.ruff.lint.pydocstyle]
96
+ convention = "google"
97
+
98
+ [tool.ty.terminal]
99
+ error-on-warning = true
100
+
101
+ [tool.pytest.ini_options]
102
+ addopts = "--cov=pyrig --cov-report=term-missing --cov-fail-under=90"
103
+ testpaths = [
104
+ "tests",
105
+ ]
106
+
107
+ [tool.bandit]
108
+ exclude_dirs = [
109
+ ".*",
110
+ ]
111
+
112
+ [tool.bandit.assert_used]
113
+ skips = [
114
+ "*/tests/*.py",
115
+ ]
116
+
117
+ [tool.rumdl]
118
+ respect_gitignore = true
@@ -0,0 +1,18 @@
1
+ """pyrig - A Python toolkit to rig up your project.
2
+
3
+ Opinionated Python project toolkit that standardizes and automates project setup,
4
+ configuration, and development.
5
+
6
+ Subpackages:
7
+ src: Runtime utilities available in production environments.
8
+ Includes project name extraction (cli), Git utilities (git),
9
+ directed graph (graph), nested structure validation (iterate),
10
+ resource access (resource), string manipulation (string),
11
+ module introspection (modules), and subprocess execution (processes).
12
+ dev: Development-time tools requiring dev dependencies.
13
+ Includes artifact builders (builders), CLI framework and commands (cli),
14
+ configuration file system (configs), tool wrappers (management),
15
+ test infrastructure (tests), and development utilities (utils).
16
+ resources: Static resource files (templates, licenses, data files).
17
+ Accessible via get_resource_path(name, package) from pyrig.src.resource.
18
+ """
@@ -0,0 +1,15 @@
1
+ """Development-time infrastructure for pyrig projects.
2
+
3
+ Provides development tools, configuration management, CLI commands, artifact builders,
4
+ and testing infrastructure. For development and CI/CD only, not runtime use.
5
+
6
+ Subpackages:
7
+ builders: Artifact building (PyInstaller executables, distributions)
8
+ cli: Command-line interface and subcommands
9
+ configs: Configuration file generators and managers
10
+ tests: Testing infrastructure and pytest fixtures
11
+ utils: Development utilities and helpers
12
+
13
+ Note:
14
+ Development dependencies only. Not for production runtime code.
15
+ """
@@ -0,0 +1,5 @@
1
+ """Custom artifact builders for creating distributable packages.
2
+
3
+ Add custom BuilderConfigFile subclasses here to create project-specific artifacts.
4
+ Builders are automatically discovered and executed when running `pyrig build`.
5
+ """
@@ -0,0 +1,15 @@
1
+ """Base classes for artifact builders.
2
+
3
+ Provides the abstract `BuilderConfigFile` base class that defines the interface
4
+ and orchestration logic for all artifact builders. The BuilderConfigFile class
5
+ handles the complete build lifecycle including temporary directory management,
6
+ artifact creation, platform-specific renaming, and automatic cleanup.
7
+
8
+ Classes:
9
+ BuilderConfigFile: Abstract base class for artifact builders. Subclasses
10
+ must implement `create_artifacts(cls, temp_artifacts_dir: Path) -> None`.
11
+
12
+ See Also:
13
+ pyrig.dev.builders.base.base.BuilderConfigFile: Full class implementation
14
+ pyrig.dev.builders.pyinstaller.PyInstallerBuilder: PyInstaller builder
15
+ """