dcat-ap-plus 0.1.0rc1__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 (112) hide show
  1. dcat_ap_plus-0.1.0rc1/.copier-answers.yml +23 -0
  2. dcat_ap_plus-0.1.0rc1/.editorconfig +18 -0
  3. dcat_ap_plus-0.1.0rc1/.github/dependabot.yml +9 -0
  4. dcat_ap_plus-0.1.0rc1/.github/workflows/deploy-docs.yaml +62 -0
  5. dcat_ap_plus-0.1.0rc1/.github/workflows/main.yaml +55 -0
  6. dcat_ap_plus-0.1.0rc1/.github/workflows/pypi-publish.yaml +100 -0
  7. dcat_ap_plus-0.1.0rc1/.github/workflows/test_pages_build.yaml +60 -0
  8. dcat_ap_plus-0.1.0rc1/.gitignore +144 -0
  9. dcat_ap_plus-0.1.0rc1/.pre-commit-config.yaml +45 -0
  10. dcat_ap_plus-0.1.0rc1/.yamllint.yaml +12 -0
  11. dcat_ap_plus-0.1.0rc1/CODE_OF_CONDUCT.md +76 -0
  12. dcat_ap_plus-0.1.0rc1/CONTRIBUTING.md +121 -0
  13. dcat_ap_plus-0.1.0rc1/LICENSE +21 -0
  14. dcat_ap_plus-0.1.0rc1/PKG-INFO +56 -0
  15. dcat_ap_plus-0.1.0rc1/README.md +33 -0
  16. dcat_ap_plus-0.1.0rc1/README_pypkg.md +45 -0
  17. dcat_ap_plus-0.1.0rc1/config.public.mk +39 -0
  18. dcat_ap_plus-0.1.0rc1/config.yaml +63 -0
  19. dcat_ap_plus-0.1.0rc1/docs/about.md +10 -0
  20. dcat_ap_plus-0.1.0rc1/docs/elements/.gitkeep +0 -0
  21. dcat_ap_plus-0.1.0rc1/docs/index.md +12 -0
  22. dcat_ap_plus-0.1.0rc1/docs/schema/dcat_ap_plus.yaml +498 -0
  23. dcat_ap_plus-0.1.0rc1/docs/templates-linkml/README.md +7 -0
  24. dcat_ap_plus-0.1.0rc1/examples/README.md +9 -0
  25. dcat_ap_plus-0.1.0rc1/justfile +249 -0
  26. dcat_ap_plus-0.1.0rc1/mkdocs.yml +43 -0
  27. dcat_ap_plus-0.1.0rc1/project/README.md +6 -0
  28. dcat_ap_plus-0.1.0rc1/project/excel/dcat_ap_plus.xlsx +0 -0
  29. dcat_ap_plus-0.1.0rc1/project/graphql/dcat_ap_plus.graphql +610 -0
  30. dcat_ap_plus-0.1.0rc1/project/java/Activity.java +33 -0
  31. dcat_ap_plus-0.1.0rc1/project/java/Agent.java +21 -0
  32. dcat_ap_plus-0.1.0rc1/project/java/AgenticEntity.java +29 -0
  33. dcat_ap_plus-0.1.0rc1/project/java/AnalysisDataset.java +19 -0
  34. dcat_ap_plus-0.1.0rc1/project/java/AnalysisSourceData.java +19 -0
  35. dcat_ap_plus-0.1.0rc1/project/java/Any.java +21 -0
  36. dcat_ap_plus-0.1.0rc1/project/java/Attribution.java +19 -0
  37. dcat_ap_plus-0.1.0rc1/project/java/Catalogue.java +38 -0
  38. dcat_ap_plus-0.1.0rc1/project/java/CatalogueRecord.java +28 -0
  39. dcat_ap_plus-0.1.0rc1/project/java/Checksum.java +21 -0
  40. dcat_ap_plus-0.1.0rc1/project/java/ChecksumAlgorithm.java +19 -0
  41. dcat_ap_plus-0.1.0rc1/project/java/ClassifierMixin.java +21 -0
  42. dcat_ap_plus-0.1.0rc1/project/java/Concept.java +20 -0
  43. dcat_ap_plus-0.1.0rc1/project/java/ConceptScheme.java +19 -0
  44. dcat_ap_plus-0.1.0rc1/project/java/DataAnalysis.java +19 -0
  45. dcat_ap_plus-0.1.0rc1/project/java/DataGeneratingActivity.java +23 -0
  46. dcat_ap_plus-0.1.0rc1/project/java/DataService.java +35 -0
  47. dcat_ap_plus-0.1.0rc1/project/java/Dataset.java +58 -0
  48. dcat_ap_plus-0.1.0rc1/project/java/DatasetSeries.java +29 -0
  49. dcat_ap_plus-0.1.0rc1/project/java/DefinedTerm.java +22 -0
  50. dcat_ap_plus-0.1.0rc1/project/java/Device.java +19 -0
  51. dcat_ap_plus-0.1.0rc1/project/java/Distribution.java +43 -0
  52. dcat_ap_plus-0.1.0rc1/project/java/Document.java +20 -0
  53. dcat_ap_plus-0.1.0rc1/project/java/Entity.java +29 -0
  54. dcat_ap_plus-0.1.0rc1/project/java/EvaluatedActivity.java +19 -0
  55. dcat_ap_plus-0.1.0rc1/project/java/EvaluatedEntity.java +20 -0
  56. dcat_ap_plus-0.1.0rc1/project/java/Frequency.java +19 -0
  57. dcat_ap_plus-0.1.0rc1/project/java/Geometry.java +19 -0
  58. dcat_ap_plus-0.1.0rc1/project/java/Identifier.java +20 -0
  59. dcat_ap_plus-0.1.0rc1/project/java/Kind.java +19 -0
  60. dcat_ap_plus-0.1.0rc1/project/java/LegalResource.java +20 -0
  61. dcat_ap_plus-0.1.0rc1/project/java/LicenseDocument.java +21 -0
  62. dcat_ap_plus-0.1.0rc1/project/java/LinguisticSystem.java +19 -0
  63. dcat_ap_plus-0.1.0rc1/project/java/Location.java +22 -0
  64. dcat_ap_plus-0.1.0rc1/project/java/MediaType.java +19 -0
  65. dcat_ap_plus-0.1.0rc1/project/java/MediaTypeOrExtent.java +19 -0
  66. dcat_ap_plus-0.1.0rc1/project/java/PeriodOfTime.java +23 -0
  67. dcat_ap_plus-0.1.0rc1/project/java/Plan.java +23 -0
  68. dcat_ap_plus-0.1.0rc1/project/java/Policy.java +19 -0
  69. dcat_ap_plus-0.1.0rc1/project/java/ProvenanceStatement.java +19 -0
  70. dcat_ap_plus-0.1.0rc1/project/java/QualitativeAttribute.java +24 -0
  71. dcat_ap_plus-0.1.0rc1/project/java/QuantitativeAttribute.java +26 -0
  72. dcat_ap_plus-0.1.0rc1/project/java/Relationship.java +21 -0
  73. dcat_ap_plus-0.1.0rc1/project/java/Resource.java +20 -0
  74. dcat_ap_plus-0.1.0rc1/project/java/RightsStatement.java +19 -0
  75. dcat_ap_plus-0.1.0rc1/project/java/Role.java +19 -0
  76. dcat_ap_plus-0.1.0rc1/project/java/Software.java +19 -0
  77. dcat_ap_plus-0.1.0rc1/project/java/Standard.java +19 -0
  78. dcat_ap_plus-0.1.0rc1/project/java/SupportiveEntity.java +21 -0
  79. dcat_ap_plus-0.1.0rc1/project/java/Surrounding.java +23 -0
  80. dcat_ap_plus-0.1.0rc1/project/java/TimeInstant.java +19 -0
  81. dcat_ap_plus-0.1.0rc1/project/jsonld/dcat_ap_plus.context.jsonld +527 -0
  82. dcat_ap_plus-0.1.0rc1/project/jsonld/dcat_ap_plus.jsonld +7808 -0
  83. dcat_ap_plus-0.1.0rc1/project/jsonschema/dcat_ap_plus.schema.json +3890 -0
  84. dcat_ap_plus-0.1.0rc1/project/owl/dcat_ap_plus.owl.ttl +3098 -0
  85. dcat_ap_plus-0.1.0rc1/project/prefixmap/dcat_ap_plus.yaml +182 -0
  86. dcat_ap_plus-0.1.0rc1/project/protobuf/dcat_ap_plus.proto +570 -0
  87. dcat_ap_plus-0.1.0rc1/project/shacl/dcat_ap_plus.shacl.ttl +2390 -0
  88. dcat_ap_plus-0.1.0rc1/project/shex/dcat_ap_plus.shex +669 -0
  89. dcat_ap_plus-0.1.0rc1/project/sqlschema/dcat_ap_plus.sql +1381 -0
  90. dcat_ap_plus-0.1.0rc1/project.justfile +1 -0
  91. dcat_ap_plus-0.1.0rc1/pyproject.toml +73 -0
  92. dcat_ap_plus-0.1.0rc1/src/dcat_ap_plus/__init__.py +5 -0
  93. dcat_ap_plus-0.1.0rc1/src/dcat_ap_plus/_version.py +8 -0
  94. dcat_ap_plus-0.1.0rc1/src/dcat_ap_plus/datamodel/__init__.py +6 -0
  95. dcat_ap_plus-0.1.0rc1/src/dcat_ap_plus/datamodel/dcat_ap_plus.py +3112 -0
  96. dcat_ap_plus-0.1.0rc1/src/dcat_ap_plus/datamodel/dcat_ap_plus_pydantic.py +6793 -0
  97. dcat_ap_plus-0.1.0rc1/src/dcat_ap_plus/dcat_ap_shacl.jsonld +4015 -0
  98. dcat_ap_plus-0.1.0rc1/src/dcat_ap_plus/dcat_ap_shacl_2_linkml.py +1034 -0
  99. dcat_ap_plus-0.1.0rc1/src/dcat_ap_plus/schema/README.md +3 -0
  100. dcat_ap_plus-0.1.0rc1/src/dcat_ap_plus/schema/dcat_ap_linkml.yaml +2026 -0
  101. dcat_ap_plus-0.1.0rc1/src/dcat_ap_plus/schema/dcat_ap_plus.yaml +2758 -0
  102. dcat_ap_plus-0.1.0rc1/tests/__init__.py +1 -0
  103. dcat_ap_plus-0.1.0rc1/tests/data/README.md +14 -0
  104. dcat_ap_plus-0.1.0rc1/tests/data/invalid/.gitkeep +0 -0
  105. dcat_ap_plus-0.1.0rc1/tests/data/invalid/Person-002.yaml +6 -0
  106. dcat_ap_plus-0.1.0rc1/tests/data/problem/invalid/.gitkeep +0 -0
  107. dcat_ap_plus-0.1.0rc1/tests/data/problem/valid/.gitkeep +0 -0
  108. dcat_ap_plus-0.1.0rc1/tests/data/valid/.gitkeep +0 -0
  109. dcat_ap_plus-0.1.0rc1/tests/data/valid/AnalysisDataset-001.yaml +214 -0
  110. dcat_ap_plus-0.1.0rc1/tests/data/valid/Dataset-001.yaml +16 -0
  111. dcat_ap_plus-0.1.0rc1/tests/test_data.py +26 -0
  112. dcat_ap_plus-0.1.0rc1/uv.lock +3561 -0
@@ -0,0 +1,23 @@
1
+ # Changes here will be overwritten by Copier
2
+ _commit: v0.4.1
3
+ _src_path: https://github.com/linkml/linkml-project-copier
4
+ add_example: true
5
+ copyright_year: '2025'
6
+ email: philip.stroemert@tib.eu
7
+ full_name: Philip Strömert
8
+ gh_action_docs_preview: true
9
+ gh_action_pypi: true
10
+ github_org: nfdi-de
11
+ license: MIT
12
+ project_description: "This metadata schema is an Extension of the DCAT Application\
13
+ \ Profile for Providing Links to Use-case Specific Context. It allows to provide\
14
+ \ additional metadata regarding: which kind(s) of entity(s) or activity(s)\
15
+ \ were evaluated (the dcat:Dataset is about), which kind of activity generated\
16
+ \ the dcat:Dataset, which kind of instruments were used in the dataset generating\
17
+ \ activity, in which surrounding (e.g. a laboratory) and according to which\
18
+ \ plan the dataset generating activity took place, as well as regarding which\
19
+ \ kind(s) of qualitative and quantitative characteristic were attributed to\
20
+ \ the evaluated entity or evaluated activity and to the used instruments."
21
+ project_name: dcat-ap-plus
22
+ project_slug: dcat_ap_plus
23
+
@@ -0,0 +1,18 @@
1
+ # Check http://editorconfig.org for more information
2
+ # This is the main config file for this project:
3
+ root = true
4
+
5
+ [*]
6
+ charset = utf-8
7
+ end_of_line = lf
8
+ insert_final_newline = true
9
+ indent_style = space
10
+ indent_size = 2
11
+ trim_trailing_whitespace = true
12
+
13
+ [*.py]
14
+ indent_style = space
15
+ indent_size = 4
16
+
17
+ [*.md]
18
+ trim_trailing_whitespace = false
@@ -0,0 +1,9 @@
1
+ # Please see the documentation for all configuration options:
2
+ # https://docs.github.com/en/code-security/dependabot/working-with-dependabot/dependabot-options-reference
3
+
4
+ version: 2
5
+ updates:
6
+ - package-ecosystem: github-actions
7
+ directory: "/"
8
+ schedule:
9
+ interval: monthly
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: Deploy docs
3
+ on: # yamllint disable-line rule:truthy
4
+ push:
5
+ branches: [main]
6
+ workflow_dispatch:
7
+
8
+ permissions: {}
9
+
10
+ jobs:
11
+ build-docs:
12
+ # Only run in the canonical repository to avoid failures on forks
13
+ if: ${{ github.repository == 'nfdi-de/dcat-ap-plus' }}
14
+ runs-on: ubuntu-latest
15
+
16
+ # Grant GITHUB_TOKEN the permissions required to make a gh-pages deployment
17
+ permissions:
18
+ contents: write # to let mkdocs write the new docs
19
+ pages: write # to deploy to Pages
20
+ id-token: write # allow to generate an OpenID Connect (OIDC) token
21
+
22
+ steps:
23
+ # https://github.com/actions/checkout
24
+ - name: Checkout
25
+ uses: actions/checkout@v5.0.0
26
+ with:
27
+ fetch-depth: 0 # otherwise, you will fail to push refs to dest repo
28
+
29
+ - name: Configure git for the bot
30
+ # Gives the bot that commits to gh-pages a name & email address
31
+ # so that the commits have an author in the commit log.
32
+ run: |
33
+ git config user.name github-actions[bot]
34
+ git config user.email github-actions[bot]@users.noreply.github.com
35
+
36
+ # https://github.com/astral-sh/setup-uv
37
+ - name: Install uv
38
+ uses: astral-sh/setup-uv@v7.1.2
39
+ with:
40
+ python-version: 3.13
41
+ enable-cache: true
42
+ cache-dependency-glob: "uv.lock"
43
+
44
+ # https://github.com/actions/setup-python
45
+ - name: Set up Python
46
+ uses: actions/setup-python@v6.0.0
47
+ with:
48
+ python-version: 3.13
49
+
50
+ - name: Install just
51
+ run: |
52
+ uv tool install rust-just
53
+
54
+ - name: Install dependencies
55
+ run: uv sync --dev --no-progress
56
+
57
+ - name: Generate schema documentation
58
+ run: |
59
+ just gen-doc
60
+ # copy the schema files to the GH pages as a means of publishing them
61
+ cp src/dcat_ap_plus/schema/*.yaml docs/
62
+ uv run mkdocs gh-deploy
@@ -0,0 +1,55 @@
1
+ # Built from:
2
+ # https://docs.github.com/en/actions/guides/building-and-testing-python
3
+ ---
4
+ name: Build and test
5
+
6
+ on: # yamllint disable-line rule:truthy
7
+ push:
8
+ branches: [main]
9
+ pull_request:
10
+
11
+ env:
12
+ FORCE_COLOR: "1" # Make tools pretty.
13
+
14
+ permissions: {}
15
+
16
+ jobs:
17
+ test:
18
+
19
+ runs-on: ubuntu-latest
20
+ strategy:
21
+ matrix:
22
+ python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
23
+ fail-fast: false
24
+
25
+ steps:
26
+
27
+ # https://github.com/actions/checkout
28
+ - name: Check out repository
29
+ uses: actions/checkout@v5.0.0
30
+ with:
31
+ persist-credentials: false
32
+
33
+ # https://github.com/astral-sh/setup-uv
34
+ - name: Install uv
35
+ uses: astral-sh/setup-uv@v7.1.2
36
+ with:
37
+ python-version: ${{ matrix.python-version }}
38
+ enable-cache: true
39
+ cache-dependency-glob: "uv.lock"
40
+
41
+ # https://github.com/actions/setup-python
42
+ - name: Set up Python ${{ matrix.python-version }}
43
+ uses: actions/setup-python@v6.0.0
44
+ with:
45
+ python-version: ${{ matrix.python-version }}
46
+
47
+ - name: Install just
48
+ run: |
49
+ uv tool install rust-just
50
+
51
+ - name: Install project
52
+ run: uv sync --dev
53
+
54
+ - name: Run test suite
55
+ run: just test
@@ -0,0 +1,100 @@
1
+ ---
2
+ name: Publish Python Package
3
+
4
+ # Publishes with trusted publishing to
5
+ # - PyPI on releases created in GitHub UI if status is published.
6
+ # For draft status, nothing happens.
7
+ # - TestPyPI on new tags "v1.2.3" or "v1.2.3.something" on main branch
8
+ #
9
+ # More on trusted publishing: https://docs.pypi.org/trusted-publishers/
10
+
11
+ on: # yamllint disable-line rule:truthy
12
+ push:
13
+ tags:
14
+ # GitHub glob matching is limited [1]. So we can't define a pattern matching
15
+ # pep 440 version definition [N!]N(.N)*[{a|b|rc}N][.postN][.devN]
16
+ - 'v[0-9]+.[0-9]+.[0-9]+.?*'
17
+ - 'v[0-9]+.[0-9]+.[0-9]+rc[0-9]'
18
+ release:
19
+ types: [published]
20
+
21
+ permissions: {}
22
+
23
+ jobs:
24
+ build:
25
+ name: Build Python 🐍 distributions 📦 for publishing
26
+ runs-on: ubuntu-latest
27
+
28
+ steps:
29
+ # https://github.com/actions/checkout
30
+ - name: Check out repository
31
+ uses: actions/checkout@v5.0.0
32
+ with:
33
+ persist-credentials: false
34
+
35
+ # https://github.com/astral-sh/setup-uv
36
+ - name: Install uv
37
+ uses: astral-sh/setup-uv@v7.1.2
38
+ with:
39
+ python-version: 3.13
40
+ enable-cache: true
41
+
42
+ # https://github.com/actions/setup-python
43
+ - name: Set up Python
44
+ uses: actions/setup-python@v6.0.0
45
+ with:
46
+ python-version: 3.13
47
+
48
+ - name: Install just
49
+ run: |
50
+ uv tool install rust-just
51
+
52
+ - name: Build source and wheel archives
53
+ run: uv build
54
+
55
+ # https://github.com/actions/upload-artifact
56
+ - name: Store built distribution
57
+ uses: actions/upload-artifact@v5.0.0
58
+ with:
59
+ name: distribution-files
60
+ path: dist/
61
+
62
+ pypi-publish:
63
+ name: Build and publish Python 🐍 package 📦 to PyPI and TestPyPI
64
+ needs: build
65
+ runs-on: ubuntu-latest
66
+ environment:
67
+ name: pypi-release
68
+ url: https://pypi.org/p/dcat_ap_plus
69
+ permissions:
70
+ id-token: write # this permission is mandatory for trusted publishing
71
+ steps:
72
+ # https://github.com/actions/download-artifact
73
+ - name: Download built distribution
74
+ uses: actions/download-artifact@v6.0.0
75
+ with:
76
+ name: distribution-files
77
+ path: dist
78
+
79
+ # https://github.com/pypa/gh-action-pypi-publish
80
+ - name: Publish package 📦 to Test PyPI
81
+ if: github.event_name == 'push'
82
+ uses: pypa/gh-action-pypi-publish@v1.13.0
83
+ with:
84
+ repository-url: https://test.pypi.org/legacy/
85
+ verbose: true
86
+
87
+ - name: Publish package 📦 to PyPI
88
+ if: github.event_name == 'release'
89
+ uses: pypa/gh-action-pypi-publish@v1.13.0
90
+ with:
91
+ verbose: true
92
+
93
+ # [1] https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet
94
+ # Used actions: (updates managed by dependabot)
95
+ # - https://github.com/actions/checkout
96
+ # - https://github.com/astral-sh/setup-uv
97
+ # - https://github.com/actions/setup-python
98
+ # - https://github.com/actions/upload-artifact
99
+ # - https://github.com/actions/download-artifact
100
+ # - https://github.com/pypa/gh-action-pypi-publish/
@@ -0,0 +1,60 @@
1
+ name: Preview documentation build
2
+
3
+ on: # yamllint disable-line rule:truthy
4
+ pull_request:
5
+ types:
6
+ - opened
7
+ - reopened
8
+ - synchronize
9
+
10
+ env:
11
+ CLICOLOR: 1
12
+
13
+ concurrency: preview-${{ github.ref }}
14
+
15
+ permissions: {}
16
+
17
+ jobs:
18
+ run:
19
+ # Grant GITHUB_TOKEN the permissions required to make a gh-pages deployment
20
+ permissions:
21
+ contents: write # to let mkdocs write the new docs
22
+ pages: write # to deploy to Pages
23
+ id-token: write # allow to generate an OpenID Connect (OIDC) token
24
+ pull-requests: write # add comment on the PR with the preview URL
25
+ runs-on: ubuntu-latest
26
+ steps:
27
+ # https://github.com/actions/checkout
28
+ - name: Checkout
29
+ uses: actions/checkout@v5.0.0
30
+ with:
31
+ fetch-depth: 0
32
+
33
+ # https://github.com/astral-sh/setup-uv
34
+ - name: Install uv
35
+ uses: astral-sh/setup-uv@v7.1.2
36
+ with:
37
+ python-version: 3.13
38
+ enable-cache: true
39
+ cache-dependency-glob: "uv.lock"
40
+
41
+ # https://github.com/actions/setup-python
42
+ - name: Set up Python 3
43
+ uses: actions/setup-python@v6.0.0
44
+ with:
45
+ python-version: 3.13
46
+
47
+ - name: Install dependencies
48
+ run: uv sync --dev --no-progress
49
+
50
+ - name: Build documentation
51
+ run: |
52
+ uv run mkdocs build -d site
53
+ touch site/.nojekyll
54
+
55
+ # https://github.com/rossjrw/pr-preview-action
56
+ - name: Deploy preview
57
+ uses: rossjrw/pr-preview-action@v1.6.2
58
+ with:
59
+ source-dir: site/
60
+ preview-branch: gh-pages
@@ -0,0 +1,144 @@
1
+ # generated part of documentation
2
+ /docs/elements/*.md
3
+ # linkml-run-examples output (not useful to have in git in its current form)
4
+ /examples/output/
5
+
6
+ # Derived schemas, generated from the schema.yaml
7
+ tmp/
8
+ #project/
9
+ !project/README.md
10
+
11
+ # Byte-compiled / optimized / DLL files
12
+ __pycache__/
13
+ *.py[cod]
14
+ *$py.class
15
+
16
+ # C extensions
17
+ *.so
18
+
19
+ # Distribution / packaging
20
+ .Python
21
+ build/
22
+ develop-eggs/
23
+ dist/
24
+ downloads/
25
+ eggs/
26
+ .eggs/
27
+ lib/
28
+ lib64/
29
+ parts/
30
+ sdist/
31
+ var/
32
+ wheels/
33
+ pip-wheel-metadata/
34
+ share/python-wheels/
35
+ *.egg-info/
36
+ .installed.cfg
37
+ *.egg
38
+ MANIFEST
39
+
40
+ # PyInstaller
41
+ # Usually these files are written by a python script from a template
42
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
43
+ *.manifest
44
+ *.spec
45
+
46
+ # Installer logs
47
+ pip-log.txt
48
+ pip-delete-this-directory.txt
49
+
50
+ # Unit test / coverage reports
51
+ htmlcov/
52
+ .tox/
53
+ .nox/
54
+ .coverage
55
+ .coverage.*
56
+ .cache
57
+ nosetests.xml
58
+ coverage.xml
59
+ *.cover
60
+ *.py,cover
61
+ .hypothesis/
62
+ .pytest_cache/
63
+
64
+ # Translations
65
+ *.mo
66
+ *.pot
67
+
68
+ # Django stuff:
69
+ *.log
70
+ local_settings.py
71
+ db.sqlite3
72
+ db.sqlite3-journal
73
+
74
+ # Flask stuff:
75
+ instance/
76
+ .webassets-cache
77
+
78
+ # Scrapy stuff:
79
+ .scrapy
80
+
81
+ # Sphinx documentation
82
+ docs/_build/
83
+
84
+ # PyBuilder
85
+ target/
86
+
87
+ # Jupyter Notebook
88
+ .ipynb_checkpoints
89
+
90
+ # IPython
91
+ profile_default/
92
+ ipython_config.py
93
+
94
+ # pyenv
95
+ .python-version
96
+
97
+ # pipenv
98
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
99
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
100
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
101
+ # install all needed dependencies.
102
+ #Pipfile.lock
103
+
104
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
105
+ __pypackages__/
106
+
107
+ # Celery stuff
108
+ celerybeat-schedule
109
+ celerybeat.pid
110
+
111
+ # SageMath parsed files
112
+ *.sage.py
113
+
114
+ # Environments
115
+ .env
116
+ .venv
117
+ env/
118
+ venv/
119
+ ENV/
120
+ env.bak/
121
+ venv.bak/
122
+
123
+ # Spyder project settings
124
+ .spyderproject
125
+ .spyproject
126
+
127
+ # Rope project settings
128
+ .ropeproject
129
+
130
+ # mkdocs documentation
131
+ /site
132
+
133
+ # mypy
134
+ .mypy_cache/
135
+ .dmypy.json
136
+ dmypy.json
137
+
138
+ # Pyre type checker
139
+ .pyre/
140
+
141
+ # pycharm
142
+ .idea
143
+ # Local vscode editor config
144
+ .vscode
@@ -0,0 +1,45 @@
1
+ ---
2
+ # https://pre-commit.com/
3
+ repos:
4
+ - repo: https://github.com/pre-commit/pre-commit-hooks
5
+ rev: v5.0.0
6
+ hooks:
7
+ - id: check-toml
8
+ - id: check-yaml
9
+ - id: end-of-file-fixer
10
+ - id: trailing-whitespace
11
+ args: [--markdown-linebreak-ext=md]
12
+
13
+ - repo: https://github.com/adrienverge/yamllint.git
14
+ rev: v1.37.0
15
+ hooks:
16
+ - id: yamllint
17
+ args: [-c=.yamllint.yaml]
18
+
19
+ - repo: https://github.com/codespell-project/codespell
20
+ rev: v2.4.1
21
+ hooks:
22
+ - id: codespell
23
+ additional_dependencies:
24
+ - tomli
25
+
26
+ - repo: https://github.com/crate-ci/typos
27
+ rev: v1.31.1
28
+ hooks:
29
+ - id: typos
30
+
31
+ - repo: https://github.com/astral-sh/ruff-pre-commit
32
+ # Ruff version.
33
+ rev: v0.11.3
34
+ hooks:
35
+ # Run the linter.
36
+ - id: ruff
37
+ args: [--fix, --exit-non-zero-on-fix]
38
+ # Run the formatter.
39
+ - id: ruff-format
40
+
41
+ - repo: https://github.com/astral-sh/uv-pre-commit
42
+ # uv version.
43
+ rev: 0.6.12
44
+ hooks:
45
+ - id: uv-lock
@@ -0,0 +1,12 @@
1
+ # Configuration for https://github.com/adrienverge/yamllint
2
+
3
+ extends: default
4
+
5
+ rules:
6
+ document-start: disable # Don't check if document has a start marker (---).
7
+ line-length:
8
+ max: 80
9
+ level: warning
10
+ allow-non-breakable-words: true
11
+ allow-non-breakable-inline-mappings: true
12
+ new-lines: disable # Don't check for type of new line characters.
@@ -0,0 +1,76 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to make participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age,
8
+ body size, disability, ethnicity, gender identity and expression, level of
9
+ experience, nationality, personal appearance, race, religion, or sexual
10
+ identity and orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an
52
+ appointed representative at an online or offline event. Representation of a
53
+ project may be further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by [contacting the project team](contact.md). All complaints will be
59
+ reviewed and investigated and will result in a response that is deemed
60
+ necessary and appropriate to the circumstances. The project team is obligated
61
+ to maintain confidentiality with regard to the reporter of an incident. Further
62
+ details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This code of conduct has been derived from the excellent code of conduct of the
71
+ [ATOM project](https://github.com/atom/atom/blob/master/CODE_OF_CONDUCT.md)
72
+ which in turn is adapted from the [Contributor Covenant][homepage], version
73
+ 1.4, available at [https://contributor-covenant.org/version/1/4][version]
74
+
75
+ [homepage]: https://contributor-covenant.org
76
+ [version]: https://contributor-covenant.org/version/1/4/