instructlab-training 0.0.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 (47) hide show
  1. instructlab_training-0.0.2/.github/dependabot.yml +21 -0
  2. instructlab_training-0.0.2/.github/workflows/actionlint.dockerfile +3 -0
  3. instructlab_training-0.0.2/.github/workflows/actionlint.yml +48 -0
  4. instructlab_training-0.0.2/.github/workflows/docs.yml +46 -0
  5. instructlab_training-0.0.2/.github/workflows/lint.yml +76 -0
  6. instructlab_training-0.0.2/.github/workflows/matchers/actionlint.json +17 -0
  7. instructlab_training-0.0.2/.github/workflows/matchers/pylint.json +32 -0
  8. instructlab_training-0.0.2/.github/workflows/pypi.yaml +131 -0
  9. instructlab_training-0.0.2/.github/workflows/spellcheck.yml +45 -0
  10. instructlab_training-0.0.2/.gitignore +173 -0
  11. instructlab_training-0.0.2/.isort.cfg +10 -0
  12. instructlab_training-0.0.2/.markdownlint-cli2.yaml +16 -0
  13. instructlab_training-0.0.2/.pre-commit-config.yaml +16 -0
  14. instructlab_training-0.0.2/.pylintrc +675 -0
  15. instructlab_training-0.0.2/.spellcheck-en-custom.txt +20 -0
  16. instructlab_training-0.0.2/.spellcheck.yml +28 -0
  17. instructlab_training-0.0.2/LICENSE +201 -0
  18. instructlab_training-0.0.2/Makefile +56 -0
  19. instructlab_training-0.0.2/PKG-INFO +280 -0
  20. instructlab_training-0.0.2/README.md +238 -0
  21. instructlab_training-0.0.2/pyproject.toml +104 -0
  22. instructlab_training-0.0.2/requirements-cuda.txt +1 -0
  23. instructlab_training-0.0.2/requirements-dev.txt +8 -0
  24. instructlab_training-0.0.2/requirements.txt +19 -0
  25. instructlab_training-0.0.2/sample-data/train_all_pruned_SDG.jsonl +24545 -0
  26. instructlab_training-0.0.2/scripts/ruff.sh +54 -0
  27. instructlab_training-0.0.2/setup.cfg +4 -0
  28. instructlab_training-0.0.2/src/instructlab/__init__.py +1 -0
  29. instructlab_training-0.0.2/src/instructlab/training/__init__.py +11 -0
  30. instructlab_training-0.0.2/src/instructlab/training/_version.py +16 -0
  31. instructlab_training-0.0.2/src/instructlab/training/async_logger.py +54 -0
  32. instructlab_training-0.0.2/src/instructlab/training/chat_templates/ibm_generic_tmpl.py +24 -0
  33. instructlab_training-0.0.2/src/instructlab/training/chat_templates/mistral_tmpl.py +22 -0
  34. instructlab_training-0.0.2/src/instructlab/training/config.py +142 -0
  35. instructlab_training-0.0.2/src/instructlab/training/data_process.py +326 -0
  36. instructlab_training-0.0.2/src/instructlab/training/ilab_to_sdg.py +59 -0
  37. instructlab_training-0.0.2/src/instructlab/training/main_ds.py +722 -0
  38. instructlab_training-0.0.2/src/instructlab/training/multipack_sampler.py +478 -0
  39. instructlab_training-0.0.2/src/instructlab/training/token_dataset.py +112 -0
  40. instructlab_training-0.0.2/src/instructlab/training/tokenizer_utils.py +57 -0
  41. instructlab_training-0.0.2/src/instructlab/training/utils.py +683 -0
  42. instructlab_training-0.0.2/src/instructlab_training.egg-info/PKG-INFO +280 -0
  43. instructlab_training-0.0.2/src/instructlab_training.egg-info/SOURCES.txt +45 -0
  44. instructlab_training-0.0.2/src/instructlab_training.egg-info/dependency_links.txt +1 -0
  45. instructlab_training-0.0.2/src/instructlab_training.egg-info/requires.txt +18 -0
  46. instructlab_training-0.0.2/src/instructlab_training.egg-info/top_level.txt +1 -0
  47. instructlab_training-0.0.2/tox.ini +63 -0
@@ -0,0 +1,21 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+
3
+ # GitHub Dependabot configuration file
4
+ version: 2
5
+ updates:
6
+
7
+ # Maintain dependencies for GitHub Actions
8
+ - package-ecosystem: "github-actions"
9
+ directory: "/"
10
+ schedule:
11
+ interval: "daily"
12
+ - package-ecosystem: "docker"
13
+ directory: "/.github/workflows"
14
+ schedule:
15
+ interval: "daily"
16
+
17
+ # Maintain dependencies for Python scripts
18
+ - package-ecosystem: "pip"
19
+ directory: "/"
20
+ schedule:
21
+ interval: "daily"
@@ -0,0 +1,3 @@
1
+ # Since dependabot cannot update workflows using docker,
2
+ # we use this indirection since dependabot can update this file.
3
+ FROM rhysd/actionlint:1.7.1@sha256:435ecdb63b1169e80ca3e136290072548c07fc4d76a044cf5541021712f8f344
@@ -0,0 +1,48 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+
3
+ name: Lint GitHub Actions workflows
4
+ on:
5
+ push:
6
+ branches:
7
+ - "main"
8
+ paths:
9
+ - '.github/workflows/*.ya?ml'
10
+ - '.github/workflows/actionlint.*' # This workflow
11
+ pull_request:
12
+ branches:
13
+ - "main"
14
+ paths:
15
+ - '.github/workflows/*.ya?ml'
16
+ - '.github/workflows/actionlint.*' # This workflow
17
+
18
+ env:
19
+ LC_ALL: en_US.UTF-8
20
+
21
+ defaults:
22
+ run:
23
+ shell: bash
24
+
25
+ permissions:
26
+ contents: read
27
+
28
+ jobs:
29
+ actionlint:
30
+ runs-on: ubuntu-latest
31
+ steps:
32
+ - name: "Harden Runner"
33
+ uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
34
+ with:
35
+ egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
36
+
37
+ - name: "Checkout"
38
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
39
+ with:
40
+ fetch-depth: 0
41
+
42
+ - name: "Download actionlint"
43
+ run: |
44
+ docker build --tag actionlint - < .github/workflows/actionlint.dockerfile
45
+ - name: "Check workflow files"
46
+ run: |
47
+ echo "::add-matcher::.github/workflows/matchers/actionlint.json"
48
+ docker run --volume="${PWD}:/repo" --workdir=/repo actionlint -color
@@ -0,0 +1,46 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+
3
+ name: Lint Markdown documents
4
+
5
+ on:
6
+ push:
7
+ branches:
8
+ - "main"
9
+ paths:
10
+ - '**/*.md'
11
+ - '.markdownlint-cli2.yaml'
12
+ - '.github/workflows/docs.yml' # This workflow
13
+ pull_request:
14
+ branches:
15
+ - "main"
16
+ paths:
17
+ - '**/*.md'
18
+ - '.markdownlint-cli2.yaml'
19
+ - '.github/workflows/docs.yml' # This workflow
20
+
21
+ env:
22
+ LC_ALL: en_US.UTF-8
23
+
24
+ defaults:
25
+ run:
26
+ shell: bash
27
+
28
+ permissions:
29
+ contents: read
30
+
31
+ jobs:
32
+ markdown-lint:
33
+ runs-on: ubuntu-latest
34
+ steps:
35
+ - name: "Harden Runner"
36
+ uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
37
+ with:
38
+ egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
39
+ - name: "Checkout"
40
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
41
+ with:
42
+ fetch-depth: 0
43
+ - name: "Check Markdown documents"
44
+ uses: DavidAnson/markdownlint-cli2-action@b4c9feab76d8025d1e83c653fa3990936df0e6c8 # v16.0.0
45
+ with:
46
+ globs: '**/*.md'
@@ -0,0 +1,76 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+
3
+ name: Lint, Format, and MyPy
4
+
5
+ on:
6
+ push:
7
+ branches:
8
+ - "main"
9
+ - "release-**"
10
+ paths:
11
+ - '**.py'
12
+ - 'pyproject.toml'
13
+ - 'requirements*.txt'
14
+ - 'tox.ini'
15
+ - 'scripts/*.sh'
16
+ - '.github/**'
17
+ pull_request:
18
+ branches:
19
+ - "main"
20
+ - "release-**"
21
+ paths:
22
+ - '**.py'
23
+ - 'pyproject.toml'
24
+ - 'requirements*.txt'
25
+ - 'tox.ini'
26
+ - 'scripts/*.sh'
27
+ - '.github/**'
28
+
29
+ env:
30
+ PYTHON_VERSION: 3.11
31
+
32
+ jobs:
33
+ lint:
34
+ runs-on: ubuntu-latest
35
+ steps:
36
+ - name: "Harden Runner"
37
+ uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
38
+ with:
39
+ egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
40
+
41
+ - name: "Checkout"
42
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
43
+ with:
44
+ # https://github.com/actions/checkout/issues/249
45
+ fetch-depth: 0
46
+ submodules: true
47
+
48
+ - name: Setup Python 3.11
49
+ uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
50
+ with:
51
+ python-version: 3.11
52
+ cache: pip
53
+ cache-dependency-path: |
54
+ **/pyproject.toml
55
+ **/requirements*.txt
56
+
57
+ - name: Install dependencies
58
+ id: deps
59
+ run: |
60
+ python -m pip install --upgrade pip
61
+ python -m pip install tox
62
+
63
+ - name: Run Ruff check
64
+ run: |
65
+ tox -e ruff -- check
66
+
67
+ - name: Run linting
68
+ if: ${{ !cancelled() && (steps.deps.outcome == 'success') }}
69
+ run: |
70
+ echo "::add-matcher::.github/workflows/matchers/pylint.json"
71
+ tox -e lint
72
+
73
+ - name: Run mypy type checks
74
+ if: ${{ !cancelled() && (steps.deps.outcome == 'success') }}
75
+ run: |
76
+ tox -e mypy
@@ -0,0 +1,17 @@
1
+ {
2
+ "problemMatcher": [
3
+ {
4
+ "owner": "actionlint",
5
+ "pattern": [
6
+ {
7
+ "regexp": "^(?:\\x1b\\[\\d+m)?(.+?)(?:\\x1b\\[\\d+m)*:(?:\\x1b\\[\\d+m)*(\\d+)(?:\\x1b\\[\\d+m)*:(?:\\x1b\\[\\d+m)*(\\d+)(?:\\x1b\\[\\d+m)*: (?:\\x1b\\[\\d+m)*(.+?)(?:\\x1b\\[\\d+m)* \\[(.+?)\\]$",
8
+ "file": 1,
9
+ "line": 2,
10
+ "column": 3,
11
+ "message": 4,
12
+ "code": 5
13
+ }
14
+ ]
15
+ }
16
+ ]
17
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "problemMatcher": [
3
+ {
4
+ "owner": "pylint-error",
5
+ "severity": "error",
6
+ "pattern": [
7
+ {
8
+ "regexp": "^(.+):(\\d+):(\\d+):\\s(([EF]\\d{4}):\\s.+)$",
9
+ "file": 1,
10
+ "line": 2,
11
+ "column": 3,
12
+ "message": 4,
13
+ "code": 5
14
+ }
15
+ ]
16
+ },
17
+ {
18
+ "owner": "pylint-warning",
19
+ "severity": "warning",
20
+ "pattern": [
21
+ {
22
+ "regexp": "^(.+):(\\d+):(\\d+):\\s(([CRW]\\d{4}):\\s.+)$",
23
+ "file": 1,
24
+ "line": 2,
25
+ "column": 3,
26
+ "message": 4,
27
+ "code": 5
28
+ }
29
+ ]
30
+ }
31
+ ]
32
+ }
@@ -0,0 +1,131 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+
3
+ name: Build, test, and upload PyPI package
4
+
5
+ on:
6
+ push:
7
+ branches:
8
+ - "main"
9
+ - "release-**"
10
+ tags:
11
+ - "v*"
12
+ pull_request:
13
+ branches:
14
+ - "main"
15
+ - "release-**"
16
+ release:
17
+ types:
18
+ - published
19
+
20
+ env:
21
+ LC_ALL: en_US.UTF-8
22
+
23
+ defaults:
24
+ run:
25
+ shell: bash
26
+
27
+ permissions:
28
+ contents: read
29
+
30
+ jobs:
31
+ # Create and verify release artifacts
32
+ # - build source dist (tar ball) and wheel
33
+ # - validate artifacts with various tools
34
+ # - upload artifacts to GHA
35
+ build-package:
36
+ name: Build and check packages
37
+ runs-on: ubuntu-latest
38
+ steps:
39
+ - name: "Harden Runner"
40
+ uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
41
+ with:
42
+ egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
43
+
44
+ - name: "Checkout"
45
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
46
+ with:
47
+ # for setuptools-scm
48
+ fetch-depth: 0
49
+
50
+ - name: "Build and Inspect"
51
+ uses: hynek/build-and-inspect-python-package@b4fc3f6ba2b3da04f09659be99e2a29fb6146a61 # v2.6.0
52
+
53
+ # push to Test PyPI on
54
+ # - a new GitHub release is published
55
+ # - a PR is merged into main branch
56
+ publish-test-pypi:
57
+ name: Publish packages to test.pypi.org
58
+ # environment: publish-test-pypi
59
+ if: ${{ (github.repository_owner == 'instructlab') && ((github.event.action == 'published') || ((github.event_name == 'push') && (github.ref == 'refs/heads/main'))) }}
60
+ permissions:
61
+ contents: read
62
+ # see https://docs.pypi.org/trusted-publishers/
63
+ id-token: write
64
+ runs-on: ubuntu-latest
65
+ needs: build-package
66
+
67
+ steps:
68
+ - name: "Harden Runner"
69
+ uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
70
+ with:
71
+ egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
72
+
73
+ - name: "Download build artifacts"
74
+ uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
75
+ with:
76
+ name: Packages
77
+ path: dist
78
+
79
+ - name: "Upload to Test PyPI"
80
+ uses: pypa/gh-action-pypi-publish@ec4db0b4ddc65acdf4bff5fa45ac92d78b56bdf0 # v1.9.0
81
+ with:
82
+ repository-url: https://test.pypi.org/legacy/
83
+
84
+ # push to Production PyPI on
85
+ # - a new GitHub release is published
86
+ publish-pypi:
87
+ name: Publish release to pypi.org
88
+ # environment: publish-pypi
89
+ if: ${{ (github.repository_owner == 'instructlab') && (github.event.action == 'published') }}
90
+ permissions:
91
+ # see https://docs.pypi.org/trusted-publishers/
92
+ id-token: write
93
+ # allow gh release upload
94
+ contents: write
95
+
96
+ runs-on: ubuntu-latest
97
+ needs: build-package
98
+
99
+ steps:
100
+ - name: "Harden Runner"
101
+ uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
102
+ with:
103
+ egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
104
+
105
+ - name: "Download build artifacts"
106
+ uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
107
+ with:
108
+ name: Packages
109
+ path: dist
110
+
111
+ - name: "Sigstore sign package"
112
+ uses: sigstore/gh-action-sigstore-python@61f6a500bbfdd9a2a339cf033e5421951fbc1cd2 # v2.1.1
113
+ with:
114
+ inputs: |
115
+ ./dist/*.tar.gz
116
+ ./dist/*.whl
117
+
118
+ - name: "Upload artifacts and signatures to GitHub release"
119
+ run: |
120
+ gh release upload '${{ github.ref_name }}' dist/* --repo '${{ github.repository }}'
121
+ env:
122
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
123
+
124
+ # PyPI does not accept .sigstore artifacts and
125
+ # gh-action-pypi-publish has no option to ignore them.
126
+ - name: "Remove sigstore signatures before uploading to PyPI"
127
+ run: |
128
+ rm ./dist/*.sigstore
129
+
130
+ - name: "Upload to PyPI"
131
+ uses: pypa/gh-action-pypi-publish@ec4db0b4ddc65acdf4bff5fa45ac92d78b56bdf0 # v1.9.0
@@ -0,0 +1,45 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+
3
+ name: Spellcheck
4
+
5
+ on:
6
+ push:
7
+ branches:
8
+ - "main"
9
+ paths:
10
+ - '**.md'
11
+ - '.github/workflows/spellcheck.yml' # This workflow
12
+ pull_request:
13
+ branches:
14
+ - "main"
15
+ paths:
16
+ - '**.md'
17
+ - '.github/workflows/spellcheck.yml' # This workflow
18
+
19
+ env:
20
+ LC_ALL: en_US.UTF-8
21
+
22
+ defaults:
23
+ run:
24
+ shell: bash
25
+
26
+ permissions:
27
+ contents: read
28
+
29
+ jobs:
30
+ spellcheck:
31
+ name: Spellcheck (en_US)
32
+ runs-on: ubuntu-latest
33
+ steps:
34
+ - name: "Harden Runner"
35
+ uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
36
+ with:
37
+ egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
38
+
39
+ - name: "Checkout"
40
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
41
+ with:
42
+ fetch-depth: 0
43
+
44
+ - name: Spellcheck
45
+ uses: rojopolis/spellcheck-github-actions@d354a4dc525c8067555c7481b60416cedb0060ff # v0.38.0
@@ -0,0 +1,173 @@
1
+ # Attribution:
2
+ # .gitignore file sourced from a repository licensed under CC0-1.0
3
+ # Original source: https://github.com/github/gitignore/blob/main/Python.gitignore
4
+
5
+ # add sample data
6
+ sample-data
7
+
8
+ # Byte-compiled / optimized / DLL files
9
+ __pycache__/
10
+ *.py[cod]
11
+ *$py.class
12
+
13
+ # C extensions
14
+ *.so
15
+
16
+ # Distribution / packaging
17
+ .Python
18
+ build/
19
+ develop-eggs/
20
+ dist/
21
+ downloads/
22
+ eggs/
23
+ .eggs/
24
+ lib/
25
+ lib64/
26
+ parts/
27
+ sdist/
28
+ var/
29
+ wheels/
30
+ share/python-wheels/
31
+ *.egg-info/
32
+ .installed.cfg
33
+ *.egg
34
+ MANIFEST
35
+ src/instructlab/training/_version.py
36
+
37
+ # PyInstaller
38
+ # Usually these files are written by a python script from a template
39
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
40
+ *.manifest
41
+ *.spec
42
+
43
+ # Installer logs
44
+ pip-log.txt
45
+ pip-delete-this-directory.txt
46
+
47
+ # Unit test / coverage reports
48
+ htmlcov/
49
+ .tox/
50
+ .nox/
51
+ .coverage
52
+ .coverage.*
53
+ .cache
54
+ nosetests.xml
55
+ coverage.xml
56
+ *.cover
57
+ *.py,cover
58
+ .hypothesis/
59
+ .pytest_cache/
60
+ cover/
61
+
62
+ # Translations
63
+ *.mo
64
+ *.pot
65
+
66
+ # Django stuff:
67
+ *.log
68
+ local_settings.py
69
+ db.sqlite3
70
+ db.sqlite3-journal
71
+
72
+ # Flask stuff:
73
+ instance/
74
+ .webassets-cache
75
+
76
+ # Scrapy stuff:
77
+ .scrapy
78
+
79
+ # Sphinx documentation
80
+ docs/_build/
81
+
82
+ # PyBuilder
83
+ .pybuilder/
84
+ target/
85
+
86
+ # Jupyter Notebook
87
+ .ipynb_checkpoints
88
+
89
+ # IPython
90
+ profile_default/
91
+ ipython_config.py
92
+
93
+ # pyenv
94
+ # For a library or package, you might want to ignore these files since the code is
95
+ # intended to run in multiple environments; otherwise, check them in:
96
+ # .python-version
97
+
98
+ # pipenv
99
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
100
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
101
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
102
+ # install all needed dependencies.
103
+ #Pipfile.lock
104
+
105
+ # poetry
106
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
107
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
108
+ # commonly ignored for libraries.
109
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
110
+ #poetry.lock
111
+
112
+ # pdm
113
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
114
+ #pdm.lock
115
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
116
+ # in version control.
117
+ # https://pdm.fming.dev/latest/usage/project/#working-with-version-control
118
+ .pdm.toml
119
+ .pdm-python
120
+ .pdm-build/
121
+
122
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
123
+ __pypackages__/
124
+
125
+ # Celery stuff
126
+ celerybeat-schedule
127
+ celerybeat.pid
128
+
129
+ # SageMath parsed files
130
+ *.sage.py
131
+
132
+ # Environments
133
+ .env
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
+ # spellcheck
173
+ dictionary.dic
@@ -0,0 +1,10 @@
1
+ [settings]
2
+ profile=black
3
+ from_first=true
4
+ import_heading_future=Future
5
+ import_heading_stdlib=Standard
6
+ import_heading_thirdparty=Third Party
7
+ import_heading_firstparty=First Party
8
+ import_heading_localfolder=Local
9
+ known_firstparty=
10
+ known_localfolder=tuning
@@ -0,0 +1,16 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+
3
+ config:
4
+ line-length: false
5
+ no-emphasis-as-header: false
6
+ first-line-heading: false
7
+ code-block-style: false
8
+ no-duplicate-header: false
9
+ single-trailing-newline: false
10
+ globs:
11
+ - "**/*.md"
12
+ ignores:
13
+ - ".github/**"
14
+ - "venv/**"
15
+ - ".venv/**"
16
+ - ".tox/**"
@@ -0,0 +1,16 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+
3
+ repos:
4
+ - repo: https://github.com/PyCQA/isort
5
+ rev: 5.11.5
6
+ hooks:
7
+ - id: isort
8
+ exclude: imports
9
+ - repo: https://github.com/astral-sh/ruff-pre-commit
10
+ # Ruff version.
11
+ rev: v0.3.4
12
+ hooks:
13
+ # Run the linter (most fixers are disabled for now).
14
+ - id: ruff
15
+ # Run the formatter.
16
+ - id: ruff-format