cixstack 1.0.0rc1__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 (115) hide show
  1. cixstack-1.0.0rc1/.ci.yaml +170 -0
  2. cixstack-1.0.0rc1/.github/dependabot.yml +15 -0
  3. cixstack-1.0.0rc1/.github/workflows/ci.yml +239 -0
  4. cixstack-1.0.0rc1/.github/workflows/publish.yml +48 -0
  5. cixstack-1.0.0rc1/.gitignore +11 -0
  6. cixstack-1.0.0rc1/.yamllint.yaml +3 -0
  7. cixstack-1.0.0rc1/PKG-INFO +25 -0
  8. cixstack-1.0.0rc1/README.md +431 -0
  9. cixstack-1.0.0rc1/cixstack/__main__.py +273 -0
  10. cixstack-1.0.0rc1/cixstack/args.py +106 -0
  11. cixstack-1.0.0rc1/cixstack/cli/alias.py +40 -0
  12. cixstack-1.0.0rc1/cixstack/cli/cache.py +54 -0
  13. cixstack-1.0.0rc1/cixstack/cli/cleanup.py +136 -0
  14. cixstack-1.0.0rc1/cixstack/cli/config.py +132 -0
  15. cixstack-1.0.0rc1/cixstack/cli/fix.py +130 -0
  16. cixstack-1.0.0rc1/cixstack/cli/hook.py +142 -0
  17. cixstack-1.0.0rc1/cixstack/cli/init.py +115 -0
  18. cixstack-1.0.0rc1/cixstack/cli/match_.py +139 -0
  19. cixstack-1.0.0rc1/cixstack/cli/run.py +370 -0
  20. cixstack-1.0.0rc1/cixstack/cli/start.py +65 -0
  21. cixstack-1.0.0rc1/cixstack/cli/status.py +152 -0
  22. cixstack-1.0.0rc1/cixstack/cli/watch.py +83 -0
  23. cixstack-1.0.0rc1/cixstack/context.py +111 -0
  24. cixstack-1.0.0rc1/cixstack/core.py +670 -0
  25. cixstack-1.0.0rc1/cixstack/errors.py +70 -0
  26. cixstack-1.0.0rc1/cixstack/models/compat.py +166 -0
  27. cixstack-1.0.0rc1/cixstack/models/v1.py +432 -0
  28. cixstack-1.0.0rc1/cixstack/models/v2.py +170 -0
  29. cixstack-1.0.0rc1/cixstack/utils.py +350 -0
  30. cixstack-1.0.0rc1/hooks/pre-commit +5 -0
  31. cixstack-1.0.0rc1/hooks/pre-push +5 -0
  32. cixstack-1.0.0rc1/pyproject.toml +96 -0
  33. cixstack-1.0.0rc1/tests/__init__.py +0 -0
  34. cixstack-1.0.0rc1/tests/cli/__init__.py +0 -0
  35. cixstack-1.0.0rc1/tests/cli/alias/__init__.py +0 -0
  36. cixstack-1.0.0rc1/tests/cli/alias/test_args.py +55 -0
  37. cixstack-1.0.0rc1/tests/cli/alias/test_context.py +46 -0
  38. cixstack-1.0.0rc1/tests/cli/alias/test_main.py +16 -0
  39. cixstack-1.0.0rc1/tests/cli/cache/__init__.py +0 -0
  40. cixstack-1.0.0rc1/tests/cli/cache/test_context.py +19 -0
  41. cixstack-1.0.0rc1/tests/cli/cache/test_main.py +609 -0
  42. cixstack-1.0.0rc1/tests/cli/cleanup/__init__.py +0 -0
  43. cixstack-1.0.0rc1/tests/cli/cleanup/test_args.py +135 -0
  44. cixstack-1.0.0rc1/tests/cli/cleanup/test_context.py +105 -0
  45. cixstack-1.0.0rc1/tests/cli/cleanup/test_evolve_context.py +179 -0
  46. cixstack-1.0.0rc1/tests/cli/cleanup/test_main.py +234 -0
  47. cixstack-1.0.0rc1/tests/cli/cleanup/test_run_context.py +213 -0
  48. cixstack-1.0.0rc1/tests/cli/cleanup/test_valid_jobs.py +61 -0
  49. cixstack-1.0.0rc1/tests/cli/config/__init__.py +0 -0
  50. cixstack-1.0.0rc1/tests/cli/config/test_args.py +20 -0
  51. cixstack-1.0.0rc1/tests/cli/config/test_context.py +40 -0
  52. cixstack-1.0.0rc1/tests/cli/config/test_main.py +442 -0
  53. cixstack-1.0.0rc1/tests/cli/error_paths_test.py +77 -0
  54. cixstack-1.0.0rc1/tests/cli/fix/__init__.py +0 -0
  55. cixstack-1.0.0rc1/tests/cli/fix/test_args.py +90 -0
  56. cixstack-1.0.0rc1/tests/cli/fix/test_context.py +106 -0
  57. cixstack-1.0.0rc1/tests/cli/fix/test_evolve_context.py +184 -0
  58. cixstack-1.0.0rc1/tests/cli/fix/test_main.py +245 -0
  59. cixstack-1.0.0rc1/tests/cli/fix/test_run_context.py +167 -0
  60. cixstack-1.0.0rc1/tests/cli/fix/test_valid_jobs.py +22 -0
  61. cixstack-1.0.0rc1/tests/cli/hook/__init__.py +0 -0
  62. cixstack-1.0.0rc1/tests/cli/hook/test_args.py +67 -0
  63. cixstack-1.0.0rc1/tests/cli/hook/test_context.py +161 -0
  64. cixstack-1.0.0rc1/tests/cli/hook/test_main.py +159 -0
  65. cixstack-1.0.0rc1/tests/cli/init/__init__.py +0 -0
  66. cixstack-1.0.0rc1/tests/cli/init/test_args.py +27 -0
  67. cixstack-1.0.0rc1/tests/cli/init/test_context.py +39 -0
  68. cixstack-1.0.0rc1/tests/cli/init/test_main.py +60 -0
  69. cixstack-1.0.0rc1/tests/cli/match_/__init__.py +0 -0
  70. cixstack-1.0.0rc1/tests/cli/match_/test_args.py +37 -0
  71. cixstack-1.0.0rc1/tests/cli/match_/test_context.py +210 -0
  72. cixstack-1.0.0rc1/tests/cli/match_/test_main.py +219 -0
  73. cixstack-1.0.0rc1/tests/cli/run/__init__.py +0 -0
  74. cixstack-1.0.0rc1/tests/cli/run/test_args.py +662 -0
  75. cixstack-1.0.0rc1/tests/cli/run/test_cache_invalidation.py +184 -0
  76. cixstack-1.0.0rc1/tests/cli/run/test_context.py +155 -0
  77. cixstack-1.0.0rc1/tests/cli/run/test_evolve_context.py +187 -0
  78. cixstack-1.0.0rc1/tests/cli/run/test_main.py +437 -0
  79. cixstack-1.0.0rc1/tests/cli/run/test_run_context.py +799 -0
  80. cixstack-1.0.0rc1/tests/cli/start/__init__.py +0 -0
  81. cixstack-1.0.0rc1/tests/cli/start/test_args.py +38 -0
  82. cixstack-1.0.0rc1/tests/cli/start/test_context.py +102 -0
  83. cixstack-1.0.0rc1/tests/cli/start/test_main.py +279 -0
  84. cixstack-1.0.0rc1/tests/cli/status/__init__.py +0 -0
  85. cixstack-1.0.0rc1/tests/cli/status/test_args.py +82 -0
  86. cixstack-1.0.0rc1/tests/cli/status/test_context.py +115 -0
  87. cixstack-1.0.0rc1/tests/cli/status/test_evolve_context.py +367 -0
  88. cixstack-1.0.0rc1/tests/cli/status/test_main.py +453 -0
  89. cixstack-1.0.0rc1/tests/cli/status/test_run_context.py +162 -0
  90. cixstack-1.0.0rc1/tests/cli/test_main.py +520 -0
  91. cixstack-1.0.0rc1/tests/cli/test_parse_commands.py +68 -0
  92. cixstack-1.0.0rc1/tests/cli/watch/__init__.py +0 -0
  93. cixstack-1.0.0rc1/tests/cli/watch/test_main.py +154 -0
  94. cixstack-1.0.0rc1/tests/conftest.py +511 -0
  95. cixstack-1.0.0rc1/tests/core/__init__.py +0 -0
  96. cixstack-1.0.0rc1/tests/core/test_cache.py +140 -0
  97. cixstack-1.0.0rc1/tests/core/test_events.py +268 -0
  98. cixstack-1.0.0rc1/tests/core/test_logging.py +152 -0
  99. cixstack-1.0.0rc1/tests/core/test_runner.py +1614 -0
  100. cixstack-1.0.0rc1/tests/core/test_sandbox.py +330 -0
  101. cixstack-1.0.0rc1/tests/core/test_services.py +159 -0
  102. cixstack-1.0.0rc1/tests/models/__init__.py +0 -0
  103. cixstack-1.0.0rc1/tests/models/test_compat.py +451 -0
  104. cixstack-1.0.0rc1/tests/models/test_is_match.py +83 -0
  105. cixstack-1.0.0rc1/tests/models/test_repo_config.py +385 -0
  106. cixstack-1.0.0rc1/tests/models/test_v1.py +325 -0
  107. cixstack-1.0.0rc1/tests/ruff.toml +4 -0
  108. cixstack-1.0.0rc1/tests/test_context.py +236 -0
  109. cixstack-1.0.0rc1/tests/test_env.py +314 -0
  110. cixstack-1.0.0rc1/tests/test_errors.py +193 -0
  111. cixstack-1.0.0rc1/tests/test_fuzz.py +375 -0
  112. cixstack-1.0.0rc1/tests/test_fuzz_extended.py +428 -0
  113. cixstack-1.0.0rc1/tests/test_utils.py +699 -0
  114. cixstack-1.0.0rc1/uv.lock +507 -0
  115. cixstack-1.0.0rc1/vulture/allowlist.py +59 -0
@@ -0,0 +1,170 @@
1
+ files:
2
+ python: &python
3
+ - pyproject\.toml
4
+ - uv\.lock
5
+ - cixstack/.*\.py
6
+ - tests/.*\.py
7
+ - .*ruff\.toml
8
+
9
+ jobs:
10
+ build-uv-lock:
11
+ sandbox: strict
12
+ matches: *python
13
+ command: uv lock --locked
14
+ fix: uv lock
15
+
16
+ format-ruff:
17
+ needs:
18
+ - build-uv-lock
19
+ sandbox: strict
20
+ matches: *python
21
+ command: uv run --extra dev ruff format cixstack/ tests/ --check
22
+ fix: uv run --extra dev ruff format cixstack/ tests/
23
+
24
+ format-ruff-imports:
25
+ needs:
26
+ - build-uv-lock
27
+ sandbox: strict
28
+ matches: *python
29
+ command: |
30
+ uv run --extra dev \
31
+ ruff check cixstack/ tests/ \
32
+ --select I --select F --select TC003 --select TC002 --select TC001 --select UP037
33
+ fix: |
34
+ uv run --extra dev \
35
+ ruff check cixstack/ tests/ \
36
+ --select I --select F --select TC003 --select TC002 --select TC001 --select UP037 \
37
+ --fix
38
+
39
+ format-prettier:
40
+ sandbox: repo
41
+ matches:
42
+ - .*.md
43
+ - .*.json
44
+ - .*.yml
45
+ - .*.yaml
46
+ - .gitignore # Prettier reads ignore paths from .gitignore
47
+ command: npx prettier --check .
48
+ fix: npx prettier --write .
49
+
50
+ lint-ty:
51
+ needs:
52
+ - build-uv-lock
53
+ sandbox: strict
54
+ matches: *python
55
+ command: |
56
+ uv run --extra dev ty check cixstack/ tests/ \
57
+ --ignore unresolved-attribute \
58
+ --ignore invalid-argument-type
59
+
60
+ lint-ruff:
61
+ needs:
62
+ - build-uv-lock
63
+ sandbox: strict
64
+ matches: *python
65
+ command: uv run --extra dev ruff check cixstack/ tests/
66
+
67
+ lint-yamllint:
68
+ sandbox: strict
69
+ matches:
70
+ - .*\.yaml
71
+ - .*\.yml
72
+ command: uvx yamllint .
73
+
74
+ lint-vulture:
75
+ needs:
76
+ - build-uv-lock
77
+ sandbox: strict
78
+ matches:
79
+ - pyproject\.toml
80
+ - uv\.lock
81
+ - cixstack/.*\.py
82
+ - tests/.*\.py
83
+ - .*ruff\.toml
84
+ - vulture/allowlist\.py
85
+ command: uv run --extra dev vulture cixstack/ tests/ vulture/allowlist.py
86
+ fix: uv run --extra dev vulture cixstack/ tests/ | sort > vulture/allowlist.py
87
+
88
+ test-pytest: &test-pytest
89
+ needs:
90
+ - build-uv-lock
91
+ - format-ruff
92
+ - format-ruff-imports
93
+ - format-prettier
94
+ - lint-ty
95
+ - lint-ruff
96
+ - lint-yamllint
97
+ - lint-vulture
98
+ sandbox: strict
99
+ matches: *python
100
+ matches_settings:
101
+ python: ast
102
+ command: |
103
+ uv run --extra dev pytest tests/ \
104
+ --cov=cixstack \
105
+ --cov-report=term-missing \
106
+ && \
107
+ uv run --extra dev coverage report --fail-under=99
108
+ env:
109
+ CIX_SEARCH_PATH: ""
110
+
111
+ test-pytest-covopt:
112
+ <<: *test-pytest
113
+ needs:
114
+ - build-uv-lock
115
+ - format-ruff
116
+ - format-ruff-imports
117
+ matrix:
118
+ file: git diff --quiet && git diff --cached --quiet || covopt select
119
+ command: uv run --extra dev pytest "${file}"
120
+
121
+ build-uv-build:
122
+ needs:
123
+ - build-uv-lock
124
+ - format-ruff
125
+ - format-ruff-imports
126
+ - format-prettier
127
+ - lint-ty
128
+ - lint-ruff
129
+ - lint-yamllint
130
+ - lint-vulture
131
+ - test-pytest
132
+ command: uv build
133
+
134
+ groups:
135
+ build: &build
136
+ - build-uv-lock
137
+ - build-uv-build
138
+
139
+ format: &format
140
+ - format-ruff
141
+ - format-ruff-imports
142
+ - format-prettier
143
+
144
+ lint: &lint
145
+ - lint-ty
146
+ - lint-ruff
147
+ - lint-yamllint
148
+ - lint-vulture
149
+
150
+ test: &test
151
+ - test-pytest
152
+
153
+ all: &all
154
+ - *build
155
+ - *format
156
+ - *lint
157
+ - *test
158
+
159
+ pre-commit: *all
160
+ pre-push: *all
161
+
162
+ alias:
163
+ st: status
164
+ track: "!watch --no-title -c unbuffer cixstack run -qq"
165
+ f: "!ci config -o json | jq -r '.CONFIG_PATHS[]'"
166
+ seq: "!parallel -j 1 -u --halt soon,fail=1 ci run :::"
167
+
168
+ config:
169
+ hashing:
170
+ default: paste <(git ls-files) <(git ls-files | git hash-object --stdin-paths)
@@ -0,0 +1,15 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
5
+
6
+ version: 2
7
+ updates:
8
+ - package-ecosystem: "uv" # See documentation for possible values
9
+ directory: "/" # Location of package manifests
10
+ schedule:
11
+ interval: "monthly"
12
+ - package-ecosystem: "github-actions" # See documentation for possible values
13
+ directory: "/" # Location of package manifests
14
+ schedule:
15
+ interval: "monthly"
@@ -0,0 +1,239 @@
1
+ name: CI
2
+
3
+ on: push
4
+
5
+ jobs:
6
+ python-checks:
7
+ runs-on: ubuntu-24.04
8
+
9
+ steps:
10
+ - name: Checkout repository
11
+ uses: actions/checkout@v6
12
+
13
+ - name: Install uv # for uvx
14
+ uses: astral-sh/setup-uv@v7
15
+
16
+ - name: uv-lock
17
+ run: uv lock --locked
18
+
19
+ - name: ruff-format
20
+ run: uv run --extra dev ruff format cixstack/ --check
21
+
22
+ - name: ruff-lint-imports
23
+ run: uv run --extra dev ruff check cixstack/ --select I
24
+
25
+ - name: ty-typecheck
26
+ run: |
27
+ uv run --extra dev ty check cixstack/ tests/ \
28
+ --ignore unresolved-attribute \
29
+ --ignore invalid-argument-type
30
+
31
+ - name: ruff-lint
32
+ run: uv run --extra dev ruff check cixstack/
33
+
34
+ - name: yamllint
35
+ run: uvx yamllint .
36
+
37
+ node-checks:
38
+ runs-on: ubuntu-24.04
39
+
40
+ steps:
41
+ - name: Checkout repository
42
+ uses: actions/checkout@v6
43
+
44
+ - name: Install node # for npx
45
+ uses: actions/setup-node@v6
46
+ with:
47
+ node-version: 24
48
+
49
+ - name: prettier-format
50
+ run: npx prettier --check .
51
+
52
+ test-cli-uv:
53
+ runs-on: ubuntu-24.04
54
+
55
+ steps:
56
+ - name: Checkout repository
57
+ uses: actions/checkout@v6
58
+
59
+ - name: Install uv # for uvx
60
+ uses: astral-sh/setup-uv@v7
61
+
62
+ - name: Install node # for npx
63
+ uses: actions/setup-node@v6
64
+ with:
65
+ node-version: 24
66
+
67
+ - name: Run with uvx
68
+ run: |
69
+ # ci
70
+ uvx --from=. ci run
71
+ uvx --from=. ci status
72
+
73
+ # cixstack
74
+ uvx --from=. ci run --no-cache
75
+ uvx --from=. ci status
76
+
77
+ # covopt
78
+ uv tool install covopt
79
+
80
+ - name: Install with uv
81
+ run: uv tool install --from $PWD cixstack --refresh --force
82
+
83
+ - name: Test ci run with various args
84
+ run: |
85
+ ci run
86
+ ci run format
87
+ ci run format --config-path .ci.yaml --repo-path .
88
+ ci run format -c .ci.yaml -r .
89
+ ci run format --quiet
90
+ ci run format -q
91
+ ci run format -qq
92
+ ci run format -qqq
93
+ ci run format -qqqqqqqqqqqqqqqqqqqqqqqqqq
94
+ ci run format --no-cache
95
+ ci run format -n 2
96
+ ci run format --max-jobs 2
97
+ ci run format --fail-fast
98
+ ci run format --ff
99
+
100
+ - name: Test ci fix with various args
101
+ run: |
102
+ ci fix
103
+ ci fix format
104
+ ci fix format-ruff format-ruff-imports
105
+ ci fix --config-path .ci.yaml --repo-path .
106
+ ci fix -c .ci.yaml -r .
107
+ ci fix --quiet
108
+ ci fix -q
109
+ ci fix -n 1
110
+ ci fix --max-jobs 2
111
+
112
+ - name: Test ci cleanup
113
+ run: ci cleanup
114
+
115
+ - name: Test ci status
116
+ run: |
117
+ ci run # To populate the cache and pass jobs
118
+ ci status
119
+ ci status format lint
120
+ ci status --config-path .ci.yaml --repo-path .
121
+ ci status -c .ci.yaml -r .
122
+
123
+ - name: Run pre-commit hook
124
+ run: ci run pre-commit
125
+
126
+ - name: Run pre-push hook
127
+ run: ci run pre-push
128
+
129
+ - name: Config
130
+ run: |
131
+ ci config
132
+ ci config -o json
133
+ ci config -o shell
134
+
135
+ - name: Config with custom CIX_SEARCH_PATH
136
+ run: |
137
+ export CIX_SEARCH_PATH=".:$(git rev-parse --show-toplevel 2>/dev/null || echo '.'):$HOME/.config/cixstack"
138
+ ci config
139
+ ci config -o json
140
+ ci config -o shell
141
+
142
+ cd .github/workflows
143
+ ci config
144
+ ci config -o json
145
+ ci config -o shell
146
+
147
+ cd /
148
+ ci config
149
+ ci config -o json
150
+ ci config -o shell
151
+
152
+ - name: Install alias dependencies
153
+ run: |
154
+ # GNU parallel for seq alias
155
+ # jq for f alias
156
+ sudo apt-get update
157
+ sudo apt-get install -y parallel jq
158
+
159
+ - name: Test aliases
160
+ run: |
161
+ ci st
162
+ ci f
163
+ ci seq format build format build lint test
164
+ ci st
165
+
166
+ test-pytest:
167
+ # Dedicated pytest job so a regression in the tool doesn't cause tests to
168
+ # not run, which could mask errors.
169
+ runs-on: ubuntu-24.04
170
+
171
+ steps:
172
+ - name: Checkout repository
173
+ uses: actions/checkout@v6
174
+
175
+ - name: Install uv
176
+ uses: astral-sh/setup-uv@v7
177
+
178
+ - name: Run pytest
179
+ run: |
180
+ uv run --extra dev pytest tests/ \
181
+ --cov=cixstack \
182
+ --cov-report=term-missing \
183
+ && \
184
+ uv run --extra dev coverage report --fail-under=95
185
+
186
+ test-pytest-freethreading-nogil:
187
+ # Dedicated pytest job so a regression in the tool doesn't cause tests to
188
+ # not run, which could mask errors.
189
+ runs-on: ubuntu-24.04
190
+
191
+ steps:
192
+ - name: Checkout repository
193
+ uses: actions/checkout@v6
194
+
195
+ - name: Install uv
196
+ uses: astral-sh/setup-uv@v7
197
+
198
+ - name: Run pytest
199
+ run: |
200
+ uv run --python 3.14t --extra dev pytest tests/
201
+ env:
202
+ PYTHON_GIL: 0
203
+
204
+ test-cli-pip:
205
+ runs-on: ubuntu-24.04
206
+
207
+ steps:
208
+ - name: Checkout repository
209
+ uses: actions/checkout@v6
210
+
211
+ - name: Install uv # for uvx
212
+ uses: astral-sh/setup-uv@v7
213
+
214
+ - name: Install node # for npx
215
+ uses: actions/setup-node@v6
216
+ with:
217
+ node-version: 24
218
+
219
+ - name: Setup python 3.14
220
+ uses: actions/setup-python@v6
221
+ with:
222
+ python-version: 3.14
223
+
224
+ - name: Install with pip
225
+ run: |
226
+ python3.14 -m venv .venv
227
+ . .venv/bin/activate
228
+ pip install .
229
+
230
+ - name: Install covopt
231
+ run: uv tool install covopt
232
+
233
+ - name: Run some commands
234
+ run: |
235
+ . .venv/bin/activate
236
+ ci run # To populate the cache and pass jobs
237
+ ci status
238
+ ci run
239
+ ci st
@@ -0,0 +1,48 @@
1
+ name: "Publish"
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ # Publish on any tag starting with a `v`, e.g., v0.1.0
7
+ - v*
8
+
9
+ jobs:
10
+ run:
11
+ runs-on: ubuntu-latest
12
+ environment:
13
+ name: pypi
14
+ permissions:
15
+ id-token: write
16
+ contents: read
17
+ steps:
18
+ - name: Checkout
19
+ uses: actions/checkout@v6
20
+ - name: Install uv
21
+ uses: astral-sh/setup-uv@v7
22
+ - name: Install Python 3.14
23
+ run: uv python install 3.14
24
+ - name: Build
25
+ run: uv build
26
+ # Check that basic features work and we didn't miss to include crucial files
27
+ - name: Smoke test (wheel)
28
+ run: |
29
+ uv run \
30
+ --isolated \
31
+ --no-project \
32
+ --with dist/*.whl \
33
+ --with pytest \
34
+ --with gitpython \
35
+ --with hypothesis \
36
+ pytest tests
37
+ - name: Smoke test (source distribution)
38
+ run: |
39
+ uv run \
40
+ --isolated \
41
+ --no-project \
42
+ --with dist/*.tar.gz \
43
+ --with pytest \
44
+ --with gitpython \
45
+ --with hypothesis \
46
+ pytest tests
47
+ - name: Publish
48
+ run: uv publish
@@ -0,0 +1,11 @@
1
+ cixstack.egg-info
2
+ build
3
+ dist
4
+ __pycache__
5
+ .hypothesis
6
+ .pytest_cache
7
+
8
+ # Generated artifacts to be ignored by git and prettier
9
+ .venv
10
+ node_modules
11
+ objects
@@ -0,0 +1,3 @@
1
+ rules:
2
+ line-length:
3
+ max: 120
@@ -0,0 +1,25 @@
1
+ Metadata-Version: 2.4
2
+ Name: cixstack
3
+ Version: 1.0.0rc1
4
+ Summary: A simple workflow manager built in Python
5
+ Author-email: Olle Lindgren <olle.ln@outlook.com>
6
+ Requires-Python: <3.15,>=3.14
7
+ Requires-Dist: argcomplete>=3.6.2
8
+ Requires-Dist: attrs>=25.0.0
9
+ Requires-Dist: cattrs>=25.0.0
10
+ Requires-Dist: diskcache>=5.6.3
11
+ Requires-Dist: pygit2>=1.19.1
12
+ Requires-Dist: python-dotenv>=1.1.1
13
+ Requires-Dist: pyyaml>=6.0
14
+ Requires-Dist: termcolor>=3.2.0
15
+ Requires-Dist: xxhash>=3.5.0
16
+ Provides-Extra: dev
17
+ Requires-Dist: coverage>=7.13.4; extra == 'dev'
18
+ Requires-Dist: gitpython>=3.1.45; extra == 'dev'
19
+ Requires-Dist: hypothesis>=6.151.9; extra == 'dev'
20
+ Requires-Dist: pytest-cov>=7.0.0; extra == 'dev'
21
+ Requires-Dist: pytest>=9.0.2; extra == 'dev'
22
+ Requires-Dist: ruff>=0.14.13; extra == 'dev'
23
+ Requires-Dist: ty>=0.0.1a24; extra == 'dev'
24
+ Requires-Dist: vulture==2.14; extra == 'dev'
25
+ Requires-Dist: yamllint>=1.38.0; extra == 'dev'