cuvis-ai-schemas 0.1.0__tar.gz → 0.1.2__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 (50) hide show
  1. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/.githooks/pre-commit +38 -38
  2. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/.githooks/pre-push +54 -54
  3. cuvis_ai_schemas-0.1.2/.github/workflows/pypi-release.yml +169 -0
  4. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/.gitignore +207 -207
  5. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/CHANGELOG.md +90 -68
  6. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/LICENSE +190 -190
  7. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/PKG-INFO +111 -111
  8. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/__init__.py +5 -5
  9. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/discovery/__init__.py +6 -6
  10. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/enums/__init__.py +5 -5
  11. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/enums/types.py +30 -30
  12. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/execution/__init__.py +12 -12
  13. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/execution/context.py +41 -41
  14. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/execution/monitoring.py +83 -83
  15. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/extensions/__init__.py +3 -3
  16. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/extensions/ui/__init__.py +8 -8
  17. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/extensions/ui/port_display.py +159 -159
  18. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/grpc/__init__.py +3 -3
  19. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/grpc/v1/__init__.py +11 -11
  20. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/pipeline/__init__.py +17 -17
  21. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/pipeline/config.py +238 -238
  22. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/pipeline/ports.py +48 -48
  23. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/plugin/__init__.py +6 -6
  24. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/plugin/config.py +118 -118
  25. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/plugin/manifest.py +95 -95
  26. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas.egg-info/PKG-INFO +111 -111
  27. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas.egg-info/SOURCES.txt +1 -0
  28. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/proto/cuvis_ai/grpc/v1/cuvis_ai.proto +604 -604
  29. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/setup.cfg +4 -4
  30. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/tests/test_imports.py +109 -109
  31. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/tests/test_pipeline.py +80 -80
  32. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/tests/test_plugin.py +80 -80
  33. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/tests/test_training.py +82 -82
  34. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/README.md +0 -0
  35. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/grpc/v1/cuvis_ai_pb2.py +0 -0
  36. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/grpc/v1/cuvis_ai_pb2.pyi +0 -0
  37. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/grpc/v1/cuvis_ai_pb2_grpc.py +0 -0
  38. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/training/__init__.py +0 -0
  39. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/training/callbacks.py +0 -0
  40. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/training/config.py +0 -0
  41. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/training/data.py +0 -0
  42. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/training/optimizer.py +0 -0
  43. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/training/run.py +0 -0
  44. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/training/scheduler.py +0 -0
  45. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas/training/trainer.py +0 -0
  46. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas.egg-info/dependency_links.txt +0 -0
  47. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas.egg-info/requires.txt +0 -0
  48. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/cuvis_ai_schemas.egg-info/top_level.txt +0 -0
  49. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/pyproject.toml +0 -0
  50. {cuvis_ai_schemas-0.1.0 → cuvis_ai_schemas-0.1.2}/uv.lock +0 -0
@@ -1,38 +1,38 @@
1
- #!/bin/bash
2
- # Pre-commit hook: Fast quality checks (linting + formatting)
3
- # Skip with: git commit --no-verify
4
-
5
- set -e
6
-
7
- echo "Running pre-commit checks..."
8
-
9
- # Get list of tracked files before running checks
10
- TRACKED_FILES=$(git diff --name-only --cached)
11
-
12
- # Run Ruff formatting first
13
- echo "→ Running Ruff formatting..."
14
- if ! uv run ruff format .; then
15
- echo "✗ Ruff formatting failed. Please fix the errors and try again."
16
- exit 1
17
- fi
18
-
19
- # Run Ruff linting with auto-fix (on formatted code)
20
- echo "→ Running Ruff linting (with auto-fix)..."
21
- if ! uv run ruff check . --fix; then
22
- echo "✗ Ruff linting failed. Please fix the errors and try again."
23
- exit 1
24
- fi
25
-
26
- # Auto-stage any files that were modified by Ruff
27
- # Only re-stage files that were originally staged
28
- if [ -n "$TRACKED_FILES" ]; then
29
- echo "→ Auto-staging formatted files..."
30
- echo "$TRACKED_FILES" | while read -r file; do
31
- if [ -f "$file" ]; then
32
- git add "$file"
33
- fi
34
- done
35
- fi
36
-
37
- echo "✓ Pre-commit checks passed!"
38
- exit 0
1
+ #!/bin/bash
2
+ # Pre-commit hook: Fast quality checks (linting + formatting)
3
+ # Skip with: git commit --no-verify
4
+
5
+ set -e
6
+
7
+ echo "Running pre-commit checks..."
8
+
9
+ # Get list of tracked files before running checks
10
+ TRACKED_FILES=$(git diff --name-only --cached)
11
+
12
+ # Run Ruff formatting first
13
+ echo "→ Running Ruff formatting..."
14
+ if ! uv run ruff format .; then
15
+ echo "✗ Ruff formatting failed. Please fix the errors and try again."
16
+ exit 1
17
+ fi
18
+
19
+ # Run Ruff linting with auto-fix (on formatted code)
20
+ echo "→ Running Ruff linting (with auto-fix)..."
21
+ if ! uv run ruff check . --fix; then
22
+ echo "✗ Ruff linting failed. Please fix the errors and try again."
23
+ exit 1
24
+ fi
25
+
26
+ # Auto-stage any files that were modified by Ruff
27
+ # Only re-stage files that were originally staged
28
+ if [ -n "$TRACKED_FILES" ]; then
29
+ echo "→ Auto-staging formatted files..."
30
+ echo "$TRACKED_FILES" | while read -r file; do
31
+ if [ -f "$file" ]; then
32
+ git add "$file"
33
+ fi
34
+ done
35
+ fi
36
+
37
+ echo "✓ Pre-commit checks passed!"
38
+ exit 0
@@ -1,54 +1,54 @@
1
- #!/bin/bash
2
- # Pre-push hook: Comprehensive quality checks (linting + formatting + docstrings + tests)
3
- # Skip with: git push --no-verify
4
-
5
- set -e
6
-
7
- echo "Running pre-push checks..."
8
-
9
- # Sync dev dependencies first
10
- echo "→ Syncing dev dependencies..."
11
- if ! uv sync --all-extras --dev; then
12
- echo "✗ Dev dependency sync failed. Please check your environment."
13
- exit 1
14
- fi
15
-
16
- # Run Ruff formatting first
17
- echo "→ Running Ruff formatting..."
18
- if ! uv run ruff format .; then
19
- echo "✗ Ruff formatting failed. Please fix the errors and try again."
20
- exit 1
21
- fi
22
-
23
- # Run Ruff linting with auto-fix (on formatted code)
24
- echo "→ Running Ruff linting (with auto-fix)..."
25
- if ! uv run ruff check . --fix; then
26
- echo "✗ Ruff linting failed. Please fix the errors and try again."
27
- exit 1
28
- fi
29
-
30
- # Check docstring coverage (configured in pyproject.toml)
31
- echo "→ Checking docstring coverage..."
32
- if ! uv run interrogate cuvis_ai_schemas/; then
33
- echo ""
34
- echo "✗ Docstring coverage check failed!"
35
- echo " See configuration in pyproject.toml [tool.interrogate]"
36
- echo ""
37
- echo " To see detailed missing docstrings:"
38
- echo " interrogate -vv cuvis_ai_schemas/"
39
- echo ""
40
- echo " To skip this check (not recommended):"
41
- echo " git push --no-verify"
42
- echo ""
43
- exit 1
44
- fi
45
-
46
- # Run pytest with non-GPU tests
47
- echo "→ Running pytest (excluding GPU tests)..."
48
- if ! uv run python -m pytest tests/ -v --tb=line -m "not slow and not gpu"; then
49
- echo "✗ Tests failed. Please fix the failing tests and try again."
50
- exit 1
51
- fi
52
-
53
- echo "✓ All pre-push checks passed!"
54
- exit 0
1
+ #!/bin/bash
2
+ # Pre-push hook: Comprehensive quality checks (linting + formatting + docstrings + tests)
3
+ # Skip with: git push --no-verify
4
+
5
+ set -e
6
+
7
+ echo "Running pre-push checks..."
8
+
9
+ # Sync dev dependencies first
10
+ echo "→ Syncing dev dependencies..."
11
+ if ! uv sync --all-extras --dev; then
12
+ echo "✗ Dev dependency sync failed. Please check your environment."
13
+ exit 1
14
+ fi
15
+
16
+ # Run Ruff formatting first
17
+ echo "→ Running Ruff formatting..."
18
+ if ! uv run ruff format .; then
19
+ echo "✗ Ruff formatting failed. Please fix the errors and try again."
20
+ exit 1
21
+ fi
22
+
23
+ # Run Ruff linting with auto-fix (on formatted code)
24
+ echo "→ Running Ruff linting (with auto-fix)..."
25
+ if ! uv run ruff check . --fix; then
26
+ echo "✗ Ruff linting failed. Please fix the errors and try again."
27
+ exit 1
28
+ fi
29
+
30
+ # Check docstring coverage (configured in pyproject.toml)
31
+ echo "→ Checking docstring coverage..."
32
+ if ! uv run interrogate cuvis_ai_schemas/; then
33
+ echo ""
34
+ echo "✗ Docstring coverage check failed!"
35
+ echo " See configuration in pyproject.toml [tool.interrogate]"
36
+ echo ""
37
+ echo " To see detailed missing docstrings:"
38
+ echo " interrogate -vv cuvis_ai_schemas/"
39
+ echo ""
40
+ echo " To skip this check (not recommended):"
41
+ echo " git push --no-verify"
42
+ echo ""
43
+ exit 1
44
+ fi
45
+
46
+ # Run pytest with non-GPU tests
47
+ echo "→ Running pytest (excluding GPU tests)..."
48
+ if ! uv run python -m pytest tests/ -v --tb=line -m "not slow and not gpu"; then
49
+ echo "✗ Tests failed. Please fix the failing tests and try again."
50
+ exit 1
51
+ fi
52
+
53
+ echo "✓ All pre-push checks passed!"
54
+ exit 0
@@ -0,0 +1,169 @@
1
+ name: PyPI Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*.*.*'
7
+
8
+ permissions:
9
+ contents: write
10
+ id-token: write
11
+
12
+ jobs:
13
+ test-and-typecheck:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ with:
18
+ fetch-depth: 0
19
+
20
+ - name: Install uv
21
+ uses: astral-sh/setup-uv@v5
22
+ with:
23
+ version: "latest"
24
+
25
+ - name: Set up Python
26
+ run: uv python install 3.11
27
+
28
+ - name: Install dependencies
29
+ run: uv sync --all-extras
30
+
31
+ - name: Run tests
32
+ run: uv run pytest tests/ --cov --cov-report=term-missing
33
+
34
+ - name: Run mypy
35
+ run: uv run mypy .
36
+
37
+ - name: Run ruff
38
+ run: uv run ruff check .
39
+
40
+ build-and-validate:
41
+ needs: test-and-typecheck
42
+ runs-on: ubuntu-latest
43
+ steps:
44
+ - uses: actions/checkout@v4
45
+ with:
46
+ fetch-depth: 0
47
+
48
+ - name: Install uv
49
+ uses: astral-sh/setup-uv@v5
50
+ with:
51
+ version: "latest"
52
+
53
+ - name: Set up Python
54
+ run: uv python install 3.11
55
+
56
+ - name: Install dependencies
57
+ run: uv sync --all-extras
58
+
59
+ - name: Build package
60
+ run: uv build
61
+
62
+ - name: Validate package
63
+ run: uv run twine check dist/*
64
+
65
+ - name: Upload artifacts
66
+ uses: actions/upload-artifact@v4
67
+ with:
68
+ name: dist
69
+ path: dist/
70
+
71
+ publish-testpypi:
72
+ needs: build-and-validate
73
+ runs-on: ubuntu-latest
74
+ environment:
75
+ name: testpypi
76
+ url: https://test.pypi.org/p/cuvis-ai-schemas
77
+ steps:
78
+ - uses: actions/download-artifact@v4
79
+ with:
80
+ name: dist
81
+ path: dist/
82
+
83
+ - name: Publish to TestPyPI
84
+ uses: pypa/gh-action-pypi-publish@release/v1
85
+ with:
86
+ repository-url: https://test.pypi.org/legacy/
87
+ skip-existing: true
88
+
89
+ publish-pypi:
90
+ needs: publish-testpypi
91
+ runs-on: ubuntu-latest
92
+ environment:
93
+ name: pypi
94
+ url: https://pypi.org/p/cuvis-ai-schemas
95
+ steps:
96
+ - uses: actions/download-artifact@v4
97
+ with:
98
+ name: dist
99
+ path: dist/
100
+
101
+ - name: Publish to PyPI
102
+ uses: pypa/gh-action-pypi-publish@release/v1
103
+
104
+ create-github-release:
105
+ needs: publish-pypi
106
+ runs-on: ubuntu-latest
107
+ steps:
108
+ - uses: actions/checkout@v4
109
+ with:
110
+ fetch-depth: 0
111
+
112
+ - uses: actions/download-artifact@v4
113
+ with:
114
+ name: dist
115
+ path: dist/
116
+
117
+ - name: Extract changelog
118
+ id: changelog
119
+ run: |
120
+ VERSION=${GITHUB_REF#refs/tags/v}
121
+ echo "version=$VERSION" >> $GITHUB_OUTPUT
122
+
123
+ # Parse CHANGELOG.md for this version's notes
124
+ if [ -f CHANGELOG.md ]; then
125
+ # Escape dots in version for regex (e.g., "0.1.1" -> "0\.1\.1")
126
+ VERSION_ESCAPED=$(echo "$VERSION" | sed 's/\./\\./g')
127
+
128
+ # Extract content between ## [VERSION] headers using sed
129
+ # Matches from ## [X.Y.Z] to the next ## [ line (exclusive)
130
+ NOTES=$(sed -n "/^## \[${VERSION_ESCAPED}\]/,/^## \[/{
131
+ /^## \[${VERSION_ESCAPED}\]/d
132
+ /^## \[/d
133
+ p
134
+ }" CHANGELOG.md)
135
+
136
+ # Remove blank lines at start and end
137
+ NOTES=$(echo "$NOTES" | sed -e '/./,$!d' -e :a -e '/^\n*$/{$d;N;ba' -e '}')
138
+
139
+ if [ -z "$NOTES" ]; then
140
+ NOTES="See [CHANGELOG.md](https://github.com/cubert-hyperspectral/cuvis-ai-schemas/blob/main/CHANGELOG.md) for details."
141
+ fi
142
+ else
143
+ NOTES="Release ${VERSION}"
144
+ fi
145
+
146
+ # Build release notes
147
+ {
148
+ echo "## Release ${VERSION}"
149
+ echo ""
150
+ echo "$NOTES"
151
+ echo ""
152
+ echo "## Installation"
153
+ echo '```bash'
154
+ echo "uv add cuvis-ai-schemas==${VERSION}"
155
+ echo "# With extras:"
156
+ echo "uv add 'cuvis-ai-schemas[proto]==${VERSION}'"
157
+ echo '```'
158
+ echo ""
159
+ echo "**PyPI**: https://pypi.org/project/cuvis-ai-schemas/${VERSION}/"
160
+ } > release_notes.md
161
+
162
+ - name: Create GitHub Release
163
+ uses: softprops/action-gh-release@v2
164
+ with:
165
+ name: ${{ github.ref_name }}
166
+ files: dist/*
167
+ body_path: release_notes.md
168
+ draft: false
169
+ prerelease: false