clear-skies-cortex 2.0.1__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 (42) hide show
  1. clear_skies_cortex-2.0.1/.copier-answers.yml +14 -0
  2. clear_skies_cortex-2.0.1/.editorconfig +13 -0
  3. clear_skies_cortex-2.0.1/.github/workflows/create-version.yaml +139 -0
  4. clear_skies_cortex-2.0.1/.github/workflows/docs.yaml +51 -0
  5. clear_skies_cortex-2.0.1/.github/workflows/run-tests.yml +90 -0
  6. clear_skies_cortex-2.0.1/.github/workflows/tests-matrix.yaml +98 -0
  7. clear_skies_cortex-2.0.1/.github/workflows/tests.yaml +15 -0
  8. clear_skies_cortex-2.0.1/.gitignore +201 -0
  9. clear_skies_cortex-2.0.1/.pre-commit-config.yaml +82 -0
  10. clear_skies_cortex-2.0.1/.python-version +1 -0
  11. clear_skies_cortex-2.0.1/CHANGELOG.md +25 -0
  12. clear_skies_cortex-2.0.1/LATEST_CHANGELOG.md +16 -0
  13. clear_skies_cortex-2.0.1/LICENSE +21 -0
  14. clear_skies_cortex-2.0.1/PKG-INFO +74 -0
  15. clear_skies_cortex-2.0.1/README.md +52 -0
  16. clear_skies_cortex-2.0.1/cliff.toml +104 -0
  17. clear_skies_cortex-2.0.1/pyproject.toml +81 -0
  18. clear_skies_cortex-2.0.1/ruff.toml +29 -0
  19. clear_skies_cortex-2.0.1/src/clearskies_cortex/__init__.py +8 -0
  20. clear_skies_cortex-2.0.1/src/clearskies_cortex/backends/__init__.py +4 -0
  21. clear_skies_cortex-2.0.1/src/clearskies_cortex/backends/cortex_backend.py +45 -0
  22. clear_skies_cortex-2.0.1/src/clearskies_cortex/backends/cortex_team_relationship_backend.py +174 -0
  23. clear_skies_cortex-2.0.1/src/clearskies_cortex/columns/__init__.py +3 -0
  24. clear_skies_cortex-2.0.1/src/clearskies_cortex/columns/string_list.py +25 -0
  25. clear_skies_cortex-2.0.1/src/clearskies_cortex/dataclasses.py +73 -0
  26. clear_skies_cortex-2.0.1/src/clearskies_cortex/defaults/__init__.py +7 -0
  27. clear_skies_cortex-2.0.1/src/clearskies_cortex/defaults/default_cortex_auth.py +9 -0
  28. clear_skies_cortex-2.0.1/src/clearskies_cortex/defaults/default_cortex_url.py +7 -0
  29. clear_skies_cortex-2.0.1/src/clearskies_cortex/models/__init__.py +21 -0
  30. clear_skies_cortex-2.0.1/src/clearskies_cortex/models/cortex_catalog_entity.py +62 -0
  31. clear_skies_cortex-2.0.1/src/clearskies_cortex/models/cortex_catalog_entity_domain.py +25 -0
  32. clear_skies_cortex-2.0.1/src/clearskies_cortex/models/cortex_catalog_entity_group.py +22 -0
  33. clear_skies_cortex-2.0.1/src/clearskies_cortex/models/cortex_catalog_entity_scorecard.py +33 -0
  34. clear_skies_cortex-2.0.1/src/clearskies_cortex/models/cortex_catalog_entity_service.py +92 -0
  35. clear_skies_cortex-2.0.1/src/clearskies_cortex/models/cortex_catalog_entity_types.py +25 -0
  36. clear_skies_cortex-2.0.1/src/clearskies_cortex/models/cortex_entity_relationships.py +25 -0
  37. clear_skies_cortex-2.0.1/src/clearskies_cortex/models/cortex_model.py +9 -0
  38. clear_skies_cortex-2.0.1/src/clearskies_cortex/models/cortex_scorecard.py +27 -0
  39. clear_skies_cortex-2.0.1/src/clearskies_cortex/models/cortex_team.py +69 -0
  40. clear_skies_cortex-2.0.1/src/clearskies_cortex/models/cortex_team_category_tree.py +27 -0
  41. clear_skies_cortex-2.0.1/src/clearskies_cortex/models/cortex_team_department.py +25 -0
  42. clear_skies_cortex-2.0.1/uv.lock +956 -0
@@ -0,0 +1,14 @@
1
+ # Changes here will be overwritten by Copier; NEVER EDIT MANUALLY
2
+ _commit: v0.0.35
3
+ _src_path: gh:clearskies-py/clearskies-module-template
4
+ author_email: tom.nijboer@cimpress.com
5
+ author_name: Tom Nijboer
6
+ create_backends: false
7
+ create_columns: false
8
+ create_configs: false
9
+ create_endpoints: false
10
+ create_models: true
11
+ docs_modules_location: modules
12
+ module_display_name: Cortex
13
+ module_name: cortex
14
+ site_base_url: https://clearskies.info
@@ -0,0 +1,13 @@
1
+ # EditorConfig helps maintain consistent coding styles
2
+ root = true
3
+
4
+ [*]
5
+ charset = utf-8
6
+ end_of_line = lf
7
+ insert_final_newline = true
8
+ indent_style = space
9
+ indent_size = 4
10
+ trim_trailing_whitespace = true
11
+
12
+ [*.{yaml|yml}]
13
+ indent_size = 2
@@ -0,0 +1,139 @@
1
+ name: Bump Version and Create Release
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ bump_type:
7
+ description: 'The type of version bump'
8
+ required: true
9
+ type: choice
10
+ default: 'patch'
11
+ options:
12
+ - patch
13
+ - minor
14
+ - major
15
+ - stable # For going from pre-release to stable
16
+ - alpha
17
+ - beta
18
+ - rc # release candidate
19
+ - post # post-release
20
+ - dev # dev-release
21
+
22
+ jobs:
23
+ run-tests-and-wait:
24
+ uses: ./.github/workflows/run-tests.yml
25
+
26
+ bump-version:
27
+ name: Bump Version
28
+ runs-on: ubuntu-latest
29
+ needs: run-tests-and-wait
30
+ permissions:
31
+ contents: write
32
+ id-token: write
33
+
34
+ steps:
35
+ - name: Checkout code
36
+ uses: actions/checkout@v4
37
+ with:
38
+ fetch-depth: 0
39
+ token: ${{ secrets.GITHUB_TOKEN }}
40
+
41
+ - name: Install uv and set the python version
42
+ uses: astral-sh/setup-uv@v6
43
+ with:
44
+ python-version: '3.12'
45
+ enable-cache: true
46
+
47
+ - name: Install dependencies
48
+ run: uv sync --locked --all-extras --dev
49
+
50
+ - name: Configure Git author
51
+ run: |
52
+ git config user.name "github-actions[bot]"
53
+ git config user.email "github-actions[bot]@users.noreply.github.com"
54
+
55
+ - name: Bump version and get new tag
56
+ id: bump
57
+ run: |
58
+ uv version --bump ${{ inputs.bump_type }}
59
+ NEW_VERSION=$(grep '^version = ' pyproject.toml | cut -d '"' -f 2)
60
+ echo "tag=v$NEW_VERSION" >> $GITHUB_OUTPUT
61
+ uv lock
62
+
63
+ # STEP 1: Generate all changelog files using the --bump flag
64
+ - name: Update Main Changelog File
65
+ uses: orhun/git-cliff-action@v4
66
+ with:
67
+ config: cliff.toml
68
+ args: --tag ${{ steps.bump.outputs.tag }} --output CHANGELOG.md
69
+
70
+ - name: Extract Latest Changelog for Release Body
71
+ id: changelog
72
+ uses: orhun/git-cliff-action@v4
73
+ with:
74
+ config: cliff.toml
75
+ args: --unreleased --tag ${{ steps.bump.outputs.tag }} --strip all
76
+ env:
77
+ OUTPUT: LATEST_CHANGELOG.md
78
+
79
+ # STEP 2: Commit all file changes together
80
+ - name: Commit All Changes
81
+ run: |
82
+ git add pyproject.toml CHANGELOG.md
83
+ git commit -m "chore(release): bump version to ${{ steps.bump.outputs.tag }}"
84
+
85
+ # STEP 3: Create the tag for the final commit
86
+ - name: Create Git Tag
87
+ run: |
88
+ git tag -a "${{ steps.bump.outputs.tag }}" -m "Release ${{ steps.bump.outputs.tag }}"
89
+
90
+ # STEP 4: Push the commit and the tag
91
+ - name: Push All Changes
92
+ run: |
93
+ git push --follow-tags
94
+
95
+ - name: uv build
96
+ run: |
97
+ uv build
98
+
99
+ # STEP 5: Create the release
100
+ - name: Create Stable GitHub Release
101
+ if: "!(contains(inputs.bump_type, 'alpha') || contains(inputs.bump_type, 'beta') || contains(inputs.bump_type, 'rc'))"
102
+ env:
103
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
104
+ run: |
105
+ gh release create ${{ steps.bump.outputs.tag }} \
106
+ --title "Release ${{ steps.bump.outputs.tag }}" \
107
+ --notes-file ${{ steps.changelog.outputs.changelog }} \
108
+ dist/* # <-- This uploads the build files
109
+
110
+ - name: Create Pre-Release on GitHub
111
+ if: "contains(inputs.bump_type, 'alpha') || contains(inputs.bump_type, 'beta') || contains(inputs.bump_type, 'rc')"
112
+ env:
113
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
114
+ run: |
115
+ gh release create ${{ steps.bump.outputs.tag }} \
116
+ --title "Release ${{ steps.bump.outputs.tag }}" \
117
+ --notes-file ${{ steps.changelog.outputs.changelog }} \
118
+ --prerelease \
119
+ dist/* # <-- This uploads the build files
120
+
121
+ - name: Fetch pypi token from Akeyless
122
+ uses: LanceMcCarthy/akeyless-action@d42e07875b1cc7162afd290722babbaf879a86e6
123
+ id: fetch-secrets
124
+ with:
125
+ access-id: ${{ secrets.AKEYLESS_ACCESS_ID }}
126
+ static-secrets: '{"/pypi":"pypi"}'
127
+
128
+ - name: Publish to PyPi
129
+ run: |
130
+ uv publish --token ${{ steps.fetch-secrets.outputs.pypi }}
131
+
132
+ publish-docs:
133
+ name: Publish Doc Site to S3
134
+ needs: bump-version
135
+ permissions:
136
+ id-token: write
137
+ contents: read
138
+ secrets: inherit
139
+ uses: ./.github/workflows/docs.yaml
@@ -0,0 +1,51 @@
1
+ name: Doc Publish
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ workflow_call:
6
+
7
+ jobs:
8
+ publish:
9
+ if: github.ref == 'refs/heads/main'
10
+ name: Publish Doc Site to S3
11
+ runs-on: ubuntu-latest
12
+ permissions:
13
+ id-token: write
14
+ contents: read
15
+ steps:
16
+ - name: Checkout code
17
+ uses: actions/checkout@v4
18
+ with:
19
+ fetch-depth: 0
20
+ token: ${{ secrets.GITHUB_TOKEN }}
21
+ - name: Pull latest main
22
+ run: git pull origin main
23
+ - name: configure aws credentials
24
+ uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502
25
+ with:
26
+ role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
27
+ role-session-name: docs-deploy
28
+ aws-region: us-east-1
29
+ - name: Install uv and set the python version
30
+ uses: astral-sh/setup-uv@v6
31
+ with:
32
+ python-version: '3.12'
33
+ enable-cache: true
34
+ - name: Publish
35
+ run: |
36
+ cd docs/python
37
+ uv run build.py
38
+ sudo apt update
39
+ sudo apt-get install -y ruby ruby-dev jq
40
+ sudo gem install bundler
41
+ cd ../build
42
+ cp ../../README.md _includes/project_readme.md
43
+ cp ../../CHANGELOG.md _includes/project_changelog.md
44
+ sudo bundle install
45
+ sudo bundle exec jekyll build
46
+ cd _site
47
+ aws s3 sync --delete . s3://clearskies.info/modules/clear-skies-cortex/
48
+ cd ../../python
49
+ aws s3 cp s3://clearskies.info/modules/manifest.json . || touch manifest.json
50
+ uv run update_manifest.py --pyproject_file=../../pyproject.toml --modules_location=modules
51
+ aws s3 cp manifest.json s3://clearskies.info/modules/manifest.json
@@ -0,0 +1,90 @@
1
+ on:
2
+ workflow_call:
3
+
4
+ concurrency:
5
+ group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
6
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
7
+
8
+ defaults:
9
+ run:
10
+ shell: bash
11
+
12
+ jobs:
13
+ changes:
14
+ name: Detect changed files
15
+ runs-on: ubuntu-latest
16
+ outputs:
17
+ project: ${{ steps.changes.outputs.project }}
18
+ fixtures-pypi: ${{ steps.changes.outputs.fixtures-pypi }}
19
+ src: ${{ steps.changes.outputs.src }}
20
+ tests: ${{ steps.changes.outputs.tests }}
21
+ steps:
22
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
23
+ with:
24
+ persist-credentials: false
25
+
26
+ - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
27
+ id: changes
28
+ with:
29
+ filters: |
30
+ workflow: &workflow
31
+ - '.github/actions/**'
32
+ - '.github/workflows/tests.yaml'
33
+ - '.github/workflows/.tests-matrix.yaml'
34
+ project: &project
35
+ - *workflow
36
+ - 'uv.lock'
37
+ - 'pyproject.toml'
38
+ src:
39
+ - *project
40
+ - 'src/**/*.py'
41
+ tests:
42
+ - *project
43
+ - 'src/**/*.py'
44
+ - 'tests/**'
45
+
46
+ lockfile:
47
+ name: Check uv.lock
48
+ runs-on: ubuntu-latest
49
+ if: needs.changes.outputs.project == 'true'
50
+ needs: changes
51
+ steps:
52
+ - uses: actions/checkout@v4
53
+ - name: Install uv
54
+ uses: astral-sh/setup-uv@v6
55
+ - run: uv sync
56
+
57
+ tests-matrix:
58
+ # Use this matrix with multiple jobs defined in a reusable workflow:
59
+ uses: ./.github/workflows/tests-matrix.yaml
60
+ name: 'Python ${{ matrix.python-version }}'
61
+ if: '!failure()'
62
+ needs:
63
+ - changes
64
+ - lockfile
65
+ with:
66
+ runner: ubuntu-latest
67
+ python-version: ${{ matrix.python-version }}
68
+ run-mypy: ${{ needs.changes.outputs.tests == 'true' }}
69
+ run-pytest: ${{ needs.changes.outputs.tests == 'true' }}
70
+ run-black: ${{ needs.changes.outputs.tests == 'true' }}
71
+ run-ruff-check: ${{ needs.changes.outputs.tests == 'true' }}
72
+ secrets: inherit
73
+ strategy:
74
+ matrix:
75
+ python-version:
76
+ - '3.11'
77
+ - '3.12'
78
+ - '3.13'
79
+ fail-fast: false
80
+
81
+ status:
82
+ name: Status
83
+ runs-on: ubuntu-latest
84
+ if: always()
85
+ needs:
86
+ - changes
87
+ - lockfile
88
+ - tests-matrix
89
+ steps:
90
+ - run: ${{ (contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')) && 'false' || 'true' }}
@@ -0,0 +1,98 @@
1
+ # Reusable workflow consumed by tests.yaml; used to share a single matrix across jobs.
2
+ on:
3
+ workflow_call:
4
+ inputs:
5
+ runner:
6
+ required: true
7
+ type: string
8
+ python-version:
9
+ required: true
10
+ type: string
11
+ run-mypy:
12
+ required: true
13
+ type: boolean
14
+ run-pytest:
15
+ required: true
16
+ type: boolean
17
+ run-black:
18
+ required: true
19
+ type: boolean
20
+ run-ruff-check:
21
+ required: true
22
+ type: boolean
23
+
24
+ defaults:
25
+ run:
26
+ shell: bash
27
+
28
+ env:
29
+ PYTHONWARNDEFAULTENCODING: "true"
30
+
31
+ jobs:
32
+ mypy:
33
+ name: mypy
34
+ runs-on: ${{ inputs.runner }}
35
+ if: inputs.run-mypy
36
+ steps:
37
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
38
+ with:
39
+ persist-credentials: false
40
+
41
+ - name: Install uv and set the python version
42
+ uses: astral-sh/setup-uv@v6
43
+ with:
44
+ python-version: ${{ inputs.python-version }}
45
+ enable-cache: true
46
+ - name: Install dependencies
47
+ run: uv sync --locked --all-extras --dev
48
+ - run: uv run mypy src --check || true
49
+
50
+ pytest:
51
+ name: pytest
52
+ runs-on: ${{ inputs.runner }}
53
+ if: inputs.run-pytest
54
+ steps:
55
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
56
+ with:
57
+ persist-credentials: false
58
+
59
+ - name: Install uv and set the python version
60
+ uses: astral-sh/setup-uv@v6
61
+ with:
62
+ python-version: ${{ inputs.python-version }}
63
+ enable-cache: true
64
+ - name: Install dependencies
65
+ run: uv sync --locked --all-extras --dev
66
+ - run: uv run pytest -v
67
+ - run: git diff --exit-code --stat HEAD
68
+
69
+ black:
70
+ name: black
71
+ runs-on: ${{ inputs.runner }}
72
+ if: inputs.run-black
73
+ steps:
74
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
75
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
76
+ with:
77
+ persist-credentials: false
78
+
79
+ - name: Install uv and set the python version
80
+ uses: astral-sh/setup-uv@v6
81
+ with:
82
+ python-version: ${{ inputs.python-version }}
83
+ enable-cache: true
84
+ - name: Install dependencies
85
+ run: uv sync --locked --all-extras --dev
86
+ - uses: psf/black@stable
87
+ with:
88
+ options: "--check --verbose"
89
+ src: "./src"
90
+
91
+ ruff-check:
92
+ name: ruff-check
93
+ runs-on: ${{ inputs.runner }}
94
+ if: inputs.run-ruff-check
95
+ steps:
96
+ - uses: astral-sh/ruff-action@v3
97
+ with:
98
+ args: "check --diff"
@@ -0,0 +1,15 @@
1
+ name: Tests
2
+
3
+ on:
4
+ pull_request:
5
+ merge_group:
6
+
7
+ defaults:
8
+ run:
9
+ shell: bash
10
+
11
+ permissions: {}
12
+
13
+ jobs:
14
+ run-tests-and-wait:
15
+ uses: ./.github/workflows/run-tests.yml # <-- This calls the other file
@@ -0,0 +1,201 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[codz]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py.cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+ cover/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
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
+ .pybuilder/
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ # For a library or package, you might want to ignore these files since the code is
87
+ # intended to run in multiple environments; otherwise, check them in:
88
+ # .python-version
89
+
90
+ # UV
91
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
92
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
93
+ # commonly ignored for libraries.
94
+ #uv.lock
95
+ .venv/
96
+
97
+ # poetry
98
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
99
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
100
+ # commonly ignored for libraries.
101
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
102
+ poetry.lock
103
+ poetry.toml
104
+
105
+ # pdm
106
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
107
+ # pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
108
+ # https://pdm-project.org/en/latest/usage/project/#working-with-version-control
109
+ #pdm.lock
110
+ #pdm.toml
111
+ .pdm-python
112
+ .pdm-build/
113
+
114
+ # pixi
115
+ # Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
116
+ #pixi.lock
117
+ # Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
118
+ # in the .venv directory. It is recommended not to include this directory in version control.
119
+ .pixi
120
+
121
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
122
+ __pypackages__/
123
+
124
+ # Celery stuff
125
+ celerybeat-schedule
126
+ celerybeat.pid
127
+
128
+ # SageMath parsed files
129
+ *.sage.py
130
+
131
+ # Environments
132
+ .env
133
+ .envrc
134
+ .venv
135
+ env/
136
+ venv/
137
+ ENV/
138
+ env.bak/
139
+ venv.bak/
140
+
141
+ # Spyder project settings
142
+ .spyderproject
143
+ .spyproject
144
+
145
+ # Rope project settings
146
+ .ropeproject
147
+
148
+ # mkdocs documentation
149
+ /site
150
+
151
+ # mypy
152
+ .mypy_cache/
153
+ .dmypy.json
154
+ dmypy.json
155
+
156
+ # Pyre type checker
157
+ .pyre/
158
+
159
+ # pytype static type analyzer
160
+ .pytype/
161
+
162
+ # Cython debug symbols
163
+ cython_debug/
164
+
165
+ # PyCharm
166
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
167
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
168
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
169
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
170
+ #.idea/
171
+
172
+ # Abstra
173
+ # Abstra is an AI-powered process automation framework.
174
+ # Ignore directories containing user credentials, local state, and settings.
175
+ # Learn more at https://abstra.io/docs
176
+ .abstra/
177
+
178
+ # Visual Studio Code
179
+ # Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
180
+ # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
181
+ # and can be added to the global gitignore or merged into this file. However, if you prefer,
182
+ # you could uncomment the following to ignore the entire vscode folder
183
+ # .vscode/
184
+
185
+ # Ruff stuff:
186
+ .ruff_cache/
187
+
188
+ # PyPI configuration file
189
+ .pypirc
190
+
191
+ # Cursor
192
+ # Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to
193
+ # exclude from AI features like autocomplete and code analysis. Recommended for sensitive data
194
+ # refer to https://docs.cursor.com/context/ignore-files
195
+ .cursorignore
196
+ .cursorindexingignore
197
+
198
+ # Marimo
199
+ marimo/_static/
200
+ marimo/_lsp/
201
+ __marimo__/
@@ -0,0 +1,82 @@
1
+ # Pre-commit configuration for Akeyless Custom Producer
2
+
3
+ ci:
4
+ autofix_commit_msg: "chore(pre-commit): autofix run"
5
+ autoupdate_commit_msg: "chore(pre-commit): autoupdate hooks"
6
+
7
+ default_install_hook_types:
8
+ - pre-commit
9
+ - commit-msg
10
+ - post-checkout
11
+ - post-merge
12
+ - post-rewrite
13
+
14
+ default_stages: ["pre-commit"]
15
+
16
+ repos:
17
+ - repo: https://github.com/pre-commit/pre-commit-hooks
18
+ rev: v4.6.0
19
+ hooks:
20
+ - id: trailing-whitespace
21
+ - id: end-of-file-fixer
22
+ - id: check-yaml
23
+ - id: check-added-large-files
24
+ - id: mixed-line-ending
25
+ - id: check-merge-conflict
26
+ args: [--assume-in-merge]
27
+
28
+ - repo: https://github.com/compilerla/conventional-pre-commit
29
+ rev: v3.2.0
30
+ hooks:
31
+ - id: conventional-pre-commit
32
+ stages: [commit-msg]
33
+ args: []
34
+
35
+ - repo: https://github.com/astral-sh/uv-pre-commit
36
+ # uv version.
37
+ rev: 0.8.13
38
+ hooks:
39
+ - id: uv-lock
40
+
41
+ - repo: https://github.com/psf/black
42
+ rev: 25.1.0
43
+ hooks:
44
+ - id: black
45
+ files: \.py$
46
+
47
+ - repo: https://github.com/astral-sh/ruff-pre-commit
48
+ rev: v0.12.1
49
+ hooks:
50
+ - id: ruff-check
51
+ args: [--fix]
52
+ - id: ruff-format
53
+
54
+ - repo: https://github.com/pre-commit/mirrors-mypy
55
+ rev: v1.16.1
56
+ hooks:
57
+ - id: mypy
58
+ additional_dependencies: [types-requests, clear-skies]
59
+ files: \.py$
60
+
61
+ - repo: https://github.com/adrienverge/yamllint
62
+ rev: v1.35.1
63
+ hooks:
64
+ - id: yamllint
65
+ args: [-d, relaxed]
66
+
67
+ - repo: local
68
+ hooks:
69
+ - id: pytest
70
+ name: pytest
71
+ entry: uv run pytest .
72
+ language: system
73
+ types: [python]
74
+ pass_filenames: false
75
+ # Prevent committing .rej files
76
+ - id: forbidden-files
77
+ name: forbidden files
78
+ entry:
79
+ found Copier update rejection files; review and remove them before
80
+ merging.
81
+ language: fail
82
+ files: "\\.rej$"
@@ -0,0 +1 @@
1
+ 3.12