diff --git a/.cruft.json b/.cruft.json
index 75b331e..c54bb52 100644
--- a/.cruft.json
+++ b/.cruft.json
@@ -1,6 +1,6 @@
{
"template": "https://github.com/linkml/linkml-project-cookiecutter",
- "commit": "075814464fcb88b2fff34c91d76e8d294b51b3ca",
+ "commit": "b2da87eb7835bfec748a76823d098cac85e8363a",
"checkout": null,
"context": {
"cookiecutter": {
diff --git a/.github/workflows/deploy-docs.yaml b/.github/workflows/deploy-docs.yaml
index 657fabf..1846e58 100644
--- a/.github/workflows/deploy-docs.yaml
+++ b/.github/workflows/deploy-docs.yaml
@@ -1,31 +1,40 @@
+---
name: Auto-deployment of cmdr Documentation
on:
push:
- branches: [ main ]
+ branches: [main]
jobs:
build-docs:
runs-on: ubuntu-latest
+
+ # Grant GITHUB_TOKEN the permissions required to make a Pages deployment
+ permissions:
+ contents: write # to let mkdocs write the new docs
+ pages: write # to deploy to Pages
+ id-token: write # to verify the deployment originates from an appropriate source
+
steps:
- - name: Checkout
- uses: actions/checkout@main
- with:
- fetch-depth: 0 # otherwise, you will failed to push refs to dest repo
-
- - name: Set up Python 3.
- uses: actions/setup-python@v3
- with:
- python-version: 3.9
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0 # otherwise, you will failed to push refs to dest repo
+
+ - name: Set up Python.
+ uses: actions/setup-python@v4
+ with:
+ python-version: 3.9
+
+ - name: Install Poetry.
+ run: pipx install poetry
- - name: Install Poetry.
- uses: snok/install-poetry@v1.3
+ - name: Install dependencies.
+ run: poetry install -E docs
- - name: Install dependencies.
- run: poetry install -E docs
-
- - name: Build documentation.
- run: |
- mkdir -p docs
- touch docs/.nojekyll
- poetry run gen-doc -d docs src/cmdr/schema/cmdr.yaml
- poetry run mkdocs gh-deploy
\ No newline at end of file
+ - name: Build documentation.
+ run: |
+ mkdir -p docs
+ touch docs/.nojekyll
+ make gendoc
+ ([ ! -f docs/about.md ] && cp src/docs/about.md docs/) || true
+ make mkd-gh-deploy
diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml
index 469f0f2..7a489ec 100644
--- a/.github/workflows/main.yaml
+++ b/.github/workflows/main.yaml
@@ -1,7 +1,6 @@
# Built from:
# https://docs.github.com/en/actions/guides/building-and-testing-python
-# https://github.com/snok/install-poetry#workflows-and-tips
-
+---
name: Build and test cmdr
on: [pull_request]
@@ -16,38 +15,22 @@ jobs:
steps:
- #----------------------------------------------
- # check-out repo and set-up python
- #----------------------------------------------
- name: Check out repository
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
- - name: Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v2
+ - name: Set up Python
+ uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- #----------------------------------------------
- # install & configure poetry
- #----------------------------------------------
- name: Install Poetry
- uses: snok/install-poetry@v1.3
+ run: pipx install poetry
- #----------------------------------------------
- # install dependencies if cache does not exist
- #----------------------------------------------
- name: Install dependencies
run: poetry install --no-interaction --no-root
- #----------------------------------------------
- # install your root project, if required
- #----------------------------------------------
- - name: Install library
+ - name: Install project
run: poetry install --no-interaction
- #----------------------------------------------
- # run test suite
- #----------------------------------------------
- - name: Run tests
+ - name: Run test suite
run: make test
-
diff --git a/.github/workflows/pypi-publish.yaml b/.github/workflows/pypi-publish.yaml
index 518c03f..22d5a69 100644
--- a/.github/workflows/pypi-publish.yaml
+++ b/.github/workflows/pypi-publish.yaml
@@ -1,3 +1,4 @@
+---
name: Publish Python Package
on:
@@ -10,30 +11,26 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
-
- - name: Set up Python
- uses: actions/setup-python@v2.2.2
- with:
- python-version: 3.9
-
- - name: Install Poetry
- run: |
- pip install poetry
- poetry self add "poetry-dynamic-versioning[plugin]"
- # uses: snok/install-poetry@v1.1.6
- # with:
- # virtualenvs-create: true
- # virtualenvs-in-project: true
-
- # - name: Install dependencies
- # run: poetry install --no-interaction
-
- - name: Build source and wheel archives
- run: poetry build
-
- - name: Publish distribution 📦 to PyPI
- uses: pypa/gh-action-pypi-publish@v1.2.2
- with:
- user: __token__
- password: ${{ secrets.PYPI_PASSWORD }}
+ - uses: actions/checkout@v3
+
+ - name: Set up Python
+ uses: actions/setup-python@v4
+ with:
+ python-version: 3.9
+
+ - name: Install Poetry
+ run: |
+ pipx install poetry
+ poetry self add "poetry-dynamic-versioning[plugin]"
+
+ # - name: Install dependencies
+ # run: poetry install --no-interaction
+
+ - name: Build source and wheel archives
+ run: poetry build
+
+ - name: Publish distribution 📦 to PyPI
+ uses: pypa/gh-action-pypi-publish@v1.2.2
+ with:
+ user: __token__
+ password: ${{ secrets.PYPI_PASSWORD }}
diff --git a/.github/workflows/test_pages_build.yaml b/.github/workflows/test_pages_build.yaml
new file mode 100644
index 0000000..3c67fd5
--- /dev/null
+++ b/.github/workflows/test_pages_build.yaml
@@ -0,0 +1,44 @@
+name: Preview cmdr documentation build
+
+on:
+ pull_request:
+ types:
+ - opened
+ - reopened
+ - synchronize
+
+concurrency: preview-${{ github.ref }}
+
+jobs:
+ run:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+
+ - name: Set up Python 3
+ uses: actions/setup-python@v4
+ with:
+ python-version: 3.9
+
+ - name: Install Poetry
+ run: pipx install poetry
+
+ - name: Install dependencies
+ run: poetry install -E docs
+
+ - name: Build documentation
+ run: |
+ mkdir -p site
+ touch site/.nojekyll
+ make gendoc
+ ([ ! -f docs/about.md ] && cp src/docs/about.md docs/) || true
+ poetry run mkdocs build -d site
+
+ - name: Deploy preview
+ uses: rossjrw/pr-preview-action@v1
+ with:
+ source-dir: site/
+ preview-branch: gh-pages
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
index b547f39..2b301c6 100644
--- a/CODE_OF_CONDUCT.md
+++ b/CODE_OF_CONDUCT.md
@@ -2,11 +2,17 @@
## Our Pledge
-In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to make participation in our project and
+our community a harassment-free experience for everyone, regardless of age,
+body size, disability, ethnicity, gender identity and expression, level of
+experience, nationality, personal appearance, race, religion, or sexual
+identity and orientation.
## Our Standards
-Examples of behavior that contributes to creating a positive environment include:
+Examples of behavior that contributes to creating a positive environment
+include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
@@ -16,31 +22,55 @@ Examples of behavior that contributes to creating a positive environment include
Examples of unacceptable behavior by participants include:
-* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* The use of sexualized language or imagery and unwelcome sexual attention or
+ advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
-* Publishing others' private information, such as a physical or electronic address, without explicit permission
-* Other conduct which could reasonably be considered inappropriate in a professional setting
+* Publishing others' private information, such as a physical or electronic
+ address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a
+ professional setting
## Our Responsibilities
-Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
-Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
## Scope
-This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an
+appointed representative at an online or offline event. Representation of a
+project may be further defined and clarified by project maintainers.
## Enforcement
-Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by [contacting the project team](contact.md). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by [contacting the project team](contact.md). All complaints will be
+reviewed and investigated and will result in a response that is deemed
+necessary and appropriate to the circumstances. The project team is obligated
+to maintain confidentiality with regard to the reporter of an incident. Further
+details of specific enforcement policies may be posted separately.
-Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
## Attribution
-This code of conduct has been derived from the excellent code of conduct of the [ATOM project](https://github.com/atom/atom/blob/master/CODE_OF_CONDUCT.md) which in turn is adapted from the [Contributor Covenant][homepage], version 1.4, available at [https://contributor-covenant.org/version/1/4][version]
+This code of conduct has been derived from the excellent code of conduct of the
+[ATOM project](https://github.com/atom/atom/blob/master/CODE_OF_CONDUCT.md)
+which in turn is adapted from the [Contributor Covenant][homepage], version
+1.4, available at [https://contributor-covenant.org/version/1/4][version]
[homepage]: https://contributor-covenant.org
[version]: https://contributor-covenant.org/version/1/4/
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index f57fee3..1608a6d 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -2,20 +2,21 @@
:+1: First of all: Thank you for taking the time to contribute!
-The following is a set of guidelines for contributing to cmdr.
-These guidelines are not strict rules. Use your best judgment, and feel free to propose
-changes to this document in a pull request.
+The following is a set of guidelines for contributing to
+cmdr. These guidelines are not strict rules.
+Use your best judgment, and feel free to propose changes to this document
+in a pull request.
## Table Of Contents
-- [Code of Conduct](#code-of-conduct)
-- [Guidelines for Contributions and Requests](#contributions)
- * [Reporting problems with the ontology](#reporting-bugs)
- * [Requesting new terms](#requesting-terms)
- * [Adding new terms by yourself](#adding-terms)
-- [Best practices](#best-practices)
- * [How to write a great issue?](#great-issues)
- * [How to create a great pull/merge request?](#great-pulls)
+* [Code of Conduct](#code-of-conduct)
+* [Guidelines for Contributions and Requests](#contributions)
+ * [Reporting issues and making requests](#reporting-issues)
+ * [Questions and Discussion](#questions-and-discussion)
+ * [Adding new elements yourself](#adding-elements)
+* [Best Practices](#best-practices)
+ * [How to write a great issue](#great-issues)
+ * [How to create a great pull/merge request](#great-pulls)
@@ -29,9 +30,92 @@ Please carefully read our [Code of Conduct](CODE_OF_CONDUCT.md).
## Guidelines for Contributions and Requests
-
+
-### Reporting problems with the data model
+### Reporting problems and suggesting changes to with the data model
-Please use our [Issue Tracker](https://github.com/linkml/cmdr/issues/) for reporting problems with the ontology.
+Please use our [Issue Tracker][issues] for any of the following:
+- Reporting problems
+- Requesting new schema elements
+
+
+
+### Questions and Discussions
+
+Please use our [Discussions forum][discussions] to ask general questions or contribute to discussions.
+
+
+
+### Adding new elements yourself
+
+Please submit a [Pull Request][pulls] to submit a new term for consideration.
+
+
+
+## Best Practices
+
+
+
+### GitHub Best Practice
+
+- Creating and curating issues
+ - Read ["About Issues"][[about-issues]]
+ - Issues should be focused and actionable
+ - Complex issues should be broken down into simpler issues where possible
+- Pull Requests
+ - Read ["About Pull Requests"][about-pulls]
+ - Read [GitHub Pull Requests: 10 Tips to Know](https://blog.mergify.com/github-pull-requests-10-tips-to-know/)
+ - Pull Requests (PRs) should be atomic and aim to close a single issue
+ - Long running PRs should be avoided where possible
+ - PRs should reference issues following standard conventions (e.g. “fixes #123”)
+ - Schema developers should always be working on a single issue at any one time
+ - Never work on the main branch, always work on an issue/feature branch
+ - Core developers can work on branches off origin rather than forks
+ - Always create a PR on a branch to maximize transparency of what you are doing
+ - PRs should be reviewed and merged in a timely fashion by the cmdr technical leads
+ - PRs that do not pass GitHub actions should never be merged
+ - In the case of git conflicts, the contributor should try and resolve the conflict
+ - If a PR fails a GitHub action check, the contributor should try and resolve the issue in a timely fashion
+
+### Understanding LinkML
+
+Core developers should read the material on the [LinkML site](https://linkml.io/linkml), in particular:
+
+- [Overview](https://linkml.io/linkml/intro/overview.html)
+- [Tutorial](https://linkml.io/linkml/intro/tutorial.html)
+- [Schemas](https://linkml.io/linkml/schemas/index.html)
+- [FAQ](https://linkml.io/linkml/faq/index.html)
+
+### Modeling Best Practice
+
+- Follow Naming conventions
+ - Standard LinkML naming conventions should be followed (UpperCamelCase for classes and enums, snake_case for slots)
+ - Know how to use the LinkML linter to check style and conventions
+ - The names for classes should be nouns or noun-phrases: Person, GenomeAnnotation, Address, Sample
+ - Spell out abbreviations and short forms, except where this goes against convention (e.g. do not spell out DNA)
+ - Elements that are imported from outside (e.g. schema.org) need not follow the same naming conventions
+ - Multivalued slots should be named as plurals
+- Document model elements
+ - All model elements should have documentation (descriptions) and other textual annotations (e.g. comments, notes)
+ - Textual annotations on classes, slots and enumerations should be written with minimal jargon, clear grammar and no misspellings
+- Include examples and counter-examples (intentionally invalid examples)
+ - Rationale: these serve as documentation and unit tests
+ - These will be used by the automated test suite
+ - All elements of the nmdc-schema must be illustrated with valid and invalid data examples in src/data. New schema elements will not be merged into the main branch until examples are provided
+ - Invalid example data files should be invalid for one single reason, which should be reflected in the filename. It should be possible to render the invalid example files valid by addressing that single fault.
+- Use enums for categorical values
+ - Rationale: Open-ended string ranges encourage multiple values to represent the same entity, like “water”, “H2O” and “HOH”
+ - Any slot whose values could be constrained to a finite set should use an Enum
+ - Non-categorical values, e.g. descriptive fields like `name` or `description` fall outside of this.
+- Reuse
+ - Existing scheme elements should be reused where appropriate, rather than making duplicative elements
+ - More specific classes can be created by refinining classes using inheritance (`is_a`)
+
+[about-branches]: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches
+[about-issues]: https://docs.github.com/en/issues/tracking-your-work-with-issues/about-issues
+[about-pulls]: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests
+[issues]: https://github.com/linkml/cmdr/issues/
+[pulls]: https://github.com/linkml/cmdr/pulls/
+
+We recommend also reading [GitHub Pull Requests: 10 Tips to Know](https://blog.mergify.com/github-pull-requests-10-tips-to-know/)
diff --git a/Makefile b/Makefile
index dbf9127..06a0ac8 100644
--- a/Makefile
+++ b/Makefile
@@ -6,10 +6,17 @@ SHELL := bash
.SUFFIXES:
.SECONDARY:
+# environment variables
+.EXPORT_ALL_VARIABLES:
+ifdef LINKML_ENVIRONMENT_FILENAME
+include ${LINKML_ENVIRONMENT_FILENAME}
+else
+include .env.public
+endif
+
RUN = poetry run
-# get values from about.yaml file
-SCHEMA_NAME = $(shell ${SHELL} ./utils/get-value.sh name)
-SOURCE_SCHEMA_PATH = $(shell ${SHELL} ./utils/get-value.sh source_schema_path)
+SCHEMA_NAME = $(LINKML_SCHEMA_NAME)
+SOURCE_SCHEMA_PATH = $(LINKML_SCHEMA_SOURCE_PATH)
SOURCE_SCHEMA_DIR = $(dir $(SOURCE_SCHEMA_PATH))
SRC = src
DEST = project
@@ -44,7 +51,7 @@ help: status
@echo "make site -- makes site locally"
@echo "make install -- install dependencies"
@echo "make test -- runs tests"
- @echo "make lint -- perfom linting"
+ @echo "make lint -- perform linting"
@echo "make testdoc -- builds docs and runs local test server"
@echo "make deploy -- deploys site"
@echo "make update -- updates linkml version"
@@ -56,16 +63,15 @@ status: check-config
@echo "Source: $(SOURCE_SCHEMA_PATH)"
# generate products and add everything to github
-setup: install gen-project gen-examples gendoc git-init-add
+setup: check-config git-init install gen-project gen-examples gendoc git-add git-commit
# install any dependencies required for building
install:
- git init # issues/33
poetry install
.PHONY: install
# ---
-# Project Syncronization
+# Project Synchronization
# ---
#
# check we are up to date
@@ -102,12 +108,28 @@ gen-examples:
# generates all project files
gen-project: $(PYMODEL) compile-sheets
- $(RUN) gen-project ${GEN_PARGS} -d $(DEST) $(SOURCE_SCHEMA_PATH) && mv $(DEST)/*.py $(PYMODEL)
+ $(RUN) gen-project ${CONFIG_YAML} -d $(DEST) $(SOURCE_SCHEMA_PATH) && mv $(DEST)/*.py $(PYMODEL)
+
+
+# non-empty arg triggers owl (workaround https://github.com/linkml/linkml/issues/1453)
+ifneq ($(strip ${GEN_OWL_ARGS}),)
+ mkdir -p ${DEST}/owl || true
+ $(RUN) gen-owl ${GEN_OWL_ARGS} $(SOURCE_SCHEMA_PATH) >${DEST}/owl/${SCHEMA_NAME}.owl.ttl
+endif
+# non-empty arg triggers java
+ifneq ($(strip ${GEN_JAVA_ARGS}),)
+ $(RUN) gen-java ${GEN_JAVA_ARGS} --output-directory ${DEST}/java/ $(SOURCE_SCHEMA_PATH)
+endif
+# non-empty arg triggers typescript
+ifneq ($(strip ${GEN_TS_ARGS}),)
+ mkdir -p ${DEST}/typescript || true
+ $(RUN) gen-typescript ${GEN_TS_ARGS} $(SOURCE_SCHEMA_PATH) >${DEST}/typescript/${SCHEMA_NAME}.ts
+endif
+test: test-schema test-python test-examples
-test: test-schema test-python examples/output
test-schema:
- $(RUN) gen-project ${GEN_PARGS} -d tmp $(SOURCE_SCHEMA_PATH)
+ $(RUN) gen-project ${CONFIG_YAML} -d tmp $(SOURCE_SCHEMA_PATH)
test-python:
$(RUN) python -m unittest discover
@@ -116,7 +138,11 @@ lint:
$(RUN) linkml-lint $(SOURCE_SCHEMA_PATH)
check-config:
- @(grep my-datamodel about.yaml > /dev/null && printf "\n**Project not configured**:\n\n - Remember to edit 'about.yaml'\n\n" || exit 0)
+ifndef LINKML_SCHEMA_NAME
+ $(error **Project not configured**:\n\n - See '.env.public'\n\n)
+else
+ $(info Ok)
+endif
convert-examples-to-%:
$(patsubst %, $(RUN) linkml-convert % -s $(SOURCE_SCHEMA_PATH) -C Person, $(shell ${SHELL} find src/data/examples -name "*.yaml"))
@@ -128,6 +154,8 @@ examples/%.json: src/data/examples/%.yaml
examples/%.ttl: src/data/examples/%.yaml
$(RUN) linkml-convert -P EXAMPLE=http://example.org/ -s $(SOURCE_SCHEMA_PATH) -C Person $< -o $@
+test-examples: examples/output
+
examples/output: src/cmdr/schema/cmdr.yaml
mkdir -p $@
$(RUN) linkml-run-examples \
@@ -150,8 +178,8 @@ $(DOCDIR):
mkdir -p $@
gendoc: $(DOCDIR)
- cp $(SRC)/docs/*md $(DOCDIR) ; \
- $(RUN) gen-doc ${GEN_DARGS} -d $(DOCDIR) $(SOURCE_SCHEMA_PATH)
+ cp -rf $(SRC)/docs/* $(DOCDIR) ; \
+ $(RUN) gen-doc ${GEN_DOC_ARGS} -d $(DOCDIR) $(SOURCE_SCHEMA_PATH)
testdoc: gendoc serve
@@ -159,15 +187,13 @@ MKDOCS = $(RUN) mkdocs
mkd-%:
$(MKDOCS) $*
-PROJECT_FOLDERS = sqlschema shex shacl protobuf prefixmap owl jsonschema jsonld graphql excel
git-init-add: git-init git-add git-commit git-status
git-init:
git init
git-add: .cruft.json
- git add .gitignore .github .cruft.json Makefile LICENSE *.md examples utils about.yaml mkdocs.yml poetry.lock project.Makefile pyproject.toml src/cmdr/schema/*yaml src/*/datamodel/*py src/data src/docs tests src/*/_version.py
- git add $(patsubst %, project/%, $(PROJECT_FOLDERS))
+ git add .
git-commit:
- git commit -m 'chore: initial commit' -a
+ git commit -m 'chore: make setup was run' -a
git-status:
git status
diff --git a/README.md b/README.md
index 48ccfd2..7e6337c 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,33 @@
-# cmdr
+# CMDR
-Core Model for Data Research (Tentative)
+CMDR (pronunciation: “com-mo-dore” or sometimes “com-man-der”), the Core Model for Data Research, is a LinkML schema/data model for the collection of biological sample data, and its analysis.
+
+The purpose of this schema is to act as a *base* schema for other LinkML schemas/data models to bootstrap for their specific use case.
+
+The CMDR data model was inspired by the LinkML [data model](https://github.com/include-dcc/include_linkml) for the INCLUDE project.
+
+## Project Setup
+
+1. Clone *cmdr* project repository
+
+```
+$ git clone https://github.com/linkml/cmdr.git
+```
+
+2. Create virtual environment and install project dependencies
+```
+$ make install
+```
+
+3. Create downstream schema artifacts, run unit tests, and also validate examples/instance data against schema
+```
+$ make test
+```
+
+4. LinkML transformer mapping between source and target schemas on a class
+```
+$ make test_transform
+```
## Website
@@ -16,7 +43,8 @@ Core Model for Data Research (Tentative)
* [datamodel](src/cmdr/datamodel) -- Generated python datamodel
* [tests](tests/) - python tests
-We've added some [HTML visualizastions of data instances](https://htmlpreview.github.io/?https://github.com/linkml/cmdr/blob/master/examples/Container-material-entities.html)!
+We've added
+some [HTML visualizastions of data instances](https://htmlpreview.github.io/?https://github.com/linkml/cmdr/blob/master/examples/Container-material-entities.html)!
## Developer Documentation
diff --git a/config.yaml b/config.yaml
new file mode 100644
index 0000000..56da66d
--- /dev/null
+++ b/config.yaml
@@ -0,0 +1,41 @@
+# Configuration of generators (defaults illustrated)
+---
+generator_args:
+ excel:
+ mergeimports: true
+ owl:
+ mergeimports: true
+ metaclasses: true
+ type_objects: true
+ # throws 'Cannot handle metadata profile: rdfs'
+ # metadata_profile: rdfs
+ markdown:
+ mergeimports: true
+ graphql:
+ mergeimports: true
+ java:
+ mergeimports: true
+ metadata: true
+ jsonld:
+ mergeimports: true
+ jsonschema:
+ mergeimports: true
+ jsonldcontext:
+ mergeimports: true
+ python:
+ mergeimports: true
+ prefixmap:
+ mergeimports: true
+ proto:
+ mergeimports: true
+ shacl:
+ mergeimports: true
+ shex:
+ mergeimports: true
+ sqlddl:
+ mergeimports: true
+ typescript:
+ mergeimports: true
+ metadata: true
+
+...
diff --git a/examples/README.md b/examples/README.md
index cd4e71b..e0078bc 100644
--- a/examples/README.md
+++ b/examples/README.md
@@ -2,4 +2,4 @@
This folder contains example data conforming to cmdr
-The source for these is in [src/data](../src/data/examples)
\ No newline at end of file
+The source for these is in [src/data](../src/data/examples)
diff --git a/examples/transformations/include/Container-material-entities.yaml b/examples/transformations/include/Container-material-entities.yaml
new file mode 100644
index 0000000..9a266c3
--- /dev/null
+++ b/examples/transformations/include/Container-material-entities.yaml
@@ -0,0 +1,10 @@
+biospecimens:
+- id: omicsrus:m1
+ name: water
+ volume: 33.3
+- id: omicsrus:m2
+ name: soil
+ volume: 100.2
+- id: omicsrus:m3
+ name: blood
+ volume: 1.2
diff --git a/mkdocs.yml b/mkdocs.yml
index f9c7a29..0f257f8 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -1,22 +1,25 @@
+---
site_name: "cmdr"
theme:
name: material
-# palette:
-# scheme: slate
-# primary: cyan
+ # palette:
+ # scheme: slate
+ # primary: cyan
features:
- content.tabs.link
plugins:
- search
- mermaid2
+ - mermaid2:
+ version: 10.9.0
nav:
-# - Home: home.md
+ # - Home: home.md
- Index: index.md
- About: about.md
site_url: https://linkml.github.io/cmdr
repo_url: https://github.com/linkml/cmdr
-# Uncomment this block to enable use of Google Analytics.
+# Uncomment this block to enable use of Google Analytics.
# Replace the property value with your own ID.
# extra:
# analytics:
diff --git a/poetry.lock b/poetry.lock
index 68c2326..7d077c2 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1,10 +1,9 @@
-# This file is automatically @generated by Poetry and should not be changed by hand.
+# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand.
[[package]]
name = "airium"
version = "0.2.5"
description = "Easy and quick html builder with natural syntax correspondence (python->html). No templates needed. Serves pure pythonic library with no dependencies."
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -20,7 +19,6 @@ parse = ["beautifulsoup4 (>=4.10,<5.0)", "requests (>=2.12,<3)"]
name = "alabaster"
version = "0.7.13"
description = "A configurable sidebar-enabled Sphinx theme"
-category = "dev"
optional = false
python-versions = ">=3.6"
files = [
@@ -32,7 +30,6 @@ files = [
name = "antlr4-python3-runtime"
version = "4.9.3"
description = "ANTLR 4.9.3 runtime for Python 3.7"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -43,7 +40,6 @@ files = [
name = "arrow"
version = "1.2.3"
description = "Better dates & times for Python"
-category = "dev"
optional = false
python-versions = ">=3.6"
files = [
@@ -56,28 +52,26 @@ python-dateutil = ">=2.7.0"
[[package]]
name = "attrs"
-version = "22.2.0"
+version = "23.1.0"
description = "Classes Without Boilerplate"
-category = "main"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
files = [
- {file = "attrs-22.2.0-py3-none-any.whl", hash = "sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836"},
- {file = "attrs-22.2.0.tar.gz", hash = "sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99"},
+ {file = "attrs-23.1.0-py3-none-any.whl", hash = "sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04"},
+ {file = "attrs-23.1.0.tar.gz", hash = "sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015"},
]
[package.extras]
-cov = ["attrs[tests]", "coverage-enable-subprocess", "coverage[toml] (>=5.3)"]
-dev = ["attrs[docs,tests]"]
-docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope.interface"]
-tests = ["attrs[tests-no-zope]", "zope.interface"]
-tests-no-zope = ["cloudpickle", "cloudpickle", "hypothesis", "hypothesis", "mypy (>=0.971,<0.990)", "mypy (>=0.971,<0.990)", "pympler", "pympler", "pytest (>=4.3.0)", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-mypy-plugins", "pytest-xdist[psutil]", "pytest-xdist[psutil]"]
+cov = ["attrs[tests]", "coverage[toml] (>=5.3)"]
+dev = ["attrs[docs,tests]", "pre-commit"]
+docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"]
+tests = ["attrs[tests-no-zope]", "zope-interface"]
+tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
[[package]]
name = "babel"
version = "2.12.1"
description = "Internationalization utilities"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -87,14 +81,13 @@ files = [
[[package]]
name = "beautifulsoup4"
-version = "4.11.2"
+version = "4.12.2"
description = "Screen-scraping library"
-category = "dev"
optional = false
python-versions = ">=3.6.0"
files = [
- {file = "beautifulsoup4-4.11.2-py3-none-any.whl", hash = "sha256:0e79446b10b3ecb499c1556f7e228a53e64a2bfcebd455f370d8927cb5b59e39"},
- {file = "beautifulsoup4-4.11.2.tar.gz", hash = "sha256:bc4bdda6717de5a2987436fb8d72f45dc90dd856bdfd512a1314ce90349a0106"},
+ {file = "beautifulsoup4-4.12.2-py3-none-any.whl", hash = "sha256:bd2520ca0d9d7d12694a53d44ac482d181b4ec1888909b035a3dbf40d0f57d4a"},
+ {file = "beautifulsoup4-4.12.2.tar.gz", hash = "sha256:492bbc69dca35d12daac71c4db1bfff0c876c00ef4a2ffacce226d4638eb72da"},
]
[package.dependencies]
@@ -106,29 +99,28 @@ lxml = ["lxml"]
[[package]]
name = "bioregistry"
-version = "0.5.143"
+version = "0.6.108"
description = "Integrated registry of biological databases and nomenclatures"
-category = "dev"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
files = [
- {file = "bioregistry-0.5.143-py3-none-any.whl", hash = "sha256:70e0221fae09bf3aa47799a8bfb592d42d95d6a2df4924ce10dfe40cc294150e"},
- {file = "bioregistry-0.5.143.tar.gz", hash = "sha256:15e2beb3a7d53fa81abbf0339762fcec59f7ba5a1ac219f2c247e04c3eaa8007"},
+ {file = "bioregistry-0.6.108-py3-none-any.whl", hash = "sha256:e9f83faeb454064fc1413f791d2603afd864d2a82da8b9ec44aee1ae291b98fb"},
+ {file = "bioregistry-0.6.108.tar.gz", hash = "sha256:369a1444a2c6f099b5d02d56b25fb2bcbc57d8964021c5ea13dc86f656f3a649"},
]
[package.dependencies]
click = "*"
-curies = "*"
-more-click = "*"
+curies = ">=0.5.1"
+more-click = ">=0.1.2"
pydantic = "*"
pystow = ">=0.1.13"
requests = "*"
tqdm = "*"
[package.extras]
-align = ["beautifulsoup4", "class-resolver", "defusedxml", "pyyaml", "tabulate"]
+align = ["beautifulsoup4", "class-resolver", "defusedxml", "fairsharing-client (>=0.1.0)", "pyyaml", "tabulate"]
charts = ["matplotlib", "matplotlib-venn", "pandas", "seaborn"]
-docs = ["autodoc-pydantic", "sphinx", "sphinx-autodoc-typehints", "sphinx-automodapi", "sphinx-click", "sphinx-rtd-theme"]
+docs = ["autodoc-pydantic", "sphinx", "sphinx-autodoc-typehints (==1.21.1)", "sphinx-automodapi", "sphinx-click", "sphinx-rtd-theme"]
export = ["ndex2", "pyyaml", "rdflib", "rdflib-jsonld"]
gha = ["more-itertools"]
health = ["click-default-group", "pandas", "pyyaml", "tabulate"]
@@ -139,7 +131,6 @@ web = ["bootstrap-flask (<=2.0.0)", "flasgger", "flask", "markdown", "pyyaml", "
name = "cachetools"
version = "5.3.0"
description = "Extensible memoizing collections and decorators"
-category = "dev"
optional = false
python-versions = "~=3.7"
files = [
@@ -149,21 +140,19 @@ files = [
[[package]]
name = "certifi"
-version = "2022.12.7"
+version = "2023.5.7"
description = "Python package for providing Mozilla's CA Bundle."
-category = "main"
optional = false
python-versions = ">=3.6"
files = [
- {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"},
- {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"},
+ {file = "certifi-2023.5.7-py3-none-any.whl", hash = "sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716"},
+ {file = "certifi-2023.5.7.tar.gz", hash = "sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7"},
]
[[package]]
name = "cfgraph"
version = "0.2.1"
description = "rdflib collections flattening graph"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -177,7 +166,6 @@ rdflib = ">=0.4.2"
name = "chardet"
version = "5.1.0"
description = "Universal encoding detector for Python 3"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -189,7 +177,6 @@ files = [
name = "charset-normalizer"
version = "3.1.0"
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
-category = "main"
optional = false
python-versions = ">=3.7.0"
files = [
@@ -274,7 +261,6 @@ files = [
name = "click"
version = "8.1.3"
description = "Composable command line interface toolkit"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -289,7 +275,6 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""}
name = "colorama"
version = "0.4.6"
description = "Cross-platform colored terminal text."
-category = "main"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
files = [
@@ -299,25 +284,25 @@ files = [
[[package]]
name = "curies"
-version = "0.4.5"
+version = "0.5.5"
description = "Idiomatic conversion between URIs and compact URIs (CURIEs)."
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
- {file = "curies-0.4.5-py3-none-any.whl", hash = "sha256:73281f6616ec47c8d46d842def7a2021416c9ac10f580f9116125abf4bd2f943"},
- {file = "curies-0.4.5.tar.gz", hash = "sha256:c01626183b520db1b4af6a1fd41ee6d02462fea4ce54d8c5a528e5782268589c"},
+ {file = "curies-0.5.5-py3-none-any.whl", hash = "sha256:265ab8c95a2a6478ca22a1f9a2fac2902d71fa7737534b6380297e4dc49decd6"},
+ {file = "curies-0.5.5.tar.gz", hash = "sha256:4c1ddf6e7be2afdccb8e9dad76e4c22c4f9d506bbe0dbb1cfaf2cf29fc488ce2"},
]
[package.dependencies]
+pydantic = "*"
pytrie = "*"
requests = "*"
[package.extras]
bioregistry = ["bioregistry (>=0.5.136)"]
docs = ["sphinx", "sphinx-autodoc-typehints", "sphinx-automodapi", "sphinx-rtd-theme"]
-fastapi = ["fastapi", "httpx"]
-flask = ["flask"]
+fastapi = ["defusedxml", "fastapi", "httpx", "python-multipart", "uvicorn"]
+flask = ["defusedxml", "flask"]
pandas = ["pandas"]
rdflib = ["rdflib"]
tests = ["coverage", "pytest"]
@@ -326,7 +311,6 @@ tests = ["coverage", "pytest"]
name = "daff"
version = "1.3.46"
description = "Diff and patch tables"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -337,7 +321,6 @@ files = [
name = "decorator"
version = "5.1.1"
description = "Decorators for Humans"
-category = "dev"
optional = false
python-versions = ">=3.5"
files = [
@@ -349,7 +332,6 @@ files = [
name = "deprecated"
version = "1.2.13"
description = "Python @deprecated decorator to deprecate old python classes, functions or methods."
-category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
files = [
@@ -367,7 +349,6 @@ dev = ["PyTest", "PyTest (<5)", "PyTest-Cov", "PyTest-Cov (<2.6)", "bump2version
name = "distlib"
version = "0.3.6"
description = "Distribution utilities"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -379,7 +360,6 @@ files = [
name = "docutils"
version = "0.18.1"
description = "Docutils -- Python Documentation Utilities"
-category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
files = [
@@ -391,7 +371,6 @@ files = [
name = "editorconfig"
version = "0.12.3"
description = "EditorConfig File Locator and Interpreter for Python"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -403,7 +382,6 @@ files = [
name = "et-xmlfile"
version = "1.1.0"
description = "An implementation of lxml.xmlfile for the standard library"
-category = "dev"
optional = false
python-versions = ">=3.6"
files = [
@@ -413,14 +391,13 @@ files = [
[[package]]
name = "exceptiongroup"
-version = "1.1.0"
+version = "1.1.1"
description = "Backport of PEP 654 (exception groups)"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
- {file = "exceptiongroup-1.1.0-py3-none-any.whl", hash = "sha256:327cbda3da756e2de031a3107b81ab7b3770a602c4d16ca618298c526f4bec1e"},
- {file = "exceptiongroup-1.1.0.tar.gz", hash = "sha256:bcb67d800a4497e1b404c2dd44fca47d3b7a5e5433dbab67f96c1a685cdfdf23"},
+ {file = "exceptiongroup-1.1.1-py3-none-any.whl", hash = "sha256:232c37c63e4f682982c8b6459f33a8981039e5fb8756b2074364e5055c498c9e"},
+ {file = "exceptiongroup-1.1.1.tar.gz", hash = "sha256:d484c3090ba2889ae2928419117447a14daf3c1231d5e30d0aae34f354f01785"},
]
[package.extras]
@@ -428,25 +405,23 @@ test = ["pytest (>=6)"]
[[package]]
name = "filelock"
-version = "3.9.0"
+version = "3.12.0"
description = "A platform independent file lock."
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
- {file = "filelock-3.9.0-py3-none-any.whl", hash = "sha256:f58d535af89bb9ad5cd4df046f741f8553a418c01a7856bf0d173bbc9f6bd16d"},
- {file = "filelock-3.9.0.tar.gz", hash = "sha256:7b319f24340b51f55a2bf7a12ac0755a9b03e718311dac567a0f4f7fabd2f5de"},
+ {file = "filelock-3.12.0-py3-none-any.whl", hash = "sha256:ad98852315c2ab702aeb628412cbf7e95b7ce8c3bf9565670b4eaecf1db370a9"},
+ {file = "filelock-3.12.0.tar.gz", hash = "sha256:fc03ae43288c013d2ea83c8597001b1129db351aad9c57fe2409327916b8e718"},
]
[package.extras]
-docs = ["furo (>=2022.12.7)", "sphinx (>=5.3)", "sphinx-autodoc-typehints (>=1.19.5)"]
-testing = ["covdefaults (>=2.2.2)", "coverage (>=7.0.1)", "pytest (>=7.2)", "pytest-cov (>=4)", "pytest-timeout (>=2.1)"]
+docs = ["furo (>=2023.3.27)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"]
+testing = ["covdefaults (>=2.3)", "coverage (>=7.2.3)", "diff-cover (>=7.5)", "pytest (>=7.3.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)", "pytest-timeout (>=2.1)"]
[[package]]
name = "fqdn"
version = "1.5.1"
description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers"
-category = "dev"
optional = false
python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4"
files = [
@@ -458,7 +433,6 @@ files = [
name = "ghp-import"
version = "2.1.0"
description = "Copy your docs directly to the gh-pages branch."
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -476,7 +450,6 @@ dev = ["flake8", "markdown", "twine", "wheel"]
name = "google"
version = "3.0.0"
description = "Python bindings to the Google search engine."
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -491,7 +464,6 @@ beautifulsoup4 = "*"
name = "google-api-core"
version = "2.11.0"
description = "Google API client core library"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -512,18 +484,17 @@ grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0dev)"]
[[package]]
name = "google-api-python-client"
-version = "2.80.0"
+version = "2.87.0"
description = "Google API Client Library for Python"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
- {file = "google-api-python-client-2.80.0.tar.gz", hash = "sha256:51dd62d467da7ad3df63c3f0e6fca84266ce50c2218691204b2e8cd651a0719a"},
- {file = "google_api_python_client-2.80.0-py2.py3-none-any.whl", hash = "sha256:b9cd2550c2cdfeb78c3150d8c52208841082dabe597063a116476937170907ab"},
+ {file = "google-api-python-client-2.87.0.tar.gz", hash = "sha256:bbea5869877c822d12d318943833d988497b3a18b9ca2386967118074db676f3"},
+ {file = "google_api_python_client-2.87.0-py2.py3-none-any.whl", hash = "sha256:29b52232b159be72a79890b6d9f703cf6d8ebbec0ef6371c5670c1abeca5a9f9"},
]
[package.dependencies]
-google-api-core = ">=1.31.5,<2.0.0 || >2.3.0,<3.0.0dev"
+google-api-core = ">=1.31.5,<2.0.dev0 || >2.3.0,<3.0.0dev"
google-auth = ">=1.19.0,<3.0.0dev"
google-auth-httplib2 = ">=0.1.0"
httplib2 = ">=0.15.0,<1dev"
@@ -531,14 +502,13 @@ uritemplate = ">=3.0.1,<5"
[[package]]
name = "google-auth"
-version = "2.16.2"
+version = "2.17.3"
description = "Google Authentication Library"
-category = "dev"
optional = false
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*"
files = [
- {file = "google-auth-2.16.2.tar.gz", hash = "sha256:07e14f34ec288e3f33e00e2e3cc40c8942aa5d4ceac06256a28cd8e786591420"},
- {file = "google_auth-2.16.2-py2.py3-none-any.whl", hash = "sha256:2fef3cf94876d1a0e204afece58bb4d83fb57228aaa366c64045039fda6770a2"},
+ {file = "google-auth-2.17.3.tar.gz", hash = "sha256:ce311e2bc58b130fddf316df57c9b3943c2a7b4f6ec31de9663a9333e4064efc"},
+ {file = "google_auth-2.17.3-py2.py3-none-any.whl", hash = "sha256:f586b274d3eb7bd932ea424b1c702a30e0393a2e2bc4ca3eae8263ffd8be229f"},
]
[package.dependencies]
@@ -558,7 +528,6 @@ requests = ["requests (>=2.20.0,<3.0.0dev)"]
name = "google-auth-httplib2"
version = "0.1.0"
description = "Google Authentication Library: httplib2 transport"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -575,7 +544,6 @@ six = "*"
name = "google-auth-oauthlib"
version = "1.0.0"
description = "Google Authentication Library"
-category = "dev"
optional = false
python-versions = ">=3.6"
files = [
@@ -592,14 +560,13 @@ tool = ["click (>=6.0.0)"]
[[package]]
name = "googleapis-common-protos"
-version = "1.58.0"
+version = "1.59.0"
description = "Common protobufs used in Google APIs"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
- {file = "googleapis-common-protos-1.58.0.tar.gz", hash = "sha256:c727251ec025947d545184ba17e3578840fc3a24a0516a020479edab660457df"},
- {file = "googleapis_common_protos-1.58.0-py2.py3-none-any.whl", hash = "sha256:ca3befcd4580dab6ad49356b46bf165bb68ff4b32389f028f1abd7c10ab9519a"},
+ {file = "googleapis-common-protos-1.59.0.tar.gz", hash = "sha256:4168fcb568a826a52f23510412da405abd93f4d23ba544bb68d943b14ba3cb44"},
+ {file = "googleapis_common_protos-1.59.0-py2.py3-none-any.whl", hash = "sha256:b287dc48449d1d41af0c69f4ea26242b5ae4c3d7249a38b0984c86a4caffff1f"},
]
[package.dependencies]
@@ -612,7 +579,6 @@ grpc = ["grpcio (>=1.44.0,<2.0.0dev)"]
name = "graphviz"
version = "0.20.1"
description = "Simple Python interface for Graphviz"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -627,88 +593,86 @@ test = ["coverage", "mock (>=4)", "pytest (>=7)", "pytest-cov", "pytest-mock (>=
[[package]]
name = "greenlet"
-version = "2.0.2"
+version = "2.0.1"
description = "Lightweight in-process concurrent programming"
-category = "main"
optional = false
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*"
files = [
- {file = "greenlet-2.0.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:bdfea8c661e80d3c1c99ad7c3ff74e6e87184895bbaca6ee8cc61209f8b9b85d"},
- {file = "greenlet-2.0.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:9d14b83fab60d5e8abe587d51c75b252bcc21683f24699ada8fb275d7712f5a9"},
- {file = "greenlet-2.0.2-cp27-cp27m-win32.whl", hash = "sha256:6c3acb79b0bfd4fe733dff8bc62695283b57949ebcca05ae5c129eb606ff2d74"},
- {file = "greenlet-2.0.2-cp27-cp27m-win_amd64.whl", hash = "sha256:283737e0da3f08bd637b5ad058507e578dd462db259f7f6e4c5c365ba4ee9343"},
- {file = "greenlet-2.0.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:d27ec7509b9c18b6d73f2f5ede2622441de812e7b1a80bbd446cb0633bd3d5ae"},
- {file = "greenlet-2.0.2-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:30bcf80dda7f15ac77ba5af2b961bdd9dbc77fd4ac6105cee85b0d0a5fcf74df"},
- {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26fbfce90728d82bc9e6c38ea4d038cba20b7faf8a0ca53a9c07b67318d46088"},
- {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9190f09060ea4debddd24665d6804b995a9c122ef5917ab26e1566dcc712ceeb"},
- {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d75209eed723105f9596807495d58d10b3470fa6732dd6756595e89925ce2470"},
- {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3a51c9751078733d88e013587b108f1b7a1fb106d402fb390740f002b6f6551a"},
- {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:76ae285c8104046b3a7f06b42f29c7b73f77683df18c49ab5af7983994c2dd91"},
- {file = "greenlet-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:2d4686f195e32d36b4d7cf2d166857dbd0ee9f3d20ae349b6bf8afc8485b3645"},
- {file = "greenlet-2.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c4302695ad8027363e96311df24ee28978162cdcdd2006476c43970b384a244c"},
- {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c48f54ef8e05f04d6eff74b8233f6063cb1ed960243eacc474ee73a2ea8573ca"},
- {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a1846f1b999e78e13837c93c778dcfc3365902cfb8d1bdb7dd73ead37059f0d0"},
- {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a06ad5312349fec0ab944664b01d26f8d1f05009566339ac6f63f56589bc1a2"},
- {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:eff4eb9b7eb3e4d0cae3d28c283dc16d9bed6b193c2e1ace3ed86ce48ea8df19"},
- {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5454276c07d27a740c5892f4907c86327b632127dd9abec42ee62e12427ff7e3"},
- {file = "greenlet-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:7cafd1208fdbe93b67c7086876f061f660cfddc44f404279c1585bbf3cdc64c5"},
- {file = "greenlet-2.0.2-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:910841381caba4f744a44bf81bfd573c94e10b3045ee00de0cbf436fe50673a6"},
- {file = "greenlet-2.0.2-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:18a7f18b82b52ee85322d7a7874e676f34ab319b9f8cce5de06067384aa8ff43"},
- {file = "greenlet-2.0.2-cp35-cp35m-win32.whl", hash = "sha256:03a8f4f3430c3b3ff8d10a2a86028c660355ab637cee9333d63d66b56f09d52a"},
- {file = "greenlet-2.0.2-cp35-cp35m-win_amd64.whl", hash = "sha256:4b58adb399c4d61d912c4c331984d60eb66565175cdf4a34792cd9600f21b394"},
- {file = "greenlet-2.0.2-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:703f18f3fda276b9a916f0934d2fb6d989bf0b4fb5a64825260eb9bfd52d78f0"},
- {file = "greenlet-2.0.2-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:32e5b64b148966d9cccc2c8d35a671409e45f195864560829f395a54226408d3"},
- {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2dd11f291565a81d71dab10b7033395b7a3a5456e637cf997a6f33ebdf06f8db"},
- {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e0f72c9ddb8cd28532185f54cc1453f2c16fb417a08b53a855c4e6a418edd099"},
- {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd021c754b162c0fb55ad5d6b9d960db667faad0fa2ff25bb6e1301b0b6e6a75"},
- {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:3c9b12575734155d0c09d6c3e10dbd81665d5c18e1a7c6597df72fd05990c8cf"},
- {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b9ec052b06a0524f0e35bd8790686a1da006bd911dd1ef7d50b77bfbad74e292"},
- {file = "greenlet-2.0.2-cp36-cp36m-win32.whl", hash = "sha256:dbfcfc0218093a19c252ca8eb9aee3d29cfdcb586df21049b9d777fd32c14fd9"},
- {file = "greenlet-2.0.2-cp36-cp36m-win_amd64.whl", hash = "sha256:9f35ec95538f50292f6d8f2c9c9f8a3c6540bbfec21c9e5b4b751e0a7c20864f"},
- {file = "greenlet-2.0.2-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:d5508f0b173e6aa47273bdc0a0b5ba055b59662ba7c7ee5119528f466585526b"},
- {file = "greenlet-2.0.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:f82d4d717d8ef19188687aa32b8363e96062911e63ba22a0cff7802a8e58e5f1"},
- {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9c59a2120b55788e800d82dfa99b9e156ff8f2227f07c5e3012a45a399620b7"},
- {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2780572ec463d44c1d3ae850239508dbeb9fed38e294c68d19a24d925d9223ca"},
- {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:937e9020b514ceedb9c830c55d5c9872abc90f4b5862f89c0887033ae33c6f73"},
- {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:36abbf031e1c0f79dd5d596bfaf8e921c41df2bdf54ee1eed921ce1f52999a86"},
- {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:18e98fb3de7dba1c0a852731c3070cf022d14f0d68b4c87a19cc1016f3bb8b33"},
- {file = "greenlet-2.0.2-cp37-cp37m-win32.whl", hash = "sha256:3f6ea9bd35eb450837a3d80e77b517ea5bc56b4647f5502cd28de13675ee12f7"},
- {file = "greenlet-2.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:7492e2b7bd7c9b9916388d9df23fa49d9b88ac0640db0a5b4ecc2b653bf451e3"},
- {file = "greenlet-2.0.2-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:b864ba53912b6c3ab6bcb2beb19f19edd01a6bfcbdfe1f37ddd1778abfe75a30"},
- {file = "greenlet-2.0.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:ba2956617f1c42598a308a84c6cf021a90ff3862eddafd20c3333d50f0edb45b"},
- {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc3a569657468b6f3fb60587e48356fe512c1754ca05a564f11366ac9e306526"},
- {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8eab883b3b2a38cc1e050819ef06a7e6344d4a990d24d45bc6f2cf959045a45b"},
- {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acd2162a36d3de67ee896c43effcd5ee3de247eb00354db411feb025aa319857"},
- {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0bf60faf0bc2468089bdc5edd10555bab6e85152191df713e2ab1fcc86382b5a"},
- {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b0ef99cdbe2b682b9ccbb964743a6aca37905fda5e0452e5ee239b1654d37f2a"},
- {file = "greenlet-2.0.2-cp38-cp38-win32.whl", hash = "sha256:b80f600eddddce72320dbbc8e3784d16bd3fb7b517e82476d8da921f27d4b249"},
- {file = "greenlet-2.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:4d2e11331fc0c02b6e84b0d28ece3a36e0548ee1a1ce9ddde03752d9b79bba40"},
- {file = "greenlet-2.0.2-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:88d9ab96491d38a5ab7c56dd7a3cc37d83336ecc564e4e8816dbed12e5aaefc8"},
- {file = "greenlet-2.0.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:561091a7be172ab497a3527602d467e2b3fbe75f9e783d8b8ce403fa414f71a6"},
- {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:971ce5e14dc5e73715755d0ca2975ac88cfdaefcaab078a284fea6cfabf866df"},
- {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be4ed120b52ae4d974aa40215fcdfde9194d63541c7ded40ee12eb4dda57b76b"},
- {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94c817e84245513926588caf1152e3b559ff794d505555211ca041f032abbb6b"},
- {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1a819eef4b0e0b96bb0d98d797bef17dc1b4a10e8d7446be32d1da33e095dbb8"},
- {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7efde645ca1cc441d6dc4b48c0f7101e8d86b54c8530141b09fd31cef5149ec9"},
- {file = "greenlet-2.0.2-cp39-cp39-win32.whl", hash = "sha256:ea9872c80c132f4663822dd2a08d404073a5a9b5ba6155bea72fb2a79d1093b5"},
- {file = "greenlet-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:db1a39669102a1d8d12b57de2bb7e2ec9066a6f2b3da35ae511ff93b01b5d564"},
- {file = "greenlet-2.0.2.tar.gz", hash = "sha256:e7c8dc13af7db097bed64a051d2dd49e9f0af495c26995c00a9ee842690d34c0"},
+ {file = "greenlet-2.0.1-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:9ed358312e63bf683b9ef22c8e442ef6c5c02973f0c2a939ec1d7b50c974015c"},
+ {file = "greenlet-2.0.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:4f09b0010e55bec3239278f642a8a506b91034f03a4fb28289a7d448a67f1515"},
+ {file = "greenlet-2.0.1-cp27-cp27m-win32.whl", hash = "sha256:1407fe45246632d0ffb7a3f4a520ba4e6051fc2cbd61ba1f806900c27f47706a"},
+ {file = "greenlet-2.0.1-cp27-cp27m-win_amd64.whl", hash = "sha256:3001d00eba6bbf084ae60ec7f4bb8ed375748f53aeaefaf2a37d9f0370558524"},
+ {file = "greenlet-2.0.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:d566b82e92ff2e09dd6342df7e0eb4ff6275a3f08db284888dcd98134dbd4243"},
+ {file = "greenlet-2.0.1-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:0722c9be0797f544a3ed212569ca3fe3d9d1a1b13942d10dd6f0e8601e484d26"},
+ {file = "greenlet-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d37990425b4687ade27810e3b1a1c37825d242ebc275066cfee8cb6b8829ccd"},
+ {file = "greenlet-2.0.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be35822f35f99dcc48152c9839d0171a06186f2d71ef76dc57fa556cc9bf6b45"},
+ {file = "greenlet-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c140e7eb5ce47249668056edf3b7e9900c6a2e22fb0eaf0513f18a1b2c14e1da"},
+ {file = "greenlet-2.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d21681f09e297a5adaa73060737e3aa1279a13ecdcfcc6ef66c292cb25125b2d"},
+ {file = "greenlet-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fb412b7db83fe56847df9c47b6fe3f13911b06339c2aa02dcc09dce8bbf582cd"},
+ {file = "greenlet-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:c6a08799e9e88052221adca55741bf106ec7ea0710bca635c208b751f0d5b617"},
+ {file = "greenlet-2.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9e112e03d37987d7b90c1e98ba5e1b59e1645226d78d73282f45b326f7bddcb9"},
+ {file = "greenlet-2.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56961cfca7da2fdd178f95ca407fa330c64f33289e1804b592a77d5593d9bd94"},
+ {file = "greenlet-2.0.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:13ba6e8e326e2116c954074c994da14954982ba2795aebb881c07ac5d093a58a"},
+ {file = "greenlet-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bf633a50cc93ed17e494015897361010fc08700d92676c87931d3ea464123ce"},
+ {file = "greenlet-2.0.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9f2c221eecb7ead00b8e3ddb913c67f75cba078fd1d326053225a3f59d850d72"},
+ {file = "greenlet-2.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:13ebf93c343dd8bd010cd98e617cb4c1c1f352a0cf2524c82d3814154116aa82"},
+ {file = "greenlet-2.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:6f61d71bbc9b4a3de768371b210d906726535d6ca43506737682caa754b956cd"},
+ {file = "greenlet-2.0.1-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:2d0bac0385d2b43a7bd1d651621a4e0f1380abc63d6fb1012213a401cbd5bf8f"},
+ {file = "greenlet-2.0.1-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:f6327b6907b4cb72f650a5b7b1be23a2aab395017aa6f1adb13069d66360eb3f"},
+ {file = "greenlet-2.0.1-cp35-cp35m-win32.whl", hash = "sha256:81b0ea3715bf6a848d6f7149d25bf018fd24554a4be01fcbbe3fdc78e890b955"},
+ {file = "greenlet-2.0.1-cp35-cp35m-win_amd64.whl", hash = "sha256:38255a3f1e8942573b067510f9611fc9e38196077b0c8eb7a8c795e105f9ce77"},
+ {file = "greenlet-2.0.1-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:04957dc96669be041e0c260964cfef4c77287f07c40452e61abe19d647505581"},
+ {file = "greenlet-2.0.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:4aeaebcd91d9fee9aa768c1b39cb12214b30bf36d2b7370505a9f2165fedd8d9"},
+ {file = "greenlet-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:974a39bdb8c90a85982cdb78a103a32e0b1be986d411303064b28a80611f6e51"},
+ {file = "greenlet-2.0.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8dca09dedf1bd8684767bc736cc20c97c29bc0c04c413e3276e0962cd7aeb148"},
+ {file = "greenlet-2.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a4c0757db9bd08470ff8277791795e70d0bf035a011a528ee9a5ce9454b6cba2"},
+ {file = "greenlet-2.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:5067920de254f1a2dee8d3d9d7e4e03718e8fd2d2d9db962c8c9fa781ae82a39"},
+ {file = "greenlet-2.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:5a8e05057fab2a365c81abc696cb753da7549d20266e8511eb6c9d9f72fe3e92"},
+ {file = "greenlet-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:3d75b8d013086b08e801fbbb896f7d5c9e6ccd44f13a9241d2bf7c0df9eda928"},
+ {file = "greenlet-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:097e3dae69321e9100202fc62977f687454cd0ea147d0fd5a766e57450c569fd"},
+ {file = "greenlet-2.0.1-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:cb242fc2cda5a307a7698c93173d3627a2a90d00507bccf5bc228851e8304963"},
+ {file = "greenlet-2.0.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:72b00a8e7c25dcea5946692a2485b1a0c0661ed93ecfedfa9b6687bd89a24ef5"},
+ {file = "greenlet-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5b0ff9878333823226d270417f24f4d06f235cb3e54d1103b71ea537a6a86ce"},
+ {file = "greenlet-2.0.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be9e0fb2ada7e5124f5282d6381903183ecc73ea019568d6d63d33f25b2a9000"},
+ {file = "greenlet-2.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b493db84d124805865adc587532ebad30efa68f79ad68f11b336e0a51ec86c2"},
+ {file = "greenlet-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:0459d94f73265744fee4c2d5ec44c6f34aa8a31017e6e9de770f7bcf29710be9"},
+ {file = "greenlet-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a20d33124935d27b80e6fdacbd34205732660e0a1d35d8b10b3328179a2b51a1"},
+ {file = "greenlet-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:ea688d11707d30e212e0110a1aac7f7f3f542a259235d396f88be68b649e47d1"},
+ {file = "greenlet-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:afe07421c969e259e9403c3bb658968702bc3b78ec0b6fde3ae1e73440529c23"},
+ {file = "greenlet-2.0.1-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:cd4ccc364cf75d1422e66e247e52a93da6a9b73cefa8cad696f3cbbb75af179d"},
+ {file = "greenlet-2.0.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:4c8b1c43e75c42a6cafcc71defa9e01ead39ae80bd733a2608b297412beede68"},
+ {file = "greenlet-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:659f167f419a4609bc0516fb18ea69ed39dbb25594934bd2dd4d0401660e8a1e"},
+ {file = "greenlet-2.0.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:356e4519d4dfa766d50ecc498544b44c0249b6de66426041d7f8b751de4d6b48"},
+ {file = "greenlet-2.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:811e1d37d60b47cb8126e0a929b58c046251f28117cb16fcd371eed61f66b764"},
+ {file = "greenlet-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d38ffd0e81ba8ef347d2be0772e899c289b59ff150ebbbbe05dc61b1246eb4e0"},
+ {file = "greenlet-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0109af1138afbfb8ae647e31a2b1ab030f58b21dd8528c27beaeb0093b7938a9"},
+ {file = "greenlet-2.0.1-cp38-cp38-win32.whl", hash = "sha256:88c8d517e78acdf7df8a2134a3c4b964415b575d2840a2746ddb1cc6175f8608"},
+ {file = "greenlet-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:d6ee1aa7ab36475035eb48c01efae87d37936a8173fc4d7b10bb02c2d75dd8f6"},
+ {file = "greenlet-2.0.1-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:b1992ba9d4780d9af9726bbcef6a1db12d9ab1ccc35e5773685a24b7fb2758eb"},
+ {file = "greenlet-2.0.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:b5e83e4de81dcc9425598d9469a624826a0b1211380ac444c7c791d4a2137c19"},
+ {file = "greenlet-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:505138d4fa69462447a562a7c2ef723c6025ba12ac04478bc1ce2fcc279a2db5"},
+ {file = "greenlet-2.0.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cce1e90dd302f45716a7715517c6aa0468af0bf38e814ad4eab58e88fc09f7f7"},
+ {file = "greenlet-2.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e9744c657d896c7b580455e739899e492a4a452e2dd4d2b3e459f6b244a638d"},
+ {file = "greenlet-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:662e8f7cad915ba75d8017b3e601afc01ef20deeeabf281bd00369de196d7726"},
+ {file = "greenlet-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:41b825d65f31e394b523c84db84f9383a2f7eefc13d987f308f4663794d2687e"},
+ {file = "greenlet-2.0.1-cp39-cp39-win32.whl", hash = "sha256:db38f80540083ea33bdab614a9d28bcec4b54daa5aff1668d7827a9fc769ae0a"},
+ {file = "greenlet-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:b23d2a46d53210b498e5b701a1913697671988f4bf8e10f935433f6e7c332fb6"},
+ {file = "greenlet-2.0.1.tar.gz", hash = "sha256:42e602564460da0e8ee67cb6d7236363ee5e131aa15943b6670e44e5c2ed0f67"},
]
[package.extras]
docs = ["Sphinx", "docutils (<0.18)"]
-test = ["objgraph", "psutil"]
+test = ["faulthandler", "objgraph", "psutil"]
[[package]]
name = "gspread"
-version = "5.7.2"
+version = "5.9.0"
description = "Google Spreadsheets Python API"
-category = "dev"
optional = false
python-versions = ">=3.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
files = [
- {file = "gspread-5.7.2-py3-none-any.whl", hash = "sha256:dbeedd08c6a7f7b0bfc1a54e17c29205362250c77bf98e11125c5d99fd7f4ba7"},
- {file = "gspread-5.7.2.tar.gz", hash = "sha256:ce76f9c16b88ccb792350142224a59afa8e69f7463f3d3417148cbe892efc7cb"},
+ {file = "gspread-5.9.0-py3-none-any.whl", hash = "sha256:85f296f3ee95d1742e44be368d5a7c0ca3957b8ad2cb6833f7094055f3390e32"},
+ {file = "gspread-5.9.0.tar.gz", hash = "sha256:34b97834bbefaccf72497702bae26d12f96d0685e49a418afe6a92a9bbcb9c9c"},
]
[package.dependencies]
@@ -719,7 +683,6 @@ google-auth-oauthlib = ">=0.4.1"
name = "gspread-formatting"
version = "1.1.2"
description = "Complete Google Sheets formatting support for gspread worksheets"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -734,7 +697,6 @@ gspread = ">=3.0.0"
name = "hbreader"
version = "0.9.1"
description = "Honey Badger reader - a generic file/url/string open and read tool"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -744,14 +706,13 @@ files = [
[[package]]
name = "httplib2"
-version = "0.21.0"
+version = "0.22.0"
description = "A comprehensive HTTP client library."
-category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
files = [
- {file = "httplib2-0.21.0-py3-none-any.whl", hash = "sha256:987c8bb3eb82d3fa60c68699510a692aa2ad9c4bd4f123e51dfb1488c14cdd01"},
- {file = "httplib2-0.21.0.tar.gz", hash = "sha256:fc144f091c7286b82bec71bdbd9b27323ba709cc612568d3000893bfd9cb4b34"},
+ {file = "httplib2-0.22.0-py3-none-any.whl", hash = "sha256:14ae0a53c1ba8f3d37e9e27cf37eabb0fb9980f435ba405d546948b009dd64dc"},
+ {file = "httplib2-0.22.0.tar.gz", hash = "sha256:d7a10bc5ef5ab08322488bde8c726eeee5c8618723fdb399597ec58f3d82df81"},
]
[package.dependencies]
@@ -761,7 +722,6 @@ pyparsing = {version = ">=2.4.2,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0
name = "idna"
version = "3.4"
description = "Internationalized Domain Names in Applications (IDNA)"
-category = "main"
optional = false
python-versions = ">=3.5"
files = [
@@ -773,7 +733,6 @@ files = [
name = "imagesize"
version = "1.4.1"
description = "Getting image size from png/jpeg/jpeg2000/gif file"
-category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
files = [
@@ -783,21 +742,20 @@ files = [
[[package]]
name = "importlib-metadata"
-version = "4.13.0"
+version = "6.6.0"
description = "Read metadata from Python packages"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
- {file = "importlib_metadata-4.13.0-py3-none-any.whl", hash = "sha256:8a8a81bcf996e74fee46f0d16bd3eaa382a7eb20fd82445c3ad11f4090334116"},
- {file = "importlib_metadata-4.13.0.tar.gz", hash = "sha256:dd0173e8f150d6815e098fd354f6414b0f079af4644ddfe90c71e2fc6174346d"},
+ {file = "importlib_metadata-6.6.0-py3-none-any.whl", hash = "sha256:43dd286a2cd8995d5eaef7fee2066340423b818ed3fd70adf0bad5f1fac53fed"},
+ {file = "importlib_metadata-6.6.0.tar.gz", hash = "sha256:92501cdf9cc66ebd3e612f1b4f0c0765dfa42f0fa38ffb319b6bd84dd675d705"},
]
[package.dependencies]
zipp = ">=0.5"
[package.extras]
-docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)"]
+docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
perf = ["ipython"]
testing = ["flake8 (<5)", "flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)"]
@@ -805,7 +763,6 @@ testing = ["flake8 (<5)", "flufl.flake8", "importlib-resources (>=1.3)", "packag
name = "iniconfig"
version = "2.0.0"
description = "brain-dead simple config-ini parsing"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -817,7 +774,6 @@ files = [
name = "isodate"
version = "0.6.1"
description = "An ISO 8601 date/time/duration parser and formatter"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -832,7 +788,6 @@ six = "*"
name = "isoduration"
version = "20.11.0"
description = "Operations with ISO 8601 durations"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -847,7 +802,6 @@ arrow = ">=0.15.0"
name = "jinja2"
version = "3.1.2"
description = "A very fast and expressive template engine."
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -865,7 +819,6 @@ i18n = ["Babel (>=2.7)"]
name = "jsbeautifier"
version = "1.14.7"
description = "JavaScript unobfuscator and beautifier."
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -880,7 +833,6 @@ six = ">=1.13.0"
name = "json-flattener"
version = "0.1.9"
description = "Python library for denormalizing nested dicts or json objects to tables and back"
-category = "main"
optional = false
python-versions = ">=3.7.0"
files = [
@@ -896,7 +848,6 @@ pyyaml = "*"
name = "jsonasobj"
version = "1.3.1"
description = "JSON as python objects"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -908,7 +859,6 @@ files = [
name = "jsonasobj2"
version = "1.0.4"
description = "JSON as python objects - version 2"
-category = "main"
optional = false
python-versions = ">=3.6"
files = [
@@ -923,7 +873,6 @@ hbreader = "*"
name = "jsonpatch"
version = "1.32"
description = "Apply JSON-Patches (RFC 6902)"
-category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
files = [
@@ -938,7 +887,6 @@ jsonpointer = ">=1.9"
name = "jsonpath-ng"
version = "1.5.3"
description = "A final implementation of JSONPath for Python that aims to be standard compliant, including arithmetic and binary comparison operators and providing clear AST for metaprogramming."
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -956,7 +904,6 @@ six = "*"
name = "jsonpointer"
version = "2.3"
description = "Identify specific nodes in a JSON document (RFC 6901)"
-category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
files = [
@@ -968,7 +915,6 @@ files = [
name = "jsonschema"
version = "4.17.3"
description = "An implementation of JSON Schema validation for Python"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -994,14 +940,13 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-
[[package]]
name = "linkml"
-version = "1.4.7"
+version = "1.5.4"
description = "Linked Open Data Modeling Language"
-category = "dev"
optional = false
python-versions = ">=3.7.6,<4.0.0"
files = [
- {file = "linkml-1.4.7-py3-none-any.whl", hash = "sha256:2722387b35b8f3787e34dceee864b157814b300482abaafdd8b2d07904b5ec83"},
- {file = "linkml-1.4.7.tar.gz", hash = "sha256:f0b59ab13bc25888a5890931f2414bdf702c2034612a84500d4f4ca9eba4955a"},
+ {file = "linkml-1.5.4-py3-none-any.whl", hash = "sha256:d08223c122ba45b28833076881cd2d0a78a27d4f68120215c0a645d0ed395784"},
+ {file = "linkml-1.5.4.tar.gz", hash = "sha256:380dc5ac6e4c9e6eb8e7862365eb7e70be156804d52cec0843b013eb904216b1"},
]
[package.dependencies]
@@ -1014,7 +959,7 @@ jinja2 = ">=3.1.0"
jsonasobj2 = ">=1.0.3,<2.0.0"
jsonschema = {version = ">=4.0.0", extras = ["format"]}
linkml-dataops = "*"
-linkml-runtime = ">=1,<2"
+linkml-runtime = ">=1.5.0"
myst-parser = "*"
openpyxl = "*"
parse = "*"
@@ -1035,13 +980,12 @@ tox = ">=3.25.1,<4.0.0"
watchdog = ">=0.9.0"
[package.extras]
-docs = ["furo[docs] (>=2022.9.29,<2023.0.0)", "sphinx", "sphinxcontrib-mermaid[docs] (>=0.7.1,<0.8.0)"]
+docs = ["furo[docs] (>=2023.03.27,<2024.0.0)", "sphinx", "sphinxcontrib-mermaid[docs] (>=0.7.1,<0.8.0)"]
[[package]]
name = "linkml-dataops"
version = "0.1.0"
description = "LinkML Data Operations API"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -1060,7 +1004,6 @@ linkml-runtime = ">=1.1.6"
name = "linkml-renderer"
version = "0.1.2"
description = "linkml-renderer"
-category = "dev"
optional = false
python-versions = ">=3.8,<4.0"
files = [
@@ -1079,19 +1022,18 @@ docs = ["myst-parser[docs] (>=0.18.1,<0.19.0)", "sphinx-autodoc-typehints[docs]
[[package]]
name = "linkml-runtime"
-version = "1.4.9"
+version = "1.5.3"
description = "Runtime environment for LinkML, the Linked open data modeling language"
-category = "main"
optional = false
python-versions = ">=3.7.6,<4.0.0"
files = [
- {file = "linkml_runtime-1.4.9-py3-none-any.whl", hash = "sha256:62bf8618ddf362be0f173f2fa1821c3e29309c897b8f1e2f83fb41dc599e72a6"},
- {file = "linkml_runtime-1.4.9.tar.gz", hash = "sha256:64c383ce05351b0dce18fcbbdb38884f180466968dcf09c90689e1bfa72d4aa4"},
+ {file = "linkml_runtime-1.5.3-py3-none-any.whl", hash = "sha256:e8f82ebce2af7e71998a7fca0cf9d37eabfa18c21efe34393b698074da430bbb"},
+ {file = "linkml_runtime-1.5.3.tar.gz", hash = "sha256:b53876389cd88fcf9d259079f46edfc8e59665fbed71934c40db04908ddaf937"},
]
[package.dependencies]
click = "*"
-curies = ">=0.4.0,<0.5.0"
+curies = ">=0.5.4"
deprecated = "*"
hbreader = "*"
json-flattener = ">=0.1.9"
@@ -1099,30 +1041,29 @@ jsonasobj2 = ">=1.0.4,<2.0.0"
jsonschema = ">=3.2.0"
prefixcommons = ">=0.1.12"
prefixmaps = ">=0.1.4"
+pydantic = ">=1.10.2,<2.0.0"
pyyaml = "*"
rdflib = ">=6.0.0"
requests = "*"
[[package]]
name = "linkml-transformer"
-version = "0.1.1"
+version = "0.1.4"
description = ""
-category = "main"
optional = false
python-versions = ">=3.8,<4.0"
files = [
- {file = "linkml_transformer-0.1.1-py3-none-any.whl", hash = "sha256:99a6a2606ed3c56c06e85f9bcd32c7da14f221bd5a3da521638a5c1b7f99da7d"},
- {file = "linkml_transformer-0.1.1.tar.gz", hash = "sha256:ba60489eb928fa3d0221a494785de0d6d9f3ec1c28d27a10bccc4eed92c11d59"},
+ {file = "linkml_transformer-0.1.4-py3-none-any.whl", hash = "sha256:1c9dcafb6ad2728e04762f7ee4df30d9fa94cd2e83d5774b94b42d02b301260c"},
+ {file = "linkml_transformer-0.1.4.tar.gz", hash = "sha256:3a4f4b3b1bfb3b67ed9fe124830d9f208d13ed8edfc9f735c38d807e62e0fab0"},
]
[package.dependencies]
-linkml-runtime = ">=1.4.5,<2.0.0"
+linkml-runtime = ">=1.5.2"
[[package]]
name = "markdown"
version = "3.3.7"
description = "Python implementation of Markdown."
-category = "dev"
optional = false
python-versions = ">=3.6"
files = [
@@ -1140,7 +1081,6 @@ testing = ["coverage", "pyyaml"]
name = "markdown-it-py"
version = "2.2.0"
description = "Python port of markdown-it. Markdown parsing, done right!"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -1165,7 +1105,6 @@ testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"]
name = "markupsafe"
version = "2.1.2"
description = "Safely add untrusted strings to HTML/XML markup."
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -1225,7 +1164,6 @@ files = [
name = "mdit-py-plugins"
version = "0.3.5"
description = "Collection of plugins for markdown-it-py"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -1245,7 +1183,6 @@ testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"]
name = "mdurl"
version = "0.1.2"
description = "Markdown URL utilities"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -1257,7 +1194,6 @@ files = [
name = "mergedeep"
version = "1.3.4"
description = "A deep merge function for 🐍."
-category = "dev"
optional = false
python-versions = ">=3.6"
files = [
@@ -1267,14 +1203,13 @@ files = [
[[package]]
name = "mkdocs"
-version = "1.4.2"
+version = "1.4.3"
description = "Project documentation with Markdown."
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
- {file = "mkdocs-1.4.2-py3-none-any.whl", hash = "sha256:c8856a832c1e56702577023cd64cc5f84948280c1c0fcc6af4cd39006ea6aa8c"},
- {file = "mkdocs-1.4.2.tar.gz", hash = "sha256:8947af423a6d0facf41ea1195b8e1e8c85ad94ac95ae307fe11232e0424b11c5"},
+ {file = "mkdocs-1.4.3-py3-none-any.whl", hash = "sha256:6ee46d309bda331aac915cd24aab882c179a933bd9e77b80ce7d2eaaa3f689dd"},
+ {file = "mkdocs-1.4.3.tar.gz", hash = "sha256:5955093bbd4dd2e9403c5afaf57324ad8b04f16886512a3ee6ef828956481c57"},
]
[package.dependencies]
@@ -1298,7 +1233,6 @@ min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-imp
name = "mkdocs-material"
version = "8.5.11"
description = "Documentation that simply works"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -1319,7 +1253,6 @@ requests = ">=2.26"
name = "mkdocs-material-extensions"
version = "1.1.1"
description = "Extension pack for Python Markdown and MkDocs Material."
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -1329,31 +1262,30 @@ files = [
[[package]]
name = "mkdocs-mermaid2-plugin"
-version = "0.6.0"
+version = "1.1.1"
description = "A MkDocs plugin for including mermaid graphs in markdown sources"
-category = "dev"
optional = false
-python-versions = ">=3.5"
+python-versions = ">=3.6"
files = [
- {file = "mkdocs-mermaid2-plugin-0.6.0.tar.gz", hash = "sha256:99cca6db7c6b4a954a701dcb6b507191bc32a7b0b47eacf2885c1bacf77d1af1"},
- {file = "mkdocs_mermaid2_plugin-0.6.0-py3-none-any.whl", hash = "sha256:ffbe8a7daa7ed718cb800c44c5ce4c0ff413caebf7b8b63d9c4a998dfd78a64d"},
+ {file = "mkdocs-mermaid2-plugin-1.1.1.tar.gz", hash = "sha256:bea5f3cbe6cb76bad21b81e49a01e074427ed466666c5d404e62fe8698bc2d7c"},
+ {file = "mkdocs_mermaid2_plugin-1.1.1-py3-none-any.whl", hash = "sha256:4e25876b59d1e151ca33a467207b346404b4a246f4f24af5e44c32408e175882"},
]
[package.dependencies]
beautifulsoup4 = ">=4.6.3"
jsbeautifier = "*"
mkdocs = ">=1.0.4"
-mkdocs-material = "*"
pymdown-extensions = ">=8.0"
-pyyaml = "*"
requests = "*"
setuptools = ">=18.5"
+[package.extras]
+test = ["mkdocs-material"]
+
[[package]]
name = "more-click"
version = "0.1.2"
description = "More click."
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -1369,14 +1301,13 @@ tests = ["coverage", "pytest"]
[[package]]
name = "myst-parser"
-version = "0.19.1"
+version = "1.0.0"
description = "An extended [CommonMark](https://spec.commonmark.org/) compliant parser,"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
- {file = "myst-parser-0.19.1.tar.gz", hash = "sha256:f2dc168ed380e01d77973ad22a64fff1377cc72a3d1ac4bced423f28258d0a42"},
- {file = "myst_parser-0.19.1-py3-none-any.whl", hash = "sha256:356b38aef29ed09144285ad222e5c3cb7a8e7fae8015d53dba40dbb8b9f73e2c"},
+ {file = "myst-parser-1.0.0.tar.gz", hash = "sha256:502845659313099542bd38a2ae62f01360e7dd4b1310f025dd014dfc0439cdae"},
+ {file = "myst_parser-1.0.0-py3-none-any.whl", hash = "sha256:69fb40a586c6fa68995e6521ac0a525793935db7e724ca9bac1d33be51be9a4c"},
]
[package.dependencies]
@@ -1398,7 +1329,6 @@ testing-docutils = ["pygments", "pytest (>=7,<8)", "pytest-param-files (>=0.3.4,
name = "oauthlib"
version = "3.2.2"
description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic"
-category = "dev"
optional = false
python-versions = ">=3.6"
files = [
@@ -1415,7 +1345,6 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"]
name = "ontodev-cogs"
version = "0.3.3"
description = "COGS Operates Google Sheets"
-category = "dev"
optional = false
python-versions = ">=3.6, <4"
files = [
@@ -1435,14 +1364,13 @@ termcolor = "*"
[[package]]
name = "openpyxl"
-version = "3.1.1"
+version = "3.1.2"
description = "A Python library to read/write Excel 2010 xlsx/xlsm files"
-category = "dev"
optional = false
python-versions = ">=3.6"
files = [
- {file = "openpyxl-3.1.1-py2.py3-none-any.whl", hash = "sha256:a0266e033e65f33ee697254b66116a5793c15fc92daf64711080000df4cfe0a8"},
- {file = "openpyxl-3.1.1.tar.gz", hash = "sha256:f06d44e2c973781068bce5ecf860a09bcdb1c7f5ce1facd5e9aa82c92c93ae72"},
+ {file = "openpyxl-3.1.2-py2.py3-none-any.whl", hash = "sha256:f91456ead12ab3c6c2e9491cf33ba6d08357d802192379bb482f1033ade496f5"},
+ {file = "openpyxl-3.1.2.tar.gz", hash = "sha256:a6f5977418eff3b2d5500d54d9db50c8277a368436f4e4f8ddb1be3422870184"},
]
[package.dependencies]
@@ -1450,48 +1378,45 @@ et-xmlfile = "*"
[[package]]
name = "packaging"
-version = "23.0"
+version = "23.1"
description = "Core utilities for Python packages"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
- {file = "packaging-23.0-py3-none-any.whl", hash = "sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2"},
- {file = "packaging-23.0.tar.gz", hash = "sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97"},
+ {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"},
+ {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"},
]
[[package]]
name = "parse"
version = "1.19.0"
description = "parse() is the opposite of format()"
-category = "dev"
optional = false
python-versions = "*"
files = [
+ {file = "parse-1.19.0-py2.py3-none-any.whl", hash = "sha256:6ce007645384a91150cb7cd7c8a9db2559e273c2e2542b508cd1e342508c2601"},
{file = "parse-1.19.0.tar.gz", hash = "sha256:9ff82852bcb65d139813e2a5197627a94966245c897796760a3a2a8eb66f020b"},
]
[[package]]
name = "platformdirs"
-version = "3.1.0"
+version = "3.5.1"
description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
- {file = "platformdirs-3.1.0-py3-none-any.whl", hash = "sha256:13b08a53ed71021350c9e300d4ea8668438fb0046ab3937ac9a29913a1a1350a"},
- {file = "platformdirs-3.1.0.tar.gz", hash = "sha256:accc3665857288317f32c7bebb5a8e482ba717b474f3fc1d18ca7f9214be0cef"},
+ {file = "platformdirs-3.5.1-py3-none-any.whl", hash = "sha256:e2378146f1964972c03c085bb5662ae80b2b8c06226c54b2ff4aa9483e8a13a5"},
+ {file = "platformdirs-3.5.1.tar.gz", hash = "sha256:412dae91f52a6f84830f39a8078cecd0e866cb72294a5c66808e74d5e88d251f"},
]
[package.extras]
-docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.22,!=1.23.4)"]
-test = ["appdirs (==1.4.4)", "covdefaults (>=2.2.2)", "pytest (>=7.2.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"]
+docs = ["furo (>=2023.3.27)", "proselint (>=0.13)", "sphinx (>=6.2.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"]
+test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.3.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"]
[[package]]
name = "pluggy"
version = "1.0.0"
description = "plugin and hook calling mechanisms for python"
-category = "main"
optional = false
python-versions = ">=3.6"
files = [
@@ -1507,7 +1432,6 @@ testing = ["pytest", "pytest-benchmark"]
name = "ply"
version = "3.11"
description = "Python Lex & Yacc"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -1519,7 +1443,6 @@ files = [
name = "prefixcommons"
version = "0.1.12"
description = "A python API for working with ID prefixes"
-category = "main"
optional = false
python-versions = ">=3.7,<4.0"
files = [
@@ -1535,48 +1458,52 @@ requests = ">=2.28.1,<3.0.0"
[[package]]
name = "prefixmaps"
-version = "0.1.4"
+version = "0.1.5"
description = "A python library for retrieving semantic prefix maps"
-category = "main"
optional = false
python-versions = ">=3.7.6,<4.0.0"
files = [
- {file = "prefixmaps-0.1.4-py3-none-any.whl", hash = "sha256:845457a5149e56b676827d002200840ae487052f08879a8d6ca9093aa6b9213e"},
- {file = "prefixmaps-0.1.4.tar.gz", hash = "sha256:7ce9c8c1f1987f0341a71a2f869344e621b49c478c78a931817ce3dda5965980"},
+ {file = "prefixmaps-0.1.5-py3-none-any.whl", hash = "sha256:afe679efa0fa62ae69939771956a76e2958505743b40755c8bae85732622b5b2"},
+ {file = "prefixmaps-0.1.5.tar.gz", hash = "sha256:0073f69477f7e9e2359409c0e9d2f853c958600825d9ed859c4c6c71134010a1"},
]
[package.dependencies]
-importlib-metadata = ">=4.12.0,<5.0.0"
+click = ">=8.1.3,<9.0.0"
+greenlet = "2.0.1"
+importlib-metadata = ">=1.0.0"
pyyaml = ">=5.3.1"
+typing-extensions = ">=4.4.0,<5.0.0"
+
+[package.extras]
+docs = ["Sphinx[docs] (>=5.3.0,<6.0.0)", "myst-parser[docs] (>=0.18.1,<0.19.0)", "sphinx-autodoc-typehints[docs] (>=1.19.4,<2.0.0)", "sphinx-click[docs] (>=4.3.0,<5.0.0)", "sphinx-rtd-theme[docs] (>=1.0.0,<2.0.0)"]
+refresh = ["bioregistry[refresh] (>=0.8.0,<0.9.0)", "rdflib[refresh] (>=6.2.0,<7.0.0)", "requests[refresh] (>=2.28.1,<3.0.0)"]
[[package]]
name = "protobuf"
-version = "4.22.0"
+version = "4.23.2"
description = ""
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
- {file = "protobuf-4.22.0-cp310-abi3-win32.whl", hash = "sha256:b2fea9dc8e3c0f32c38124790ef16cba2ee0628fe2022a52e435e1117bfef9b1"},
- {file = "protobuf-4.22.0-cp310-abi3-win_amd64.whl", hash = "sha256:a33a273d21852f911b8bda47f39f4383fe7c061eb1814db2c76c9875c89c2491"},
- {file = "protobuf-4.22.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:e894e9ae603e963f0842498c4cd5d39c6a60f0d7e4c103df50ee939564298658"},
- {file = "protobuf-4.22.0-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:7c535d126e7dcc714105ab20b418c4fedbd28f8b8afc42b7350b1e317bbbcc71"},
- {file = "protobuf-4.22.0-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:86c3d20428b007537ba6792b475c0853bba7f66b1f60e610d913b77d94b486e4"},
- {file = "protobuf-4.22.0-cp37-cp37m-win32.whl", hash = "sha256:1669cb7524221a8e2d9008d0842453dbefdd0fcdd64d67672f657244867635fb"},
- {file = "protobuf-4.22.0-cp37-cp37m-win_amd64.whl", hash = "sha256:ab4d043865dd04e6b09386981fe8f80b39a1e46139fb4a3c206229d6b9f36ff6"},
- {file = "protobuf-4.22.0-cp38-cp38-win32.whl", hash = "sha256:29288813aacaa302afa2381db1d6e0482165737b0afdf2811df5fa99185c457b"},
- {file = "protobuf-4.22.0-cp38-cp38-win_amd64.whl", hash = "sha256:e474b63bab0a2ea32a7b26a4d8eec59e33e709321e5e16fb66e766b61b82a95e"},
- {file = "protobuf-4.22.0-cp39-cp39-win32.whl", hash = "sha256:47d31bdf58222dd296976aa1646c68c6ee80b96d22e0a3c336c9174e253fd35e"},
- {file = "protobuf-4.22.0-cp39-cp39-win_amd64.whl", hash = "sha256:c27f371f0159feb70e6ea52ed7e768b3f3a4c5676c1900a7e51a24740381650e"},
- {file = "protobuf-4.22.0-py3-none-any.whl", hash = "sha256:c3325803095fb4c2a48649c321d2fbde59f8fbfcb9bfc7a86df27d112831c571"},
- {file = "protobuf-4.22.0.tar.gz", hash = "sha256:652d8dfece122a24d98eebfef30e31e455d300efa41999d1182e015984ac5930"},
+ {file = "protobuf-4.23.2-cp310-abi3-win32.whl", hash = "sha256:384dd44cb4c43f2ccddd3645389a23ae61aeb8cfa15ca3a0f60e7c3ea09b28b3"},
+ {file = "protobuf-4.23.2-cp310-abi3-win_amd64.whl", hash = "sha256:09310bce43353b46d73ba7e3bca78273b9bc50349509b9698e64d288c6372c2a"},
+ {file = "protobuf-4.23.2-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:b2cfab63a230b39ae603834718db74ac11e52bccaaf19bf20f5cce1a84cf76df"},
+ {file = "protobuf-4.23.2-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:c52cfcbfba8eb791255edd675c1fe6056f723bf832fa67f0442218f8817c076e"},
+ {file = "protobuf-4.23.2-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:86df87016d290143c7ce3be3ad52d055714ebaebb57cc659c387e76cfacd81aa"},
+ {file = "protobuf-4.23.2-cp37-cp37m-win32.whl", hash = "sha256:281342ea5eb631c86697e1e048cb7e73b8a4e85f3299a128c116f05f5c668f8f"},
+ {file = "protobuf-4.23.2-cp37-cp37m-win_amd64.whl", hash = "sha256:ce744938406de1e64b91410f473736e815f28c3b71201302612a68bf01517fea"},
+ {file = "protobuf-4.23.2-cp38-cp38-win32.whl", hash = "sha256:6c081863c379bb1741be8f8193e893511312b1d7329b4a75445d1ea9955be69e"},
+ {file = "protobuf-4.23.2-cp38-cp38-win_amd64.whl", hash = "sha256:25e3370eda26469b58b602e29dff069cfaae8eaa0ef4550039cc5ef8dc004511"},
+ {file = "protobuf-4.23.2-cp39-cp39-win32.whl", hash = "sha256:efabbbbac1ab519a514579ba9ec52f006c28ae19d97915951f69fa70da2c9e91"},
+ {file = "protobuf-4.23.2-cp39-cp39-win_amd64.whl", hash = "sha256:54a533b971288af3b9926e53850c7eb186886c0c84e61daa8444385a4720297f"},
+ {file = "protobuf-4.23.2-py3-none-any.whl", hash = "sha256:8da6070310d634c99c0db7df48f10da495cc283fd9e9234877f0cd182d43ab7f"},
+ {file = "protobuf-4.23.2.tar.gz", hash = "sha256:20874e7ca4436f683b64ebdbee2129a5a2c301579a67d1a7dda2cdf62fb7f5f7"},
]
[[package]]
name = "py"
version = "1.11.0"
description = "library with cross-python path, ini-parsing, io, code, log facilities"
-category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
files = [
@@ -1586,75 +1513,72 @@ files = [
[[package]]
name = "pyasn1"
-version = "0.4.8"
-description = "ASN.1 types and codecs"
-category = "dev"
+version = "0.5.0"
+description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)"
optional = false
-python-versions = "*"
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7"
files = [
- {file = "pyasn1-0.4.8-py2.py3-none-any.whl", hash = "sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d"},
- {file = "pyasn1-0.4.8.tar.gz", hash = "sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba"},
+ {file = "pyasn1-0.5.0-py2.py3-none-any.whl", hash = "sha256:87a2121042a1ac9358cabcaf1d07680ff97ee6404333bacca15f76aa8ad01a57"},
+ {file = "pyasn1-0.5.0.tar.gz", hash = "sha256:97b7290ca68e62a832558ec3976f15cbf911bf5d7c7039d8b861c2a0ece69fde"},
]
[[package]]
name = "pyasn1-modules"
-version = "0.2.8"
-description = "A collection of ASN.1-based protocols modules."
-category = "dev"
+version = "0.3.0"
+description = "A collection of ASN.1-based protocols modules"
optional = false
-python-versions = "*"
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7"
files = [
- {file = "pyasn1-modules-0.2.8.tar.gz", hash = "sha256:905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e"},
- {file = "pyasn1_modules-0.2.8-py2.py3-none-any.whl", hash = "sha256:a50b808ffeb97cb3601dd25981f6b016cbb3d31fbf57a8b8a87428e6158d0c74"},
+ {file = "pyasn1_modules-0.3.0-py2.py3-none-any.whl", hash = "sha256:d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d"},
+ {file = "pyasn1_modules-0.3.0.tar.gz", hash = "sha256:5bd01446b736eb9d31512a30d46c1ac3395d676c6f3cafa4c03eb54b9925631c"},
]
[package.dependencies]
-pyasn1 = ">=0.4.6,<0.5.0"
+pyasn1 = ">=0.4.6,<0.6.0"
[[package]]
name = "pydantic"
-version = "1.10.5"
+version = "1.10.8"
description = "Data validation and settings management using python type hints"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
- {file = "pydantic-1.10.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5920824fe1e21cbb3e38cf0f3dd24857c8959801d1031ce1fac1d50857a03bfb"},
- {file = "pydantic-1.10.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3bb99cf9655b377db1a9e47fa4479e3330ea96f4123c6c8200e482704bf1eda2"},
- {file = "pydantic-1.10.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2185a3b3d98ab4506a3f6707569802d2d92c3a7ba3a9a35683a7709ea6c2aaa2"},
- {file = "pydantic-1.10.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f582cac9d11c227c652d3ce8ee223d94eb06f4228b52a8adaafa9fa62e73d5c9"},
- {file = "pydantic-1.10.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c9e5b778b6842f135902e2d82624008c6a79710207e28e86966cd136c621bfee"},
- {file = "pydantic-1.10.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:72ef3783be8cbdef6bca034606a5de3862be6b72415dc5cb1fb8ddbac110049a"},
- {file = "pydantic-1.10.5-cp310-cp310-win_amd64.whl", hash = "sha256:45edea10b75d3da43cfda12f3792833a3fa70b6eee4db1ed6aed528cef17c74e"},
- {file = "pydantic-1.10.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:63200cd8af1af2c07964546b7bc8f217e8bda9d0a2ef0ee0c797b36353914984"},
- {file = "pydantic-1.10.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:305d0376c516b0dfa1dbefeae8c21042b57b496892d721905a6ec6b79494a66d"},
- {file = "pydantic-1.10.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1fd326aff5d6c36f05735c7c9b3d5b0e933b4ca52ad0b6e4b38038d82703d35b"},
- {file = "pydantic-1.10.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6bb0452d7b8516178c969d305d9630a3c9b8cf16fcf4713261c9ebd465af0d73"},
- {file = "pydantic-1.10.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:9a9d9155e2a9f38b2eb9374c88f02fd4d6851ae17b65ee786a87d032f87008f8"},
- {file = "pydantic-1.10.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f836444b4c5ece128b23ec36a446c9ab7f9b0f7981d0d27e13a7c366ee163f8a"},
- {file = "pydantic-1.10.5-cp311-cp311-win_amd64.whl", hash = "sha256:8481dca324e1c7b715ce091a698b181054d22072e848b6fc7895cd86f79b4449"},
- {file = "pydantic-1.10.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:87f831e81ea0589cd18257f84386bf30154c5f4bed373b7b75e5cb0b5d53ea87"},
- {file = "pydantic-1.10.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ce1612e98c6326f10888df951a26ec1a577d8df49ddcaea87773bfbe23ba5cc"},
- {file = "pydantic-1.10.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58e41dd1e977531ac6073b11baac8c013f3cd8706a01d3dc74e86955be8b2c0c"},
- {file = "pydantic-1.10.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:6a4b0aab29061262065bbdede617ef99cc5914d1bf0ddc8bcd8e3d7928d85bd6"},
- {file = "pydantic-1.10.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:36e44a4de37b8aecffa81c081dbfe42c4d2bf9f6dff34d03dce157ec65eb0f15"},
- {file = "pydantic-1.10.5-cp37-cp37m-win_amd64.whl", hash = "sha256:261f357f0aecda005934e413dfd7aa4077004a174dafe414a8325e6098a8e419"},
- {file = "pydantic-1.10.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b429f7c457aebb7fbe7cd69c418d1cd7c6fdc4d3c8697f45af78b8d5a7955760"},
- {file = "pydantic-1.10.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:663d2dd78596c5fa3eb996bc3f34b8c2a592648ad10008f98d1348be7ae212fb"},
- {file = "pydantic-1.10.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51782fd81f09edcf265823c3bf43ff36d00db246eca39ee765ef58dc8421a642"},
- {file = "pydantic-1.10.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c428c0f64a86661fb4873495c4fac430ec7a7cef2b8c1c28f3d1a7277f9ea5ab"},
- {file = "pydantic-1.10.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:76c930ad0746c70f0368c4596020b736ab65b473c1f9b3872310a835d852eb19"},
- {file = "pydantic-1.10.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3257bd714de9db2102b742570a56bf7978e90441193acac109b1f500290f5718"},
- {file = "pydantic-1.10.5-cp38-cp38-win_amd64.whl", hash = "sha256:f5bee6c523d13944a1fdc6f0525bc86dbbd94372f17b83fa6331aabacc8fd08e"},
- {file = "pydantic-1.10.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:532e97c35719f137ee5405bd3eeddc5c06eb91a032bc755a44e34a712420daf3"},
- {file = "pydantic-1.10.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ca9075ab3de9e48b75fa8ccb897c34ccc1519177ad8841d99f7fd74cf43be5bf"},
- {file = "pydantic-1.10.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd46a0e6296346c477e59a954da57beaf9c538da37b9df482e50f836e4a7d4bb"},
- {file = "pydantic-1.10.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3353072625ea2a9a6c81ad01b91e5c07fa70deb06368c71307529abf70d23325"},
- {file = "pydantic-1.10.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:3f9d9b2be177c3cb6027cd67fbf323586417868c06c3c85d0d101703136e6b31"},
- {file = "pydantic-1.10.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b473d00ccd5c2061fd896ac127b7755baad233f8d996ea288af14ae09f8e0d1e"},
- {file = "pydantic-1.10.5-cp39-cp39-win_amd64.whl", hash = "sha256:5f3bc8f103b56a8c88021d481410874b1f13edf6e838da607dcb57ecff9b4594"},
- {file = "pydantic-1.10.5-py3-none-any.whl", hash = "sha256:7c5b94d598c90f2f46b3a983ffb46ab806a67099d118ae0da7ef21a2a4033b28"},
- {file = "pydantic-1.10.5.tar.gz", hash = "sha256:9e337ac83686645a46db0e825acceea8e02fca4062483f40e9ae178e8bd1103a"},
+ {file = "pydantic-1.10.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1243d28e9b05003a89d72e7915fdb26ffd1d39bdd39b00b7dbe4afae4b557f9d"},
+ {file = "pydantic-1.10.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c0ab53b609c11dfc0c060d94335993cc2b95b2150e25583bec37a49b2d6c6c3f"},
+ {file = "pydantic-1.10.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9613fadad06b4f3bc5db2653ce2f22e0de84a7c6c293909b48f6ed37b83c61f"},
+ {file = "pydantic-1.10.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:df7800cb1984d8f6e249351139667a8c50a379009271ee6236138a22a0c0f319"},
+ {file = "pydantic-1.10.8-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:0c6fafa0965b539d7aab0a673a046466d23b86e4b0e8019d25fd53f4df62c277"},
+ {file = "pydantic-1.10.8-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e82d4566fcd527eae8b244fa952d99f2ca3172b7e97add0b43e2d97ee77f81ab"},
+ {file = "pydantic-1.10.8-cp310-cp310-win_amd64.whl", hash = "sha256:ab523c31e22943713d80d8d342d23b6f6ac4b792a1e54064a8d0cf78fd64e800"},
+ {file = "pydantic-1.10.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:666bdf6066bf6dbc107b30d034615d2627e2121506c555f73f90b54a463d1f33"},
+ {file = "pydantic-1.10.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:35db5301b82e8661fa9c505c800d0990bc14e9f36f98932bb1d248c0ac5cada5"},
+ {file = "pydantic-1.10.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f90c1e29f447557e9e26afb1c4dbf8768a10cc676e3781b6a577841ade126b85"},
+ {file = "pydantic-1.10.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:93e766b4a8226e0708ef243e843105bf124e21331694367f95f4e3b4a92bbb3f"},
+ {file = "pydantic-1.10.8-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:88f195f582851e8db960b4a94c3e3ad25692c1c1539e2552f3df7a9e972ef60e"},
+ {file = "pydantic-1.10.8-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:34d327c81e68a1ecb52fe9c8d50c8a9b3e90d3c8ad991bfc8f953fb477d42fb4"},
+ {file = "pydantic-1.10.8-cp311-cp311-win_amd64.whl", hash = "sha256:d532bf00f381bd6bc62cabc7d1372096b75a33bc197a312b03f5838b4fb84edd"},
+ {file = "pydantic-1.10.8-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:7d5b8641c24886d764a74ec541d2fc2c7fb19f6da2a4001e6d580ba4a38f7878"},
+ {file = "pydantic-1.10.8-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b1f6cb446470b7ddf86c2e57cd119a24959af2b01e552f60705910663af09a4"},
+ {file = "pydantic-1.10.8-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c33b60054b2136aef8cf190cd4c52a3daa20b2263917c49adad20eaf381e823b"},
+ {file = "pydantic-1.10.8-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:1952526ba40b220b912cdc43c1c32bcf4a58e3f192fa313ee665916b26befb68"},
+ {file = "pydantic-1.10.8-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:bb14388ec45a7a0dc429e87def6396f9e73c8c77818c927b6a60706603d5f2ea"},
+ {file = "pydantic-1.10.8-cp37-cp37m-win_amd64.whl", hash = "sha256:16f8c3e33af1e9bb16c7a91fc7d5fa9fe27298e9f299cff6cb744d89d573d62c"},
+ {file = "pydantic-1.10.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1ced8375969673929809d7f36ad322934c35de4af3b5e5b09ec967c21f9f7887"},
+ {file = "pydantic-1.10.8-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:93e6bcfccbd831894a6a434b0aeb1947f9e70b7468f274154d03d71fabb1d7c6"},
+ {file = "pydantic-1.10.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:191ba419b605f897ede9892f6c56fb182f40a15d309ef0142212200a10af4c18"},
+ {file = "pydantic-1.10.8-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:052d8654cb65174d6f9490cc9b9a200083a82cf5c3c5d3985db765757eb3b375"},
+ {file = "pydantic-1.10.8-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ceb6a23bf1ba4b837d0cfe378329ad3f351b5897c8d4914ce95b85fba96da5a1"},
+ {file = "pydantic-1.10.8-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6f2e754d5566f050954727c77f094e01793bcb5725b663bf628fa6743a5a9108"},
+ {file = "pydantic-1.10.8-cp38-cp38-win_amd64.whl", hash = "sha256:6a82d6cda82258efca32b40040228ecf43a548671cb174a1e81477195ed3ed56"},
+ {file = "pydantic-1.10.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3e59417ba8a17265e632af99cc5f35ec309de5980c440c255ab1ca3ae96a3e0e"},
+ {file = "pydantic-1.10.8-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:84d80219c3f8d4cad44575e18404099c76851bc924ce5ab1c4c8bb5e2a2227d0"},
+ {file = "pydantic-1.10.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e4148e635994d57d834be1182a44bdb07dd867fa3c2d1b37002000646cc5459"},
+ {file = "pydantic-1.10.8-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:12f7b0bf8553e310e530e9f3a2f5734c68699f42218bf3568ef49cd9b0e44df4"},
+ {file = "pydantic-1.10.8-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:42aa0c4b5c3025483240a25b09f3c09a189481ddda2ea3a831a9d25f444e03c1"},
+ {file = "pydantic-1.10.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:17aef11cc1b997f9d574b91909fed40761e13fac438d72b81f902226a69dac01"},
+ {file = "pydantic-1.10.8-cp39-cp39-win_amd64.whl", hash = "sha256:66a703d1983c675a6e0fed8953b0971c44dba48a929a2000a493c3772eb61a5a"},
+ {file = "pydantic-1.10.8-py3-none-any.whl", hash = "sha256:7456eb22ed9aaa24ff3e7b4757da20d9e5ce2a81018c1b3ebd81a0b88a18f3b2"},
+ {file = "pydantic-1.10.8.tar.gz", hash = "sha256:1410275520dfa70effadf4c21811d755e7ef9bb1f1d077a21958153a92c8d9ca"},
]
[package.dependencies]
@@ -1666,14 +1590,13 @@ email = ["email-validator (>=1.0.3)"]
[[package]]
name = "pygments"
-version = "2.14.0"
+version = "2.15.1"
description = "Pygments is a syntax highlighting package written in Python."
-category = "dev"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
files = [
- {file = "Pygments-2.14.0-py3-none-any.whl", hash = "sha256:fa7bd7bd2771287c0de303af8bfdfc731f51bd2c6a47ab69d117138893b82717"},
- {file = "Pygments-2.14.0.tar.gz", hash = "sha256:b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297"},
+ {file = "Pygments-2.15.1-py3-none-any.whl", hash = "sha256:db2db3deb4b4179f399a09054b023b6a586b76499d36965813c71aa8ed7b5fd1"},
+ {file = "Pygments-2.15.1.tar.gz", hash = "sha256:8ace4d3c1dd481894b2005f560ead0f9f19ee64fe983366be1a21e171d12775c"},
]
[package.extras]
@@ -1683,7 +1606,6 @@ plugins = ["importlib-metadata"]
name = "pyjsg"
version = "0.11.10"
description = "Python JSON Schema Grammar interpreter"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -1697,14 +1619,13 @@ jsonasobj = ">=1.2.1"
[[package]]
name = "pymdown-extensions"
-version = "9.10"
+version = "10.0.1"
description = "Extension pack for Python Markdown."
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
- {file = "pymdown_extensions-9.10-py3-none-any.whl", hash = "sha256:31eaa76ce6f96aabfcea98787c2fff2c5c0611b20a53a94213970cfbf05f02b8"},
- {file = "pymdown_extensions-9.10.tar.gz", hash = "sha256:562c38eee4ce3f101ce631b804bfc2177a8a76c7e4dc908871fb6741a90257a7"},
+ {file = "pymdown_extensions-10.0.1-py3-none-any.whl", hash = "sha256:ae66d84013c5d027ce055693e09a4628b67e9dec5bce05727e45b0918e36f274"},
+ {file = "pymdown_extensions-10.0.1.tar.gz", hash = "sha256:b44e1093a43b8a975eae17b03c3a77aad4681b3b56fce60ce746dbef1944c8cb"},
]
[package.dependencies]
@@ -1715,7 +1636,6 @@ pyyaml = "*"
name = "pyparsing"
version = "3.0.9"
description = "pyparsing module - Classes and methods to define and execute parsing grammars"
-category = "main"
optional = false
python-versions = ">=3.6.8"
files = [
@@ -1730,7 +1650,6 @@ diagrams = ["jinja2", "railroad-diagrams"]
name = "pyrsistent"
version = "0.19.3"
description = "Persistent/Functional/Immutable data structures"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -1767,7 +1686,6 @@ files = [
name = "pyshex"
version = "0.8.1"
description = "Python ShEx Implementation"
-category = "dev"
optional = false
python-versions = ">=3.6"
files = [
@@ -1790,7 +1708,6 @@ urllib3 = "*"
name = "pyshexc"
version = "0.9.1"
description = "PyShExC - Python ShEx compiler"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -1810,7 +1727,6 @@ shexjsg = ">=0.8.1"
name = "pystow"
version = "0.5.0"
description = "Easily pick a place to store data for your python package."
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -1833,18 +1749,16 @@ xml = ["lxml"]
[[package]]
name = "pytest"
-version = "7.2.2"
+version = "7.3.1"
description = "pytest: simple powerful testing with Python"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
- {file = "pytest-7.2.2-py3-none-any.whl", hash = "sha256:130328f552dcfac0b1cec75c12e3f005619dc5f874f0a06e8ff7263f0ee6225e"},
- {file = "pytest-7.2.2.tar.gz", hash = "sha256:c99ab0c73aceb050f68929bc93af19ab6db0558791c6a0715723abe9d0ade9d4"},
+ {file = "pytest-7.3.1-py3-none-any.whl", hash = "sha256:3799fa815351fea3a5e96ac7e503a96fa51cc9942c3753cda7651b93c1cfa362"},
+ {file = "pytest-7.3.1.tar.gz", hash = "sha256:434afafd78b1d78ed0addf160ad2b77a30d35d4bdf8af234fe621919d9ed15e3"},
]
[package.dependencies]
-attrs = ">=19.2.0"
colorama = {version = "*", markers = "sys_platform == \"win32\""}
exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""}
iniconfig = "*"
@@ -1853,13 +1767,12 @@ pluggy = ">=0.12,<2.0"
tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""}
[package.extras]
-testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"]
+testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"]
[[package]]
name = "pytest-logging"
version = "2015.11.4"
description = "Configures logging and allows tweaking the log level with a py.test flag"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -1873,7 +1786,6 @@ pytest = ">=2.8.1"
name = "python-dateutil"
version = "2.8.2"
description = "Extensions to the standard Python datetime module"
-category = "dev"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
files = [
@@ -1888,10 +1800,10 @@ six = ">=1.5"
name = "pytrie"
version = "0.4.0"
description = "A pure Python implementation of the trie data structure."
-category = "main"
optional = false
python-versions = "*"
files = [
+ {file = "PyTrie-0.4.0-py3-none-any.whl", hash = "sha256:f687c224ee8c66cda8e8628a903011b692635ffbb08d4b39c5f92b18eb78c950"},
{file = "PyTrie-0.4.0.tar.gz", hash = "sha256:8f4488f402d3465993fb6b6efa09866849ed8cda7903b50647b7d0342b805379"},
]
@@ -1902,7 +1814,6 @@ sortedcontainers = "*"
name = "pyyaml"
version = "6.0"
description = "YAML parser and emitter for Python"
-category = "main"
optional = false
python-versions = ">=3.6"
files = [
@@ -1952,7 +1863,6 @@ files = [
name = "pyyaml-env-tag"
version = "0.1"
description = "A custom YAML tag for referencing environment variables in YAML files. "
-category = "dev"
optional = false
python-versions = ">=3.6"
files = [
@@ -1965,34 +1875,29 @@ pyyaml = "*"
[[package]]
name = "rdflib"
-version = "6.2.0"
+version = "6.3.2"
description = "RDFLib is a Python library for working with RDF, a simple yet powerful language for representing information."
-category = "main"
optional = false
-python-versions = ">=3.7"
+python-versions = ">=3.7,<4.0"
files = [
- {file = "rdflib-6.2.0-py3-none-any.whl", hash = "sha256:85c34a86dfc517a41e5f2425a41a0aceacc23983462b32e68610b9fad1383bca"},
- {file = "rdflib-6.2.0.tar.gz", hash = "sha256:62dc3c86d1712db0f55785baf8047f63731fa59b2682be03219cb89262065942"},
+ {file = "rdflib-6.3.2-py3-none-any.whl", hash = "sha256:36b4e74a32aa1e4fa7b8719876fb192f19ecd45ff932ea5ebbd2e417a0247e63"},
+ {file = "rdflib-6.3.2.tar.gz", hash = "sha256:72af591ff704f4caacea7ecc0c5a9056b8553e0489dd4f35a9bc52dbd41522e0"},
]
[package.dependencies]
-isodate = "*"
-pyparsing = "*"
-setuptools = "*"
+isodate = ">=0.6.0,<0.7.0"
+pyparsing = ">=2.1.0,<4"
[package.extras]
-berkeleydb = ["berkeleydb"]
-dev = ["black (==22.6.0)", "flake8", "flakeheaven", "isort", "mypy", "pep8-naming", "types-setuptools"]
-docs = ["myst-parser", "sphinx (<6)", "sphinx-autodoc-typehints", "sphinxcontrib-apidoc", "sphinxcontrib-kroki"]
-html = ["html5lib"]
-networkx = ["networkx"]
-tests = ["html5lib", "pytest", "pytest-cov"]
+berkeleydb = ["berkeleydb (>=18.1.0,<19.0.0)"]
+html = ["html5lib (>=1.0,<2.0)"]
+lxml = ["lxml (>=4.3.0,<5.0.0)"]
+networkx = ["networkx (>=2.0.0,<3.0.0)"]
[[package]]
name = "rdflib-jsonld"
version = "0.6.1"
description = "rdflib extension adding JSON-LD parser and serializer"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -2007,7 +1912,6 @@ rdflib = ">=5.0.0"
name = "rdflib-shim"
version = "1.0.3"
description = "Shim for rdflib 5 and 6 incompatibilities"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -2021,21 +1925,20 @@ rdflib-jsonld = "0.6.1"
[[package]]
name = "requests"
-version = "2.28.2"
+version = "2.31.0"
description = "Python HTTP for Humans."
-category = "main"
optional = false
-python-versions = ">=3.7, <4"
+python-versions = ">=3.7"
files = [
- {file = "requests-2.28.2-py3-none-any.whl", hash = "sha256:64299f4909223da747622c030b781c0d7811e359c37124b4bd368fb8c6518baa"},
- {file = "requests-2.28.2.tar.gz", hash = "sha256:98b1b2782e3c6c4904938b84c0eb932721069dfdb9134313beff7c83c2df24bf"},
+ {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"},
+ {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"},
]
[package.dependencies]
certifi = ">=2017.4.17"
charset-normalizer = ">=2,<4"
idna = ">=2.5,<4"
-urllib3 = ">=1.21.1,<1.27"
+urllib3 = ">=1.21.1,<3"
[package.extras]
socks = ["PySocks (>=1.5.6,!=1.5.7)"]
@@ -2045,7 +1948,6 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
name = "requests-oauthlib"
version = "1.3.1"
description = "OAuthlib authentication support for Requests."
-category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
files = [
@@ -2064,7 +1966,6 @@ rsa = ["oauthlib[signedtoken] (>=3.0.0)"]
name = "rfc3339-validator"
version = "0.1.4"
description = "A pure python RFC3339 validator"
-category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
files = [
@@ -2079,7 +1980,6 @@ six = "*"
name = "rfc3987"
version = "1.3.8"
description = "Parsing and validation of URIs (RFC 3986) and IRIs (RFC 3987)"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -2091,7 +1991,6 @@ files = [
name = "rsa"
version = "4.9"
description = "Pure-Python RSA implementation"
-category = "dev"
optional = false
python-versions = ">=3.6,<4"
files = [
@@ -2104,18 +2003,17 @@ pyasn1 = ">=0.1.3"
[[package]]
name = "ruamel-yaml"
-version = "0.17.21"
+version = "0.17.28"
description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order"
-category = "dev"
optional = false
python-versions = ">=3"
files = [
- {file = "ruamel.yaml-0.17.21-py3-none-any.whl", hash = "sha256:742b35d3d665023981bd6d16b3d24248ce5df75fdb4e2924e93a05c1f8b61ca7"},
- {file = "ruamel.yaml-0.17.21.tar.gz", hash = "sha256:8b7ce697a2f212752a35c1ac414471dc16c424c9573be4926b56ff3f5d23b7af"},
+ {file = "ruamel.yaml-0.17.28-py3-none-any.whl", hash = "sha256:823aff68f88260805049d6a4825e36cb7f1e273a7dd8f391e7b35a16a67a30ea"},
+ {file = "ruamel.yaml-0.17.28.tar.gz", hash = "sha256:3bf6df1c481d2463a633be6ee86e8aece941bb3298a9a0cd6d0865f47b1ddce6"},
]
[package.dependencies]
-"ruamel.yaml.clib" = {version = ">=0.2.6", markers = "platform_python_implementation == \"CPython\" and python_version < \"3.11\""}
+"ruamel.yaml.clib" = {version = ">=0.2.7", markers = "platform_python_implementation == \"CPython\" and python_version < \"3.12\""}
[package.extras]
docs = ["ryd"]
@@ -2125,7 +2023,6 @@ jinja2 = ["ruamel.yaml.jinja2 (>=0.2)"]
name = "ruamel-yaml-clib"
version = "0.2.7"
description = "C version of reader, parser and emitter for ruamel.yaml derived from libyaml"
-category = "dev"
optional = false
python-versions = ">=3.5"
files = [
@@ -2136,8 +2033,11 @@ files = [
{file = "ruamel.yaml.clib-0.2.7-cp310-cp310-win32.whl", hash = "sha256:763d65baa3b952479c4e972669f679fe490eee058d5aa85da483ebae2009d231"},
{file = "ruamel.yaml.clib-0.2.7-cp310-cp310-win_amd64.whl", hash = "sha256:d000f258cf42fec2b1bbf2863c61d7b8918d31ffee905da62dede869254d3b8a"},
{file = "ruamel.yaml.clib-0.2.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:045e0626baf1c52e5527bd5db361bc83180faaba2ff586e763d3d5982a876a9e"},
- {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-macosx_12_6_arm64.whl", hash = "sha256:721bc4ba4525f53f6a611ec0967bdcee61b31df5a56801281027a3a6d1c2daf5"},
+ {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:1a6391a7cabb7641c32517539ca42cf84b87b667bad38b78d4d42dd23e957c81"},
+ {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:9c7617df90c1365638916b98cdd9be833d31d337dbcd722485597b43c4a215bf"},
{file = "ruamel.yaml.clib-0.2.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:41d0f1fa4c6830176eef5b276af04c89320ea616655d01327d5ce65e50575c94"},
+ {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-win32.whl", hash = "sha256:f6d3d39611ac2e4f62c3128a9eed45f19a6608670c5a2f4f07f24e8de3441d38"},
+ {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-win_amd64.whl", hash = "sha256:da538167284de58a52109a9b89b8f6a53ff8437dd6dc26d33b57bf6699153122"},
{file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:4b3a93bb9bc662fc1f99c5c3ea8e623d8b23ad22f861eb6fce9377ac07ad6072"},
{file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-macosx_12_0_arm64.whl", hash = "sha256:a234a20ae07e8469da311e182e70ef6b199d0fbeb6c6cc2901204dd87fb867e8"},
{file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:15910ef4f3e537eea7fe45f8a5d19997479940d9196f357152a09031c5be59f3"},
@@ -2167,44 +2067,42 @@ files = [
[[package]]
name = "schemasheets"
-version = "0.1.19"
+version = "0.1.21"
description = "Package to author schemas using spreadsheets"
-category = "dev"
optional = false
python-versions = ">=3.9,<4.0"
files = [
- {file = "schemasheets-0.1.19-py3-none-any.whl", hash = "sha256:198851332666bf0de38d1b1de833ede9e8aa434d6f80c973af090b0ddf4aebdc"},
- {file = "schemasheets-0.1.19.tar.gz", hash = "sha256:576b1d2d16d0b542972fc1a5353bccb4770fb0e105ff9f524ce860359be54ba8"},
+ {file = "schemasheets-0.1.21-py3-none-any.whl", hash = "sha256:41f993cdc68f21f7ae0fa7f62a5ed02b5b8ce40c52ef29ae6486f6fe7bc7dd0a"},
+ {file = "schemasheets-0.1.21.tar.gz", hash = "sha256:5768b07b25a5adbee56af7c86a493c8ba1428426d5b211c5d7fe7a22c3109cee"},
]
[package.dependencies]
-bioregistry = ">=0.5,<0.6"
+bioregistry = ">0.5.0,<0.7.0"
Jinja2 = ">=3.0.3,<4.0.0"
linkml = ">=1.4,<2.0"
+linkml-runtime = ">=1.4,<2.0"
ontodev-cogs = ">=0.3.3,<0.4.0"
[[package]]
name = "setuptools"
-version = "67.5.1"
+version = "67.8.0"
description = "Easily download, build, install, upgrade, and uninstall Python packages"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
- {file = "setuptools-67.5.1-py3-none-any.whl", hash = "sha256:1c39d42bda4cb89f7fdcad52b6762e3c309ec8f8715b27c684176b7d71283242"},
- {file = "setuptools-67.5.1.tar.gz", hash = "sha256:15136a251127da2d2e77ac7a1bc231eb504654f7e3346d93613a13f2e2787535"},
+ {file = "setuptools-67.8.0-py3-none-any.whl", hash = "sha256:5df61bf30bb10c6f756eb19e7c9f3b473051f48db77fddbe06ff2ca307df9a6f"},
+ {file = "setuptools-67.8.0.tar.gz", hash = "sha256:62642358adc77ffa87233bc4d2354c4b2682d214048f500964dbe760ccedf102"},
]
[package.extras]
docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"]
-testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"]
+testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"]
testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"]
[[package]]
name = "shexjsg"
version = "0.8.2"
description = "ShExJSG - Astract Syntax Tree for the ShEx 2.0 language"
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -2219,7 +2117,6 @@ pyjsg = ">=0.11.10"
name = "six"
version = "1.16.0"
description = "Python 2 and 3 compatibility utilities"
-category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
files = [
@@ -2231,7 +2128,6 @@ files = [
name = "snowballstemmer"
version = "2.2.0"
description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms."
-category = "dev"
optional = false
python-versions = "*"
files = [
@@ -2243,7 +2139,6 @@ files = [
name = "sortedcontainers"
version = "2.4.0"
description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -2253,21 +2148,19 @@ files = [
[[package]]
name = "soupsieve"
-version = "2.4"
+version = "2.4.1"
description = "A modern CSS selector implementation for Beautiful Soup."
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
- {file = "soupsieve-2.4-py3-none-any.whl", hash = "sha256:49e5368c2cda80ee7e84da9dbe3e110b70a4575f196efb74e51b94549d921955"},
- {file = "soupsieve-2.4.tar.gz", hash = "sha256:e28dba9ca6c7c00173e34e4ba57448f0688bb681b7c5e8bf4971daafc093d69a"},
+ {file = "soupsieve-2.4.1-py3-none-any.whl", hash = "sha256:1c1bfee6819544a3447586c889157365a27e10d88cde3ad3da0cf0ddf646feb8"},
+ {file = "soupsieve-2.4.1.tar.gz", hash = "sha256:89d12b2d5dfcd2c9e8c22326da9d9aa9cb3dfab0a83a024f05704076ee8d35ea"},
]
[[package]]
name = "sparqlslurper"
version = "0.5.1"
description = "SPARQL Slurper for rdflib"
-category = "dev"
optional = false
python-versions = ">=3.7.4"
files = [
@@ -2284,7 +2177,6 @@ sparqlwrapper = ">=1.8.2"
name = "sparqlwrapper"
version = "2.0.0"
description = "SPARQL Endpoint interface to Python"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -2303,21 +2195,20 @@ pandas = ["pandas (>=1.3.5)"]
[[package]]
name = "sphinx"
-version = "6.1.3"
+version = "6.2.1"
description = "Python documentation generator"
-category = "dev"
optional = false
python-versions = ">=3.8"
files = [
- {file = "Sphinx-6.1.3.tar.gz", hash = "sha256:0dac3b698538ffef41716cf97ba26c1c7788dba73ce6f150c1ff5b4720786dd2"},
- {file = "sphinx-6.1.3-py3-none-any.whl", hash = "sha256:807d1cb3d6be87eb78a381c3e70ebd8d346b9a25f3753e9947e866b2786865fc"},
+ {file = "Sphinx-6.2.1.tar.gz", hash = "sha256:6d56a34697bb749ffa0152feafc4b19836c755d90a7c59b72bc7dfd371b9cc6b"},
+ {file = "sphinx-6.2.1-py3-none-any.whl", hash = "sha256:97787ff1fa3256a3eef9eda523a63dbf299f7b47e053cfcf684a1c2a8380c912"},
]
[package.dependencies]
alabaster = ">=0.7,<0.8"
babel = ">=2.9"
colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""}
-docutils = ">=0.18,<0.20"
+docutils = ">=0.18.1,<0.20"
imagesize = ">=1.3"
importlib-metadata = {version = ">=4.8", markers = "python_version < \"3.10\""}
Jinja2 = ">=3.0"
@@ -2335,13 +2226,12 @@ sphinxcontrib-serializinghtml = ">=1.1.5"
[package.extras]
docs = ["sphinxcontrib-websupport"]
lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-simplify", "isort", "mypy (>=0.990)", "ruff", "sphinx-lint", "types-requests"]
-test = ["cython", "html5lib", "pytest (>=4.6)"]
+test = ["cython", "filelock", "html5lib", "pytest (>=4.6)"]
[[package]]
name = "sphinx-click"
version = "4.4.0"
description = "Sphinx extension that automatically documents click applications"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -2356,14 +2246,13 @@ sphinx = ">=2.0"
[[package]]
name = "sphinx-rtd-theme"
-version = "1.2.0"
+version = "1.2.1"
description = "Read the Docs theme for Sphinx"
-category = "dev"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7"
files = [
- {file = "sphinx_rtd_theme-1.2.0-py2.py3-none-any.whl", hash = "sha256:f823f7e71890abe0ac6aaa6013361ea2696fc8d3e1fa798f463e82bdb77eeff2"},
- {file = "sphinx_rtd_theme-1.2.0.tar.gz", hash = "sha256:a0d8bd1a2ed52e0b338cbe19c4b2eef3c5e7a048769753dac6a9f059c7b641b8"},
+ {file = "sphinx_rtd_theme-1.2.1-py2.py3-none-any.whl", hash = "sha256:2cc9351176cbf91944ce44cefd4fab6c3b76ac53aa9e15d6db45a3229ad7f866"},
+ {file = "sphinx_rtd_theme-1.2.1.tar.gz", hash = "sha256:cf9a7dc0352cf179c538891cb28d6fad6391117d4e21c891776ab41dd6c8ff70"},
]
[package.dependencies]
@@ -2378,7 +2267,6 @@ dev = ["bump2version", "sphinxcontrib-httpdomain", "transifex-client", "wheel"]
name = "sphinxcontrib-applehelp"
version = "1.0.4"
description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books"
-category = "dev"
optional = false
python-versions = ">=3.8"
files = [
@@ -2394,7 +2282,6 @@ test = ["pytest"]
name = "sphinxcontrib-devhelp"
version = "1.0.2"
description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document."
-category = "dev"
optional = false
python-versions = ">=3.5"
files = [
@@ -2410,7 +2297,6 @@ test = ["pytest"]
name = "sphinxcontrib-htmlhelp"
version = "2.0.1"
description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files"
-category = "dev"
optional = false
python-versions = ">=3.8"
files = [
@@ -2424,24 +2310,22 @@ test = ["html5lib", "pytest"]
[[package]]
name = "sphinxcontrib-jquery"
-version = "2.0.0"
+version = "4.1"
description = "Extension to include jQuery on newer Sphinx releases"
-category = "dev"
optional = false
python-versions = ">=2.7"
files = [
- {file = "sphinxcontrib-jquery-2.0.0.tar.gz", hash = "sha256:8fb65f6dba84bf7bcd1aea1f02ab3955ac34611d838bcc95d4983b805b234daa"},
- {file = "sphinxcontrib_jquery-2.0.0-py3-none-any.whl", hash = "sha256:ed47fa425c338ffebe3c37e1cdb56e30eb806116b85f01055b158c7057fdb995"},
+ {file = "sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a"},
+ {file = "sphinxcontrib_jquery-4.1-py2.py3-none-any.whl", hash = "sha256:f936030d7d0147dd026a4f2b5a57343d233f1fc7b363f68b3d4f1cb0993878ae"},
]
[package.dependencies]
-setuptools = "*"
+Sphinx = ">=1.8"
[[package]]
name = "sphinxcontrib-jsmath"
version = "1.0.1"
description = "A sphinx extension which renders display math in HTML via JavaScript"
-category = "dev"
optional = false
python-versions = ">=3.5"
files = [
@@ -2456,7 +2340,6 @@ test = ["flake8", "mypy", "pytest"]
name = "sphinxcontrib-qthelp"
version = "1.0.3"
description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document."
-category = "dev"
optional = false
python-versions = ">=3.5"
files = [
@@ -2472,7 +2355,6 @@ test = ["pytest"]
name = "sphinxcontrib-serializinghtml"
version = "1.1.5"
description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)."
-category = "dev"
optional = false
python-versions = ">=3.5"
files = [
@@ -2486,53 +2368,52 @@ test = ["pytest"]
[[package]]
name = "sqlalchemy"
-version = "1.4.45"
+version = "1.4.48"
description = "Database Abstraction Library"
-category = "main"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7"
files = [
- {file = "SQLAlchemy-1.4.45-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:f1d3fb02a4d0b07d1351a4a52f159e5e7b3045c903468b7e9349ebf0020ffdb9"},
- {file = "SQLAlchemy-1.4.45-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:9b7025d46aba946272f6b6b357a22f3787473ef27451f342df1a2a6de23743e3"},
- {file = "SQLAlchemy-1.4.45-cp27-cp27m-win32.whl", hash = "sha256:26b8424b32eeefa4faad21decd7bdd4aade58640b39407bf43e7d0a7c1bc0453"},
- {file = "SQLAlchemy-1.4.45-cp27-cp27m-win_amd64.whl", hash = "sha256:13578d1cda69bc5e76c59fec9180d6db7ceb71c1360a4d7861c37d87ea6ca0b1"},
- {file = "SQLAlchemy-1.4.45-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6cd53b4c756a6f9c6518a3dc9c05a38840f9ae442c91fe1abde50d73651b6922"},
- {file = "SQLAlchemy-1.4.45-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:ca152ffc7f0aa069c95fba46165030267ec5e4bb0107aba45e5e9e86fe4d9363"},
- {file = "SQLAlchemy-1.4.45-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:06055476d38ed7915eeed22b78580556d446d175c3574a01b9eb04d91f3a8b2e"},
- {file = "SQLAlchemy-1.4.45-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:081e2a2d75466353c738ca2ee71c0cfb08229b4f9909b5fa085f75c48d021471"},
- {file = "SQLAlchemy-1.4.45-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96821d806c0c90c68ce3f2ce6dd529c10e5d7587961f31dd5c30e3bfddc4545d"},
- {file = "SQLAlchemy-1.4.45-cp310-cp310-win32.whl", hash = "sha256:c8051bff4ce48cbc98f11e95ac46bfd1e36272401070c010248a3230d099663f"},
- {file = "SQLAlchemy-1.4.45-cp310-cp310-win_amd64.whl", hash = "sha256:16ad798fc121cad5ea019eb2297127b08c54e1aa95fe17b3fea9fdbc5c34fe62"},
- {file = "SQLAlchemy-1.4.45-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:099efef0de9fbda4c2d7cb129e4e7f812007901942259d4e6c6e19bd69de1088"},
- {file = "SQLAlchemy-1.4.45-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29a29d02c9e6f6b105580c5ed7afb722b97bc2e2fdb85e1d45d7ddd8440cfbca"},
- {file = "SQLAlchemy-1.4.45-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc10423b59d6d032d6dff0bb42aa06dc6a8824eb6029d70c7d1b6981a2e7f4d8"},
- {file = "SQLAlchemy-1.4.45-cp311-cp311-win32.whl", hash = "sha256:1a92685db3b0682776a5abcb5f9e9addb3d7d9a6d841a452a17ec2d8d457bea7"},
- {file = "SQLAlchemy-1.4.45-cp311-cp311-win_amd64.whl", hash = "sha256:db3ccbce4a861bf4338b254f95916fc68dd8b7aa50eea838ecdaf3a52810e9c0"},
- {file = "SQLAlchemy-1.4.45-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:a62ae2ea3b940ce9c9cbd675489c2047921ce0a79f971d3082978be91bd58117"},
- {file = "SQLAlchemy-1.4.45-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a87f8595390764db333a1705591d0934973d132af607f4fa8b792b366eacbb3c"},
- {file = "SQLAlchemy-1.4.45-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9a21c1fb71c69c8ec65430160cd3eee44bbcea15b5a4e556f29d03f246f425ec"},
- {file = "SQLAlchemy-1.4.45-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7944b04e6fcf8d733964dd9ee36b6a587251a1a4049af3a9b846f6e64eb349a"},
- {file = "SQLAlchemy-1.4.45-cp36-cp36m-win32.whl", hash = "sha256:a3bcd5e2049ceb97e8c273e6a84ff4abcfa1dc47b6d8bbd36e07cce7176610d3"},
- {file = "SQLAlchemy-1.4.45-cp36-cp36m-win_amd64.whl", hash = "sha256:5953e225be47d80410ae519f865b5c341f541d8e383fb6d11f67fb71a45bf890"},
- {file = "SQLAlchemy-1.4.45-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:6a91b7883cb7855a27bc0637166eed622fdf1bb94a4d1630165e5dd88c7e64d3"},
- {file = "SQLAlchemy-1.4.45-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d458fd0566bc9e10b8be857f089e96b5ca1b1ef033226f24512f9ffdf485a8c0"},
- {file = "SQLAlchemy-1.4.45-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:88f4ad3b081c0dbb738886f8d425a5d983328670ee83b38192687d78fc82bd1e"},
- {file = "SQLAlchemy-1.4.45-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd95a3e6ab46da2c5b0703e797a772f3fab44d085b3919a4f27339aa3b1f51d3"},
- {file = "SQLAlchemy-1.4.45-cp37-cp37m-win32.whl", hash = "sha256:715f5859daa3bee6ecbad64501637fa4640ca6734e8cda6135e3898d5f8ccadd"},
- {file = "SQLAlchemy-1.4.45-cp37-cp37m-win_amd64.whl", hash = "sha256:2d1539fbc82d2206380a86d6d7d0453764fdca5d042d78161bbfb8dd047c80ec"},
- {file = "SQLAlchemy-1.4.45-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:01aa76f324c9bbc0dcb2bc3d9e2a9d7ede4808afa1c38d40d5e2007e3163b206"},
- {file = "SQLAlchemy-1.4.45-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:416fe7d228937bd37990b5a429fd00ad0e49eabcea3455af7beed7955f192edd"},
- {file = "SQLAlchemy-1.4.45-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7e32ce2584564d9e068bb7e0ccd1810cbb0a824c0687f8016fe67e97c345a637"},
- {file = "SQLAlchemy-1.4.45-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:561605cfc26273825ed2fb8484428faf36e853c13e4c90c61c58988aeccb34ed"},
- {file = "SQLAlchemy-1.4.45-cp38-cp38-win32.whl", hash = "sha256:55ddb5585129c5d964a537c9e32a8a68a8c6293b747f3fa164e1c034e1657a98"},
- {file = "SQLAlchemy-1.4.45-cp38-cp38-win_amd64.whl", hash = "sha256:445914dcadc0b623bd9851260ee54915ecf4e3041a62d57709b18a0eed19f33b"},
- {file = "SQLAlchemy-1.4.45-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:2db887dbf05bcc3151de1c4b506b14764c6240a42e844b4269132a7584de1e5f"},
- {file = "SQLAlchemy-1.4.45-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52b90c9487e4449ad954624d01dea34c90cd8c104bce46b322c83654f37a23c5"},
- {file = "SQLAlchemy-1.4.45-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f61e54b8c2b389de1a8ad52394729c478c67712dbdcdadb52c2575e41dae94a5"},
- {file = "SQLAlchemy-1.4.45-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e91a5e45a2ea083fe344b3503405978dff14d60ef3aa836432c9ca8cd47806b6"},
- {file = "SQLAlchemy-1.4.45-cp39-cp39-win32.whl", hash = "sha256:0e068b8414d60dd35d43c693555fc3d2e1d822cef07960bb8ca3f1ee6c4ff762"},
- {file = "SQLAlchemy-1.4.45-cp39-cp39-win_amd64.whl", hash = "sha256:2d6f178ff2923730da271c8aa317f70cf0df11a4d1812f1d7a704b1cf29c5fe3"},
- {file = "SQLAlchemy-1.4.45.tar.gz", hash = "sha256:fd69850860093a3f69fefe0ab56d041edfdfe18510b53d9a2eaecba2f15fa795"},
+ {file = "SQLAlchemy-1.4.48-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:4bac3aa3c3d8bc7408097e6fe8bf983caa6e9491c5d2e2488cfcfd8106f13b6a"},
+ {file = "SQLAlchemy-1.4.48-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:dbcae0e528d755f4522cad5842f0942e54b578d79f21a692c44d91352ea6d64e"},
+ {file = "SQLAlchemy-1.4.48-cp27-cp27m-win32.whl", hash = "sha256:cbbe8b8bffb199b225d2fe3804421b7b43a0d49983f81dc654d0431d2f855543"},
+ {file = "SQLAlchemy-1.4.48-cp27-cp27m-win_amd64.whl", hash = "sha256:627e04a5d54bd50628fc8734d5fc6df2a1aa5962f219c44aad50b00a6cdcf965"},
+ {file = "SQLAlchemy-1.4.48-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:9af1db7a287ef86e0f5cd990b38da6bd9328de739d17e8864f1817710da2d217"},
+ {file = "SQLAlchemy-1.4.48-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:ce7915eecc9c14a93b73f4e1c9d779ca43e955b43ddf1e21df154184f39748e5"},
+ {file = "SQLAlchemy-1.4.48-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5381ddd09a99638f429f4cbe1b71b025bed318f6a7b23e11d65f3eed5e181c33"},
+ {file = "SQLAlchemy-1.4.48-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:87609f6d4e81a941a17e61a4c19fee57f795e96f834c4f0a30cee725fc3f81d9"},
+ {file = "SQLAlchemy-1.4.48-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb0808ad34167f394fea21bd4587fc62f3bd81bba232a1e7fbdfa17e6cfa7cd7"},
+ {file = "SQLAlchemy-1.4.48-cp310-cp310-win32.whl", hash = "sha256:d53cd8bc582da5c1c8c86b6acc4ef42e20985c57d0ebc906445989df566c5603"},
+ {file = "SQLAlchemy-1.4.48-cp310-cp310-win_amd64.whl", hash = "sha256:4355e5915844afdc5cf22ec29fba1010166e35dd94a21305f49020022167556b"},
+ {file = "SQLAlchemy-1.4.48-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:066c2b0413e8cb980e6d46bf9d35ca83be81c20af688fedaef01450b06e4aa5e"},
+ {file = "SQLAlchemy-1.4.48-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c99bf13e07140601d111a7c6f1fc1519914dd4e5228315bbda255e08412f61a4"},
+ {file = "SQLAlchemy-1.4.48-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ee26276f12614d47cc07bc85490a70f559cba965fb178b1c45d46ffa8d73fda"},
+ {file = "SQLAlchemy-1.4.48-cp311-cp311-win32.whl", hash = "sha256:49c312bcff4728bffc6fb5e5318b8020ed5c8b958a06800f91859fe9633ca20e"},
+ {file = "SQLAlchemy-1.4.48-cp311-cp311-win_amd64.whl", hash = "sha256:cef2e2abc06eab187a533ec3e1067a71d7bbec69e582401afdf6d8cad4ba3515"},
+ {file = "SQLAlchemy-1.4.48-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:3509159e050bd6d24189ec7af373359f07aed690db91909c131e5068176c5a5d"},
+ {file = "SQLAlchemy-1.4.48-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2fc2ab4d9f6d9218a5caa4121bdcf1125303482a1cdcfcdbd8567be8518969c0"},
+ {file = "SQLAlchemy-1.4.48-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e1ddbbcef9bcedaa370c03771ebec7e39e3944782bef49e69430383c376a250b"},
+ {file = "SQLAlchemy-1.4.48-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f82d8efea1ca92b24f51d3aea1a82897ed2409868a0af04247c8c1e4fef5890"},
+ {file = "SQLAlchemy-1.4.48-cp36-cp36m-win32.whl", hash = "sha256:e3e98d4907805b07743b583a99ecc58bf8807ecb6985576d82d5e8ae103b5272"},
+ {file = "SQLAlchemy-1.4.48-cp36-cp36m-win_amd64.whl", hash = "sha256:25887b4f716e085a1c5162f130b852f84e18d2633942c8ca40dfb8519367c14f"},
+ {file = "SQLAlchemy-1.4.48-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:0817c181271b0ce5df1aa20949f0a9e2426830fed5ecdcc8db449618f12c2730"},
+ {file = "SQLAlchemy-1.4.48-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fe1dd2562313dd9fe1778ed56739ad5d9aae10f9f43d9f4cf81d65b0c85168bb"},
+ {file = "SQLAlchemy-1.4.48-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:68413aead943883b341b2b77acd7a7fe2377c34d82e64d1840860247cec7ff7c"},
+ {file = "SQLAlchemy-1.4.48-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fbde5642104ac6e95f96e8ad6d18d9382aa20672008cf26068fe36f3004491df"},
+ {file = "SQLAlchemy-1.4.48-cp37-cp37m-win32.whl", hash = "sha256:11c6b1de720f816c22d6ad3bbfa2f026f89c7b78a5c4ffafb220e0183956a92a"},
+ {file = "SQLAlchemy-1.4.48-cp37-cp37m-win_amd64.whl", hash = "sha256:eb5464ee8d4bb6549d368b578e9529d3c43265007193597ddca71c1bae6174e6"},
+ {file = "SQLAlchemy-1.4.48-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:92e6133cf337c42bfee03ca08c62ba0f2d9695618c8abc14a564f47503157be9"},
+ {file = "SQLAlchemy-1.4.48-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44d29a3fc6d9c45962476b470a81983dd8add6ad26fdbfae6d463b509d5adcda"},
+ {file = "SQLAlchemy-1.4.48-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:005e942b451cad5285015481ae4e557ff4154dde327840ba91b9ac379be3b6ce"},
+ {file = "SQLAlchemy-1.4.48-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c8cfe951ed074ba5e708ed29c45397a95c4143255b0d022c7c8331a75ae61f3"},
+ {file = "SQLAlchemy-1.4.48-cp38-cp38-win32.whl", hash = "sha256:2b9af65cc58726129d8414fc1a1a650dcdd594ba12e9c97909f1f57d48e393d3"},
+ {file = "SQLAlchemy-1.4.48-cp38-cp38-win_amd64.whl", hash = "sha256:2b562e9d1e59be7833edf28b0968f156683d57cabd2137d8121806f38a9d58f4"},
+ {file = "SQLAlchemy-1.4.48-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:a1fc046756cf2a37d7277c93278566ddf8be135c6a58397b4c940abf837011f4"},
+ {file = "SQLAlchemy-1.4.48-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d9b55252d2ca42a09bcd10a697fa041e696def9dfab0b78c0aaea1485551a08"},
+ {file = "SQLAlchemy-1.4.48-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6dab89874e72a9ab5462997846d4c760cdb957958be27b03b49cf0de5e5c327c"},
+ {file = "SQLAlchemy-1.4.48-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1fd8b5ee5a3acc4371f820934b36f8109ce604ee73cc668c724abb054cebcb6e"},
+ {file = "SQLAlchemy-1.4.48-cp39-cp39-win32.whl", hash = "sha256:eee09350fd538e29cfe3a496ec6f148504d2da40dbf52adefb0d2f8e4d38ccc4"},
+ {file = "SQLAlchemy-1.4.48-cp39-cp39-win_amd64.whl", hash = "sha256:7ad2b0f6520ed5038e795cc2852eb5c1f20fa6831d73301ced4aafbe3a10e1f6"},
+ {file = "SQLAlchemy-1.4.48.tar.gz", hash = "sha256:b47bc287096d989a0838ce96f7d8e966914a24da877ed41a7531d44b55cdb8df"},
]
[package.dependencies]
@@ -2563,7 +2444,6 @@ sqlcipher = ["sqlcipher3-binary"]
name = "tabulate"
version = "0.9.0"
description = "Pretty-print tabular data"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -2576,14 +2456,13 @@ widechars = ["wcwidth"]
[[package]]
name = "termcolor"
-version = "2.2.0"
+version = "2.3.0"
description = "ANSI color formatting for output in terminal"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
- {file = "termcolor-2.2.0-py3-none-any.whl", hash = "sha256:91ddd848e7251200eac969846cbae2dacd7d71c2871e92733289e7e3666f48e7"},
- {file = "termcolor-2.2.0.tar.gz", hash = "sha256:dfc8ac3f350788f23b2947b3e6cfa5a53b630b612e6cd8965a015a776020b99a"},
+ {file = "termcolor-2.3.0-py3-none-any.whl", hash = "sha256:3afb05607b89aed0ffe25202399ee0867ad4d3cb4180d98aaf8eefa6a5f7d475"},
+ {file = "termcolor-2.3.0.tar.gz", hash = "sha256:b5b08f68937f138fe92f6c089b99f1e2da0ae56c52b78bf7075fd95420fd9a5a"},
]
[package.extras]
@@ -2593,7 +2472,6 @@ tests = ["pytest", "pytest-cov"]
name = "tomli"
version = "2.0.1"
description = "A lil' TOML parser"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -2605,7 +2483,6 @@ files = [
name = "tox"
version = "3.28.0"
description = "tox is a generic virtualenv management and test command line tool"
-category = "dev"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
files = [
@@ -2631,7 +2508,6 @@ testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pathlib2 (>=2.3.3)", "psu
name = "tqdm"
version = "4.65.0"
description = "Fast, Extensible Progress Meter"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
@@ -2650,21 +2526,19 @@ telegram = ["requests"]
[[package]]
name = "typing-extensions"
-version = "4.5.0"
+version = "4.6.2"
description = "Backported and Experimental Type Hints for Python 3.7+"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
- {file = "typing_extensions-4.5.0-py3-none-any.whl", hash = "sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4"},
- {file = "typing_extensions-4.5.0.tar.gz", hash = "sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb"},
+ {file = "typing_extensions-4.6.2-py3-none-any.whl", hash = "sha256:3a8b36f13dd5fdc5d1b16fe317f5668545de77fa0b8e02006381fd49d731ab98"},
+ {file = "typing_extensions-4.6.2.tar.gz", hash = "sha256:06006244c70ac8ee83fa8282cb188f697b8db25bc8b4df07be1873c43897060c"},
]
[[package]]
name = "uri-template"
version = "1.2.0"
description = "RFC 6570 URI Template Processor"
-category = "dev"
optional = false
python-versions = ">=3.6"
files = [
@@ -2679,7 +2553,6 @@ dev = ["flake8 (<4.0.0)", "flake8-annotations", "flake8-bugbear", "flake8-commas
name = "uritemplate"
version = "4.1.1"
description = "Implementation of RFC 6570 URI Templates"
-category = "dev"
optional = false
python-versions = ">=3.6"
files = [
@@ -2689,78 +2562,75 @@ files = [
[[package]]
name = "urllib3"
-version = "1.26.14"
+version = "2.0.2"
description = "HTTP library with thread-safe connection pooling, file post, and more."
-category = "main"
optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
+python-versions = ">=3.7"
files = [
- {file = "urllib3-1.26.14-py2.py3-none-any.whl", hash = "sha256:75edcdc2f7d85b137124a6c3c9fc3933cdeaa12ecb9a6a959f22797a0feca7e1"},
- {file = "urllib3-1.26.14.tar.gz", hash = "sha256:076907bf8fd355cde77728471316625a4d2f7e713c125f51953bb5b3eecf4f72"},
+ {file = "urllib3-2.0.2-py3-none-any.whl", hash = "sha256:d055c2f9d38dc53c808f6fdc8eab7360b6fdbbde02340ed25cfbcd817c62469e"},
+ {file = "urllib3-2.0.2.tar.gz", hash = "sha256:61717a1095d7e155cdb737ac7bb2f4324a858a1e2e6466f6d03ff630ca68d3cc"},
]
[package.extras]
-brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"]
-secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"]
-socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
+brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"]
+secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"]
+socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"]
+zstd = ["zstandard (>=0.18.0)"]
[[package]]
name = "virtualenv"
-version = "20.20.0"
+version = "20.23.0"
description = "Virtual Python Environment builder"
-category = "dev"
optional = false
python-versions = ">=3.7"
files = [
- {file = "virtualenv-20.20.0-py3-none-any.whl", hash = "sha256:3c22fa5a7c7aa106ced59934d2c20a2ecb7f49b4130b8bf444178a16b880fa45"},
- {file = "virtualenv-20.20.0.tar.gz", hash = "sha256:a8a4b8ca1e28f864b7514a253f98c1d62b64e31e77325ba279248c65fb4fcef4"},
+ {file = "virtualenv-20.23.0-py3-none-any.whl", hash = "sha256:6abec7670e5802a528357fdc75b26b9f57d5d92f29c5462ba0fbe45feacc685e"},
+ {file = "virtualenv-20.23.0.tar.gz", hash = "sha256:a85caa554ced0c0afbd0d638e7e2d7b5f92d23478d05d17a76daeac8f279f924"},
]
[package.dependencies]
distlib = ">=0.3.6,<1"
-filelock = ">=3.4.1,<4"
-platformdirs = ">=2.4,<4"
+filelock = ">=3.11,<4"
+platformdirs = ">=3.2,<4"
[package.extras]
-docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=22.12)"]
-test = ["covdefaults (>=2.2.2)", "coverage (>=7.1)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23)", "pytest (>=7.2.1)", "pytest-env (>=0.8.1)", "pytest-freezegun (>=0.4.2)", "pytest-mock (>=3.10)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)"]
+docs = ["furo (>=2023.3.27)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=22.12)"]
+test = ["covdefaults (>=2.3)", "coverage (>=7.2.3)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.3.1)", "pytest-env (>=0.8.1)", "pytest-freezegun (>=0.4.2)", "pytest-mock (>=3.10)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=67.7.1)", "time-machine (>=2.9)"]
[[package]]
name = "watchdog"
-version = "2.3.1"
+version = "3.0.0"
description = "Filesystem events monitoring"
-category = "dev"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
files = [
- {file = "watchdog-2.3.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d1f1200d4ec53b88bf04ab636f9133cb703eb19768a39351cee649de21a33697"},
- {file = "watchdog-2.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:564e7739abd4bd348aeafbf71cc006b6c0ccda3160c7053c4a53b67d14091d42"},
- {file = "watchdog-2.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:95ad708a9454050a46f741ba5e2f3468655ea22da1114e4c40b8cbdaca572565"},
- {file = "watchdog-2.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a073c91a6ef0dda488087669586768195c3080c66866144880f03445ca23ef16"},
- {file = "watchdog-2.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:aa8b028750b43e80eea9946d01925168eeadb488dfdef1d82be4b1e28067f375"},
- {file = "watchdog-2.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:964fd236cd443933268ae49b59706569c8b741073dbfd7ca705492bae9d39aab"},
- {file = "watchdog-2.3.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:91fd146d723392b3e6eb1ac21f122fcce149a194a2ba0a82c5e4d0ee29cd954c"},
- {file = "watchdog-2.3.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:efe3252137392a471a2174d721e1037a0e6a5da7beb72a021e662b7000a9903f"},
- {file = "watchdog-2.3.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:85bf2263290591b7c5fa01140601b64c831be88084de41efbcba6ea289874f44"},
- {file = "watchdog-2.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8f2df370cd8e4e18499dd0bfdef476431bcc396108b97195d9448d90924e3131"},
- {file = "watchdog-2.3.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ea5d86d1bcf4a9d24610aa2f6f25492f441960cf04aed2bd9a97db439b643a7b"},
- {file = "watchdog-2.3.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6f5d0f7eac86807275eba40b577c671b306f6f335ba63a5c5a348da151aba0fc"},
- {file = "watchdog-2.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b848c71ef2b15d0ef02f69da8cc120d335cec0ed82a3fa7779e27a5a8527225"},
- {file = "watchdog-2.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0d9878be36d2b9271e3abaa6f4f051b363ff54dbbe7e7df1af3c920e4311ee43"},
- {file = "watchdog-2.3.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4cd61f98cb37143206818cb1786d2438626aa78d682a8f2ecee239055a9771d5"},
- {file = "watchdog-2.3.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3d2dbcf1acd96e7a9c9aefed201c47c8e311075105d94ce5e899f118155709fd"},
- {file = "watchdog-2.3.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:03f342a9432fe08107defbe8e405a2cb922c5d00c4c6c168c68b633c64ce6190"},
- {file = "watchdog-2.3.1-py3-none-manylinux2014_aarch64.whl", hash = "sha256:7a596f9415a378d0339681efc08d2249e48975daae391d58f2e22a3673b977cf"},
- {file = "watchdog-2.3.1-py3-none-manylinux2014_armv7l.whl", hash = "sha256:0e1dd6d449267cc7d6935d7fe27ee0426af6ee16578eed93bacb1be9ff824d2d"},
- {file = "watchdog-2.3.1-py3-none-manylinux2014_i686.whl", hash = "sha256:7a1876f660e32027a1a46f8a0fa5747ad4fcf86cb451860eae61a26e102c8c79"},
- {file = "watchdog-2.3.1-py3-none-manylinux2014_ppc64.whl", hash = "sha256:2caf77ae137935c1466f8cefd4a3aec7017b6969f425d086e6a528241cba7256"},
- {file = "watchdog-2.3.1-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:53f3e95081280898d9e4fc51c5c69017715929e4eea1ab45801d5e903dd518ad"},
- {file = "watchdog-2.3.1-py3-none-manylinux2014_s390x.whl", hash = "sha256:9da7acb9af7e4a272089bd2af0171d23e0d6271385c51d4d9bde91fe918c53ed"},
- {file = "watchdog-2.3.1-py3-none-manylinux2014_x86_64.whl", hash = "sha256:8a4d484e846dcd75e96b96d80d80445302621be40e293bfdf34a631cab3b33dc"},
- {file = "watchdog-2.3.1-py3-none-win32.whl", hash = "sha256:a74155398434937ac2780fd257c045954de5b11b5c52fc844e2199ce3eecf4cf"},
- {file = "watchdog-2.3.1-py3-none-win_amd64.whl", hash = "sha256:5defe4f0918a2a1a4afbe4dbb967f743ac3a93d546ea4674567806375b024adb"},
- {file = "watchdog-2.3.1-py3-none-win_ia64.whl", hash = "sha256:4109cccf214b7e3462e8403ab1e5b17b302ecce6c103eb2fc3afa534a7f27b96"},
- {file = "watchdog-2.3.1.tar.gz", hash = "sha256:d9f9ed26ed22a9d331820a8432c3680707ea8b54121ddcc9dc7d9f2ceeb36906"},
+ {file = "watchdog-3.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:336adfc6f5cc4e037d52db31194f7581ff744b67382eb6021c868322e32eef41"},
+ {file = "watchdog-3.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a70a8dcde91be523c35b2bf96196edc5730edb347e374c7de7cd20c43ed95397"},
+ {file = "watchdog-3.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:adfdeab2da79ea2f76f87eb42a3ab1966a5313e5a69a0213a3cc06ef692b0e96"},
+ {file = "watchdog-3.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2b57a1e730af3156d13b7fdddfc23dea6487fceca29fc75c5a868beed29177ae"},
+ {file = "watchdog-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7ade88d0d778b1b222adebcc0927428f883db07017618a5e684fd03b83342bd9"},
+ {file = "watchdog-3.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7e447d172af52ad204d19982739aa2346245cc5ba6f579d16dac4bfec226d2e7"},
+ {file = "watchdog-3.0.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:9fac43a7466eb73e64a9940ac9ed6369baa39b3bf221ae23493a9ec4d0022674"},
+ {file = "watchdog-3.0.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:8ae9cda41fa114e28faf86cb137d751a17ffd0316d1c34ccf2235e8a84365c7f"},
+ {file = "watchdog-3.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:25f70b4aa53bd743729c7475d7ec41093a580528b100e9a8c5b5efe8899592fc"},
+ {file = "watchdog-3.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4f94069eb16657d2c6faada4624c39464f65c05606af50bb7902e036e3219be3"},
+ {file = "watchdog-3.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7c5f84b5194c24dd573fa6472685b2a27cc5a17fe5f7b6fd40345378ca6812e3"},
+ {file = "watchdog-3.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3aa7f6a12e831ddfe78cdd4f8996af9cf334fd6346531b16cec61c3b3c0d8da0"},
+ {file = "watchdog-3.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:233b5817932685d39a7896b1090353fc8efc1ef99c9c054e46c8002561252fb8"},
+ {file = "watchdog-3.0.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:13bbbb462ee42ec3c5723e1205be8ced776f05b100e4737518c67c8325cf6100"},
+ {file = "watchdog-3.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:8f3ceecd20d71067c7fd4c9e832d4e22584318983cabc013dbf3f70ea95de346"},
+ {file = "watchdog-3.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c9d8c8ec7efb887333cf71e328e39cffbf771d8f8f95d308ea4125bf5f90ba64"},
+ {file = "watchdog-3.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:0e06ab8858a76e1219e68c7573dfeba9dd1c0219476c5a44d5333b01d7e1743a"},
+ {file = "watchdog-3.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:d00e6be486affb5781468457b21a6cbe848c33ef43f9ea4a73b4882e5f188a44"},
+ {file = "watchdog-3.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:c07253088265c363d1ddf4b3cdb808d59a0468ecd017770ed716991620b8f77a"},
+ {file = "watchdog-3.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:5113334cf8cf0ac8cd45e1f8309a603291b614191c9add34d33075727a967709"},
+ {file = "watchdog-3.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:51f90f73b4697bac9c9a78394c3acbbd331ccd3655c11be1a15ae6fe289a8c83"},
+ {file = "watchdog-3.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:ba07e92756c97e3aca0912b5cbc4e5ad802f4557212788e72a72a47ff376950d"},
+ {file = "watchdog-3.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:d429c2430c93b7903914e4db9a966c7f2b068dd2ebdd2fa9b9ce094c7d459f33"},
+ {file = "watchdog-3.0.0-py3-none-win32.whl", hash = "sha256:3ed7c71a9dccfe838c2f0b6314ed0d9b22e77d268c67e015450a29036a81f60f"},
+ {file = "watchdog-3.0.0-py3-none-win_amd64.whl", hash = "sha256:4c9956d27be0bb08fc5f30d9d0179a855436e655f046d288e2bcc11adfae893c"},
+ {file = "watchdog-3.0.0-py3-none-win_ia64.whl", hash = "sha256:5d9f3a10e02d7371cd929b5d8f11e87d4bad890212ed3901f9b4d68767bee759"},
+ {file = "watchdog-3.0.0.tar.gz", hash = "sha256:4d98a320595da7a7c5a18fc48cb633c2e73cda78f93cac2ef42d42bf609a33f9"},
]
[package.extras]
@@ -2768,21 +2638,23 @@ watchmedo = ["PyYAML (>=3.10)"]
[[package]]
name = "webcolors"
-version = "1.12"
-description = "A library for working with color names and color values formats defined by HTML and CSS."
-category = "dev"
+version = "1.13"
+description = "A library for working with the color formats defined by HTML and CSS."
optional = false
python-versions = ">=3.7"
files = [
- {file = "webcolors-1.12-py3-none-any.whl", hash = "sha256:d98743d81d498a2d3eaf165196e65481f0d2ea85281463d856b1e51b09f62dce"},
- {file = "webcolors-1.12.tar.gz", hash = "sha256:16d043d3a08fd6a1b1b7e3e9e62640d09790dce80d2bdd4792a175b35fe794a9"},
+ {file = "webcolors-1.13-py3-none-any.whl", hash = "sha256:29bc7e8752c0a1bd4a1f03c14d6e6a72e93d82193738fa860cbff59d0fcc11bf"},
+ {file = "webcolors-1.13.tar.gz", hash = "sha256:c225b674c83fa923be93d235330ce0300373d02885cef23238813b0d5668304a"},
]
+[package.extras]
+docs = ["furo", "sphinx", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-notfound-page", "sphinxext-opengraph"]
+tests = ["pytest", "pytest-cov"]
+
[[package]]
name = "wrapt"
version = "1.15.0"
description = "Module for decorators, wrappers and monkey patching."
-category = "main"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
files = [
@@ -2867,7 +2739,6 @@ files = [
name = "zipp"
version = "3.15.0"
description = "Backport of pathlib-compatible object wrapper for zip files"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -2885,4 +2756,4 @@ docs = []
[metadata]
lock-version = "2.0"
python-versions = "^3.9"
-content-hash = "32683a331e68010727cdd05c331c7a99d5274ea123ccc22f30db1cff598bd125"
+content-hash = "7bcf91ad2880a485c69a8257877a68d8e9da19fc99e425cea886a72067290690"
diff --git a/project.Makefile b/project.Makefile
index 0dd0fa0..e6c5d80 100644
--- a/project.Makefile
+++ b/project.Makefile
@@ -1 +1,13 @@
## Add your own custom Makefile targets here
+
+RUN = poetry run
+
+examples/transformations/include/%.yaml: src/data/examples/%.yaml
+ $(RUN) linkml-tr map-data $< \
+ --schema src/cmdr/schema/cmdr.yaml \
+ --source-type Container \
+ --transformer-specification src/transformations/cmdr_to_include/cmdr_to_include.yaml \
+ --output $@
+
+# to be replaced with a iterative rule
+test_transform: examples/transformations/include/Container-material-entities.yaml
\ No newline at end of file
diff --git a/project/jsonld/cmdr.context.jsonld b/project/jsonld/cmdr.context.jsonld
index e6f1f59..6326f65 100644
--- a/project/jsonld/cmdr.context.jsonld
+++ b/project/jsonld/cmdr.context.jsonld
@@ -1,7 +1,11 @@
{
"comments": {
"description": "Auto generated by LinkML jsonld context generator",
+<<<<<<< HEAD
"generation_date": "2023-03-07T15:54:05",
+=======
+ "generation_date": "2023-03-07T15:56:42",
+>>>>>>> main
"source": "cmdr.yaml"
},
"@context": {
diff --git a/project/jsonld/cmdr.jsonld b/project/jsonld/cmdr.jsonld
index 2daa284..89a83df 100644
--- a/project/jsonld/cmdr.jsonld
+++ b/project/jsonld/cmdr.jsonld
@@ -253,7 +253,7 @@
"definition_uri": "https://w3id.org/linkml/Objectidentifier",
"description": "A URI or CURIE that represents an object in the model.",
"comments": [
- "Used for inheritence and type checking"
+ "Used for inheritance and type checking"
],
"from_schema": "https://w3id.org/linkml/types",
"imported_from": "linkml:types",
@@ -1072,6 +1072,24 @@
],
"slot_usage": {},
"class_uri": "https://example.org/TEMP/Container",
+ "tree_root": true,
+ "@type": "ClassDefinition"
+ },
+ {
+ "name": "DataObject",
+ "definition_uri": "https://example.org/TEMP/DataObject",
+ "description": "A DataFile Associated with a Subject or Investigation or MaterialEntity",
+ "from_schema": "TEMP",
+ "see_also": [
+ "include:DataFile"
+ ],
+ "aliases": [
+ "File",
+ "Data",
+ "DataFile"
+ ],
+ "slot_usage": {},
+ "class_uri": "https://example.org/TEMP/DataObject",
"@type": "ClassDefinition"
},
{
@@ -1255,7 +1273,11 @@
"source_file": "cmdr.yaml",
"source_file_date": "2023-03-06T16:01:53",
"source_file_size": 485,
+<<<<<<< HEAD
"generation_date": "2023-03-07T15:54:06",
+=======
+ "generation_date": "2023-03-07T15:56:42",
+>>>>>>> main
"@type": "SchemaDefinition",
"@context": [
"project/jsonld/cmdr.context.jsonld",
diff --git a/project/jsonschema/cmdr.schema.json b/project/jsonschema/cmdr.schema.json
index 9aecd02..f29c56e 100644
--- a/project/jsonschema/cmdr.schema.json
+++ b/project/jsonschema/cmdr.schema.json
@@ -228,6 +228,44 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"metamodel_version": "1.7.0",
+ "properties": {
+ "investigations": {
+ "items": {
+ "$ref": "#/$defs/Investigation"
+ },
+ "type": "array"
+ },
+ "material_processings": {
+ "items": {
+ "$ref": "#/$defs/MaterialProcessing"
+ },
+ "type": "array"
+ },
+ "materials": {
+ "items": {
+ "$ref": "#/$defs/MaterialEntity"
+ },
+ "type": "array"
+ },
+ "participations": {
+ "items": {
+ "$ref": "#/$defs/Participation"
+ },
+ "type": "array"
+ },
+ "specimen_collection_processes": {
+ "items": {
+ "$ref": "#/$defs/SpecimenCollectionProcess"
+ },
+ "type": "array"
+ },
+ "subjects": {
+ "items": {
+ "$ref": "#/$defs/Subject"
+ },
+ "type": "array"
+ }
+ },
"title": "cmdr",
"type": "object",
"version": null
diff --git a/project/owl/cmdr.owl.ttl b/project/owl/cmdr.owl.ttl
index fac0a16..e391788 100644
--- a/project/owl/cmdr.owl.ttl
+++ b/project/owl/cmdr.owl.ttl
@@ -25,10 +25,17 @@ linkml:cmdr a owl:Ontology ;
dcterms:license "MIT" ;
dcterms:title "cmdr" ;
rdfs:seeAlso "https://linkml.github.io/cmdr" ;
+<<<<<<< HEAD
linkml:generation_date "2023-03-07T15:54:11" ;
linkml:metamodel_version "1.7.0" ;
linkml:source_file "cmdr.yaml" ;
linkml:source_file_date "2023-03-06T16:01:53" ;
+=======
+ linkml:generation_date "2023-03-07T15:56:49" ;
+ linkml:metamodel_version "1.7.0" ;
+ linkml:source_file "cmdr.yaml" ;
+ linkml:source_file_date "2023-03-06T15:00:10" ;
+>>>>>>> main
linkml:source_file_size 485 .
linkml:topValue a owl:DatatypeProperty ;
@@ -41,20 +48,36 @@ linkml:topValue a owl:DatatypeProperty ;
owl:allValuesFrom ;
owl:onProperty ],
[ a owl:Restriction ;
+<<<<<<< HEAD
owl:allValuesFrom ;
owl:onProperty ],
[ a owl:Restriction ;
owl:allValuesFrom ;
owl:onProperty ],
+=======
+ owl:allValuesFrom ;
+ owl:onProperty ],
+>>>>>>> main
[ a owl:Restriction ;
owl:allValuesFrom ;
owl:onProperty ],
[ a owl:Restriction ;
+<<<<<<< HEAD
owl:allValuesFrom ;
owl:onProperty ],
[ a owl:Restriction ;
owl:allValuesFrom ;
owl:onProperty ] .
+=======
+ owl:allValuesFrom ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:allValuesFrom ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:allValuesFrom ;
+ owl:onProperty ] .
+>>>>>>> main
a owl:Class,
linkml:ClassDefinition ;
@@ -70,10 +93,17 @@ linkml:topValue a owl:DatatypeProperty ;
rdfs:label "MaterialProcessing" ;
rdfs:subClassOf [ a owl:Restriction ;
owl:allValuesFrom ;
+<<<<<<< HEAD
owl:onProperty ],
[ a owl:Restriction ;
owl:allValuesFrom ;
owl:onProperty ],
+=======
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:allValuesFrom ;
+ owl:onProperty ],
+>>>>>>> main
;
skos:definition "A planned process which results in physical changes in a specified input material" ;
skos:exactMatch .
@@ -84,11 +114,19 @@ linkml:topValue a owl:DatatypeProperty ;
rdfs:subClassOf [ a owl:Restriction ;
owl:maxQualifiedCardinality 1 ;
owl:onClass linkml:String ;
+<<<<<<< HEAD
owl:onProperty ],
[ a owl:Restriction ;
owl:maxQualifiedCardinality 1 ;
owl:onClass linkml:String ;
owl:onProperty ],
+=======
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:maxQualifiedCardinality 1 ;
+ owl:onClass linkml:String ;
+ owl:onProperty ],
+>>>>>>> main
;
skos:altLabel "MaterialCollectionProcess" ;
skos:definition "A planned process with the objective of collecting a specimen" ;
@@ -188,6 +226,7 @@ linkml:topValue a owl:DatatypeProperty ;
owl:onProperty ;
owl:qualifiedCardinality 1 ],
[ a owl:Restriction ;
+<<<<<<< HEAD
owl:maxQualifiedCardinality 1 ;
owl:onClass ;
owl:onProperty ],
@@ -207,6 +246,8 @@ linkml:topValue a owl:DatatypeProperty ;
owl:allValuesFrom linkml:String ;
owl:onProperty ],
[ a owl:Restriction ;
+=======
+>>>>>>> main
owl:onClass linkml:Uriorcurie ;
owl:onProperty ;
owl:qualifiedCardinality 1 ],
@@ -215,6 +256,7 @@ linkml:topValue a owl:DatatypeProperty ;
owl:onClass linkml:String ;
owl:onProperty ],
[ a owl:Restriction ;
+<<<<<<< HEAD
owl:allValuesFrom linkml:String ;
owl:onProperty ] ;
skos:definition "A planned process resulting in a material or data" .
@@ -238,19 +280,35 @@ linkml:topValue a owl:DatatypeProperty ;
owl:maxQualifiedCardinality 1 ;
owl:onClass linkml:Float ;
owl:onProperty ] .
+=======
+ owl:maxQualifiedCardinality 1 ;
+ owl:onClass ;
+ owl:onProperty ] ;
+ skos:definition "Subject/Study participation information" .
+>>>>>>> main
- a owl:ObjectProperty,
- linkml:SlotDefinition ;
- rdfs:label "has_input" ;
- rdfs:range linkml:String .
-
- a owl:ObjectProperty,
- linkml:SlotDefinition ;
- rdfs:label "has_output" ;
- rdfs:range linkml:String .
+ a owl:Class,
+ linkml:ClassDefinition ;
+ rdfs:label "Process" ;
+ rdfs:subClassOf [ a owl:Restriction ;
+ owl:allValuesFrom linkml:String ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:onClass linkml:Uriorcurie ;
+ owl:onProperty ;
+ owl:qualifiedCardinality 1 ],
+ [ a owl:Restriction ;
+ owl:maxQualifiedCardinality 1 ;
+ owl:onClass linkml:String ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:allValuesFrom linkml:String ;
+ owl:onProperty ] ;
+ skos:definition "A planned process resulting in a material or data" .
a owl:Class,
linkml:ClassDefinition ;
+<<<<<<< HEAD
rdfs:label "MaterialEntity" ;
rdfs:seeAlso "include:Biospecimen" ;
rdfs:subClassOf [ a owl:Restriction ;
@@ -319,11 +377,115 @@ linkml:topValue a owl:DatatypeProperty ;
"Study" ;
skos:definition "General information about the Investigation" .
+ a owl:ObjectProperty,
+=======
+ rdfs:label "Quantity" ;
+ rdfs:subClassOf [ a owl:Restriction ;
+ owl:maxQualifiedCardinality 1 ;
+ owl:onClass linkml:Float ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:maxQualifiedCardinality 1 ;
+ owl:onClass linkml:String ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:maxQualifiedCardinality 1 ;
+ owl:onClass linkml:String ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:maxQualifiedCardinality 1 ;
+ owl:onClass linkml:String ;
+ owl:onProperty ] .
+
+ a owl:ObjectProperty,
+ linkml:SlotDefinition ;
+ rdfs:label "has_input" ;
+ rdfs:range linkml:String .
+
+ a owl:ObjectProperty,
+>>>>>>> main
+ linkml:SlotDefinition ;
+ rdfs:label "has_output" ;
+ rdfs:range linkml:String .
+
+<<<<<<< HEAD
+=======
+ a owl:Class,
+ linkml:ClassDefinition ;
+ rdfs:label "MaterialEntity" ;
+ rdfs:seeAlso "include:Biospecimen" ;
+ rdfs:subClassOf [ a owl:Restriction ;
+ owl:onClass linkml:Uriorcurie ;
+ owl:onProperty ;
+ owl:qualifiedCardinality 1 ],
+ [ a owl:Restriction ;
+ owl:maxQualifiedCardinality 1 ;
+ owl:onClass ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:maxQualifiedCardinality 1 ;
+ owl:onClass linkml:String ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:maxQualifiedCardinality 1 ;
+ owl:onClass ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:allValuesFrom ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:maxQualifiedCardinality 1 ;
+ owl:onClass ;
+ owl:onProperty ] ;
+ skos:altLabel "Biosample",
+ "Biospecimen",
+ "Sample",
+ "Specimen",
+ "Substance" ;
+ skos:definition "Physical entity that is an input our output of a process from a Subject" .
+
+ a owl:Class,
+ linkml:ClassDefinition ;
+ rdfs:label "Subject" ;
+ rdfs:seeAlso "include:Participant" ;
+ rdfs:subClassOf [ a owl:Restriction ;
+ owl:maxQualifiedCardinality 1 ;
+ owl:onClass linkml:String ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:onClass linkml:Uriorcurie ;
+ owl:onProperty ;
+ owl:qualifiedCardinality 1 ] ;
+ skos:altLabel "Participant",
+ "Site" ;
+ skos:definition "Demographic and clinical information about the subject" .
+
+ a owl:Class,
+ linkml:ClassDefinition ;
+ rdfs:label "Investigation" ;
+ rdfs:seeAlso "include:Study" ;
+ rdfs:subClassOf [ a owl:Restriction ;
+ owl:maxQualifiedCardinality 1 ;
+ owl:onClass ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:onClass linkml:Uriorcurie ;
+ owl:onProperty ;
+ owl:qualifiedCardinality 1 ],
+ [ a owl:Restriction ;
+ owl:maxQualifiedCardinality 1 ;
+ owl:onClass linkml:String ;
+ owl:onProperty ] ;
+ skos:altLabel "Proposal",
+ "Study" ;
+ skos:definition "General information about the Investigation" .
+
a owl:ObjectProperty,
linkml:SlotDefinition ;
rdfs:label "id" ;
rdfs:range linkml:String .
+>>>>>>> main
a owl:ObjectProperty,
linkml:SlotDefinition ;
rdfs:label "name" ;
@@ -334,5 +496,3 @@ linkml:ClassDefinition a owl:Class ;
linkml:SlotDefinition a owl:Class ;
rdfs:label "slot_definition" .
-
-
diff --git a/project/shacl/cmdr.shacl.ttl b/project/shacl/cmdr.shacl.ttl
index e81c17a..54c5348 100644
--- a/project/shacl/cmdr.shacl.ttl
+++ b/project/shacl/cmdr.shacl.ttl
@@ -9,18 +9,28 @@
sh:nodeKind sh:IRI ;
sh:order 5 ;
sh:path ],
+<<<<<<< HEAD
[ sh:class ;
sh:nodeKind sh:IRI ;
sh:order 0 ;
sh:path ],
+=======
+>>>>>>> main
[ sh:class ;
sh:nodeKind sh:IRI ;
sh:order 4 ;
sh:path ],
+<<<<<<< HEAD
[ sh:class ;
sh:nodeKind sh:IRI ;
sh:order 3 ;
sh:path ],
+=======
+ [ sh:class ;
+ sh:nodeKind sh:IRI ;
+ sh:order 0 ;
+ sh:path ],
+>>>>>>> main
[ sh:class ;
sh:nodeKind sh:IRI ;
sh:order 2 ;
@@ -28,7 +38,15 @@
[ sh:class ;
sh:nodeKind sh:IRI ;
sh:order 1 ;
+<<<<<<< HEAD
sh:path ] ;
+=======
+ sh:path ],
+ [ sh:class ;
+ sh:nodeKind sh:IRI ;
+ sh:order 3 ;
+ sh:path ] ;
+>>>>>>> main
sh:targetClass .
a sh:NodeShape ;
@@ -41,23 +59,37 @@
sh:closed false ;
sh:description "A planned process resulting in a material or data" ;
sh:ignoredProperties ( rdf:type ) ;
+<<<<<<< HEAD
sh:property [ sh:maxCount 1 ;
sh:order 1 ;
sh:path ],
[ sh:order 3 ;
+=======
+ sh:property [ sh:order 3 ;
+>>>>>>> main
sh:path ],
[ sh:order 2 ;
sh:path ],
[ sh:maxCount 1 ;
sh:order 0 ;
+<<<<<<< HEAD
sh:path ] ;
+=======
+ sh:path ],
+ [ sh:maxCount 1 ;
+ sh:order 1 ;
+ sh:path ] ;
+>>>>>>> main
sh:targetClass .
a sh:NodeShape ;
sh:closed true ;
sh:description "A planned process which results in physical changes in a specified input material" ;
sh:ignoredProperties ( rdf:type ) ;
- sh:property [ sh:class ;
+ sh:property [ sh:maxCount 1 ;
+ sh:order 3 ;
+ sh:path ],
+ [ sh:class ;
sh:nodeKind sh:IRI ;
sh:order 0 ;
sh:path ],
@@ -77,6 +109,7 @@
sh:closed true ;
sh:description "A planned process with the objective of collecting a specimen" ;
sh:ignoredProperties ( rdf:type ) ;
+<<<<<<< HEAD
sh:property [ sh:maxCount 1 ;
sh:order 2 ;
sh:path ],
@@ -91,6 +124,22 @@
sh:nodeKind sh:IRI ;
sh:order 0 ;
sh:path ] ;
+=======
+ sh:property [ sh:class ;
+ sh:nodeKind sh:IRI ;
+ sh:order 0 ;
+ sh:path ],
+ [ sh:maxCount 1 ;
+ sh:order 3 ;
+ sh:path ],
+ [ sh:maxCount 1 ;
+ sh:order 2 ;
+ sh:path ],
+ [ sh:class ;
+ sh:nodeKind sh:IRI ;
+ sh:order 1 ;
+ sh:path ] ;
+>>>>>>> main
sh:targetClass .
a sh:NodeShape ;
@@ -109,6 +158,13 @@
sh:nodeKind sh:IRI ;
sh:order 3 ;
sh:path ],
+<<<<<<< HEAD
+=======
+ [ sh:class ;
+ sh:nodeKind sh:IRI ;
+ sh:order 2 ;
+ sh:path ],
+>>>>>>> main
[ sh:maxCount 1 ;
sh:order 1 ;
sh:path ] ;
@@ -118,12 +174,18 @@
sh:closed true ;
sh:ignoredProperties ( rdf:type ) ;
sh:property [ sh:maxCount 1 ;
+<<<<<<< HEAD
sh:order 2 ;
sh:path ],
+=======
+ sh:order 1 ;
+ sh:path ],
+>>>>>>> main
[ sh:maxCount 1 ;
sh:order 3 ;
sh:path ],
[ sh:maxCount 1 ;
+<<<<<<< HEAD
sh:order 1 ;
sh:path ],
[ sh:maxCount 1 ;
@@ -141,6 +203,25 @@
[ sh:maxCount 1 ;
sh:order 0 ;
sh:path ],
+=======
+ sh:order 2 ;
+ sh:path ],
+ [ sh:maxCount 1 ;
+ sh:order 0 ;
+ sh:path ] ;
+ sh:targetClass .
+
+ a sh:NodeShape ;
+ sh:closed true ;
+ sh:description "General information about the Investigation" ;
+ sh:ignoredProperties ( rdf:type ) ;
+ sh:property [ sh:maxCount 1 ;
+ sh:order 0 ;
+ sh:path ],
+ [ sh:maxCount 1 ;
+ sh:order 1 ;
+ sh:path ],
+>>>>>>> main
[ sh:class ;
sh:maxCount 1 ;
sh:nodeKind sh:IRI ;
@@ -152,6 +233,7 @@
sh:closed true ;
sh:description "Physical entity that is an input our output of a process from a Subject" ;
sh:ignoredProperties ( rdf:type ) ;
+<<<<<<< HEAD
sh:property [ sh:maxCount 1 ;
sh:order 0 ;
sh:path ],
@@ -169,6 +251,9 @@
sh:order 1 ;
sh:path ],
[ sh:class ;
+=======
+ sh:property [ sh:class ;
+>>>>>>> main
sh:nodeKind sh:IRI ;
sh:order 2 ;
sh:path ],
@@ -176,7 +261,22 @@
sh:maxCount 1 ;
sh:nodeKind sh:BlankNode ;
sh:order 4 ;
+<<<<<<< HEAD
sh:path ] ;
+=======
+ sh:path ],
+ [ sh:maxCount 1 ;
+ sh:order 1 ;
+ sh:path ],
+ [ sh:maxCount 1 ;
+ sh:order 0 ;
+ sh:path ],
+ [ sh:class ;
+ sh:maxCount 1 ;
+ sh:nodeKind sh:IRI ;
+ sh:order 3 ;
+ sh:path ] ;
+>>>>>>> main
sh:targetClass .
a sh:NodeShape ;
@@ -184,10 +284,18 @@
sh:description "Demographic and clinical information about the subject" ;
sh:ignoredProperties ( rdf:type ) ;
sh:property [ sh:maxCount 1 ;
+<<<<<<< HEAD
sh:order 1 ;
sh:path ],
[ sh:maxCount 1 ;
sh:order 0 ;
sh:path ] ;
+=======
+ sh:order 0 ;
+ sh:path ],
+ [ sh:maxCount 1 ;
+ sh:order 1 ;
+ sh:path ] ;
+>>>>>>> main
sh:targetClass .
diff --git a/pyproject.toml b/pyproject.toml
index 658fca1..ccccb6a 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -11,7 +11,7 @@ include = ["README.md", "src/cmdr/schema", "project"]
python = "^3.9"
linkml-runtime = "^1.1.24"
SQLAlchemy = "^1.4.32, !=1.4.46"
-linkml-transformer = "^0.1.1"
+linkml-transformer = "^0.1"
[tool.poetry.group.dev.dependencies]
@@ -25,7 +25,7 @@ style = "pep440"
[tool.poetry.dev-dependencies]
linkml = "^1.3.5"
mkdocs-material = "^8.2.8"
-mkdocs-mermaid2-plugin = "^0.6.0"
+mkdocs-mermaid2-plugin = "^1.1.1"
schemasheets = "^0.1.14"
[build-system]
diff --git a/src/cmdr/_version.py b/src/cmdr/_version.py
index f28d1ae..7edc9ee 100644
--- a/src/cmdr/_version.py
+++ b/src/cmdr/_version.py
@@ -4,4 +4,4 @@
__version__ = version(__name__)
except PackageNotFoundError:
# package not installed
- __version__ = "0.0.0"
\ No newline at end of file
+ __version__ = "0.0.0"
diff --git a/src/cmdr/datamodel/__init__.py b/src/cmdr/datamodel/__init__.py
index 54636ed..94d6a8b 100644
--- a/src/cmdr/datamodel/__init__.py
+++ b/src/cmdr/datamodel/__init__.py
@@ -1 +1,7 @@
+from pathlib import Path
from .cmdr import *
+
+THIS_PATH = Path(__file__).parent
+
+SCHEMA_DIRECTORY = THIS_PATH.parent / "schema"
+MAIN_SCHEMA_PATH = SCHEMA_DIRECTORY / "cmdr.yaml"
diff --git a/src/cmdr/datamodel/cmdr.py b/src/cmdr/datamodel/cmdr.py
index 14da5a2..9fb2c29 100644
--- a/src/cmdr/datamodel/cmdr.py
+++ b/src/cmdr/datamodel/cmdr.py
@@ -1,5 +1,5 @@
# Auto generated from cmdr.yaml by pythongen.py version: 0.9.0
-# Generation date: 2023-03-07T15:19:05
+# Generation date: 2023-03-07T15:56:51
# Schema: cmdr
#
# id: https://w3id.org/linkml/cmdr
diff --git a/src/cmdr/schema/cmdr.yaml b/src/cmdr/schema/cmdr.yaml
index a5becb0..811a79e 100644
--- a/src/cmdr/schema/cmdr.yaml
+++ b/src/cmdr/schema/cmdr.yaml
@@ -1,8 +1,9 @@
+---
id: https://w3id.org/linkml/cmdr
name: cmdr
title: cmdr
description: |-
- Core Model for Data Research (Tentative)
+ Core Model for Clinical Data Collection
license: MIT
see_also:
- https://linkml.github.io/cmdr
@@ -19,4 +20,255 @@ default_range: string
imports:
- linkml:types
- - from_sheets
+
+classes:
+ Container:
+ from_schema: TEMP
+ slot_usage:
+ investigations:
+ inlined: true
+ inlined_as_list: true
+ multivalued: true
+ range: Investigation
+ material_processings:
+ inlined: true
+ inlined_as_list: true
+ multivalued: true
+ range: MaterialProcessing
+ materials:
+ inlined: true
+ inlined_as_list: true
+ multivalued: true
+ range: MaterialEntity
+ participations:
+ inlined: true
+ inlined_as_list: true
+ multivalued: true
+ range: Participation
+ specimen_collection_processes:
+ inlined: true
+ inlined_as_list: true
+ multivalued: true
+ range: SpecimenCollectionProcess
+ subjects:
+ inlined: true
+ inlined_as_list: true
+ multivalued: true
+ range: Subject
+ slots:
+ - materials
+ - participations
+ - material_processings
+ - specimen_collection_processes
+ - investigations
+ - subjects
+ tree_root: true
+ DataObject:
+ aliases:
+ - File
+ - Data
+ - DataFile
+ description: A DataFile Associated with a Subject or Investigation or MaterialEntity
+ from_schema: TEMP
+ see_also:
+ - include:DataFile
+ Investigation:
+ aliases:
+ - Study
+ - Proposal
+ description: General information about the Investigation
+ from_schema: TEMP
+ see_also:
+ - include:Study
+ slot_usage:
+ id:
+ identifier: true
+ range: uriorcurie
+ part_of:
+ range: Investigation
+ slots:
+ - id
+ - name
+ - part_of
+ MaterialEntity:
+ aliases:
+ - Substance
+ - Specimen
+ - Sample
+ - Biospecimen
+ - Biosample
+ description: Physical entity that is an input our output of a process from a Subject
+ from_schema: TEMP
+ see_also:
+ - include:Biospecimen
+ slot_usage:
+ concentration:
+ range: Quantity
+ id:
+ identifier: true
+ range: uriorcurie
+ source:
+ comments:
+ - this is a shortcut. to be expanded later.
+ range: Subject
+ used_in:
+ multivalued: true
+ range: Investigation
+ volume:
+ range: Quantity
+ slots:
+ - id
+ - name
+ - used_in
+ - source
+ - volume
+ - concentration
+ MaterialProcessing:
+ class_uri: OBI:0000094
+ description: A planned process which results in physical changes in a specified
+ input material
+ from_schema: TEMP
+ is_a: Process
+ slot_usage:
+ has_input:
+ multivalued: true
+ range: MaterialEntity
+ has_output:
+ multivalued: true
+ range: MaterialEntity
+ slots:
+ - has_input
+ - has_output
+ Participation:
+ description: Subject/Study participation information
+ from_schema: TEMP
+ see_also:
+ - include:Participant
+ slot_usage:
+ id:
+ identifier: true
+ range: uriorcurie
+ includes:
+ range: Subject
+ involved_in:
+ multivalued: true
+ range: Investigation
+ slots:
+ - id
+ - name
+ - involved_in
+ - includes
+ Process:
+ abstract: true
+ description: A planned process resulting in a material or data
+ from_schema: TEMP
+ slot_usage:
+ has_input:
+ multivalued: true
+ has_output:
+ multivalued: true
+ id:
+ identifier: true
+ range: uriorcurie
+ slots:
+ - id
+ - name
+ - has_input
+ - has_output
+ Quantity:
+ from_schema: TEMP
+ slot_usage:
+ comparator:
+ range: string
+ has_numeric_value:
+ range: float
+ has_raw_value:
+ range: string
+ has_unit:
+ range: string
+ slots:
+ - has_raw_value
+ - has_numeric_value
+ - has_unit
+ - comparator
+ SpecimenCollectionProcess:
+ aliases:
+ - MaterialCollectionProcess
+ class_uri: OBI:0000659
+ description: A planned process with the objective of collecting a specimen
+ from_schema: TEMP
+ is_a: Process
+ slot_usage:
+ has_input:
+ multivalued: true
+ range: Subject
+ has_output:
+ multivalued: true
+ range: MaterialEntity
+ slots:
+ - has_input
+ - has_output
+ Subject:
+ aliases:
+ - Site
+ - Participant
+ description: Demographic and clinical information about the subject
+ from_schema: TEMP
+ see_also:
+ - include:Participant
+ slot_usage:
+ id:
+ identifier: true
+ range: uriorcurie
+ slots:
+ - id
+ - name
+slots:
+ comparator:
+ from_schema: TEMP
+ concentration:
+ from_schema: TEMP
+ has_input:
+ from_schema: TEMP
+ has_numeric_value:
+ from_schema: TEMP
+ has_output:
+ from_schema: TEMP
+ has_raw_value:
+ from_schema: TEMP
+ has_unit:
+ from_schema: TEMP
+ id:
+ from_schema: TEMP
+ includes:
+ from_schema: TEMP
+ investigations:
+ from_schema: TEMP
+ involved_in:
+ from_schema: TEMP
+ material_processings:
+ from_schema: TEMP
+ materials:
+ from_schema: TEMP
+ name:
+ from_schema: TEMP
+ part_of:
+ from_schema: TEMP
+ participations:
+ from_schema: TEMP
+ source:
+ from_schema: TEMP
+ specimen_collection_processes:
+ from_schema: TEMP
+ subjects:
+ from_schema: TEMP
+ used_in:
+ from_schema: TEMP
+ volume:
+ from_schema: TEMP
+subsets:
+ potential_phi:
+ from_schema: TEMP
+ temporal_data:
+ from_schema: TEMP
+
diff --git a/src/docs/about.md b/src/docs/about.md
index c157c42..aa973fb 100644
--- a/src/docs/about.md
+++ b/src/docs/about.md
@@ -1,5 +1,3 @@
# cmdr
Core Model for Data Research (Tentative)
-
-
diff --git a/src/transformations/cmdr_to_include/cmdr_to_include.yaml b/src/transformations/cmdr_to_include/cmdr_to_include.yaml
index 9148769..aa95543 100644
--- a/src/transformations/cmdr_to_include/cmdr_to_include.yaml
+++ b/src/transformations/cmdr_to_include/cmdr_to_include.yaml
@@ -1,126 +1,22 @@
-id: my-mappings
-title: my mappings
+id: cmdr_to_include
+title: Transformation from Common Model for Data Research to INCLUDE
prefixes:
- foo: foo
-source_schema: s1
-target_schema: s2
-class_derivations:
- Container:
- populated_from: Container
- slot_derivations:
- agents:
- populated_from: persons
- copy_directives:
- "*":
- copy_all: true
- Entity:
- Agent:
- is_a: Entity
- populated_from: Person
- slot_derivations:
-
- ## implicitly same name in Agent
- id:
-
- label:
- populated_from: name
-
- age:
- expr: "str({age_in_years})+' years'"
-
- primary_email:
-
- gender:
- expr: "None"
-
- current_address:
-
- ## expressions
- #full_name:
- # expr: "{first} {last}"
-
- ## unit conversion
- #age_in_years:
- # expr: "units.convert(age.value, age.unit, units.YEARS)"
+ cmdr2inc: http://example.org/cmdr2inc/
- ## nested to flat
- #friends:
- # expr: "[x.id for x in {friends}]"
+# annotative, not directive
+source_schema: cmdr
+target_schema: include
- ## copy recursively, flat to nested
- #jobs:
- # populated_from: jobs
-
- ## copy recursively
- #diagnoses:
- # populated_from: diagnoses
-
- has_familial_relationships:
- populated_from: has_familial_relationships
- Job:
- #primitive: uriorcurie
- slot_derivations:
- type:
- # this: true ## use input primitive
- current:
- expr: "True"
-
- Address:
- populated_from: Address
- slot_derivations:
- address_of:
- expr: "'foo'"
- inverse_of:
- class_name: Agent
- slot_name: current_address
- street:
- city:
- expr: "'foo'"
-
- FamilialRelationship:
- populated_from: FamilialRelationship
- slot_derivations:
- type:
- related_to:
- #person_id:
- # # inverse of has_familial_relationships
- # inverse_of:
- # slot_name: has_familial_relationships
- # class_name: Person
-
- SequenceFeature:
+class_derivations:
+ Biospecimen:
+ populated_from: MaterialEntity
slot_derivations:
- type:
- type_designator: true
- hide: true
- populated_from: feature_type
-
- DenormMapping:
- populated_from: Mapping
- #joins:
- # subject: Entity
- # object: Entity
+ id:
+ name:
+ volume:
+ expr: "{volume}.has_numeric_value"
+ Container: # an injection
+ populated_from: Container
slot_derivations:
- id: ## implicitly mapping.id
- creator:
- license:
- subject_id:
- expr: subject.id
- subject_name:
- expr: subject.name
- object_id:
- expr: object.id
- object_name:
- expr: object.name
- predicate_id:
- ## implicitly: mapping.predicate
- populated_from: predicate
- predicate_label:
- expr: "lookup(predicate)"
-
-enum_derivations:
- MyFamilialRelationshipType:
- populated_from: FamilialRelationshipType
- permissible_value_derivations:
- sibling of:
- populated_from: SIBLING_OF
\ No newline at end of file
+ biospecimens:
+ populated_from: materials
diff --git a/tests/__init__.py b/tests/__init__.py
index 116bb92..e3cbaf4 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -1 +1 @@
-"""Tests for cmdr."""
\ No newline at end of file
+"""Tests for cmdr."""
diff --git a/utils/get-value.sh b/utils/get-value.sh
deleted file mode 100644
index eb6c875..0000000
--- a/utils/get-value.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-# get the value of a key in the about.yaml file
-# https://stackoverflow.com/questions/1221833/pipe-output-and-capture-exit-status-in-bash
-grep ^$1: about.yaml | sed "s/$1:[[:space:]]//" ; test ${PIPESTATUS[0]} -eq 0