crc-rust 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.
Files changed (81) hide show
  1. crc_rust-0.1.0/.github/ISSUE_TEMPLATE/blank.md +8 -0
  2. crc_rust-0.1.0/.github/ISSUE_TEMPLATE/bug.md +78 -0
  3. crc_rust-0.1.0/.github/ISSUE_TEMPLATE/documentation.md +41 -0
  4. crc_rust-0.1.0/.github/ISSUE_TEMPLATE/feature.md +47 -0
  5. crc_rust-0.1.0/.github/ISSUE_TEMPLATE/refactoring.md +47 -0
  6. crc_rust-0.1.0/.github/ISSUE_TEMPLATE/security.md +58 -0
  7. crc_rust-0.1.0/.github/actions/python-environment/action.yml +23 -0
  8. crc_rust-0.1.0/.github/dependabot.yml +11 -0
  9. crc_rust-0.1.0/.github/workflows/checks.yml +111 -0
  10. crc_rust-0.1.0/.github/workflows/ci-cd.yml +64 -0
  11. crc_rust-0.1.0/.github/workflows/ci.yml +10 -0
  12. crc_rust-0.1.0/.github/workflows/gh-pages.yml +32 -0
  13. crc_rust-0.1.0/.github/workflows/pr-merge.yml +39 -0
  14. crc_rust-0.1.0/.gitignore +9 -0
  15. crc_rust-0.1.0/.pre-commit-config.yaml +10 -0
  16. crc_rust-0.1.0/Cargo.lock +185 -0
  17. crc_rust-0.1.0/Cargo.toml +20 -0
  18. crc_rust-0.1.0/LICENSE.txt +22 -0
  19. crc_rust-0.1.0/NOTICE +18 -0
  20. crc_rust-0.1.0/PKG-INFO +69 -0
  21. crc_rust-0.1.0/README.md +48 -0
  22. crc_rust-0.1.0/RUSTSMITH_REPORT.md +123 -0
  23. crc_rust-0.1.0/crc/__init__.py +32 -0
  24. crc_rust-0.1.0/crc/__main__.py +9 -0
  25. crc_rust-0.1.0/crc-core/Cargo.toml +12 -0
  26. crc_rust-0.1.0/crc-core/src/lib.rs +267 -0
  27. crc_rust-0.1.0/docs/docs/api/abstract_register.md +20 -0
  28. crc_rust-0.1.0/docs/docs/api/basic_register.md +12 -0
  29. crc_rust-0.1.0/docs/docs/api/calculator.md +28 -0
  30. crc_rust-0.1.0/docs/docs/api/configuration.md +58 -0
  31. crc_rust-0.1.0/docs/docs/api/index.md +47 -0
  32. crc_rust-0.1.0/docs/docs/api/register.md +26 -0
  33. crc_rust-0.1.0/docs/docs/api/table_based_register.md +26 -0
  34. crc_rust-0.1.0/docs/docs/changelog/changes_2.0.0.md +44 -0
  35. crc_rust-0.1.0/docs/docs/changelog/changes_3.0.0.md +40 -0
  36. crc_rust-0.1.0/docs/docs/changelog/changes_3.0.1.md +13 -0
  37. crc_rust-0.1.0/docs/docs/changelog/changes_4.0.0.md +17 -0
  38. crc_rust-0.1.0/docs/docs/changelog/changes_4.1.0.md +14 -0
  39. crc_rust-0.1.0/docs/docs/changelog/changes_4.2.0.md +18 -0
  40. crc_rust-0.1.0/docs/docs/changelog/changes_4.3.0.md +11 -0
  41. crc_rust-0.1.0/docs/docs/changelog/changes_5.0.0.md +66 -0
  42. crc_rust-0.1.0/docs/docs/changelog/changes_6.0.0.md +21 -0
  43. crc_rust-0.1.0/docs/docs/changelog/changes_6.1.0.md +14 -0
  44. crc_rust-0.1.0/docs/docs/changelog/changes_6.1.1.md +13 -0
  45. crc_rust-0.1.0/docs/docs/changelog/changes_6.1.2.md +18 -0
  46. crc_rust-0.1.0/docs/docs/changelog/changes_7.0.0.md +33 -0
  47. crc_rust-0.1.0/docs/docs/changelog/changes_7.1.0.md +23 -0
  48. crc_rust-0.1.0/docs/docs/changelog/changes_8.0.0.md +14 -0
  49. crc_rust-0.1.0/docs/docs/changelog/index.md +13 -0
  50. crc_rust-0.1.0/docs/docs/changelog/unreleased.md +9 -0
  51. crc_rust-0.1.0/docs/docs/cli.md +66 -0
  52. crc_rust-0.1.0/docs/docs/configurations.md +311 -0
  53. crc_rust-0.1.0/docs/docs/contributors.md +18 -0
  54. crc_rust-0.1.0/docs/docs/development/index.md +27 -0
  55. crc_rust-0.1.0/docs/docs/development/release.md +79 -0
  56. crc_rust-0.1.0/docs/docs/development/setup.md +139 -0
  57. crc_rust-0.1.0/docs/docs/getting-started/index.md +30 -0
  58. crc_rust-0.1.0/docs/docs/getting-started/installation.md +66 -0
  59. crc_rust-0.1.0/docs/docs/getting-started/quick-start.md +108 -0
  60. crc_rust-0.1.0/docs/docs/index.md +161 -0
  61. crc_rust-0.1.0/docs/docs/usage/calculator.md +216 -0
  62. crc_rust-0.1.0/docs/docs/usage/configurations.md +77 -0
  63. crc_rust-0.1.0/docs/docs/usage/index.md +39 -0
  64. crc_rust-0.1.0/docs/docs/usage/registers.md +101 -0
  65. crc_rust-0.1.0/docs/scripts/configurations.py +59 -0
  66. crc_rust-0.1.0/pyproject.toml +39 -0
  67. crc_rust-0.1.0/release.toml +52 -0
  68. crc_rust-0.1.0/rustsmith-report.html +1 -0
  69. crc_rust-0.1.0/rustsmith-report.json +446 -0
  70. crc_rust-0.1.0/src/crc/py.typed +0 -0
  71. crc_rust-0.1.0/src/lib.rs +649 -0
  72. crc_rust-0.1.0/suggestions/README.md +11 -0
  73. crc_rust-0.1.0/suggestions/accelerators/README.md +4 -0
  74. crc_rust-0.1.0/suggestions/round0-manual-hex.md +14 -0
  75. crc_rust-0.1.0/tasks.py +316 -0
  76. crc_rust-0.1.0/test/bench/benches.py +60 -0
  77. crc_rust-0.1.0/test/integration/test_cli.py +83 -0
  78. crc_rust-0.1.0/test/unit/regression/test_unstable_digest.py +42 -0
  79. crc_rust-0.1.0/test/unit/test_crc.py +695 -0
  80. crc_rust-0.1.0/uv.lock +2011 -0
  81. crc_rust-0.1.0/zensical.toml +146 -0
@@ -0,0 +1,8 @@
1
+ ---
2
+ name: 📝 Blank Issue
3
+ about: Blank Issue
4
+ title: 📝 <Insert Title>
5
+ labels:
6
+ assignees: ''
7
+
8
+ ---
@@ -0,0 +1,78 @@
1
+ ---
2
+ name: 🐞 Bug Report
3
+ about: File a bug report
4
+ title: 🐞 <Insert Title>
5
+ labels: bug
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ ### Checklist
11
+ In order to improve the time, how long a bugfix does take, please make sure you address as much as possible of the following checklist.
12
+
13
+ - [ ] I have reproduced the issue with at least the latest released version of \<PROJECT-NAME\>.
14
+ - [ ] I have added references to issues that sound similar.
15
+
16
+ **Tip: Adding screenshots, outputs and logs help to improve clarity.**
17
+
18
+ # Summary
19
+ <!---
20
+ Describe the bug: A clear and concise description of what the bug is.
21
+ -->
22
+
23
+ ## Reproducing the Issue
24
+
25
+ Reproducibility: <pick one of> sporadic, regularly, always
26
+ <!---
27
+ Describe how to reproduce the bug, e.g.:
28
+ 1. Go to '...'
29
+ 2. Click on '....'
30
+ 3. Scroll down to '....'
31
+ 4. See error
32
+ -->
33
+ ### Steps to reproduce the behavior:
34
+ 1. <step 1>
35
+ 2. <step 2>
36
+ 3. ....
37
+
38
+ ## Expected Behaviour
39
+ <!---
40
+ Describe the expected behaviour: A clear and concise description of what you expected to happen.
41
+ -->
42
+
43
+ ## Actual Behaviour
44
+ <!---
45
+ Describe the actual observed behaviour: A clear and concise description of what you actually to happen.
46
+ Screenshot: If applicable, add screenshots to help explain your problem.
47
+ -->
48
+
49
+ ## Root Cause (optional)
50
+ <!---
51
+ If known
52
+ -->
53
+
54
+
55
+ ## Context
56
+ <!---
57
+ Describe the actual observed behaviour: A clear and concise description of what you observed.
58
+ Screenshot: If applicable, add screenshots to help explain your problem.
59
+ -->
60
+
61
+ ### System
62
+ <!---
63
+ Describe the system and the used configuration.
64
+ -->
65
+ **Desktop:**
66
+ - OS: [e.g. Linux (Fedora 35), Linux (Ubuntu 20.01), MacOs (...), Windows (...)]
67
+ - Python Version [e.g. Python 3.8.0]
68
+ - Package Version [e.g. 22]
69
+
70
+ ### Additional Context (optional)
71
+ <!---
72
+ Add any additional context about the problem here.
73
+ -->
74
+
75
+ #### Related Issues (optional)
76
+ <!---
77
+ Link related issues form the issue tracker here.
78
+ -->
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: 📚 Documentation
3
+ about: Add/Improve Documentation
4
+ title: 📚 <Insert Title>
5
+ labels: documentation
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ # Summary
11
+ <!---
12
+ A short summary on what of what needs to be documented or updated.
13
+ --->
14
+
15
+ # Details
16
+ <!---
17
+ A detailed description about what kind of documentation should be added and/or updated and why.
18
+ --->
19
+
20
+ ## Background & Context
21
+ <!---
22
+ Why should this documentation be added/updated?
23
+
24
+ E.g.: Users are struggling to use this API and have repeatedly asked for some example code.
25
+ --->
26
+
27
+ ## References
28
+ <!---
29
+ Further references to e.g. other information resources like links to specification(s), api docs etc.
30
+ --->
31
+
32
+ # Task(s)
33
+ <!---
34
+ A task list containing common task associated with this kind of issue, but also tasks specific to this issue.
35
+
36
+ e.g.:
37
+ - [ ] Update documentation of XYZ
38
+ - [ ] Bump version number
39
+ - [ ] Update changelog
40
+ - [ ] ...
41
+ --->
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: ✨ Feature
3
+ about: Add/Implement Feature
4
+ title: ✨ <Insert Title>
5
+ labels: feature
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ # Summary
11
+ <!---
12
+ A short description of the feature (TL;DR)
13
+ --->
14
+
15
+ # Details
16
+ <!---
17
+ A detailed description about what should be added, background, links, context information
18
+ and usage example(s) of the feature.
19
+ --->
20
+
21
+ ## Background & Context
22
+ <!---
23
+ What is the motivation for the feature?
24
+ Assessment of the feature. Pros & cons, solutions and decisions concerning the feature (reasoning).
25
+ --->
26
+
27
+ ## Examples
28
+ <!---
29
+ Example usage(s) of the feature.
30
+ --->
31
+
32
+ ## References
33
+ <!---
34
+ Further references to e.g. other information resources like links to specification(s) etc.
35
+ --->
36
+
37
+ # Task(s)
38
+ <!---
39
+ A task list containing common task associated with this kind of issue, but also tasks specific to this issue.
40
+
41
+ e.g.:
42
+ - [ ] Add feature XYZ
43
+ - [ ] Bump version number
44
+ - [ ] Update documentation
45
+ - [ ] Update changelog
46
+ - [ ] ...
47
+ --->
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: 🔧 Refactoring
3
+ about: Refactor
4
+ title: 🔧 <Insert Title>
5
+ labels: refactoring
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ # Summary
11
+ <!---
12
+ A short description of the planed refactoring (TL;DR)
13
+ --->
14
+
15
+ # Details
16
+ <!---
17
+ A detailed description about what and how it should be refactored, background, links, context information
18
+ and example(s) of how "the refactoring should look".
19
+ --->
20
+
21
+ ## Background & Context
22
+ <!---
23
+ What is the motivation for the refactoring?
24
+ Assessment of the refactoring. Pros & cons, solutions and decisions concerning (reasoning) the refactoring.
25
+ --->
26
+
27
+ ## Examples
28
+ <!---
29
+ Examples of how "the refactoring should look".
30
+ --->
31
+
32
+ ## References
33
+ <!---
34
+ Further references to e.g. other information resources like links to specification(s) etc.
35
+ --->
36
+
37
+ # Task(s)
38
+ <!---
39
+ A task list containing common task associated with this kind of issue, but also tasks specific to this issue.
40
+
41
+ e.g.:
42
+ - [ ] Implement/Refactor XYZ
43
+ - [ ] Add tests for XYZ
44
+ - [ ] Bump version number
45
+ - [ ] Update changelog
46
+ - [ ] ...
47
+ --->
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: 🔐 Security Issue
3
+ about: Fix Security Issue
4
+ title: 🔐 <Insert Title>
5
+ labels: security
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ # Summary
11
+ <!---
12
+ A short summary of the security issue.
13
+ --->
14
+
15
+ | | |
16
+ |------------|-----|
17
+ | Class/Type | - |
18
+ | Version(s) | - |
19
+ | Severity | - |
20
+ | CVE Number | - |
21
+
22
+ <!---
23
+ A quick table based overview, containing the most important details.
24
+
25
+ Class/Type: Of vulnerability, e.g. xss, buffer-overflow, ... (see https://cwe.mitre.org/
26
+ Versions: Affected software versions
27
+ Severity: Of the vulnerability (Low, Medium, High, Critical)
28
+ CVE Number: number and link to the cve if available
29
+ -->
30
+
31
+
32
+ # Details
33
+
34
+ ### Description
35
+ <!---
36
+ If no detailed information is available through references or CVE, an extensive
37
+ description of the vulnerability should be added here.
38
+ --->
39
+
40
+ ### Impact
41
+ <!---
42
+ Describe the impact of the vulnerability.
43
+ --->
44
+
45
+ ### References
46
+ <!---
47
+ Links to related issues or other sources like link to CVE.
48
+ --->
49
+
50
+ # Solutions
51
+ <!--
52
+ Describe possible solution(s), how to address this issue.
53
+ --->
54
+
55
+ # Credit
56
+ <!--
57
+ Whom to thank, kudos for the reporter(s)
58
+ -->
@@ -0,0 +1,23 @@
1
+ name: 'SPE'
2
+ description: 'Setup python environment'
3
+
4
+ inputs:
5
+
6
+ python-version:
7
+ description: 'Python version to use'
8
+ required: true
9
+ default: "3.12"
10
+
11
+ runs:
12
+
13
+ using: "composite"
14
+ steps:
15
+
16
+ - name: Install uv and set the python version
17
+ uses: astral-sh/setup-uv@v5
18
+ with:
19
+ python-version: ${{ inputs.python-version }}
20
+
21
+ - name: uv sync
22
+ run: uv sync
23
+ shell: bash
@@ -0,0 +1,11 @@
1
+ version: 2
2
+ updates:
3
+
4
+ # Maintain dependencies for GitHub Actions
5
+ - package-ecosystem: "github-actions"
6
+ directory: "/"
7
+ schedule:
8
+ interval: "weekly"
9
+ day: "monday"
10
+ open-pull-requests-limit: 5
11
+
@@ -0,0 +1,111 @@
1
+ name: Checks
2
+
3
+ on: workflow_call
4
+
5
+ jobs:
6
+
7
+ format-job:
8
+ name: "Format (Python-${{ matrix.python-version }} on ${{ matrix.os }})"
9
+ runs-on: ${{ matrix.os }}
10
+ strategy:
11
+ fail-fast: true
12
+ matrix:
13
+ os:
14
+ - ubuntu-latest
15
+ python-version:
16
+ - "3.12"
17
+
18
+ steps:
19
+ - name: SCM Checkout
20
+ uses: actions/checkout@v6
21
+
22
+ - name: Setup Python Environment
23
+ uses: ./.github/actions/python-environment
24
+ with:
25
+ python-version: ${{ matrix.python-version }}
26
+
27
+ - name: Run Coverage
28
+ run: uv run invoke check.format
29
+
30
+ typing-job:
31
+
32
+ name: "Typing (Python-${{ matrix.python-version }} on ${{ matrix.os }})"
33
+ needs: [format-job]
34
+ runs-on: ${{ matrix.os }}
35
+ strategy:
36
+ fail-fast: true
37
+ matrix:
38
+ os:
39
+ - ubuntu-latest
40
+ python-version:
41
+ - "3.11"
42
+ - "3.12"
43
+ - "3.13"
44
+ - "3.14"
45
+
46
+ steps:
47
+ - name: SCM Checkout
48
+ uses: actions/checkout@v6
49
+
50
+ - name: Setup Python Environment
51
+ uses: ./.github/actions/python-environment
52
+ with:
53
+ python-version: ${{ matrix.python-version }}
54
+
55
+ - name: Run Coverage
56
+ run: uv run invoke check.typing --files src/
57
+
58
+ linting-job:
59
+
60
+ name: "Lint (Python-${{ matrix.python-version }} on ${{ matrix.os }})"
61
+ needs: [format-job]
62
+ runs-on: ${{ matrix.os }}
63
+ strategy:
64
+ fail-fast: true
65
+ matrix:
66
+ os:
67
+ - ubuntu-latest
68
+ python-version:
69
+ - "3.12"
70
+
71
+ steps:
72
+ - name: SCM Checkout
73
+ uses: actions/checkout@v6
74
+
75
+ - name: Setup Python Environment
76
+ uses: ./.github/actions/python-environment
77
+ with:
78
+ python-version: ${{ matrix.python-version }}
79
+
80
+ - name: Run Linter
81
+ run: uv run invoke check.lint --files src/
82
+
83
+ tests-job:
84
+
85
+ name: "Tests (Python-${{ matrix.python-version }} on ${{ matrix.os }})"
86
+ needs: [format-job, linting-job, typing-job]
87
+ runs-on: ${{ matrix.os }}
88
+ strategy:
89
+ fail-fast: true
90
+ matrix:
91
+ os:
92
+ - ubuntu-latest
93
+ - macos-latest
94
+ - windows-latest
95
+ python-version:
96
+ - "3.11"
97
+ - "3.12"
98
+ - "3.13"
99
+ - "3.14"
100
+
101
+ steps:
102
+ - name: SCM Checkout
103
+ uses: actions/checkout@v6
104
+
105
+ - name: Setup Python Environment
106
+ uses: ./.github/actions/python-environment
107
+ with:
108
+ python-version: ${{ matrix.python-version }}
109
+
110
+ - name: Run Tests
111
+ run: uv run invoke test.coverage
@@ -0,0 +1,64 @@
1
+ name: CI/CD
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - '**'
7
+
8
+ jobs:
9
+
10
+ check-tag-version-job:
11
+
12
+ name: Check Tag Version
13
+ runs-on: ubuntu-latest
14
+
15
+ steps:
16
+ - name: SCM Checkout
17
+ uses: actions/checkout@v6
18
+
19
+ - name: Setup Python Environment
20
+ uses: ./.github/actions/python-environment
21
+
22
+ - name: Check Tag Version
23
+ # make sure the pushed/created tag matched the project version
24
+ run: "[[ `uv run hatch version` == ${{ github.ref_name }} ]]"
25
+
26
+ ci-job:
27
+ name: Checks
28
+ needs: [ check-tag-version-job ]
29
+ uses: ./.github/workflows/checks.yml
30
+
31
+ publish-docs-job:
32
+ name: Publish Documentation
33
+ needs: [ ci-job ]
34
+ uses: ./.github/workflows/gh-pages.yml
35
+
36
+ cd-job:
37
+ name: Continues Delivery
38
+ needs: [ ci-job ]
39
+
40
+ runs-on: ubuntu-latest
41
+ steps:
42
+
43
+ - name: SCM Checkout
44
+ uses: actions/checkout@v6
45
+
46
+ - name: Setup Python Environment
47
+ uses: ./.github/actions/python-environment
48
+
49
+ - name: Build Artifacts
50
+ run: uv build
51
+
52
+ - name: PyPi Release
53
+ env:
54
+ UV_PUBLISH_USERNAME: "__token__"
55
+ UV_PUBLISH_PASSWORD: "${{ secrets.PYPI_TOKEN }}"
56
+ run: uv publish
57
+
58
+ - name: GitHub Release
59
+ env:
60
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
61
+ run: >
62
+ gh release create ${GITHUB_REF_NAME}
63
+ --title ${GITHUB_REF_NAME} --notes-file docs/docs/changelog/changes_${GITHUB_REF_NAME}.md
64
+ dist/*
@@ -0,0 +1,10 @@
1
+ name: CI
2
+
3
+ on:
4
+ pull_request:
5
+
6
+ jobs:
7
+
8
+ ci-job:
9
+ name: Checks
10
+ uses: ./.github/workflows/checks.yml
@@ -0,0 +1,32 @@
1
+ name: Publish Documentation
2
+
3
+ on:
4
+ workflow_call:
5
+ workflow_dispatch:
6
+
7
+ jobs:
8
+
9
+ documentation-job:
10
+ runs-on: ubuntu-latest
11
+
12
+ steps:
13
+ - name: SCM Checkout
14
+ uses: actions/checkout@v6
15
+
16
+ - name: Setup Python Environment
17
+ uses: ./.github/actions/python-environment
18
+ with:
19
+ python-version: "3.12"
20
+
21
+ - name: Build Documentation
22
+ run: |
23
+ uv run invoke docs.build
24
+ touch .html-documentation/.nojekyll
25
+
26
+ - name: Deploy
27
+ uses: JamesIves/github-pages-deploy-action@v4.8.0
28
+ with:
29
+ branch: gh-pages
30
+ folder: .html-documentation
31
+ git-config-name: Github Action
32
+ git-config-email: nico.coretti@gmail.com
@@ -0,0 +1,39 @@
1
+ name: PR-Merge
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - 'master'
7
+
8
+ jobs:
9
+
10
+ ci-job:
11
+ name: Checks
12
+ uses: ./.github/workflows/checks.yml
13
+
14
+ publish-coverage:
15
+ name: Publish Code Coverage
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - name: SCM Checkout
19
+ uses: actions/checkout@v6
20
+
21
+ - name: Setup Python Environment
22
+ uses: ./.github/actions/python-environment
23
+ with:
24
+ python-version: 3.12
25
+
26
+ - name: Collect Code Coverage
27
+ run: uv run invoke test.coverage
28
+ env:
29
+ COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
30
+
31
+ - name: Publish Code Coverage
32
+ env:
33
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
34
+ run: uv run coveralls --service=github
35
+
36
+
37
+ publish-docs:
38
+ name: Publish Documentation
39
+ uses: ./.github/workflows/gh-pages.yml
@@ -0,0 +1,9 @@
1
+ worktree-*
2
+ .bundles/
3
+ .grade-venv/
4
+ orig_src/
5
+ __pycache__/
6
+ target/
7
+ *.so
8
+ build/
9
+ rust/*/target/
@@ -0,0 +1,10 @@
1
+ default_stages: [ push ]
2
+ repos:
3
+ - repo: local
4
+ hooks:
5
+ - id: fmt
6
+ name: fmt
7
+ entry: echo "foo"
8
+ language: system
9
+ always_run: true
10
+ types: [ python ]