microtaint 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,10 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "pip"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "weekly"
7
+ - package-ecosystem: "github-actions"
8
+ directory: "/"
9
+ schedule:
10
+ interval: "weekly"
@@ -0,0 +1,46 @@
1
+ name: P-Code Taint Engine CI
2
+
3
+ on:
4
+ push:
5
+ branches: ["master"]
6
+ pull_request:
7
+ branches: ["master"]
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ build:
14
+ runs-on: ubuntu-latest
15
+
16
+ steps:
17
+ - uses: actions/checkout@v6
18
+
19
+ - name: Install uv
20
+ uses: astral-sh/setup-uv@v7
21
+
22
+ - name: Install the project
23
+ id: install
24
+ run: uv sync --locked --all-extras --dev
25
+
26
+ - name: Lint with Ruff
27
+ if: always() && steps.install.outcome == 'success'
28
+ run: |
29
+ uv run ruff check .
30
+
31
+ - name: Type Check with Mypy
32
+ if: always() && steps.install.outcome == 'success'
33
+ run: |
34
+ uv run mypy .
35
+
36
+ - name: Test with pytest
37
+ id: test
38
+ if: always() && steps.install.outcome == 'success'
39
+ run: |
40
+ uv run pytest --cov --cov-branch --cov-report=xml
41
+
42
+ - name: Upload coverage reports to Codecov
43
+ if: always() && steps.test.outcome == 'success'
44
+ uses: codecov/codecov-action@v5
45
+ with:
46
+ token: ${{ secrets.CODECOV_TOKEN }}
@@ -0,0 +1,47 @@
1
+ name: Publish PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+
8
+ jobs:
9
+ build-and-publish:
10
+ name: Build & Publish to PyPI
11
+ runs-on: ubuntu-latest
12
+ environment:
13
+ name: pypi
14
+ url: https://pypi.org/p/microtaint
15
+ permissions:
16
+ id-token: write # MANDATORY for Trusted Publishing OIDC
17
+ contents: write # Need write access to publish the GH Release
18
+
19
+ steps:
20
+ - name: Checkout repository
21
+ uses: actions/checkout@v6
22
+ with:
23
+ fetch-depth: 0 # for automatic changelog generation
24
+
25
+ - name: Install uv
26
+ uses: astral-sh/setup-uv@v7
27
+
28
+ - name: Install Python
29
+ run: uv python install 3.12
30
+
31
+ - name: Build with uv
32
+ run: uv build
33
+
34
+ # Check that basic features work and we didn't miss to include crucial files
35
+ - name: Smoke test (wheel)
36
+ run: uv run --isolated --no-project --with dist/*.whl python tests/smoke_test.py
37
+
38
+ - name: Create GitHub Release
39
+ uses: softprops/action-gh-release@v2
40
+ with:
41
+ files: dist/* # Uploads the wheel and sdist to the GH Release
42
+ generate_release_notes: true # Generate release notes based on the commit history
43
+ draft: false
44
+ prerelease: false
45
+
46
+ - name: Publish to PyPI
47
+ run: uv publish
@@ -0,0 +1,112 @@
1
+ # Temp files
2
+ *.tmp
3
+ *.bak
4
+ *.log
5
+
6
+ # Byte-compiled / optimized / DLL files
7
+ __pycache__/
8
+ *.py[cod]
9
+ *$py.class
10
+
11
+ # C extensions
12
+ *.so
13
+
14
+ # Distribution / packaging
15
+ .Python
16
+ build/
17
+ develop-eggs/
18
+ dist/
19
+ downloads/
20
+ eggs/
21
+ .eggs/
22
+ lib/
23
+ lib64/
24
+ parts/
25
+ sdist/
26
+ var/
27
+ wheels/
28
+ *.egg-info/
29
+ .installed.cfg
30
+ *.egg
31
+ MANIFEST
32
+
33
+ # PyInstaller
34
+ # Usually these files are written by a python script from a template
35
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
36
+ *.manifest
37
+ *.spec
38
+
39
+ # Installer logs
40
+ pip-log.txt
41
+ pip-delete-this-directory.txt
42
+
43
+ # Unit test / coverage reports
44
+ htmlcov/
45
+ .tox/
46
+ .coverage
47
+ .coverage.*
48
+ .cache
49
+ nosetests.xml
50
+ coverage.xml
51
+ *.cover
52
+ .hypothesis/
53
+ .pytest_cache/
54
+
55
+ # Translations
56
+ *.mo
57
+ *.pot
58
+
59
+ # Django stuff:
60
+ *.log
61
+ local_settings.py
62
+ db.sqlite3
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ target/
76
+
77
+ # Jupyter Notebook
78
+ .ipynb_checkpoints
79
+
80
+ # pyenv
81
+ .python-version
82
+
83
+ # celery beat schedule file
84
+ celerybeat-schedule
85
+
86
+ # SageMath parsed files
87
+ *.sage.py
88
+
89
+ # Environments
90
+ .env
91
+ .venv
92
+ env/
93
+ venv/
94
+ ENV/
95
+ env.bak/
96
+ venv.bak/
97
+
98
+ # Spyder project settings
99
+ .spyderproject
100
+ .spyproject
101
+
102
+ # Rope project settings
103
+ .ropeproject
104
+
105
+ # mkdocs documentation
106
+ /site
107
+
108
+ # mypy
109
+ .mypy_cache/
110
+
111
+ output/
112
+ stubs/