pid4cat-model 0.4.2__tar.gz → 0.4.3__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 (102) hide show
  1. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/.copier-answers.yml +3 -1
  2. pid4cat_model-0.4.3/.github/dependabot.yml +15 -0
  3. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/.github/workflows/deploy-docs.yaml +13 -6
  4. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/.github/workflows/main.yaml +9 -9
  5. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/.github/workflows/pypi-publish.yaml +20 -19
  6. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/.linkmllint.yaml +2 -1
  7. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/.pre-commit-config.yaml +11 -6
  8. pid4cat_model-0.4.3/.yamlfix.toml +8 -0
  9. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/.yamllint.yaml +8 -1
  10. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/PKG-INFO +4 -4
  11. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/config.public.mk +2 -5
  12. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/config.yaml +4 -4
  13. pid4cat_model-0.4.3/docs/hooks/theme_overrides_priority.py +18 -0
  14. pid4cat_model-0.4.3/docs/js/extra-loader.js +2 -0
  15. pid4cat_model-0.4.3/docs/overrides/partials/header.html +71 -0
  16. pid4cat_model-0.4.3/docs/stylesheets/extra.css +27 -0
  17. pid4cat_model-0.4.3/examples/PID4CatRecord-001.yaml +87 -0
  18. pid4cat_model-0.4.3/examples/example_p1.yaml +99 -0
  19. pid4cat_model-0.4.3/examples/valid/HandleRecordContainer-001.yaml +87 -0
  20. pid4cat_model-0.4.3/examples/valid/PID4CatRecord-001.yaml +87 -0
  21. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/justfile +69 -23
  22. pid4cat_model-0.4.3/mkdocs.yml +152 -0
  23. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/project.justfile +4 -0
  24. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/pyproject.toml +17 -4
  25. pid4cat_model-0.4.3/src/README.md +4 -0
  26. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/src/pid4cat_model/__init__.py +5 -0
  27. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/src/pid4cat_model/datamodel/pid4cat_model.py +443 -1339
  28. pid4cat_model-0.4.3/src/pid4cat_model/datamodel/pid4cat_model_pydantic.py +1602 -0
  29. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/src/pid4cat_model/iso7064.py +39 -11
  30. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/src/pid4cat_model/schema/pid4cat_model.yaml +2 -2
  31. pid4cat_model-0.4.3/tests/data/valid/.gitkeep +0 -0
  32. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/tests/test_iso7064.py +42 -4
  33. pid4cat_model-0.4.3/uv.lock +3426 -0
  34. pid4cat_model-0.4.2/.github/dependabot.yml +0 -9
  35. pid4cat_model-0.4.2/docs/stylesheets/extra.css +0 -17
  36. pid4cat_model-0.4.2/examples/PID4CatRecord-001.yaml +0 -86
  37. pid4cat_model-0.4.2/examples/example_p1.yaml +0 -98
  38. pid4cat_model-0.4.2/examples/valid/HandleRecordContainer-001.yaml +0 -86
  39. pid4cat_model-0.4.2/examples/valid/PID4CatRecord-001.yaml +0 -86
  40. pid4cat_model-0.4.2/mkdocs.yml +0 -114
  41. pid4cat_model-0.4.2/src/pid4cat_model/datamodel/pid4cat_model_pydantic.py +0 -2935
  42. pid4cat_model-0.4.2/uv.lock +0 -2735
  43. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/.editorconfig +0 -0
  44. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/.gitignore +0 -0
  45. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/.zenodo.json +0 -0
  46. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/CODE_OF_CONDUCT.md +0 -0
  47. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/CONTRIBUTING.md +0 -0
  48. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/LICENSE +0 -0
  49. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/README.md +0 -0
  50. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/README_pypkg.md +0 -0
  51. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/docs/about.md +0 -0
  52. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/docs/apis.md +0 -0
  53. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/docs/elements/.gitkeep +0 -0
  54. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/docs/getting-started.md +0 -0
  55. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/docs/images/favicon.svg +0 -0
  56. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/docs/images/logo-design-source.svg +0 -0
  57. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/docs/images/logo-icon.svg +0 -0
  58. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/docs/images/logo-with-text-dark.svg +0 -0
  59. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/docs/images/logo-with-text.png +0 -0
  60. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/docs/images/logo-with-text.svg +0 -0
  61. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/docs/index.md +0 -0
  62. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/docs/metadata.md +0 -0
  63. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/docs/open-data.md +0 -0
  64. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/docs/overrides/partials/logo.html +0 -0
  65. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/docs/overview.md +0 -0
  66. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/docs/policies.md +0 -0
  67. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/docs/schema/README.md +0 -0
  68. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/docs/templates-linkml/README.md +0 -0
  69. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/docs/tools.md +0 -0
  70. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/docs/versioning.md +0 -0
  71. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/examples/README.md +0 -0
  72. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/examples/api-v2-demo.ipynb +0 -0
  73. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/examples/example_p1.json +0 -0
  74. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/examples/example_p1_dataclasses.py +0 -0
  75. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/examples/example_p1_pydantic.json +0 -0
  76. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/examples/example_p1_pydantic.py +0 -0
  77. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/examples/hdl-net-api-demo.ipynb +0 -0
  78. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/examples/valid/HandleRecordContainer-001.json.off +0 -0
  79. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/examples/valid/PID4CatRecord-001.json +0 -0
  80. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/project/README.md +0 -0
  81. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/src/pid4cat_model/_version.py +0 -0
  82. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/src/pid4cat_model/datamodel/__init__.py +0 -0
  83. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/src/pid4cat_model/handle_api.py +0 -0
  84. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/src/pid4cat_model/schema/README.md +0 -0
  85. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/src/pid4cat_model/schema/media_types.yaml +0 -0
  86. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/tests/__init__.py +0 -0
  87. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/tests/data/21.T11978_hdlnet_api/TEST_KBKA-BEM9.json +0 -0
  88. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/tests/data/21.T11978_hdlnet_api/TEST_KBKA-BEM9_decoded.json +0 -0
  89. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/tests/data/21.T11978_hdlnet_api/TEST_KBKA-BEM9_invalid.json +0 -0
  90. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/tests/data/README.md +0 -0
  91. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/tests/data/invalid/.gitkeep +0 -0
  92. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/tests/data/invalid/HandleAPIRecord-004.json +0 -0
  93. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/tests/data/problem/invalid/.gitkeep +0 -0
  94. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/tests/data/problem/valid/.gitkeep +0 -0
  95. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/tests/data/valid/HandleAPIRecord-001.yaml +0 -0
  96. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/tests/data/valid/HandleAPIRecord-002.json +0 -0
  97. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/tests/data/valid/HandleAPIRecord-003.json +0 -0
  98. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/tests/data/valid/HandleAPIRecord-004.json +0 -0
  99. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/tests/data/valid/HandleRecordContainer-001.yaml +0 -0
  100. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/tests/test_data.py +0 -0
  101. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/tests/test_handle_api.py +0 -0
  102. {pid4cat_model-0.4.2 → pid4cat_model-0.4.3}/tests/test_model_pydantic.py +0 -0
@@ -1,9 +1,10 @@
1
1
  # Changes here will be overwritten by Copier
2
- _commit: v0.4.0
2
+ _commit: v0.5.0
3
3
  _src_path: gh:dalito/linkml-project-copier
4
4
  add_example: false
5
5
  copyright_year: '2023'
6
6
  email: david.linke@catalysis.de
7
+ existing_license_file: ''
7
8
  full_name: David Linke
8
9
  gh_action_docs_preview: false
9
10
  gh_action_pypi: true
@@ -13,3 +14,4 @@ project_description: LinkML model for handle-based PIDs for resources in catalys
13
14
  (pid4cat)
14
15
  project_name: pid4cat-model
15
16
  project_slug: pid4cat_model
17
+
@@ -0,0 +1,15 @@
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
10
+ assignees:
11
+ - "dalito"
12
+ groups:
13
+ github-actions:
14
+ patterns:
15
+ - "*"
@@ -18,6 +18,10 @@ jobs:
18
18
  build-docs:
19
19
  runs-on: ubuntu-latest
20
20
 
21
+ strategy:
22
+ matrix:
23
+ pyversion: ["3.13"]
24
+
21
25
  # Grant GITHUB_TOKEN the permissions required to make a gh-pages deployment
22
26
  permissions:
23
27
  contents: write # to let mkdocs write the new docs
@@ -25,8 +29,9 @@ jobs:
25
29
  id-token: write # allow to generate an OpenID Connect (OIDC) token
26
30
 
27
31
  steps:
32
+ # https://github.com/actions/checkout
28
33
  - name: Checkout
29
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
34
+ uses: actions/checkout@v6.0.2
30
35
  with:
31
36
  fetch-depth: 0 # otherwise, you will fail to push refs to dest repo
32
37
 
@@ -37,24 +42,26 @@ jobs:
37
42
  git config user.name github-actions[bot]
38
43
  git config user.email github-actions[bot]@users.noreply.github.com
39
44
 
45
+ # https://github.com/astral-sh/setup-uv
40
46
  - name: Install uv
41
- uses: astral-sh/setup-uv@6b9c6063abd6010835644d4c2e1bef4cf5cd0fca
47
+ uses: astral-sh/setup-uv@v8.1.0
42
48
  with:
43
- python-version: 3.12
49
+ python-version: ${{ matrix.pyversion }}
44
50
  enable-cache: true
45
51
  cache-dependency-glob: "uv.lock"
46
52
 
53
+ # https://github.com/actions/setup-python
47
54
  - name: Set up Python
48
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065
55
+ uses: actions/setup-python@v6.2.0
49
56
  with:
50
- python-version: 3.12
57
+ python-version: ${{ matrix.pyversion }}
51
58
 
52
59
  - name: Install just
53
60
  run: |
54
61
  uv tool install rust-just
55
62
 
56
63
  - name: Install dependencies
57
- run: uv sync --dev --no-progress
64
+ run: uv sync --group dev --no-progress
58
65
 
59
66
  - name: Generate schema documentation
60
67
  run: |
@@ -9,7 +9,7 @@ on: # yamllint disable-line rule:truthy
9
9
  pull_request:
10
10
 
11
11
  env:
12
- FORCE_COLOR: "1" # Make tools pretty.
12
+ FORCE_COLOR: "1" # Make tools pretty.
13
13
 
14
14
  permissions: {}
15
15
 
@@ -19,28 +19,28 @@ jobs:
19
19
  runs-on: ubuntu-latest
20
20
  strategy:
21
21
  matrix:
22
- # re-enable when linkml-runtime is realesed with
23
- # https://github.com/linkml/linkml-runtime/pull/357
24
- # python-version: ["3.9", "3.10", "3.11", "3.12"]
25
- python-version: ["3.11", "3.12"]
22
+ python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
26
23
  fail-fast: false
27
24
 
28
25
  steps:
29
26
 
27
+ # https://github.com/actions/checkout
30
28
  - name: Check out repository
31
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
29
+ uses: actions/checkout@v6.0.2
32
30
  with:
33
31
  persist-credentials: false
34
32
 
33
+ # https://github.com/astral-sh/setup-uv
35
34
  - name: Install uv
36
- uses: astral-sh/setup-uv@6b9c6063abd6010835644d4c2e1bef4cf5cd0fca
35
+ uses: astral-sh/setup-uv@v8.1.0
37
36
  with:
38
37
  python-version: ${{ matrix.python-version }}
39
38
  enable-cache: true
40
39
  cache-dependency-glob: "uv.lock"
41
40
 
41
+ # https://github.com/actions/setup-python
42
42
  - name: Set up Python ${{ matrix.python-version }}
43
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065
43
+ uses: actions/setup-python@v6.2.0
44
44
  with:
45
45
  python-version: ${{ matrix.python-version }}
46
46
 
@@ -49,7 +49,7 @@ jobs:
49
49
  uv tool install rust-just
50
50
 
51
51
  - name: Install project
52
- run: uv sync --dev
52
+ run: uv sync --group dev
53
53
 
54
54
  - name: Run test suite
55
55
  run: just test
@@ -11,7 +11,7 @@ name: Publish Python Package
11
11
  on: # yamllint disable-line rule:truthy
12
12
  push:
13
13
  tags:
14
- # GitHub glob matching is limited [1]. So we can't define a pattern matching
14
+ # GitHub glob matching is limited. So we can't define a pattern matching
15
15
  # pep 440 version definition [N!]N(.N)*[{a|b|rc}N][.postN][.devN]
16
16
  - 'v[0-9]+.[0-9]+.[0-9]+.?*'
17
17
  - 'v[0-9]+.[0-9]+.[0-9]+rc[0-9]'
@@ -25,22 +25,29 @@ jobs:
25
25
  name: Build Python 🐍 distributions 📦 for publishing
26
26
  runs-on: ubuntu-latest
27
27
 
28
+ strategy:
29
+ matrix:
30
+ pyversion: ["3.13"]
31
+
28
32
  steps:
33
+ # https://github.com/actions/checkout
29
34
  - name: Check out repository
30
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
35
+ uses: actions/checkout@v6.0.2
31
36
  with:
32
37
  persist-credentials: false
33
38
 
39
+ # https://github.com/astral-sh/setup-uv
34
40
  - name: Install uv
35
- uses: astral-sh/setup-uv@6b9c6063abd6010835644d4c2e1bef4cf5cd0fca
41
+ uses: astral-sh/setup-uv@v8.1.0
36
42
  with:
37
- python-version: 3.12
43
+ python-version: ${{ matrix.pyversion }}
38
44
  enable-cache: true
39
45
 
46
+ # https://github.com/actions/setup-python
40
47
  - name: Set up Python
41
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065
48
+ uses: actions/setup-python@v6.2.0
42
49
  with:
43
- python-version: 3.12
50
+ python-version: ${{ matrix.pyversion }}
44
51
 
45
52
  - name: Install just
46
53
  run: |
@@ -49,8 +56,9 @@ jobs:
49
56
  - name: Build source and wheel archives
50
57
  run: uv build
51
58
 
59
+ # https://github.com/actions/upload-artifact
52
60
  - name: Store built distribution
53
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
61
+ uses: actions/upload-artifact@v7.0.1
54
62
  with:
55
63
  name: distribution-files
56
64
  path: dist/
@@ -65,30 +73,23 @@ jobs:
65
73
  permissions:
66
74
  id-token: write # this permission is mandatory for trusted publishing
67
75
  steps:
76
+ # https://github.com/actions/download-artifact
68
77
  - name: Download built distribution
69
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
78
+ uses: actions/download-artifact@v8.0.1
70
79
  with:
71
80
  name: distribution-files
72
81
  path: dist
73
82
 
83
+ # https://github.com/pypa/gh-action-pypi-publish
74
84
  - name: Publish package 📦 to Test PyPI
75
85
  if: github.event_name == 'push'
76
- uses: pypa/gh-action-pypi-publish@76f52bc884231f62b9a034ebfe128415bbaabdfc
86
+ uses: pypa/gh-action-pypi-publish@v1.14.0
77
87
  with:
78
88
  repository-url: https://test.pypi.org/legacy/
79
89
  verbose: true
80
90
 
81
91
  - name: Publish package 📦 to PyPI
82
92
  if: github.event_name == 'release'
83
- uses: pypa/gh-action-pypi-publish@76f52bc884231f62b9a034ebfe128415bbaabdfc
93
+ uses: pypa/gh-action-pypi-publish@v1.14.0
84
94
  with:
85
95
  verbose: true
86
-
87
- # [1] https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet
88
- # Used actions: (updates managed by dependabot)
89
- # - https://github.com/actions/checkout
90
- # - https://github.com/astral-sh/setup-uv
91
- # - https://github.com/actions/setup-python
92
- # - https://github.com/actions/upload-artifact
93
- # - https://github.com/actions/download-artifact
94
- # - https://github.com/pypa/gh-action-pypi-publish/
@@ -7,5 +7,6 @@ rules:
7
7
  # permissible_values_upper_case: true
8
8
  # class_pattern: snake_case
9
9
  canonical_prefixes:
10
- # Superfluous warnings for https-refixes, https://github.com/linkml/linkml/issues/2492
10
+ # Suppress warnings for https-prefixes
11
+ # related: https://github.com/linkml/linkml/issues/2492
11
12
  level: disabled
@@ -2,35 +2,40 @@
2
2
  # https://pre-commit.com/
3
3
  repos:
4
4
  - repo: https://github.com/pre-commit/pre-commit-hooks
5
- rev: v5.0.0
5
+ rev: v6.0.0
6
6
  hooks:
7
7
  - id: check-toml
8
8
  - id: check-yaml
9
+ # mkdocs.yml uses !!python/name tags unsupported by the safe YAML loader
10
+ exclude: ^mkdocs\.yml$
9
11
  - id: end-of-file-fixer
12
+ exclude: ^\.copier-answers\.yml$
10
13
  - id: trailing-whitespace
11
14
  args: [--markdown-linebreak-ext=md]
12
15
 
13
16
  - repo: https://github.com/adrienverge/yamllint.git
14
- rev: v1.37.0
17
+ rev: v1.38.0
15
18
  hooks:
16
19
  - id: yamllint
17
20
  args: [-c=.yamllint.yaml]
21
+ exclude: ^\.copier-answers\.yml$
22
+ verbose: true # Show warnings.
18
23
 
19
24
  - repo: https://github.com/codespell-project/codespell
20
- rev: v2.4.1
25
+ rev: v2.4.2
21
26
  hooks:
22
27
  - id: codespell
23
28
  additional_dependencies:
24
29
  - tomli
25
30
 
26
31
  - repo: https://github.com/crate-ci/typos
27
- rev: v1.31.1
32
+ rev: v1.46.3
28
33
  hooks:
29
34
  - id: typos
30
35
 
31
36
  - repo: https://github.com/astral-sh/ruff-pre-commit
32
37
  # Ruff version.
33
- rev: v0.11.3
38
+ rev: v0.15.14
34
39
  hooks:
35
40
  # Run the linter.
36
41
  - id: ruff
@@ -40,6 +45,6 @@ repos:
40
45
 
41
46
  - repo: https://github.com/astral-sh/uv-pre-commit
42
47
  # uv version.
43
- rev: 0.6.12
48
+ rev: 0.11.16
44
49
  hooks:
45
50
  - id: uv-lock
@@ -0,0 +1,8 @@
1
+ # Config for the yaml formatter https://github.com/lyz-code/yamlfix
2
+ # install: "uv tool install yamlfix"
3
+ line_length = 88
4
+ sequence_style = "block_style"
5
+
6
+ # order is important: keep whiteline before section_whitelines
7
+ whitelines = 1
8
+ section_whitelines = 1
@@ -2,10 +2,17 @@
2
2
 
3
3
  extends: default
4
4
 
5
+ # Specify files to ignore.
6
+ ignore:
7
+ # Ignore autogenerated file that does not conform to yamllint rules.
8
+ - .copier-answers.yml
9
+ # Ignore schema files that may not conform due to imports.
10
+ - docs/schema/*.yaml
11
+
5
12
  rules:
6
13
  document-start: disable # Don't check if document has a start marker (---).
7
14
  line-length:
8
- max: 80
15
+ max: 88
9
16
  level: warning
10
17
  allow-non-breakable-words: true
11
18
  allow-non-breakable-inline-mappings: true
@@ -1,15 +1,15 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pid4cat-model
3
- Version: 0.4.2
3
+ Version: 0.4.3
4
4
  Summary: Python model equivalent of LinkML datamodel for handle-based PIDs for resources in catalysis (pid4cat)
5
5
  Author-email: David Linke <david.linke@catalysis.de>
6
6
  Maintainer-email: David Linke <david.linke@catalysis.de>
7
7
  License-Expression: MIT
8
8
  License-File: LICENSE
9
- Requires-Python: <4.0,>=3.11
10
- Requires-Dist: click<8.2.0,>=8.1.7
9
+ Requires-Python: >=3.10
10
+ Requires-Dist: click>8.2.0
11
11
  Requires-Dist: httpx<0.29.0,>=0.28.1
12
- Requires-Dist: linkml-runtime>=1.9.2
12
+ Requires-Dist: linkml-runtime>=1.9.4
13
13
  Description-Content-Type: text/markdown
14
14
 
15
15
  [![CI - main](https://github.com/nfdi4cat/pid4cat-model/actions/workflows/main.yaml/badge.svg)](https://github.com/nfdi4cat/pid4cat-model/actions/workflows/main.yaml)
@@ -20,13 +20,10 @@ LINKML_GENERATORS_CONFIG_YAML=config.yaml
20
20
  LINKML_GENERATORS_DOC_ARGS="--truncate-descriptions False --hierarchical-class-view --subfolder-type-separation --index-name overview"
21
21
 
22
22
  ## pass args to workaround genowl rdfs config bug (linkml#1453)
23
- ## (i.e. --no-type-objects --no-metaclasses --metadata-profile rdfs)
23
+ ## (i.e. --no-type-objects --no-metaclasses --metadata-profile=rdfs)
24
+ # LINKML_GENERATORS_OWL_ARGS="--no-type-objects --no-metaclasses --metadata-profile=rdfs"
24
25
  LINKML_GENERATORS_OWL_ARGS=
25
26
 
26
- ## pass args to trigger experimental java/typescript generation
27
- LINKML_GENERATORS_JAVA_ARGS=
28
- LINKML_GENERATORS_TYPESCRIPT_ARGS=
29
-
30
27
  ## pass args to pydantic generator which isn't supported by gen-project
31
28
  ## https://github.com/linkml/linkml/issues/2537
32
29
  LINKML_GENERATORS_PYDANTIC_ARGS=
@@ -19,10 +19,10 @@ generator_args:
19
19
  mergeimports: true
20
20
  owl:
21
21
  mergeimports: true
22
- metaclasses: true
23
- type_objects: true
24
- # throws 'Cannot handle metadata profile: rdfs'
25
- # metadata_profile: rdfs
22
+ metaclasses: false
23
+ type_objects: false
24
+ add_root_classes: true
25
+ mixins_as_expressions: true
26
26
  markdown:
27
27
  mergeimports: true
28
28
  directory: "docs/elements"
@@ -0,0 +1,18 @@
1
+ """Give docs/overrides priority over plugin-supplied theme dirs.
2
+
3
+ The mkdocs_pymdownx_material_extras plugin inserts its own theme directory at
4
+ position 0 of theme.dirs in its on_config hook, which shadows the user's
5
+ custom_dir. This hook runs after plugins and moves custom_dir back to the
6
+ front so files under docs/overrides win against the plugin's templates.
7
+ """
8
+
9
+
10
+ def on_config(config):
11
+ custom_dir = config["theme"].custom_dir
12
+ if not custom_dir:
13
+ return config
14
+ dirs = config["theme"].dirs
15
+ if custom_dir in dirs and dirs[0] != custom_dir:
16
+ dirs.remove(custom_dir)
17
+ dirs.insert(0, custom_dir)
18
+ return config
@@ -0,0 +1,2 @@
1
+ // See https://facelessuser.github.io/pymdown-extensions/extras/mermaid/#custom-loader
2
+ // And https://github.com/facelessuser/pymdown-extensions/blob/main/docs/src/js/material-extra-3rdparty.js
@@ -0,0 +1,71 @@
1
+ {#-
2
+ Copied from mkdocs-material to bypass the header.html provided by
3
+ mkdocs_pymdownx_material_extras (which forces a dracula-based palette).
4
+ This restores Material's standard palette toggle using default/slate.
5
+ -#}
6
+ {% set class = "md-header" %}
7
+ {% if "navigation.tabs.sticky" in features %}
8
+ {% set class = class ~ " md-header--shadow md-header--lifted" %}
9
+ {% elif "navigation.tabs" not in features %}
10
+ {% set class = class ~ " md-header--shadow" %}
11
+ {% endif %}
12
+ <header class="{{ class }}" data-md-component="header">
13
+ <nav class="md-header__inner md-grid" aria-label="{{ lang.t('header') }}">
14
+ <a href="{{ config.extra.homepage | d(nav.homepage.url, true) | url }}" title="{{ config.site_name | e }}" class="md-header__button md-logo" aria-label="{{ config.site_name }}" data-md-component="logo">
15
+ {% include "partials/logo.html" %}
16
+ </a>
17
+ <label class="md-header__button md-icon" for="__drawer">
18
+ {% set icon = config.theme.icon.menu or "material/menu" %}
19
+ {% include ".icons/" ~ icon ~ ".svg" %}
20
+ </label>
21
+ <div class="md-header__title" data-md-component="header-title">
22
+ <div class="md-header__ellipsis">
23
+ <div class="md-header__topic">
24
+ <span class="md-ellipsis">
25
+ {{ config.site_name }}
26
+ </span>
27
+ </div>
28
+ <div class="md-header__topic" data-md-component="header-topic">
29
+ <span class="md-ellipsis">
30
+ {% if page.meta and page.meta.title %}
31
+ {{ page.meta.title }}
32
+ {% else %}
33
+ {{ page.title }}
34
+ {% endif %}
35
+ </span>
36
+ </div>
37
+ </div>
38
+ </div>
39
+ {% if config.theme.palette %}
40
+ {% if not config.theme.palette is mapping %}
41
+ {% include "partials/palette.html" %}
42
+ {% endif %}
43
+ {% endif %}
44
+ {% if not config.theme.palette is mapping %}
45
+ {% include "partials/javascripts/palette.html" %}
46
+ {% endif %}
47
+ {% if config.extra.alternate %}
48
+ {% include "partials/alternate.html" %}
49
+ {% endif %}
50
+ {% if "material/search" in config.plugins %}
51
+ {% set search = config.plugins["material/search"] | attr("config") %}
52
+ {% if search.enabled %}
53
+ <label class="md-header__button md-icon" for="__search">
54
+ {% set icon = config.theme.icon.search or "material/magnify" %}
55
+ {% include ".icons/" ~ icon ~ ".svg" %}
56
+ </label>
57
+ {% include "partials/search.html" %}
58
+ {% endif %}
59
+ {% endif %}
60
+ {% if config.repo_url %}
61
+ <div class="md-header__source">
62
+ {% include "partials/source.html" %}
63
+ </div>
64
+ {% endif %}
65
+ </nav>
66
+ {% if "navigation.tabs.sticky" in features %}
67
+ {% if "navigation.tabs" in features %}
68
+ {% include "partials/tabs.html" %}
69
+ {% endif %}
70
+ {% endif %}
71
+ </header>
@@ -0,0 +1,27 @@
1
+ #logo_light_mode {
2
+ display: var(--md-footer-logo-light-mode);
3
+ }
4
+
5
+ #logo_dark_mode {
6
+ display: var(--md-footer-logo-dark-mode);
7
+ }
8
+
9
+ [data-md-color-scheme="default"] {
10
+ --md-footer-logo-dark-mode: none;
11
+ --md-footer-logo-light-mode: block;
12
+ }
13
+
14
+ /* The mkdocs_pymdownx_material_extras plugin ships an
15
+ extra-c6ab11540a.css with a `:root>* { --md-typeset-a-color: #00bcd4; }`
16
+ rule that forces light-mode links to bright cyan, ignoring the configured
17
+ accent color. We override it with a higher-specificity selector
18
+ (body[attr] = 0,1,1 beats :root>* = 0,1,0) so light-mode links use the
19
+ configured accent color (indigo via mkdocs.yml palette). */
20
+ body[data-md-color-scheme="default"] {
21
+ --md-typeset-a-color: var(--md-accent-fg-color);
22
+ }
23
+
24
+ [data-md-color-scheme="slate"] {
25
+ --md-footer-logo-dark-mode: none;
26
+ --md-footer-logo-light-mode: block;
27
+ }
@@ -0,0 +1,87 @@
1
+ ---
2
+ contains_pids:
3
+ - responseCode: 1
4
+ handle: 21.T12995/lik-1
5
+ values:
6
+ - index: 1
7
+ type: URL
8
+ data:
9
+ format: string
10
+ value: https://pid4cat.example.org/lik-1
11
+ ttl: 86400
12
+ timestamp: '2024-05-15T15:51:15Z'
13
+ - index: 2
14
+ type: STATUS
15
+ data:
16
+ format: string
17
+ value: REGISTERED
18
+ ttl: 86400
19
+ timestamp: '2024-05-15T15:51:15Z'
20
+ - index: 3
21
+ type: SCHEMA_VER
22
+ data:
23
+ format: string
24
+ value: v0.1.0
25
+ ttl: 86400
26
+ timestamp: '2024-05-15T15:51:15Z'
27
+ - index: 4
28
+ type: METADATA_LICENSE
29
+ data:
30
+ format: string
31
+ value: CC0-1.0
32
+ ttl: 86400
33
+ timestamp: '2024-05-15T15:51:15Z'
34
+ - index: 5
35
+ type: EMAIL
36
+ data:
37
+ format: string
38
+ value: datafuzzi@example.org
39
+ ttl: 86400
40
+ timestamp: '2024-05-15T15:51:15Z'
41
+ - index: 6
42
+ type: RESOURCE_INFO
43
+ data:
44
+ format: string
45
+ value:
46
+ - resource_info:
47
+ label: Resource label
48
+ description: Resource description
49
+ resource_category: SAMPLE
50
+ representation_variants:
51
+ - variant_url: https://example.org/resource
52
+ media_type: text/turtle
53
+ encoding_format: UTF-8
54
+ size: 12345
55
+ ttl: 86400
56
+ timestamp: '2024-05-15T15:51:15Z'
57
+ - index: 7
58
+ type: RELATED
59
+ data:
60
+ format: string
61
+ value:
62
+ - related_identifiers:
63
+ - relation_type: IS_PART_OF
64
+ related_identifier: https://example.org/collection
65
+ datetime_log: '2024-02-19T00:00:00Z'
66
+ - relation_type: IS_REFERENCED_BY
67
+ related_identifier: https://example.org/referenced
68
+ datetime_log: '2024-02-19T00:00:00Z'
69
+ ttl: 86400
70
+ timestamp: '2024-05-15T15:51:15Z'
71
+ - index: 8
72
+ type: CHANGES
73
+ data:
74
+ format: string
75
+ value:
76
+ - change_log:
77
+ - datetime_log: '2024-02-19T00:00:00Z'
78
+ has_agent:
79
+ name: Data Fuzzi
80
+ email: datafuzzi@example.org
81
+ orcid: 0000-0000-0000-0000
82
+ affiliation_ror: https://ror.org/029hg0311
83
+ role: TRUSTEE
84
+ changed_field: STATUS
85
+ description: 'as requested in issue #123'
86
+ ttl: 86400
87
+ timestamp: '2024-05-15T15:51:15Z'