information-resource-registry 0.0.0__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.
- information_resource_registry-0.0.0/.cruft.json +27 -0
- information_resource_registry-0.0.0/.env.public +27 -0
- information_resource_registry-0.0.0/.github/workflows/pr-auto-standardize.yaml +59 -0
- information_resource_registry-0.0.0/.github/workflows/pr-verify-pull-request.yaml +52 -0
- information_resource_registry-0.0.0/.github/workflows/push-main-regenerate-artifacts.yaml +62 -0
- information_resource_registry-0.0.0/.github/workflows/release-deploy-docs.yaml +40 -0
- information_resource_registry-0.0.0/.github/workflows/release-pypi-publish.yaml +33 -0
- information_resource_registry-0.0.0/.github/workflows/release-upload-artifacts.yaml +46 -0
- information_resource_registry-0.0.0/.github/workflows/weekly-url-check.yaml +35 -0
- information_resource_registry-0.0.0/.gitignore +145 -0
- information_resource_registry-0.0.0/.linkmllint.yaml +10 -0
- information_resource_registry-0.0.0/.yamllint-config +38 -0
- information_resource_registry-0.0.0/CODE_OF_CONDUCT.md +76 -0
- information_resource_registry-0.0.0/CONTRIBUTING.md +121 -0
- information_resource_registry-0.0.0/LICENSE +202 -0
- information_resource_registry-0.0.0/Makefile +93 -0
- information_resource_registry-0.0.0/PKG-INFO +68 -0
- information_resource_registry-0.0.0/README.md +30 -0
- information_resource_registry-0.0.0/about.yaml +5 -0
- information_resource_registry-0.0.0/config.env +8 -0
- information_resource_registry-0.0.0/config.yaml +41 -0
- information_resource_registry-0.0.0/documentation.Makefile +45 -0
- information_resource_registry-0.0.0/examples/InformationResourceContainer-001.yaml +27 -0
- information_resource_registry-0.0.0/examples/README.md +5 -0
- information_resource_registry-0.0.0/infores_catalog.yaml +5856 -0
- information_resource_registry-0.0.0/linkml.Makefile +49 -0
- information_resource_registry-0.0.0/mkdocs.yml +32 -0
- information_resource_registry-0.0.0/project/graphql/information_resource_registry.graphql +53 -0
- information_resource_registry-0.0.0/project/information_resource_registry.py +300 -0
- information_resource_registry-0.0.0/project/jsonld/information_resource_registry.context.jsonld +73 -0
- information_resource_registry-0.0.0/project/jsonld/information_resource_registry.jsonld +716 -0
- information_resource_registry-0.0.0/project/jsonschema/information_resource_registry.schema.json +191 -0
- information_resource_registry-0.0.0/project/owl/information_resource.owl.ttl +324 -0
- information_resource_registry-0.0.0/project/owl/information_resource_registry.owl.ttl +183 -0
- information_resource_registry-0.0.0/project/prefixmap/information-resource.yaml +12 -0
- information_resource_registry-0.0.0/project/prefixmap/information_resource_registry.yaml +6 -0
- information_resource_registry-0.0.0/project/protobuf/information_resource_registry.proto +23 -0
- information_resource_registry-0.0.0/project/shacl/information_resource_registry.shacl.ttl +78 -0
- information_resource_registry-0.0.0/project/shex/information_resource_registry.shex +86 -0
- information_resource_registry-0.0.0/pyproject.toml +68 -0
- information_resource_registry-0.0.0/src/data/examples/InformationResourceContainer-001.yaml +23 -0
- information_resource_registry-0.0.0/src/doc-templates/class.md.jinja2 +91 -0
- information_resource_registry-0.0.0/src/doc-templates/class_diagram.md.jinja2 +59 -0
- information_resource_registry-0.0.0/src/doc-templates/common_metadata.md.jinja2 +55 -0
- information_resource_registry-0.0.0/src/doc-templates/enum.md.jinja2 +42 -0
- information_resource_registry-0.0.0/src/doc-templates/index.md.jinja2 +38 -0
- information_resource_registry-0.0.0/src/doc-templates/overview.md.jinja2 +9 -0
- information_resource_registry-0.0.0/src/doc-templates/resource.md.jinja2 +34 -0
- information_resource_registry-0.0.0/src/doc-templates/schema.md.jinja2 +6 -0
- information_resource_registry-0.0.0/src/doc-templates/slot.md.jinja2 +79 -0
- information_resource_registry-0.0.0/src/doc-templates/subset.md.jinja2 +104 -0
- information_resource_registry-0.0.0/src/doc-templates/type.md.jinja2 +20 -0
- information_resource_registry-0.0.0/src/docs/about.md +11 -0
- information_resource_registry-0.0.0/src/docs/appendices.md +42 -0
- information_resource_registry-0.0.0/src/docs/biolink-infores-parameters.md +35 -0
- information_resource_registry-0.0.0/src/docs/images/biolink-logo.png +0 -0
- information_resource_registry-0.0.0/src/docs/implementation-guidance.md +60 -0
- information_resource_registry-0.0.0/src/docs/knowledge-source-retrieval.md +43 -0
- information_resource_registry-0.0.0/src/docs/sankey.html +27 -0
- information_resource_registry-0.0.0/src/docs/style.css +81 -0
- information_resource_registry-0.0.0/src/information_resource_registry/_version.py +7 -0
- information_resource_registry-0.0.0/src/information_resource_registry/datamodel/__init__.py +1 -0
- information_resource_registry-0.0.0/src/information_resource_registry/datamodel/information_resource_registry.py +300 -0
- information_resource_registry-0.0.0/src/information_resource_registry/datamodel/pydanticmodel_v2.py +1 -0
- information_resource_registry-0.0.0/src/information_resource_registry/generate_lexical_mappings.py +94 -0
- information_resource_registry-0.0.0/src/information_resource_registry/schema/information_resource_registry.yaml +263 -0
- information_resource_registry-0.0.0/src/information_resource_registry/standardization/standardize.py +326 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/Automat_infores.py +148 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/README +24 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/__init__.py +0 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/add_consume_info.py +93 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/aragorn_kps.py +28 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/arax_kps.py +31 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/bte_sp.py +74 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/data/aragorn_to_kps.json +41 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/data/arax_infores_list.json +47 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/data/ars_to_aras.json +9 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/data/bte_to_kps.json +1 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/data/clinicaldata_infores_list.json +15 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/data/consume_info.csv +376 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/data/data_flow_diagram.png +0 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/data/geneticskp_resources.json +8 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/data/kps_to_apis.json +182 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/data/molepro_resources.json +38 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/data/rtx-kg2.json +91 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/data/sankey_diagram.png +0 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/data/sp_to_kps.json +65 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/data/unsecret.json +7 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/extract_consume_info.py +36 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/generate_sankey.py +49 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/geneticskp_consume.py +38 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/molepro_consume.py +30 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/requirements.txt +5 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/rtx_kg2.py +25 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/sync_rtx_kg2_data.py +88 -0
- information_resource_registry-0.0.0/src/information_resource_registry/translator_dataflow/unsecret.py +24 -0
- information_resource_registry-0.0.0/src/information_resource_registry/validation/check_urls.py +120 -0
- information_resource_registry-0.0.0/src/information_resource_registry/validation/extract_unhelpful_urls.py +29 -0
- information_resource_registry-0.0.0/tests/__init__.py +1 -0
- information_resource_registry-0.0.0/tests/test_data.py +37 -0
- information_resource_registry-0.0.0/translator_dataflow.Makefile +33 -0
- information_resource_registry-0.0.0/utils/generate-registry.py +40 -0
- information_resource_registry-0.0.0/utils/get-value.sh +4 -0
- information_resource_registry-0.0.0/validation.Makefile +10 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"template": "https://github.com/linkml/linkml-project-cookiecutter",
|
|
3
|
+
"commit": "d9b85bbbdcc49163416a3e3e18e23fe2ecce501b",
|
|
4
|
+
"checkout": null,
|
|
5
|
+
"context": {
|
|
6
|
+
"cookiecutter": {
|
|
7
|
+
"project_name": "information-resource-registry",
|
|
8
|
+
"__project_slug": "information_resource_registry",
|
|
9
|
+
"github_org": "biolink",
|
|
10
|
+
"__source_path": "src/information_resource_registry/schema/information_resource_registry.yaml",
|
|
11
|
+
"project_description": "The information resource registry is a listing of data sources present in the NCATS Data Translator system. Each information resource has an identifier, a short description, and an URL to more information about that resource.",
|
|
12
|
+
"full_name": "Sierra Moxon",
|
|
13
|
+
"email": "smoxon@lbl.gov",
|
|
14
|
+
"__author": "Sierra Moxon <smoxon@lbl.gov>",
|
|
15
|
+
"license": "Apache Software License 2.0",
|
|
16
|
+
"main_schema_class": "InformationResourceContainer",
|
|
17
|
+
"create_python_classes": "No",
|
|
18
|
+
"use_schemasheets": "No",
|
|
19
|
+
"google_sheet_id": "1wVoaiFg47aT9YWNeRfTZ8tYHN8s8PAuDx5i2HUcDpvQ",
|
|
20
|
+
"google_sheet_tabs": "personinfo enums",
|
|
21
|
+
"__google_sheet_module": "personinfo_enums",
|
|
22
|
+
"github_token_for_pypi_deployment": "PYPI_PASSWORD",
|
|
23
|
+
"_template": "https://github.com/linkml/linkml-project-cookiecutter"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"directory": null
|
|
27
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# This file is public in git. No sensitive info allowed.
|
|
2
|
+
|
|
3
|
+
###### schema definition variables, used by makefile
|
|
4
|
+
|
|
5
|
+
LINKML_SCHEMA_NAME="information_resource_registry"
|
|
6
|
+
LINKML_SCHEMA_AUTHOR="Sierra Moxon <smoxon@lbl.gov>"
|
|
7
|
+
LINKML_SCHEMA_DESCRIPTION="The information resource registry is a listing of data sources present in the NCATS Data Translator system. Each information resource has an identifier, a short description, and an URL to more information about that resource."
|
|
8
|
+
LINKML_SCHEMA_SOURCE_PATH="src/information_resource_registry/schema/information_resource_registry.yaml"
|
|
9
|
+
LINKML_SCHEMA_GOOGLE_SHEET_ID="1wVoaiFg47aT9YWNeRfTZ8tYHN8s8PAuDx5i2HUcDpvQ"
|
|
10
|
+
LINKML_SCHEMA_GOOGLE_SHEET_TABS="personinfo enums"
|
|
11
|
+
|
|
12
|
+
###### linkml generator variables, used by makefile
|
|
13
|
+
|
|
14
|
+
## gen-project configuration file
|
|
15
|
+
LINKML_GENERATORS_CONFIG_YAML= --config-file config.yaml
|
|
16
|
+
|
|
17
|
+
## pass args if gendoc ignores config.yaml (i.e. --no-mergeimports)
|
|
18
|
+
LINKML_GENERATORS_DOC_ARGS=
|
|
19
|
+
|
|
20
|
+
## pass args to workaround genowl rdfs config bug (linkml#1453)
|
|
21
|
+
## (i.e. --no-type-objects --no-metaclasses --metadata-profile rdfs)
|
|
22
|
+
LINKML_GENERATORS_OWL_ARGS=
|
|
23
|
+
|
|
24
|
+
## pass args to trigger experimental java/typescript generation
|
|
25
|
+
LINKML_GENERATORS_JAVA_ARGS=
|
|
26
|
+
LINKML_GENERATORS_TYPESCRIPT_ARGS=
|
|
27
|
+
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
name: Auto-standardize catalog on PR
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
types: [opened, synchronize, reopened]
|
|
6
|
+
paths:
|
|
7
|
+
- 'infores_catalog.yaml'
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: write
|
|
11
|
+
pull-requests: write
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
standardize:
|
|
15
|
+
# Skip forks
|
|
16
|
+
if: ${{ github.event.pull_request.head.repo.full_name == github.repository }}
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
|
|
19
|
+
steps:
|
|
20
|
+
- name: Checkout PR branch
|
|
21
|
+
uses: actions/checkout@v4
|
|
22
|
+
with:
|
|
23
|
+
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
|
24
|
+
ref: ${{ github.event.pull_request.head.ref }}
|
|
25
|
+
fetch-depth: 0
|
|
26
|
+
|
|
27
|
+
- name: Setup Python
|
|
28
|
+
uses: actions/setup-python@v5
|
|
29
|
+
with:
|
|
30
|
+
python-version: '3.11'
|
|
31
|
+
|
|
32
|
+
- name: Install uv
|
|
33
|
+
uses: astral-sh/setup-uv@v4
|
|
34
|
+
with:
|
|
35
|
+
enable-cache: true
|
|
36
|
+
|
|
37
|
+
- name: Install dependencies
|
|
38
|
+
run: uv sync --all-extras
|
|
39
|
+
|
|
40
|
+
- name: Run standardization
|
|
41
|
+
run: make standardize-data
|
|
42
|
+
|
|
43
|
+
- name: Check for changes
|
|
44
|
+
id: git-check
|
|
45
|
+
run: |
|
|
46
|
+
if git diff --quiet -- infores_catalog.yaml; then
|
|
47
|
+
echo "changed=false" >> "$GITHUB_OUTPUT"
|
|
48
|
+
else
|
|
49
|
+
echo "changed=true" >> "$GITHUB_OUTPUT"
|
|
50
|
+
fi
|
|
51
|
+
|
|
52
|
+
- name: Commit and push if changed
|
|
53
|
+
if: steps.git-check.outputs.changed == 'true'
|
|
54
|
+
run: |
|
|
55
|
+
git config --local user.email "github-actions[bot]@users.noreply.github.com"
|
|
56
|
+
git config --local user.name "github-actions[bot]"
|
|
57
|
+
git add infores_catalog.yaml
|
|
58
|
+
git commit -m "Auto-standardize infores_catalog.yaml"
|
|
59
|
+
git push
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# This is a basic workflow to help you get started with Actions
|
|
2
|
+
|
|
3
|
+
name: Verify Pull Request
|
|
4
|
+
|
|
5
|
+
# Controls when the action will run.
|
|
6
|
+
on:
|
|
7
|
+
pull_request:
|
|
8
|
+
types: [opened, synchronize, reopened]
|
|
9
|
+
workflow_dispatch:
|
|
10
|
+
types: trigger-verify-pull-request
|
|
11
|
+
|
|
12
|
+
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
|
13
|
+
jobs:
|
|
14
|
+
# This workflow contains a single job called "build"
|
|
15
|
+
build:
|
|
16
|
+
# The type of runner that the job will run on
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
strategy:
|
|
19
|
+
matrix:
|
|
20
|
+
python: [ "3.10", "3.11", "3.12" ]
|
|
21
|
+
|
|
22
|
+
# Steps represent a sequence of tasks that will be executed as part of the job
|
|
23
|
+
steps:
|
|
24
|
+
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
|
25
|
+
- uses: actions/checkout@v2
|
|
26
|
+
|
|
27
|
+
- uses: actions/setup-python@v5
|
|
28
|
+
name: setup python environment
|
|
29
|
+
with:
|
|
30
|
+
python-version: ${{ matrix.python }}
|
|
31
|
+
|
|
32
|
+
- name: Install uv
|
|
33
|
+
uses: astral-sh/setup-uv@v4
|
|
34
|
+
with:
|
|
35
|
+
enable-cache: true
|
|
36
|
+
|
|
37
|
+
- name: Install dependencies
|
|
38
|
+
run: uv sync --all-extras
|
|
39
|
+
|
|
40
|
+
- name: Run tests, codespell, and yamllint
|
|
41
|
+
run: |
|
|
42
|
+
make test_pr
|
|
43
|
+
|
|
44
|
+
- name: Validate YAML file
|
|
45
|
+
run: yamllint -c .yamllint-config src/information_resource_registry/schema/information_resource_registry.yaml
|
|
46
|
+
|
|
47
|
+
- name: Codespell
|
|
48
|
+
uses: codespell-project/actions-codespell@v1
|
|
49
|
+
with:
|
|
50
|
+
ignore_words_list: amination,ehr,mor,nin,brite,mirgate,BRITE
|
|
51
|
+
skip: SEMMEDDB*,semmed*,.idea,.venv,.git,*.pdf,*.svg,context.*,registry.md
|
|
52
|
+
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
name: Regenerate Information Resource Registry Artifacts
|
|
2
|
+
|
|
3
|
+
# Controls when the action will run. Triggers the workflow on push
|
|
4
|
+
# event but only for the master branch, and specifically on the information_resource_registry.yaml
|
|
5
|
+
on:
|
|
6
|
+
push:
|
|
7
|
+
branches:
|
|
8
|
+
- main
|
|
9
|
+
schedule:
|
|
10
|
+
- cron: '0 7 * * 1' # at 07:00 UTC every Monday
|
|
11
|
+
workflow_dispatch:
|
|
12
|
+
types: trigger-build-artifacts
|
|
13
|
+
|
|
14
|
+
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
|
15
|
+
jobs:
|
|
16
|
+
# This workflow contains a single job called "build"
|
|
17
|
+
build:
|
|
18
|
+
# The type of runner that the job will run on
|
|
19
|
+
runs-on: ubuntu-latest
|
|
20
|
+
|
|
21
|
+
# Steps represent a sequence of tasks that will be executed as part of the job
|
|
22
|
+
steps:
|
|
23
|
+
# Checks-out your repository under $GITHUB_WORKSPACE
|
|
24
|
+
- name: Checkout
|
|
25
|
+
uses: actions/checkout@v2
|
|
26
|
+
|
|
27
|
+
- name: Setup Python Environment
|
|
28
|
+
uses: actions/setup-python@v5
|
|
29
|
+
with:
|
|
30
|
+
# Version range or exact version of a Python version to use, using SemVer's version range syntax.
|
|
31
|
+
python-version: '3.11'
|
|
32
|
+
|
|
33
|
+
- name: Install uv
|
|
34
|
+
uses: astral-sh/setup-uv@v4
|
|
35
|
+
with:
|
|
36
|
+
enable-cache: true
|
|
37
|
+
|
|
38
|
+
- name: Setup build environment
|
|
39
|
+
run: |
|
|
40
|
+
sudo apt-get update
|
|
41
|
+
sudo apt-get install -y build-essential git wget curl
|
|
42
|
+
|
|
43
|
+
- name: Install dependencies
|
|
44
|
+
run: uv sync --all-extras
|
|
45
|
+
|
|
46
|
+
- name: Generate Information Resource Registry Artifacts
|
|
47
|
+
run: |
|
|
48
|
+
make gen-project
|
|
49
|
+
make test_pr
|
|
50
|
+
make sankey
|
|
51
|
+
make gendoc
|
|
52
|
+
if [ $? -eq 0 ]; then
|
|
53
|
+
git config --local user.email "action@github.com"
|
|
54
|
+
git config --local user.name "GitHub Action"
|
|
55
|
+
git add project/*
|
|
56
|
+
git add src/*
|
|
57
|
+
git add infores_catalog.yaml
|
|
58
|
+
git commit -m "Regenerate artifacts from infores_catalog.yaml"
|
|
59
|
+
git push
|
|
60
|
+
else
|
|
61
|
+
echo "'make' gen-project failed to finish successfully"
|
|
62
|
+
fi
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Auto-deployment of Information Resource Registry Documentation
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
release:
|
|
6
|
+
types: [created]
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
types: trigger-deploy-docs
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
build-docs:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
steps:
|
|
14
|
+
- name: Checkout
|
|
15
|
+
uses: actions/checkout@v3
|
|
16
|
+
with:
|
|
17
|
+
fetch-depth: 0 # otherwise, you will fail to push refs to dest repo
|
|
18
|
+
|
|
19
|
+
- name: Set up Python 3.11
|
|
20
|
+
uses: actions/setup-python@v5
|
|
21
|
+
with:
|
|
22
|
+
python-version: '3.11'
|
|
23
|
+
|
|
24
|
+
- name: Install uv
|
|
25
|
+
uses: astral-sh/setup-uv@v4
|
|
26
|
+
with:
|
|
27
|
+
enable-cache: true
|
|
28
|
+
|
|
29
|
+
- name: Install dependencies
|
|
30
|
+
run: uv sync --extra docs
|
|
31
|
+
|
|
32
|
+
- name: Build documentation.
|
|
33
|
+
run: |
|
|
34
|
+
mkdir -p docs
|
|
35
|
+
touch docs/.nojekyll
|
|
36
|
+
make gendoc
|
|
37
|
+
([ ! -f docs/about.md ] && cp src/docs/about.md docs/) || true
|
|
38
|
+
make mkd-gh-deploy
|
|
39
|
+
|
|
40
|
+
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Publish Python Package
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
release:
|
|
6
|
+
types: [created]
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
types: trigger-pypi-publish
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
build-n-publish:
|
|
12
|
+
name: Build and publish Python 🐍 distributions 📦 to PyPI
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v3
|
|
17
|
+
|
|
18
|
+
- name: Set up Python
|
|
19
|
+
uses: actions/setup-python@v5
|
|
20
|
+
with:
|
|
21
|
+
python-version: '3.11'
|
|
22
|
+
|
|
23
|
+
- name: Install uv
|
|
24
|
+
uses: astral-sh/setup-uv@v4
|
|
25
|
+
|
|
26
|
+
- name: Build source and wheel archives
|
|
27
|
+
run: uv build
|
|
28
|
+
|
|
29
|
+
- name: Publish distribution 📦 to PyPI
|
|
30
|
+
uses: pypa/gh-action-pypi-publish@v1.2.2
|
|
31
|
+
with:
|
|
32
|
+
user: __token__
|
|
33
|
+
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Upload Release Artifacts
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
release:
|
|
6
|
+
types: [created]
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
upload-artifacts:
|
|
11
|
+
name: Create and upload release artifacts
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
|
|
14
|
+
steps:
|
|
15
|
+
- name: Checkout repository
|
|
16
|
+
uses: actions/checkout@v3
|
|
17
|
+
|
|
18
|
+
- name: Set up Python
|
|
19
|
+
uses: actions/setup-python@v5
|
|
20
|
+
with:
|
|
21
|
+
python-version: '3.11'
|
|
22
|
+
|
|
23
|
+
- name: Install uv
|
|
24
|
+
uses: astral-sh/setup-uv@v4
|
|
25
|
+
with:
|
|
26
|
+
enable-cache: true
|
|
27
|
+
|
|
28
|
+
- name: Install dependencies
|
|
29
|
+
run: uv sync --all-extras
|
|
30
|
+
|
|
31
|
+
- name: Install jq
|
|
32
|
+
run: sudo apt-get install -y jq
|
|
33
|
+
|
|
34
|
+
- name: Generate release artifacts
|
|
35
|
+
run: make create_release_extras
|
|
36
|
+
|
|
37
|
+
- name: Upload to GitHub Release
|
|
38
|
+
uses: softprops/action-gh-release@v2
|
|
39
|
+
with:
|
|
40
|
+
files: release-output/*
|
|
41
|
+
|
|
42
|
+
- name: Upload release artifacts (for debugging)
|
|
43
|
+
uses: actions/upload-artifact@v4
|
|
44
|
+
with:
|
|
45
|
+
name: release-artifacts
|
|
46
|
+
path: release-output/
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
name: Check Infores Catalog Links and Regenerate Artifacts
|
|
2
|
+
on:
|
|
3
|
+
schedule:
|
|
4
|
+
- cron: '0 7 * * 1' # at 07:00 UTC every Monday
|
|
5
|
+
workflow_dispatch:
|
|
6
|
+
types: trigger-url-check
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
check-external-links:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
steps:
|
|
13
|
+
- name: Checkout
|
|
14
|
+
uses: actions/checkout@v3.1.0
|
|
15
|
+
with:
|
|
16
|
+
fetch-depth: 0
|
|
17
|
+
|
|
18
|
+
- name: Set up Python 3.11
|
|
19
|
+
uses: actions/setup-python@v5
|
|
20
|
+
with:
|
|
21
|
+
python-version: '3.11'
|
|
22
|
+
|
|
23
|
+
- name: Install uv
|
|
24
|
+
uses: astral-sh/setup-uv@v4
|
|
25
|
+
with:
|
|
26
|
+
enable-cache: true
|
|
27
|
+
|
|
28
|
+
- name: Install dependencies
|
|
29
|
+
run: uv sync --all-extras
|
|
30
|
+
|
|
31
|
+
- name: Run URL validation
|
|
32
|
+
run: |
|
|
33
|
+
make check_urls
|
|
34
|
+
|
|
35
|
+
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/docs/
|
|
2
|
+
/project/docs/
|
|
3
|
+
/tmp/
|
|
4
|
+
|
|
5
|
+
# Byte-compiled / optimized / DLL files
|
|
6
|
+
__pycache__/
|
|
7
|
+
*.py[cod]
|
|
8
|
+
*$py.class
|
|
9
|
+
|
|
10
|
+
# C extensions
|
|
11
|
+
*.so
|
|
12
|
+
|
|
13
|
+
# Distribution / packaging
|
|
14
|
+
.Python
|
|
15
|
+
build/
|
|
16
|
+
develop-eggs/
|
|
17
|
+
dist/
|
|
18
|
+
downloads/
|
|
19
|
+
eggs/
|
|
20
|
+
.eggs/
|
|
21
|
+
lib/
|
|
22
|
+
lib64/
|
|
23
|
+
parts/
|
|
24
|
+
sdist/
|
|
25
|
+
var/
|
|
26
|
+
wheels/
|
|
27
|
+
pip-wheel-metadata/
|
|
28
|
+
share/python-wheels/
|
|
29
|
+
*.egg-info/
|
|
30
|
+
.installed.cfg
|
|
31
|
+
*.egg
|
|
32
|
+
MANIFEST
|
|
33
|
+
|
|
34
|
+
# PyInstaller
|
|
35
|
+
# Usually these files are written by a python script from a template
|
|
36
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
37
|
+
*.manifest
|
|
38
|
+
*.spec
|
|
39
|
+
|
|
40
|
+
# Installer logs
|
|
41
|
+
pip-log.txt
|
|
42
|
+
pip-delete-this-directory.txt
|
|
43
|
+
|
|
44
|
+
# Unit test / coverage reports
|
|
45
|
+
htmlcov/
|
|
46
|
+
.tox/
|
|
47
|
+
.nox/
|
|
48
|
+
.coverage
|
|
49
|
+
.coverage.*
|
|
50
|
+
.cache
|
|
51
|
+
nosetests.xml
|
|
52
|
+
coverage.xml
|
|
53
|
+
*.cover
|
|
54
|
+
*.py,cover
|
|
55
|
+
.hypothesis/
|
|
56
|
+
.pytest_cache/
|
|
57
|
+
|
|
58
|
+
# Translations
|
|
59
|
+
*.mo
|
|
60
|
+
*.pot
|
|
61
|
+
|
|
62
|
+
# Django stuff:
|
|
63
|
+
*.log
|
|
64
|
+
local_settings.py
|
|
65
|
+
db.sqlite3
|
|
66
|
+
db.sqlite3-journal
|
|
67
|
+
|
|
68
|
+
# Flask stuff:
|
|
69
|
+
instance/
|
|
70
|
+
.webassets-cache
|
|
71
|
+
|
|
72
|
+
# Scrapy stuff:
|
|
73
|
+
.scrapy
|
|
74
|
+
|
|
75
|
+
# Sphinx documentation
|
|
76
|
+
docs/_build/
|
|
77
|
+
|
|
78
|
+
# PyBuilder
|
|
79
|
+
target/
|
|
80
|
+
|
|
81
|
+
# Jupyter Notebook
|
|
82
|
+
.ipynb_checkpoints
|
|
83
|
+
|
|
84
|
+
# IPython
|
|
85
|
+
profile_default/
|
|
86
|
+
ipython_config.py
|
|
87
|
+
|
|
88
|
+
# pyenv
|
|
89
|
+
.python-version
|
|
90
|
+
|
|
91
|
+
# pipenv
|
|
92
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
93
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
94
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
95
|
+
# install all needed dependencies.
|
|
96
|
+
#Pipfile.lock
|
|
97
|
+
|
|
98
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
|
99
|
+
__pypackages__/
|
|
100
|
+
|
|
101
|
+
# Celery stuff
|
|
102
|
+
celerybeat-schedule
|
|
103
|
+
celerybeat.pid
|
|
104
|
+
|
|
105
|
+
# SageMath parsed files
|
|
106
|
+
*.sage.py
|
|
107
|
+
|
|
108
|
+
# Environments
|
|
109
|
+
.env
|
|
110
|
+
.venv
|
|
111
|
+
.idea
|
|
112
|
+
env/
|
|
113
|
+
venv/
|
|
114
|
+
ENV/
|
|
115
|
+
env.bak/
|
|
116
|
+
venv.bak/
|
|
117
|
+
|
|
118
|
+
# uv
|
|
119
|
+
.python-version
|
|
120
|
+
uv.lock
|
|
121
|
+
.uv/
|
|
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
|
+
release-output
|
|
141
|
+
|
|
142
|
+
.DS_Store
|
|
143
|
+
src/docs/registry.md
|
|
144
|
+
src/docs/resources/*
|
|
145
|
+
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
|
|
3
|
+
yaml-files:
|
|
4
|
+
- '*.yaml'
|
|
5
|
+
- '*.yml'
|
|
6
|
+
- '.yamllint'
|
|
7
|
+
|
|
8
|
+
rules:
|
|
9
|
+
anchors: enable
|
|
10
|
+
braces: enable
|
|
11
|
+
brackets: enable
|
|
12
|
+
colons: enable
|
|
13
|
+
commas: enable
|
|
14
|
+
comments:
|
|
15
|
+
level: warning
|
|
16
|
+
comments-indentation: disable
|
|
17
|
+
document-end: disable
|
|
18
|
+
document-start:
|
|
19
|
+
level: warning
|
|
20
|
+
empty-lines: enable
|
|
21
|
+
empty-values: disable
|
|
22
|
+
float-values: disable
|
|
23
|
+
hyphens: enable
|
|
24
|
+
indentation: enable
|
|
25
|
+
key-duplicates: enable
|
|
26
|
+
key-ordering: disable
|
|
27
|
+
line-length:
|
|
28
|
+
level: warning
|
|
29
|
+
max: 200
|
|
30
|
+
allow-non-breakable-words: true
|
|
31
|
+
allow-non-breakable-inline-mappings: false
|
|
32
|
+
new-line-at-end-of-file: enable
|
|
33
|
+
new-lines: enable
|
|
34
|
+
octal-values: disable
|
|
35
|
+
quoted-strings: disable
|
|
36
|
+
trailing-spaces: disable
|
|
37
|
+
truthy:
|
|
38
|
+
level: warning
|
|
@@ -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/
|