diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index ad42569..4419dfb 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] + python-version: ["3.12", "3.13", "3.14"] fail-fast: false steps: @@ -30,7 +30,7 @@ jobs: with: persist-credentials: false submodules: 'recursive' # grab submodules - + # https://github.com/astral-sh/setup-uv - name: Install uv uses: astral-sh/setup-uv@v8.2.0 diff --git a/.linkml-linter.yaml b/.linkml-linter.yaml new file mode 100644 index 0000000..1dcffad --- /dev/null +++ b/.linkml-linter.yaml @@ -0,0 +1,3 @@ +rules: + permissible_values_format: + format: '^[a-zA-Z0-9_\-:]+$' diff --git a/justfile b/justfile index 5afe7b4..58457b0 100644 --- a/justfile +++ b/justfile @@ -90,7 +90,7 @@ test: _test-schema _test-python _test-examples # Run linting [group('model development')] lint: - uv run linkml-lint {{source_schema_dir}} + uv run linkml-lint --config .linkml-linter.yaml {{source_schema_dir}} # Generate md documentation for the schema [group('model development')] diff --git a/src/include_access_model/schema/include_access_model.yaml b/src/include_access_model/schema/include_access_model.yaml index 657dfa7..df50d5f 100644 --- a/src/include_access_model/schema/include_access_model.yaml +++ b/src/include_access_model/schema/include_access_model.yaml @@ -16,7 +16,7 @@ prefixes: ig2dac: https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/research-data-access-code/ ig2dat: https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/research-data-access-type/ ig2_biospecimen_availability: https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/biospecimen-availability/ - snomed_ct: http://snomed.info/id/ + snomed_ct: http://snomed.info/id/ cam: prefix_prefix: cam prefix_reference: https://includedcc.org/common-access-model/ diff --git a/tests/data/valid/IncludeParticipant-000.yaml b/tests/data/valid/IncludeParticipant-000.yaml index 6e03199..fed4647 100644 --- a/tests/data/valid/IncludeParticipant-000.yaml +++ b/tests/data/valid/IncludeParticipant-000.yaml @@ -1,6 +1,6 @@ subject_id: subject000 -sex: male -race: - - american_indian_or_alaska_native -ethnicity: hispanic_or_latino -down_syndrome_status: d21 \ No newline at end of file +sex: snomedct:248153007 +race: + - CDCREC:1002-5 +ethnicity: CDCREC:2135-2 +down_syndrome_status: d21 diff --git a/tests/data/valid/Subject-000.yaml b/tests/data/valid/Subject-000.yaml index 54f88a0..bf5476b 100644 --- a/tests/data/valid/Subject-000.yaml +++ b/tests/data/valid/Subject-000.yaml @@ -1,2 +1,2 @@ subject_id: subject000 -subject_type: participant \ No newline at end of file +subject_type: CAMO:0000024 diff --git a/uv.lock b/uv.lock index 926c089..32f88b6 100644 --- a/uv.lock +++ b/uv.lock @@ -531,7 +531,7 @@ name = "exceptiongroup" version = "1.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "typing-extensions", marker = "python_full_version < '3.13'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/0b/9f/a65090624ecf468cdca03533906e7c69ed7588582240cfe7cc9e770b50eb/exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88", size = 29749, upload-time = "2025-05-10T17:42:51.123Z" } wheels = [ @@ -2037,15 +2037,16 @@ wheels = [ [[package]] name = "pyjsg" -version = "0.11.10" +version = "0.12.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "antlr4-python3-runtime" }, { name = "jsonasobj" }, + { name = "requests" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/90/61/e001a4b679a171f84783deb8e215a91c9f614cb498807e24e4f73ea4e5ed/PyJSG-0.11.10.tar.gz", hash = "sha256:4bd6e3ff2833fa2b395bbe803a2d72a5f0bab5b7285bccd0da1a1bc0aee88bfa", size = 130742, upload-time = "2022-04-14T17:18:24.511Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c4/4e/192169ba1066454f016927fc46c7e595a6c701fd1173bd249efcf6de40b3/pyjsg-0.12.4.tar.gz", hash = "sha256:bb1c0ff1f50846d2b5185b182e28b0b6978eae51a2078ce3eb1e0f28dea7b9ab", size = 149852, upload-time = "2026-05-01T14:43:44.665Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/96/ee/370c3b1908327dac967841ff723db391a02f3637c95c6898160e5ffe1060/PyJSG-0.11.10-py3-none-any.whl", hash = "sha256:10af60ff42219be7e85bf7f11c19b648715b0b29eb2ddbd269e87069a7c3f26d", size = 80763, upload-time = "2022-04-14T17:18:23.169Z" }, + { url = "https://files.pythonhosted.org/packages/09/05/d129d016f5124adb882816bdaef44bb877e313ceb0a109abcf553f1ac90c/pyjsg-0.12.4-py3-none-any.whl", hash = "sha256:a57ae58bfd7192b32654a0024bc6462fb459d54e837f0b2b5cff0726aad2e557", size = 81728, upload-time = "2026-05-01T14:43:43.394Z" }, ] [[package]] @@ -2592,14 +2593,14 @@ wheels = [ [[package]] name = "shexjsg" -version = "0.8.2" +version = "0.9.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyjsg" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/30/c9/34224e3c8fd9d466535626e3c2f6e01f6adae3e82acaed353d42add509ec/ShExJSG-0.8.2.tar.gz", hash = "sha256:f17a629fc577fa344382bdee143cd9ff86588537f9f811f66cea6f63cdbcd0b6", size = 33550, upload-time = "2022-04-14T20:23:13.75Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d4/d6/6e948660a888a37a5100e7bf7109e89b249ed526df430b674da12950de17/shexjsg-0.9.0.tar.gz", hash = "sha256:750016fabdb5487b27e2e714145f3602cd3ac4eb0dd9b7d7751d0cde62c0d1d8", size = 65164, upload-time = "2026-05-04T13:34:38.537Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/18/6e/d23bcde21d4ef0250a74e7505d2990d429f862be65810a3b650a69def7f0/ShExJSG-0.8.2-py2.py3-none-any.whl", hash = "sha256:3b0d8432dd313bee9e1343382c5e02e9908dd941a7dd7342bf8c0200fe523766", size = 14381, upload-time = "2022-04-14T20:23:12.515Z" }, + { url = "https://files.pythonhosted.org/packages/86/72/b03ca1560615933f079ba7d291d3532ed95c2a3205911fe71d192654acaa/shexjsg-0.9.0-py3-none-any.whl", hash = "sha256:abf18db2d9895bc46740f68ae699b2ccfe08c783f6e0c038e6077293ad01c0a5", size = 15344, upload-time = "2026-05-04T13:34:36.955Z" }, ] [[package]]