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.
- microtaint-0.1.0/.github/dependabot.yml +10 -0
- microtaint-0.1.0/.github/workflows/code-quality_ci.yaml +46 -0
- microtaint-0.1.0/.github/workflows/publish.yml +47 -0
- microtaint-0.1.0/.gitignore +112 -0
- microtaint-0.1.0/LICENSE +504 -0
- microtaint-0.1.0/PKG-INFO +59 -0
- microtaint-0.1.0/README.md +50 -0
- microtaint-0.1.0/demo.py +103 -0
- microtaint-0.1.0/microtaint/__init__.py +5 -0
- microtaint-0.1.0/microtaint/classifier/categories.py +17 -0
- microtaint-0.1.0/microtaint/instrumentation/ast.py +188 -0
- microtaint-0.1.0/microtaint/instrumentation/ast_test.py +146 -0
- microtaint-0.1.0/microtaint/sleigh/__init__.py +0 -0
- microtaint-0.1.0/microtaint/sleigh/engine.py +210 -0
- microtaint-0.1.0/microtaint/sleigh/lifter.py +22 -0
- microtaint-0.1.0/microtaint/sleigh/mapper.py +80 -0
- microtaint-0.1.0/microtaint/sleigh/polarity.py +85 -0
- microtaint-0.1.0/microtaint/sleigh/slicer.py +45 -0
- microtaint-0.1.0/microtaint/types.py +16 -0
- microtaint-0.1.0/pyproject.toml +166 -0
- microtaint-0.1.0/tests/e2e_test.py +236 -0
- microtaint-0.1.0/tests/smoke_test.py +29 -0
- microtaint-0.1.0/uv.lock +466 -0
|
@@ -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/
|