pyrig-plugin 0.1.0__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.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Winipedia
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,98 @@
1
+ Metadata-Version: 2.4
2
+ Name: pyrig-plugin
3
+ Version: 0.1.0
4
+ Summary: A pyrig plugin for pyrig plugins.
5
+ Keywords: pyrig
6
+ Author: Winipedia
7
+ Author-email: Winipedia <winipedia@gmx.de>
8
+ License-Expression: MIT
9
+ License-File: LICENSE
10
+ Classifier: Operating System :: OS Independent
11
+ Classifier: Programming Language :: Python :: 3 :: Only
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: Programming Language :: Python :: 3.13
14
+ Classifier: Programming Language :: Python :: 3.14
15
+ Classifier: Typing :: Typed
16
+ Requires-Dist: pyrig>=18.97.3
17
+ Requires-Dist: pyrig-runtime>=3.24.12
18
+ Maintainer: Winipedia
19
+ Maintainer-email: Winipedia <winipedia@gmx.de>
20
+ Requires-Python: >=3.12
21
+ Project-URL: Changelog, https://github.com/Winipedia/pyrig-plugin/releases
22
+ Project-URL: Documentation, https://Winipedia.github.io/pyrig-plugin
23
+ Project-URL: Homepage, https://github.com/Winipedia/pyrig-plugin
24
+ Project-URL: Issues, https://github.com/Winipedia/pyrig-plugin/issues
25
+ Project-URL: Source, https://github.com/Winipedia/pyrig-plugin
26
+ Description-Content-Type: text/markdown
27
+
28
+ # pyrig-plugin
29
+
30
+ <!-- project-status -->
31
+ [![CI](https://img.shields.io/github/actions/workflow/status/Winipedia/pyrig-plugin/health_check.yml?label=CI&logo=github)](https://github.com/Winipedia/pyrig-plugin/actions/workflows/health_check.yml)
32
+ [![CD](https://img.shields.io/github/actions/workflow/status/Winipedia/pyrig-plugin/release.yml?label=CD&logo=github)](https://github.com/Winipedia/pyrig-plugin/actions/workflows/release.yml)
33
+ [![ProjectTester](https://codecov.io/gh/Winipedia/pyrig-plugin/branch/main/graph/badge.svg)](https://codecov.io/gh/Winipedia/pyrig-plugin)
34
+ <!-- code-quality -->
35
+ [![ByteOrderMarkerFormatter](https://img.shields.io/badge/BOM-fix--byte--order--marker-orange)](https://github.com/pre-commit/pre-commit-hooks)
36
+ [![CICDLinter](https://img.shields.io/badge/CI/CD-actionlint-blue)](https://github.com/rhysd/actionlint)
37
+ [![CICDSecurityChecker](https://img.shields.io/badge/CI/CD--security-zizmor-yellow)](https://github.com/zizmorcore/zizmor)
38
+ [![CaseConflictChecker](https://img.shields.io/badge/case--conflict-check--case--conflict-blue)](https://github.com/pre-commit/pre-commit-hooks)
39
+ [![DependencyChecker](https://img.shields.io/badge/dependencies-deptry-blue)](https://github.com/osprey-oss/deptry)
40
+ [![EndOfFileFormatter](https://img.shields.io/badge/EOF-end--of--file--fixer-orange)](https://github.com/pre-commit/pre-commit-hooks)
41
+ [![EndOfLineFormatter](https://img.shields.io/badge/EOL-mixed--line--ending-orange)](https://github.com/pre-commit/pre-commit-hooks)
42
+ [![JSONFormatter](https://img.shields.io/badge/JSON-pretty--format--json-orange)](https://github.com/pre-commit/pre-commit-hooks)
43
+ [![JSONLinter](https://img.shields.io/badge/JSON-check--json-blue)](https://github.com/pre-commit/pre-commit-hooks)
44
+ [![LargeFileChecker](https://img.shields.io/badge/large--files-check--added--large--files-blue)](https://github.com/pre-commit/pre-commit-hooks)
45
+ [![MarkdownLinter](https://img.shields.io/badge/Markdown-rumdl-darkgreen)](https://github.com/rvben/rumdl)
46
+ [![MergeConflictChecker](https://img.shields.io/badge/merge--conflict-check--merge--conflict-blue)](https://github.com/pre-commit/pre-commit-hooks)
47
+ [![ModuleTestNamingChecker](https://img.shields.io/badge/test--naming-name--tests--test-blue)](https://github.com/pre-commit/pre-commit-hooks)
48
+ [![PythonLinter](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
49
+ [![SecretsChecker](https://img.shields.io/badge/secrets-detect--secrets-blue)](https://github.com/Yelp/detect-secrets)
50
+ [![SecurityChecker](https://img.shields.io/badge/security-bandit-yellow.svg)](https://github.com/PyCQA/bandit)
51
+ [![ShellFormatter](https://img.shields.io/badge/shell-shfmt-orange)](https://github.com/mvdan/sh)
52
+ [![ShellLinter](https://img.shields.io/badge/shell-shellcheck-blue)](https://github.com/koalaman/shellcheck)
53
+ [![SpellChecker](https://img.shields.io/badge/spell--check-typos-blue)](https://github.com/crate-ci/typos)
54
+ [![TOMLLinter](https://img.shields.io/badge/TOML-tombi-blueviolet)](https://github.com/tombi-toml/tombi)
55
+ [![TrailingWhitespaceFormatter](https://img.shields.io/badge/whitespace-trailing--whitespace--fixer-orange)](https://github.com/pre-commit/pre-commit-hooks)
56
+ [![TypeChecker](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ty/main/assets/badge/v0.json)](https://github.com/astral-sh/ty)
57
+ [![YAMLLinter](https://img.shields.io/badge/YAML-ryl-red)](https://github.com/owenlamont/ryl)
58
+ <!-- tooling -->
59
+ [![PackageManager](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)
60
+ [![Pyrigger](https://img.shields.io/badge/built%20with-pyrig-3776AB?logo=buildkite&logoColor=black)](https://github.com/Winipedia/pyrig)
61
+ [![RemoteVersionController](https://img.shields.io/github/stars/Winipedia/pyrig-plugin?style=social)](https://github.com/Winipedia/pyrig-plugin)
62
+ [![VersionControlHookManager](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/j178/prek/master/docs/assets/badge-v0.json)](https://github.com/j178/prek)
63
+ [![VersionController](https://img.shields.io/badge/Git-F05032?logo=git&logoColor=white)](https://git-scm.com)
64
+ <!-- project-info -->
65
+ [![DocsBuilder](https://img.shields.io/badge/Documentation-zensical-326CE5)](https://Winipedia.github.io/pyrig-plugin)
66
+ [![PackageIndex](https://img.shields.io/pypi/v/pyrig-plugin?logo=pypi&logoColor=white)](https://pypi.org/project/pyrig-plugin)
67
+ [![ProgrammingLanguage](https://img.shields.io/pypi/pyversions/pyrig-plugin)](https://www.python.org)
68
+ [![License](https://img.shields.io/github/license/Winipedia/pyrig-plugin)](https://github.com/Winipedia/pyrig-plugin/blob/main/LICENSE)
69
+
70
+ ---
71
+
72
+ > A pyrig plugin for pyrig plugins.
73
+
74
+ ---
75
+
76
+ ## Overview
77
+
78
+ `pyrig-plugin` is a [pyrig](https://github.com/Winipedia/pyrig) plugin for
79
+ projects that are themselves pyrig plugins. Pyrig discovers plugin implementations
80
+ across installed packages through their declared dependencies, so a package
81
+ that extends pyrig must declare pyrig as a runtime dependency.
82
+
83
+ ## What it adds
84
+
85
+ - **pyrig runtime dependency** — `pyrig sync` adds `pyrig` alongside
86
+ `pyrig-runtime` to the plugin project's runtime dependencies.
87
+
88
+ ## Usage
89
+
90
+ ```bash
91
+ uv add pyrig-plugin --dev
92
+ uv run pyrig sync
93
+ ```
94
+
95
+ ## Documentation
96
+
97
+ Full documentation, including the auto-generated API reference, is available on
98
+ the [documentation site](https://Winipedia.github.io/pyrig-plugin).
@@ -0,0 +1,71 @@
1
+ # pyrig-plugin
2
+
3
+ <!-- project-status -->
4
+ [![CI](https://img.shields.io/github/actions/workflow/status/Winipedia/pyrig-plugin/health_check.yml?label=CI&logo=github)](https://github.com/Winipedia/pyrig-plugin/actions/workflows/health_check.yml)
5
+ [![CD](https://img.shields.io/github/actions/workflow/status/Winipedia/pyrig-plugin/release.yml?label=CD&logo=github)](https://github.com/Winipedia/pyrig-plugin/actions/workflows/release.yml)
6
+ [![ProjectTester](https://codecov.io/gh/Winipedia/pyrig-plugin/branch/main/graph/badge.svg)](https://codecov.io/gh/Winipedia/pyrig-plugin)
7
+ <!-- code-quality -->
8
+ [![ByteOrderMarkerFormatter](https://img.shields.io/badge/BOM-fix--byte--order--marker-orange)](https://github.com/pre-commit/pre-commit-hooks)
9
+ [![CICDLinter](https://img.shields.io/badge/CI/CD-actionlint-blue)](https://github.com/rhysd/actionlint)
10
+ [![CICDSecurityChecker](https://img.shields.io/badge/CI/CD--security-zizmor-yellow)](https://github.com/zizmorcore/zizmor)
11
+ [![CaseConflictChecker](https://img.shields.io/badge/case--conflict-check--case--conflict-blue)](https://github.com/pre-commit/pre-commit-hooks)
12
+ [![DependencyChecker](https://img.shields.io/badge/dependencies-deptry-blue)](https://github.com/osprey-oss/deptry)
13
+ [![EndOfFileFormatter](https://img.shields.io/badge/EOF-end--of--file--fixer-orange)](https://github.com/pre-commit/pre-commit-hooks)
14
+ [![EndOfLineFormatter](https://img.shields.io/badge/EOL-mixed--line--ending-orange)](https://github.com/pre-commit/pre-commit-hooks)
15
+ [![JSONFormatter](https://img.shields.io/badge/JSON-pretty--format--json-orange)](https://github.com/pre-commit/pre-commit-hooks)
16
+ [![JSONLinter](https://img.shields.io/badge/JSON-check--json-blue)](https://github.com/pre-commit/pre-commit-hooks)
17
+ [![LargeFileChecker](https://img.shields.io/badge/large--files-check--added--large--files-blue)](https://github.com/pre-commit/pre-commit-hooks)
18
+ [![MarkdownLinter](https://img.shields.io/badge/Markdown-rumdl-darkgreen)](https://github.com/rvben/rumdl)
19
+ [![MergeConflictChecker](https://img.shields.io/badge/merge--conflict-check--merge--conflict-blue)](https://github.com/pre-commit/pre-commit-hooks)
20
+ [![ModuleTestNamingChecker](https://img.shields.io/badge/test--naming-name--tests--test-blue)](https://github.com/pre-commit/pre-commit-hooks)
21
+ [![PythonLinter](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
22
+ [![SecretsChecker](https://img.shields.io/badge/secrets-detect--secrets-blue)](https://github.com/Yelp/detect-secrets)
23
+ [![SecurityChecker](https://img.shields.io/badge/security-bandit-yellow.svg)](https://github.com/PyCQA/bandit)
24
+ [![ShellFormatter](https://img.shields.io/badge/shell-shfmt-orange)](https://github.com/mvdan/sh)
25
+ [![ShellLinter](https://img.shields.io/badge/shell-shellcheck-blue)](https://github.com/koalaman/shellcheck)
26
+ [![SpellChecker](https://img.shields.io/badge/spell--check-typos-blue)](https://github.com/crate-ci/typos)
27
+ [![TOMLLinter](https://img.shields.io/badge/TOML-tombi-blueviolet)](https://github.com/tombi-toml/tombi)
28
+ [![TrailingWhitespaceFormatter](https://img.shields.io/badge/whitespace-trailing--whitespace--fixer-orange)](https://github.com/pre-commit/pre-commit-hooks)
29
+ [![TypeChecker](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ty/main/assets/badge/v0.json)](https://github.com/astral-sh/ty)
30
+ [![YAMLLinter](https://img.shields.io/badge/YAML-ryl-red)](https://github.com/owenlamont/ryl)
31
+ <!-- tooling -->
32
+ [![PackageManager](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)
33
+ [![Pyrigger](https://img.shields.io/badge/built%20with-pyrig-3776AB?logo=buildkite&logoColor=black)](https://github.com/Winipedia/pyrig)
34
+ [![RemoteVersionController](https://img.shields.io/github/stars/Winipedia/pyrig-plugin?style=social)](https://github.com/Winipedia/pyrig-plugin)
35
+ [![VersionControlHookManager](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/j178/prek/master/docs/assets/badge-v0.json)](https://github.com/j178/prek)
36
+ [![VersionController](https://img.shields.io/badge/Git-F05032?logo=git&logoColor=white)](https://git-scm.com)
37
+ <!-- project-info -->
38
+ [![DocsBuilder](https://img.shields.io/badge/Documentation-zensical-326CE5)](https://Winipedia.github.io/pyrig-plugin)
39
+ [![PackageIndex](https://img.shields.io/pypi/v/pyrig-plugin?logo=pypi&logoColor=white)](https://pypi.org/project/pyrig-plugin)
40
+ [![ProgrammingLanguage](https://img.shields.io/pypi/pyversions/pyrig-plugin)](https://www.python.org)
41
+ [![License](https://img.shields.io/github/license/Winipedia/pyrig-plugin)](https://github.com/Winipedia/pyrig-plugin/blob/main/LICENSE)
42
+
43
+ ---
44
+
45
+ > A pyrig plugin for pyrig plugins.
46
+
47
+ ---
48
+
49
+ ## Overview
50
+
51
+ `pyrig-plugin` is a [pyrig](https://github.com/Winipedia/pyrig) plugin for
52
+ projects that are themselves pyrig plugins. Pyrig discovers plugin implementations
53
+ across installed packages through their declared dependencies, so a package
54
+ that extends pyrig must declare pyrig as a runtime dependency.
55
+
56
+ ## What it adds
57
+
58
+ - **pyrig runtime dependency** — `pyrig sync` adds `pyrig` alongside
59
+ `pyrig-runtime` to the plugin project's runtime dependencies.
60
+
61
+ ## Usage
62
+
63
+ ```bash
64
+ uv add pyrig-plugin --dev
65
+ uv run pyrig sync
66
+ ```
67
+
68
+ ## Documentation
69
+
70
+ Full documentation, including the auto-generated API reference, is available on
71
+ the [documentation site](https://Winipedia.github.io/pyrig-plugin).
@@ -0,0 +1,112 @@
1
+ [project]
2
+ name = "pyrig-plugin"
3
+ version = "0.1.0"
4
+ description = "A pyrig plugin for pyrig plugins."
5
+ readme = "README.md"
6
+ requires-python = ">=3.12"
7
+ license = "MIT"
8
+ license-files = ["LICENSE"]
9
+ keywords = ["pyrig"]
10
+ classifiers = [
11
+ "Operating System :: OS Independent",
12
+ "Programming Language :: Python :: 3 :: Only",
13
+ "Programming Language :: Python :: 3.12",
14
+ "Programming Language :: Python :: 3.13",
15
+ "Programming Language :: Python :: 3.14",
16
+ "Typing :: Typed",
17
+ ]
18
+ dependencies = [
19
+ "pyrig>=18.97.3",
20
+ "pyrig-runtime>=3.24.12",
21
+ ]
22
+
23
+ [[project.authors]]
24
+ name = "Winipedia"
25
+ email = "winipedia@gmx.de"
26
+
27
+ [[project.maintainers]]
28
+ name = "Winipedia"
29
+ email = "winipedia@gmx.de"
30
+
31
+ [project.urls]
32
+ Changelog = "https://github.com/Winipedia/pyrig-plugin/releases"
33
+ Documentation = "https://Winipedia.github.io/pyrig-plugin"
34
+ Homepage = "https://github.com/Winipedia/pyrig-plugin"
35
+ Issues = "https://github.com/Winipedia/pyrig-plugin/issues"
36
+ Source = "https://github.com/Winipedia/pyrig-plugin"
37
+
38
+ [project.scripts]
39
+ pyrig-plugin = "pyrig_runtime.rig.cli.main:main"
40
+
41
+ [dependency-groups]
42
+ dev = [
43
+ "actionlint-py>=1.7.12.25",
44
+ "bandit>=1.9.4",
45
+ "deptry>=0.25.1",
46
+ "detect-secrets>=1.5.0",
47
+ "mkdocstrings[python]>=1.0.6",
48
+ "pre-commit-hooks>=6.0.0",
49
+ "prek>=0.5.5",
50
+ "pyflakes>=4.0.2",
51
+ "pyrig-opensource>=1.1.4",
52
+ "pyrig-pypi>=3.20.57",
53
+ "pytest>=9.1.1",
54
+ "pytest-cov>=7.1.0",
55
+ "pytest-randomly>=5.0.0",
56
+ "pytest-xdist>=3.8.0",
57
+ "ruff>=0.16.10",
58
+ "rumdl>=0.2.78",
59
+ "ryl>=0.24.0",
60
+ "shellcheck-py>=0.11.0.1",
61
+ "shfmt-py>=4.2.0",
62
+ "tombi>=1.7.2",
63
+ "ty>=0.0.84",
64
+ "typos>=1.50.3",
65
+ "zensical>=0.0.67",
66
+ "zizmor>=1.30.1",
67
+ ]
68
+
69
+ [build-system]
70
+ requires = ["uv-build"]
71
+ build-backend = "uv_build"
72
+
73
+ [tool.deptry]
74
+ root = "src"
75
+
76
+ [tool.deptry.per_rule_ignores]
77
+ DEP002 = [
78
+ "pyrig",
79
+ "pyrig-runtime",
80
+ ]
81
+
82
+ [tool.pytest]
83
+ addopts = [
84
+ "--cov-branch",
85
+ "--cov-fail-under=100",
86
+ "--cov-report=term-missing:skip-covered",
87
+ "--cov-report=xml",
88
+ "--cov=pyrig_plugin",
89
+ "--dist=worksteal",
90
+ "--numprocesses=auto",
91
+ "--report-chars=a",
92
+ ]
93
+ filterwarnings = ["error"]
94
+ strict = true
95
+ testpaths = ["tests"]
96
+
97
+ [tool.ruff.format]
98
+ docstring-code-format = true
99
+
100
+ [tool.ruff.lint]
101
+ ignore = ["CPY001"]
102
+ select = ["ALL"]
103
+
104
+ [tool.ruff.lint.per-file-ignores]
105
+ "tests/**/*.py" = ["S101"]
106
+
107
+ [tool.ruff.lint.pydocstyle]
108
+ convention = "google"
109
+
110
+ [tool.ryl.rules]
111
+ ALL = "enable"
112
+ key-ordering = "disable"
@@ -0,0 +1,126 @@
1
+ [project]
2
+ name = "pyrig-plugin"
3
+ version = "0.1.0"
4
+ description = "A pyrig plugin for pyrig plugins."
5
+ readme = "README.md"
6
+ requires-python = ">=3.12"
7
+ license = "MIT"
8
+ license-files = [
9
+ "LICENSE",
10
+ ]
11
+ authors = [
12
+ { name = "Winipedia", email = "winipedia@gmx.de" },
13
+ ]
14
+ maintainers = [
15
+ { name = "Winipedia", email = "winipedia@gmx.de" },
16
+ ]
17
+ keywords = [
18
+ "pyrig",
19
+ ]
20
+ classifiers = [
21
+ "Operating System :: OS Independent",
22
+ "Programming Language :: Python :: 3 :: Only",
23
+ "Programming Language :: Python :: 3.12",
24
+ "Programming Language :: Python :: 3.13",
25
+ "Programming Language :: Python :: 3.14",
26
+ "Typing :: Typed",
27
+ ]
28
+ dependencies = [
29
+ "pyrig>=18.97.3",
30
+ "pyrig-runtime>=3.24.12",
31
+ ]
32
+
33
+ [project.urls]
34
+ Changelog = "https://github.com/Winipedia/pyrig-plugin/releases"
35
+ Documentation = "https://Winipedia.github.io/pyrig-plugin"
36
+ Homepage = "https://github.com/Winipedia/pyrig-plugin"
37
+ Issues = "https://github.com/Winipedia/pyrig-plugin/issues"
38
+ Source = "https://github.com/Winipedia/pyrig-plugin"
39
+
40
+ [project.scripts]
41
+ pyrig-plugin = "pyrig_runtime.rig.cli.main:main"
42
+
43
+ [dependency-groups]
44
+ dev = [
45
+ "actionlint-py>=1.7.12.25",
46
+ "bandit>=1.9.4",
47
+ "deptry>=0.25.1",
48
+ "detect-secrets>=1.5.0",
49
+ "mkdocstrings[python]>=1.0.6",
50
+ "pre-commit-hooks>=6.0.0",
51
+ "prek>=0.5.5",
52
+ "pyflakes>=4.0.2",
53
+ "pyrig-opensource>=1.1.4",
54
+ "pyrig-pypi>=3.20.57",
55
+ "pytest>=9.1.1",
56
+ "pytest-cov>=7.1.0",
57
+ "pytest-randomly>=5.0.0",
58
+ "pytest-xdist>=3.8.0",
59
+ "ruff>=0.16.10",
60
+ "rumdl>=0.2.78",
61
+ "ryl>=0.24.0",
62
+ "shellcheck-py>=0.11.0.1",
63
+ "shfmt-py>=4.2.0",
64
+ "tombi>=1.7.2",
65
+ "ty>=0.0.84",
66
+ "typos>=1.50.3",
67
+ "zensical>=0.0.67",
68
+ "zizmor>=1.30.1",
69
+ ]
70
+
71
+ [build-system]
72
+ requires = [
73
+ "uv-build",
74
+ ]
75
+ build-backend = "uv_build"
76
+
77
+ [tool.deptry]
78
+ root = "src"
79
+
80
+ [tool.deptry.per_rule_ignores]
81
+ DEP002 = [
82
+ "pyrig",
83
+ "pyrig-runtime",
84
+ ]
85
+
86
+ [tool.pytest]
87
+ addopts = [
88
+ "--cov-branch",
89
+ "--cov-fail-under=100",
90
+ "--cov-report=term-missing:skip-covered",
91
+ "--cov-report=xml",
92
+ "--cov=pyrig_plugin",
93
+ "--dist=worksteal",
94
+ "--numprocesses=auto",
95
+ "--report-chars=a",
96
+ ]
97
+ filterwarnings = [
98
+ "error",
99
+ ]
100
+ strict = true
101
+ testpaths = [
102
+ "tests",
103
+ ]
104
+
105
+ [tool.ruff.format]
106
+ docstring-code-format = true
107
+
108
+ [tool.ruff.lint]
109
+ ignore = [
110
+ "CPY001",
111
+ ]
112
+ select = [
113
+ "ALL",
114
+ ]
115
+
116
+ [tool.ruff.lint.per-file-ignores]
117
+ "tests/**/*.py" = [
118
+ "S101",
119
+ ]
120
+
121
+ [tool.ruff.lint.pydocstyle]
122
+ convention = "google"
123
+
124
+ [tool.ryl.rules]
125
+ ALL = "enable"
126
+ key-ordering = "disable"
@@ -0,0 +1 @@
1
+ """A Pyrig plugin for projects that create Pyrig plugins."""
File without changes
@@ -0,0 +1 @@
1
+ """Pyrig integration for the plugin."""
@@ -0,0 +1 @@
1
+ """Tool overrides for Pyrig plugin projects."""
@@ -0,0 +1,18 @@
1
+ """Pyrigger override that declares pyrig as a runtime dependency."""
2
+
3
+ from pyrig.rig.tools.pyrigger import Pyrigger as BasePyrigger
4
+
5
+
6
+ class Pyrigger(BasePyrigger):
7
+ """Extend Pyrig's CLI wrapper for projects that are themselves Pyrig plugins."""
8
+
9
+ def runtime_dependencies(self) -> tuple[str, ...]:
10
+ """Return the runtime dependencies required by the project.
11
+
12
+ Pyrig plugins must declare Pyrig as a runtime dependency so that
13
+ Pyrig's cross-package plugin discovery can find their implementations.
14
+
15
+ Returns:
16
+ The base runtime dependencies with ``pyrig`` appended.
17
+ """
18
+ return (*super().runtime_dependencies(), self.name())