From aee42d63c43800ab3d3e171d1b7b515f579f062d Mon Sep 17 00:00:00 2001 From: glass-ships Date: Fri, 1 Sep 2023 16:06:48 -0600 Subject: [PATCH 1/6] init commit for pydantic v2 --- poetry.lock | 1628 ++++++++++++++---------- pyproject.toml | 4 +- src/koza/app.py | 13 +- src/koza/model/config/source_config.py | 1 + 4 files changed, 966 insertions(+), 680 deletions(-) diff --git a/poetry.lock b/poetry.lock index 86ff669..aa9a46e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,18 @@ -# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. + +[[package]] +name = "annotated-types" +version = "0.5.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.7" +files = [ + {file = "annotated_types-0.5.0-py3-none-any.whl", hash = "sha256:58da39888f92c276ad970249761ebea80ba544b77acddaa1a4d6cf78287d45fd"}, + {file = "annotated_types-0.5.0.tar.gz", hash = "sha256:47cdc3490d9ac1506ce92c7aaa76c579dc3509ff11e098fc867e5130ab7be802"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.9\""} [[package]] name = "antlr4-python3-runtime" @@ -57,6 +71,20 @@ files = [ pyflakes = ">=1.1.0,<3" tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} +[[package]] +name = "babel" +version = "2.12.1" +description = "Internationalization utilities" +optional = false +python-versions = ">=3.7" +files = [ + {file = "Babel-2.12.1-py3-none-any.whl", hash = "sha256:b4246fb7677d3b98f501a39d43396d3cafdc8eadb045f4a31be01863f655c610"}, + {file = "Babel-2.12.1.tar.gz", hash = "sha256:cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455"}, +] + +[package.dependencies] +pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} + [[package]] name = "beautifulsoup4" version = "4.12.2" @@ -91,36 +119,6 @@ curies = "*" linkml = "*" prefixmaps = "*" -[[package]] -name = "bioregistry" -version = "0.9.35" -description = "Integrated registry of biological databases and nomenclatures" -optional = false -python-versions = ">=3.7" -files = [ - {file = "bioregistry-0.9.35-py3-none-any.whl", hash = "sha256:1c3492ef7f29e2884de2b7351d036418067281960b2112df04dc2bfeb7ffb4b9"}, - {file = "bioregistry-0.9.35.tar.gz", hash = "sha256:e5fe4e153aebb1980bb79dfbef76e338cb12e28908310fd505d4c53ef5949424"}, -] - -[package.dependencies] -click = "*" -curies = ">=0.5.1" -more-click = ">=0.1.2" -pydantic = "*" -pystow = ">=0.1.13" -requests = "*" -tqdm = "*" - -[package.extras] -align = ["beautifulsoup4", "class-resolver", "defusedxml", "fairsharing-client (>=0.1.0)", "pyyaml", "tabulate"] -charts = ["jinja2", "matplotlib", "matplotlib-venn", "pandas", "seaborn"] -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", "jinja2", "pandas", "pyyaml", "tabulate"] -tests = ["coverage", "httpx", "more-itertools", "pytest"] -web = ["bootstrap-flask (<=2.0.0)", "curies[fastapi]", "fastapi", "flask (<2.2.4)", "markdown", "pyyaml", "rdflib", "rdflib-endpoint", "rdflib-jsonld", "uvicorn", "werkzeug (<2.3.0)"] - [[package]] name = "black" version = "22.3.0" @@ -169,13 +167,13 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "certifi" -version = "2023.5.7" +version = "2023.7.22" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2023.5.7-py3-none-any.whl", hash = "sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716"}, - {file = "certifi-2023.5.7.tar.gz", hash = "sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7"}, + {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, + {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, ] [[package]] @@ -193,108 +191,108 @@ rdflib = ">=0.4.2" [[package]] name = "chardet" -version = "5.1.0" +version = "5.2.0" description = "Universal encoding detector for Python 3" optional = false python-versions = ">=3.7" files = [ - {file = "chardet-5.1.0-py3-none-any.whl", hash = "sha256:362777fb014af596ad31334fde1e8c327dfdb076e1960d1694662d46a6917ab9"}, - {file = "chardet-5.1.0.tar.gz", hash = "sha256:0d62712b956bc154f85fb0a266e2a3c5913c2967e00348701b32411d6def31e5"}, + {file = "chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970"}, + {file = "chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7"}, ] [[package]] name = "charset-normalizer" -version = "3.1.0" +version = "3.2.0" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7.0" files = [ - {file = "charset-normalizer-3.1.0.tar.gz", hash = "sha256:34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e0ac8959c929593fee38da1c2b64ee9778733cdf03c482c9ff1d508b6b593b2b"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d7fc3fca01da18fbabe4625d64bb612b533533ed10045a2ac3dd194bfa656b60"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:04eefcee095f58eaabe6dc3cc2262f3bcd776d2c67005880894f447b3f2cb9c1"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20064ead0717cf9a73a6d1e779b23d149b53daf971169289ed2ed43a71e8d3b0"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1435ae15108b1cb6fffbcea2af3d468683b7afed0169ad718451f8db5d1aff6f"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c84132a54c750fda57729d1e2599bb598f5fa0344085dbde5003ba429a4798c0"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75f2568b4189dda1c567339b48cba4ac7384accb9c2a7ed655cd86b04055c795"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11d3bcb7be35e7b1bba2c23beedac81ee893ac9871d0ba79effc7fc01167db6c"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:891cf9b48776b5c61c700b55a598621fdb7b1e301a550365571e9624f270c203"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5f008525e02908b20e04707a4f704cd286d94718f48bb33edddc7d7b584dddc1"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:b06f0d3bf045158d2fb8837c5785fe9ff9b8c93358be64461a1089f5da983137"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:49919f8400b5e49e961f320c735388ee686a62327e773fa5b3ce6721f7e785ce"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:22908891a380d50738e1f978667536f6c6b526a2064156203d418f4856d6e86a"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-win32.whl", hash = "sha256:12d1a39aa6b8c6f6248bb54550efcc1c38ce0d8096a146638fd4738e42284448"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:65ed923f84a6844de5fd29726b888e58c62820e0769b76565480e1fdc3d062f8"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9a3267620866c9d17b959a84dd0bd2d45719b817245e49371ead79ed4f710d19"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6734e606355834f13445b6adc38b53c0fd45f1a56a9ba06c2058f86893ae8017"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f8303414c7b03f794347ad062c0516cee0e15f7a612abd0ce1e25caf6ceb47df"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf53a6cebad0eae578f062c7d462155eada9c172bd8c4d250b8c1d8eb7f916a"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3dc5b6a8ecfdc5748a7e429782598e4f17ef378e3e272eeb1340ea57c9109f41"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e1b25e3ad6c909f398df8921780d6a3d120d8c09466720226fc621605b6f92b1"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ca564606d2caafb0abe6d1b5311c2649e8071eb241b2d64e75a0d0065107e62"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b82fab78e0b1329e183a65260581de4375f619167478dddab510c6c6fb04d9b6"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bd7163182133c0c7701b25e604cf1611c0d87712e56e88e7ee5d72deab3e76b5"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:11d117e6c63e8f495412d37e7dc2e2fff09c34b2d09dbe2bee3c6229577818be"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:cf6511efa4801b9b38dc5546d7547d5b5c6ef4b081c60b23e4d941d0eba9cbeb"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:abc1185d79f47c0a7aaf7e2412a0eb2c03b724581139193d2d82b3ad8cbb00ac"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cb7b2ab0188829593b9de646545175547a70d9a6e2b63bf2cd87a0a391599324"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-win32.whl", hash = "sha256:c36bcbc0d5174a80d6cccf43a0ecaca44e81d25be4b7f90f0ed7bcfbb5a00909"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:cca4def576f47a09a943666b8f829606bcb17e2bc2d5911a46c8f8da45f56755"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0c95f12b74681e9ae127728f7e5409cbbef9cd914d5896ef238cc779b8152373"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fca62a8301b605b954ad2e9c3666f9d97f63872aa4efcae5492baca2056b74ab"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac0aa6cd53ab9a31d397f8303f92c42f534693528fafbdb997c82bae6e477ad9"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c3af8e0f07399d3176b179f2e2634c3ce9c1301379a6b8c9c9aeecd481da494f"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a5fc78f9e3f501a1614a98f7c54d3969f3ad9bba8ba3d9b438c3bc5d047dd28"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:628c985afb2c7d27a4800bfb609e03985aaecb42f955049957814e0491d4006d"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:74db0052d985cf37fa111828d0dd230776ac99c740e1a758ad99094be4f1803d"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:1e8fcdd8f672a1c4fc8d0bd3a2b576b152d2a349782d1eb0f6b8e52e9954731d"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:04afa6387e2b282cf78ff3dbce20f0cc071c12dc8f685bd40960cc68644cfea6"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:dd5653e67b149503c68c4018bf07e42eeed6b4e956b24c00ccdf93ac79cdff84"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d2686f91611f9e17f4548dbf050e75b079bbc2a82be565832bc8ea9047b61c8c"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-win32.whl", hash = "sha256:4155b51ae05ed47199dc5b2a4e62abccb274cee6b01da5b895099b61b1982974"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:322102cdf1ab682ecc7d9b1c5eed4ec59657a65e1c146a0da342b78f4112db23"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e633940f28c1e913615fd624fcdd72fdba807bf53ea6925d6a588e84e1151531"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3a06f32c9634a8705f4ca9946d667609f52cf130d5548881401f1eb2c39b1e2c"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7381c66e0561c5757ffe616af869b916c8b4e42b367ab29fedc98481d1e74e14"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3573d376454d956553c356df45bb824262c397c6e26ce43e8203c4c540ee0acb"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e89df2958e5159b811af9ff0f92614dabf4ff617c03a4c1c6ff53bf1c399e0e1"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:78cacd03e79d009d95635e7d6ff12c21eb89b894c354bd2b2ed0b4763373693b"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de5695a6f1d8340b12a5d6d4484290ee74d61e467c39ff03b39e30df62cf83a0"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c60b9c202d00052183c9be85e5eaf18a4ada0a47d188a83c8f5c5b23252f649"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f645caaf0008bacf349875a974220f1f1da349c5dbe7c4ec93048cdc785a3326"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ea9f9c6034ea2d93d9147818f17c2a0860d41b71c38b9ce4d55f21b6f9165a11"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:80d1543d58bd3d6c271b66abf454d437a438dff01c3e62fdbcd68f2a11310d4b"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:73dc03a6a7e30b7edc5b01b601e53e7fc924b04e1835e8e407c12c037e81adbd"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6f5c2e7bc8a4bf7c426599765b1bd33217ec84023033672c1e9a8b35eaeaaaf8"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-win32.whl", hash = "sha256:12a2b561af122e3d94cdb97fe6fb2bb2b82cef0cdca131646fdb940a1eda04f0"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:3160a0fd9754aab7d47f95a6b63ab355388d890163eb03b2d2b87ab0a30cfa59"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:38e812a197bf8e71a59fe55b757a84c1f946d0ac114acafaafaf21667a7e169e"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6baf0baf0d5d265fa7944feb9f7451cc316bfe30e8df1a61b1bb08577c554f31"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8f25e17ab3039b05f762b0a55ae0b3632b2e073d9c8fc88e89aca31a6198e88f"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3747443b6a904001473370d7810aa19c3a180ccd52a7157aacc264a5ac79265e"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b116502087ce8a6b7a5f1814568ccbd0e9f6cfd99948aa59b0e241dc57cf739f"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d16fd5252f883eb074ca55cb622bc0bee49b979ae4e8639fff6ca3ff44f9f854"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21fa558996782fc226b529fdd2ed7866c2c6ec91cee82735c98a197fae39f706"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f6c7a8a57e9405cad7485f4c9d3172ae486cfef1344b5ddd8e5239582d7355e"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ac3775e3311661d4adace3697a52ac0bab17edd166087d493b52d4f4f553f9f0"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:10c93628d7497c81686e8e5e557aafa78f230cd9e77dd0c40032ef90c18f2230"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:6f4f4668e1831850ebcc2fd0b1cd11721947b6dc7c00bf1c6bd3c929ae14f2c7"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:0be65ccf618c1e7ac9b849c315cc2e8a8751d9cfdaa43027d4f6624bd587ab7e"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:53d0a3fa5f8af98a1e261de6a3943ca631c526635eb5817a87a59d9a57ebf48f"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-win32.whl", hash = "sha256:a04f86f41a8916fe45ac5024ec477f41f886b3c435da2d4e3d2709b22ab02af1"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:830d2948a5ec37c386d3170c483063798d7879037492540f10a475e3fd6f244b"}, - {file = "charset_normalizer-3.1.0-py3-none-any.whl", hash = "sha256:3d9098b479e78c85080c98e1e35ff40b4a31d8953102bb0fd7d1b6f8a2111a3d"}, + {file = "charset-normalizer-3.2.0.tar.gz", hash = "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-win32.whl", hash = "sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-win32.whl", hash = "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-win32.whl", hash = "sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-win32.whl", hash = "sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-win32.whl", hash = "sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80"}, + {file = "charset_normalizer-3.2.0-py3-none-any.whl", hash = "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6"}, ] [[package]] name = "click" -version = "8.1.3" +version = "8.1.7" description = "Composable command line interface toolkit" optional = false python-versions = ">=3.7" files = [ - {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, - {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, ] [package.dependencies] @@ -322,15 +320,26 @@ files = [ {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] +[[package]] +name = "cssselect" +version = "1.2.0" +description = "cssselect parses CSS3 Selectors and translates them to XPath 1.0" +optional = false +python-versions = ">=3.7" +files = [ + {file = "cssselect-1.2.0-py2.py3-none-any.whl", hash = "sha256:da1885f0c10b60c03ed5eccbb6b68d6eff248d91976fcde348f395d54c9fd35e"}, + {file = "cssselect-1.2.0.tar.gz", hash = "sha256:666b19839cfaddb9ce9d36bfe4c969132c647b92fc9088c4e23f786b30f1b3dc"}, +] + [[package]] name = "curies" -version = "0.5.5" +version = "0.6.0" description = "Idiomatic conversion between URIs and compact URIs (CURIEs)." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "curies-0.5.5-py3-none-any.whl", hash = "sha256:265ab8c95a2a6478ca22a1f9a2fac2902d71fa7737534b6380297e4dc49decd6"}, - {file = "curies-0.5.5.tar.gz", hash = "sha256:4c1ddf6e7be2afdccb8e9dad76e4c22c4f9d506bbe0dbb1cfaf2cf29fc488ce2"}, + {file = "curies-0.6.0-py3-none-any.whl", hash = "sha256:0bf79e2176b2e44dee7fefadcd1f2d69e643fea124dc4a8d0dbf47ca5e1589f2"}, + {file = "curies-0.6.0.tar.gz", hash = "sha256:a31533ae9caeec332f9bb33e21366ab7ec32437c5f347fc9d85aa77cc48093cc"}, ] [package.dependencies] @@ -339,8 +348,7 @@ pytrie = "*" requests = "*" [package.extras] -bioregistry = ["bioregistry (>=0.5.136)"] -docs = ["sphinx", "sphinx-autodoc-typehints", "sphinx-automodapi", "sphinx-rtd-theme"] +docs = ["sphinx", "sphinx-automodapi", "sphinx-rtd-theme"] fastapi = ["defusedxml", "fastapi", "httpx", "python-multipart", "uvicorn"] flask = ["defusedxml", "flask"] pandas = ["pandas"] @@ -442,13 +450,13 @@ files = [ [[package]] name = "exceptiongroup" -version = "1.1.1" +version = "1.1.3" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" files = [ - {file = "exceptiongroup-1.1.1-py3-none-any.whl", hash = "sha256:232c37c63e4f682982c8b6459f33a8981039e5fb8756b2074364e5055c498c9e"}, - {file = "exceptiongroup-1.1.1.tar.gz", hash = "sha256:d484c3090ba2889ae2928419117447a14daf3c1231d5e30d0aae34f354f01785"}, + {file = "exceptiongroup-1.1.3-py3-none-any.whl", hash = "sha256:343280667a4585d195ca1cf9cef84a4e178c4b6cf2274caef9859782b567d5e3"}, + {file = "exceptiongroup-1.1.3.tar.gz", hash = "sha256:097acd85d473d75af5bb98e41b61ff7fe35efe6675e4f9370ec6ec5126d160e9"}, ] [package.extras] @@ -467,13 +475,13 @@ files = [ [[package]] name = "fsspec" -version = "2023.5.0" +version = "2023.6.0" description = "File-system specification" optional = false python-versions = ">=3.8" files = [ - {file = "fsspec-2023.5.0-py3-none-any.whl", hash = "sha256:51a4ad01a5bb66fcc58036e288c0d53d3975a0df2a5dc59a93b59bade0391f2a"}, - {file = "fsspec-2023.5.0.tar.gz", hash = "sha256:b3b56e00fb93ea321bc9e5d9cf6f8522a0198b20eb24e02774d329e9c6fb84ce"}, + {file = "fsspec-2023.6.0-py3-none-any.whl", hash = "sha256:1cbad1faef3e391fba6dc005ae9b5bdcbf43005c9167ce78c915549c352c869a"}, + {file = "fsspec-2023.6.0.tar.gz", hash = "sha256:d0b2f935446169753e7a5c5c55681c54ea91996cc67be93c39a154fb3a2742af"}, ] [package.extras] @@ -608,13 +616,13 @@ test = ["faulthandler", "objgraph", "psutil"] [[package]] name = "griffe" -version = "0.29.0" +version = "0.36.0" description = "Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "griffe-0.29.0-py3-none-any.whl", hash = "sha256:e62ff34b04630c2382e2e277301cb2c29221fb09c04028e62ef35afccc64344b"}, - {file = "griffe-0.29.0.tar.gz", hash = "sha256:6fc892aaa251b3761e3a8d2f5893758e1850ec5d81d4605c4557be0666202a0b"}, + {file = "griffe-0.36.0-py3-none-any.whl", hash = "sha256:4235df397b7b56192cbfda601e458526279bdaf3bf1f59d0be368abac72bf42d"}, + {file = "griffe-0.36.0.tar.gz", hash = "sha256:ccf062126041d19cc4d9850ca46a555a656e738f5e83feb78f36b05fec5974ad"}, ] [package.dependencies] @@ -644,13 +652,13 @@ files = [ [[package]] name = "importlib-metadata" -version = "6.6.0" +version = "6.8.0" description = "Read metadata from Python packages" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "importlib_metadata-6.6.0-py3-none-any.whl", hash = "sha256:43dd286a2cd8995d5eaef7fee2066340423b818ed3fd70adf0bad5f1fac53fed"}, - {file = "importlib_metadata-6.6.0.tar.gz", hash = "sha256:92501cdf9cc66ebd3e612f1b4f0c0765dfa42f0fa38ffb319b6bd84dd675d705"}, + {file = "importlib_metadata-6.8.0-py3-none-any.whl", hash = "sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb"}, + {file = "importlib_metadata-6.8.0.tar.gz", hash = "sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743"}, ] [package.dependencies] @@ -659,25 +667,25 @@ zipp = ">=0.5" [package.extras] 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)"] +testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)", "pytest-ruff"] [[package]] name = "importlib-resources" -version = "5.12.0" +version = "6.0.1" description = "Read resources from Python packages" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "importlib_resources-5.12.0-py3-none-any.whl", hash = "sha256:7b1deeebbf351c7578e09bf2f63fa2ce8b5ffec296e0d349139d43cca061a81a"}, - {file = "importlib_resources-5.12.0.tar.gz", hash = "sha256:4be82589bf5c1d7999aedf2a45159d10cb3ca4f19b2271f8792bc8e6da7b22f6"}, + {file = "importlib_resources-6.0.1-py3-none-any.whl", hash = "sha256:134832a506243891221b88b4ae1213327eea96ceb4e407a00d790bb0626f45cf"}, + {file = "importlib_resources-6.0.1.tar.gz", hash = "sha256:4359457e42708462b9626a04657c6208ad799ceb41e5c58c57ffa0e6a098a5d4"}, ] [package.dependencies] zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["flake8 (<5)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-ruff"] [[package]] name = "iniconfig" @@ -754,12 +762,12 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "jsbeautifier" -version = "1.14.8" +version = "1.14.9" description = "JavaScript unobfuscator and beautifier." optional = false python-versions = "*" files = [ - {file = "jsbeautifier-1.14.8.tar.gz", hash = "sha256:d4c4e263a42dd6194afb9dbe54710be3c5604492cbec3e89c92dd98513f98b9f"}, + {file = "jsbeautifier-1.14.9.tar.gz", hash = "sha256:c738ebc36b47bd94e4ca6dd17a9004c3cc74edad582ca1d60e0e5d5945a63cb9"}, ] [package.dependencies] @@ -808,13 +816,13 @@ hbreader = "*" [[package]] name = "jsonpatch" -version = "1.32" +version = "1.33" description = "Apply JSON-Patches (RFC 6902)" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" files = [ - {file = "jsonpatch-1.32-py2.py3-none-any.whl", hash = "sha256:26ac385719ac9f54df8a2f0827bb8253aa3ea8ab7b3368457bcdb8c14595a397"}, - {file = "jsonpatch-1.32.tar.gz", hash = "sha256:b6ddfe6c3db30d81a96aaeceb6baf916094ffa23d7dd5fa2c13e13f8b6e600c2"}, + {file = "jsonpatch-1.33-py2.py3-none-any.whl", hash = "sha256:0ae28c0cd062bbd8b8ecc26d7d164fbbea9652a1a3693f3b956c1eae5145dade"}, + {file = "jsonpatch-1.33.tar.gz", hash = "sha256:9fcd4009c41e6d12348b4a0ff2563ba56a2923a7dfee731d004e212e1ee5030c"}, ] [package.dependencies] @@ -839,37 +847,39 @@ six = "*" [[package]] name = "jsonpointer" -version = "2.3" +version = "2.4" description = "Identify specific nodes in a JSON document (RFC 6901)" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" files = [ - {file = "jsonpointer-2.3-py2.py3-none-any.whl", hash = "sha256:51801e558539b4e9cd268638c078c6c5746c9ac96bc38152d443400e4f3793e9"}, - {file = "jsonpointer-2.3.tar.gz", hash = "sha256:97cba51526c829282218feb99dab1b1e6bdf8efd1c43dc9d57be093c0d69c99a"}, + {file = "jsonpointer-2.4-py2.py3-none-any.whl", hash = "sha256:15d51bba20eea3165644553647711d150376234112651b4f1811022aecad7d7a"}, + {file = "jsonpointer-2.4.tar.gz", hash = "sha256:585cee82b70211fa9e6043b7bb89db6e1aa49524340dde8ad6b63206ea689d88"}, ] [[package]] name = "jsonschema" -version = "4.17.3" +version = "4.19.0" description = "An implementation of JSON Schema validation for Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "jsonschema-4.17.3-py3-none-any.whl", hash = "sha256:a870ad254da1a8ca84b6a2905cac29d265f805acc57af304784962a2aa6508f6"}, - {file = "jsonschema-4.17.3.tar.gz", hash = "sha256:0f864437ab8b6076ba6707453ef8f98a6a0d512a80e93f8abdb676f737ecb60d"}, + {file = "jsonschema-4.19.0-py3-none-any.whl", hash = "sha256:043dc26a3845ff09d20e4420d6012a9c91c9aa8999fa184e7efcfeccb41e32cb"}, + {file = "jsonschema-4.19.0.tar.gz", hash = "sha256:6e1e7569ac13be8139b2dd2c21a55d350066ee3f80df06c608b398cdc6f30e8f"}, ] [package.dependencies] -attrs = ">=17.4.0" +attrs = ">=22.2.0" fqdn = {version = "*", optional = true, markers = "extra == \"format\""} idna = {version = "*", optional = true, markers = "extra == \"format\""} importlib-resources = {version = ">=1.4.0", markers = "python_version < \"3.9\""} isoduration = {version = "*", optional = true, markers = "extra == \"format\""} jsonpointer = {version = ">1.13", optional = true, markers = "extra == \"format\""} +jsonschema-specifications = ">=2023.03.6" pkgutil-resolve-name = {version = ">=1.3.10", markers = "python_version < \"3.9\""} -pyrsistent = ">=0.14.0,<0.17.0 || >0.17.0,<0.17.1 || >0.17.1,<0.17.2 || >0.17.2" +referencing = ">=0.28.4" rfc3339-validator = {version = "*", optional = true, markers = "extra == \"format\""} rfc3987 = {version = "*", optional = true, markers = "extra == \"format\""} +rpds-py = ">=0.7.1" uri-template = {version = "*", optional = true, markers = "extra == \"format\""} webcolors = {version = ">=1.11", optional = true, markers = "extra == \"format\""} @@ -877,15 +887,30 @@ webcolors = {version = ">=1.11", optional = true, markers = "extra == \"format\" format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] +[[package]] +name = "jsonschema-specifications" +version = "2023.7.1" +description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jsonschema_specifications-2023.7.1-py3-none-any.whl", hash = "sha256:05adf340b659828a004220a9613be00fa3f223f2b82002e273dee62fd50524b1"}, + {file = "jsonschema_specifications-2023.7.1.tar.gz", hash = "sha256:c91a50404e88a1f6ba40636778e2ee08f6e24c5613fe4c53ac24578a5a7f72bb"}, +] + +[package.dependencies] +importlib-resources = {version = ">=1.4.0", markers = "python_version < \"3.9\""} +referencing = ">=0.28.0" + [[package]] name = "linkml" -version = "1.5.5" +version = "1.5.7" description = "Linked Open Data Modeling Language" optional = false python-versions = ">=3.7.6,<4.0.0" files = [ - {file = "linkml-1.5.5-py3-none-any.whl", hash = "sha256:0f7463aa71cd9eea25e452727153ba4fea501793a1e34fa58ae3fac461400fbb"}, - {file = "linkml-1.5.5.tar.gz", hash = "sha256:46a335512a849966c6980fedfd57eb9ba32b67045f5e6bf6bb6dfcf5be236240"}, + {file = "linkml-1.5.7-py3-none-any.whl", hash = "sha256:677f4c5809dc51b151b86accc69e77482ad86b9c1326a212cef9b4a2a9a96c10"}, + {file = "linkml-1.5.7.tar.gz", hash = "sha256:bca3dd56837ced79749656843e1e20b8d1db1a89287e7b29d1ee145e4a75ad4d"}, ] [package.dependencies] @@ -898,7 +923,7 @@ jinja2 = ">=3.1.0" jsonasobj2 = ">=1.0.3,<2.0.0" jsonschema = {version = ">=4.0.0", extras = ["format"]} linkml-dataops = "*" -linkml-runtime = ">=1.5.3" +linkml-runtime = ">=1.5.4" openpyxl = "*" parse = "*" prefixcommons = ">=0.1.7" @@ -934,13 +959,13 @@ linkml-runtime = ">=1.1.6" [[package]] name = "linkml-runtime" -version = "1.5.3" +version = "1.5.6" description = "Runtime environment for LinkML, the Linked open data modeling language" optional = false python-versions = ">=3.7.6,<4.0.0" files = [ - {file = "linkml_runtime-1.5.3-py3-none-any.whl", hash = "sha256:e8f82ebce2af7e71998a7fca0cf9d37eabfa18c21efe34393b698074da430bbb"}, - {file = "linkml_runtime-1.5.3.tar.gz", hash = "sha256:b53876389cd88fcf9d259079f46edfc8e59665fbed71934c40db04908ddaf937"}, + {file = "linkml_runtime-1.5.6-py3-none-any.whl", hash = "sha256:b869f7adf340b7df73f4fefa28a402de5719bbd7d172590e8a7ae9c25e179d77"}, + {file = "linkml_runtime-1.5.6.tar.gz", hash = "sha256:eb5f506f7ec08c44e49578d0ecc80e2d3d922756c2430e06906ee9502cca1b4c"}, ] [package.dependencies] @@ -949,36 +974,15 @@ curies = ">=0.5.4" deprecated = "*" hbreader = "*" json-flattener = ">=0.1.9" -jsonasobj2 = ">=1.0.4,<2.0.0" +jsonasobj2 = ">=1.0.4,<2.dev0" jsonschema = ">=3.2.0" prefixcommons = ">=0.1.12" prefixmaps = ">=0.1.4" -pydantic = ">=1.10.2,<2.0.0" +pydantic = ">=1.10.2,<3.0.0" pyyaml = "*" rdflib = ">=6.0.0" requests = "*" -[[package]] -name = "linkml-validator" -version = "0.4.5" -description = "LinkML Validator" -optional = false -python-versions = ">=3.8" -files = [ - {file = "linkml_validator-0.4.5-py3-none-any.whl", hash = "sha256:7a9799830cba3e1df203cde86263d8ea85f9ed9f6a45a218e3f752483abac030"}, - {file = "linkml_validator-0.4.5.tar.gz", hash = "sha256:bce72053c1593a678ccefd28ed5cf4b39a878e78da884b5b41fef65610a23867"}, -] - -[package.dependencies] -click = ">=7.0.0" -linkml = ">=1.1.18" -linkml-runtime = ">=1.2.0" -pydantic = ">=1.8.2" -stringcase = ">=1.2.0" - -[package.extras] -dev = ["mkdocs", "mkdocs-material", "mkdocstrings", "mkdocstrings-python-legacy", "pytest", "pytest-cov"] - [[package]] name = "locket" version = "1.0.0" @@ -1008,23 +1012,147 @@ win32-setctime = {version = ">=1.0.0", markers = "sys_platform == \"win32\""} [package.extras] dev = ["Sphinx (==5.3.0)", "colorama (==0.4.5)", "colorama (==0.4.6)", "freezegun (==1.1.0)", "freezegun (==1.2.2)", "mypy (==v0.910)", "mypy (==v0.971)", "mypy (==v0.990)", "pre-commit (==3.2.1)", "pytest (==6.1.2)", "pytest (==7.2.1)", "pytest-cov (==2.12.1)", "pytest-cov (==4.0.0)", "pytest-mypy-plugins (==1.10.1)", "pytest-mypy-plugins (==1.9.3)", "sphinx-autobuild (==2021.3.14)", "sphinx-rtd-theme (==1.2.0)", "tox (==3.27.1)", "tox (==4.4.6)"] +[[package]] +name = "lxml" +version = "4.9.3" +description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*" +files = [ + {file = "lxml-4.9.3-cp27-cp27m-macosx_11_0_x86_64.whl", hash = "sha256:b0a545b46b526d418eb91754565ba5b63b1c0b12f9bd2f808c852d9b4b2f9b5c"}, + {file = "lxml-4.9.3-cp27-cp27m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:075b731ddd9e7f68ad24c635374211376aa05a281673ede86cbe1d1b3455279d"}, + {file = "lxml-4.9.3-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1e224d5755dba2f4a9498e150c43792392ac9b5380aa1b845f98a1618c94eeef"}, + {file = "lxml-4.9.3-cp27-cp27m-win32.whl", hash = "sha256:2c74524e179f2ad6d2a4f7caf70e2d96639c0954c943ad601a9e146c76408ed7"}, + {file = "lxml-4.9.3-cp27-cp27m-win_amd64.whl", hash = "sha256:4f1026bc732b6a7f96369f7bfe1a4f2290fb34dce00d8644bc3036fb351a4ca1"}, + {file = "lxml-4.9.3-cp27-cp27mu-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c0781a98ff5e6586926293e59480b64ddd46282953203c76ae15dbbbf302e8bb"}, + {file = "lxml-4.9.3-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:cef2502e7e8a96fe5ad686d60b49e1ab03e438bd9123987994528febd569868e"}, + {file = "lxml-4.9.3-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:b86164d2cff4d3aaa1f04a14685cbc072efd0b4f99ca5708b2ad1b9b5988a991"}, + {file = "lxml-4.9.3-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:42871176e7896d5d45138f6d28751053c711ed4d48d8e30b498da155af39aebd"}, + {file = "lxml-4.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:ae8b9c6deb1e634ba4f1930eb67ef6e6bf6a44b6eb5ad605642b2d6d5ed9ce3c"}, + {file = "lxml-4.9.3-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:411007c0d88188d9f621b11d252cce90c4a2d1a49db6c068e3c16422f306eab8"}, + {file = "lxml-4.9.3-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:cd47b4a0d41d2afa3e58e5bf1f62069255aa2fd6ff5ee41604418ca925911d76"}, + {file = "lxml-4.9.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0e2cb47860da1f7e9a5256254b74ae331687b9672dfa780eed355c4c9c3dbd23"}, + {file = "lxml-4.9.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1247694b26342a7bf47c02e513d32225ededd18045264d40758abeb3c838a51f"}, + {file = "lxml-4.9.3-cp310-cp310-win32.whl", hash = "sha256:cdb650fc86227eba20de1a29d4b2c1bfe139dc75a0669270033cb2ea3d391b85"}, + {file = "lxml-4.9.3-cp310-cp310-win_amd64.whl", hash = "sha256:97047f0d25cd4bcae81f9ec9dc290ca3e15927c192df17331b53bebe0e3ff96d"}, + {file = "lxml-4.9.3-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:1f447ea5429b54f9582d4b955f5f1985f278ce5cf169f72eea8afd9502973dd5"}, + {file = "lxml-4.9.3-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:57d6ba0ca2b0c462f339640d22882acc711de224d769edf29962b09f77129cbf"}, + {file = "lxml-4.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:9767e79108424fb6c3edf8f81e6730666a50feb01a328f4a016464a5893f835a"}, + {file = "lxml-4.9.3-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:71c52db65e4b56b8ddc5bb89fb2e66c558ed9d1a74a45ceb7dcb20c191c3df2f"}, + {file = "lxml-4.9.3-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:d73d8ecf8ecf10a3bd007f2192725a34bd62898e8da27eb9d32a58084f93962b"}, + {file = "lxml-4.9.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0a3d3487f07c1d7f150894c238299934a2a074ef590b583103a45002035be120"}, + {file = "lxml-4.9.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e28c51fa0ce5674be9f560c6761c1b441631901993f76700b1b30ca6c8378d6"}, + {file = "lxml-4.9.3-cp311-cp311-win32.whl", hash = "sha256:0bfd0767c5c1de2551a120673b72e5d4b628737cb05414f03c3277bf9bed3305"}, + {file = "lxml-4.9.3-cp311-cp311-win_amd64.whl", hash = "sha256:25f32acefac14ef7bd53e4218fe93b804ef6f6b92ffdb4322bb6d49d94cad2bc"}, + {file = "lxml-4.9.3-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:d3ff32724f98fbbbfa9f49d82852b159e9784d6094983d9a8b7f2ddaebb063d4"}, + {file = "lxml-4.9.3-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:48d6ed886b343d11493129e019da91d4039826794a3e3027321c56d9e71505be"}, + {file = "lxml-4.9.3-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9a92d3faef50658dd2c5470af249985782bf754c4e18e15afb67d3ab06233f13"}, + {file = "lxml-4.9.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b4e4bc18382088514ebde9328da057775055940a1f2e18f6ad2d78aa0f3ec5b9"}, + {file = "lxml-4.9.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fc9b106a1bf918db68619fdcd6d5ad4f972fdd19c01d19bdb6bf63f3589a9ec5"}, + {file = "lxml-4.9.3-cp312-cp312-win_amd64.whl", hash = "sha256:d37017287a7adb6ab77e1c5bee9bcf9660f90ff445042b790402a654d2ad81d8"}, + {file = "lxml-4.9.3-cp35-cp35m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:56dc1f1ebccc656d1b3ed288f11e27172a01503fc016bcabdcbc0978b19352b7"}, + {file = "lxml-4.9.3-cp35-cp35m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:578695735c5a3f51569810dfebd05dd6f888147a34f0f98d4bb27e92b76e05c2"}, + {file = "lxml-4.9.3-cp35-cp35m-win32.whl", hash = "sha256:704f61ba8c1283c71b16135caf697557f5ecf3e74d9e453233e4771d68a1f42d"}, + {file = "lxml-4.9.3-cp35-cp35m-win_amd64.whl", hash = "sha256:c41bfca0bd3532d53d16fd34d20806d5c2b1ace22a2f2e4c0008570bf2c58833"}, + {file = "lxml-4.9.3-cp36-cp36m-macosx_11_0_x86_64.whl", hash = "sha256:64f479d719dc9f4c813ad9bb6b28f8390360660b73b2e4beb4cb0ae7104f1c12"}, + {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:dd708cf4ee4408cf46a48b108fb9427bfa00b9b85812a9262b5c668af2533ea5"}, + {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c31c7462abdf8f2ac0577d9f05279727e698f97ecbb02f17939ea99ae8daa98"}, + {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:e3cd95e10c2610c360154afdc2f1480aea394f4a4f1ea0a5eacce49640c9b190"}, + {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_28_x86_64.whl", hash = "sha256:4930be26af26ac545c3dffb662521d4e6268352866956672231887d18f0eaab2"}, + {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4aec80cde9197340bc353d2768e2a75f5f60bacda2bab72ab1dc499589b3878c"}, + {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:14e019fd83b831b2e61baed40cab76222139926b1fb5ed0e79225bc0cae14584"}, + {file = "lxml-4.9.3-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0c0850c8b02c298d3c7006b23e98249515ac57430e16a166873fc47a5d549287"}, + {file = "lxml-4.9.3-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:aca086dc5f9ef98c512bac8efea4483eb84abbf926eaeedf7b91479feb092458"}, + {file = "lxml-4.9.3-cp36-cp36m-win32.whl", hash = "sha256:50baa9c1c47efcaef189f31e3d00d697c6d4afda5c3cde0302d063492ff9b477"}, + {file = "lxml-4.9.3-cp36-cp36m-win_amd64.whl", hash = "sha256:bef4e656f7d98aaa3486d2627e7d2df1157d7e88e7efd43a65aa5dd4714916cf"}, + {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:46f409a2d60f634fe550f7133ed30ad5321ae2e6630f13657fb9479506b00601"}, + {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:4c28a9144688aef80d6ea666c809b4b0e50010a2aca784c97f5e6bf143d9f129"}, + {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:141f1d1a9b663c679dc524af3ea1773e618907e96075262726c7612c02b149a4"}, + {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:53ace1c1fd5a74ef662f844a0413446c0629d151055340e9893da958a374f70d"}, + {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:17a753023436a18e27dd7769e798ce302963c236bc4114ceee5b25c18c52c693"}, + {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7d298a1bd60c067ea75d9f684f5f3992c9d6766fadbc0bcedd39750bf344c2f4"}, + {file = "lxml-4.9.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:081d32421db5df44c41b7f08a334a090a545c54ba977e47fd7cc2deece78809a"}, + {file = "lxml-4.9.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:23eed6d7b1a3336ad92d8e39d4bfe09073c31bfe502f20ca5116b2a334f8ec02"}, + {file = "lxml-4.9.3-cp37-cp37m-win32.whl", hash = "sha256:1509dd12b773c02acd154582088820893109f6ca27ef7291b003d0e81666109f"}, + {file = "lxml-4.9.3-cp37-cp37m-win_amd64.whl", hash = "sha256:120fa9349a24c7043854c53cae8cec227e1f79195a7493e09e0c12e29f918e52"}, + {file = "lxml-4.9.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:4d2d1edbca80b510443f51afd8496be95529db04a509bc8faee49c7b0fb6d2cc"}, + {file = "lxml-4.9.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:8d7e43bd40f65f7d97ad8ef5c9b1778943d02f04febef12def25f7583d19baac"}, + {file = "lxml-4.9.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:71d66ee82e7417828af6ecd7db817913cb0cf9d4e61aa0ac1fde0583d84358db"}, + {file = "lxml-4.9.3-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:6fc3c450eaa0b56f815c7b62f2b7fba7266c4779adcf1cece9e6deb1de7305ce"}, + {file = "lxml-4.9.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:65299ea57d82fb91c7f019300d24050c4ddeb7c5a190e076b5f48a2b43d19c42"}, + {file = "lxml-4.9.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:eadfbbbfb41b44034a4c757fd5d70baccd43296fb894dba0295606a7cf3124aa"}, + {file = "lxml-4.9.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3e9bdd30efde2b9ccfa9cb5768ba04fe71b018a25ea093379c857c9dad262c40"}, + {file = "lxml-4.9.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fcdd00edfd0a3001e0181eab3e63bd5c74ad3e67152c84f93f13769a40e073a7"}, + {file = "lxml-4.9.3-cp38-cp38-win32.whl", hash = "sha256:57aba1bbdf450b726d58b2aea5fe47c7875f5afb2c4a23784ed78f19a0462574"}, + {file = "lxml-4.9.3-cp38-cp38-win_amd64.whl", hash = "sha256:92af161ecbdb2883c4593d5ed4815ea71b31fafd7fd05789b23100d081ecac96"}, + {file = "lxml-4.9.3-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:9bb6ad405121241e99a86efff22d3ef469024ce22875a7ae045896ad23ba2340"}, + {file = "lxml-4.9.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:8ed74706b26ad100433da4b9d807eae371efaa266ffc3e9191ea436087a9d6a7"}, + {file = "lxml-4.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:fbf521479bcac1e25a663df882c46a641a9bff6b56dc8b0fafaebd2f66fb231b"}, + {file = "lxml-4.9.3-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:303bf1edce6ced16bf67a18a1cf8339d0db79577eec5d9a6d4a80f0fb10aa2da"}, + {file = "lxml-4.9.3-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:5515edd2a6d1a5a70bfcdee23b42ec33425e405c5b351478ab7dc9347228f96e"}, + {file = "lxml-4.9.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:690dafd0b187ed38583a648076865d8c229661ed20e48f2335d68e2cf7dc829d"}, + {file = "lxml-4.9.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:b6420a005548ad52154c8ceab4a1290ff78d757f9e5cbc68f8c77089acd3c432"}, + {file = "lxml-4.9.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bb3bb49c7a6ad9d981d734ef7c7193bc349ac338776a0360cc671eaee89bcf69"}, + {file = "lxml-4.9.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d27be7405547d1f958b60837dc4c1007da90b8b23f54ba1f8b728c78fdb19d50"}, + {file = "lxml-4.9.3-cp39-cp39-win32.whl", hash = "sha256:8df133a2ea5e74eef5e8fc6f19b9e085f758768a16e9877a60aec455ed2609b2"}, + {file = "lxml-4.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:4dd9a263e845a72eacb60d12401e37c616438ea2e5442885f65082c276dfb2b2"}, + {file = "lxml-4.9.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6689a3d7fd13dc687e9102a27e98ef33730ac4fe37795d5036d18b4d527abd35"}, + {file = "lxml-4.9.3-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:f6bdac493b949141b733c5345b6ba8f87a226029cbabc7e9e121a413e49441e0"}, + {file = "lxml-4.9.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:05186a0f1346ae12553d66df1cfce6f251589fea3ad3da4f3ef4e34b2d58c6a3"}, + {file = "lxml-4.9.3-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c2006f5c8d28dee289f7020f721354362fa304acbaaf9745751ac4006650254b"}, + {file = "lxml-4.9.3-pp38-pypy38_pp73-macosx_11_0_x86_64.whl", hash = "sha256:5c245b783db29c4e4fbbbfc9c5a78be496c9fea25517f90606aa1f6b2b3d5f7b"}, + {file = "lxml-4.9.3-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:4fb960a632a49f2f089d522f70496640fdf1218f1243889da3822e0a9f5f3ba7"}, + {file = "lxml-4.9.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:50670615eaf97227d5dc60de2dc99fb134a7130d310d783314e7724bf163f75d"}, + {file = "lxml-4.9.3-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:9719fe17307a9e814580af1f5c6e05ca593b12fb7e44fe62450a5384dbf61b4b"}, + {file = "lxml-4.9.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:3331bece23c9ee066e0fb3f96c61322b9e0f54d775fccefff4c38ca488de283a"}, + {file = "lxml-4.9.3-pp39-pypy39_pp73-macosx_11_0_x86_64.whl", hash = "sha256:ed667f49b11360951e201453fc3967344d0d0263aa415e1619e85ae7fd17b4e0"}, + {file = "lxml-4.9.3-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:8b77946fd508cbf0fccd8e400a7f71d4ac0e1595812e66025bac475a8e811694"}, + {file = "lxml-4.9.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:e4da8ca0c0c0aea88fd46be8e44bd49716772358d648cce45fe387f7b92374a7"}, + {file = "lxml-4.9.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:fe4bda6bd4340caa6e5cf95e73f8fea5c4bfc55763dd42f1b50a94c1b4a2fbd4"}, + {file = "lxml-4.9.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:f3df3db1d336b9356dd3112eae5f5c2b8b377f3bc826848567f10bfddfee77e9"}, + {file = "lxml-4.9.3.tar.gz", hash = "sha256:48628bd53a426c9eb9bc066a923acaa0878d1e86129fd5359aee99285f4eed9c"}, +] + +[package.extras] +cssselect = ["cssselect (>=0.7)"] +html5 = ["html5lib"] +htmlsoup = ["BeautifulSoup4"] +source = ["Cython (>=0.29.35)"] + [[package]] name = "markdown" -version = "3.3.7" -description = "Python implementation of Markdown." +version = "3.4.4" +description = "Python implementation of John Gruber's Markdown." optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "Markdown-3.3.7-py3-none-any.whl", hash = "sha256:f5da449a6e1c989a4cea2631aa8ee67caa5a2ef855d551c88f9e309f4634c621"}, - {file = "Markdown-3.3.7.tar.gz", hash = "sha256:cbb516f16218e643d8e0a95b309f77eb118cb138d39a4f27851e6a63581db874"}, + {file = "Markdown-3.4.4-py3-none-any.whl", hash = "sha256:a4c1b65c0957b4bd9e7d86ddc7b3c9868fb9670660f6f99f6d1bca8954d5a941"}, + {file = "Markdown-3.4.4.tar.gz", hash = "sha256:225c6123522495d4119a90b3a3ba31a1e87a70369e03f14799ea9c0d7183a3d6"}, ] [package.dependencies] importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} [package.extras] +docs = ["mdx-gh-links (>=0.2)", "mkdocs (>=1.0)", "mkdocs-nature (>=0.4)"] testing = ["coverage", "pyyaml"] +[[package]] +name = "markdown2" +version = "2.4.10" +description = "A fast and complete Python implementation of Markdown" +optional = false +python-versions = ">=3.5, <4" +files = [ + {file = "markdown2-2.4.10-py2.py3-none-any.whl", hash = "sha256:e6105800483783831f5dc54f827aa5b44eb137ecef5a70293d8ecfbb4109ecc6"}, + {file = "markdown2-2.4.10.tar.gz", hash = "sha256:cdba126d90dc3aef6f4070ac342f974d63f415678959329cc7909f96cc235d72"}, +] + +[package.extras] +all = ["pygments (>=2.7.3)", "wavedrom"] +code-syntax-highlighting = ["pygments (>=2.7.3)"] +wavedrom = ["wavedrom"] + [[package]] name = "markupsafe" version = "2.1.3" @@ -1097,13 +1225,13 @@ files = [ [[package]] name = "mkdocs" -version = "1.4.3" +version = "1.5.2" description = "Project documentation with Markdown." optional = false python-versions = ">=3.7" files = [ - {file = "mkdocs-1.4.3-py3-none-any.whl", hash = "sha256:6ee46d309bda331aac915cd24aab882c179a933bd9e77b80ce7d2eaaa3f689dd"}, - {file = "mkdocs-1.4.3.tar.gz", hash = "sha256:5955093bbd4dd2e9403c5afaf57324ad8b04f16886512a3ee6ef828956481c57"}, + {file = "mkdocs-1.5.2-py3-none-any.whl", hash = "sha256:60a62538519c2e96fe8426654a67ee177350451616118a41596ae7c876bb7eac"}, + {file = "mkdocs-1.5.2.tar.gz", hash = "sha256:70d0da09c26cff288852471be03c23f0f521fc15cf16ac89c7a3bfb9ae8d24f9"}, ] [package.dependencies] @@ -1112,26 +1240,29 @@ colorama = {version = ">=0.4", markers = "platform_system == \"Windows\""} ghp-import = ">=1.0" importlib-metadata = {version = ">=4.3", markers = "python_version < \"3.10\""} jinja2 = ">=2.11.1" -markdown = ">=3.2.1,<3.4" +markdown = ">=3.2.1" +markupsafe = ">=2.0.1" mergedeep = ">=1.3.4" packaging = ">=20.5" +pathspec = ">=0.11.1" +platformdirs = ">=2.2.0" pyyaml = ">=5.1" pyyaml-env-tag = ">=0.1" watchdog = ">=2.0" [package.extras] i18n = ["babel (>=2.9.0)"] -min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-import (==1.0)", "importlib-metadata (==4.3)", "jinja2 (==2.11.1)", "markdown (==3.2.1)", "markupsafe (==2.0.1)", "mergedeep (==1.3.4)", "packaging (==20.5)", "pyyaml (==5.1)", "pyyaml-env-tag (==0.1)", "typing-extensions (==3.10)", "watchdog (==2.0)"] +min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-import (==1.0)", "importlib-metadata (==4.3)", "jinja2 (==2.11.1)", "markdown (==3.2.1)", "markupsafe (==2.0.1)", "mergedeep (==1.3.4)", "packaging (==20.5)", "pathspec (==0.11.1)", "platformdirs (==2.2.0)", "pyyaml (==5.1)", "pyyaml-env-tag (==0.1)", "typing-extensions (==3.10)", "watchdog (==2.0)"] [[package]] name = "mkdocs-autorefs" -version = "0.4.1" +version = "0.5.0" description = "Automatically link across pages in MkDocs." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "mkdocs-autorefs-0.4.1.tar.gz", hash = "sha256:70748a7bd025f9ecd6d6feeba8ba63f8e891a1af55f48e366d6d6e78493aba84"}, - {file = "mkdocs_autorefs-0.4.1-py3-none-any.whl", hash = "sha256:a2248a9501b29dc0cc8ba4c09f4f47ff121945f6ce33d760f145d6f89d313f5b"}, + {file = "mkdocs_autorefs-0.5.0-py3-none-any.whl", hash = "sha256:7930fcb8ac1249f10e683967aeaddc0af49d90702af111a5e390e8b20b3d97ff"}, + {file = "mkdocs_autorefs-0.5.0.tar.gz", hash = "sha256:9a5054a94c08d28855cfab967ada10ed5be76e2bfad642302a610b252c3274c0"}, ] [package.dependencies] @@ -1140,23 +1271,27 @@ mkdocs = ">=1.1" [[package]] name = "mkdocs-material" -version = "9.1.15" +version = "9.2.6" description = "Documentation that simply works" optional = false python-versions = ">=3.7" files = [ - {file = "mkdocs_material-9.1.15-py3-none-any.whl", hash = "sha256:b49e12869ab464558e2dd3c5792da5b748a7e0c48ee83b4d05715f98125a7a39"}, - {file = "mkdocs_material-9.1.15.tar.gz", hash = "sha256:8513ab847c9a541ed3d11a3a7eed556caf72991ee786c31c5aac6691a121088a"}, + {file = "mkdocs_material-9.2.6-py3-none-any.whl", hash = "sha256:84bc7e79c1d0bae65a77123efd5ef74731b8c3671601c7962c5db8dba50a65ad"}, + {file = "mkdocs_material-9.2.6.tar.gz", hash = "sha256:3806c58dd112e7b9677225e2021035ddbe3220fbd29d9dc812aa7e01f70b5e0a"}, ] [package.dependencies] +babel = ">=2.10.3" colorama = ">=0.4" jinja2 = ">=3.0" +lxml = ">=4.6" markdown = ">=3.2" -mkdocs = ">=1.4.2" +mkdocs = ">=1.5.2" mkdocs-material-extensions = ">=1.1" +paginate = ">=0.5.6" pygments = ">=2.14" pymdown-extensions = ">=9.9.1" +readtime = ">=2.0" regex = ">=2022.4.24" requests = ">=2.26" @@ -1231,23 +1366,6 @@ files = [ griffe = ">=0.24" mkdocstrings = ">=0.19" -[[package]] -name = "more-click" -version = "0.1.2" -description = "More click." -optional = false -python-versions = ">=3.7" -files = [ - {file = "more_click-0.1.2-py3-none-any.whl", hash = "sha256:f6387af37ef7e7423bd94b72a81a53c79c5086a3bfe5cc035da534ff0c2a0a9e"}, - {file = "more_click-0.1.2.tar.gz", hash = "sha256:085da66d5a9b823c5d912a888dca1fa0c8b3a14ed1b21ea9c8a1b814857a3981"}, -] - -[package.dependencies] -click = "*" - -[package.extras] -tests = ["coverage", "pytest"] - [[package]] name = "mypy-extensions" version = "1.0.0" @@ -1279,39 +1397,39 @@ test = ["codecov (>=2.1)", "pytest (>=7.2)", "pytest-cov (>=4.0)"] [[package]] name = "numpy" -version = "1.24.3" +version = "1.24.4" description = "Fundamental package for array computing in Python" optional = false python-versions = ">=3.8" files = [ - {file = "numpy-1.24.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3c1104d3c036fb81ab923f507536daedc718d0ad5a8707c6061cdfd6d184e570"}, - {file = "numpy-1.24.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:202de8f38fc4a45a3eea4b63e2f376e5f2dc64ef0fa692838e31a808520efaf7"}, - {file = "numpy-1.24.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8535303847b89aa6b0f00aa1dc62867b5a32923e4d1681a35b5eef2d9591a463"}, - {file = "numpy-1.24.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d926b52ba1367f9acb76b0df6ed21f0b16a1ad87c6720a1121674e5cf63e2b6"}, - {file = "numpy-1.24.3-cp310-cp310-win32.whl", hash = "sha256:f21c442fdd2805e91799fbe044a7b999b8571bb0ab0f7850d0cb9641a687092b"}, - {file = "numpy-1.24.3-cp310-cp310-win_amd64.whl", hash = "sha256:ab5f23af8c16022663a652d3b25dcdc272ac3f83c3af4c02eb8b824e6b3ab9d7"}, - {file = "numpy-1.24.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9a7721ec204d3a237225db3e194c25268faf92e19338a35f3a224469cb6039a3"}, - {file = "numpy-1.24.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d6cc757de514c00b24ae8cf5c876af2a7c3df189028d68c0cb4eaa9cd5afc2bf"}, - {file = "numpy-1.24.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76e3f4e85fc5d4fd311f6e9b794d0c00e7002ec122be271f2019d63376f1d385"}, - {file = "numpy-1.24.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1d3c026f57ceaad42f8231305d4653d5f05dc6332a730ae5c0bea3513de0950"}, - {file = "numpy-1.24.3-cp311-cp311-win32.whl", hash = "sha256:c91c4afd8abc3908e00a44b2672718905b8611503f7ff87390cc0ac3423fb096"}, - {file = "numpy-1.24.3-cp311-cp311-win_amd64.whl", hash = "sha256:5342cf6aad47943286afa6f1609cad9b4266a05e7f2ec408e2cf7aea7ff69d80"}, - {file = "numpy-1.24.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7776ea65423ca6a15255ba1872d82d207bd1e09f6d0894ee4a64678dd2204078"}, - {file = "numpy-1.24.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ae8d0be48d1b6ed82588934aaaa179875e7dc4f3d84da18d7eae6eb3f06c242c"}, - {file = "numpy-1.24.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ecde0f8adef7dfdec993fd54b0f78183051b6580f606111a6d789cd14c61ea0c"}, - {file = "numpy-1.24.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4749e053a29364d3452c034827102ee100986903263e89884922ef01a0a6fd2f"}, - {file = "numpy-1.24.3-cp38-cp38-win32.whl", hash = "sha256:d933fabd8f6a319e8530d0de4fcc2e6a61917e0b0c271fded460032db42a0fe4"}, - {file = "numpy-1.24.3-cp38-cp38-win_amd64.whl", hash = "sha256:56e48aec79ae238f6e4395886b5eaed058abb7231fb3361ddd7bfdf4eed54289"}, - {file = "numpy-1.24.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4719d5aefb5189f50887773699eaf94e7d1e02bf36c1a9d353d9f46703758ca4"}, - {file = "numpy-1.24.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0ec87a7084caa559c36e0a2309e4ecb1baa03b687201d0a847c8b0ed476a7187"}, - {file = "numpy-1.24.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea8282b9bcfe2b5e7d491d0bf7f3e2da29700cec05b49e64d6246923329f2b02"}, - {file = "numpy-1.24.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:210461d87fb02a84ef243cac5e814aad2b7f4be953b32cb53327bb49fd77fbb4"}, - {file = "numpy-1.24.3-cp39-cp39-win32.whl", hash = "sha256:784c6da1a07818491b0ffd63c6bbe5a33deaa0e25a20e1b3ea20cf0e43f8046c"}, - {file = "numpy-1.24.3-cp39-cp39-win_amd64.whl", hash = "sha256:d5036197ecae68d7f491fcdb4df90082b0d4960ca6599ba2659957aafced7c17"}, - {file = "numpy-1.24.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:352ee00c7f8387b44d19f4cada524586f07379c0d49270f87233983bc5087ca0"}, - {file = "numpy-1.24.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a7d6acc2e7524c9955e5c903160aa4ea083736fde7e91276b0e5d98e6332812"}, - {file = "numpy-1.24.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:35400e6a8d102fd07c71ed7dcadd9eb62ee9a6e84ec159bd48c28235bbb0f8e4"}, - {file = "numpy-1.24.3.tar.gz", hash = "sha256:ab344f1bf21f140adab8e47fdbc7c35a477dc01408791f8ba00d018dd0bc5155"}, + {file = "numpy-1.24.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c0bfb52d2169d58c1cdb8cc1f16989101639b34c7d3ce60ed70b19c63eba0b64"}, + {file = "numpy-1.24.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ed094d4f0c177b1b8e7aa9cba7d6ceed51c0e569a5318ac0ca9a090680a6a1b1"}, + {file = "numpy-1.24.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79fc682a374c4a8ed08b331bef9c5f582585d1048fa6d80bc6c35bc384eee9b4"}, + {file = "numpy-1.24.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ffe43c74893dbf38c2b0a1f5428760a1a9c98285553c89e12d70a96a7f3a4d6"}, + {file = "numpy-1.24.4-cp310-cp310-win32.whl", hash = "sha256:4c21decb6ea94057331e111a5bed9a79d335658c27ce2adb580fb4d54f2ad9bc"}, + {file = "numpy-1.24.4-cp310-cp310-win_amd64.whl", hash = "sha256:b4bea75e47d9586d31e892a7401f76e909712a0fd510f58f5337bea9572c571e"}, + {file = "numpy-1.24.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f136bab9c2cfd8da131132c2cf6cc27331dd6fae65f95f69dcd4ae3c3639c810"}, + {file = "numpy-1.24.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e2926dac25b313635e4d6cf4dc4e51c8c0ebfed60b801c799ffc4c32bf3d1254"}, + {file = "numpy-1.24.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:222e40d0e2548690405b0b3c7b21d1169117391c2e82c378467ef9ab4c8f0da7"}, + {file = "numpy-1.24.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7215847ce88a85ce39baf9e89070cb860c98fdddacbaa6c0da3ffb31b3350bd5"}, + {file = "numpy-1.24.4-cp311-cp311-win32.whl", hash = "sha256:4979217d7de511a8d57f4b4b5b2b965f707768440c17cb70fbf254c4b225238d"}, + {file = "numpy-1.24.4-cp311-cp311-win_amd64.whl", hash = "sha256:b7b1fc9864d7d39e28f41d089bfd6353cb5f27ecd9905348c24187a768c79694"}, + {file = "numpy-1.24.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1452241c290f3e2a312c137a9999cdbf63f78864d63c79039bda65ee86943f61"}, + {file = "numpy-1.24.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:04640dab83f7c6c85abf9cd729c5b65f1ebd0ccf9de90b270cd61935eef0197f"}, + {file = "numpy-1.24.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5425b114831d1e77e4b5d812b69d11d962e104095a5b9c3b641a218abcc050e"}, + {file = "numpy-1.24.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd80e219fd4c71fc3699fc1dadac5dcf4fd882bfc6f7ec53d30fa197b8ee22dc"}, + {file = "numpy-1.24.4-cp38-cp38-win32.whl", hash = "sha256:4602244f345453db537be5314d3983dbf5834a9701b7723ec28923e2889e0bb2"}, + {file = "numpy-1.24.4-cp38-cp38-win_amd64.whl", hash = "sha256:692f2e0f55794943c5bfff12b3f56f99af76f902fc47487bdfe97856de51a706"}, + {file = "numpy-1.24.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2541312fbf09977f3b3ad449c4e5f4bb55d0dbf79226d7724211acc905049400"}, + {file = "numpy-1.24.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9667575fb6d13c95f1b36aca12c5ee3356bf001b714fc354eb5465ce1609e62f"}, + {file = "numpy-1.24.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3a86ed21e4f87050382c7bc96571755193c4c1392490744ac73d660e8f564a9"}, + {file = "numpy-1.24.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d11efb4dbecbdf22508d55e48d9c8384db795e1b7b51ea735289ff96613ff74d"}, + {file = "numpy-1.24.4-cp39-cp39-win32.whl", hash = "sha256:6620c0acd41dbcb368610bb2f4d83145674040025e5536954782467100aa8835"}, + {file = "numpy-1.24.4-cp39-cp39-win_amd64.whl", hash = "sha256:befe2bf740fd8373cf56149a5c23a0f601e82869598d41f8e188a0e9869926f8"}, + {file = "numpy-1.24.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:31f13e25b4e304632a4619d0e0777662c2ffea99fcae2029556b17d8ff958aef"}, + {file = "numpy-1.24.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95f7ac6540e95bc440ad77f56e520da5bf877f87dca58bd095288dce8940532a"}, + {file = "numpy-1.24.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e98f220aa76ca2a977fe435f5b04d7b3470c0a2e6312907b37ba6068f26787f2"}, + {file = "numpy-1.24.4.tar.gz", hash = "sha256:80f5e3a4e498641401868df4208b74581206afbee7cf7b8329daae82676d9463"}, ] [[package]] @@ -1353,44 +1471,54 @@ files = [ {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, ] +[[package]] +name = "paginate" +version = "0.5.6" +description = "Divides large result sets into pages for easier browsing" +optional = false +python-versions = "*" +files = [ + {file = "paginate-0.5.6.tar.gz", hash = "sha256:5e6007b6a9398177a7e1648d04fdd9f8c9766a1a945bceac82f1929e8c78af2d"}, +] + [[package]] name = "pandas" -version = "2.0.2" +version = "2.0.3" description = "Powerful data structures for data analysis, time series, and statistics" optional = false python-versions = ">=3.8" files = [ - {file = "pandas-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ebb9f1c22ddb828e7fd017ea265a59d80461d5a79154b49a4207bd17514d122"}, - {file = "pandas-2.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1eb09a242184092f424b2edd06eb2b99d06dc07eeddff9929e8667d4ed44e181"}, - {file = "pandas-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7319b6e68de14e6209460f72a8d1ef13c09fb3d3ef6c37c1e65b35d50b5c145"}, - {file = "pandas-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd46bde7309088481b1cf9c58e3f0e204b9ff9e3244f441accd220dd3365ce7c"}, - {file = "pandas-2.0.2-cp310-cp310-win32.whl", hash = "sha256:51a93d422fbb1bd04b67639ba4b5368dffc26923f3ea32a275d2cc450f1d1c86"}, - {file = "pandas-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:66d00300f188fa5de73f92d5725ced162488f6dc6ad4cecfe4144ca29debe3b8"}, - {file = "pandas-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:02755de164da6827764ceb3bbc5f64b35cb12394b1024fdf88704d0fa06e0e2f"}, - {file = "pandas-2.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0a1e0576611641acde15c2322228d138258f236d14b749ad9af498ab69089e2d"}, - {file = "pandas-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6b5f14cd24a2ed06e14255ff40fe2ea0cfaef79a8dd68069b7ace74bd6acbba"}, - {file = "pandas-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50e451932b3011b61d2961b4185382c92cc8c6ee4658dcd4f320687bb2d000ee"}, - {file = "pandas-2.0.2-cp311-cp311-win32.whl", hash = "sha256:7b21cb72958fc49ad757685db1919021d99650d7aaba676576c9e88d3889d456"}, - {file = "pandas-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:c4af689352c4fe3d75b2834933ee9d0ccdbf5d7a8a7264f0ce9524e877820c08"}, - {file = "pandas-2.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:69167693cb8f9b3fc060956a5d0a0a8dbfed5f980d9fd2c306fb5b9c855c814c"}, - {file = "pandas-2.0.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:30a89d0fec4263ccbf96f68592fd668939481854d2ff9da709d32a047689393b"}, - {file = "pandas-2.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a18e5c72b989ff0f7197707ceddc99828320d0ca22ab50dd1b9e37db45b010c0"}, - {file = "pandas-2.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7376e13d28eb16752c398ca1d36ccfe52bf7e887067af9a0474de6331dd948d2"}, - {file = "pandas-2.0.2-cp38-cp38-win32.whl", hash = "sha256:6d6d10c2142d11d40d6e6c0a190b1f89f525bcf85564707e31b0a39e3b398e08"}, - {file = "pandas-2.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:e69140bc2d29a8556f55445c15f5794490852af3de0f609a24003ef174528b79"}, - {file = "pandas-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b42b120458636a981077cfcfa8568c031b3e8709701315e2bfa866324a83efa8"}, - {file = "pandas-2.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f908a77cbeef9bbd646bd4b81214cbef9ac3dda4181d5092a4aa9797d1bc7774"}, - {file = "pandas-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:713f2f70abcdade1ddd68fc91577cb090b3544b07ceba78a12f799355a13ee44"}, - {file = "pandas-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf3f0c361a4270185baa89ec7ab92ecaa355fe783791457077473f974f654df5"}, - {file = "pandas-2.0.2-cp39-cp39-win32.whl", hash = "sha256:598e9020d85a8cdbaa1815eb325a91cfff2bb2b23c1442549b8a3668e36f0f77"}, - {file = "pandas-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:77550c8909ebc23e56a89f91b40ad01b50c42cfbfab49b3393694a50549295ea"}, - {file = "pandas-2.0.2.tar.gz", hash = "sha256:dd5476b6c3fe410ee95926873f377b856dbc4e81a9c605a0dc05aaccc6a7c6c6"}, + {file = "pandas-2.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e4c7c9f27a4185304c7caf96dc7d91bc60bc162221152de697c98eb0b2648dd8"}, + {file = "pandas-2.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f167beed68918d62bffb6ec64f2e1d8a7d297a038f86d4aed056b9493fca407f"}, + {file = "pandas-2.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce0c6f76a0f1ba361551f3e6dceaff06bde7514a374aa43e33b588ec10420183"}, + {file = "pandas-2.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba619e410a21d8c387a1ea6e8a0e49bb42216474436245718d7f2e88a2f8d7c0"}, + {file = "pandas-2.0.3-cp310-cp310-win32.whl", hash = "sha256:3ef285093b4fe5058eefd756100a367f27029913760773c8bf1d2d8bebe5d210"}, + {file = "pandas-2.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:9ee1a69328d5c36c98d8e74db06f4ad518a1840e8ccb94a4ba86920986bb617e"}, + {file = "pandas-2.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b084b91d8d66ab19f5bb3256cbd5ea661848338301940e17f4492b2ce0801fe8"}, + {file = "pandas-2.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:37673e3bdf1551b95bf5d4ce372b37770f9529743d2498032439371fc7b7eb26"}, + {file = "pandas-2.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9cb1e14fdb546396b7e1b923ffaeeac24e4cedd14266c3497216dd4448e4f2d"}, + {file = "pandas-2.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9cd88488cceb7635aebb84809d087468eb33551097d600c6dad13602029c2df"}, + {file = "pandas-2.0.3-cp311-cp311-win32.whl", hash = "sha256:694888a81198786f0e164ee3a581df7d505024fbb1f15202fc7db88a71d84ebd"}, + {file = "pandas-2.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:6a21ab5c89dcbd57f78d0ae16630b090eec626360085a4148693def5452d8a6b"}, + {file = "pandas-2.0.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9e4da0d45e7f34c069fe4d522359df7d23badf83abc1d1cef398895822d11061"}, + {file = "pandas-2.0.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:32fca2ee1b0d93dd71d979726b12b61faa06aeb93cf77468776287f41ff8fdc5"}, + {file = "pandas-2.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:258d3624b3ae734490e4d63c430256e716f488c4fcb7c8e9bde2d3aa46c29089"}, + {file = "pandas-2.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9eae3dc34fa1aa7772dd3fc60270d13ced7346fcbcfee017d3132ec625e23bb0"}, + {file = "pandas-2.0.3-cp38-cp38-win32.whl", hash = "sha256:f3421a7afb1a43f7e38e82e844e2bca9a6d793d66c1a7f9f0ff39a795bbc5e02"}, + {file = "pandas-2.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:69d7f3884c95da3a31ef82b7618af5710dba95bb885ffab339aad925c3e8ce78"}, + {file = "pandas-2.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5247fb1ba347c1261cbbf0fcfba4a3121fbb4029d95d9ef4dc45406620b25c8b"}, + {file = "pandas-2.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:81af086f4543c9d8bb128328b5d32e9986e0c84d3ee673a2ac6fb57fd14f755e"}, + {file = "pandas-2.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1994c789bf12a7c5098277fb43836ce090f1073858c10f9220998ac74f37c69b"}, + {file = "pandas-2.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ec591c48e29226bcbb316e0c1e9423622bc7a4eaf1ef7c3c9fa1a3981f89641"}, + {file = "pandas-2.0.3-cp39-cp39-win32.whl", hash = "sha256:04dbdbaf2e4d46ca8da896e1805bc04eb85caa9a82e259e8eed00254d5e0c682"}, + {file = "pandas-2.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:1168574b036cd8b93abc746171c9b4f1b83467438a5e45909fed645cf8692dbc"}, + {file = "pandas-2.0.3.tar.gz", hash = "sha256:c02f372a88e0d17f36d3093a644c73cfc1788e876a7c4bcb4020a77512e2043c"}, ] [package.dependencies] numpy = [ {version = ">=1.20.3", markers = "python_version < \"3.10\""}, - {version = ">=1.21.0", markers = "python_version >= \"3.10\""}, + {version = ">=1.21.0", markers = "python_version >= \"3.10\" and python_version < \"3.11\""}, {version = ">=1.23.2", markers = "python_version >= \"3.11\""}, ] python-dateutil = ">=2.8.2" @@ -1398,7 +1526,7 @@ pytz = ">=2020.1" tzdata = ">=2022.1" [package.extras] -all = ["PyQt5 (>=5.15.1)", "SQLAlchemy (>=1.4.16)", "beautifulsoup4 (>=4.9.3)", "bottleneck (>=1.3.2)", "brotlipy (>=0.7.0)", "fastparquet (>=0.6.3)", "fsspec (>=2021.07.0)", "gcsfs (>=2021.07.0)", "html5lib (>=1.1)", "hypothesis (>=6.34.2)", "jinja2 (>=3.0.0)", "lxml (>=4.6.3)", "matplotlib (>=3.6.1)", "numba (>=0.53.1)", "numexpr (>=2.7.3)", "odfpy (>=1.4.1)", "openpyxl (>=3.0.7)", "pandas-gbq (>=0.15.0)", "psycopg2 (>=2.8.6)", "pyarrow (>=7.0.0)", "pymysql (>=1.0.2)", "pyreadstat (>=1.1.2)", "pytest (>=7.0.0)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)", "python-snappy (>=0.6.0)", "pyxlsb (>=1.0.8)", "qtpy (>=2.2.0)", "s3fs (>=2021.08.0)", "scipy (>=1.7.1)", "tables (>=3.6.1)", "tabulate (>=0.8.9)", "xarray (>=0.21.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=1.4.3)", "zstandard (>=0.15.2)"] +all = ["PyQt5 (>=5.15.1)", "SQLAlchemy (>=1.4.16)", "beautifulsoup4 (>=4.9.3)", "bottleneck (>=1.3.2)", "brotlipy (>=0.7.0)", "fastparquet (>=0.6.3)", "fsspec (>=2021.07.0)", "gcsfs (>=2021.07.0)", "html5lib (>=1.1)", "hypothesis (>=6.34.2)", "jinja2 (>=3.0.0)", "lxml (>=4.6.3)", "matplotlib (>=3.6.1)", "numba (>=0.53.1)", "numexpr (>=2.7.3)", "odfpy (>=1.4.1)", "openpyxl (>=3.0.7)", "pandas-gbq (>=0.15.0)", "psycopg2 (>=2.8.6)", "pyarrow (>=7.0.0)", "pymysql (>=1.0.2)", "pyreadstat (>=1.1.2)", "pytest (>=7.3.2)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)", "python-snappy (>=0.6.0)", "pyxlsb (>=1.0.8)", "qtpy (>=2.2.0)", "s3fs (>=2021.08.0)", "scipy (>=1.7.1)", "tables (>=3.6.1)", "tabulate (>=0.8.9)", "xarray (>=0.21.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=1.4.3)", "zstandard (>=0.15.2)"] aws = ["s3fs (>=2021.08.0)"] clipboard = ["PyQt5 (>=5.15.1)", "qtpy (>=2.2.0)"] compression = ["brotlipy (>=0.7.0)", "python-snappy (>=0.6.0)", "zstandard (>=0.15.2)"] @@ -1417,7 +1545,7 @@ plot = ["matplotlib (>=3.6.1)"] postgresql = ["SQLAlchemy (>=1.4.16)", "psycopg2 (>=2.8.6)"] spss = ["pyreadstat (>=1.1.2)"] sql-other = ["SQLAlchemy (>=1.4.16)"] -test = ["hypothesis (>=6.34.2)", "pytest (>=7.0.0)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)"] +test = ["hypothesis (>=6.34.2)", "pytest (>=7.3.2)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)"] xml = ["lxml (>=4.6.3)"] [[package]] @@ -1438,12 +1566,13 @@ sqlalchemy = "*" [[package]] name = "parse" -version = "1.19.0" +version = "1.19.1" description = "parse() is the opposite of format()" optional = false python-versions = "*" files = [ - {file = "parse-1.19.0.tar.gz", hash = "sha256:9ff82852bcb65d139813e2a5197627a94966245c897796760a3a2a8eb66f020b"}, + {file = "parse-1.19.1-py2.py3-none-any.whl", hash = "sha256:371ed3800dc63983832159cc9373156613947707bc448b5215473a219dbd4362"}, + {file = "parse-1.19.1.tar.gz", hash = "sha256:cc3a47236ff05da377617ddefa867b7ba983819c664e1afe46249e5b469be464"}, ] [[package]] @@ -1466,13 +1595,13 @@ complete = ["blosc", "numpy (>=1.9.0)", "pandas (>=0.19.0)", "pyzmq"] [[package]] name = "pathspec" -version = "0.11.1" +version = "0.11.2" description = "Utility library for gitignore style pattern matching of file paths." optional = false python-versions = ">=3.7" files = [ - {file = "pathspec-0.11.1-py3-none-any.whl", hash = "sha256:d8af70af76652554bd134c22b3e8a1cc46ed7d91edcdd721ef1a0c51a84a5293"}, - {file = "pathspec-0.11.1.tar.gz", hash = "sha256:2798de800fa92780e33acca925945e9a19a133b715067cf165b8866c15a31687"}, + {file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"}, + {file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"}, ] [[package]] @@ -1488,28 +1617,28 @@ files = [ [[package]] name = "platformdirs" -version = "3.5.1" +version = "3.10.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." optional = false python-versions = ">=3.7" files = [ - {file = "platformdirs-3.5.1-py3-none-any.whl", hash = "sha256:e2378146f1964972c03c085bb5662ae80b2b8c06226c54b2ff4aa9483e8a13a5"}, - {file = "platformdirs-3.5.1.tar.gz", hash = "sha256:412dae91f52a6f84830f39a8078cecd0e866cb72294a5c66808e74d5e88d251f"}, + {file = "platformdirs-3.10.0-py3-none-any.whl", hash = "sha256:d7c24979f292f916dc9cbf8648319032f551ea8c49a4c9bf2fb556a02070ec1d"}, + {file = "platformdirs-3.10.0.tar.gz", hash = "sha256:b45696dab2d7cc691a3226759c0d3b00c47c8b6e293d96f6436f733303f77f6d"}, ] [package.extras] -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)"] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"] [[package]] name = "pluggy" -version = "1.0.0" +version = "1.3.0" description = "plugin and hook calling mechanisms for python" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, - {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, + {file = "pluggy-1.3.0-py3-none-any.whl", hash = "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7"}, + {file = "pluggy-1.3.0.tar.gz", hash = "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12"}, ] [package.extras] @@ -1568,55 +1697,140 @@ refresh = ["bioregistry[refresh] (>=0.8.0,<0.9.0)", "rdflib[refresh] (>=6.2.0,<7 [[package]] name = "pydantic" -version = "1.10.8" -description = "Data validation and settings management using python type hints" +version = "2.3.0" +description = "Data validation using Python type hints" optional = false python-versions = ">=3.7" files = [ - {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"}, + {file = "pydantic-2.3.0-py3-none-any.whl", hash = "sha256:45b5e446c6dfaad9444819a293b921a40e1db1aa61ea08aede0522529ce90e81"}, + {file = "pydantic-2.3.0.tar.gz", hash = "sha256:1607cc106602284cd4a00882986570472f193fde9cb1259bceeaedb26aa79a6d"}, ] [package.dependencies] -typing-extensions = ">=4.2.0" +annotated-types = ">=0.4.0" +pydantic-core = "2.6.3" +typing-extensions = ">=4.6.1" [package.extras] -dotenv = ["python-dotenv (>=0.10.4)"] -email = ["email-validator (>=1.0.3)"] +email = ["email-validator (>=2.0.0)"] + +[[package]] +name = "pydantic-core" +version = "2.6.3" +description = "" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pydantic_core-2.6.3-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:1a0ddaa723c48af27d19f27f1c73bdc615c73686d763388c8683fe34ae777bad"}, + {file = "pydantic_core-2.6.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5cfde4fab34dd1e3a3f7f3db38182ab6c95e4ea91cf322242ee0be5c2f7e3d2f"}, + {file = "pydantic_core-2.6.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5493a7027bfc6b108e17c3383959485087d5942e87eb62bbac69829eae9bc1f7"}, + {file = "pydantic_core-2.6.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:84e87c16f582f5c753b7f39a71bd6647255512191be2d2dbf49458c4ef024588"}, + {file = "pydantic_core-2.6.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:522a9c4a4d1924facce7270c84b5134c5cabcb01513213662a2e89cf28c1d309"}, + {file = "pydantic_core-2.6.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aaafc776e5edc72b3cad1ccedb5fd869cc5c9a591f1213aa9eba31a781be9ac1"}, + {file = "pydantic_core-2.6.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a750a83b2728299ca12e003d73d1264ad0440f60f4fc9cee54acc489249b728"}, + {file = "pydantic_core-2.6.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9e8b374ef41ad5c461efb7a140ce4730661aadf85958b5c6a3e9cf4e040ff4bb"}, + {file = "pydantic_core-2.6.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b594b64e8568cf09ee5c9501ede37066b9fc41d83d58f55b9952e32141256acd"}, + {file = "pydantic_core-2.6.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2a20c533cb80466c1d42a43a4521669ccad7cf2967830ac62c2c2f9cece63e7e"}, + {file = "pydantic_core-2.6.3-cp310-none-win32.whl", hash = "sha256:04fe5c0a43dec39aedba0ec9579001061d4653a9b53a1366b113aca4a3c05ca7"}, + {file = "pydantic_core-2.6.3-cp310-none-win_amd64.whl", hash = "sha256:6bf7d610ac8f0065a286002a23bcce241ea8248c71988bda538edcc90e0c39ad"}, + {file = "pydantic_core-2.6.3-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:6bcc1ad776fffe25ea5c187a028991c031a00ff92d012ca1cc4714087e575973"}, + {file = "pydantic_core-2.6.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:df14f6332834444b4a37685810216cc8fe1fe91f447332cd56294c984ecbff1c"}, + {file = "pydantic_core-2.6.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0b7486d85293f7f0bbc39b34e1d8aa26210b450bbd3d245ec3d732864009819"}, + {file = "pydantic_core-2.6.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a892b5b1871b301ce20d40b037ffbe33d1407a39639c2b05356acfef5536d26a"}, + {file = "pydantic_core-2.6.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:883daa467865e5766931e07eb20f3e8152324f0adf52658f4d302242c12e2c32"}, + {file = "pydantic_core-2.6.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d4eb77df2964b64ba190eee00b2312a1fd7a862af8918ec70fc2d6308f76ac64"}, + {file = "pydantic_core-2.6.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ce8c84051fa292a5dc54018a40e2a1926fd17980a9422c973e3ebea017aa8da"}, + {file = "pydantic_core-2.6.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:22134a4453bd59b7d1e895c455fe277af9d9d9fbbcb9dc3f4a97b8693e7e2c9b"}, + {file = "pydantic_core-2.6.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:02e1c385095efbd997311d85c6021d32369675c09bcbfff3b69d84e59dc103f6"}, + {file = "pydantic_core-2.6.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d79f1f2f7ebdb9b741296b69049ff44aedd95976bfee38eb4848820628a99b50"}, + {file = "pydantic_core-2.6.3-cp311-none-win32.whl", hash = "sha256:430ddd965ffd068dd70ef4e4d74f2c489c3a313adc28e829dd7262cc0d2dd1e8"}, + {file = "pydantic_core-2.6.3-cp311-none-win_amd64.whl", hash = "sha256:84f8bb34fe76c68c9d96b77c60cef093f5e660ef8e43a6cbfcd991017d375950"}, + {file = "pydantic_core-2.6.3-cp311-none-win_arm64.whl", hash = "sha256:5a2a3c9ef904dcdadb550eedf3291ec3f229431b0084666e2c2aa8ff99a103a2"}, + {file = "pydantic_core-2.6.3-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:8421cf496e746cf8d6b677502ed9a0d1e4e956586cd8b221e1312e0841c002d5"}, + {file = "pydantic_core-2.6.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bb128c30cf1df0ab78166ded1ecf876620fb9aac84d2413e8ea1594b588c735d"}, + {file = "pydantic_core-2.6.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37a822f630712817b6ecc09ccc378192ef5ff12e2c9bae97eb5968a6cdf3b862"}, + {file = "pydantic_core-2.6.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:240a015102a0c0cc8114f1cba6444499a8a4d0333e178bc504a5c2196defd456"}, + {file = "pydantic_core-2.6.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f90e5e3afb11268628c89f378f7a1ea3f2fe502a28af4192e30a6cdea1e7d5e"}, + {file = "pydantic_core-2.6.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:340e96c08de1069f3d022a85c2a8c63529fd88709468373b418f4cf2c949fb0e"}, + {file = "pydantic_core-2.6.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1480fa4682e8202b560dcdc9eeec1005f62a15742b813c88cdc01d44e85308e5"}, + {file = "pydantic_core-2.6.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f14546403c2a1d11a130b537dda28f07eb6c1805a43dae4617448074fd49c282"}, + {file = "pydantic_core-2.6.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:a87c54e72aa2ef30189dc74427421e074ab4561cf2bf314589f6af5b37f45e6d"}, + {file = "pydantic_core-2.6.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f93255b3e4d64785554e544c1c76cd32f4a354fa79e2eeca5d16ac2e7fdd57aa"}, + {file = "pydantic_core-2.6.3-cp312-none-win32.whl", hash = "sha256:f70dc00a91311a1aea124e5f64569ea44c011b58433981313202c46bccbec0e1"}, + {file = "pydantic_core-2.6.3-cp312-none-win_amd64.whl", hash = "sha256:23470a23614c701b37252618e7851e595060a96a23016f9a084f3f92f5ed5881"}, + {file = "pydantic_core-2.6.3-cp312-none-win_arm64.whl", hash = "sha256:1ac1750df1b4339b543531ce793b8fd5c16660a95d13aecaab26b44ce11775e9"}, + {file = "pydantic_core-2.6.3-cp37-cp37m-macosx_10_7_x86_64.whl", hash = "sha256:a53e3195f134bde03620d87a7e2b2f2046e0e5a8195e66d0f244d6d5b2f6d31b"}, + {file = "pydantic_core-2.6.3-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:f2969e8f72c6236c51f91fbb79c33821d12a811e2a94b7aa59c65f8dbdfad34a"}, + {file = "pydantic_core-2.6.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:672174480a85386dd2e681cadd7d951471ad0bb028ed744c895f11f9d51b9ebe"}, + {file = "pydantic_core-2.6.3-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:002d0ea50e17ed982c2d65b480bd975fc41086a5a2f9c924ef8fc54419d1dea3"}, + {file = "pydantic_core-2.6.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3ccc13afee44b9006a73d2046068d4df96dc5b333bf3509d9a06d1b42db6d8bf"}, + {file = "pydantic_core-2.6.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:439a0de139556745ae53f9cc9668c6c2053444af940d3ef3ecad95b079bc9987"}, + {file = "pydantic_core-2.6.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d63b7545d489422d417a0cae6f9898618669608750fc5e62156957e609e728a5"}, + {file = "pydantic_core-2.6.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b44c42edc07a50a081672e25dfe6022554b47f91e793066a7b601ca290f71e42"}, + {file = "pydantic_core-2.6.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1c721bfc575d57305dd922e6a40a8fe3f762905851d694245807a351ad255c58"}, + {file = "pydantic_core-2.6.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:5e4a2cf8c4543f37f5dc881de6c190de08096c53986381daebb56a355be5dfe6"}, + {file = "pydantic_core-2.6.3-cp37-none-win32.whl", hash = "sha256:d9b4916b21931b08096efed090327f8fe78e09ae8f5ad44e07f5c72a7eedb51b"}, + {file = "pydantic_core-2.6.3-cp37-none-win_amd64.whl", hash = "sha256:a8acc9dedd304da161eb071cc7ff1326aa5b66aadec9622b2574ad3ffe225525"}, + {file = "pydantic_core-2.6.3-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:5e9c068f36b9f396399d43bfb6defd4cc99c36215f6ff33ac8b9c14ba15bdf6b"}, + {file = "pydantic_core-2.6.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e61eae9b31799c32c5f9b7be906be3380e699e74b2db26c227c50a5fc7988698"}, + {file = "pydantic_core-2.6.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d85463560c67fc65cd86153a4975d0b720b6d7725cf7ee0b2d291288433fc21b"}, + {file = "pydantic_core-2.6.3-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9616567800bdc83ce136e5847d41008a1d602213d024207b0ff6cab6753fe645"}, + {file = "pydantic_core-2.6.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9e9b65a55bbabda7fccd3500192a79f6e474d8d36e78d1685496aad5f9dbd92c"}, + {file = "pydantic_core-2.6.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f468d520f47807d1eb5d27648393519655eadc578d5dd862d06873cce04c4d1b"}, + {file = "pydantic_core-2.6.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9680dd23055dd874173a3a63a44e7f5a13885a4cfd7e84814be71be24fba83db"}, + {file = "pydantic_core-2.6.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9a718d56c4d55efcfc63f680f207c9f19c8376e5a8a67773535e6f7e80e93170"}, + {file = "pydantic_core-2.6.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8ecbac050856eb6c3046dea655b39216597e373aa8e50e134c0e202f9c47efec"}, + {file = "pydantic_core-2.6.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:788be9844a6e5c4612b74512a76b2153f1877cd845410d756841f6c3420230eb"}, + {file = "pydantic_core-2.6.3-cp38-none-win32.whl", hash = "sha256:07a1aec07333bf5adebd8264047d3dc518563d92aca6f2f5b36f505132399efc"}, + {file = "pydantic_core-2.6.3-cp38-none-win_amd64.whl", hash = "sha256:621afe25cc2b3c4ba05fff53525156d5100eb35c6e5a7cf31d66cc9e1963e378"}, + {file = "pydantic_core-2.6.3-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:813aab5bfb19c98ae370952b6f7190f1e28e565909bfc219a0909db168783465"}, + {file = "pydantic_core-2.6.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:50555ba3cb58f9861b7a48c493636b996a617db1a72c18da4d7f16d7b1b9952b"}, + {file = "pydantic_core-2.6.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19e20f8baedd7d987bd3f8005c146e6bcbda7cdeefc36fad50c66adb2dd2da48"}, + {file = "pydantic_core-2.6.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b0a5d7edb76c1c57b95df719af703e796fc8e796447a1da939f97bfa8a918d60"}, + {file = "pydantic_core-2.6.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f06e21ad0b504658a3a9edd3d8530e8cea5723f6ea5d280e8db8efc625b47e49"}, + {file = "pydantic_core-2.6.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ea053cefa008fda40f92aab937fb9f183cf8752e41dbc7bc68917884454c6362"}, + {file = "pydantic_core-2.6.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:171a4718860790f66d6c2eda1d95dd1edf64f864d2e9f9115840840cf5b5713f"}, + {file = "pydantic_core-2.6.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5ed7ceca6aba5331ece96c0e328cd52f0dcf942b8895a1ed2642de50800b79d3"}, + {file = "pydantic_core-2.6.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:acafc4368b289a9f291e204d2c4c75908557d4f36bd3ae937914d4529bf62a76"}, + {file = "pydantic_core-2.6.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1aa712ba150d5105814e53cb141412217146fedc22621e9acff9236d77d2a5ef"}, + {file = "pydantic_core-2.6.3-cp39-none-win32.whl", hash = "sha256:44b4f937b992394a2e81a5c5ce716f3dcc1237281e81b80c748b2da6dd5cf29a"}, + {file = "pydantic_core-2.6.3-cp39-none-win_amd64.whl", hash = "sha256:9b33bf9658cb29ac1a517c11e865112316d09687d767d7a0e4a63d5c640d1b17"}, + {file = "pydantic_core-2.6.3-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:d7050899026e708fb185e174c63ebc2c4ee7a0c17b0a96ebc50e1f76a231c057"}, + {file = "pydantic_core-2.6.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:99faba727727b2e59129c59542284efebbddade4f0ae6a29c8b8d3e1f437beb7"}, + {file = "pydantic_core-2.6.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fa159b902d22b283b680ef52b532b29554ea2a7fc39bf354064751369e9dbd7"}, + {file = "pydantic_core-2.6.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:046af9cfb5384f3684eeb3f58a48698ddab8dd870b4b3f67f825353a14441418"}, + {file = "pydantic_core-2.6.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:930bfe73e665ebce3f0da2c6d64455098aaa67e1a00323c74dc752627879fc67"}, + {file = "pydantic_core-2.6.3-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:85cc4d105747d2aa3c5cf3e37dac50141bff779545ba59a095f4a96b0a460e70"}, + {file = "pydantic_core-2.6.3-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:b25afe9d5c4f60dcbbe2b277a79be114e2e65a16598db8abee2a2dcde24f162b"}, + {file = "pydantic_core-2.6.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e49ce7dc9f925e1fb010fc3d555250139df61fa6e5a0a95ce356329602c11ea9"}, + {file = "pydantic_core-2.6.3-pp37-pypy37_pp73-macosx_10_7_x86_64.whl", hash = "sha256:2dd50d6a1aef0426a1d0199190c6c43ec89812b1f409e7fe44cb0fbf6dfa733c"}, + {file = "pydantic_core-2.6.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6595b0d8c8711e8e1dc389d52648b923b809f68ac1c6f0baa525c6440aa0daa"}, + {file = "pydantic_core-2.6.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ef724a059396751aef71e847178d66ad7fc3fc969a1a40c29f5aac1aa5f8784"}, + {file = "pydantic_core-2.6.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3c8945a105f1589ce8a693753b908815e0748f6279959a4530f6742e1994dcb6"}, + {file = "pydantic_core-2.6.3-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:c8c6660089a25d45333cb9db56bb9e347241a6d7509838dbbd1931d0e19dbc7f"}, + {file = "pydantic_core-2.6.3-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:692b4ff5c4e828a38716cfa92667661a39886e71136c97b7dac26edef18767f7"}, + {file = "pydantic_core-2.6.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:f1a5d8f18877474c80b7711d870db0eeef9442691fcdb00adabfc97e183ee0b0"}, + {file = "pydantic_core-2.6.3-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:3796a6152c545339d3b1652183e786df648ecdf7c4f9347e1d30e6750907f5bb"}, + {file = "pydantic_core-2.6.3-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:b962700962f6e7a6bd77e5f37320cabac24b4c0f76afeac05e9f93cf0c620014"}, + {file = "pydantic_core-2.6.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56ea80269077003eaa59723bac1d8bacd2cd15ae30456f2890811efc1e3d4413"}, + {file = "pydantic_core-2.6.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75c0ebbebae71ed1e385f7dfd9b74c1cff09fed24a6df43d326dd7f12339ec34"}, + {file = "pydantic_core-2.6.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:252851b38bad3bfda47b104ffd077d4f9604a10cb06fe09d020016a25107bf98"}, + {file = "pydantic_core-2.6.3-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:6656a0ae383d8cd7cc94e91de4e526407b3726049ce8d7939049cbfa426518c8"}, + {file = "pydantic_core-2.6.3-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:d9140ded382a5b04a1c030b593ed9bf3088243a0a8b7fa9f071a5736498c5483"}, + {file = "pydantic_core-2.6.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:d38bbcef58220f9c81e42c255ef0bf99735d8f11edef69ab0b499da77105158a"}, + {file = "pydantic_core-2.6.3-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:c9d469204abcca28926cbc28ce98f28e50e488767b084fb3fbdf21af11d3de26"}, + {file = "pydantic_core-2.6.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:48c1ed8b02ffea4d5c9c220eda27af02b8149fe58526359b3c07eb391cb353a2"}, + {file = "pydantic_core-2.6.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b2b1bfed698fa410ab81982f681f5b1996d3d994ae8073286515ac4d165c2e7"}, + {file = "pydantic_core-2.6.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf9d42a71a4d7a7c1f14f629e5c30eac451a6fc81827d2beefd57d014c006c4a"}, + {file = "pydantic_core-2.6.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4292ca56751aebbe63a84bbfc3b5717abb09b14d4b4442cc43fd7c49a1529efd"}, + {file = "pydantic_core-2.6.3-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:7dc2ce039c7290b4ef64334ec7e6ca6494de6eecc81e21cb4f73b9b39991408c"}, + {file = "pydantic_core-2.6.3-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:615a31b1629e12445c0e9fc8339b41aaa6cc60bd53bf802d5fe3d2c0cda2ae8d"}, + {file = "pydantic_core-2.6.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:1fa1f6312fb84e8c281f32b39affe81984ccd484da6e9d65b3d18c202c666149"}, + {file = "pydantic_core-2.6.3.tar.gz", hash = "sha256:1508f37ba9e3ddc0189e6ff4e2228bd2d3c3a4641cbe8c07177162f76ed696c7"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" [[package]] name = "pyflakes" @@ -1631,13 +1845,13 @@ files = [ [[package]] name = "pygments" -version = "2.15.1" +version = "2.16.1" description = "Pygments is a syntax highlighting package written in Python." optional = false python-versions = ">=3.7" files = [ - {file = "Pygments-2.15.1-py3-none-any.whl", hash = "sha256:db2db3deb4b4179f399a09054b023b6a586b76499d36965813c71aa8ed7b5fd1"}, - {file = "Pygments-2.15.1.tar.gz", hash = "sha256:8ace4d3c1dd481894b2005f560ead0f9f19ee64fe983366be1a21e171d12775c"}, + {file = "Pygments-2.16.1-py3-none-any.whl", hash = "sha256:13fc09fa63bc8d8671a6d247e1eb303c4b343eaee81d861f3404db2935653692"}, + {file = "Pygments-2.16.1.tar.gz", hash = "sha256:1daff0494820c69bc8941e407aa20f577374ee88364ee10a98fdbe0aece96e29"}, ] [package.extras] @@ -1660,69 +1874,54 @@ jsonasobj = ">=1.2.1" [[package]] name = "pymdown-extensions" -version = "10.0.1" +version = "10.2.1" description = "Extension pack for Python Markdown." optional = false python-versions = ">=3.7" files = [ - {file = "pymdown_extensions-10.0.1-py3-none-any.whl", hash = "sha256:ae66d84013c5d027ce055693e09a4628b67e9dec5bce05727e45b0918e36f274"}, - {file = "pymdown_extensions-10.0.1.tar.gz", hash = "sha256:b44e1093a43b8a975eae17b03c3a77aad4681b3b56fce60ce746dbef1944c8cb"}, + {file = "pymdown_extensions-10.2.1-py3-none-any.whl", hash = "sha256:bded105eb8d93f88f2f821f00108cb70cef1269db6a40128c09c5f48bfc60ea4"}, + {file = "pymdown_extensions-10.2.1.tar.gz", hash = "sha256:d0c534b4a5725a4be7ccef25d65a4c97dba58b54ad7c813babf0eb5ba9c81591"}, ] [package.dependencies] markdown = ">=3.2" pyyaml = "*" +[package.extras] +extra = ["pygments (>=2.12)"] + [[package]] name = "pyparsing" -version = "3.0.9" +version = "3.1.1" description = "pyparsing module - Classes and methods to define and execute parsing grammars" optional = false python-versions = ">=3.6.8" files = [ - {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, - {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, + {file = "pyparsing-3.1.1-py3-none-any.whl", hash = "sha256:32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb"}, + {file = "pyparsing-3.1.1.tar.gz", hash = "sha256:ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db"}, ] [package.extras] diagrams = ["jinja2", "railroad-diagrams"] [[package]] -name = "pyrsistent" -version = "0.19.3" -description = "Persistent/Functional/Immutable data structures" +name = "pyquery" +version = "2.0.0" +description = "A jquery-like library for python" optional = false -python-versions = ">=3.7" +python-versions = "*" files = [ - {file = "pyrsistent-0.19.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:20460ac0ea439a3e79caa1dbd560344b64ed75e85d8703943e0b66c2a6150e4a"}, - {file = "pyrsistent-0.19.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c18264cb84b5e68e7085a43723f9e4c1fd1d935ab240ce02c0324a8e01ccb64"}, - {file = "pyrsistent-0.19.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b774f9288dda8d425adb6544e5903f1fb6c273ab3128a355c6b972b7df39dcf"}, - {file = "pyrsistent-0.19.3-cp310-cp310-win32.whl", hash = "sha256:5a474fb80f5e0d6c9394d8db0fc19e90fa540b82ee52dba7d246a7791712f74a"}, - {file = "pyrsistent-0.19.3-cp310-cp310-win_amd64.whl", hash = "sha256:49c32f216c17148695ca0e02a5c521e28a4ee6c5089f97e34fe24163113722da"}, - {file = "pyrsistent-0.19.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f0774bf48631f3a20471dd7c5989657b639fd2d285b861237ea9e82c36a415a9"}, - {file = "pyrsistent-0.19.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ab2204234c0ecd8b9368dbd6a53e83c3d4f3cab10ecaf6d0e772f456c442393"}, - {file = "pyrsistent-0.19.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e42296a09e83028b3476f7073fcb69ffebac0e66dbbfd1bd847d61f74db30f19"}, - {file = "pyrsistent-0.19.3-cp311-cp311-win32.whl", hash = "sha256:64220c429e42a7150f4bfd280f6f4bb2850f95956bde93c6fda1b70507af6ef3"}, - {file = "pyrsistent-0.19.3-cp311-cp311-win_amd64.whl", hash = "sha256:016ad1afadf318eb7911baa24b049909f7f3bb2c5b1ed7b6a8f21db21ea3faa8"}, - {file = "pyrsistent-0.19.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c4db1bd596fefd66b296a3d5d943c94f4fac5bcd13e99bffe2ba6a759d959a28"}, - {file = "pyrsistent-0.19.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aeda827381f5e5d65cced3024126529ddc4289d944f75e090572c77ceb19adbf"}, - {file = "pyrsistent-0.19.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:42ac0b2f44607eb92ae88609eda931a4f0dfa03038c44c772e07f43e738bcac9"}, - {file = "pyrsistent-0.19.3-cp37-cp37m-win32.whl", hash = "sha256:e8f2b814a3dc6225964fa03d8582c6e0b6650d68a232df41e3cc1b66a5d2f8d1"}, - {file = "pyrsistent-0.19.3-cp37-cp37m-win_amd64.whl", hash = "sha256:c9bb60a40a0ab9aba40a59f68214eed5a29c6274c83b2cc206a359c4a89fa41b"}, - {file = "pyrsistent-0.19.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a2471f3f8693101975b1ff85ffd19bb7ca7dd7c38f8a81701f67d6b4f97b87d8"}, - {file = "pyrsistent-0.19.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc5d149f31706762c1f8bda2e8c4f8fead6e80312e3692619a75301d3dbb819a"}, - {file = "pyrsistent-0.19.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3311cb4237a341aa52ab8448c27e3a9931e2ee09561ad150ba94e4cfd3fc888c"}, - {file = "pyrsistent-0.19.3-cp38-cp38-win32.whl", hash = "sha256:f0e7c4b2f77593871e918be000b96c8107da48444d57005b6a6bc61fb4331b2c"}, - {file = "pyrsistent-0.19.3-cp38-cp38-win_amd64.whl", hash = "sha256:c147257a92374fde8498491f53ffa8f4822cd70c0d85037e09028e478cababb7"}, - {file = "pyrsistent-0.19.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b735e538f74ec31378f5a1e3886a26d2ca6351106b4dfde376a26fc32a044edc"}, - {file = "pyrsistent-0.19.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99abb85579e2165bd8522f0c0138864da97847875ecbd45f3e7e2af569bfc6f2"}, - {file = "pyrsistent-0.19.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a8cb235fa6d3fd7aae6a4f1429bbb1fec1577d978098da1252f0489937786f3"}, - {file = "pyrsistent-0.19.3-cp39-cp39-win32.whl", hash = "sha256:c74bed51f9b41c48366a286395c67f4e894374306b197e62810e0fdaf2364da2"}, - {file = "pyrsistent-0.19.3-cp39-cp39-win_amd64.whl", hash = "sha256:878433581fc23e906d947a6814336eee031a00e6defba224234169ae3d3d6a98"}, - {file = "pyrsistent-0.19.3-py3-none-any.whl", hash = "sha256:ccf0d6bd208f8111179f0c26fdf84ed7c3891982f2edaeae7422575f47e66b64"}, - {file = "pyrsistent-0.19.3.tar.gz", hash = "sha256:1a2994773706bbb4995c31a97bc94f1418314923bd1048c6d964837040376440"}, + {file = "pyquery-2.0.0-py3-none-any.whl", hash = "sha256:8dfc9b4b7c5f877d619bbae74b1898d5743f6ca248cfd5d72b504dd614da312f"}, + {file = "pyquery-2.0.0.tar.gz", hash = "sha256:963e8d4e90262ff6d8dec072ea97285dc374a2f69cad7776f4082abcf6a1d8ae"}, ] +[package.dependencies] +cssselect = ">=1.2.0" +lxml = ">=2.1" + +[package.extras] +test = ["pytest", "pytest-cov", "requests", "webob", "webtest"] + [[package]] name = "pyshex" version = "0.8.1" @@ -1764,39 +1963,15 @@ pyjsg = ">=0.11.10" rdflib-shim = "*" shexjsg = ">=0.8.1" -[[package]] -name = "pystow" -version = "0.5.0" -description = "Easily pick a place to store data for your python package." -optional = false -python-versions = ">=3.7" -files = [ - {file = "pystow-0.5.0-py3-none-any.whl", hash = "sha256:816a9da33cd8a3f8fbda577c3d2957cfc99d1fa3ea45032dbfa087b9a21b630f"}, - {file = "pystow-0.5.0.tar.gz", hash = "sha256:490e9ecbe4f947c72f63297f43f6584323c9ca2f2d48d47f2a22a815dc552bb4"}, -] - -[package.dependencies] -click = "*" -requests = "*" -tqdm = "*" - -[package.extras] -aws = ["boto3"] -docs = ["sphinx", "sphinx-autodoc-typehints", "sphinx-automodapi", "sphinx-click", "sphinx-rtd-theme"] -pandas = ["pandas"] -rdf = ["rdflib"] -tests = ["coverage", "pytest", "requests-file"] -xml = ["lxml"] - [[package]] name = "pytest" -version = "7.3.1" +version = "7.4.0" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.7" files = [ - {file = "pytest-7.3.1-py3-none-any.whl", hash = "sha256:3799fa815351fea3a5e96ac7e503a96fa51cc9942c3753cda7651b93c1cfa362"}, - {file = "pytest-7.3.1.tar.gz", hash = "sha256:434afafd78b1d78ed0addf160ad2b77a30d35d4bdf8af234fe621919d9ed15e3"}, + {file = "pytest-7.4.0-py3-none-any.whl", hash = "sha256:78bf16451a2eb8c7a2ea98e32dc119fd2aa758f1d5d66dbf0a59d69a3969df32"}, + {file = "pytest-7.4.0.tar.gz", hash = "sha256:b4bf8c45bd59934ed84001ad51e11b4ee40d40a1229d2c79f9c592b0a3f6bd8a"}, ] [package.dependencies] @@ -1808,7 +1983,7 @@ pluggy = ">=0.12,<2.0" tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "attrs (>=19.2.0)", "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", "setuptools", "xmlschema"] [[package]] name = "pytest-logging" @@ -1863,51 +2038,51 @@ files = [ [[package]] name = "pyyaml" -version = "6.0" +version = "6.0.1" description = "YAML parser and emitter for Python" optional = false python-versions = ">=3.6" files = [ - {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, - {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, - {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, - {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, - {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"}, - {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"}, - {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"}, - {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"}, - {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, - {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, - {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, - {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, - {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, - {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, - {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, - {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, - {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, - {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, - {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, - {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, + {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, + {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, + {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, + {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, + {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, + {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, ] [[package]] @@ -1974,101 +2149,131 @@ files = [ rdflib = ">=5.0.0" rdflib-jsonld = "0.6.1" +[[package]] +name = "readtime" +version = "3.0.0" +description = "Calculates the time some text takes the average human to read, based on Medium's read time forumula" +optional = false +python-versions = "*" +files = [ + {file = "readtime-3.0.0.tar.gz", hash = "sha256:76c5a0d773ad49858c53b42ba3a942f62fbe20cc8c6f07875797ac7dc30963a9"}, +] + +[package.dependencies] +beautifulsoup4 = ">=4.0.1" +markdown2 = ">=2.4.3" +pyquery = ">=1.2" + +[[package]] +name = "referencing" +version = "0.30.2" +description = "JSON Referencing + Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "referencing-0.30.2-py3-none-any.whl", hash = "sha256:449b6669b6121a9e96a7f9e410b245d471e8d48964c67113ce9afe50c8dd7bdf"}, + {file = "referencing-0.30.2.tar.gz", hash = "sha256:794ad8003c65938edcdbc027f1933215e0d0ccc0291e3ce20a4d87432b59efc0"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +rpds-py = ">=0.7.0" + [[package]] name = "regex" -version = "2023.6.3" +version = "2023.8.8" description = "Alternative regular expression module, to replace re." optional = false python-versions = ">=3.6" files = [ - {file = "regex-2023.6.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:824bf3ac11001849aec3fa1d69abcb67aac3e150a933963fb12bda5151fe1bfd"}, - {file = "regex-2023.6.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:05ed27acdf4465c95826962528f9e8d41dbf9b1aa8531a387dee6ed215a3e9ef"}, - {file = "regex-2023.6.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b49c764f88a79160fa64f9a7b425620e87c9f46095ef9c9920542ab2495c8bc"}, - {file = "regex-2023.6.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8e3f1316c2293e5469f8f09dc2d76efb6c3982d3da91ba95061a7e69489a14ef"}, - {file = "regex-2023.6.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:43e1dd9d12df9004246bacb79a0e5886b3b6071b32e41f83b0acbf293f820ee8"}, - {file = "regex-2023.6.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4959e8bcbfda5146477d21c3a8ad81b185cd252f3d0d6e4724a5ef11c012fb06"}, - {file = "regex-2023.6.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:af4dd387354dc83a3bff67127a124c21116feb0d2ef536805c454721c5d7993d"}, - {file = "regex-2023.6.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2239d95d8e243658b8dbb36b12bd10c33ad6e6933a54d36ff053713f129aa536"}, - {file = "regex-2023.6.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:890e5a11c97cf0d0c550eb661b937a1e45431ffa79803b942a057c4fb12a2da2"}, - {file = "regex-2023.6.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a8105e9af3b029f243ab11ad47c19b566482c150c754e4c717900a798806b222"}, - {file = "regex-2023.6.3-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:25be746a8ec7bc7b082783216de8e9473803706723b3f6bef34b3d0ed03d57e2"}, - {file = "regex-2023.6.3-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:3676f1dd082be28b1266c93f618ee07741b704ab7b68501a173ce7d8d0d0ca18"}, - {file = "regex-2023.6.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:10cb847aeb1728412c666ab2e2000ba6f174f25b2bdc7292e7dd71b16db07568"}, - {file = "regex-2023.6.3-cp310-cp310-win32.whl", hash = "sha256:dbbbfce33cd98f97f6bffb17801b0576e653f4fdb1d399b2ea89638bc8d08ae1"}, - {file = "regex-2023.6.3-cp310-cp310-win_amd64.whl", hash = "sha256:c5f8037000eb21e4823aa485149f2299eb589f8d1fe4b448036d230c3f4e68e0"}, - {file = "regex-2023.6.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c123f662be8ec5ab4ea72ea300359023a5d1df095b7ead76fedcd8babbedf969"}, - {file = "regex-2023.6.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9edcbad1f8a407e450fbac88d89e04e0b99a08473f666a3f3de0fd292badb6aa"}, - {file = "regex-2023.6.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dcba6dae7de533c876255317c11f3abe4907ba7d9aa15d13e3d9710d4315ec0e"}, - {file = "regex-2023.6.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:29cdd471ebf9e0f2fb3cac165efedc3c58db841d83a518b082077e612d3ee5df"}, - {file = "regex-2023.6.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12b74fbbf6cbbf9dbce20eb9b5879469e97aeeaa874145517563cca4029db65c"}, - {file = "regex-2023.6.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c29ca1bd61b16b67be247be87390ef1d1ef702800f91fbd1991f5c4421ebae8"}, - {file = "regex-2023.6.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d77f09bc4b55d4bf7cc5eba785d87001d6757b7c9eec237fe2af57aba1a071d9"}, - {file = "regex-2023.6.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ea353ecb6ab5f7e7d2f4372b1e779796ebd7b37352d290096978fea83c4dba0c"}, - {file = "regex-2023.6.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:10590510780b7541969287512d1b43f19f965c2ece6c9b1c00fc367b29d8dce7"}, - {file = "regex-2023.6.3-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:e2fbd6236aae3b7f9d514312cdb58e6494ee1c76a9948adde6eba33eb1c4264f"}, - {file = "regex-2023.6.3-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:6b2675068c8b56f6bfd5a2bda55b8accbb96c02fd563704732fd1c95e2083461"}, - {file = "regex-2023.6.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:74419d2b50ecb98360cfaa2974da8689cb3b45b9deff0dcf489c0d333bcc1477"}, - {file = "regex-2023.6.3-cp311-cp311-win32.whl", hash = "sha256:fb5ec16523dc573a4b277663a2b5a364e2099902d3944c9419a40ebd56a118f9"}, - {file = "regex-2023.6.3-cp311-cp311-win_amd64.whl", hash = "sha256:09e4a1a6acc39294a36b7338819b10baceb227f7f7dbbea0506d419b5a1dd8af"}, - {file = "regex-2023.6.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:0654bca0cdf28a5956c83839162692725159f4cda8d63e0911a2c0dc76166525"}, - {file = "regex-2023.6.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:463b6a3ceb5ca952e66550a4532cef94c9a0c80dc156c4cc343041951aec1697"}, - {file = "regex-2023.6.3-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:87b2a5bb5e78ee0ad1de71c664d6eb536dc3947a46a69182a90f4410f5e3f7dd"}, - {file = "regex-2023.6.3-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6343c6928282c1f6a9db41f5fd551662310e8774c0e5ebccb767002fcf663ca9"}, - {file = "regex-2023.6.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b6192d5af2ccd2a38877bfef086d35e6659566a335b1492786ff254c168b1693"}, - {file = "regex-2023.6.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:74390d18c75054947e4194019077e243c06fbb62e541d8817a0fa822ea310c14"}, - {file = "regex-2023.6.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:742e19a90d9bb2f4a6cf2862b8b06dea5e09b96c9f2df1779e53432d7275331f"}, - {file = "regex-2023.6.3-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:8abbc5d54ea0ee80e37fef009e3cec5dafd722ed3c829126253d3e22f3846f1e"}, - {file = "regex-2023.6.3-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:c2b867c17a7a7ae44c43ebbeb1b5ff406b3e8d5b3e14662683e5e66e6cc868d3"}, - {file = "regex-2023.6.3-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:d831c2f8ff278179705ca59f7e8524069c1a989e716a1874d6d1aab6119d91d1"}, - {file = "regex-2023.6.3-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:ee2d1a9a253b1729bb2de27d41f696ae893507c7db224436abe83ee25356f5c1"}, - {file = "regex-2023.6.3-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:61474f0b41fe1a80e8dfa70f70ea1e047387b7cd01c85ec88fa44f5d7561d787"}, - {file = "regex-2023.6.3-cp36-cp36m-win32.whl", hash = "sha256:0b71e63226e393b534105fcbdd8740410dc6b0854c2bfa39bbda6b0d40e59a54"}, - {file = "regex-2023.6.3-cp36-cp36m-win_amd64.whl", hash = "sha256:bbb02fd4462f37060122e5acacec78e49c0fbb303c30dd49c7f493cf21fc5b27"}, - {file = "regex-2023.6.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b862c2b9d5ae38a68b92e215b93f98d4c5e9454fa36aae4450f61dd33ff48487"}, - {file = "regex-2023.6.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:976d7a304b59ede34ca2921305b57356694f9e6879db323fd90a80f865d355a3"}, - {file = "regex-2023.6.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:83320a09188e0e6c39088355d423aa9d056ad57a0b6c6381b300ec1a04ec3d16"}, - {file = "regex-2023.6.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9427a399501818a7564f8c90eced1e9e20709ece36be701f394ada99890ea4b3"}, - {file = "regex-2023.6.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7178bbc1b2ec40eaca599d13c092079bf529679bf0371c602edaa555e10b41c3"}, - {file = "regex-2023.6.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:837328d14cde912af625d5f303ec29f7e28cdab588674897baafaf505341f2fc"}, - {file = "regex-2023.6.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2d44dc13229905ae96dd2ae2dd7cebf824ee92bc52e8cf03dcead37d926da019"}, - {file = "regex-2023.6.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d54af539295392611e7efbe94e827311eb8b29668e2b3f4cadcfe6f46df9c777"}, - {file = "regex-2023.6.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:7117d10690c38a622e54c432dfbbd3cbd92f09401d622902c32f6d377e2300ee"}, - {file = "regex-2023.6.3-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bb60b503ec8a6e4e3e03a681072fa3a5adcbfa5479fa2d898ae2b4a8e24c4591"}, - {file = "regex-2023.6.3-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:65ba8603753cec91c71de423a943ba506363b0e5c3fdb913ef8f9caa14b2c7e0"}, - {file = "regex-2023.6.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:271f0bdba3c70b58e6f500b205d10a36fb4b58bd06ac61381b68de66442efddb"}, - {file = "regex-2023.6.3-cp37-cp37m-win32.whl", hash = "sha256:9beb322958aaca059f34975b0df135181f2e5d7a13b84d3e0e45434749cb20f7"}, - {file = "regex-2023.6.3-cp37-cp37m-win_amd64.whl", hash = "sha256:fea75c3710d4f31389eed3c02f62d0b66a9da282521075061ce875eb5300cf23"}, - {file = "regex-2023.6.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8f56fcb7ff7bf7404becdfc60b1e81a6d0561807051fd2f1860b0d0348156a07"}, - {file = "regex-2023.6.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d2da3abc88711bce7557412310dfa50327d5769a31d1c894b58eb256459dc289"}, - {file = "regex-2023.6.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a99b50300df5add73d307cf66abea093304a07eb017bce94f01e795090dea87c"}, - {file = "regex-2023.6.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5708089ed5b40a7b2dc561e0c8baa9535b77771b64a8330b684823cfd5116036"}, - {file = "regex-2023.6.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:687ea9d78a4b1cf82f8479cab23678aff723108df3edeac098e5b2498879f4a7"}, - {file = "regex-2023.6.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4d3850beab9f527f06ccc94b446c864059c57651b3f911fddb8d9d3ec1d1b25d"}, - {file = "regex-2023.6.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e8915cc96abeb8983cea1df3c939e3c6e1ac778340c17732eb63bb96247b91d2"}, - {file = "regex-2023.6.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:841d6e0e5663d4c7b4c8099c9997be748677d46cbf43f9f471150e560791f7ff"}, - {file = "regex-2023.6.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9edce5281f965cf135e19840f4d93d55b3835122aa76ccacfd389e880ba4cf82"}, - {file = "regex-2023.6.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:b956231ebdc45f5b7a2e1f90f66a12be9610ce775fe1b1d50414aac1e9206c06"}, - {file = "regex-2023.6.3-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:36efeba71c6539d23c4643be88295ce8c82c88bbd7c65e8a24081d2ca123da3f"}, - {file = "regex-2023.6.3-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:cf67ca618b4fd34aee78740bea954d7c69fdda419eb208c2c0c7060bb822d747"}, - {file = "regex-2023.6.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b4598b1897837067a57b08147a68ac026c1e73b31ef6e36deeeb1fa60b2933c9"}, - {file = "regex-2023.6.3-cp38-cp38-win32.whl", hash = "sha256:f415f802fbcafed5dcc694c13b1292f07fe0befdb94aa8a52905bd115ff41e88"}, - {file = "regex-2023.6.3-cp38-cp38-win_amd64.whl", hash = "sha256:d4f03bb71d482f979bda92e1427f3ec9b220e62a7dd337af0aa6b47bf4498f72"}, - {file = "regex-2023.6.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ccf91346b7bd20c790310c4147eee6ed495a54ddb6737162a36ce9dbef3e4751"}, - {file = "regex-2023.6.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b28f5024a3a041009eb4c333863d7894d191215b39576535c6734cd88b0fcb68"}, - {file = "regex-2023.6.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e0bb18053dfcfed432cc3ac632b5e5e5c5b7e55fb3f8090e867bfd9b054dbcbf"}, - {file = "regex-2023.6.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a5bfb3004f2144a084a16ce19ca56b8ac46e6fd0651f54269fc9e230edb5e4a"}, - {file = "regex-2023.6.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c6b48d0fa50d8f4df3daf451be7f9689c2bde1a52b1225c5926e3f54b6a9ed1"}, - {file = "regex-2023.6.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:051da80e6eeb6e239e394ae60704d2b566aa6a7aed6f2890a7967307267a5dc6"}, - {file = "regex-2023.6.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a4c3b7fa4cdaa69268748665a1a6ff70c014d39bb69c50fda64b396c9116cf77"}, - {file = "regex-2023.6.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:457b6cce21bee41ac292d6753d5e94dcbc5c9e3e3a834da285b0bde7aa4a11e9"}, - {file = "regex-2023.6.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:aad51907d74fc183033ad796dd4c2e080d1adcc4fd3c0fd4fd499f30c03011cd"}, - {file = "regex-2023.6.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:0385e73da22363778ef2324950e08b689abdf0b108a7d8decb403ad7f5191938"}, - {file = "regex-2023.6.3-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:c6a57b742133830eec44d9b2290daf5cbe0a2f1d6acee1b3c7b1c7b2f3606df7"}, - {file = "regex-2023.6.3-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:3e5219bf9e75993d73ab3d25985c857c77e614525fac9ae02b1bebd92f7cecac"}, - {file = "regex-2023.6.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e5087a3c59eef624a4591ef9eaa6e9a8d8a94c779dade95d27c0bc24650261cd"}, - {file = "regex-2023.6.3-cp39-cp39-win32.whl", hash = "sha256:20326216cc2afe69b6e98528160b225d72f85ab080cbdf0b11528cbbaba2248f"}, - {file = "regex-2023.6.3-cp39-cp39-win_amd64.whl", hash = "sha256:bdff5eab10e59cf26bc479f565e25ed71a7d041d1ded04ccf9aee1d9f208487a"}, - {file = "regex-2023.6.3.tar.gz", hash = "sha256:72d1a25bf36d2050ceb35b517afe13864865268dfb45910e2e17a84be6cbfeb0"}, + {file = "regex-2023.8.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:88900f521c645f784260a8d346e12a1590f79e96403971241e64c3a265c8ecdb"}, + {file = "regex-2023.8.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3611576aff55918af2697410ff0293d6071b7e00f4b09e005d614686ac4cd57c"}, + {file = "regex-2023.8.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b8a0ccc8f2698f120e9e5742f4b38dc944c38744d4bdfc427616f3a163dd9de5"}, + {file = "regex-2023.8.8-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c662a4cbdd6280ee56f841f14620787215a171c4e2d1744c9528bed8f5816c96"}, + {file = "regex-2023.8.8-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cf0633e4a1b667bfe0bb10b5e53fe0d5f34a6243ea2530eb342491f1adf4f739"}, + {file = "regex-2023.8.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:551ad543fa19e94943c5b2cebc54c73353ffff08228ee5f3376bd27b3d5b9800"}, + {file = "regex-2023.8.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54de2619f5ea58474f2ac211ceea6b615af2d7e4306220d4f3fe690c91988a61"}, + {file = "regex-2023.8.8-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5ec4b3f0aebbbe2fc0134ee30a791af522a92ad9f164858805a77442d7d18570"}, + {file = "regex-2023.8.8-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3ae646c35cb9f820491760ac62c25b6d6b496757fda2d51be429e0e7b67ae0ab"}, + {file = "regex-2023.8.8-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:ca339088839582d01654e6f83a637a4b8194d0960477b9769d2ff2cfa0fa36d2"}, + {file = "regex-2023.8.8-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:d9b6627408021452dcd0d2cdf8da0534e19d93d070bfa8b6b4176f99711e7f90"}, + {file = "regex-2023.8.8-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:bd3366aceedf274f765a3a4bc95d6cd97b130d1dda524d8f25225d14123c01db"}, + {file = "regex-2023.8.8-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7aed90a72fc3654fba9bc4b7f851571dcc368120432ad68b226bd593f3f6c0b7"}, + {file = "regex-2023.8.8-cp310-cp310-win32.whl", hash = "sha256:80b80b889cb767cc47f31d2b2f3dec2db8126fbcd0cff31b3925b4dc6609dcdb"}, + {file = "regex-2023.8.8-cp310-cp310-win_amd64.whl", hash = "sha256:b82edc98d107cbc7357da7a5a695901b47d6eb0420e587256ba3ad24b80b7d0b"}, + {file = "regex-2023.8.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1e7d84d64c84ad97bf06f3c8cb5e48941f135ace28f450d86af6b6512f1c9a71"}, + {file = "regex-2023.8.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ce0f9fbe7d295f9922c0424a3637b88c6c472b75eafeaff6f910494a1fa719ef"}, + {file = "regex-2023.8.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:06c57e14ac723b04458df5956cfb7e2d9caa6e9d353c0b4c7d5d54fcb1325c46"}, + {file = "regex-2023.8.8-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e7a9aaa5a1267125eef22cef3b63484c3241aaec6f48949b366d26c7250e0357"}, + {file = "regex-2023.8.8-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b7408511fca48a82a119d78a77c2f5eb1b22fe88b0d2450ed0756d194fe7a9a"}, + {file = "regex-2023.8.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14dc6f2d88192a67d708341f3085df6a4f5a0c7b03dec08d763ca2cd86e9f559"}, + {file = "regex-2023.8.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48c640b99213643d141550326f34f0502fedb1798adb3c9eb79650b1ecb2f177"}, + {file = "regex-2023.8.8-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0085da0f6c6393428bf0d9c08d8b1874d805bb55e17cb1dfa5ddb7cfb11140bf"}, + {file = "regex-2023.8.8-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:964b16dcc10c79a4a2be9f1273fcc2684a9eedb3906439720598029a797b46e6"}, + {file = "regex-2023.8.8-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7ce606c14bb195b0e5108544b540e2c5faed6843367e4ab3deb5c6aa5e681208"}, + {file = "regex-2023.8.8-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:40f029d73b10fac448c73d6eb33d57b34607f40116e9f6e9f0d32e9229b147d7"}, + {file = "regex-2023.8.8-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3b8e6ea6be6d64104d8e9afc34c151926f8182f84e7ac290a93925c0db004bfd"}, + {file = "regex-2023.8.8-cp311-cp311-win32.whl", hash = "sha256:942f8b1f3b223638b02df7df79140646c03938d488fbfb771824f3d05fc083a8"}, + {file = "regex-2023.8.8-cp311-cp311-win_amd64.whl", hash = "sha256:51d8ea2a3a1a8fe4f67de21b8b93757005213e8ac3917567872f2865185fa7fb"}, + {file = "regex-2023.8.8-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e951d1a8e9963ea51efd7f150450803e3b95db5939f994ad3d5edac2b6f6e2b4"}, + {file = "regex-2023.8.8-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:704f63b774218207b8ccc6c47fcef5340741e5d839d11d606f70af93ee78e4d4"}, + {file = "regex-2023.8.8-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:22283c769a7b01c8ac355d5be0715bf6929b6267619505e289f792b01304d898"}, + {file = "regex-2023.8.8-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:91129ff1bb0619bc1f4ad19485718cc623a2dc433dff95baadbf89405c7f6b57"}, + {file = "regex-2023.8.8-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de35342190deb7b866ad6ba5cbcccb2d22c0487ee0cbb251efef0843d705f0d4"}, + {file = "regex-2023.8.8-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b993b6f524d1e274a5062488a43e3f9f8764ee9745ccd8e8193df743dbe5ee61"}, + {file = "regex-2023.8.8-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3026cbcf11d79095a32d9a13bbc572a458727bd5b1ca332df4a79faecd45281c"}, + {file = "regex-2023.8.8-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:293352710172239bf579c90a9864d0df57340b6fd21272345222fb6371bf82b3"}, + {file = "regex-2023.8.8-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:d909b5a3fff619dc7e48b6b1bedc2f30ec43033ba7af32f936c10839e81b9217"}, + {file = "regex-2023.8.8-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:3d370ff652323c5307d9c8e4c62efd1956fb08051b0e9210212bc51168b4ff56"}, + {file = "regex-2023.8.8-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:b076da1ed19dc37788f6a934c60adf97bd02c7eea461b73730513921a85d4235"}, + {file = "regex-2023.8.8-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:e9941a4ada58f6218694f382e43fdd256e97615db9da135e77359da257a7168b"}, + {file = "regex-2023.8.8-cp36-cp36m-win32.whl", hash = "sha256:a8c65c17aed7e15a0c824cdc63a6b104dfc530f6fa8cb6ac51c437af52b481c7"}, + {file = "regex-2023.8.8-cp36-cp36m-win_amd64.whl", hash = "sha256:aadf28046e77a72f30dcc1ab185639e8de7f4104b8cb5c6dfa5d8ed860e57236"}, + {file = "regex-2023.8.8-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:423adfa872b4908843ac3e7a30f957f5d5282944b81ca0a3b8a7ccbbfaa06103"}, + {file = "regex-2023.8.8-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ae594c66f4a7e1ea67232a0846649a7c94c188d6c071ac0210c3e86a5f92109"}, + {file = "regex-2023.8.8-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e51c80c168074faa793685656c38eb7a06cbad7774c8cbc3ea05552d615393d8"}, + {file = "regex-2023.8.8-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:09b7f4c66aa9d1522b06e31a54f15581c37286237208df1345108fcf4e050c18"}, + {file = "regex-2023.8.8-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e73e5243af12d9cd6a9d6a45a43570dbe2e5b1cdfc862f5ae2b031e44dd95a8"}, + {file = "regex-2023.8.8-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:941460db8fe3bd613db52f05259c9336f5a47ccae7d7def44cc277184030a116"}, + {file = "regex-2023.8.8-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f0ccf3e01afeb412a1a9993049cb160d0352dba635bbca7762b2dc722aa5742a"}, + {file = "regex-2023.8.8-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:2e9216e0d2cdce7dbc9be48cb3eacb962740a09b011a116fd7af8c832ab116ca"}, + {file = "regex-2023.8.8-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:5cd9cd7170459b9223c5e592ac036e0704bee765706445c353d96f2890e816c8"}, + {file = "regex-2023.8.8-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:4873ef92e03a4309b3ccd8281454801b291b689f6ad45ef8c3658b6fa761d7ac"}, + {file = "regex-2023.8.8-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:239c3c2a339d3b3ddd51c2daef10874410917cd2b998f043c13e2084cb191684"}, + {file = "regex-2023.8.8-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:1005c60ed7037be0d9dea1f9c53cc42f836188227366370867222bda4c3c6bd7"}, + {file = "regex-2023.8.8-cp37-cp37m-win32.whl", hash = "sha256:e6bd1e9b95bc5614a7a9c9c44fde9539cba1c823b43a9f7bc11266446dd568e3"}, + {file = "regex-2023.8.8-cp37-cp37m-win_amd64.whl", hash = "sha256:9a96edd79661e93327cfeac4edec72a4046e14550a1d22aa0dd2e3ca52aec921"}, + {file = "regex-2023.8.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f2181c20ef18747d5f4a7ea513e09ea03bdd50884a11ce46066bb90fe4213675"}, + {file = "regex-2023.8.8-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a2ad5add903eb7cdde2b7c64aaca405f3957ab34f16594d2b78d53b8b1a6a7d6"}, + {file = "regex-2023.8.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9233ac249b354c54146e392e8a451e465dd2d967fc773690811d3a8c240ac601"}, + {file = "regex-2023.8.8-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:920974009fb37b20d32afcdf0227a2e707eb83fe418713f7a8b7de038b870d0b"}, + {file = "regex-2023.8.8-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd2b6c5dfe0929b6c23dde9624483380b170b6e34ed79054ad131b20203a1a63"}, + {file = "regex-2023.8.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96979d753b1dc3b2169003e1854dc67bfc86edf93c01e84757927f810b8c3c93"}, + {file = "regex-2023.8.8-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2ae54a338191e1356253e7883d9d19f8679b6143703086245fb14d1f20196be9"}, + {file = "regex-2023.8.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2162ae2eb8b079622176a81b65d486ba50b888271302190870b8cc488587d280"}, + {file = "regex-2023.8.8-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:c884d1a59e69e03b93cf0dfee8794c63d7de0ee8f7ffb76e5f75be8131b6400a"}, + {file = "regex-2023.8.8-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:cf9273e96f3ee2ac89ffcb17627a78f78e7516b08f94dc435844ae72576a276e"}, + {file = "regex-2023.8.8-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:83215147121e15d5f3a45d99abeed9cf1fe16869d5c233b08c56cdf75f43a504"}, + {file = "regex-2023.8.8-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:3f7454aa427b8ab9101f3787eb178057c5250478e39b99540cfc2b889c7d0586"}, + {file = "regex-2023.8.8-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f0640913d2c1044d97e30d7c41728195fc37e54d190c5385eacb52115127b882"}, + {file = "regex-2023.8.8-cp38-cp38-win32.whl", hash = "sha256:0c59122ceccb905a941fb23b087b8eafc5290bf983ebcb14d2301febcbe199c7"}, + {file = "regex-2023.8.8-cp38-cp38-win_amd64.whl", hash = "sha256:c12f6f67495ea05c3d542d119d270007090bad5b843f642d418eb601ec0fa7be"}, + {file = "regex-2023.8.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:82cd0a69cd28f6cc3789cc6adeb1027f79526b1ab50b1f6062bbc3a0ccb2dbc3"}, + {file = "regex-2023.8.8-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:bb34d1605f96a245fc39790a117ac1bac8de84ab7691637b26ab2c5efb8f228c"}, + {file = "regex-2023.8.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:987b9ac04d0b38ef4f89fbc035e84a7efad9cdd5f1e29024f9289182c8d99e09"}, + {file = "regex-2023.8.8-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9dd6082f4e2aec9b6a0927202c85bc1b09dcab113f97265127c1dc20e2e32495"}, + {file = "regex-2023.8.8-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7eb95fe8222932c10d4436e7a6f7c99991e3fdd9f36c949eff16a69246dee2dc"}, + {file = "regex-2023.8.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7098c524ba9f20717a56a8d551d2ed491ea89cbf37e540759ed3b776a4f8d6eb"}, + {file = "regex-2023.8.8-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b694430b3f00eb02c594ff5a16db30e054c1b9589a043fe9174584c6efa8033"}, + {file = "regex-2023.8.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b2aeab3895d778155054abea5238d0eb9a72e9242bd4b43f42fd911ef9a13470"}, + {file = "regex-2023.8.8-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:988631b9d78b546e284478c2ec15c8a85960e262e247b35ca5eaf7ee22f6050a"}, + {file = "regex-2023.8.8-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:67ecd894e56a0c6108ec5ab1d8fa8418ec0cff45844a855966b875d1039a2e34"}, + {file = "regex-2023.8.8-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:14898830f0a0eb67cae2bbbc787c1a7d6e34ecc06fbd39d3af5fe29a4468e2c9"}, + {file = "regex-2023.8.8-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:f2200e00b62568cfd920127782c61bc1c546062a879cdc741cfcc6976668dfcf"}, + {file = "regex-2023.8.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9691a549c19c22d26a4f3b948071e93517bdf86e41b81d8c6ac8a964bb71e5a6"}, + {file = "regex-2023.8.8-cp39-cp39-win32.whl", hash = "sha256:6ab2ed84bf0137927846b37e882745a827458689eb969028af8032b1b3dac78e"}, + {file = "regex-2023.8.8-cp39-cp39-win_amd64.whl", hash = "sha256:5543c055d8ec7801901e1193a51570643d6a6ab8751b1f7dd9af71af467538bb"}, + {file = "regex-2023.8.8.tar.gz", hash = "sha256:fcbdc5f2b0f1cd0f6a56cdb46fe41d2cce1e644e3b68832f3eeebc5fb0f7712e"}, ] [[package]] @@ -2117,15 +2322,121 @@ files = [ {file = "rfc3987-1.3.8.tar.gz", hash = "sha256:d3c4d257a560d544e9826b38bc81db676890c79ab9d7ac92b39c7a253d5ca733"}, ] +[[package]] +name = "rpds-py" +version = "0.10.0" +description = "Python bindings to Rust's persistent data structures (rpds)" +optional = false +python-versions = ">=3.8" +files = [ + {file = "rpds_py-0.10.0-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:c1e0e9916301e3b3d970814b1439ca59487f0616d30f36a44cead66ee1748c31"}, + {file = "rpds_py-0.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8ce8caa29ebbdcde67e5fd652c811d34bc01f249dbc0d61e5cc4db05ae79a83b"}, + {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad277f74b1c164f7248afa968700e410651eb858d7c160d109fb451dc45a2f09"}, + {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8e1c68303ccf7fceb50fbab79064a2636119fd9aca121f28453709283dbca727"}, + {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:780fcb855be29153901c67fc9c5633d48aebef21b90aa72812fa181d731c6b00"}, + {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bbd7b24d108509a1b9b6679fcc1166a7dd031dbef1f3c2c73788f42e3ebb3beb"}, + {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0700c2133ba203c4068aaecd6a59bda22e06a5e46255c9da23cbf68c6942215d"}, + {file = "rpds_py-0.10.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:576da63eae7809f375932bfcbca2cf20620a1915bf2fedce4b9cc8491eceefe3"}, + {file = "rpds_py-0.10.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:23750a9b8a329844ba1fe267ca456bb3184984da2880ed17ae641c5af8de3fef"}, + {file = "rpds_py-0.10.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:d08395595c42bcd82c3608762ce734504c6d025eef1c06f42326a6023a584186"}, + {file = "rpds_py-0.10.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1d7b7b71bcb82d8713c7c2e9c5f061415598af5938666beded20d81fa23e7640"}, + {file = "rpds_py-0.10.0-cp310-none-win32.whl", hash = "sha256:97f5811df21703446b42303475b8b855ee07d6ab6cdf8565eff115540624f25d"}, + {file = "rpds_py-0.10.0-cp310-none-win_amd64.whl", hash = "sha256:cdbed8f21204398f47de39b0a9b180d7e571f02dfb18bf5f1b618e238454b685"}, + {file = "rpds_py-0.10.0-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:7a3a3d3e4f1e3cd2a67b93a0b6ed0f2499e33f47cc568e3a0023e405abdc0ff1"}, + {file = "rpds_py-0.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fc72ae476732cdb7b2c1acb5af23b478b8a0d4b6fcf19b90dd150291e0d5b26b"}, + {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c0583f69522732bdd79dca4cd3873e63a29acf4a299769c7541f2ca1e4dd4bc6"}, + {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f8b9a7cd381970e64849070aca7c32d53ab7d96c66db6c2ef7aa23c6e803f514"}, + {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0d292cabd7c8335bdd3237ded442480a249dbcdb4ddfac5218799364a01a0f5c"}, + {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6903cdca64f1e301af9be424798328c1fe3b4b14aede35f04510989fc72f012"}, + {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bed57543c99249ab3a4586ddc8786529fbc33309e5e8a1351802a06ca2baf4c2"}, + {file = "rpds_py-0.10.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:15932ec5f224b0e35764dc156514533a4fca52dcfda0dfbe462a1a22b37efd59"}, + {file = "rpds_py-0.10.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:eb2d59bc196e6d3b1827c7db06c1a898bfa0787c0574af398e65ccf2e97c0fbe"}, + {file = "rpds_py-0.10.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f99d74ddf9d3b6126b509e81865f89bd1283e3fc1b568b68cd7bd9dfa15583d7"}, + {file = "rpds_py-0.10.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f70bec8a14a692be6dbe7ce8aab303e88df891cbd4a39af091f90b6702e28055"}, + {file = "rpds_py-0.10.0-cp311-none-win32.whl", hash = "sha256:5f7487be65b9c2c510819e744e375bd41b929a97e5915c4852a82fbb085df62c"}, + {file = "rpds_py-0.10.0-cp311-none-win_amd64.whl", hash = "sha256:748e472345c3a82cfb462d0dff998a7bf43e621eed73374cb19f307e97e08a83"}, + {file = "rpds_py-0.10.0-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:d4639111e73997567343df6551da9dd90d66aece1b9fc26c786d328439488103"}, + {file = "rpds_py-0.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f4760e1b02173f4155203054f77a5dc0b4078de7645c922b208d28e7eb99f3e2"}, + {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a6420a36975e0073acaeee44ead260c1f6ea56812cfc6c31ec00c1c48197173"}, + {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:58fc4d66ee349a23dbf08c7e964120dc9027059566e29cf0ce6205d590ed7eca"}, + {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:063411228b852fb2ed7485cf91f8e7d30893e69b0acb207ec349db04cccc8225"}, + {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65af12f70355de29e1092f319f85a3467f4005e959ab65129cb697169ce94b86"}, + {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:298e8b5d8087e0330aac211c85428c8761230ef46a1f2c516d6a2f67fb8803c5"}, + {file = "rpds_py-0.10.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5b9bf77008f2c55dabbd099fd3ac87009471d223a1c7ebea36873d39511b780a"}, + {file = "rpds_py-0.10.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c7853f27195598e550fe089f78f0732c66ee1d1f0eaae8ad081589a5a2f5d4af"}, + {file = "rpds_py-0.10.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:75dbfd41a61bc1fb0536bf7b1abf272dc115c53d4d77db770cd65d46d4520882"}, + {file = "rpds_py-0.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b25136212a3d064a8f0b9ebbb6c57094c5229e0de76d15c79b76feff26aeb7b8"}, + {file = "rpds_py-0.10.0-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:9affee8cb1ec453382c27eb9043378ab32f49cd4bc24a24275f5c39bf186c279"}, + {file = "rpds_py-0.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4d55528ef13af4b4e074d067977b1f61408602f53ae4537dccf42ba665c2c7bd"}, + {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7865df1fb564092bcf46dac61b5def25342faf6352e4bc0e61a286e3fa26a3d"}, + {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3f5cc8c7bc99d2bbcd704cef165ca7d155cd6464c86cbda8339026a42d219397"}, + {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cbae50d352e4717ffc22c566afc2d0da744380e87ed44a144508e3fb9114a3f4"}, + {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fccbf0cd3411719e4c9426755df90bf3449d9fc5a89f077f4a7f1abd4f70c910"}, + {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78d10c431073dc6ebceed35ab22948a016cc2b5120963c13a41e38bdde4a7212"}, + {file = "rpds_py-0.10.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1b401e8b9aece651512e62c431181e6e83048a651698a727ea0eb0699e9f9b74"}, + {file = "rpds_py-0.10.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:7618a082c55cf038eede4a918c1001cc8a4411dfe508dc762659bcd48d8f4c6e"}, + {file = "rpds_py-0.10.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:b3226b246facae14909b465061ddcfa2dfeadb6a64f407f24300d42d69bcb1a1"}, + {file = "rpds_py-0.10.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a8edd467551c1102dc0f5754ab55cd0703431cd3044edf8c8e7d9208d63fa453"}, + {file = "rpds_py-0.10.0-cp38-none-win32.whl", hash = "sha256:71333c22f7cf5f0480b59a0aef21f652cf9bbaa9679ad261b405b65a57511d1e"}, + {file = "rpds_py-0.10.0-cp38-none-win_amd64.whl", hash = "sha256:a8ab1adf04ae2d6d65835995218fd3f3eb644fe20655ca8ee233e2c7270ff53b"}, + {file = "rpds_py-0.10.0-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:87c93b25d538c433fb053da6228c6290117ba53ff6a537c133b0f2087948a582"}, + {file = "rpds_py-0.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e7996aed3f65667c6dcc8302a69368435a87c2364079a066750a2eac75ea01e"}, + {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8856aa76839dc234d3469f1e270918ce6bec1d6a601eba928f45d68a15f04fc3"}, + {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:00215f6a9058fbf84f9d47536902558eb61f180a6b2a0fa35338d06ceb9a2e5a"}, + {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23a059143c1393015c68936370cce11690f7294731904bdae47cc3e16d0b2474"}, + {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e5c26905aa651cc8c0ddc45e0e5dea2a1296f70bdc96af17aee9d0493280a17"}, + {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c651847545422c8131660704c58606d841e228ed576c8f1666d98b3d318f89da"}, + {file = "rpds_py-0.10.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:80992eb20755701753e30a6952a96aa58f353d12a65ad3c9d48a8da5ec4690cf"}, + {file = "rpds_py-0.10.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ffcf18ad3edf1c170e27e88b10282a2c449aa0358659592462448d71b2000cfc"}, + {file = "rpds_py-0.10.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:08e08ccf5b10badb7d0a5c84829b914c6e1e1f3a716fdb2bf294e2bd01562775"}, + {file = "rpds_py-0.10.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7150b83b3e3ddaac81a8bb6a9b5f93117674a0e7a2b5a5b32ab31fdfea6df27f"}, + {file = "rpds_py-0.10.0-cp39-none-win32.whl", hash = "sha256:3455ecc46ea443b5f7d9c2f946ce4017745e017b0d0f8b99c92564eff97e97f5"}, + {file = "rpds_py-0.10.0-cp39-none-win_amd64.whl", hash = "sha256:afe6b5a04b2ab1aa89bad32ca47bf71358e7302a06fdfdad857389dca8fb5f04"}, + {file = "rpds_py-0.10.0-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:b1cb078f54af0abd835ca76f93a3152565b73be0f056264da45117d0adf5e99c"}, + {file = "rpds_py-0.10.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8e7e2b3577e97fa43c2c2b12a16139b2cedbd0770235d5179c0412b4794efd9b"}, + {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae46a50d235f1631d9ec4670503f7b30405103034830bc13df29fd947207f795"}, + {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f869e34d2326e417baee430ae998e91412cc8e7fdd83d979277a90a0e79a5b47"}, + {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3d544a614055b131111bed6edfa1cb0fb082a7265761bcb03321f2dd7b5c6c48"}, + {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ee9c2f6ca9774c2c24bbf7b23086264e6b5fa178201450535ec0859739e6f78d"}, + {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2da4a8c6d465fde36cea7d54bf47b5cf089073452f0e47c8632ecb9dec23c07"}, + {file = "rpds_py-0.10.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ac00c41dd315d147b129976204839ca9de699d83519ff1272afbe4fb9d362d12"}, + {file = "rpds_py-0.10.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:0155c33af0676fc38e1107679be882077680ad1abb6303956b97259c3177e85e"}, + {file = "rpds_py-0.10.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:db6585b600b2e76e98131e0ac0e5195759082b51687ad0c94505970c90718f4a"}, + {file = "rpds_py-0.10.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:7b6975d3763d0952c111700c0634968419268e6bbc0b55fe71138987fa66f309"}, + {file = "rpds_py-0.10.0-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:6388e4e95a26717b94a05ced084e19da4d92aca883f392dffcf8e48c8e221a24"}, + {file = "rpds_py-0.10.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:18f87baa20e02e9277ad8960cd89b63c79c05caf106f4c959a9595c43f2a34a5"}, + {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92f05fc7d832e970047662b3440b190d24ea04f8d3c760e33e7163b67308c878"}, + {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:291c9ce3929a75b45ce8ddde2aa7694fc8449f2bc8f5bd93adf021efaae2d10b"}, + {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:861d25ae0985a1dd5297fee35f476b60c6029e2e6e19847d5b4d0a43a390b696"}, + {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:668d2b45d62c68c7a370ac3dce108ffda482b0a0f50abd8b4c604a813a59e08f"}, + {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:344b89384c250ba6a4ce1786e04d01500e4dac0f4137ceebcaad12973c0ac0b3"}, + {file = "rpds_py-0.10.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:885e023e73ce09b11b89ab91fc60f35d80878d2c19d6213a32b42ff36543c291"}, + {file = "rpds_py-0.10.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:841128a22e6ac04070a0f84776d07e9c38c4dcce8e28792a95e45fc621605517"}, + {file = "rpds_py-0.10.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:899b5e7e2d5a8bc92aa533c2d4e55e5ebba095c485568a5e4bedbc163421259a"}, + {file = "rpds_py-0.10.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:e7947d9a6264c727a556541b1630296bbd5d0a05068d21c38dde8e7a1c703ef0"}, + {file = "rpds_py-0.10.0-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:4992266817169997854f81df7f6db7bdcda1609972d8ffd6919252f09ec3c0f6"}, + {file = "rpds_py-0.10.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:26d9fd624649a10e4610fab2bc820e215a184d193e47d0be7fe53c1c8f67f370"}, + {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0028eb0967942d0d2891eae700ae1a27b7fd18604cfcb16a1ef486a790fee99e"}, + {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f9e7e493ded7042712a374471203dd43ae3fff5b81e3de1a0513fa241af9fd41"}, + {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2d68a8e8a3a816629283faf82358d8c93fe5bd974dd2704152394a3de4cec22a"}, + {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d6d5f061f6a2aa55790b9e64a23dfd87b6664ab56e24cd06c78eb43986cb260b"}, + {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c7c4266c1b61eb429e8aeb7d8ed6a3bfe6c890a1788b18dbec090c35c6b93fa"}, + {file = "rpds_py-0.10.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:80772e3bda6787510d9620bc0c7572be404a922f8ccdfd436bf6c3778119464c"}, + {file = "rpds_py-0.10.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:b98e75b21fc2ba5285aef8efaf34131d16af1c38df36bdca2f50634bea2d3060"}, + {file = "rpds_py-0.10.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:d63787f289944cc4bde518ad2b5e70a4f0d6e2ce76324635359c74c113fd188f"}, + {file = "rpds_py-0.10.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:872f3dcaa8bf2245944861d7311179d2c0c9b2aaa7d3b464d99a7c2e401f01fa"}, + {file = "rpds_py-0.10.0.tar.gz", hash = "sha256:e36d7369363d2707d5f68950a64c4e025991eb0177db01ccb6aa6facae48b69f"}, +] + [[package]] name = "ruamel-yaml" -version = "0.17.31" +version = "0.17.32" description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order" optional = false python-versions = ">=3" files = [ - {file = "ruamel.yaml-0.17.31-py3-none-any.whl", hash = "sha256:3cf153f0047ced526e723097ac615d3009371779432e304dbd5596b6f3a4c777"}, - {file = "ruamel.yaml-0.17.31.tar.gz", hash = "sha256:098ed1eb6d338a684891a72380277c1e6fc4d4ae0e120de9a447275056dda335"}, + {file = "ruamel.yaml-0.17.32-py3-none-any.whl", hash = "sha256:23cd2ed620231677564646b0c6a89d138b6822a0d78656df7abda5879ec4f447"}, + {file = "ruamel.yaml-0.17.32.tar.gz", hash = "sha256:ec939063761914e14542972a5cba6d33c23b0859ab6342f61cf070cfc600efc2"}, ] [package.dependencies] @@ -2221,18 +2532,18 @@ test = ["asv", "gmpy2", "mpmath", "pytest", "pytest-cov", "pytest-xdist", "sciki [[package]] name = "setuptools" -version = "67.8.0" +version = "68.1.2" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "setuptools-67.8.0-py3-none-any.whl", hash = "sha256:5df61bf30bb10c6f756eb19e7c9f3b473051f48db77fddbe06ff2ca307df9a6f"}, - {file = "setuptools-67.8.0.tar.gz", hash = "sha256:62642358adc77ffa87233bc4d2354c4b2682d214048f500964dbe760ccedf102"}, + {file = "setuptools-68.1.2-py3-none-any.whl", hash = "sha256:3d8083eed2d13afc9426f227b24fd1659489ec107c0e86cec2ffdde5c92e790b"}, + {file = "setuptools-68.1.2.tar.gz", hash = "sha256:3d4dfa6d95f1b101d695a6160a7626e15583af71a5f52176efa5d39a054d475d"}, ] [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-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"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5,<=7.1.2)", "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-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "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]] @@ -2331,60 +2642,60 @@ pandas = ["pandas (>=1.3.5)"] [[package]] name = "sqlalchemy" -version = "2.0.15" +version = "2.0.20" description = "Database Abstraction Library" optional = false python-versions = ">=3.7" files = [ - {file = "SQLAlchemy-2.0.15-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:78303719c6f72af97814b0072ad18bee72e70adca8d95cf8fecd59c5e1ddb040"}, - {file = "SQLAlchemy-2.0.15-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9d810b4aacd5ef4e293aa4ea01f19fca53999e9edcfc4a8ef1146238b30bdc28"}, - {file = "SQLAlchemy-2.0.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3fb5d09f1d51480f711b69fe28ad42e4f8b08600a85ab2473baee669e1257800"}, - {file = "SQLAlchemy-2.0.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51b19887c96d405599880da6a7cbdf8545a7e78ec5683e46a43bac8885e32d0f"}, - {file = "SQLAlchemy-2.0.15-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d6b17cb86908e7f88be14007d6afe7d2ab11966e373044137f96a6a4d83eb21c"}, - {file = "SQLAlchemy-2.0.15-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:df25052b92bd514357a9b370d74f240db890ea79aaa428fb893520e10ee5bc18"}, - {file = "SQLAlchemy-2.0.15-cp310-cp310-win32.whl", hash = "sha256:55ec62ddc0200b4fee94d11abbec7aa25948d5d21cb8df8807f4bdd3c51ba44b"}, - {file = "SQLAlchemy-2.0.15-cp310-cp310-win_amd64.whl", hash = "sha256:ae1d8deb391ab39cc8f0d5844e588a115ae3717e607d91482023917f920f777f"}, - {file = "SQLAlchemy-2.0.15-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4670ce853cb25f72115a1bbe366ae13cf3f28fc5c87222df14f8d3d55d51816e"}, - {file = "SQLAlchemy-2.0.15-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cea7c4a3dfc2ca61f88a2b1ddd6b0bfbd116c9b1a361b3b66fd826034b833142"}, - {file = "SQLAlchemy-2.0.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f5784dfb2d45c19cde03c45c04a54bf47428610106197ed6e6fa79f33bc63d3"}, - {file = "SQLAlchemy-2.0.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b31ebde27575b3b0708673ec14f0c305c4564d995b545148ab7ac0f4d9b847a"}, - {file = "SQLAlchemy-2.0.15-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6b42913a0259267e9ee335da0c36498077799e59c5e332d506e72b4f32de781d"}, - {file = "SQLAlchemy-2.0.15-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6a3f8020e013e9b3b7941dcf20b0fc8f7429daaf7158760846731cbd8caa5e45"}, - {file = "SQLAlchemy-2.0.15-cp311-cp311-win32.whl", hash = "sha256:88ab245ed2c96265441ed2818977be28c840cfa5204ba167425d6c26eb67b7e7"}, - {file = "SQLAlchemy-2.0.15-cp311-cp311-win_amd64.whl", hash = "sha256:5cc48a7fda2b5c5b8860494d6c575db3a101a68416492105fed6591dc8a2728a"}, - {file = "SQLAlchemy-2.0.15-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:f6fd3c88ea4b170d13527e93be1945e69facd917661d3725a63470eb683fbffe"}, - {file = "SQLAlchemy-2.0.15-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e885dacb167077df15af2f9ccdacbd7f5dd0d538a6d74b94074f2cefc7bb589"}, - {file = "SQLAlchemy-2.0.15-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:201a99f922ac8c780b3929128fbd9df901418877c70e160e19adb05665e51c31"}, - {file = "SQLAlchemy-2.0.15-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:e17fdcb8971e77c439113642ca8861f9465e21fc693bd3916654ceef3ac26883"}, - {file = "SQLAlchemy-2.0.15-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:db269f67ed17b07e80aaa8fba1f650c0d84aa0bdd9d5352e4ac38d5bf47ac568"}, - {file = "SQLAlchemy-2.0.15-cp37-cp37m-win32.whl", hash = "sha256:994a75b197662e0608b6a76935d7c345f7fd874eac0b7093d561033db61b0e8c"}, - {file = "SQLAlchemy-2.0.15-cp37-cp37m-win_amd64.whl", hash = "sha256:4d61731a35eddb0f667774fe15e5a4831e444d066081d1e809e1b8a0e3f97cae"}, - {file = "SQLAlchemy-2.0.15-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f7f994a53c0e6b44a2966fd6bfc53e37d34b7dca34e75b6be295de6db598255e"}, - {file = "SQLAlchemy-2.0.15-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:79bfe728219239bdc493950ea4a4d15b02138ecb304771f9024d0d6f5f4e3706"}, - {file = "SQLAlchemy-2.0.15-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d6320a1d175447dce63618ec997a53836de48ed3b44bbe952f0b4b399b19941"}, - {file = "SQLAlchemy-2.0.15-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f80a9c9a9af0e4bd5080cc0955ce70274c28e9b931ad7e0fb07021afcd32af6"}, - {file = "SQLAlchemy-2.0.15-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4a75fdb9a84072521bb2ebd31eefe1165d4dccea3039dda701a864f4b5daa17f"}, - {file = "SQLAlchemy-2.0.15-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:21c89044fc48a25c2184eba332edeffbbf9367913bb065cd31538235d828f06f"}, - {file = "SQLAlchemy-2.0.15-cp38-cp38-win32.whl", hash = "sha256:1a0754c2d9f0c7982bec0a31138e495ed1f6b8435d7e677c45be60ec18370acf"}, - {file = "SQLAlchemy-2.0.15-cp38-cp38-win_amd64.whl", hash = "sha256:bc5c2b0da46c26c5f73f700834f871d0723e1e882641932468d56833bab09775"}, - {file = "SQLAlchemy-2.0.15-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:670ecf74ee2e70b917028a06446ad26ff9b1195e84b09c3139c215123d57dc30"}, - {file = "SQLAlchemy-2.0.15-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d14282bf5b4de87f922db3c70858953fd081ef4f05dba6cca3dd705daffe1cc9"}, - {file = "SQLAlchemy-2.0.15-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:256b2b9660e51ad7055a9835b12717416cf7288afcf465107413917b6bb2316f"}, - {file = "SQLAlchemy-2.0.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:810199d1c5b43603a9e815ae9487aef3ab1ade7ed9c0c485e12519358929fbfe"}, - {file = "SQLAlchemy-2.0.15-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:536c86ec81ca89291d533ff41a3a05f9e4e88e01906dcee0751fc7082f3e8d6c"}, - {file = "SQLAlchemy-2.0.15-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:435f6807fa6a0597d84741470f19db204a7d34625ea121abd63e8d95f673f0c4"}, - {file = "SQLAlchemy-2.0.15-cp39-cp39-win32.whl", hash = "sha256:da7381a883aee20b7d2ffda17d909b38134b6a625920e65239a1c681881df800"}, - {file = "SQLAlchemy-2.0.15-cp39-cp39-win_amd64.whl", hash = "sha256:788d1772fb8dcd12091ca82809eef504ce0f2c423e45284bc351b872966ff554"}, - {file = "SQLAlchemy-2.0.15-py3-none-any.whl", hash = "sha256:933d30273861fe61f014ce2a7e3c364915f5efe9ed250ec1066ca6ea5942c0bd"}, - {file = "SQLAlchemy-2.0.15.tar.gz", hash = "sha256:2e940a8659ef870ae10e0d9e2a6d5aaddf0ff6e91f7d0d7732afc9e8c4be9bbc"}, -] - -[package.dependencies] -greenlet = {version = "!=0.4.17", markers = "platform_machine == \"win32\" or platform_machine == \"WIN32\" or platform_machine == \"AMD64\" or platform_machine == \"amd64\" or platform_machine == \"x86_64\" or platform_machine == \"ppc64le\" or platform_machine == \"aarch64\""} + {file = "SQLAlchemy-2.0.20-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:759b51346aa388c2e606ee206c0bc6f15a5299f6174d1e10cadbe4530d3c7a98"}, + {file = "SQLAlchemy-2.0.20-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1506e988ebeaaf316f183da601f24eedd7452e163010ea63dbe52dc91c7fc70e"}, + {file = "SQLAlchemy-2.0.20-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5768c268df78bacbde166b48be788b83dddaa2a5974b8810af422ddfe68a9bc8"}, + {file = "SQLAlchemy-2.0.20-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3f0dd6d15b6dc8b28a838a5c48ced7455c3e1fb47b89da9c79cc2090b072a50"}, + {file = "SQLAlchemy-2.0.20-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:243d0fb261f80a26774829bc2cee71df3222587ac789b7eaf6555c5b15651eed"}, + {file = "SQLAlchemy-2.0.20-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6eb6d77c31e1bf4268b4d61b549c341cbff9842f8e115ba6904249c20cb78a61"}, + {file = "SQLAlchemy-2.0.20-cp310-cp310-win32.whl", hash = "sha256:bcb04441f370cbe6e37c2b8d79e4af9e4789f626c595899d94abebe8b38f9a4d"}, + {file = "SQLAlchemy-2.0.20-cp310-cp310-win_amd64.whl", hash = "sha256:d32b5ffef6c5bcb452723a496bad2d4c52b346240c59b3e6dba279f6dcc06c14"}, + {file = "SQLAlchemy-2.0.20-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:dd81466bdbc82b060c3c110b2937ab65ace41dfa7b18681fdfad2f37f27acdd7"}, + {file = "SQLAlchemy-2.0.20-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6fe7d61dc71119e21ddb0094ee994418c12f68c61b3d263ebaae50ea8399c4d4"}, + {file = "SQLAlchemy-2.0.20-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4e571af672e1bb710b3cc1a9794b55bce1eae5aed41a608c0401885e3491179"}, + {file = "SQLAlchemy-2.0.20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3364b7066b3c7f4437dd345d47271f1251e0cfb0aba67e785343cdbdb0fff08c"}, + {file = "SQLAlchemy-2.0.20-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1be86ccea0c965a1e8cd6ccf6884b924c319fcc85765f16c69f1ae7148eba64b"}, + {file = "SQLAlchemy-2.0.20-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1d35d49a972649b5080557c603110620a86aa11db350d7a7cb0f0a3f611948a0"}, + {file = "SQLAlchemy-2.0.20-cp311-cp311-win32.whl", hash = "sha256:27d554ef5d12501898d88d255c54eef8414576f34672e02fe96d75908993cf53"}, + {file = "SQLAlchemy-2.0.20-cp311-cp311-win_amd64.whl", hash = "sha256:411e7f140200c02c4b953b3dbd08351c9f9818d2bd591b56d0fa0716bd014f1e"}, + {file = "SQLAlchemy-2.0.20-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3c6aceebbc47db04f2d779db03afeaa2c73ea3f8dcd3987eb9efdb987ffa09a3"}, + {file = "SQLAlchemy-2.0.20-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7d3f175410a6db0ad96b10bfbb0a5530ecd4fcf1e2b5d83d968dd64791f810ed"}, + {file = "SQLAlchemy-2.0.20-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea8186be85da6587456c9ddc7bf480ebad1a0e6dcbad3967c4821233a4d4df57"}, + {file = "SQLAlchemy-2.0.20-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c3d99ba99007dab8233f635c32b5cd24fb1df8d64e17bc7df136cedbea427897"}, + {file = "SQLAlchemy-2.0.20-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:76fdfc0f6f5341987474ff48e7a66c3cd2b8a71ddda01fa82fedb180b961630a"}, + {file = "SQLAlchemy-2.0.20-cp37-cp37m-win32.whl", hash = "sha256:d3793dcf5bc4d74ae1e9db15121250c2da476e1af8e45a1d9a52b1513a393459"}, + {file = "SQLAlchemy-2.0.20-cp37-cp37m-win_amd64.whl", hash = "sha256:79fde625a0a55220d3624e64101ed68a059c1c1f126c74f08a42097a72ff66a9"}, + {file = "SQLAlchemy-2.0.20-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:599ccd23a7146e126be1c7632d1d47847fa9f333104d03325c4e15440fc7d927"}, + {file = "SQLAlchemy-2.0.20-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1a58052b5a93425f656675673ef1f7e005a3b72e3f2c91b8acca1b27ccadf5f4"}, + {file = "SQLAlchemy-2.0.20-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79543f945be7a5ada9943d555cf9b1531cfea49241809dd1183701f94a748624"}, + {file = "SQLAlchemy-2.0.20-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63e73da7fb030ae0a46a9ffbeef7e892f5def4baf8064786d040d45c1d6d1dc5"}, + {file = "SQLAlchemy-2.0.20-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3ce5e81b800a8afc870bb8e0a275d81957e16f8c4b62415a7b386f29a0cb9763"}, + {file = "SQLAlchemy-2.0.20-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:cb0d3e94c2a84215532d9bcf10229476ffd3b08f481c53754113b794afb62d14"}, + {file = "SQLAlchemy-2.0.20-cp38-cp38-win32.whl", hash = "sha256:8dd77fd6648b677d7742d2c3cc105a66e2681cc5e5fb247b88c7a7b78351cf74"}, + {file = "SQLAlchemy-2.0.20-cp38-cp38-win_amd64.whl", hash = "sha256:6f8a934f9dfdf762c844e5164046a9cea25fabbc9ec865c023fe7f300f11ca4a"}, + {file = "SQLAlchemy-2.0.20-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:26a3399eaf65e9ab2690c07bd5cf898b639e76903e0abad096cd609233ce5208"}, + {file = "SQLAlchemy-2.0.20-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4cde2e1096cbb3e62002efdb7050113aa5f01718035ba9f29f9d89c3758e7e4e"}, + {file = "SQLAlchemy-2.0.20-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1b09ba72e4e6d341bb5bdd3564f1cea6095d4c3632e45dc69375a1dbe4e26ec"}, + {file = "SQLAlchemy-2.0.20-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b74eeafaa11372627ce94e4dc88a6751b2b4d263015b3523e2b1e57291102f0"}, + {file = "SQLAlchemy-2.0.20-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:77d37c1b4e64c926fa3de23e8244b964aab92963d0f74d98cbc0783a9e04f501"}, + {file = "SQLAlchemy-2.0.20-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:eefebcc5c555803065128401a1e224a64607259b5eb907021bf9b175f315d2a6"}, + {file = "SQLAlchemy-2.0.20-cp39-cp39-win32.whl", hash = "sha256:3423dc2a3b94125094897118b52bdf4d37daf142cbcf26d48af284b763ab90e9"}, + {file = "SQLAlchemy-2.0.20-cp39-cp39-win_amd64.whl", hash = "sha256:5ed61e3463021763b853628aef8bc5d469fe12d95f82c74ef605049d810f3267"}, + {file = "SQLAlchemy-2.0.20-py3-none-any.whl", hash = "sha256:63a368231c53c93e2b67d0c5556a9836fdcd383f7e3026a39602aad775b14acf"}, + {file = "SQLAlchemy-2.0.20.tar.gz", hash = "sha256:ca8a5ff2aa7f3ade6c498aaafce25b1eaeabe4e42b73e25519183e4566a16fc6"}, +] + +[package.dependencies] +greenlet = {version = "!=0.4.17", markers = "platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\""} typing-extensions = ">=4.2.0" [package.extras] -aiomysql = ["aiomysql", "greenlet (!=0.4.17)"] +aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing-extensions (!=3.10.0.1)"] asyncio = ["greenlet (!=0.4.17)"] asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (!=0.4.17)"] @@ -2403,66 +2714,52 @@ postgresql-pg8000 = ["pg8000 (>=1.29.1)"] postgresql-psycopg = ["psycopg (>=3.0.7)"] postgresql-psycopg2binary = ["psycopg2-binary"] postgresql-psycopg2cffi = ["psycopg2cffi"] +postgresql-psycopgbinary = ["psycopg[binary] (>=3.0.7)"] pymysql = ["pymysql"] sqlcipher = ["sqlcipher3-binary"] [[package]] name = "sssom" -version = "0.3.31" +version = "0.3.40" description = "Operations on SSSOM mapping tables" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8,<4.0" files = [ - {file = "sssom-0.3.31.tar.gz", hash = "sha256:6065e20f675b94af7625b020fbd90be9de447157a59c9da693a3fa7c1639e6b0"}, + {file = "sssom-0.3.40-py3-none-any.whl", hash = "sha256:0aba579aafb329a443bb30b8398a9542368901de0514773c72f018d5948ac206"}, + {file = "sssom-0.3.40.tar.gz", hash = "sha256:fedba8961593048dc9d78ee44c79c0d5567f52dc0b3382eb80731269a5df3696"}, ] [package.dependencies] -bioregistry = "*" -click = "*" -deprecation = "*" -linkml = "*" -networkx = "*" -numpy = "*" -pandas = "*" -pansql = "*" -pyparsing = "*" -pyyaml = "*" -rdflib = ">=6" -scipy = "*" -setuptools = "*" -sparqlwrapper = "*" -sssom-schema = "*" -validators = ">=0.0" - -[package.extras] -docs = ["recommonmark", "sphinx", "sphinx-autodoc-typehints", "sphinx-click", "sphinx-rtd-theme"] -test = ["pytest"] +click = ">=8.1.6" +curies = ">=0.5.7" +deprecation = ">=2.1.0,<3.0.0" +importlib-metadata = ">=6.8.0" +linkml-runtime = ">=1.5.5" +networkx = ">=3.1" +pandas = ">=2.0.3" +pansql = ">=0.0.1" +pyyaml = ">=6.0.1,<7.0.0" +rdflib = ">=6.0.0" +scipy = {version = "*", extras = ["scipy"]} +sparqlwrapper = ">=2.0.0" +sssom-schema = ">=0.14.0" +validators = ">=0.20.0" [[package]] name = "sssom-schema" -version = "0.11.0" +version = "0.15.0" description = "SSSOM is a Simple Standard for Sharing Ontology Mappings." optional = false python-versions = ">=3.7.6,<4.0.0" files = [ - {file = "sssom_schema-0.11.0-py3-none-any.whl", hash = "sha256:eca4ea0f1481330b79fd614faa4999ca7662cfdc60614c5abd6857558770969a"}, - {file = "sssom_schema-0.11.0.tar.gz", hash = "sha256:de43a243aa2d5fe079a87cef110767acd0150ba094479c1cfdbcb9a7d25f8a9f"}, + {file = "sssom_schema-0.15.0-py3-none-any.whl", hash = "sha256:0ba81a0fe76d28a2c65d65a99e0cd17d8dd08274f9735776a70c8d2f3734e901"}, + {file = "sssom_schema-0.15.0.tar.gz", hash = "sha256:35d56ba6d0350b1e07df2789aebac9c5c70b0888bf88ec3c0592c89e9c13d228"}, ] [package.dependencies] linkml-runtime = "*" mkdocs-mermaid2-plugin = ">=0.6.0,<0.7.0" -[[package]] -name = "stringcase" -version = "1.2.0" -description = "String case converter." -optional = false -python-versions = "*" -files = [ - {file = "stringcase-1.2.0.tar.gz", hash = "sha256:48a06980661908efe8d9d34eab2b6c13aefa2163b3ced26972902e3bdfd87008"}, -] - [[package]] name = "tomli" version = "2.0.1" @@ -2485,26 +2782,6 @@ files = [ {file = "toolz-0.12.0.tar.gz", hash = "sha256:88c570861c440ee3f2f6037c4654613228ff40c93a6c25e0eba70d17282c6194"}, ] -[[package]] -name = "tqdm" -version = "4.65.0" -description = "Fast, Extensible Progress Meter" -optional = false -python-versions = ">=3.7" -files = [ - {file = "tqdm-4.65.0-py3-none-any.whl", hash = "sha256:c4f53a17fe37e132815abceec022631be8ffe1b9381c2e6e30aa70edc99e9671"}, - {file = "tqdm-4.65.0.tar.gz", hash = "sha256:1871fb68a86b8fb3b59ca4cdd3dcccbc7e6d613eeed31f4c332531977b89beb5"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "platform_system == \"Windows\""} - -[package.extras] -dev = ["py-make (>=0.1.0)", "twine", "wheel"] -notebook = ["ipywidgets (>=6)"] -slack = ["slack-sdk"] -telegram = ["requests"] - [[package]] name = "typer" version = "0.7.0" @@ -2543,13 +2820,13 @@ typer = ">=0.4.0,<=0.7.0" [[package]] name = "typing-extensions" -version = "4.6.3" +version = "4.7.1" description = "Backported and Experimental Type Hints for Python 3.7+" optional = false python-versions = ">=3.7" files = [ - {file = "typing_extensions-4.6.3-py3-none-any.whl", hash = "sha256:88a4153d8505aabbb4e13aacb7c486c2b4a33ca3b3f807914a9b4c844c471c26"}, - {file = "typing_extensions-4.6.3.tar.gz", hash = "sha256:d91d5919357fe7f681a9f2b5b4cb2a5f1ef0a1e9f59c4d8ff0d3491e05c0ffd5"}, + {file = "typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"}, + {file = "typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"}, ] [[package]] @@ -2565,27 +2842,27 @@ files = [ [[package]] name = "uri-template" -version = "1.2.0" +version = "1.3.0" description = "RFC 6570 URI Template Processor" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "uri_template-1.2.0-py3-none-any.whl", hash = "sha256:f1699c77b73b925cf4937eae31ab282a86dc885c333f2e942513f08f691fc7db"}, - {file = "uri_template-1.2.0.tar.gz", hash = "sha256:934e4d09d108b70eb8a24410af8615294d09d279ce0e7cbcdaef1bd21f932b06"}, + {file = "uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7"}, + {file = "uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363"}, ] [package.extras] -dev = ["flake8 (<4.0.0)", "flake8-annotations", "flake8-bugbear", "flake8-commas", "flake8-comprehensions", "flake8-continuation", "flake8-datetimez", "flake8-docstrings", "flake8-import-order", "flake8-literal", "flake8-noqa", "flake8-requirements", "flake8-type-annotations", "flake8-use-fstring", "mypy", "pep8-naming"] +dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake8-commas", "flake8-comprehensions", "flake8-continuation", "flake8-datetimez", "flake8-docstrings", "flake8-import-order", "flake8-literal", "flake8-modern-annotations", "flake8-noqa", "flake8-pyproject", "flake8-requirements", "flake8-typechecking-import", "flake8-use-fstring", "mypy", "pep8-naming", "types-PyYAML"] [[package]] name = "urllib3" -version = "2.0.2" +version = "2.0.4" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.7" files = [ - {file = "urllib3-2.0.2-py3-none-any.whl", hash = "sha256:d055c2f9d38dc53c808f6fdc8eab7360b6fdbbde02340ed25cfbcd817c62469e"}, - {file = "urllib3-2.0.2.tar.gz", hash = "sha256:61717a1095d7e155cdb737ac7bb2f4324a858a1e2e6466f6d03ff630ca68d3cc"}, + {file = "urllib3-2.0.4-py3-none-any.whl", hash = "sha256:de7df1803967d2c2a98e4b11bb7d6bd9210474c46e8a0401514e3a42a75ebde4"}, + {file = "urllib3-2.0.4.tar.gz", hash = "sha256:8d22f86aae8ef5e410d4f539fde9ce6b2113a001bb4d189e0aed70642d602b11"}, ] [package.extras] @@ -2596,19 +2873,24 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "validators" -version = "0.20.0" -description = "Python Data Validation for Humans™." +version = "0.21.2" +description = "Python Data Validation for Humans™" optional = false -python-versions = ">=3.4" +python-versions = ">=3.8" files = [ - {file = "validators-0.20.0.tar.gz", hash = "sha256:24148ce4e64100a2d5e267233e23e7afeb55316b47d30faae7eb6e7292bc226a"}, + {file = "validators-0.21.2-py3-none-any.whl", hash = "sha256:6ad95131005a9d4c734a69dd4ef08cf66961e61222e60da25a9b5137cecd6fd4"}, + {file = "validators-0.21.2.tar.gz", hash = "sha256:002ba1552076535176824e43149c18c06f6b611bc8b597ddbcf8770bcf5f9f5c"}, ] -[package.dependencies] -decorator = ">=3.4.0" - [package.extras] -test = ["flake8 (>=2.4.0)", "isort (>=4.2.2)", "pytest (>=2.2.3)"] +docs-offline = ["myst-parser (>=2.0.0)", "pypandoc-binary (>=1.11)", "sphinx (>=7.1.1)"] +docs-online = ["mkdocs (>=1.5.2)", "mkdocs-material (>=9.1.21)", "mkdocstrings[python] (>=0.22.0)", "pyaml (>=23.7.0)"] +hooks = ["pre-commit (>=3.3.3)"] +runner = ["tox (>=4.6.4)"] +sast = ["bandit[toml] (>=1.7.5)"] +testing = ["pytest (>=7.4.0)"] +tooling = ["black (>=23.7.0)", "pyright (>=1.1.320)", "ruff (>=0.0.280)"] +tooling-extras = ["pyaml (>=23.7.0)", "pypandoc-binary (>=1.11)", "pytest (>=7.4.0)"] [[package]] name = "watchdog" @@ -2764,20 +3046,20 @@ files = [ [[package]] name = "zipp" -version = "3.15.0" +version = "3.16.2" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "zipp-3.15.0-py3-none-any.whl", hash = "sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556"}, - {file = "zipp-3.15.0.tar.gz", hash = "sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b"}, + {file = "zipp-3.16.2-py3-none-any.whl", hash = "sha256:679e51dd4403591b2d6838a48de3d283f3d188412a9782faadf845f298736ba0"}, + {file = "zipp-3.16.2.tar.gz", hash = "sha256:ebc15946aa78bd63458992fc81ec3b6f7b1e92d51c35e6de1c3804e73b799147"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"] [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "4950d6f391fef2b6d6d93bf26b32151095abf358755aa094a215cda08c415dbb" +content-hash = "8c72cf255ae99c8d0e6a23ce3f12237fcd77b6e4120adf8496c42f33a767a2bc" diff --git a/pyproject.toml b/pyproject.toml index 1852043..2ce92a0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,8 +16,8 @@ packages = [ [tool.poetry.dependencies] python = "^3.8" -linkml-validator = ">=0.4.4" -pydantic = "^1.0.0" +# linkml-validator = ">=0.4.4" +pydantic = "^2.0" pyyaml = ">=5.0.0" requests = "^2.24.0" ordered-set = ">=4.1.0" diff --git a/src/koza/app.py b/src/koza/app.py index 559493a..41527e1 100644 --- a/src/koza/app.py +++ b/src/koza/app.py @@ -4,7 +4,7 @@ from typing import Dict, Union import yaml -from linkml_validator.validator import Validator +# from linkml_validator.validator import Validator from pydantic.error_wrappers import ValidationError from koza.converter.kgx_converter import KGXConverter @@ -43,7 +43,7 @@ def __init__( self.logger = logger if schema: - self.validator = Validator(schema=schema) + # self.validator = Validator(schema=schema) self.converter = KGXConverter() if source.config.depends_on is not None: @@ -84,7 +84,8 @@ def process_sources(self): is_first = True transform_module = None - self.logger.info(f"Transforming source: {self.source.config.name}") + if self.logger: + self.logger.info(f"Transforming source: {self.source.config.name}") if self.source.config.transform_mode == 'flat': while True: try: @@ -94,11 +95,13 @@ def process_sources(self): else: importlib.reload(transform_module) except MapItemException as mie: - self.logger.debug(f"{str(mie)} not found in map") + if self.logger: + self.logger.debug(f"{str(mie)} not found in map") except NextRowException: continue except ValidationError as ve: - self.logger.error(f"Validation error while processing: {self.source.last_row}") + if self.logger: + self.logger.error(f"Validation error while processing: {self.source.last_row}") raise ve except StopIteration: break diff --git a/src/koza/model/config/source_config.py b/src/koza/model/config/source_config.py index f4271d3..37f3e9b 100644 --- a/src/koza/model/config/source_config.py +++ b/src/koza/model/config/source_config.py @@ -444,4 +444,5 @@ class MapFileConfig(SourceConfig): values: List[str] = None curie_prefix: str = None add_curie_prefix_to_columns: List[str] = None + depends_on = None From 5961631d5cffd4fa8e9e4650ad6e1aef4248ac72 Mon Sep 17 00:00:00 2001 From: glass-ships Date: Fri, 1 Sep 2023 16:28:25 -0600 Subject: [PATCH 2/6] format, tests are nnnnnnot working.... --- tests/unit/test_kgx_converter.py | 34 ++++++++++++++++---------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/tests/unit/test_kgx_converter.py b/tests/unit/test_kgx_converter.py index b641ddf..0e68f50 100644 --- a/tests/unit/test_kgx_converter.py +++ b/tests/unit/test_kgx_converter.py @@ -1,5 +1,5 @@ import pytest -from biolink.pydanticmodel import Gene, GeneToGeneAssociation, Publication +from biolink.pydanticmodel import Gene, GeneToGeneAssociation # , Publication from koza.converter.kgx_converter import KGXConverter @@ -16,30 +16,30 @@ def test_gene_conversion(): (nodes, edges) = kgx_converter.convert([fgf8a]) output = nodes[0] - assert output['id'] == "ZFIN:ZDB-GENE-990415-72" - assert output['symbol'] == "fgf8a" - assert 'gene' in str(output['category']).lower() - assert output['name'] == "fibroblast growth factor 8a" - assert output['in_taxon'] == ["NCBITaxon:7955"] + assert output["id"] == "ZFIN:ZDB-GENE-990415-72" + assert output["symbol"] == "fgf8a" + assert "gene" in str(output["category"]).lower() + assert output["name"] == "fibroblast growth factor 8a" + assert output["in_taxon"] == ["NCBITaxon:7955"] def test_association_conversion(): fgf8a = Gene(id="ZFIN:ZDB-GENE-990415-72", symbol="fgf8a", name="fibroblast growth factor 8a") pax2a = Gene(id="ZFIN:ZDB-GENE-990415-8", symbol="pax2a", name="paired box 2a") - pub = "PMID:17522161" # Publication(id="PMID:17522161", type="MESH:foobar") + pub = "PMID:17522161" # Publication(id="PMID:17522161", type="MESH:foobar") association = GeneToGeneAssociation( - id='uuid:123', + id="uuid:123", subject=fgf8a.id, predicate="biolink:interacts_with", object=pax2a.id, publications=[pub], ) - (nodes, edges) = KGXConverter().convert([fgf8a, pax2a, association]) + (_, edges) = KGXConverter().convert([fgf8a, pax2a, association]) output = edges[0] - assert output['subject'] == "ZFIN:ZDB-GENE-990415-72" - assert output['object'] == "ZFIN:ZDB-GENE-990415-8" + assert output["subject"] == "ZFIN:ZDB-GENE-990415-72" + assert output["object"] == "ZFIN:ZDB-GENE-990415-8" # TODO figure out how/where to handle this conversion # assert Curie("PMID:17522161") in output['publications'] @@ -60,10 +60,10 @@ def test_keys_uniformity(id, symbol, synonym, xref): (nodes, edges) = KGXConverter().convert([gene]) output = nodes[0] - assert 'category' in output.keys() - assert 'id' in output.keys() - assert 'symbol' in output.keys() - assert 'synonym' in output.keys() - assert 'xref' in output.keys() - assert 'description' in output.keys() + assert "category" in output.keys() + assert "id" in output.keys() + assert "symbol" in output.keys() + assert "synonym" in output.keys() + assert "xref" in output.keys() + assert "description" in output.keys() # assert 'source' in output.keys() ----> Did we remove this? From b2ddfc3b3293baeb11a11eff315734b8b1f80c00 Mon Sep 17 00:00:00 2001 From: glass-ships Date: Fri, 1 Sep 2023 17:00:20 -0600 Subject: [PATCH 3/6] post_init_post_parse -> post_init --- src/koza/model/config/source_config.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/koza/model/config/source_config.py b/src/koza/model/config/source_config.py index 37f3e9b..1ad6c40 100644 --- a/src/koza/model/config/source_config.py +++ b/src/koza/model/config/source_config.py @@ -155,7 +155,7 @@ class SSSOMConfig(): "broad": ["skos:broadMatch"] } - def __post_init_post_parse__(self): + def __post_init__(self): logger.debug("Building SSSOM Dataframe...") self.df = self._merge_and_filter_sssom() logger.debug("Building SSSOM Lookup Table...") @@ -314,7 +314,7 @@ def extract_archive(self): files = [os.path.join(archive_path, file) for file in self.files] return files - def __post_init_post_parse__(self): + def __post_init__(self): """ TO DO figure out why we're using object.__setattr__(self, ...) here and document it. From 571a018edb24804fd79437ac33138308b634d0f9 Mon Sep 17 00:00:00 2001 From: glass-ships Date: Thu, 19 Oct 2023 17:38:12 -0600 Subject: [PATCH 4/6] update source config and other files to pydantic v2 specs --- .gitignore | 2 +- Makefile | 15 +- examples/maps/custom-entrez-2-string.py | 4 - poetry.lock | 500 +++++++++++------------ pyproject.toml | 14 +- src/koza/model/config/pydantic_config.py | 20 +- src/koza/model/config/source_config.py | 229 +++++------ tests/integration/test_archives.py | 2 +- 8 files changed, 368 insertions(+), 418 deletions(-) diff --git a/.gitignore b/.gitignore index 58fee4f..a10afca 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ # Default output / Generated / Unpacked data files output/ tests/resources/source-files/string.tsv* - +.ruff_cache # Byte-compiled / optimized / DLL files __pycache__/ diff --git a/Makefile b/Makefile index d792764..915ba3b 100644 --- a/Makefile +++ b/Makefile @@ -43,17 +43,10 @@ clean: .PHONY: lint lint: - $(RUN) flake8 --exit-zero --max-line-length 120 koza/ tests/ examples/ - $(RUN) black --check --diff koza tests - $(RUN) isort --check-only --diff koza tests + $(RUN) ruff check --diff --exit-zero src/ tests/ examples/ + $(RUN) black --check --diff -l 120 src/ tests/ examples/ .PHONY: format format: - $(RUN) autoflake \ - --recursive \ - --remove-all-unused-imports \ - --remove-unused-variables \ - --ignore-init-module-imports \ - --in-place koza tests examples - $(RUN) isort koza tests examples - $(RUN) black koza tests examples + $(RUN) ruff check --fix --exit-zero src/ tests/ examples/ + $(RUN) black -l 120 src/ tests/ examples/ diff --git a/examples/maps/custom-entrez-2-string.py b/examples/maps/custom-entrez-2-string.py index 25fe5b1..72ae769 100644 --- a/examples/maps/custom-entrez-2-string.py +++ b/examples/maps/custom-entrez-2-string.py @@ -1,7 +1,3 @@ -from pathlib import Path -import yaml - -from koza.model.config.source_config import FormatType, OutputFormat, PrimaryFileConfig from koza.cli_runner import get_koza_app source_name = 'custom-map-protein-links-detailed' diff --git a/poetry.lock b/poetry.lock index 717f826..702eb10 100644 --- a/poetry.lock +++ b/poetry.lock @@ -61,21 +61,6 @@ docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib- 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 = "autoflake" -version = "1.7.8" -description = "Removes unused imports and unused variables" -optional = false -python-versions = ">=3.7" -files = [ - {file = "autoflake-1.7.8-py3-none-any.whl", hash = "sha256:46373ef69b6714f5064c923bb28bd797c4f8a9497f557d87fc36665c6d956b39"}, - {file = "autoflake-1.7.8.tar.gz", hash = "sha256:e7e46372dee46fa1c97acf310d99d922b63d369718a270809d7c278d34a194cf"}, -] - -[package.dependencies] -pyflakes = ">=1.1.0,<3" -tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} - [[package]] name = "babel" version = "2.13.0" @@ -129,43 +114,39 @@ prefixmaps = "*" [[package]] name = "black" -version = "22.3.0" +version = "23.10.0" description = "The uncompromising code formatter." optional = false -python-versions = ">=3.6.2" -files = [ - {file = "black-22.3.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2497f9c2386572e28921fa8bec7be3e51de6801f7459dffd6e62492531c47e09"}, - {file = "black-22.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5795a0375eb87bfe902e80e0c8cfaedf8af4d49694d69161e5bd3206c18618bb"}, - {file = "black-22.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e3556168e2e5c49629f7b0f377070240bd5511e45e25a4497bb0073d9dda776a"}, - {file = "black-22.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67c8301ec94e3bcc8906740fe071391bce40a862b7be0b86fb5382beefecd968"}, - {file = "black-22.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:fd57160949179ec517d32ac2ac898b5f20d68ed1a9c977346efbac9c2f1e779d"}, - {file = "black-22.3.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:cc1e1de68c8e5444e8f94c3670bb48a2beef0e91dddfd4fcc29595ebd90bb9ce"}, - {file = "black-22.3.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2fc92002d44746d3e7db7cf9313cf4452f43e9ea77a2c939defce3b10b5c82"}, - {file = "black-22.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:a6342964b43a99dbc72f72812bf88cad8f0217ae9acb47c0d4f141a6416d2d7b"}, - {file = "black-22.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:328efc0cc70ccb23429d6be184a15ce613f676bdfc85e5fe8ea2a9354b4e9015"}, - {file = "black-22.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06f9d8846f2340dfac80ceb20200ea5d1b3f181dd0556b47af4e8e0b24fa0a6b"}, - {file = "black-22.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:ad4efa5fad66b903b4a5f96d91461d90b9507a812b3c5de657d544215bb7877a"}, - {file = "black-22.3.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8477ec6bbfe0312c128e74644ac8a02ca06bcdb8982d4ee06f209be28cdf163"}, - {file = "black-22.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:637a4014c63fbf42a692d22b55d8ad6968a946b4a6ebc385c5505d9625b6a464"}, - {file = "black-22.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:863714200ada56cbc366dc9ae5291ceb936573155f8bf8e9de92aef51f3ad0f0"}, - {file = "black-22.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10dbe6e6d2988049b4655b2b739f98785a884d4d6b85bc35133a8fb9a2233176"}, - {file = "black-22.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:cee3e11161dde1b2a33a904b850b0899e0424cc331b7295f2a9698e79f9a69a0"}, - {file = "black-22.3.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5891ef8abc06576985de8fa88e95ab70641de6c1fca97e2a15820a9b69e51b20"}, - {file = "black-22.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:30d78ba6bf080eeaf0b7b875d924b15cd46fec5fd044ddfbad38c8ea9171043a"}, - {file = "black-22.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ee8f1f7228cce7dffc2b464f07ce769f478968bfb3dd1254a4c2eeed84928aad"}, - {file = "black-22.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ee227b696ca60dd1c507be80a6bc849a5a6ab57ac7352aad1ffec9e8b805f21"}, - {file = "black-22.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:9b542ced1ec0ceeff5b37d69838106a6348e60db7b8fdd245294dc1d26136265"}, - {file = "black-22.3.0-py3-none-any.whl", hash = "sha256:bc58025940a896d7e5356952228b68f793cf5fcb342be703c3a2669a1488cb72"}, - {file = "black-22.3.0.tar.gz", hash = "sha256:35020b8886c022ced9282b51b5a875b6d1ab0c387b31a065b84db7c33085ca79"}, +python-versions = ">=3.8" +files = [ + {file = "black-23.10.0-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:f8dc7d50d94063cdfd13c82368afd8588bac4ce360e4224ac399e769d6704e98"}, + {file = "black-23.10.0-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:f20ff03f3fdd2fd4460b4f631663813e57dc277e37fb216463f3b907aa5a9bdd"}, + {file = "black-23.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3d9129ce05b0829730323bdcb00f928a448a124af5acf90aa94d9aba6969604"}, + {file = "black-23.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:960c21555be135c4b37b7018d63d6248bdae8514e5c55b71e994ad37407f45b8"}, + {file = "black-23.10.0-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:30b78ac9b54cf87bcb9910ee3d499d2bc893afd52495066c49d9ee6b21eee06e"}, + {file = "black-23.10.0-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:0e232f24a337fed7a82c1185ae46c56c4a6167fb0fe37411b43e876892c76699"}, + {file = "black-23.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31946ec6f9c54ed7ba431c38bc81d758970dd734b96b8e8c2b17a367d7908171"}, + {file = "black-23.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:c870bee76ad5f7a5ea7bd01dc646028d05568d33b0b09b7ecfc8ec0da3f3f39c"}, + {file = "black-23.10.0-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:6901631b937acbee93c75537e74f69463adaf34379a04eef32425b88aca88a23"}, + {file = "black-23.10.0-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:481167c60cd3e6b1cb8ef2aac0f76165843a374346aeeaa9d86765fe0dd0318b"}, + {file = "black-23.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f74892b4b836e5162aa0452393112a574dac85e13902c57dfbaaf388e4eda37c"}, + {file = "black-23.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:47c4510f70ec2e8f9135ba490811c071419c115e46f143e4dce2ac45afdcf4c9"}, + {file = "black-23.10.0-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:76baba9281e5e5b230c9b7f83a96daf67a95e919c2dfc240d9e6295eab7b9204"}, + {file = "black-23.10.0-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:a3c2ddb35f71976a4cfeca558848c2f2f89abc86b06e8dd89b5a65c1e6c0f22a"}, + {file = "black-23.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db451a3363b1e765c172c3fd86213a4ce63fb8524c938ebd82919bf2a6e28c6a"}, + {file = "black-23.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:7fb5fc36bb65160df21498d5a3dd330af8b6401be3f25af60c6ebfe23753f747"}, + {file = "black-23.10.0-py3-none-any.whl", hash = "sha256:e223b731a0e025f8ef427dd79d8cd69c167da807f5710add30cdf131f13dd62e"}, + {file = "black-23.10.0.tar.gz", hash = "sha256:31b9f87b277a68d0e99d2905edae08807c007973eaa609da5f0c62def6b7c0bd"}, ] [package.dependencies] click = ">=8.0.0" mypy-extensions = ">=0.4.3" +packaging = ">=22.0" pathspec = ">=0.9.0" platformdirs = ">=2" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""} +typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} [package.extras] colorama = ["colorama (>=0.4.3)"] @@ -323,13 +304,13 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} [[package]] name = "cloudpickle" -version = "2.2.1" -description = "Extended pickling support for Python objects" +version = "3.0.0" +description = "Pickler class to extend the standard pickle.Pickler functionality" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "cloudpickle-2.2.1-py3-none-any.whl", hash = "sha256:61f594d1f4c295fa5cd9014ceb3a1fc4a70b0de1164b94fbc2d854ccba056f9f"}, - {file = "cloudpickle-2.2.1.tar.gz", hash = "sha256:d89684b8de9e34a2a43b3460fbca07d09d6e25ce858df4d5a44240403b6178f5"}, + {file = "cloudpickle-3.0.0-py3-none-any.whl", hash = "sha256:246ee7d0c295602a036e86369c77fecda4ab17b506496730f2f576d9016fd9c7"}, + {file = "cloudpickle-3.0.0.tar.gz", hash = "sha256:996d9a482c6fb4f33c1a35335cf8afd065d2a56e973270364840712d9131a882"}, ] [[package]] @@ -345,13 +326,13 @@ files = [ [[package]] name = "curies" -version = "0.6.4" +version = "0.6.6" description = "Idiomatic conversion between URIs and compact URIs (CURIEs)." optional = false python-versions = ">=3.8" files = [ - {file = "curies-0.6.4-py3-none-any.whl", hash = "sha256:d19e2f61d8a37560e96a5676a5f98cf056f4e2206e281bdcca74934e7623b9d8"}, - {file = "curies-0.6.4.tar.gz", hash = "sha256:c896e6d8d7f469c9ce52f781c8c35d25c46619e977cc6c932f34d98bf33e3749"}, + {file = "curies-0.6.6-py3-none-any.whl", hash = "sha256:a4d13a82881a4ed8fb65f9bafa41e3154c249affb39accf4bcc5cb875db18a16"}, + {file = "curies-0.6.6.tar.gz", hash = "sha256:f0ae232060dd31b4adfcbe35aa16e490d09e33f0051dcf58a6c56fa9895cfecd"}, ] [package.dependencies] @@ -617,13 +598,13 @@ test = ["faulthandler", "objgraph", "psutil"] [[package]] name = "griffe" -version = "0.36.4" +version = "0.36.7" description = "Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API." optional = false python-versions = ">=3.8" files = [ - {file = "griffe-0.36.4-py3-none-any.whl", hash = "sha256:4e37a723891fa774fafdd67240571801a1d90d0236562c178707e5c37fb3ebe2"}, - {file = "griffe-0.36.4.tar.gz", hash = "sha256:7b5968f5cc6446637ed0d3ded9de07d6a928f10ccb24116b1dd843635bf1994a"}, + {file = "griffe-0.36.7-py3-none-any.whl", hash = "sha256:7a09f8e9b97c7ebe227f6529a298bf7e0e742a9837ee261cc8260d50b4aa039f"}, + {file = "griffe-0.36.7.tar.gz", hash = "sha256:a6fe60b16720ca0cf63c9e667a4c05eea40dfe4abcf114741885f945b74c7071"}, ] [package.dependencies] @@ -727,23 +708,6 @@ files = [ [package.dependencies] arrow = ">=0.15.0" -[[package]] -name = "isort" -version = "5.12.0" -description = "A Python utility / library to sort Python imports." -optional = false -python-versions = ">=3.8.0" -files = [ - {file = "isort-5.12.0-py3-none-any.whl", hash = "sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6"}, - {file = "isort-5.12.0.tar.gz", hash = "sha256:8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504"}, -] - -[package.extras] -colors = ["colorama (>=0.4.3)"] -pipfile-deprecated-finder = ["pip-shims (>=0.5.2)", "pipreqs", "requirementslib"] -plugins = ["setuptools"] -requirements-deprecated-finder = ["pip-api", "pipreqs"] - [[package]] name = "jinja2" version = "3.1.2" @@ -1156,13 +1120,13 @@ mkdocs = ">=1.1" [[package]] name = "mkdocs-material" -version = "9.4.4" +version = "9.4.6" description = "Documentation that simply works" optional = false python-versions = ">=3.8" files = [ - {file = "mkdocs_material-9.4.4-py3-none-any.whl", hash = "sha256:86fe79253afccc7f085f89a2d8e9e3300f82c4813d9b910d9081ce57a7e68380"}, - {file = "mkdocs_material-9.4.4.tar.gz", hash = "sha256:ab84a7cfaf009c47cd2926cdd7e6040b8cc12c3806cc533e8b16d57bd16d9c47"}, + {file = "mkdocs_material-9.4.6-py3-none-any.whl", hash = "sha256:78802035d5768a78139c84ad7dce0c6493e8f7dc4861727d36ed91d1520a54da"}, + {file = "mkdocs_material-9.4.6.tar.gz", hash = "sha256:09665e60df7ee9e5ff3a54af173f6d45be718b1ee7dd962bcff3102b81fb0c14"}, ] [package.dependencies] @@ -1185,13 +1149,13 @@ recommended = ["mkdocs-minify-plugin (>=0.7,<1.0)", "mkdocs-redirects (>=1.2,<2. [[package]] name = "mkdocs-material-extensions" -version = "1.2" +version = "1.3" description = "Extension pack for Python Markdown and MkDocs Material." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "mkdocs_material_extensions-1.2-py3-none-any.whl", hash = "sha256:c767bd6d6305f6420a50f0b541b0c9966d52068839af97029be14443849fb8a1"}, - {file = "mkdocs_material_extensions-1.2.tar.gz", hash = "sha256:27e2d1ed2d031426a6e10d5ea06989d67e90bb02acd588bc5673106b5ee5eedf"}, + {file = "mkdocs_material_extensions-1.3-py3-none-any.whl", hash = "sha256:0297cc48ba68a9fdd1ef3780a3b41b534b0d0df1d1181a44676fda5f464eeadc"}, + {file = "mkdocs_material_extensions-1.3.tar.gz", hash = "sha256:f0446091503acb110a7cab9349cbc90eeac51b58d1caa92a704a81ca1e24ddbd"}, ] [[package]] @@ -1217,22 +1181,25 @@ setuptools = ">=18.5" [[package]] name = "mkdocstrings" -version = "0.19.1" +version = "0.23.0" description = "Automatic documentation from sources, for MkDocs." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "mkdocstrings-0.19.1-py3-none-any.whl", hash = "sha256:32a38d88f67f65b264184ea71290f9332db750d189dea4200cbbe408d304c261"}, - {file = "mkdocstrings-0.19.1.tar.gz", hash = "sha256:d1037cacb4b522c1e8c164ed5d00d724a82e49dcee0af80db8fb67b384faeef9"}, + {file = "mkdocstrings-0.23.0-py3-none-any.whl", hash = "sha256:051fa4014dfcd9ed90254ae91de2dbb4f24e166347dae7be9a997fe16316c65e"}, + {file = "mkdocstrings-0.23.0.tar.gz", hash = "sha256:d9c6a37ffbe7c14a7a54ef1258c70b8d394e6a33a1c80832bce40b9567138d1c"}, ] [package.dependencies] +importlib-metadata = {version = ">=4.6", markers = "python_version < \"3.10\""} Jinja2 = ">=2.11.1" Markdown = ">=3.3" MarkupSafe = ">=1.1" mkdocs = ">=1.2" mkdocs-autorefs = ">=0.3.1" +mkdocstrings-python = {version = ">=0.5.2", optional = true, markers = "extra == \"python\""} pymdown-extensions = ">=6.3" +typing-extensions = {version = ">=4.1", markers = "python_version < \"3.10\""} [package.extras] crystal = ["mkdocstrings-crystal (>=0.3.4)"] @@ -1241,18 +1208,18 @@ python-legacy = ["mkdocstrings-python-legacy (>=0.2.1)"] [[package]] name = "mkdocstrings-python" -version = "0.8.3" +version = "1.7.3" description = "A Python handler for mkdocstrings." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "mkdocstrings-python-0.8.3.tar.gz", hash = "sha256:9ae473f6dc599339b09eee17e4d2b05d6ac0ec29860f3fc9b7512d940fc61adf"}, - {file = "mkdocstrings_python-0.8.3-py3-none-any.whl", hash = "sha256:4e6e1cd6f37a785de0946ced6eb846eb2f5d891ac1cc2c7b832943d3529087a7"}, + {file = "mkdocstrings_python-1.7.3-py3-none-any.whl", hash = "sha256:2439d6ad3e34f0bb4c643b845fb3c06ae9233499a1736f9fa273424b75cc5894"}, + {file = "mkdocstrings_python-1.7.3.tar.gz", hash = "sha256:c20128fa96c24dbc6437b10dfedaf33b0415d4503e51ce9ce5e84b271278268e"}, ] [package.dependencies] -griffe = ">=0.24" -mkdocstrings = ">=0.19" +griffe = ">=0.35" +mkdocstrings = ">=0.20" [[package]] name = "mypy-extensions" @@ -1720,17 +1687,6 @@ files = [ [package.dependencies] typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" -[[package]] -name = "pyflakes" -version = "2.5.0" -description = "passive checker of Python programs" -optional = false -python-versions = ">=3.6" -files = [ - {file = "pyflakes-2.5.0-py2.py3-none-any.whl", hash = "sha256:4579f67d887f804e67edb544428f264b7b24f435b263c4614f384135cea553d2"}, - {file = "pyflakes-2.5.0.tar.gz", hash = "sha256:491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3"}, -] - [[package]] name = "pygments" version = "2.16.1" @@ -1762,13 +1718,13 @@ jsonasobj = ">=1.2.1" [[package]] name = "pymdown-extensions" -version = "10.3" +version = "10.3.1" description = "Extension pack for Python Markdown." optional = false python-versions = ">=3.8" files = [ - {file = "pymdown_extensions-10.3-py3-none-any.whl", hash = "sha256:77a82c621c58a83efc49a389159181d570e370fff9f810d3a4766a75fc678b66"}, - {file = "pymdown_extensions-10.3.tar.gz", hash = "sha256:94a0d8a03246712b64698af223848fd80aaf1ae4c4be29c8c61939b0467b5722"}, + {file = "pymdown_extensions-10.3.1-py3-none-any.whl", hash = "sha256:8cba67beb2a1318cdaf742d09dff7c0fc4cafcc290147ade0f8fb7b71522711a"}, + {file = "pymdown_extensions-10.3.1.tar.gz", hash = "sha256:f6c79941498a458852853872e379e7bab63888361ba20992fc8b4f8a9b61735e"}, ] [package.dependencies] @@ -2189,128 +2145,128 @@ files = [ [[package]] name = "rpds-py" -version = "0.10.4" +version = "0.10.6" description = "Python bindings to Rust's persistent data structures (rpds)" optional = false python-versions = ">=3.8" files = [ - {file = "rpds_py-0.10.4-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:e41824343c2c129599645373992b1ce17720bb8a514f04ff9567031e1c26951e"}, - {file = "rpds_py-0.10.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b9d8884d58ea8801e5906a491ab34af975091af76d1a389173db491ee7e316bb"}, - {file = "rpds_py-0.10.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5db93f9017b384a4f194e1d89e1ce82d0a41b1fafdbbd3e0c8912baf13f2950f"}, - {file = "rpds_py-0.10.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c31ecfc53ac03dad4928a1712f3a2893008bfba1b3cde49e1c14ff67faae2290"}, - {file = "rpds_py-0.10.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4f92d2372ec992c82fd7c74aa21e2a1910b3dcdc6a7e6392919a138f21d528a3"}, - {file = "rpds_py-0.10.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f7ea49ddf51d5ec0c3cbd95190dd15e077a3153c8d4b22a33da43b5dd2b3c640"}, - {file = "rpds_py-0.10.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c27942722cd5039bbf5098c7e21935a96243fed00ea11a9589f3c6c6424bd84"}, - {file = "rpds_py-0.10.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:08f07150c8ebbdbce1d2d51b8e9f4d588749a2af6a98035485ebe45c7ad9394e"}, - {file = "rpds_py-0.10.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f3331a3684192659fa1090bf2b448db928152fcba08222e58106f44758ef25f7"}, - {file = "rpds_py-0.10.4-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:efffa359cc69840c8793f0c05a7b663de6afa7b9078fa6c80309ee38b9db677d"}, - {file = "rpds_py-0.10.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:86e8d6ff15fa7a9590c0addaf3ce52fb58bda4299cab2c2d0afa404db6848dab"}, - {file = "rpds_py-0.10.4-cp310-none-win32.whl", hash = "sha256:8f90fc6dd505867514c8b8ef68a712dc0be90031a773c1ae2ad469f04062daef"}, - {file = "rpds_py-0.10.4-cp310-none-win_amd64.whl", hash = "sha256:9f9184744fb800c9f28e155a5896ecb54816296ee79d5d1978be6a2ae60f53c4"}, - {file = "rpds_py-0.10.4-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:72e9b1e92830c876cd49565d8404e4dcc9928302d348ea2517bc3f9e3a873a2a"}, - {file = "rpds_py-0.10.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3650eae998dc718960e90120eb45d42bd57b18b21b10cb9ee05f91bff2345d48"}, - {file = "rpds_py-0.10.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f40413d2859737ce6d95c29ce2dde0ef7cdc3063b5830ae4342fef5922c3bba7"}, - {file = "rpds_py-0.10.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b953d11b544ca5f2705bb77b177d8e17ab1bfd69e0fd99790a11549d2302258c"}, - {file = "rpds_py-0.10.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:28b4942ec7d9d6114c1e08cace0157db92ef674636a38093cab779ace5742d3a"}, - {file = "rpds_py-0.10.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e0e2e01c5f61ddf47e3ed2d1fe1c9136e780ca6222d57a2517b9b02afd4710c"}, - {file = "rpds_py-0.10.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:927e3461dae0c09b1f2e0066e50c1a9204f8a64a3060f596e9a6742d3b307785"}, - {file = "rpds_py-0.10.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8e69bbe0ede8f7fe2616e779421bbdb37f025c802335a90f6416e4d98b368a37"}, - {file = "rpds_py-0.10.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cc688a59c100f038fa9fec9e4ab457c2e2d1fca350fe7ea395016666f0d0a2dc"}, - {file = "rpds_py-0.10.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ec001689402b9104700b50a005c2d3d0218eae90eaa8bdbbd776fe78fe8a74b7"}, - {file = "rpds_py-0.10.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:628fbb8be71a103499d10b189af7764996ab2634ed7b44b423f1e19901606e0e"}, - {file = "rpds_py-0.10.4-cp311-none-win32.whl", hash = "sha256:e3f9c9e5dd8eba4768e15f19044e1b5e216929a43a54b4ab329e103aed9f3eda"}, - {file = "rpds_py-0.10.4-cp311-none-win_amd64.whl", hash = "sha256:3bc561c183684636c0099f9c3fbab8c1671841942edbce784bb01b4707d17924"}, - {file = "rpds_py-0.10.4-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:36ff30385fb9fb3ac23a28bffdd4a230a5229ed5b15704b708b7c84bfb7fce51"}, - {file = "rpds_py-0.10.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:db0589e0bf41ff6ce284ab045ca89f27be1adf19e7bce26c2e7de6739a70c18b"}, - {file = "rpds_py-0.10.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c330cb125983c5d380fef4a4155248a276297c86d64625fdaf500157e1981c"}, - {file = "rpds_py-0.10.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d230fddc60caced271cc038e43e6fb8f4dd6b2dbaa44ac9763f2d76d05b0365a"}, - {file = "rpds_py-0.10.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2a9e864ec051a58fdb6bb2e6da03942adb20273897bc70067aee283e62bbac4d"}, - {file = "rpds_py-0.10.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5e41d5b334e8de4bc3f38843f31b2afa9a0c472ebf73119d3fd55cde08974bdf"}, - {file = "rpds_py-0.10.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5bb3f3cb6072c73e6ec1f865d8b80419b599f1597acf33f63fbf02252aab5a03"}, - {file = "rpds_py-0.10.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:576d48e1e45c211e99fc02655ade65c32a75d3e383ccfd98ce59cece133ed02c"}, - {file = "rpds_py-0.10.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b28b9668a22ca2cfca4433441ba9acb2899624a323787a509a3dc5fbfa79c49d"}, - {file = "rpds_py-0.10.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ddbd113a37307638f94be5ae232a325155fd24dbfae2c56455da8724b471e7be"}, - {file = "rpds_py-0.10.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bd0ad98c7d72b0e4cbfe89cdfa12cd07d2fd6ed22864341cdce12b318a383442"}, - {file = "rpds_py-0.10.4-cp312-none-win32.whl", hash = "sha256:2a97406d5e08b7095428f01dac0d3c091dc072351151945a167e7968d2755559"}, - {file = "rpds_py-0.10.4-cp312-none-win_amd64.whl", hash = "sha256:aab24b9bbaa3d49e666e9309556591aa00748bd24ea74257a405f7fed9e8b10d"}, - {file = "rpds_py-0.10.4-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:6c5ca3eb817fb54bfd066740b64a2b31536eb8fe0b183dc35b09a7bd628ed680"}, - {file = "rpds_py-0.10.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:fd37ab9a24021821b715478357af1cf369d5a42ac7405e83e5822be00732f463"}, - {file = "rpds_py-0.10.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2573ec23ad3a59dd2bc622befac845695972f3f2d08dc1a4405d017d20a6c225"}, - {file = "rpds_py-0.10.4-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:362faeae52dc6ccc50c0b6a01fa2ec0830bb61c292033f3749a46040b876f4ba"}, - {file = "rpds_py-0.10.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:40f6e53461b19ddbb3354fe5bcf3d50d4333604ae4bf25b478333d83ca68002c"}, - {file = "rpds_py-0.10.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6090ba604ea06b525a231450ae5d343917a393cbf50423900dea968daf61d16f"}, - {file = "rpds_py-0.10.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28e29dac59df890972f73c511948072897f512974714a803fe793635b80ff8c7"}, - {file = "rpds_py-0.10.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f82abb5c5b83dc30e96be99ce76239a030b62a73a13c64410e429660a5602bfd"}, - {file = "rpds_py-0.10.4-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:a3628815fd170a64624001bfb4e28946fd515bd672e68a1902d9e0290186eaf3"}, - {file = "rpds_py-0.10.4-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:d37f27ad80f742ef82796af3fe091888864958ad0bc8bab03da1830fa00c6004"}, - {file = "rpds_py-0.10.4-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:255a23bded80605e9f3997753e3a4b89c9aec9efb07ec036b1ca81440efcc1a9"}, - {file = "rpds_py-0.10.4-cp38-none-win32.whl", hash = "sha256:049098dabfe705e9638c55a3321137a821399c50940041a6fcce267a22c70db2"}, - {file = "rpds_py-0.10.4-cp38-none-win_amd64.whl", hash = "sha256:aa45cc71bf23a3181b8aa62466b5a2b7b7fb90fdc01df67ca433cd4fce7ec94d"}, - {file = "rpds_py-0.10.4-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:3507c459767cf24c11e9520e2a37c89674266abe8e65453e5cb66398aa47ee7b"}, - {file = "rpds_py-0.10.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2603e084054351cc65097da326570102c4c5bd07426ba8471ceaefdb0b642cc9"}, - {file = "rpds_py-0.10.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0f1d336786cb62613c72c00578c98e5bb8cd57b49c5bae5d4ab906ca7872f98"}, - {file = "rpds_py-0.10.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bf032367f921201deaecf221d4cc895ea84b3decf50a9c73ee106f961885a0ad"}, - {file = "rpds_py-0.10.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7f050ceffd8c730c1619a16bbf0b9cd037dcdb94b54710928ba38c7bde67e4a4"}, - {file = "rpds_py-0.10.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8709eb4ab477c533b7d0a76cd3065d7d95c9e25e6b9f6e27caeeb8c63e8799c9"}, - {file = "rpds_py-0.10.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc20dadb102140dff63529e08ce6f9745dbd36e673ebb2b1c4a63e134bca81c2"}, - {file = "rpds_py-0.10.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cd7da2adc721ccf19ac7ec86cae3a4fcaba03d9c477d5bd64ded6e9bb817bf3f"}, - {file = "rpds_py-0.10.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:e5dba1c11e089b526379e74f6c636202e4c5bad9a48c7416502b8a5b0d026c91"}, - {file = "rpds_py-0.10.4-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ffd539d213c1ea2989ab92a5b9371ae7159c8c03cf2bcb9f2f594752f755ecd3"}, - {file = "rpds_py-0.10.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:e791e3d13b14d0a7921804d0efe4d7bd15508bbcf8cb7a0c1ee1a27319a5f033"}, - {file = "rpds_py-0.10.4-cp39-none-win32.whl", hash = "sha256:2f2ac8bb01f705c5caaa7fe77ffd9b03f92f1b5061b94228f6ea5eaa0fca68ad"}, - {file = "rpds_py-0.10.4-cp39-none-win_amd64.whl", hash = "sha256:7c7ca791bedda059e5195cf7c6b77384657a51429357cdd23e64ac1d4973d6dc"}, - {file = "rpds_py-0.10.4-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:9c7e7bd1fa1f535af71dfcd3700fc83a6dc261a1204f8f5327d8ffe82e52905d"}, - {file = "rpds_py-0.10.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7089d8bfa8064b28b2e39f5af7bf12d42f61caed884e35b9b4ea9e6fb1175077"}, - {file = "rpds_py-0.10.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1f191befea279cb9669b57be97ab1785781c8bab805900e95742ebfaa9cbf1d"}, - {file = "rpds_py-0.10.4-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:98c0aecf661c175ce9cb17347fc51a5c98c3e9189ca57e8fcd9348dae18541db"}, - {file = "rpds_py-0.10.4-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d81359911c3bb31c899c6a5c23b403bdc0279215e5b3bc0d2a692489fed38632"}, - {file = "rpds_py-0.10.4-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:83da147124499fe41ed86edf34b4e81e951b3fe28edcc46288aac24e8a5c8484"}, - {file = "rpds_py-0.10.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49db6c0a0e6626c2b97f5e7f8f7074da21cbd8ec73340c25e839a2457c007efa"}, - {file = "rpds_py-0.10.4-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:125776d5db15162fdd9135372bef7fe4fb7c5f5810cf25898eb74a06a0816aec"}, - {file = "rpds_py-0.10.4-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:32819b662e3b4c26355a4403ea2f60c0a00db45b640fe722dd12db3d2ef807fb"}, - {file = "rpds_py-0.10.4-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:3bd38b80491ef9686f719c1ad3d24d14fbd0e069988fdd4e7d1a6ffcdd7f4a13"}, - {file = "rpds_py-0.10.4-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:2e79eeeff8394284b09577f36316d410525e0cf0133abb3de10660e704d3d38e"}, - {file = "rpds_py-0.10.4-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:3e37f1f134037601eb4b1f46854194f0cc082435dac2ee3de11e51529f7831f2"}, - {file = "rpds_py-0.10.4-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:ba3246c60303eab3d0e562addf25a983d60bddc36f4d1edc2510f056d19df255"}, - {file = "rpds_py-0.10.4-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9123ba0f3f98ff79780eebca9984a2b525f88563844b740f94cffb9099701230"}, - {file = "rpds_py-0.10.4-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d98802b78093c7083cc51f83da41a5be5a57d406798c9f69424bd75f8ae0812a"}, - {file = "rpds_py-0.10.4-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:58bae860d1d116e6b4e1aad0cdc48a187d5893994f56d26db0c5534df7a47afd"}, - {file = "rpds_py-0.10.4-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd7e62e7d5bcfa38a62d8397fba6d0428b970ab7954c2197501cd1624f7f0bbb"}, - {file = "rpds_py-0.10.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac83f5228459b84fa6279e4126a53abfdd73cd9cc183947ee5084153880f65d7"}, - {file = "rpds_py-0.10.4-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4bcb1abecd998a72ad4e36a0fca93577fd0c059a6aacc44f16247031b98f6ff4"}, - {file = "rpds_py-0.10.4-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:9e7b3ad9f53ea9e085b3d27286dd13f8290969c0a153f8a52c8b5c46002c374b"}, - {file = "rpds_py-0.10.4-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:cbec8e43cace64e63398155dc585dc479a89fef1e57ead06c22d3441e1bd09c3"}, - {file = "rpds_py-0.10.4-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ad21c60fc880204798f320387164dcacc25818a7b4ec2a0bf6b6c1d57b007d23"}, - {file = "rpds_py-0.10.4-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:6baea8a4f6f01e69e75cfdef3edd4a4d1c4b56238febbdf123ce96d09fbff010"}, - {file = "rpds_py-0.10.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:94876c21512535955a960f42a155213315e6ab06a4ce8ce372341a2a1b143eeb"}, - {file = "rpds_py-0.10.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4cb55454a20d1b935f9eaab52e6ceab624a2efd8b52927c7ae7a43e02828dbe0"}, - {file = "rpds_py-0.10.4-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:13cbd79ccedc6b39c279af31ebfb0aec0467ad5d14641ddb15738bf6e4146157"}, - {file = "rpds_py-0.10.4-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:00a88003db3cc953f8656b59fc9af9d0637a1fb93c235814007988f8c153b2f2"}, - {file = "rpds_py-0.10.4-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d0f7f77a77c37159c9f417b8dd847f67a29e98c6acb52ee98fc6b91efbd1b2b6"}, - {file = "rpds_py-0.10.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70563a1596d2e0660ca2cebb738443437fc0e38597e7cbb276de0a7363924a52"}, - {file = "rpds_py-0.10.4-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e3ece9aa6d07e18c966f14b4352a4c6f40249f6174d3d2c694c1062e19c6adbb"}, - {file = "rpds_py-0.10.4-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:d5ad7b1a1f6964d19b1a8acfc14bf7864f39587b3e25c16ca04f6cd1815026b3"}, - {file = "rpds_py-0.10.4-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:60018626e637528a1fa64bb3a2b3e46ab7bf672052316d61c3629814d5e65052"}, - {file = "rpds_py-0.10.4-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ae8a32ab77a84cc870bbfb60645851ca0f7d58fd251085ad67464b1445d632ca"}, - {file = "rpds_py-0.10.4.tar.gz", hash = "sha256:18d5ff7fbd305a1d564273e9eb22de83ae3cd9cd6329fddc8f12f6428a711a6a"}, + {file = "rpds_py-0.10.6-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:6bdc11f9623870d75692cc33c59804b5a18d7b8a4b79ef0b00b773a27397d1f6"}, + {file = "rpds_py-0.10.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:26857f0f44f0e791f4a266595a7a09d21f6b589580ee0585f330aaccccb836e3"}, + {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7f5e15c953ace2e8dde9824bdab4bec50adb91a5663df08d7d994240ae6fa31"}, + {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:61fa268da6e2e1cd350739bb61011121fa550aa2545762e3dc02ea177ee4de35"}, + {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c48f3fbc3e92c7dd6681a258d22f23adc2eb183c8cb1557d2fcc5a024e80b094"}, + {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0503c5b681566e8b722fe8c4c47cce5c7a51f6935d5c7012c4aefe952a35eed"}, + {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:734c41f9f57cc28658d98270d3436dba65bed0cfc730d115b290e970150c540d"}, + {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a5d7ed104d158c0042a6a73799cf0eb576dfd5fc1ace9c47996e52320c37cb7c"}, + {file = "rpds_py-0.10.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e3df0bc35e746cce42579826b89579d13fd27c3d5319a6afca9893a9b784ff1b"}, + {file = "rpds_py-0.10.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:73e0a78a9b843b8c2128028864901f55190401ba38aae685350cf69b98d9f7c9"}, + {file = "rpds_py-0.10.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5ed505ec6305abd2c2c9586a7b04fbd4baf42d4d684a9c12ec6110deefe2a063"}, + {file = "rpds_py-0.10.6-cp310-none-win32.whl", hash = "sha256:d97dd44683802000277bbf142fd9f6b271746b4846d0acaf0cefa6b2eaf2a7ad"}, + {file = "rpds_py-0.10.6-cp310-none-win_amd64.whl", hash = "sha256:b455492cab07107bfe8711e20cd920cc96003e0da3c1f91297235b1603d2aca7"}, + {file = "rpds_py-0.10.6-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:e8cdd52744f680346ff8c1ecdad5f4d11117e1724d4f4e1874f3a67598821069"}, + {file = "rpds_py-0.10.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:66414dafe4326bca200e165c2e789976cab2587ec71beb80f59f4796b786a238"}, + {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc435d059f926fdc5b05822b1be4ff2a3a040f3ae0a7bbbe672babb468944722"}, + {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8e7f2219cb72474571974d29a191714d822e58be1eb171f229732bc6fdedf0ac"}, + {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3953c6926a63f8ea5514644b7afb42659b505ece4183fdaaa8f61d978754349e"}, + {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2bb2e4826be25e72013916eecd3d30f66fd076110de09f0e750163b416500721"}, + {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bf347b495b197992efc81a7408e9a83b931b2f056728529956a4d0858608b80"}, + {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:102eac53bb0bf0f9a275b438e6cf6904904908562a1463a6fc3323cf47d7a532"}, + {file = "rpds_py-0.10.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:40f93086eef235623aa14dbddef1b9fb4b22b99454cb39a8d2e04c994fb9868c"}, + {file = "rpds_py-0.10.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e22260a4741a0e7a206e175232867b48a16e0401ef5bce3c67ca5b9705879066"}, + {file = "rpds_py-0.10.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f4e56860a5af16a0fcfa070a0a20c42fbb2012eed1eb5ceeddcc7f8079214281"}, + {file = "rpds_py-0.10.6-cp311-none-win32.whl", hash = "sha256:0774a46b38e70fdde0c6ded8d6d73115a7c39d7839a164cc833f170bbf539116"}, + {file = "rpds_py-0.10.6-cp311-none-win_amd64.whl", hash = "sha256:4a5ee600477b918ab345209eddafde9f91c0acd931f3776369585a1c55b04c57"}, + {file = "rpds_py-0.10.6-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:5ee97c683eaface61d38ec9a489e353d36444cdebb128a27fe486a291647aff6"}, + {file = "rpds_py-0.10.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0713631d6e2d6c316c2f7b9320a34f44abb644fc487b77161d1724d883662e31"}, + {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5a53f5998b4bbff1cb2e967e66ab2addc67326a274567697379dd1e326bded7"}, + {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6a555ae3d2e61118a9d3e549737bb4a56ff0cec88a22bd1dfcad5b4e04759175"}, + {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:945eb4b6bb8144909b203a88a35e0a03d22b57aefb06c9b26c6e16d72e5eb0f0"}, + {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:52c215eb46307c25f9fd2771cac8135d14b11a92ae48d17968eda5aa9aaf5071"}, + {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1b3cd23d905589cb205710b3988fc8f46d4a198cf12862887b09d7aaa6bf9b9"}, + {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:64ccc28683666672d7c166ed465c09cee36e306c156e787acef3c0c62f90da5a"}, + {file = "rpds_py-0.10.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:516a611a2de12fbea70c78271e558f725c660ce38e0006f75139ba337d56b1f6"}, + {file = "rpds_py-0.10.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9ff93d3aedef11f9c4540cf347f8bb135dd9323a2fc705633d83210d464c579d"}, + {file = "rpds_py-0.10.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d858532212f0650be12b6042ff4378dc2efbb7792a286bee4489eaa7ba010586"}, + {file = "rpds_py-0.10.6-cp312-none-win32.whl", hash = "sha256:3c4eff26eddac49d52697a98ea01b0246e44ca82ab09354e94aae8823e8bda02"}, + {file = "rpds_py-0.10.6-cp312-none-win_amd64.whl", hash = "sha256:150eec465dbc9cbca943c8e557a21afdcf9bab8aaabf386c44b794c2f94143d2"}, + {file = "rpds_py-0.10.6-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:cf693eb4a08eccc1a1b636e4392322582db2a47470d52e824b25eca7a3977b53"}, + {file = "rpds_py-0.10.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4134aa2342f9b2ab6c33d5c172e40f9ef802c61bb9ca30d21782f6e035ed0043"}, + {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e782379c2028a3611285a795b89b99a52722946d19fc06f002f8b53e3ea26ea9"}, + {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2f6da6d842195fddc1cd34c3da8a40f6e99e4a113918faa5e60bf132f917c247"}, + {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4a9fe992887ac68256c930a2011255bae0bf5ec837475bc6f7edd7c8dfa254e"}, + {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b788276a3c114e9f51e257f2a6f544c32c02dab4aa7a5816b96444e3f9ffc336"}, + {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:caa1afc70a02645809c744eefb7d6ee8fef7e2fad170ffdeacca267fd2674f13"}, + {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bddd4f91eede9ca5275e70479ed3656e76c8cdaaa1b354e544cbcf94c6fc8ac4"}, + {file = "rpds_py-0.10.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:775049dfa63fb58293990fc59473e659fcafd953bba1d00fc5f0631a8fd61977"}, + {file = "rpds_py-0.10.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:c6c45a2d2b68c51fe3d9352733fe048291e483376c94f7723458cfd7b473136b"}, + {file = "rpds_py-0.10.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0699ab6b8c98df998c3eacf51a3b25864ca93dab157abe358af46dc95ecd9801"}, + {file = "rpds_py-0.10.6-cp38-none-win32.whl", hash = "sha256:ebdab79f42c5961682654b851f3f0fc68e6cc7cd8727c2ac4ffff955154123c1"}, + {file = "rpds_py-0.10.6-cp38-none-win_amd64.whl", hash = "sha256:24656dc36f866c33856baa3ab309da0b6a60f37d25d14be916bd3e79d9f3afcf"}, + {file = "rpds_py-0.10.6-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:0898173249141ee99ffcd45e3829abe7bcee47d941af7434ccbf97717df020e5"}, + {file = "rpds_py-0.10.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9e9184fa6c52a74a5521e3e87badbf9692549c0fcced47443585876fcc47e469"}, + {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5752b761902cd15073a527b51de76bbae63d938dc7c5c4ad1e7d8df10e765138"}, + {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:99a57006b4ec39dbfb3ed67e5b27192792ffb0553206a107e4aadb39c5004cd5"}, + {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09586f51a215d17efdb3a5f090d7cbf1633b7f3708f60a044757a5d48a83b393"}, + {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e225a6a14ecf44499aadea165299092ab0cba918bb9ccd9304eab1138844490b"}, + {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2039f8d545f20c4e52713eea51a275e62153ee96c8035a32b2abb772b6fc9e5"}, + {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:34ad87a831940521d462ac11f1774edf867c34172010f5390b2f06b85dcc6014"}, + {file = "rpds_py-0.10.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dcdc88b6b01015da066da3fb76545e8bb9a6880a5ebf89e0f0b2e3ca557b3ab7"}, + {file = "rpds_py-0.10.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:25860ed5c4e7f5e10c496ea78af46ae8d8468e0be745bd233bab9ca99bfd2647"}, + {file = "rpds_py-0.10.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7854a207ef77319ec457c1eb79c361b48807d252d94348305db4f4b62f40f7f3"}, + {file = "rpds_py-0.10.6-cp39-none-win32.whl", hash = "sha256:e6fcc026a3f27c1282c7ed24b7fcac82cdd70a0e84cc848c0841a3ab1e3dea2d"}, + {file = "rpds_py-0.10.6-cp39-none-win_amd64.whl", hash = "sha256:e98c4c07ee4c4b3acf787e91b27688409d918212dfd34c872201273fdd5a0e18"}, + {file = "rpds_py-0.10.6-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:68fe9199184c18d997d2e4293b34327c0009a78599ce703e15cd9a0f47349bba"}, + {file = "rpds_py-0.10.6-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:3339eca941568ed52d9ad0f1b8eb9fe0958fa245381747cecf2e9a78a5539c42"}, + {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a360cfd0881d36c6dc271992ce1eda65dba5e9368575663de993eeb4523d895f"}, + {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:031f76fc87644a234883b51145e43985aa2d0c19b063e91d44379cd2786144f8"}, + {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f36a9d751f86455dc5278517e8b65580eeee37d61606183897f122c9e51cef3"}, + {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:052a832078943d2b2627aea0d19381f607fe331cc0eb5df01991268253af8417"}, + {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:023574366002bf1bd751ebaf3e580aef4a468b3d3c216d2f3f7e16fdabd885ed"}, + {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:defa2c0c68734f4a82028c26bcc85e6b92cced99866af118cd6a89b734ad8e0d"}, + {file = "rpds_py-0.10.6-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:879fb24304ead6b62dbe5034e7b644b71def53c70e19363f3c3be2705c17a3b4"}, + {file = "rpds_py-0.10.6-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:53c43e10d398e365da2d4cc0bcaf0854b79b4c50ee9689652cdc72948e86f487"}, + {file = "rpds_py-0.10.6-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:3777cc9dea0e6c464e4b24760664bd8831738cc582c1d8aacf1c3f546bef3f65"}, + {file = "rpds_py-0.10.6-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:40578a6469e5d1df71b006936ce95804edb5df47b520c69cf5af264d462f2cbb"}, + {file = "rpds_py-0.10.6-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:cf71343646756a072b85f228d35b1d7407da1669a3de3cf47f8bbafe0c8183a4"}, + {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:10f32b53f424fc75ff7b713b2edb286fdbfc94bf16317890260a81c2c00385dc"}, + {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:81de24a1c51cfb32e1fbf018ab0bdbc79c04c035986526f76c33e3f9e0f3356c"}, + {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac17044876e64a8ea20ab132080ddc73b895b4abe9976e263b0e30ee5be7b9c2"}, + {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5e8a78bd4879bff82daef48c14d5d4057f6856149094848c3ed0ecaf49f5aec2"}, + {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78ca33811e1d95cac8c2e49cb86c0fb71f4d8409d8cbea0cb495b6dbddb30a55"}, + {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c63c3ef43f0b3fb00571cff6c3967cc261c0ebd14a0a134a12e83bdb8f49f21f"}, + {file = "rpds_py-0.10.6-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:7fde6d0e00b2fd0dbbb40c0eeec463ef147819f23725eda58105ba9ca48744f4"}, + {file = "rpds_py-0.10.6-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:79edd779cfc46b2e15b0830eecd8b4b93f1a96649bcb502453df471a54ce7977"}, + {file = "rpds_py-0.10.6-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9164ec8010327ab9af931d7ccd12ab8d8b5dc2f4c6a16cbdd9d087861eaaefa1"}, + {file = "rpds_py-0.10.6-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:d29ddefeab1791e3c751e0189d5f4b3dbc0bbe033b06e9c333dca1f99e1d523e"}, + {file = "rpds_py-0.10.6-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:30adb75ecd7c2a52f5e76af50644b3e0b5ba036321c390b8e7ec1bb2a16dd43c"}, + {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd609fafdcdde6e67a139898196698af37438b035b25ad63704fd9097d9a3482"}, + {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6eef672de005736a6efd565577101277db6057f65640a813de6c2707dc69f396"}, + {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6cf4393c7b41abbf07c88eb83e8af5013606b1cdb7f6bc96b1b3536b53a574b8"}, + {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ad857f42831e5b8d41a32437f88d86ead6c191455a3499c4b6d15e007936d4cf"}, + {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d7360573f1e046cb3b0dceeb8864025aa78d98be4bb69f067ec1c40a9e2d9df"}, + {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d08f63561c8a695afec4975fae445245386d645e3e446e6f260e81663bfd2e38"}, + {file = "rpds_py-0.10.6-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:f0f17f2ce0f3529177a5fff5525204fad7b43dd437d017dd0317f2746773443d"}, + {file = "rpds_py-0.10.6-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:442626328600bde1d09dc3bb00434f5374948838ce75c41a52152615689f9403"}, + {file = "rpds_py-0.10.6-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:e9616f5bd2595f7f4a04b67039d890348ab826e943a9bfdbe4938d0eba606971"}, + {file = "rpds_py-0.10.6.tar.gz", hash = "sha256:4ce5a708d65a8dbf3748d2474b580d606b1b9f91b5c6ab2a316e0b0cf7a4ba50"}, ] [[package]] name = "ruamel-yaml" -version = "0.17.35" +version = "0.17.39" description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order" optional = false python-versions = ">=3" files = [ - {file = "ruamel.yaml-0.17.35-py3-none-any.whl", hash = "sha256:b105e3e6fc15b41fdb201ba1b95162ae566a4ef792b9f884c46b4ccc5513a87a"}, - {file = "ruamel.yaml-0.17.35.tar.gz", hash = "sha256:801046a9caacb1b43acc118969b49b96b65e8847f29029563b29ac61d02db61b"}, + {file = "ruamel.yaml-0.17.39-py3-none-any.whl", hash = "sha256:8df81a51384f2e6af73d88bede63ec437df4854a5a74841f40e7622471298457"}, + {file = "ruamel.yaml-0.17.39.tar.gz", hash = "sha256:ee9a9178a231306d2b260e67ba497c136d4639d58b08775ab67f5fb0f21e73f0"}, ] [package.dependencies] "ruamel.yaml.clib" = {version = ">=0.2.7", markers = "platform_python_implementation == \"CPython\" and python_version < \"3.13\""} [package.extras] -docs = ["ryd"] +docs = ["mercurial (>5.7)", "ryd"] jinja2 = ["ruamel.yaml.jinja2 (>=0.2)"] [[package]] @@ -2352,6 +2308,32 @@ files = [ {file = "ruamel.yaml.clib-0.2.8.tar.gz", hash = "sha256:beb2e0404003de9a4cab9753a8805a8fe9320ee6673136ed7f04255fe60bb512"}, ] +[[package]] +name = "ruff" +version = "0.1.1" +description = "An extremely fast Python linter, written in Rust." +optional = false +python-versions = ">=3.7" +files = [ + {file = "ruff-0.1.1-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:b7cdc893aef23ccc14c54bd79a8109a82a2c527e11d030b62201d86f6c2b81c5"}, + {file = "ruff-0.1.1-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:620d4b34302538dbd8bbbe8fdb8e8f98d72d29bd47e972e2b59ce6c1e8862257"}, + {file = "ruff-0.1.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a909d3930afdbc2e9fd893b0034479e90e7981791879aab50ce3d9f55205bd6"}, + {file = "ruff-0.1.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3305d1cb4eb8ff6d3e63a48d1659d20aab43b49fe987b3ca4900528342367145"}, + {file = "ruff-0.1.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c34ae501d0ec71acf19ee5d4d889e379863dcc4b796bf8ce2934a9357dc31db7"}, + {file = "ruff-0.1.1-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:6aa7e63c3852cf8fe62698aef31e563e97143a4b801b57f920012d0e07049a8d"}, + {file = "ruff-0.1.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2d68367d1379a6b47e61bc9de144a47bcdb1aad7903bbf256e4c3d31f11a87ae"}, + {file = "ruff-0.1.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bc11955f6ce3398d2afe81ad7e49d0ebf0a581d8bcb27b8c300281737735e3a3"}, + {file = "ruff-0.1.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cbbd8eead88ea83a250499074e2a8e9d80975f0b324b1e2e679e4594da318c25"}, + {file = "ruff-0.1.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:f4780e2bb52f3863a565ec3f699319d3493b83ff95ebbb4993e59c62aaf6e75e"}, + {file = "ruff-0.1.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:8f5b24daddf35b6c207619301170cae5d2699955829cda77b6ce1e5fc69340df"}, + {file = "ruff-0.1.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:d3f9ac658ba29e07b95c80fa742b059a55aefffa8b1e078bc3c08768bdd4b11a"}, + {file = "ruff-0.1.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:3521bf910104bf781e6753282282acc145cbe3eff79a1ce6b920404cd756075a"}, + {file = "ruff-0.1.1-py3-none-win32.whl", hash = "sha256:ba3208543ab91d3e4032db2652dcb6c22a25787b85b8dc3aeff084afdc612e5c"}, + {file = "ruff-0.1.1-py3-none-win_amd64.whl", hash = "sha256:3ff3006c97d9dc396b87fb46bb65818e614ad0181f059322df82bbfe6944e264"}, + {file = "ruff-0.1.1-py3-none-win_arm64.whl", hash = "sha256:e140bd717c49164c8feb4f65c644046fe929c46f42493672853e3213d7bdbce2"}, + {file = "ruff-0.1.1.tar.gz", hash = "sha256:c90461ae4abec261609e5ea436de4a4b5f2822921cf04c16d2cc9327182dbbcc"}, +] + [[package]] name = "scipy" version = "1.9.3" @@ -2502,60 +2484,60 @@ pandas = ["pandas (>=1.3.5)"] [[package]] name = "sqlalchemy" -version = "2.0.21" +version = "2.0.22" description = "Database Abstraction Library" optional = false python-versions = ">=3.7" files = [ - {file = "SQLAlchemy-2.0.21-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1e7dc99b23e33c71d720c4ae37ebb095bebebbd31a24b7d99dfc4753d2803ede"}, - {file = "SQLAlchemy-2.0.21-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7f0c4ee579acfe6c994637527c386d1c22eb60bc1c1d36d940d8477e482095d4"}, - {file = "SQLAlchemy-2.0.21-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f7d57a7e140efe69ce2d7b057c3f9a595f98d0bbdfc23fd055efdfbaa46e3a5"}, - {file = "SQLAlchemy-2.0.21-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ca38746eac23dd7c20bec9278d2058c7ad662b2f1576e4c3dbfcd7c00cc48fa"}, - {file = "SQLAlchemy-2.0.21-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3cf229704074bce31f7f47d12883afee3b0a02bb233a0ba45ddbfe542939cca4"}, - {file = "SQLAlchemy-2.0.21-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fb87f763b5d04a82ae84ccff25554ffd903baafba6698e18ebaf32561f2fe4aa"}, - {file = "SQLAlchemy-2.0.21-cp310-cp310-win32.whl", hash = "sha256:89e274604abb1a7fd5c14867a412c9d49c08ccf6ce3e1e04fffc068b5b6499d4"}, - {file = "SQLAlchemy-2.0.21-cp310-cp310-win_amd64.whl", hash = "sha256:e36339a68126ffb708dc6d1948161cea2a9e85d7d7b0c54f6999853d70d44430"}, - {file = "SQLAlchemy-2.0.21-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bf8eebccc66829010f06fbd2b80095d7872991bfe8415098b9fe47deaaa58063"}, - {file = "SQLAlchemy-2.0.21-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b977bfce15afa53d9cf6a632482d7968477625f030d86a109f7bdfe8ce3c064a"}, - {file = "SQLAlchemy-2.0.21-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ff3dc2f60dbf82c9e599c2915db1526d65415be323464f84de8db3e361ba5b9"}, - {file = "SQLAlchemy-2.0.21-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44ac5c89b6896f4740e7091f4a0ff2e62881da80c239dd9408f84f75a293dae9"}, - {file = "SQLAlchemy-2.0.21-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:87bf91ebf15258c4701d71dcdd9c4ba39521fb6a37379ea68088ce8cd869b446"}, - {file = "SQLAlchemy-2.0.21-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b69f1f754d92eb1cc6b50938359dead36b96a1dcf11a8670bff65fd9b21a4b09"}, - {file = "SQLAlchemy-2.0.21-cp311-cp311-win32.whl", hash = "sha256:af520a730d523eab77d754f5cf44cc7dd7ad2d54907adeb3233177eeb22f271b"}, - {file = "SQLAlchemy-2.0.21-cp311-cp311-win_amd64.whl", hash = "sha256:141675dae56522126986fa4ca713739d00ed3a6f08f3c2eb92c39c6dfec463ce"}, - {file = "SQLAlchemy-2.0.21-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:56628ca27aa17b5890391ded4e385bf0480209726f198799b7e980c6bd473bd7"}, - {file = "SQLAlchemy-2.0.21-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:db726be58837fe5ac39859e0fa40baafe54c6d54c02aba1d47d25536170b690f"}, - {file = "SQLAlchemy-2.0.21-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e7421c1bfdbb7214313919472307be650bd45c4dc2fcb317d64d078993de045b"}, - {file = "SQLAlchemy-2.0.21-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:632784f7a6f12cfa0e84bf2a5003b07660addccf5563c132cd23b7cc1d7371a9"}, - {file = "SQLAlchemy-2.0.21-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:f6f7276cf26145a888f2182a98f204541b519d9ea358a65d82095d9c9e22f917"}, - {file = "SQLAlchemy-2.0.21-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2a1f7ffac934bc0ea717fa1596f938483fb8c402233f9b26679b4f7b38d6ab6e"}, - {file = "SQLAlchemy-2.0.21-cp312-cp312-win32.whl", hash = "sha256:bfece2f7cec502ec5f759bbc09ce711445372deeac3628f6fa1c16b7fb45b682"}, - {file = "SQLAlchemy-2.0.21-cp312-cp312-win_amd64.whl", hash = "sha256:526b869a0f4f000d8d8ee3409d0becca30ae73f494cbb48801da0129601f72c6"}, - {file = "SQLAlchemy-2.0.21-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:7614f1eab4336df7dd6bee05bc974f2b02c38d3d0c78060c5faa4cd1ca2af3b8"}, - {file = "SQLAlchemy-2.0.21-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d59cb9e20d79686aa473e0302e4a82882d7118744d30bb1dfb62d3c47141b3ec"}, - {file = "SQLAlchemy-2.0.21-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a95aa0672e3065d43c8aa80080cdd5cc40fe92dc873749e6c1cf23914c4b83af"}, - {file = "SQLAlchemy-2.0.21-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:8c323813963b2503e54d0944813cd479c10c636e3ee223bcbd7bd478bf53c178"}, - {file = "SQLAlchemy-2.0.21-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:419b1276b55925b5ac9b4c7044e999f1787c69761a3c9756dec6e5c225ceca01"}, - {file = "SQLAlchemy-2.0.21-cp37-cp37m-win32.whl", hash = "sha256:4615623a490e46be85fbaa6335f35cf80e61df0783240afe7d4f544778c315a9"}, - {file = "SQLAlchemy-2.0.21-cp37-cp37m-win_amd64.whl", hash = "sha256:cca720d05389ab1a5877ff05af96551e58ba65e8dc65582d849ac83ddde3e231"}, - {file = "SQLAlchemy-2.0.21-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b4eae01faee9f2b17f08885e3f047153ae0416648f8e8c8bd9bc677c5ce64be9"}, - {file = "SQLAlchemy-2.0.21-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3eb7c03fe1cd3255811cd4e74db1ab8dca22074d50cd8937edf4ef62d758cdf4"}, - {file = "SQLAlchemy-2.0.21-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c2d494b6a2a2d05fb99f01b84cc9af9f5f93bf3e1e5dbdafe4bed0c2823584c1"}, - {file = "SQLAlchemy-2.0.21-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b19ae41ef26c01a987e49e37c77b9ad060c59f94d3b3efdfdbf4f3daaca7b5fe"}, - {file = "SQLAlchemy-2.0.21-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:fc6b15465fabccc94bf7e38777d665b6a4f95efd1725049d6184b3a39fd54880"}, - {file = "SQLAlchemy-2.0.21-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:014794b60d2021cc8ae0f91d4d0331fe92691ae5467a00841f7130fe877b678e"}, - {file = "SQLAlchemy-2.0.21-cp38-cp38-win32.whl", hash = "sha256:0268256a34806e5d1c8f7ee93277d7ea8cc8ae391f487213139018b6805aeaf6"}, - {file = "SQLAlchemy-2.0.21-cp38-cp38-win_amd64.whl", hash = "sha256:73c079e21d10ff2be54a4699f55865d4b275fd6c8bd5d90c5b1ef78ae0197301"}, - {file = "SQLAlchemy-2.0.21-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:785e2f2c1cb50d0a44e2cdeea5fd36b5bf2d79c481c10f3a88a8be4cfa2c4615"}, - {file = "SQLAlchemy-2.0.21-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c111cd40910ffcb615b33605fc8f8e22146aeb7933d06569ac90f219818345ef"}, - {file = "SQLAlchemy-2.0.21-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9cba4e7369de663611ce7460a34be48e999e0bbb1feb9130070f0685e9a6b66"}, - {file = "SQLAlchemy-2.0.21-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50a69067af86ec7f11a8e50ba85544657b1477aabf64fa447fd3736b5a0a4f67"}, - {file = "SQLAlchemy-2.0.21-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ccb99c3138c9bde118b51a289d90096a3791658da9aea1754667302ed6564f6e"}, - {file = "SQLAlchemy-2.0.21-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:513fd5b6513d37e985eb5b7ed89da5fd9e72354e3523980ef00d439bc549c9e9"}, - {file = "SQLAlchemy-2.0.21-cp39-cp39-win32.whl", hash = "sha256:f9fefd6298433b6e9188252f3bff53b9ff0443c8fde27298b8a2b19f6617eeb9"}, - {file = "SQLAlchemy-2.0.21-cp39-cp39-win_amd64.whl", hash = "sha256:2e617727fe4091cedb3e4409b39368f424934c7faa78171749f704b49b4bb4ce"}, - {file = "SQLAlchemy-2.0.21-py3-none-any.whl", hash = "sha256:ea7da25ee458d8f404b93eb073116156fd7d8c2a776d8311534851f28277b4ce"}, - {file = "SQLAlchemy-2.0.21.tar.gz", hash = "sha256:05b971ab1ac2994a14c56b35eaaa91f86ba080e9ad481b20d99d77f381bb6258"}, + {file = "SQLAlchemy-2.0.22-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f146c61ae128ab43ea3a0955de1af7e1633942c2b2b4985ac51cc292daf33222"}, + {file = "SQLAlchemy-2.0.22-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:875de9414393e778b655a3d97d60465eb3fae7c919e88b70cc10b40b9f56042d"}, + {file = "SQLAlchemy-2.0.22-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:13790cb42f917c45c9c850b39b9941539ca8ee7917dacf099cc0b569f3d40da7"}, + {file = "SQLAlchemy-2.0.22-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e04ab55cf49daf1aeb8c622c54d23fa4bec91cb051a43cc24351ba97e1dd09f5"}, + {file = "SQLAlchemy-2.0.22-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a42c9fa3abcda0dcfad053e49c4f752eef71ecd8c155221e18b99d4224621176"}, + {file = "SQLAlchemy-2.0.22-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:14cd3bcbb853379fef2cd01e7c64a5d6f1d005406d877ed9509afb7a05ff40a5"}, + {file = "SQLAlchemy-2.0.22-cp310-cp310-win32.whl", hash = "sha256:d143c5a9dada696bcfdb96ba2de4a47d5a89168e71d05a076e88a01386872f97"}, + {file = "SQLAlchemy-2.0.22-cp310-cp310-win_amd64.whl", hash = "sha256:ccd87c25e4c8559e1b918d46b4fa90b37f459c9b4566f1dfbce0eb8122571547"}, + {file = "SQLAlchemy-2.0.22-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4f6ff392b27a743c1ad346d215655503cec64405d3b694228b3454878bf21590"}, + {file = "SQLAlchemy-2.0.22-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f776c2c30f0e5f4db45c3ee11a5f2a8d9de68e81eb73ec4237de1e32e04ae81c"}, + {file = "SQLAlchemy-2.0.22-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8f1792d20d2f4e875ce7a113f43c3561ad12b34ff796b84002a256f37ce9437"}, + {file = "SQLAlchemy-2.0.22-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d80eeb5189d7d4b1af519fc3f148fe7521b9dfce8f4d6a0820e8f5769b005051"}, + {file = "SQLAlchemy-2.0.22-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:69fd9e41cf9368afa034e1c81f3570afb96f30fcd2eb1ef29cb4d9371c6eece2"}, + {file = "SQLAlchemy-2.0.22-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:54bcceaf4eebef07dadfde424f5c26b491e4a64e61761dea9459103ecd6ccc95"}, + {file = "SQLAlchemy-2.0.22-cp311-cp311-win32.whl", hash = "sha256:7ee7ccf47aa503033b6afd57efbac6b9e05180f492aeed9fcf70752556f95624"}, + {file = "SQLAlchemy-2.0.22-cp311-cp311-win_amd64.whl", hash = "sha256:b560f075c151900587ade06706b0c51d04b3277c111151997ea0813455378ae0"}, + {file = "SQLAlchemy-2.0.22-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:2c9bac865ee06d27a1533471405ad240a6f5d83195eca481f9fc4a71d8b87df8"}, + {file = "SQLAlchemy-2.0.22-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:625b72d77ac8ac23da3b1622e2da88c4aedaee14df47c8432bf8f6495e655de2"}, + {file = "SQLAlchemy-2.0.22-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b39a6e21110204a8c08d40ff56a73ba542ec60bab701c36ce721e7990df49fb9"}, + {file = "SQLAlchemy-2.0.22-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53a766cb0b468223cafdf63e2d37f14a4757476157927b09300c8c5832d88560"}, + {file = "SQLAlchemy-2.0.22-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0e1ce8ebd2e040357dde01a3fb7d30d9b5736b3e54a94002641dfd0aa12ae6ce"}, + {file = "SQLAlchemy-2.0.22-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:505f503763a767556fa4deae5194b2be056b64ecca72ac65224381a0acab7ebe"}, + {file = "SQLAlchemy-2.0.22-cp312-cp312-win32.whl", hash = "sha256:154a32f3c7b00de3d090bc60ec8006a78149e221f1182e3edcf0376016be9396"}, + {file = "SQLAlchemy-2.0.22-cp312-cp312-win_amd64.whl", hash = "sha256:129415f89744b05741c6f0b04a84525f37fbabe5dc3774f7edf100e7458c48cd"}, + {file = "SQLAlchemy-2.0.22-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3940677d341f2b685a999bffe7078697b5848a40b5f6952794ffcf3af150c301"}, + {file = "SQLAlchemy-2.0.22-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55914d45a631b81a8a2cb1a54f03eea265cf1783241ac55396ec6d735be14883"}, + {file = "SQLAlchemy-2.0.22-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2096d6b018d242a2bcc9e451618166f860bb0304f590d205173d317b69986c95"}, + {file = "SQLAlchemy-2.0.22-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:19c6986cf2fb4bc8e0e846f97f4135a8e753b57d2aaaa87c50f9acbe606bd1db"}, + {file = "SQLAlchemy-2.0.22-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:6ac28bd6888fe3c81fbe97584eb0b96804bd7032d6100b9701255d9441373ec1"}, + {file = "SQLAlchemy-2.0.22-cp37-cp37m-win32.whl", hash = "sha256:cb9a758ad973e795267da334a92dd82bb7555cb36a0960dcabcf724d26299db8"}, + {file = "SQLAlchemy-2.0.22-cp37-cp37m-win_amd64.whl", hash = "sha256:40b1206a0d923e73aa54f0a6bd61419a96b914f1cd19900b6c8226899d9742ad"}, + {file = "SQLAlchemy-2.0.22-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3aa1472bf44f61dd27987cd051f1c893b7d3b17238bff8c23fceaef4f1133868"}, + {file = "SQLAlchemy-2.0.22-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:56a7e2bb639df9263bf6418231bc2a92a773f57886d371ddb7a869a24919face"}, + {file = "SQLAlchemy-2.0.22-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ccca778c0737a773a1ad86b68bda52a71ad5950b25e120b6eb1330f0df54c3d0"}, + {file = "SQLAlchemy-2.0.22-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c6c3e9350f9fb16de5b5e5fbf17b578811a52d71bb784cc5ff71acb7de2a7f9"}, + {file = "SQLAlchemy-2.0.22-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:564e9f9e4e6466273dbfab0e0a2e5fe819eec480c57b53a2cdee8e4fdae3ad5f"}, + {file = "SQLAlchemy-2.0.22-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:af66001d7b76a3fab0d5e4c1ec9339ac45748bc4a399cbc2baa48c1980d3c1f4"}, + {file = "SQLAlchemy-2.0.22-cp38-cp38-win32.whl", hash = "sha256:9e55dff5ec115316dd7a083cdc1a52de63693695aecf72bc53a8e1468ce429e5"}, + {file = "SQLAlchemy-2.0.22-cp38-cp38-win_amd64.whl", hash = "sha256:4e869a8ff7ee7a833b74868a0887e8462445ec462432d8cbeff5e85f475186da"}, + {file = "SQLAlchemy-2.0.22-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9886a72c8e6371280cb247c5d32c9c8fa141dc560124348762db8a8b236f8692"}, + {file = "SQLAlchemy-2.0.22-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a571bc8ac092a3175a1d994794a8e7a1f2f651e7c744de24a19b4f740fe95034"}, + {file = "SQLAlchemy-2.0.22-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8db5ba8b7da759b727faebc4289a9e6a51edadc7fc32207a30f7c6203a181592"}, + {file = "SQLAlchemy-2.0.22-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b0b3f2686c3f162123adba3cb8b626ed7e9b8433ab528e36ed270b4f70d1cdb"}, + {file = "SQLAlchemy-2.0.22-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0c1fea8c0abcb070ffe15311853abfda4e55bf7dc1d4889497b3403629f3bf00"}, + {file = "SQLAlchemy-2.0.22-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4bb062784f37b2d75fd9b074c8ec360ad5df71f933f927e9e95c50eb8e05323c"}, + {file = "SQLAlchemy-2.0.22-cp39-cp39-win32.whl", hash = "sha256:58a3aba1bfb32ae7af68da3f277ed91d9f57620cf7ce651db96636790a78b736"}, + {file = "SQLAlchemy-2.0.22-cp39-cp39-win_amd64.whl", hash = "sha256:92e512a6af769e4725fa5b25981ba790335d42c5977e94ded07db7d641490a85"}, + {file = "SQLAlchemy-2.0.22-py3-none-any.whl", hash = "sha256:3076740335e4aaadd7deb3fe6dcb96b3015f1613bd190a4e1634e1b99b02ec86"}, + {file = "SQLAlchemy-2.0.22.tar.gz", hash = "sha256:5434cc601aa17570d79e5377f5fd45ff92f9379e2abed0be5e8c2fba8d353d2b"}, ] [package.dependencies] @@ -2735,13 +2717,13 @@ dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake [[package]] name = "urllib3" -version = "2.0.6" +version = "2.0.7" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.7" files = [ - {file = "urllib3-2.0.6-py3-none-any.whl", hash = "sha256:7a7c7003b000adf9e7ca2a377c9688bbc54ed41b985789ed576570342a375cd2"}, - {file = "urllib3-2.0.6.tar.gz", hash = "sha256:b19e1a85d206b56d7df1d5e683df4a7725252a964e3993648dd0fb5a1c157564"}, + {file = "urllib3-2.0.7-py3-none-any.whl", hash = "sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e"}, + {file = "urllib3-2.0.7.tar.gz", hash = "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84"}, ] [package.extras] @@ -2942,4 +2924,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "a5b79c11b79f10b7859a634cae16bb50ccd7911364a93e16ac6c14fc0e76422c" +content-hash = "e8f5802a81549cbceeef97099e09377366bbb7487316ae7acb267f4bf3f7a6dd" diff --git a/pyproject.toml b/pyproject.toml index 34b8dd0..5567ab9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,7 +17,7 @@ packages = [ [tool.poetry.dependencies] python = "^3.8" # linkml-validator = ">=0.4.4" -pydantic = "^2.0" +pydantic = "^2.4" pyyaml = ">=5.0.0" requests = "^2.24.0" ordered-set = ">=4.1.0" @@ -27,16 +27,14 @@ loguru = "*" sssom = "^0.3.41" [tool.poetry.dev-dependencies] +black = "^23.10.0" +ruff = "*" pytest = ">=6.0.0" biolink-model = ">=3.0.1" -autoflake = "^1.3.1" -black = "22.3.0" -isort = "^5.0.6" dask = ">=2022.5.2" -mkdocs = ">=1.3.0" -mkdocs-material = ">=8.3.4" -mkdocstrings = "^0.19.0" -mkdocstrings-python = "*" +mkdocs = ">=1.4.2" +mkdocs-material = ">=9.1.16" +mkdocstrings = {extras = ["python"], version = ">=0.22.0"} [tool.poetry.scripts] koza = "koza.main:typer_app" diff --git a/src/koza/model/config/pydantic_config.py b/src/koza/model/config/pydantic_config.py index 5a6a26d..5347887 100644 --- a/src/koza/model/config/pydantic_config.py +++ b/src/koza/model/config/pydantic_config.py @@ -1,10 +1,12 @@ -class PydanticConfig: - """ - Pydantic config - https://pydantic-docs.helpmanual.io/usage/model_config/ - """ +""" +Pydantic config: +https://docs.pydantic.dev/latest/api/config/ +""" - validate_assignment = True - validate_all = True - underscore_attrs_are_private = True - extra = 'forbid' +from pydantic import ConfigDict + +PYDANTIC_CONFIG = ConfigDict( + validate_assignment = True, + validate_default = True, + extra = 'forbid', +) \ No newline at end of file diff --git a/src/koza/model/config/source_config.py b/src/koza/model/config/source_config.py index 3e21904..54aece1 100644 --- a/src/koza/model/config/source_config.py +++ b/src/koza/model/config/source_config.py @@ -9,16 +9,16 @@ from dataclasses import field from enum import Enum from pathlib import Path -from typing import Dict, List, Union, Literal +from typing import Dict, List, Union, Literal, Optional import yaml from loguru import logger -from pydantic import StrictFloat, StrictInt, StrictStr +from pydantic import StrictFloat, StrictInt, StrictStr, computed_field from pydantic.dataclasses import dataclass from sssom.parsers import parse_sssom_table from sssom.util import filter_prefixes, merge_msdf -from koza.model.config.pydantic_config import PydanticConfig +from koza.model.config.pydantic_config import PYDANTIC_CONFIG class FilterCode(str, Enum): @@ -27,52 +27,52 @@ class FilterCode(str, Enum): This should be aligned with https://docs.python.org/3/library/operator.html """ - gt = 'gt' - ge = 'ge' - lt = 'lt' - lte = 'le' - eq = 'eq' - ne = 'ne' - inlist = 'in' + gt = "gt" + ge = "ge" + lt = "lt" + lte = "le" + eq = "eq" + ne = "ne" + inlist = "in" class FilterInclusion(str, Enum): """Enum for filter inclusion/exclusion""" - include = 'include' - exclude = 'exclude' + include = "include" + exclude = "exclude" class FieldType(str, Enum): """Enum for field types""" - str = 'str' - int = 'int' - float = 'float' + str = "str" + int = "int" + float = "float" class FormatType(str, Enum): """Enum for supported file types""" - csv = 'csv' - jsonl = 'jsonl' - json = 'json' - yaml = 'yaml' - xml = 'xml' # TODO + csv = "csv" + jsonl = "jsonl" + json = "json" + yaml = "yaml" + xml = "xml" # TODO class HeaderMode(str, Enum): """Enum for supported header modes in addition to an index based lookup""" - infer = 'infer' - none = 'none' + infer = "infer" + none = "none" class MapErrorEnum(str, Enum): """Enum for how to handle key errors in map files""" - warning = 'warning' - error = 'error' + warning = "warning" + error = "error" class OutputFormat(str, Enum): @@ -80,15 +80,15 @@ class OutputFormat(str, Enum): Output formats """ - tsv = 'tsv' - jsonl = 'jsonl' - kgx = 'kgx' + tsv = "tsv" + jsonl = "jsonl" + kgx = "kgx" class StandardFormat(str, Enum): - gpi = 'gpi' - bgi = 'bgi' - oban = 'oban' + gpi = "gpi" + bgi = "bgi" + oban = "oban" class TransformMode(str, Enum): @@ -99,8 +99,8 @@ class TransformMode(str, Enum): a for loop is being used to iterate over a file """ - flat = 'flat' - loop = 'loop' + flat = "flat" + loop = "loop" @dataclass(frozen=True) @@ -121,21 +121,21 @@ class DatasetDescription: than documentation """ - id: str = None # TODO constrain to a curie? - name: str = None # If empty use source name - ingest_title: str = None # Map to biolink name - ingest_url: str = None # Maps to biolink iri - description: str = None - source: str = None - provided_by: str = None - license: str = None - rights: str = None + id: Optional[str] = None # TODO constrain to a curie? + name: Optional[str] = None # If empty use source name + ingest_title: Optional[str] = None # Map to biolink name + ingest_url: Optional[str] = None # Maps to biolink iri + description: Optional[str] = None + source: Optional[str] = None + provided_by: Optional[str] = None + license: Optional[str] = None + rights: Optional[str] = None @dataclass() -class SSSOMConfig(): +class SSSOMConfig: """SSSOM config options - + Attributes: files: List of SSSOM files to use filter_prefixes: Optional list of prefixes to filter by @@ -149,11 +149,7 @@ class SSSOMConfig(): subject_target_prefixes: List[str] = field(default_factory=list) object_target_prefixes: List[str] = field(default_factory=list) - predicates = { - "exact": ["skos:exactMatch"], - "narrow": ["skos:narrowMatch"], - "broad": ["skos:broadMatch"] - } + predicates = {"exact": ["skos:exactMatch"], "narrow": ["skos:narrowMatch"], "broad": ["skos:broadMatch"]} def __post_init__(self): logger.debug("Building SSSOM Dataframe...") @@ -173,7 +169,7 @@ def apply_mapping(self, entity: dict) -> dict: entity["object"] = self._get_mapping(entity["object"], self.object_target_prefixes) return entity - + def _merge_and_filter_sssom(self): mapping_sets = [] for file in self.files: @@ -181,16 +177,11 @@ def _merge_and_filter_sssom(self): mapping_sets.append(msdf) new_msdf = merge_msdf(*mapping_sets) filters = (self.subject_target_prefixes + self.object_target_prefixes) + list( - set(self.filter_prefixes) - - set(self.subject_target_prefixes) - - set(self.object_target_prefixes) + set(self.filter_prefixes) - set(self.subject_target_prefixes) - set(self.object_target_prefixes) ) logger.debug(f"Filtering SSSOM by {filters}") new_msdf = filter_prefixes( - df=new_msdf.df, - filter_prefixes=filters, - require_all_prefixes=False, - features=new_msdf.df.columns + df=new_msdf.df, filter_prefixes=filters, require_all_prefixes=False, features=new_msdf.df.columns ) return new_msdf @@ -202,17 +193,17 @@ def _build_sssom_lut(self) -> Dict: subject_id = row["subject_id"] object_id = row["object_id"] predicate = row["predicate_id"] - sssom_lut = self._set_mapping(subject_id, object_id, predicate, match='broad', lut=sssom_lut) - sssom_lut = self._set_mapping(object_id, subject_id, predicate, match='narrow', lut=sssom_lut) + sssom_lut = self._set_mapping(subject_id, object_id, predicate, match="broad", lut=sssom_lut) + sssom_lut = self._set_mapping(object_id, subject_id, predicate, match="narrow", lut=sssom_lut) return sssom_lut - def _has_match(self, predicate, match: Literal['narrow', 'broad']): - if match == 'narrow': - return predicate in self.predicates['narrow'] or predicate in self.predicates['exact'] - if match == 'broad': - return predicate in self.predicates['broad'] or predicate in self.predicates['exact'] + def _has_match(self, predicate, match: Literal["narrow", "broad"]): + if match == "narrow": + return predicate in self.predicates["narrow"] or predicate in self.predicates["exact"] + if match == "broad": + return predicate in self.predicates["broad"] or predicate in self.predicates["exact"] - def _has_mapping(self, id, target_prefixes = None): + def _has_mapping(self, id, target_prefixes=None): """Check if an ID has a mapping.""" if target_prefixes is None: return id in self.lut @@ -224,36 +215,34 @@ def _has_mapping(self, id, target_prefixes = None): return True # logger.warning(f"Could not find mapping in SSSOM lookup table for {id} with any of {target_prefixes}") return False - + def _get_mapping(self, id, target_prefixes): """Get the mapping for an ID.""" for target_prefix in target_prefixes: if target_prefix in self.lut[id]: return self.lut[id][target_prefix] raise KeyError(f"Could not find mapping for {id} in {target_prefixes}: {self.lut[id]}") - - def _set_mapping(self, original_id, mapped_id, predicate, match: Literal['narrow', 'broad'], lut: Dict[str, dict]): + + def _set_mapping(self, original_id, mapped_id, predicate, match: Literal["narrow", "broad"], lut: Dict[str, dict]): """Set a mapping for an ID.""" original_prefix = original_id.split(":")[0] mapped_prefix = mapped_id.split(":")[0] target_prefixes = self.subject_target_prefixes + self.object_target_prefixes if ( - (original_prefix in self.filter_prefixes or len(self.filter_prefixes) == 0) - and - mapped_prefix in target_prefixes - ): + original_prefix in self.filter_prefixes or len(self.filter_prefixes) == 0 + ) and mapped_prefix in target_prefixes: if original_id not in lut: lut[original_id] = {} - if mapped_prefix in lut[original_id] : + if mapped_prefix in lut[original_id]: logger.warning(f"Duplicate mapping for {original_id} to {mapped_prefix}") elif self._has_match(predicate, match): lut[original_id][mapped_prefix] = mapped_id else: - pass # do something else + pass # do something else return lut -@dataclass(config=PydanticConfig) +@dataclass(config=PYDANTIC_CONFIG) class SourceConfig: """ Source config data class @@ -283,31 +272,32 @@ class SourceConfig: name: str files: List[Union[str, Path]] - file_archive: Union[str, Path] = None + file_archive: Optional[Union[str, Path]] = None format: FormatType = FormatType.csv - sssom_config: SSSOMConfig = None - columns: List[Union[str, Dict[str, FieldType]]] = None - required_properties: List[str] = None - metadata: Union[DatasetDescription, str] = None - delimiter: str = None + sssom_config: Optional[SSSOMConfig] = None + columns: Optional[List[Union[str, Dict[str, FieldType]]]] = None + field_type_map: Optional[dict] = None + required_properties: Optional[List[str]] = None + metadata: Optional[Union[DatasetDescription, str]] = None + delimiter: Optional[str] = None header: Union[int, HeaderMode] = HeaderMode.infer - header_delimiter: str = None - comment_char: str = '#' + header_delimiter: Optional[str] = None + comment_char: str = "#" skip_blank_lines: bool = True filters: List[ColumnFilter] = field(default_factory=list) - json_path: List[Union[StrictStr, StrictInt]] = None - transform_code: str = None + json_path: Optional[List[Union[StrictStr, StrictInt]]] = None + transform_code: Optional[str] = None transform_mode: TransformMode = TransformMode.flat - global_table: Union[str, Dict] = None - local_table: Union[str, Dict] = None + global_table: Optional[Union[str, Dict]] = None + local_table: Optional[Union[str, Dict]] = None def extract_archive(self): archive_path = Path(self.file_archive).parent # .absolute() - if self.file_archive.endswith('.tar.gz') or self.file_archive.endswith('.tar'): + if self.file_archive.endswith(".tar.gz") or self.file_archive.endswith(".tar"): with tarfile.open(self.file_archive) as archive: archive.extractall(archive_path) - elif self.file_archive.endswith('.zip'): - with zipfile.ZipFile(self.file_archive, 'r') as archive: + elif self.file_archive.endswith(".zip"): + with zipfile.ZipFile(self.file_archive, "r") as archive: archive.extractall(archive_path) else: raise ValueError("Error extracting archive. Supported archive types: .tar.gz, .zip") @@ -331,7 +321,7 @@ def __post_init__(self): files_as_paths.append(Path(file)) else: files_as_paths.append(file) - object.__setattr__(self, 'files', files_as_paths) + object.__setattr__(self, "files", files_as_paths) # self.files = files_as_paths <---- is this equivalent to the above? if self.metadata and isinstance(self.metadata, str): @@ -339,23 +329,20 @@ def __post_init__(self): # TODO enforce that this is imported via an include? # See https://github.com/monarch-initiative/koza/issues/46 try: - with open(self.metadata, 'r') as meta: - object.__setattr__(self, 'metadata', DatasetDescription(**yaml.safe_load(meta))) + with open(self.metadata, "r") as meta: + object.__setattr__(self, "metadata", DatasetDescription(**yaml.safe_load(meta))) except Exception as e: # TODO check for more explicit exceptions raise ValueError(f"Unable to load metadata from {self.metadata}: {e}") - if self.delimiter in ['tab', '\\t']: - object.__setattr__(self, 'delimiter', '\t') + if self.delimiter in ["tab", "\\t"]: + object.__setattr__(self, "delimiter", "\t") filtered_columns = [column_filter.column for column_filter in self.filters] all_columns = [] if self.columns: - all_columns = [ - next(iter(column)) if isinstance(column, Dict) else column - for column in self.columns - ] + all_columns = [next(iter(column)) if isinstance(column, Dict) else column for column in self.columns] if self.header == HeaderMode.none and not self.columns: raise ValueError( @@ -370,24 +357,20 @@ def __post_init__(self): raise (ValueError(f"Filter column {column} not in column list")) for column_filter in self.filters: - if column_filter.filter_code in ['lt', 'gt', 'lte', 'gte']: + if column_filter.filter_code in ["lt", "gt", "lte", "gte"]: # TODO determine if this should raise an exception # or instead try to type coerce the string to a float # type coercion is probably the best thing to do here if not isinstance(column_filter.value, (int, float)): - raise ValueError( - f"Filter value must be int or float for operator {column_filter.filter_code}" - ) - elif column_filter.filter_code == 'eq': + raise ValueError(f"Filter value must be int or float for operator {column_filter.filter_code}") + elif column_filter.filter_code == "eq": if not isinstance(column_filter.value, (str, int, float)): raise ValueError( f"Filter value must be string, int or float for operator {column_filter.filter_code}" ) - elif column_filter.filter_code == 'in': + elif column_filter.filter_code == "in": if not isinstance(column_filter.value, List): - raise ValueError( - f"Filter value must be List for operator {column_filter.filter_code}" - ) + raise ValueError(f"Filter value must be List for operator {column_filter.filter_code}") if self.format == FormatType.csv and self.required_properties: raise ValueError( @@ -408,41 +391,37 @@ def __post_init__(self): ) if self.columns: - _field_type_map = {} + field_type_map = {} for field in self.columns: if isinstance(field, str): - _field_type_map[field] = FieldType.str + field_type_map[field] = FieldType.str else: if len(field) != 1: # TODO expand this exception msg raise ValueError("Field type map contains more than one key") for key, val in field.items(): - _field_type_map[key] = val - object.__setattr__(self, '_field_type_map', _field_type_map) + field_type_map[key] = val + print(f"FIELD TYPE MAP: {field_type_map}") + self.field_type_map = field_type_map - @property - def field_type_map(self): - return self._field_type_map - -@dataclass(config=PydanticConfig) +@dataclass(config=PYDANTIC_CONFIG) class PrimaryFileConfig(SourceConfig): """ node_properties and edge_properties are used for configuring the KGX writer """ - node_properties: List[str] = None - edge_properties: List[str] = None + node_properties: Optional[List[str]] = None + edge_properties: Optional[List[str]] = None depends_on: List[str] = field(default_factory=list) on_map_failure: MapErrorEnum = MapErrorEnum.warning -@dataclass(config=PydanticConfig) +@dataclass(config=PYDANTIC_CONFIG) class MapFileConfig(SourceConfig): - key: str = None - values: List[str] = None - curie_prefix: str = None - add_curie_prefix_to_columns: List[str] = None - depends_on = None - + key: Optional[str] = None + values: Optional[List[str]] = None + curie_prefix: Optional[str] = None + add_curie_prefix_to_columns: Optional[List[str]] = None + depends_on: Optional[List[str]] = None diff --git a/tests/integration/test_archives.py b/tests/integration/test_archives.py index 326c334..0c4dc27 100644 --- a/tests/integration/test_archives.py +++ b/tests/integration/test_archives.py @@ -19,7 +19,7 @@ def test_archive_targz(): source_config = PrimaryFileConfig(**yaml.load(src, Loader=UniqueIncludeLoader)) # This method only happens after validation - force it now - source_config.__post_init_post_parse__() + source_config.__post_init__() assert os.path.exists(unzipped_data) From 5ab7437d9062957faa3cdae0fdccf8f99971f7e5 Mon Sep 17 00:00:00 2001 From: glass-ships Date: Thu, 19 Oct 2023 17:50:28 -0600 Subject: [PATCH 5/6] update test target and workflow --- .github/workflows/build.yaml | 37 --------------------------- .github/workflows/test.yaml | 49 ++++++++++++++++++++++++++++++++++++ Makefile | 6 ++--- 3 files changed, 52 insertions(+), 40 deletions(-) delete mode 100644 .github/workflows/build.yaml create mode 100644 .github/workflows/test.yaml diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml deleted file mode 100644 index 46d590b..0000000 --- a/.github/workflows/build.yaml +++ /dev/null @@ -1,37 +0,0 @@ -# Builds and runs pytest on ubuntu-latest -# Tests python versions >=3.6 -name: build - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - - workflow_dispatch: - -jobs: - # https://github.com/actions/setup-python - test-python3-ubuntu-latest: - name: test py${{ matrix.python-version }} on linux - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - python-version: ['3.8', '3.9', '3.10', '3.11'] - env: - PYTHON: ${{ matrix.python-version }} - OS: ubuntu - - steps: - - uses: actions/checkout@v3 - - - name: set up python - uses: actions/setup-python@v3 - with: - python-version: ${{ matrix.python-version }} - - - name: make test - run: | - pip install poetry - make test diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml new file mode 100644 index 0000000..eb7fd76 --- /dev/null +++ b/.github/workflows/test.yaml @@ -0,0 +1,49 @@ +# Builds and runs pytest on ubuntu-latest +# Tests python versions >=3.6 +name: Test Koza + +on: + push: + branches: [ main ] + pull_request: + workflow_dispatch: + +jobs: + # https://github.com/actions/setup-python + test-python3-ubuntu-latest: + name: test py${{ matrix.python-version }} on linux + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ['3.8', '3.9', '3.10', '3.11'] + env: + PYTHON: ${{ matrix.python-version }} + OS: ubuntu + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + + #---------------------------------------------- + # install & configure poetry + #---------------------------------------------- + - name: Install Poetry + uses: snok/install-poetry@v1 + + #---------------------------------------------- + # install your root project, if required + #---------------------------------------------- + - name: Install library + run: poetry install --with dev --no-interaction + + #---------------------------------------------- + # run pytest + #---------------------------------------------- + - name: Run tests + run: poetry run pytest tests diff --git a/Makefile b/Makefile index 915ba3b..149b179 100644 --- a/Makefile +++ b/Makefile @@ -25,11 +25,11 @@ build: poetry build .PHONY: test -test: install - $(RUN) python -m pytest +test: + $(RUN) pytest tests .PHONY: docs -docs: install +docs: $(RUN) typer src/koza/main.py utils docs --name koza --output docs/Usage/CLI.md $(RUN) mkdocs build From c62f2a41c88eed505cc3e7dc9faacc5c1d09eb00 Mon Sep 17 00:00:00 2001 From: glass-ships Date: Tue, 7 Nov 2023 14:51:36 -0700 Subject: [PATCH 6/6] add local pydantic v2 copy of biolink model for testing for now, skip validation --- .../declarative-protein-links-detailed.py | 3 +- .../custom-map-protein-links-detailed.py | 3 +- .../map-protein-links-detailed.py | 3 +- examples/string/protein-links-detailed.py | 3 +- poetry.lock | 575 +- pyproject.toml | 7 +- src/koza/model/biolink/pydanticmodel_v2.py | 19692 ++++++++++++++++ src/koza/model/config/source_config.py | 4 +- src/koza/model/config/sssom_config.py | 4 +- tests/unit/test_kgx_converter.py | 3 +- tests/unit/test_tsvwriter_node_and_edge.py | 3 +- tests/unit/test_tsvwriter_node_only.py | 3 +- tests/unit/test_validation.py | 49 +- 13 files changed, 20027 insertions(+), 325 deletions(-) create mode 100644 src/koza/model/biolink/pydanticmodel_v2.py diff --git a/examples/string-declarative/declarative-protein-links-detailed.py b/examples/string-declarative/declarative-protein-links-detailed.py index a6cbf4a..0aaf68d 100644 --- a/examples/string-declarative/declarative-protein-links-detailed.py +++ b/examples/string-declarative/declarative-protein-links-detailed.py @@ -1,7 +1,8 @@ import re import uuid -from biolink.pydanticmodel import PairwiseGeneToGeneInteraction, Protein +# from biolink.pydanticmodel_v2 import PairwiseGeneToGeneInteraction, Protein +from koza.model.biolink.pydanticmodel_v2 import PairwiseGeneToGeneInteraction, Protein from koza.cli_runner import get_koza_app diff --git a/examples/string-w-custom-map/custom-map-protein-links-detailed.py b/examples/string-w-custom-map/custom-map-protein-links-detailed.py index 82a1db6..9493c78 100644 --- a/examples/string-w-custom-map/custom-map-protein-links-detailed.py +++ b/examples/string-w-custom-map/custom-map-protein-links-detailed.py @@ -1,6 +1,7 @@ import uuid -from biolink.pydanticmodel import Gene, PairwiseGeneToGeneInteraction +# from biolink.pydanticmodel_v2 import Gene, PairwiseGeneToGeneInteraction +from koza.model.biolink.pydanticmodel_v2 import Gene, PairwiseGeneToGeneInteraction from koza.cli_runner import get_koza_app diff --git a/examples/string-w-map/map-protein-links-detailed.py b/examples/string-w-map/map-protein-links-detailed.py index fbaa074..f5516fc 100644 --- a/examples/string-w-map/map-protein-links-detailed.py +++ b/examples/string-w-map/map-protein-links-detailed.py @@ -1,6 +1,7 @@ import uuid -from biolink.pydanticmodel import Gene, PairwiseGeneToGeneInteraction +# from biolink.pydanticmodel_v2 import Gene, PairwiseGeneToGeneInteraction +from koza.model.biolink.pydanticmodel_v2 import Gene, PairwiseGeneToGeneInteraction from koza.cli_runner import get_koza_app diff --git a/examples/string/protein-links-detailed.py b/examples/string/protein-links-detailed.py index 50bca40..3fe9874 100644 --- a/examples/string/protein-links-detailed.py +++ b/examples/string/protein-links-detailed.py @@ -1,7 +1,8 @@ import re import uuid -from biolink.pydanticmodel import PairwiseGeneToGeneInteraction, Protein +# from biolink.pydanticmodel_v2 import PairwiseGeneToGeneInteraction, Protein +from koza.model.biolink.pydanticmodel_v2 import PairwiseGeneToGeneInteraction, Protein from koza.cli_runner import get_koza_app diff --git a/poetry.lock b/poetry.lock index f3032a5..64570a4 100644 --- a/poetry.lock +++ b/poetry.lock @@ -192,101 +192,101 @@ files = [ [[package]] name = "charset-normalizer" -version = "3.3.1" +version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7.0" files = [ - {file = "charset-normalizer-3.3.1.tar.gz", hash = "sha256:d9137a876020661972ca6eec0766d81aef8a5627df628b664b234b73396e727e"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8aee051c89e13565c6bd366813c386939f8e928af93c29fda4af86d25b73d8f8"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:352a88c3df0d1fa886562384b86f9a9e27563d4704ee0e9d56ec6fcd270ea690"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:223b4d54561c01048f657fa6ce41461d5ad8ff128b9678cfe8b2ecd951e3f8a2"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f861d94c2a450b974b86093c6c027888627b8082f1299dfd5a4bae8e2292821"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1171ef1fc5ab4693c5d151ae0fdad7f7349920eabbaca6271f95969fa0756c2d"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28f512b9a33235545fbbdac6a330a510b63be278a50071a336afc1b78781b147"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0e842112fe3f1a4ffcf64b06dc4c61a88441c2f02f373367f7b4c1aa9be2ad5"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3f9bc2ce123637a60ebe819f9fccc614da1bcc05798bbbaf2dd4ec91f3e08846"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f194cce575e59ffe442c10a360182a986535fd90b57f7debfaa5c845c409ecc3"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:9a74041ba0bfa9bc9b9bb2cd3238a6ab3b7618e759b41bd15b5f6ad958d17605"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:b578cbe580e3b41ad17b1c428f382c814b32a6ce90f2d8e39e2e635d49e498d1"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:6db3cfb9b4fcecb4390db154e75b49578c87a3b9979b40cdf90d7e4b945656e1"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:debb633f3f7856f95ad957d9b9c781f8e2c6303ef21724ec94bea2ce2fcbd056"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-win32.whl", hash = "sha256:87071618d3d8ec8b186d53cb6e66955ef2a0e4fa63ccd3709c0c90ac5a43520f"}, - {file = "charset_normalizer-3.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:e372d7dfd154009142631de2d316adad3cc1c36c32a38b16a4751ba78da2a397"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ae4070f741f8d809075ef697877fd350ecf0b7c5837ed68738607ee0a2c572cf"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:58e875eb7016fd014c0eea46c6fa92b87b62c0cb31b9feae25cbbe62c919f54d"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dbd95e300367aa0827496fe75a1766d198d34385a58f97683fe6e07f89ca3e3c"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de0b4caa1c8a21394e8ce971997614a17648f94e1cd0640fbd6b4d14cab13a72"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:985c7965f62f6f32bf432e2681173db41336a9c2611693247069288bcb0c7f8b"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a15c1fe6d26e83fd2e5972425a772cca158eae58b05d4a25a4e474c221053e2d"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ae55d592b02c4349525b6ed8f74c692509e5adffa842e582c0f861751701a673"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:be4d9c2770044a59715eb57c1144dedea7c5d5ae80c68fb9959515037cde2008"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:851cf693fb3aaef71031237cd68699dded198657ec1e76a76eb8be58c03a5d1f"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:31bbaba7218904d2eabecf4feec0d07469284e952a27400f23b6628439439fa7"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:871d045d6ccc181fd863a3cd66ee8e395523ebfbc57f85f91f035f50cee8e3d4"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:501adc5eb6cd5f40a6f77fbd90e5ab915c8fd6e8c614af2db5561e16c600d6f3"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f5fb672c396d826ca16a022ac04c9dce74e00a1c344f6ad1a0fdc1ba1f332213"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-win32.whl", hash = "sha256:bb06098d019766ca16fc915ecaa455c1f1cd594204e7f840cd6258237b5079a8"}, - {file = "charset_normalizer-3.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:8af5a8917b8af42295e86b64903156b4f110a30dca5f3b5aedea123fbd638bff"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:7ae8e5142dcc7a49168f4055255dbcced01dc1714a90a21f87448dc8d90617d1"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5b70bab78accbc672f50e878a5b73ca692f45f5b5e25c8066d748c09405e6a55"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ceca5876032362ae73b83347be8b5dbd2d1faf3358deb38c9c88776779b2e2f"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34d95638ff3613849f473afc33f65c401a89f3b9528d0d213c7037c398a51296"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9edbe6a5bf8b56a4a84533ba2b2f489d0046e755c29616ef8830f9e7d9cf5728"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6a02a3c7950cafaadcd46a226ad9e12fc9744652cc69f9e5534f98b47f3bbcf"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10b8dd31e10f32410751b3430996f9807fc4d1587ca69772e2aa940a82ab571a"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edc0202099ea1d82844316604e17d2b175044f9bcb6b398aab781eba957224bd"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b891a2f68e09c5ef989007fac11476ed33c5c9994449a4e2c3386529d703dc8b"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:71ef3b9be10070360f289aea4838c784f8b851be3ba58cf796262b57775c2f14"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:55602981b2dbf8184c098bc10287e8c245e351cd4fdcad050bd7199d5a8bf514"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:46fb9970aa5eeca547d7aa0de5d4b124a288b42eaefac677bde805013c95725c"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:520b7a142d2524f999447b3a0cf95115df81c4f33003c51a6ab637cbda9d0bf4"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-win32.whl", hash = "sha256:8ec8ef42c6cd5856a7613dcd1eaf21e5573b2185263d87d27c8edcae33b62a61"}, - {file = "charset_normalizer-3.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:baec8148d6b8bd5cee1ae138ba658c71f5b03e0d69d5907703e3e1df96db5e41"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:63a6f59e2d01310f754c270e4a257426fe5a591dc487f1983b3bbe793cf6bac6"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d6bfc32a68bc0933819cfdfe45f9abc3cae3877e1d90aac7259d57e6e0f85b1"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4f3100d86dcd03c03f7e9c3fdb23d92e32abbca07e7c13ebd7ddfbcb06f5991f"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39b70a6f88eebe239fa775190796d55a33cfb6d36b9ffdd37843f7c4c1b5dc67"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e12f8ee80aa35e746230a2af83e81bd6b52daa92a8afaef4fea4a2ce9b9f4fa"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7b6cefa579e1237ce198619b76eaa148b71894fb0d6bcf9024460f9bf30fd228"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:61f1e3fb621f5420523abb71f5771a204b33c21d31e7d9d86881b2cffe92c47c"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4f6e2a839f83a6a76854d12dbebde50e4b1afa63e27761549d006fa53e9aa80e"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:1ec937546cad86d0dce5396748bf392bb7b62a9eeb8c66efac60e947697f0e58"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:82ca51ff0fc5b641a2d4e1cc8c5ff108699b7a56d7f3ad6f6da9dbb6f0145b48"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:633968254f8d421e70f91c6ebe71ed0ab140220469cf87a9857e21c16687c034"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-win32.whl", hash = "sha256:c0c72d34e7de5604df0fde3644cc079feee5e55464967d10b24b1de268deceb9"}, - {file = "charset_normalizer-3.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:63accd11149c0f9a99e3bc095bbdb5a464862d77a7e309ad5938fbc8721235ae"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5a3580a4fdc4ac05f9e53c57f965e3594b2f99796231380adb2baaab96e22761"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2465aa50c9299d615d757c1c888bc6fef384b7c4aec81c05a0172b4400f98557"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cb7cd68814308aade9d0c93c5bd2ade9f9441666f8ba5aa9c2d4b389cb5e2a45"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91e43805ccafa0a91831f9cd5443aa34528c0c3f2cc48c4cb3d9a7721053874b"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:854cc74367180beb327ab9d00f964f6d91da06450b0855cbbb09187bcdb02de5"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c15070ebf11b8b7fd1bfff7217e9324963c82dbdf6182ff7050519e350e7ad9f"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c4c99f98fc3a1835af8179dcc9013f93594d0670e2fa80c83aa36346ee763d2"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3fb765362688821404ad6cf86772fc54993ec11577cd5a92ac44b4c2ba52155b"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:dced27917823df984fe0c80a5c4ad75cf58df0fbfae890bc08004cd3888922a2"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a66bcdf19c1a523e41b8e9d53d0cedbfbac2e93c649a2e9502cb26c014d0980c"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:ecd26be9f112c4f96718290c10f4caea6cc798459a3a76636b817a0ed7874e42"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:3f70fd716855cd3b855316b226a1ac8bdb3caf4f7ea96edcccc6f484217c9597"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:17a866d61259c7de1bdadef418a37755050ddb4b922df8b356503234fff7932c"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-win32.whl", hash = "sha256:548eefad783ed787b38cb6f9a574bd8664468cc76d1538215d510a3cd41406cb"}, - {file = "charset_normalizer-3.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:45f053a0ece92c734d874861ffe6e3cc92150e32136dd59ab1fb070575189c97"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bc791ec3fd0c4309a753f95bb6c749ef0d8ea3aea91f07ee1cf06b7b02118f2f"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0c8c61fb505c7dad1d251c284e712d4e0372cef3b067f7ddf82a7fa82e1e9a93"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2c092be3885a1b7899cd85ce24acedc1034199d6fca1483fa2c3a35c86e43041"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c2000c54c395d9e5e44c99dc7c20a64dc371f777faf8bae4919ad3e99ce5253e"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4cb50a0335382aac15c31b61d8531bc9bb657cfd848b1d7158009472189f3d62"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c30187840d36d0ba2893bc3271a36a517a717f9fd383a98e2697ee890a37c273"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe81b35c33772e56f4b6cf62cf4aedc1762ef7162a31e6ac7fe5e40d0149eb67"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0bf89afcbcf4d1bb2652f6580e5e55a840fdf87384f6063c4a4f0c95e378656"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:06cf46bdff72f58645434d467bf5228080801298fbba19fe268a01b4534467f5"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:3c66df3f41abee950d6638adc7eac4730a306b022570f71dd0bd6ba53503ab57"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:cd805513198304026bd379d1d516afbf6c3c13f4382134a2c526b8b854da1c2e"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:9505dc359edb6a330efcd2be825fdb73ee3e628d9010597aa1aee5aa63442e97"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:31445f38053476a0c4e6d12b047b08ced81e2c7c712e5a1ad97bc913256f91b2"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-win32.whl", hash = "sha256:bd28b31730f0e982ace8663d108e01199098432a30a4c410d06fe08fdb9e93f4"}, - {file = "charset_normalizer-3.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:555fe186da0068d3354cdf4bbcbc609b0ecae4d04c921cc13e209eece7720727"}, - {file = "charset_normalizer-3.3.1-py3-none-any.whl", hash = "sha256:800561453acdecedaac137bf09cd719c7a440b6800ec182f077bb8e7025fb708"}, + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, ] [[package]] @@ -327,13 +327,13 @@ files = [ [[package]] name = "curies" -version = "0.6.6" +version = "0.7.2" description = "Idiomatic conversion between URIs and compact URIs (CURIEs)." optional = false python-versions = ">=3.8" files = [ - {file = "curies-0.6.6-py3-none-any.whl", hash = "sha256:a4d13a82881a4ed8fb65f9bafa41e3154c249affb39accf4bcc5cb875db18a16"}, - {file = "curies-0.6.6.tar.gz", hash = "sha256:f0ae232060dd31b4adfcbe35aa16e490d09e33f0051dcf58a6c56fa9895cfecd"}, + {file = "curies-0.7.2-py3-none-any.whl", hash = "sha256:42725a047c0732f60b96e92b6251fe1709f6b3fadd9bfbd38c8ebddad99ee008"}, + {file = "curies-0.7.2.tar.gz", hash = "sha256:20956f6a285321fb5f66a133f134d743a29b53bb894793d7db5d3ae1609d36ea"}, ] [package.dependencies] @@ -599,13 +599,13 @@ test = ["faulthandler", "objgraph", "psutil"] [[package]] name = "griffe" -version = "0.36.7" +version = "0.36.9" description = "Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API." optional = false python-versions = ">=3.8" files = [ - {file = "griffe-0.36.7-py3-none-any.whl", hash = "sha256:7a09f8e9b97c7ebe227f6529a298bf7e0e742a9837ee261cc8260d50b4aa039f"}, - {file = "griffe-0.36.7.tar.gz", hash = "sha256:a6fe60b16720ca0cf63c9e667a4c05eea40dfe4abcf114741885f945b74c7071"}, + {file = "griffe-0.36.9-py3-none-any.whl", hash = "sha256:7874febe7cd81e8e47eb7b8130ff9d38c8f3656233c01d2d217d2e898a0925f5"}, + {file = "griffe-0.36.9.tar.gz", hash = "sha256:b4e510bf0ed1fc91c58453c68018a2247c561adec8f5dadc40275afc01f51eac"}, ] [package.dependencies] @@ -821,13 +821,13 @@ files = [ [[package]] name = "jsonschema" -version = "4.19.1" +version = "4.19.2" description = "An implementation of JSON Schema validation for Python" optional = false python-versions = ">=3.8" files = [ - {file = "jsonschema-4.19.1-py3-none-any.whl", hash = "sha256:cd5f1f9ed9444e554b38ba003af06c0a8c2868131e56bfbef0550fb450c0330e"}, - {file = "jsonschema-4.19.1.tar.gz", hash = "sha256:ec84cc37cfa703ef7cd4928db24f9cb31428a5d0fa77747b8b51a847458e0bbf"}, + {file = "jsonschema-4.19.2-py3-none-any.whl", hash = "sha256:eee9e502c788e89cb166d4d37f43084e3b64ab405c795c03d343a4dbc2c810fc"}, + {file = "jsonschema-4.19.2.tar.gz", hash = "sha256:c9ff4d7447eed9592c23a12ccee508baf0dd0d59650615e847feb6cdca74f392"}, ] [package.dependencies] @@ -867,13 +867,13 @@ referencing = ">=0.28.0" [[package]] name = "linkml" -version = "1.6.1" +version = "1.6.2" description = "Linked Open Data Modeling Language" optional = false python-versions = ">=3.8,<4.0" files = [ - {file = "linkml-1.6.1-py3-none-any.whl", hash = "sha256:7501cb9c7b2c13ca78fc7121ae8b5457fb5771138714da31cc11f971062070ee"}, - {file = "linkml-1.6.1.tar.gz", hash = "sha256:65f73cf29a77518972238e71e91e012c081cf2e43d71d8965ca414c78c11e08e"}, + {file = "linkml-1.6.2-py3-none-any.whl", hash = "sha256:0e11b085ada080e0ebe9eee469ad55970b0cc333e7c39be956740dbc3a9e50b0"}, + {file = "linkml-1.6.2.tar.gz", hash = "sha256:b1560a67de8c7de074c8be2ef5b810425f058e0874076e49c17a2dc4112f9da2"}, ] [package.dependencies] @@ -891,7 +891,7 @@ openpyxl = "*" parse = "*" prefixcommons = ">=0.1.7" prefixmaps = ">=0.1.3" -pydantic = "*" +pydantic = ">=1.0.0,<3.0.0" pyjsg = ">=0.11.6" pyshex = ">=0.7.20" pyshexc = ">=0.8.3" @@ -922,13 +922,13 @@ linkml-runtime = ">=1.1.6" [[package]] name = "linkml-runtime" -version = "1.6.0" +version = "1.6.1" description = "Runtime environment for LinkML, the Linked open data modeling language" optional = false python-versions = ">=3.7.6,<4.0.0" files = [ - {file = "linkml_runtime-1.6.0-py3-none-any.whl", hash = "sha256:1b6b698f8cf23d63ff833ae0be8055b2e945e1c0ef06a1ed6db359247194a2eb"}, - {file = "linkml_runtime-1.6.0.tar.gz", hash = "sha256:a06df7431a9b929afe242598800d99cec83bb31cbdc1f5d2d70e6b26c67dc337"}, + {file = "linkml_runtime-1.6.1-py3-none-any.whl", hash = "sha256:b598bf3fd2a5e354a662d34143193b0d7e092066affbf803053e1316acf75b2c"}, + {file = "linkml_runtime-1.6.1.tar.gz", hash = "sha256:3036b8f4284e45df15733227eebef9c4216bcaff6d92c8fb09422e6026bf3152"}, ] [package.dependencies] @@ -977,13 +977,13 @@ dev = ["Sphinx (==7.2.5)", "colorama (==0.4.5)", "colorama (==0.4.6)", "exceptio [[package]] name = "markdown" -version = "3.5" +version = "3.5.1" description = "Python implementation of John Gruber's Markdown." optional = false python-versions = ">=3.8" files = [ - {file = "Markdown-3.5-py3-none-any.whl", hash = "sha256:4afb124395ce5fc34e6d9886dab977fd9ae987fc6e85689f08278cf0c69d4bf3"}, - {file = "Markdown-3.5.tar.gz", hash = "sha256:a807eb2e4778d9156c8f07876c6e4d50b5494c5665c4834f67b06459dfd877b3"}, + {file = "Markdown-3.5.1-py3-none-any.whl", hash = "sha256:5874b47d4ee3f0b14d764324d2c94c03ea66bee56f2d929da9f2508d65e722dc"}, + {file = "Markdown-3.5.1.tar.gz", hash = "sha256:b65d7beb248dc22f2e8a31fb706d93798093c308dc1aba295aedeb9d41a813bd"}, ] [package.dependencies] @@ -1121,13 +1121,13 @@ mkdocs = ">=1.1" [[package]] name = "mkdocs-material" -version = "9.4.6" +version = "9.4.8" description = "Documentation that simply works" optional = false python-versions = ">=3.8" files = [ - {file = "mkdocs_material-9.4.6-py3-none-any.whl", hash = "sha256:78802035d5768a78139c84ad7dce0c6493e8f7dc4861727d36ed91d1520a54da"}, - {file = "mkdocs_material-9.4.6.tar.gz", hash = "sha256:09665e60df7ee9e5ff3a54af173f6d45be718b1ee7dd962bcff3102b81fb0c14"}, + {file = "mkdocs_material-9.4.8-py3-none-any.whl", hash = "sha256:8b20f6851bddeef37dced903893cd176cf13a21a482e97705a103c45f06ce9b9"}, + {file = "mkdocs_material-9.4.8.tar.gz", hash = "sha256:f0c101453e8bc12b040e8b64ca39a405d950d8402609b1378cc2b98976e74b5f"}, ] [package.dependencies] @@ -1136,7 +1136,7 @@ colorama = ">=0.4,<1.0" jinja2 = ">=3.0,<4.0" markdown = ">=3.2,<4.0" mkdocs = ">=1.5.3,<2.0" -mkdocs-material-extensions = ">=1.2,<2.0" +mkdocs-material-extensions = ">=1.3,<2.0" paginate = ">=0.5,<1.0" pygments = ">=2.16,<3.0" pymdown-extensions = ">=10.2,<11.0" @@ -2146,121 +2146,121 @@ files = [ [[package]] name = "rpds-py" -version = "0.10.6" +version = "0.12.0" description = "Python bindings to Rust's persistent data structures (rpds)" optional = false python-versions = ">=3.8" files = [ - {file = "rpds_py-0.10.6-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:6bdc11f9623870d75692cc33c59804b5a18d7b8a4b79ef0b00b773a27397d1f6"}, - {file = "rpds_py-0.10.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:26857f0f44f0e791f4a266595a7a09d21f6b589580ee0585f330aaccccb836e3"}, - {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7f5e15c953ace2e8dde9824bdab4bec50adb91a5663df08d7d994240ae6fa31"}, - {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:61fa268da6e2e1cd350739bb61011121fa550aa2545762e3dc02ea177ee4de35"}, - {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c48f3fbc3e92c7dd6681a258d22f23adc2eb183c8cb1557d2fcc5a024e80b094"}, - {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0503c5b681566e8b722fe8c4c47cce5c7a51f6935d5c7012c4aefe952a35eed"}, - {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:734c41f9f57cc28658d98270d3436dba65bed0cfc730d115b290e970150c540d"}, - {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a5d7ed104d158c0042a6a73799cf0eb576dfd5fc1ace9c47996e52320c37cb7c"}, - {file = "rpds_py-0.10.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e3df0bc35e746cce42579826b89579d13fd27c3d5319a6afca9893a9b784ff1b"}, - {file = "rpds_py-0.10.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:73e0a78a9b843b8c2128028864901f55190401ba38aae685350cf69b98d9f7c9"}, - {file = "rpds_py-0.10.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5ed505ec6305abd2c2c9586a7b04fbd4baf42d4d684a9c12ec6110deefe2a063"}, - {file = "rpds_py-0.10.6-cp310-none-win32.whl", hash = "sha256:d97dd44683802000277bbf142fd9f6b271746b4846d0acaf0cefa6b2eaf2a7ad"}, - {file = "rpds_py-0.10.6-cp310-none-win_amd64.whl", hash = "sha256:b455492cab07107bfe8711e20cd920cc96003e0da3c1f91297235b1603d2aca7"}, - {file = "rpds_py-0.10.6-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:e8cdd52744f680346ff8c1ecdad5f4d11117e1724d4f4e1874f3a67598821069"}, - {file = "rpds_py-0.10.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:66414dafe4326bca200e165c2e789976cab2587ec71beb80f59f4796b786a238"}, - {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc435d059f926fdc5b05822b1be4ff2a3a040f3ae0a7bbbe672babb468944722"}, - {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8e7f2219cb72474571974d29a191714d822e58be1eb171f229732bc6fdedf0ac"}, - {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3953c6926a63f8ea5514644b7afb42659b505ece4183fdaaa8f61d978754349e"}, - {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2bb2e4826be25e72013916eecd3d30f66fd076110de09f0e750163b416500721"}, - {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bf347b495b197992efc81a7408e9a83b931b2f056728529956a4d0858608b80"}, - {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:102eac53bb0bf0f9a275b438e6cf6904904908562a1463a6fc3323cf47d7a532"}, - {file = "rpds_py-0.10.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:40f93086eef235623aa14dbddef1b9fb4b22b99454cb39a8d2e04c994fb9868c"}, - {file = "rpds_py-0.10.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e22260a4741a0e7a206e175232867b48a16e0401ef5bce3c67ca5b9705879066"}, - {file = "rpds_py-0.10.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f4e56860a5af16a0fcfa070a0a20c42fbb2012eed1eb5ceeddcc7f8079214281"}, - {file = "rpds_py-0.10.6-cp311-none-win32.whl", hash = "sha256:0774a46b38e70fdde0c6ded8d6d73115a7c39d7839a164cc833f170bbf539116"}, - {file = "rpds_py-0.10.6-cp311-none-win_amd64.whl", hash = "sha256:4a5ee600477b918ab345209eddafde9f91c0acd931f3776369585a1c55b04c57"}, - {file = "rpds_py-0.10.6-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:5ee97c683eaface61d38ec9a489e353d36444cdebb128a27fe486a291647aff6"}, - {file = "rpds_py-0.10.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0713631d6e2d6c316c2f7b9320a34f44abb644fc487b77161d1724d883662e31"}, - {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5a53f5998b4bbff1cb2e967e66ab2addc67326a274567697379dd1e326bded7"}, - {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6a555ae3d2e61118a9d3e549737bb4a56ff0cec88a22bd1dfcad5b4e04759175"}, - {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:945eb4b6bb8144909b203a88a35e0a03d22b57aefb06c9b26c6e16d72e5eb0f0"}, - {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:52c215eb46307c25f9fd2771cac8135d14b11a92ae48d17968eda5aa9aaf5071"}, - {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1b3cd23d905589cb205710b3988fc8f46d4a198cf12862887b09d7aaa6bf9b9"}, - {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:64ccc28683666672d7c166ed465c09cee36e306c156e787acef3c0c62f90da5a"}, - {file = "rpds_py-0.10.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:516a611a2de12fbea70c78271e558f725c660ce38e0006f75139ba337d56b1f6"}, - {file = "rpds_py-0.10.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9ff93d3aedef11f9c4540cf347f8bb135dd9323a2fc705633d83210d464c579d"}, - {file = "rpds_py-0.10.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d858532212f0650be12b6042ff4378dc2efbb7792a286bee4489eaa7ba010586"}, - {file = "rpds_py-0.10.6-cp312-none-win32.whl", hash = "sha256:3c4eff26eddac49d52697a98ea01b0246e44ca82ab09354e94aae8823e8bda02"}, - {file = "rpds_py-0.10.6-cp312-none-win_amd64.whl", hash = "sha256:150eec465dbc9cbca943c8e557a21afdcf9bab8aaabf386c44b794c2f94143d2"}, - {file = "rpds_py-0.10.6-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:cf693eb4a08eccc1a1b636e4392322582db2a47470d52e824b25eca7a3977b53"}, - {file = "rpds_py-0.10.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4134aa2342f9b2ab6c33d5c172e40f9ef802c61bb9ca30d21782f6e035ed0043"}, - {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e782379c2028a3611285a795b89b99a52722946d19fc06f002f8b53e3ea26ea9"}, - {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2f6da6d842195fddc1cd34c3da8a40f6e99e4a113918faa5e60bf132f917c247"}, - {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4a9fe992887ac68256c930a2011255bae0bf5ec837475bc6f7edd7c8dfa254e"}, - {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b788276a3c114e9f51e257f2a6f544c32c02dab4aa7a5816b96444e3f9ffc336"}, - {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:caa1afc70a02645809c744eefb7d6ee8fef7e2fad170ffdeacca267fd2674f13"}, - {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bddd4f91eede9ca5275e70479ed3656e76c8cdaaa1b354e544cbcf94c6fc8ac4"}, - {file = "rpds_py-0.10.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:775049dfa63fb58293990fc59473e659fcafd953bba1d00fc5f0631a8fd61977"}, - {file = "rpds_py-0.10.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:c6c45a2d2b68c51fe3d9352733fe048291e483376c94f7723458cfd7b473136b"}, - {file = "rpds_py-0.10.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0699ab6b8c98df998c3eacf51a3b25864ca93dab157abe358af46dc95ecd9801"}, - {file = "rpds_py-0.10.6-cp38-none-win32.whl", hash = "sha256:ebdab79f42c5961682654b851f3f0fc68e6cc7cd8727c2ac4ffff955154123c1"}, - {file = "rpds_py-0.10.6-cp38-none-win_amd64.whl", hash = "sha256:24656dc36f866c33856baa3ab309da0b6a60f37d25d14be916bd3e79d9f3afcf"}, - {file = "rpds_py-0.10.6-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:0898173249141ee99ffcd45e3829abe7bcee47d941af7434ccbf97717df020e5"}, - {file = "rpds_py-0.10.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9e9184fa6c52a74a5521e3e87badbf9692549c0fcced47443585876fcc47e469"}, - {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5752b761902cd15073a527b51de76bbae63d938dc7c5c4ad1e7d8df10e765138"}, - {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:99a57006b4ec39dbfb3ed67e5b27192792ffb0553206a107e4aadb39c5004cd5"}, - {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09586f51a215d17efdb3a5f090d7cbf1633b7f3708f60a044757a5d48a83b393"}, - {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e225a6a14ecf44499aadea165299092ab0cba918bb9ccd9304eab1138844490b"}, - {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2039f8d545f20c4e52713eea51a275e62153ee96c8035a32b2abb772b6fc9e5"}, - {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:34ad87a831940521d462ac11f1774edf867c34172010f5390b2f06b85dcc6014"}, - {file = "rpds_py-0.10.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dcdc88b6b01015da066da3fb76545e8bb9a6880a5ebf89e0f0b2e3ca557b3ab7"}, - {file = "rpds_py-0.10.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:25860ed5c4e7f5e10c496ea78af46ae8d8468e0be745bd233bab9ca99bfd2647"}, - {file = "rpds_py-0.10.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7854a207ef77319ec457c1eb79c361b48807d252d94348305db4f4b62f40f7f3"}, - {file = "rpds_py-0.10.6-cp39-none-win32.whl", hash = "sha256:e6fcc026a3f27c1282c7ed24b7fcac82cdd70a0e84cc848c0841a3ab1e3dea2d"}, - {file = "rpds_py-0.10.6-cp39-none-win_amd64.whl", hash = "sha256:e98c4c07ee4c4b3acf787e91b27688409d918212dfd34c872201273fdd5a0e18"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:68fe9199184c18d997d2e4293b34327c0009a78599ce703e15cd9a0f47349bba"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:3339eca941568ed52d9ad0f1b8eb9fe0958fa245381747cecf2e9a78a5539c42"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a360cfd0881d36c6dc271992ce1eda65dba5e9368575663de993eeb4523d895f"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:031f76fc87644a234883b51145e43985aa2d0c19b063e91d44379cd2786144f8"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f36a9d751f86455dc5278517e8b65580eeee37d61606183897f122c9e51cef3"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:052a832078943d2b2627aea0d19381f607fe331cc0eb5df01991268253af8417"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:023574366002bf1bd751ebaf3e580aef4a468b3d3c216d2f3f7e16fdabd885ed"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:defa2c0c68734f4a82028c26bcc85e6b92cced99866af118cd6a89b734ad8e0d"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:879fb24304ead6b62dbe5034e7b644b71def53c70e19363f3c3be2705c17a3b4"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:53c43e10d398e365da2d4cc0bcaf0854b79b4c50ee9689652cdc72948e86f487"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:3777cc9dea0e6c464e4b24760664bd8831738cc582c1d8aacf1c3f546bef3f65"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:40578a6469e5d1df71b006936ce95804edb5df47b520c69cf5af264d462f2cbb"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:cf71343646756a072b85f228d35b1d7407da1669a3de3cf47f8bbafe0c8183a4"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:10f32b53f424fc75ff7b713b2edb286fdbfc94bf16317890260a81c2c00385dc"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:81de24a1c51cfb32e1fbf018ab0bdbc79c04c035986526f76c33e3f9e0f3356c"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac17044876e64a8ea20ab132080ddc73b895b4abe9976e263b0e30ee5be7b9c2"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5e8a78bd4879bff82daef48c14d5d4057f6856149094848c3ed0ecaf49f5aec2"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78ca33811e1d95cac8c2e49cb86c0fb71f4d8409d8cbea0cb495b6dbddb30a55"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c63c3ef43f0b3fb00571cff6c3967cc261c0ebd14a0a134a12e83bdb8f49f21f"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:7fde6d0e00b2fd0dbbb40c0eeec463ef147819f23725eda58105ba9ca48744f4"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:79edd779cfc46b2e15b0830eecd8b4b93f1a96649bcb502453df471a54ce7977"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9164ec8010327ab9af931d7ccd12ab8d8b5dc2f4c6a16cbdd9d087861eaaefa1"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:d29ddefeab1791e3c751e0189d5f4b3dbc0bbe033b06e9c333dca1f99e1d523e"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:30adb75ecd7c2a52f5e76af50644b3e0b5ba036321c390b8e7ec1bb2a16dd43c"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd609fafdcdde6e67a139898196698af37438b035b25ad63704fd9097d9a3482"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6eef672de005736a6efd565577101277db6057f65640a813de6c2707dc69f396"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6cf4393c7b41abbf07c88eb83e8af5013606b1cdb7f6bc96b1b3536b53a574b8"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ad857f42831e5b8d41a32437f88d86ead6c191455a3499c4b6d15e007936d4cf"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d7360573f1e046cb3b0dceeb8864025aa78d98be4bb69f067ec1c40a9e2d9df"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d08f63561c8a695afec4975fae445245386d645e3e446e6f260e81663bfd2e38"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:f0f17f2ce0f3529177a5fff5525204fad7b43dd437d017dd0317f2746773443d"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:442626328600bde1d09dc3bb00434f5374948838ce75c41a52152615689f9403"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:e9616f5bd2595f7f4a04b67039d890348ab826e943a9bfdbe4938d0eba606971"}, - {file = "rpds_py-0.10.6.tar.gz", hash = "sha256:4ce5a708d65a8dbf3748d2474b580d606b1b9f91b5c6ab2a316e0b0cf7a4ba50"}, + {file = "rpds_py-0.12.0-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:c694bee70ece3b232df4678448fdda245fd3b1bb4ba481fb6cd20e13bb784c46"}, + {file = "rpds_py-0.12.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:30e5ce9f501fb1f970e4a59098028cf20676dee64fc496d55c33e04bbbee097d"}, + {file = "rpds_py-0.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d72a4315514e5a0b9837a086cb433b004eea630afb0cc129de76d77654a9606f"}, + {file = "rpds_py-0.12.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eebaf8c76c39604d52852366249ab807fe6f7a3ffb0dd5484b9944917244cdbe"}, + {file = "rpds_py-0.12.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a239303acb0315091d54c7ff36712dba24554993b9a93941cf301391d8a997ee"}, + {file = "rpds_py-0.12.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ced40cdbb6dd47a032725a038896cceae9ce267d340f59508b23537f05455431"}, + {file = "rpds_py-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c8c0226c71bd0ce9892eaf6afa77ae8f43a3d9313124a03df0b389c01f832de"}, + {file = "rpds_py-0.12.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b8e11715178f3608874508f08e990d3771e0b8c66c73eb4e183038d600a9b274"}, + {file = "rpds_py-0.12.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5210a0018c7e09c75fa788648617ebba861ae242944111d3079034e14498223f"}, + {file = "rpds_py-0.12.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:171d9a159f1b2f42a42a64a985e4ba46fc7268c78299272ceba970743a67ee50"}, + {file = "rpds_py-0.12.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:57ec6baec231bb19bb5fd5fc7bae21231860a1605174b11585660236627e390e"}, + {file = "rpds_py-0.12.0-cp310-none-win32.whl", hash = "sha256:7188ddc1a8887194f984fa4110d5a3d5b9b5cd35f6bafdff1b649049cbc0ce29"}, + {file = "rpds_py-0.12.0-cp310-none-win_amd64.whl", hash = "sha256:1e04581c6117ad9479b6cfae313e212fe0dfa226ac727755f0d539cd54792963"}, + {file = "rpds_py-0.12.0-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:0a38612d07a36138507d69646c470aedbfe2b75b43a4643f7bd8e51e52779624"}, + {file = "rpds_py-0.12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f12d69d568f5647ec503b64932874dade5a20255736c89936bf690951a5e79f5"}, + {file = "rpds_py-0.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f8a1d990dc198a6c68ec3d9a637ba1ce489b38cbfb65440a27901afbc5df575"}, + {file = "rpds_py-0.12.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8c567c664fc2f44130a20edac73e0a867f8e012bf7370276f15c6adc3586c37c"}, + {file = "rpds_py-0.12.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0e9e976e0dbed4f51c56db10831c9623d0fd67aac02853fe5476262e5a22acb7"}, + {file = "rpds_py-0.12.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:efddca2d02254a52078c35cadad34762adbae3ff01c6b0c7787b59d038b63e0d"}, + {file = "rpds_py-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9e7f29c00577aff6b318681e730a519b235af292732a149337f6aaa4d1c5e31"}, + {file = "rpds_py-0.12.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:389c0e38358fdc4e38e9995e7291269a3aead7acfcf8942010ee7bc5baee091c"}, + {file = "rpds_py-0.12.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:33ab498f9ac30598b6406e2be1b45fd231195b83d948ebd4bd77f337cb6a2bff"}, + {file = "rpds_py-0.12.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d56b1cd606ba4cedd64bb43479d56580e147c6ef3f5d1c5e64203a1adab784a2"}, + {file = "rpds_py-0.12.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1fa73ed22c40a1bec98d7c93b5659cd35abcfa5a0a95ce876b91adbda170537c"}, + {file = "rpds_py-0.12.0-cp311-none-win32.whl", hash = "sha256:dbc25baa6abb205766fb8606f8263b02c3503a55957fcb4576a6bb0a59d37d10"}, + {file = "rpds_py-0.12.0-cp311-none-win_amd64.whl", hash = "sha256:c6b52b7028b547866c2413f614ee306c2d4eafdd444b1ff656bf3295bf1484aa"}, + {file = "rpds_py-0.12.0-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:9620650c364c01ed5b497dcae7c3d4b948daeae6e1883ae185fef1c927b6b534"}, + {file = "rpds_py-0.12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2124f9e645a94ab7c853bc0a3644e0ca8ffbe5bb2d72db49aef8f9ec1c285733"}, + {file = "rpds_py-0.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:281c8b219d4f4b3581b918b816764098d04964915b2f272d1476654143801aa2"}, + {file = "rpds_py-0.12.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:27ccc93c7457ef890b0dd31564d2a05e1aca330623c942b7e818e9e7c2669ee4"}, + {file = "rpds_py-0.12.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d1c562a9bb72244fa767d1c1ab55ca1d92dd5f7c4d77878fee5483a22ffac808"}, + {file = "rpds_py-0.12.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e57919c32ee295a2fca458bb73e4b20b05c115627f96f95a10f9f5acbd61172d"}, + {file = "rpds_py-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa35ad36440aaf1ac8332b4a4a433d4acd28f1613f0d480995f5cfd3580e90b7"}, + {file = "rpds_py-0.12.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e6aea5c0eb5b0faf52c7b5c4a47c8bb64437173be97227c819ffa31801fa4e34"}, + {file = "rpds_py-0.12.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:81cf9d306c04df1b45971c13167dc3bad625808aa01281d55f3cf852dde0e206"}, + {file = "rpds_py-0.12.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:08e6e7ff286254016b945e1ab632ee843e43d45e40683b66dd12b73791366dd1"}, + {file = "rpds_py-0.12.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4d0a675a7acbbc16179188d8c6d0afb8628604fc1241faf41007255957335a0b"}, + {file = "rpds_py-0.12.0-cp312-none-win32.whl", hash = "sha256:b2287c09482949e0ca0c0eb68b2aca6cf57f8af8c6dfd29dcd3bc45f17b57978"}, + {file = "rpds_py-0.12.0-cp312-none-win_amd64.whl", hash = "sha256:8015835494b21aa7abd3b43fdea0614ee35ef6b03db7ecba9beb58eadf01c24f"}, + {file = "rpds_py-0.12.0-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:6174d6ad6b58a6bcf67afbbf1723420a53d06c4b89f4c50763d6fa0a6ac9afd2"}, + {file = "rpds_py-0.12.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a689e1ded7137552bea36305a7a16ad2b40be511740b80748d3140614993db98"}, + {file = "rpds_py-0.12.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f45321224144c25a62052035ce96cbcf264667bcb0d81823b1bbc22c4addd194"}, + {file = "rpds_py-0.12.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:aa32205358a76bf578854bf31698a86dc8b2cb591fd1d79a833283f4a403f04b"}, + {file = "rpds_py-0.12.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91bd2b7cf0f4d252eec8b7046fa6a43cee17e8acdfc00eaa8b3dbf2f9a59d061"}, + {file = "rpds_py-0.12.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3acadbab8b59f63b87b518e09c4c64b142e7286b9ca7a208107d6f9f4c393c5c"}, + {file = "rpds_py-0.12.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:429349a510da82c85431f0f3e66212d83efe9fd2850f50f339341b6532c62fe4"}, + {file = "rpds_py-0.12.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:05942656cb2cb4989cd50ced52df16be94d344eae5097e8583966a1d27da73a5"}, + {file = "rpds_py-0.12.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:0c5441b7626c29dbd54a3f6f3713ec8e956b009f419ffdaaa3c80eaf98ddb523"}, + {file = "rpds_py-0.12.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:b6b0e17d39d21698185097652c611f9cf30f7c56ccec189789920e3e7f1cee56"}, + {file = "rpds_py-0.12.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:3b7a64d43e2a1fa2dd46b678e00cabd9a49ebb123b339ce799204c44a593ae1c"}, + {file = "rpds_py-0.12.0-cp38-none-win32.whl", hash = "sha256:e5bbe011a2cea9060fef1bb3d668a2fd8432b8888e6d92e74c9c794d3c101595"}, + {file = "rpds_py-0.12.0-cp38-none-win_amd64.whl", hash = "sha256:bec29b801b4adbf388314c0d050e851d53762ab424af22657021ce4b6eb41543"}, + {file = "rpds_py-0.12.0-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:1096ca0bf2d3426cbe79d4ccc91dc5aaa73629b08ea2d8467375fad8447ce11a"}, + {file = "rpds_py-0.12.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48aa98987d54a46e13e6954880056c204700c65616af4395d1f0639eba11764b"}, + {file = "rpds_py-0.12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7979d90ee2190d000129598c2b0c82f13053dba432b94e45e68253b09bb1f0f6"}, + {file = "rpds_py-0.12.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:88857060b690a57d2ea8569bca58758143c8faa4639fb17d745ce60ff84c867e"}, + {file = "rpds_py-0.12.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4eb74d44776b0fb0782560ea84d986dffec8ddd94947f383eba2284b0f32e35e"}, + {file = "rpds_py-0.12.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f62581d7e884dd01ee1707b7c21148f61f2febb7de092ae2f108743fcbef5985"}, + {file = "rpds_py-0.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f5dcb658d597410bb7c967c1d24eaf9377b0d621358cbe9d2ff804e5dd12e81"}, + {file = "rpds_py-0.12.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9bf9acce44e967a5103fcd820fc7580c7b0ab8583eec4e2051aec560f7b31a63"}, + {file = "rpds_py-0.12.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:240687b5be0f91fbde4936a329c9b7589d9259742766f74de575e1b2046575e4"}, + {file = "rpds_py-0.12.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:25740fb56e8bd37692ed380e15ec734be44d7c71974d8993f452b4527814601e"}, + {file = "rpds_py-0.12.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a54917b7e9cd3a67e429a630e237a90b096e0ba18897bfb99ee8bd1068a5fea0"}, + {file = "rpds_py-0.12.0-cp39-none-win32.whl", hash = "sha256:b92aafcfab3d41580d54aca35a8057341f1cfc7c9af9e8bdfc652f83a20ced31"}, + {file = "rpds_py-0.12.0-cp39-none-win_amd64.whl", hash = "sha256:cd316dbcc74c76266ba94eb021b0cc090b97cca122f50bd7a845f587ff4bf03f"}, + {file = "rpds_py-0.12.0-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:0853da3d5e9bc6a07b2486054a410b7b03f34046c123c6561b535bb48cc509e1"}, + {file = "rpds_py-0.12.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:cb41ad20064e18a900dd427d7cf41cfaec83bcd1184001f3d91a1f76b3fcea4e"}, + {file = "rpds_py-0.12.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b710bf7e7ae61957d5c4026b486be593ed3ec3dca3e5be15e0f6d8cf5d0a4990"}, + {file = "rpds_py-0.12.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a952ae3eb460c6712388ac2ec706d24b0e651b9396d90c9a9e0a69eb27737fdc"}, + {file = "rpds_py-0.12.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0bedd91ae1dd142a4dc15970ed2c729ff6c73f33a40fa84ed0cdbf55de87c777"}, + {file = "rpds_py-0.12.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:761531076df51309075133a6bc1db02d98ec7f66e22b064b1d513bc909f29743"}, + {file = "rpds_py-0.12.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2baa6be130e8a00b6cbb9f18a33611ec150b4537f8563bddadb54c1b74b8193"}, + {file = "rpds_py-0.12.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f05450fa1cd7c525c0b9d1a7916e595d3041ac0afbed2ff6926e5afb6a781b7f"}, + {file = "rpds_py-0.12.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:81c4d1a3a564775c44732b94135d06e33417e829ff25226c164664f4a1046213"}, + {file = "rpds_py-0.12.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:e888be685fa42d8b8a3d3911d5604d14db87538aa7d0b29b1a7ea80d354c732d"}, + {file = "rpds_py-0.12.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:6f8d7fe73d1816eeb5378409adc658f9525ecbfaf9e1ede1e2d67a338b0c7348"}, + {file = "rpds_py-0.12.0-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:0831d3ecdea22e4559cc1793f22e77067c9d8c451d55ae6a75bf1d116a8e7f42"}, + {file = "rpds_py-0.12.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:513ccbf7420c30e283c25c82d5a8f439d625a838d3ba69e79a110c260c46813f"}, + {file = "rpds_py-0.12.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:301bd744a1adaa2f6a5e06c98f1ac2b6f8dc31a5c23b838f862d65e32fca0d4b"}, + {file = "rpds_py-0.12.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f8832a4f83d4782a8f5a7b831c47e8ffe164e43c2c148c8160ed9a6d630bc02a"}, + {file = "rpds_py-0.12.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4b2416ed743ec5debcf61e1242e012652a4348de14ecc7df3512da072b074440"}, + {file = "rpds_py-0.12.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35585a8cb5917161f42c2104567bb83a1d96194095fc54a543113ed5df9fa436"}, + {file = "rpds_py-0.12.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d389ff1e95b6e46ebedccf7fd1fadd10559add595ac6a7c2ea730268325f832c"}, + {file = "rpds_py-0.12.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9b007c2444705a2dc4a525964fd4dd28c3320b19b3410da6517cab28716f27d3"}, + {file = "rpds_py-0.12.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:188912b22b6c8225f4c4ffa020a2baa6ad8fabb3c141a12dbe6edbb34e7f1425"}, + {file = "rpds_py-0.12.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:1b4cf9ab9a0ae0cb122685209806d3f1dcb63b9fccdf1424fb42a129dc8c2faa"}, + {file = "rpds_py-0.12.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:2d34a5450a402b00d20aeb7632489ffa2556ca7b26f4a63c35f6fccae1977427"}, + {file = "rpds_py-0.12.0-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:466030a42724780794dea71eb32db83cc51214d66ab3fb3156edd88b9c8f0d78"}, + {file = "rpds_py-0.12.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:68172622a5a57deb079a2c78511c40f91193548e8ab342c31e8cb0764d362459"}, + {file = "rpds_py-0.12.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54cdfcda59251b9c2f87a05d038c2ae02121219a04d4a1e6fc345794295bdc07"}, + {file = "rpds_py-0.12.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6b75b912a0baa033350367a8a07a8b2d44fd5b90c890bfbd063a8a5f945f644b"}, + {file = "rpds_py-0.12.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:47aeceb4363851d17f63069318ba5721ae695d9da55d599b4d6fb31508595278"}, + {file = "rpds_py-0.12.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0525847f83f506aa1e28eb2057b696fe38217e12931c8b1b02198cfe6975e142"}, + {file = "rpds_py-0.12.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efbe0b5e0fd078ed7b005faa0170da4f72666360f66f0bb2d7f73526ecfd99f9"}, + {file = "rpds_py-0.12.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0fadfdda275c838cba5102c7f90a20f2abd7727bf8f4a2b654a5b617529c5c18"}, + {file = "rpds_py-0.12.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:56dd500411d03c5e9927a1eb55621e906837a83b02350a9dc401247d0353717c"}, + {file = "rpds_py-0.12.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:6915fc9fa6b3ec3569566832e1bb03bd801c12cea030200e68663b9a87974e76"}, + {file = "rpds_py-0.12.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:5f1519b080d8ce0a814f17ad9fb49fb3a1d4d7ce5891f5c85fc38631ca3a8dc4"}, + {file = "rpds_py-0.12.0.tar.gz", hash = "sha256:7036316cc26b93e401cedd781a579be606dad174829e6ad9e9c5a0da6e036f80"}, ] [[package]] name = "ruamel-yaml" -version = "0.18.2" +version = "0.18.5" description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order" optional = false -python-versions = ">=3" +python-versions = ">=3.7" files = [ - {file = "ruamel.yaml-0.18.2-py3-none-any.whl", hash = "sha256:92076ac8a83dbf44ca661dbed3c935229c8cbc2f10b05959dd3bd5292d8353d3"}, - {file = "ruamel.yaml-0.18.2.tar.gz", hash = "sha256:9bce33f7a814cea4c29a9c62fe872d2363d6220b767891d956eacea8fa5e6fe8"}, + {file = "ruamel.yaml-0.18.5-py3-none-any.whl", hash = "sha256:a013ac02f99a69cdd6277d9664689eb1acba07069f912823177c5eced21a6ada"}, + {file = "ruamel.yaml-0.18.5.tar.gz", hash = "sha256:61917e3a35a569c1133a8f772e1226961bf5a1198bea7e23f06a0841dea1ab0e"}, ] [package.dependencies] @@ -2311,28 +2311,28 @@ files = [ [[package]] name = "ruff" -version = "0.1.2" -description = "An extremely fast Python linter, written in Rust." +version = "0.1.4" +description = "An extremely fast Python linter and code formatter, written in Rust." optional = false python-versions = ">=3.7" files = [ - {file = "ruff-0.1.2-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:0d3ee66b825b713611f89aa35d16de984f76f26c50982a25d52cd0910dff3923"}, - {file = "ruff-0.1.2-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:f85f850a320ff532b8f93e8d1da6a36ef03698c446357c8c43b46ef90bb321eb"}, - {file = "ruff-0.1.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:809c6d4e45683696d19ca79e4c6bd3b2e9204fe9546923f2eb3b126ec314b0dc"}, - {file = "ruff-0.1.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:46005e4abb268e93cad065244e17e2ea16b6fcb55a5c473f34fbc1fd01ae34cb"}, - {file = "ruff-0.1.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10cdb302f519664d5e2cf954562ac86c9d20ca05855e5b5c2f9d542228f45da4"}, - {file = "ruff-0.1.2-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:f89ebcbe57a1eab7d7b4ceb57ddf0af9ed13eae24e443a7c1dc078000bd8cc6b"}, - {file = "ruff-0.1.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7344eaca057d4c32373c9c3a7afb7274f56040c225b6193dd495fcf69453b436"}, - {file = "ruff-0.1.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dffa25f6e03c4950b6ac6f216bc0f98a4be9719cb0c5260c8e88d1bac36f1683"}, - {file = "ruff-0.1.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42ddaea52cb7ba7c785e8593a7532866c193bc774fe570f0e4b1ccedd95b83c5"}, - {file = "ruff-0.1.2-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:a8533efda625bbec0bf27da2886bd641dae0c209104f6c39abc4be5b7b22de2a"}, - {file = "ruff-0.1.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:b0b1b82221ba7c50e03b7a86b983157b5d3f4d8d4f16728132bdf02c6d651f77"}, - {file = "ruff-0.1.2-py3-none-musllinux_1_2_i686.whl", hash = "sha256:6c1362eb9288f8cc95535294cb03bd4665c8cef86ec32745476a4e5c6817034c"}, - {file = "ruff-0.1.2-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:ffa7ef5ded0563329a35bd5a1cfdae40f05a75c0cc2dd30f00b1320b1fb461fc"}, - {file = "ruff-0.1.2-py3-none-win32.whl", hash = "sha256:6e8073f85e47072256e2e1909f1ae515cf61ff5a4d24730a63b8b4ac24b6704a"}, - {file = "ruff-0.1.2-py3-none-win_amd64.whl", hash = "sha256:b836ddff662a45385948ee0878b0a04c3a260949905ad861a37b931d6ee1c210"}, - {file = "ruff-0.1.2-py3-none-win_arm64.whl", hash = "sha256:b0c42d00db5639dbd5f7f9923c63648682dd197bf5de1151b595160c96172691"}, - {file = "ruff-0.1.2.tar.gz", hash = "sha256:afd4785ae060ce6edcd52436d0c197628a918d6d09e3107a892a1bad6a4c6608"}, + {file = "ruff-0.1.4-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:864958706b669cce31d629902175138ad8a069d99ca53514611521f532d91495"}, + {file = "ruff-0.1.4-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:9fdd61883bb34317c788af87f4cd75dfee3a73f5ded714b77ba928e418d6e39e"}, + {file = "ruff-0.1.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4eaca8c9cc39aa7f0f0d7b8fe24ecb51232d1bb620fc4441a61161be4a17539"}, + {file = "ruff-0.1.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a9a1301dc43cbf633fb603242bccd0aaa34834750a14a4c1817e2e5c8d60de17"}, + {file = "ruff-0.1.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78e8db8ab6f100f02e28b3d713270c857d370b8d61871d5c7d1702ae411df683"}, + {file = "ruff-0.1.4-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:80fea754eaae06335784b8ea053d6eb8e9aac75359ebddd6fee0858e87c8d510"}, + {file = "ruff-0.1.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6bc02a480d4bfffd163a723698da15d1a9aec2fced4c06f2a753f87f4ce6969c"}, + {file = "ruff-0.1.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9862811b403063765b03e716dac0fda8fdbe78b675cd947ed5873506448acea4"}, + {file = "ruff-0.1.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58826efb8b3efbb59bb306f4b19640b7e366967a31c049d49311d9eb3a4c60cb"}, + {file = "ruff-0.1.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:fdfd453fc91d9d86d6aaa33b1bafa69d114cf7421057868f0b79104079d3e66e"}, + {file = "ruff-0.1.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:e8791482d508bd0b36c76481ad3117987301b86072158bdb69d796503e1c84a8"}, + {file = "ruff-0.1.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:01206e361021426e3c1b7fba06ddcb20dbc5037d64f6841e5f2b21084dc51800"}, + {file = "ruff-0.1.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:645591a613a42cb7e5c2b667cbefd3877b21e0252b59272ba7212c3d35a5819f"}, + {file = "ruff-0.1.4-py3-none-win32.whl", hash = "sha256:99908ca2b3b85bffe7e1414275d004917d1e0dfc99d497ccd2ecd19ad115fd0d"}, + {file = "ruff-0.1.4-py3-none-win_amd64.whl", hash = "sha256:1dfd6bf8f6ad0a4ac99333f437e0ec168989adc5d837ecd38ddb2cc4a2e3db8a"}, + {file = "ruff-0.1.4-py3-none-win_arm64.whl", hash = "sha256:d98ae9ebf56444e18a3e3652b3383204748f73e247dea6caaf8b52d37e6b32da"}, + {file = "ruff-0.1.4.tar.gz", hash = "sha256:21520ecca4cc555162068d87c747b8f95e1e95f8ecfcbbe59e8dd00710586315"}, ] [[package]] @@ -2485,60 +2485,56 @@ pandas = ["pandas (>=1.3.5)"] [[package]] name = "sqlalchemy" -version = "2.0.22" +version = "2.0.23" description = "Database Abstraction Library" optional = false python-versions = ">=3.7" files = [ - {file = "SQLAlchemy-2.0.22-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f146c61ae128ab43ea3a0955de1af7e1633942c2b2b4985ac51cc292daf33222"}, - {file = "SQLAlchemy-2.0.22-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:875de9414393e778b655a3d97d60465eb3fae7c919e88b70cc10b40b9f56042d"}, - {file = "SQLAlchemy-2.0.22-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:13790cb42f917c45c9c850b39b9941539ca8ee7917dacf099cc0b569f3d40da7"}, - {file = "SQLAlchemy-2.0.22-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e04ab55cf49daf1aeb8c622c54d23fa4bec91cb051a43cc24351ba97e1dd09f5"}, - {file = "SQLAlchemy-2.0.22-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a42c9fa3abcda0dcfad053e49c4f752eef71ecd8c155221e18b99d4224621176"}, - {file = "SQLAlchemy-2.0.22-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:14cd3bcbb853379fef2cd01e7c64a5d6f1d005406d877ed9509afb7a05ff40a5"}, - {file = "SQLAlchemy-2.0.22-cp310-cp310-win32.whl", hash = "sha256:d143c5a9dada696bcfdb96ba2de4a47d5a89168e71d05a076e88a01386872f97"}, - {file = "SQLAlchemy-2.0.22-cp310-cp310-win_amd64.whl", hash = "sha256:ccd87c25e4c8559e1b918d46b4fa90b37f459c9b4566f1dfbce0eb8122571547"}, - {file = "SQLAlchemy-2.0.22-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4f6ff392b27a743c1ad346d215655503cec64405d3b694228b3454878bf21590"}, - {file = "SQLAlchemy-2.0.22-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f776c2c30f0e5f4db45c3ee11a5f2a8d9de68e81eb73ec4237de1e32e04ae81c"}, - {file = "SQLAlchemy-2.0.22-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8f1792d20d2f4e875ce7a113f43c3561ad12b34ff796b84002a256f37ce9437"}, - {file = "SQLAlchemy-2.0.22-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d80eeb5189d7d4b1af519fc3f148fe7521b9dfce8f4d6a0820e8f5769b005051"}, - {file = "SQLAlchemy-2.0.22-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:69fd9e41cf9368afa034e1c81f3570afb96f30fcd2eb1ef29cb4d9371c6eece2"}, - {file = "SQLAlchemy-2.0.22-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:54bcceaf4eebef07dadfde424f5c26b491e4a64e61761dea9459103ecd6ccc95"}, - {file = "SQLAlchemy-2.0.22-cp311-cp311-win32.whl", hash = "sha256:7ee7ccf47aa503033b6afd57efbac6b9e05180f492aeed9fcf70752556f95624"}, - {file = "SQLAlchemy-2.0.22-cp311-cp311-win_amd64.whl", hash = "sha256:b560f075c151900587ade06706b0c51d04b3277c111151997ea0813455378ae0"}, - {file = "SQLAlchemy-2.0.22-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:2c9bac865ee06d27a1533471405ad240a6f5d83195eca481f9fc4a71d8b87df8"}, - {file = "SQLAlchemy-2.0.22-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:625b72d77ac8ac23da3b1622e2da88c4aedaee14df47c8432bf8f6495e655de2"}, - {file = "SQLAlchemy-2.0.22-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b39a6e21110204a8c08d40ff56a73ba542ec60bab701c36ce721e7990df49fb9"}, - {file = "SQLAlchemy-2.0.22-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53a766cb0b468223cafdf63e2d37f14a4757476157927b09300c8c5832d88560"}, - {file = "SQLAlchemy-2.0.22-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0e1ce8ebd2e040357dde01a3fb7d30d9b5736b3e54a94002641dfd0aa12ae6ce"}, - {file = "SQLAlchemy-2.0.22-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:505f503763a767556fa4deae5194b2be056b64ecca72ac65224381a0acab7ebe"}, - {file = "SQLAlchemy-2.0.22-cp312-cp312-win32.whl", hash = "sha256:154a32f3c7b00de3d090bc60ec8006a78149e221f1182e3edcf0376016be9396"}, - {file = "SQLAlchemy-2.0.22-cp312-cp312-win_amd64.whl", hash = "sha256:129415f89744b05741c6f0b04a84525f37fbabe5dc3774f7edf100e7458c48cd"}, - {file = "SQLAlchemy-2.0.22-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3940677d341f2b685a999bffe7078697b5848a40b5f6952794ffcf3af150c301"}, - {file = "SQLAlchemy-2.0.22-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55914d45a631b81a8a2cb1a54f03eea265cf1783241ac55396ec6d735be14883"}, - {file = "SQLAlchemy-2.0.22-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2096d6b018d242a2bcc9e451618166f860bb0304f590d205173d317b69986c95"}, - {file = "SQLAlchemy-2.0.22-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:19c6986cf2fb4bc8e0e846f97f4135a8e753b57d2aaaa87c50f9acbe606bd1db"}, - {file = "SQLAlchemy-2.0.22-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:6ac28bd6888fe3c81fbe97584eb0b96804bd7032d6100b9701255d9441373ec1"}, - {file = "SQLAlchemy-2.0.22-cp37-cp37m-win32.whl", hash = "sha256:cb9a758ad973e795267da334a92dd82bb7555cb36a0960dcabcf724d26299db8"}, - {file = "SQLAlchemy-2.0.22-cp37-cp37m-win_amd64.whl", hash = "sha256:40b1206a0d923e73aa54f0a6bd61419a96b914f1cd19900b6c8226899d9742ad"}, - {file = "SQLAlchemy-2.0.22-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3aa1472bf44f61dd27987cd051f1c893b7d3b17238bff8c23fceaef4f1133868"}, - {file = "SQLAlchemy-2.0.22-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:56a7e2bb639df9263bf6418231bc2a92a773f57886d371ddb7a869a24919face"}, - {file = "SQLAlchemy-2.0.22-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ccca778c0737a773a1ad86b68bda52a71ad5950b25e120b6eb1330f0df54c3d0"}, - {file = "SQLAlchemy-2.0.22-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c6c3e9350f9fb16de5b5e5fbf17b578811a52d71bb784cc5ff71acb7de2a7f9"}, - {file = "SQLAlchemy-2.0.22-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:564e9f9e4e6466273dbfab0e0a2e5fe819eec480c57b53a2cdee8e4fdae3ad5f"}, - {file = "SQLAlchemy-2.0.22-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:af66001d7b76a3fab0d5e4c1ec9339ac45748bc4a399cbc2baa48c1980d3c1f4"}, - {file = "SQLAlchemy-2.0.22-cp38-cp38-win32.whl", hash = "sha256:9e55dff5ec115316dd7a083cdc1a52de63693695aecf72bc53a8e1468ce429e5"}, - {file = "SQLAlchemy-2.0.22-cp38-cp38-win_amd64.whl", hash = "sha256:4e869a8ff7ee7a833b74868a0887e8462445ec462432d8cbeff5e85f475186da"}, - {file = "SQLAlchemy-2.0.22-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9886a72c8e6371280cb247c5d32c9c8fa141dc560124348762db8a8b236f8692"}, - {file = "SQLAlchemy-2.0.22-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a571bc8ac092a3175a1d994794a8e7a1f2f651e7c744de24a19b4f740fe95034"}, - {file = "SQLAlchemy-2.0.22-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8db5ba8b7da759b727faebc4289a9e6a51edadc7fc32207a30f7c6203a181592"}, - {file = "SQLAlchemy-2.0.22-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b0b3f2686c3f162123adba3cb8b626ed7e9b8433ab528e36ed270b4f70d1cdb"}, - {file = "SQLAlchemy-2.0.22-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0c1fea8c0abcb070ffe15311853abfda4e55bf7dc1d4889497b3403629f3bf00"}, - {file = "SQLAlchemy-2.0.22-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4bb062784f37b2d75fd9b074c8ec360ad5df71f933f927e9e95c50eb8e05323c"}, - {file = "SQLAlchemy-2.0.22-cp39-cp39-win32.whl", hash = "sha256:58a3aba1bfb32ae7af68da3f277ed91d9f57620cf7ce651db96636790a78b736"}, - {file = "SQLAlchemy-2.0.22-cp39-cp39-win_amd64.whl", hash = "sha256:92e512a6af769e4725fa5b25981ba790335d42c5977e94ded07db7d641490a85"}, - {file = "SQLAlchemy-2.0.22-py3-none-any.whl", hash = "sha256:3076740335e4aaadd7deb3fe6dcb96b3015f1613bd190a4e1634e1b99b02ec86"}, - {file = "SQLAlchemy-2.0.22.tar.gz", hash = "sha256:5434cc601aa17570d79e5377f5fd45ff92f9379e2abed0be5e8c2fba8d353d2b"}, + {file = "SQLAlchemy-2.0.23-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:638c2c0b6b4661a4fd264f6fb804eccd392745c5887f9317feb64bb7cb03b3ea"}, + {file = "SQLAlchemy-2.0.23-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e3b5036aa326dc2df50cba3c958e29b291a80f604b1afa4c8ce73e78e1c9f01d"}, + {file = "SQLAlchemy-2.0.23-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c14eba45983d2f48f7546bb32b47937ee2cafae353646295f0e99f35b14286ab"}, + {file = "SQLAlchemy-2.0.23-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:89a01238fcb9a8af118eaad3ffcc5dedaacbd429dc6fdc43fe430d3a941ff965"}, + {file = "SQLAlchemy-2.0.23-cp310-cp310-win32.whl", hash = "sha256:cabafc7837b6cec61c0e1e5c6d14ef250b675fa9c3060ed8a7e38653bd732ff8"}, + {file = "SQLAlchemy-2.0.23-cp310-cp310-win_amd64.whl", hash = "sha256:87a3d6b53c39cd173990de2f5f4b83431d534a74f0e2f88bd16eabb5667e65c6"}, + {file = "SQLAlchemy-2.0.23-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d5578e6863eeb998980c212a39106ea139bdc0b3f73291b96e27c929c90cd8e1"}, + {file = "SQLAlchemy-2.0.23-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:62d9e964870ea5ade4bc870ac4004c456efe75fb50404c03c5fd61f8bc669a72"}, + {file = "SQLAlchemy-2.0.23-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c80c38bd2ea35b97cbf7c21aeb129dcbebbf344ee01a7141016ab7b851464f8e"}, + {file = "SQLAlchemy-2.0.23-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75eefe09e98043cff2fb8af9796e20747ae870c903dc61d41b0c2e55128f958d"}, + {file = "SQLAlchemy-2.0.23-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bd45a5b6c68357578263d74daab6ff9439517f87da63442d244f9f23df56138d"}, + {file = "SQLAlchemy-2.0.23-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a86cb7063e2c9fb8e774f77fbf8475516d270a3e989da55fa05d08089d77f8c4"}, + {file = "SQLAlchemy-2.0.23-cp311-cp311-win32.whl", hash = "sha256:b41f5d65b54cdf4934ecede2f41b9c60c9f785620416e8e6c48349ab18643855"}, + {file = "SQLAlchemy-2.0.23-cp311-cp311-win_amd64.whl", hash = "sha256:9ca922f305d67605668e93991aaf2c12239c78207bca3b891cd51a4515c72e22"}, + {file = "SQLAlchemy-2.0.23-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d0f7fb0c7527c41fa6fcae2be537ac137f636a41b4c5a4c58914541e2f436b45"}, + {file = "SQLAlchemy-2.0.23-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7c424983ab447dab126c39d3ce3be5bee95700783204a72549c3dceffe0fc8f4"}, + {file = "SQLAlchemy-2.0.23-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f508ba8f89e0a5ecdfd3761f82dda2a3d7b678a626967608f4273e0dba8f07ac"}, + {file = "SQLAlchemy-2.0.23-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6463aa765cf02b9247e38b35853923edbf2f6fd1963df88706bc1d02410a5577"}, + {file = "SQLAlchemy-2.0.23-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e599a51acf3cc4d31d1a0cf248d8f8d863b6386d2b6782c5074427ebb7803bda"}, + {file = "SQLAlchemy-2.0.23-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fd54601ef9cc455a0c61e5245f690c8a3ad67ddb03d3b91c361d076def0b4c60"}, + {file = "SQLAlchemy-2.0.23-cp312-cp312-win32.whl", hash = "sha256:42d0b0290a8fb0165ea2c2781ae66e95cca6e27a2fbe1016ff8db3112ac1e846"}, + {file = "SQLAlchemy-2.0.23-cp312-cp312-win_amd64.whl", hash = "sha256:227135ef1e48165f37590b8bfc44ed7ff4c074bf04dc8d6f8e7f1c14a94aa6ca"}, + {file = "SQLAlchemy-2.0.23-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:14aebfe28b99f24f8a4c1346c48bc3d63705b1f919a24c27471136d2f219f02d"}, + {file = "SQLAlchemy-2.0.23-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e983fa42164577d073778d06d2cc5d020322425a509a08119bdcee70ad856bf"}, + {file = "SQLAlchemy-2.0.23-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e0dc9031baa46ad0dd5a269cb7a92a73284d1309228be1d5935dac8fb3cae24"}, + {file = "SQLAlchemy-2.0.23-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:5f94aeb99f43729960638e7468d4688f6efccb837a858b34574e01143cf11f89"}, + {file = "SQLAlchemy-2.0.23-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:63bfc3acc970776036f6d1d0e65faa7473be9f3135d37a463c5eba5efcdb24c8"}, + {file = "SQLAlchemy-2.0.23-cp37-cp37m-win32.whl", hash = "sha256:f48ed89dd11c3c586f45e9eec1e437b355b3b6f6884ea4a4c3111a3358fd0c18"}, + {file = "SQLAlchemy-2.0.23-cp37-cp37m-win_amd64.whl", hash = "sha256:1e018aba8363adb0599e745af245306cb8c46b9ad0a6fc0a86745b6ff7d940fc"}, + {file = "SQLAlchemy-2.0.23-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:64ac935a90bc479fee77f9463f298943b0e60005fe5de2aa654d9cdef46c54df"}, + {file = "SQLAlchemy-2.0.23-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c4722f3bc3c1c2fcc3702dbe0016ba31148dd6efcd2a2fd33c1b4897c6a19693"}, + {file = "SQLAlchemy-2.0.23-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4af79c06825e2836de21439cb2a6ce22b2ca129bad74f359bddd173f39582bf5"}, + {file = "SQLAlchemy-2.0.23-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:683ef58ca8eea4747737a1c35c11372ffeb84578d3aab8f3e10b1d13d66f2bc4"}, + {file = "SQLAlchemy-2.0.23-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d4041ad05b35f1f4da481f6b811b4af2f29e83af253bf37c3c4582b2c68934ab"}, + {file = "SQLAlchemy-2.0.23-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:aeb397de65a0a62f14c257f36a726945a7f7bb60253462e8602d9b97b5cbe204"}, + {file = "SQLAlchemy-2.0.23-cp38-cp38-win32.whl", hash = "sha256:42ede90148b73fe4ab4a089f3126b2cfae8cfefc955c8174d697bb46210c8306"}, + {file = "SQLAlchemy-2.0.23-cp38-cp38-win_amd64.whl", hash = "sha256:964971b52daab357d2c0875825e36584d58f536e920f2968df8d581054eada4b"}, + {file = "SQLAlchemy-2.0.23-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:616fe7bcff0a05098f64b4478b78ec2dfa03225c23734d83d6c169eb41a93e55"}, + {file = "SQLAlchemy-2.0.23-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0e680527245895aba86afbd5bef6c316831c02aa988d1aad83c47ffe92655e74"}, + {file = "SQLAlchemy-2.0.23-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4895a63e2c271ffc7a81ea424b94060f7b3b03b4ea0cd58ab5bb676ed02f4221"}, + {file = "SQLAlchemy-2.0.23-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:967c0b71156f793e6662dd839da54f884631755275ed71f1539c95bbada9aaab"}, + {file = "SQLAlchemy-2.0.23-cp39-cp39-win32.whl", hash = "sha256:0a8c6aa506893e25a04233bc721c6b6cf844bafd7250535abb56cb6cc1368884"}, + {file = "SQLAlchemy-2.0.23-cp39-cp39-win_amd64.whl", hash = "sha256:f3420d00d2cb42432c1d0e44540ae83185ccbbc67a6054dcc8ab5387add6620b"}, + {file = "SQLAlchemy-2.0.23-py3-none-any.whl", hash = "sha256:31952bbc527d633b9479f5f81e8b9dfada00b91d6baba021a869095f1a97006d"}, + {file = "SQLAlchemy-2.0.23.tar.gz", hash = "sha256:c1bda93cbbe4aa2aa0aa8655c5aeda505cd219ff3e8da91d1d329e143e4aff69"}, ] [package.dependencies] @@ -2547,6 +2543,7 @@ typing-extensions = ">=4.2.0" [package.extras] aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] +aioodbc = ["aioodbc", "greenlet (!=0.4.17)"] aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing-extensions (!=3.10.0.1)"] asyncio = ["greenlet (!=0.4.17)"] asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (!=0.4.17)"] @@ -2557,7 +2554,7 @@ mssql-pyodbc = ["pyodbc"] mypy = ["mypy (>=0.910)"] mysql = ["mysqlclient (>=1.4.0)"] mysql-connector = ["mysql-connector-python"] -oracle = ["cx-oracle (>=7)"] +oracle = ["cx-oracle (>=8)"] oracle-oracledb = ["oracledb (>=1.0.1)"] postgresql = ["psycopg2 (>=2.7)"] postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] @@ -2925,4 +2922,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "e8f5802a81549cbceeef97099e09377366bbb7487316ae7acb267f4bf3f7a6dd" +content-hash = "4ff21219997ef3d3072b325a8265758b883ad909c368d1e239ec8295e4e32dcd" diff --git a/pyproject.toml b/pyproject.toml index 34a7faa..c5c846d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "koza" -version = "0.4.0" +version = "0.5.0" description = "Data transformation framework for LinkML data models" authors = [ "The Monarch Initiative ", @@ -16,7 +16,7 @@ packages = [ [tool.poetry.dependencies] python = "^3.8" -# linkml = ">=1.6.2" +linkml = ">=1.6.2" pydantic = "^2.4" pyyaml = ">=5.0.0" requests = "^2.24.0" @@ -30,8 +30,7 @@ sssom = "^0.3.41" black = "^23.10.0" ruff = "*" pytest = ">=6.0.0" -biolink-model = ">=3.0.1" -# biolink-model = ">=3.5.5" +biolink-model = ">=3.0.1" # ">=3.5.5" dask = ">=2022.5.2" mkdocs = ">=1.4.2" mkdocs-material = ">=9.1.16" diff --git a/src/koza/model/biolink/pydanticmodel_v2.py b/src/koza/model/biolink/pydanticmodel_v2.py new file mode 100644 index 0000000..fcc8e28 --- /dev/null +++ b/src/koza/model/biolink/pydanticmodel_v2.py @@ -0,0 +1,19692 @@ +from __future__ import annotations +from datetime import date +from enum import Enum +from typing import List, Optional +from pydantic import BaseModel as BaseModel, Field +import sys + +if sys.version_info >= (3, 8): + from typing import Literal +else: + from typing_extensions import Literal + + +metamodel_version = "None" +version = "3.5.4" + + +class ConfiguredBaseModel( + BaseModel, + validate_assignment=True, + validate_default=True, + extra='forbid', + arbitrary_types_allowed=True, + use_enum_values=True, +): + pass + + +class DirectionQualifierEnum(str, Enum): + increased = "increased" + + upregulated = "upregulated" + + decreased = "decreased" + + downregulated = "downregulated" + + +class ChemicalEntityDerivativeEnum(str, Enum): + metabolite = "metabolite" + + +class ChemicalOrGeneOrGeneProductFormOrVariantEnum(str, Enum): + genetic_variant_form = "genetic_variant_form" + + modified_form = "modified_form" + + loss_of_function_variant_form = "loss_of_function_variant_form" + + gain_of_function_variant_form = "gain_of_function_variant_form" + + polymorphic_form = "polymorphic_form" + + snp_form = "snp_form" + + analog_form = "analog_form" + + +class GeneOrGeneProductOrChemicalPartQualifierEnum(str, Enum): + number_3_prime_utr = "3_prime_utr" + + number_5_prime_utr = "5_prime_utr" + + polya_tail = "polya_tail" + + promoter = "promoter" + + enhancer = "enhancer" + + exon = "exon" + + intron = "intron" + + +class GeneOrGeneProductOrChemicalEntityAspectEnum(str, Enum): + # Used in cases where the specificity of the relationship can not be determined to be either activity or abundance. In general, a more specific value from this enumeration should be used. + activity_or_abundance = "activity_or_abundance" + + abundance = "abundance" + + activity = "activity" + + expression = "expression" + + synthesis = "synthesis" + + degradation = "degradation" + + cleavage = "cleavage" + + hydrolysis = "hydrolysis" + + metabolic_processing = "metabolic_processing" + + mutation_rate = "mutation_rate" + + stability = "stability" + + folding = "folding" + + localization = "localization" + + transport = "transport" + + secretion = "secretion" + + uptake = "uptake" + + splicing = "splicing" + + molecular_interaction = "molecular_interaction" + + molecular_modification = "molecular_modification" + + acetylation = "acetylation" + + acylation = "acylation" + + alkylation = "alkylation" + + amination = "amination" + + carbamoylation = "carbamoylation" + + ethylation = "ethylation" + + glutathionylation = "glutathionylation" + + glycation = "glycation" + + glycosylation = "glycosylation" + + glucuronidation = "glucuronidation" + + n_linked_glycosylation = "n_linked_glycosylation" + + o_linked_glycosylation = "o_linked_glycosylation" + + hydroxylation = "hydroxylation" + + lipidation = "lipidation" + + farnesylation = "farnesylation" + + geranoylation = "geranoylation" + + myristoylation = "myristoylation" + + palmitoylation = "palmitoylation" + + prenylation = "prenylation" + + methylation = "methylation" + + nitrosation = "nitrosation" + + nucleotidylation = "nucleotidylation" + + phosphorylation = "phosphorylation" + + ribosylation = "ribosylation" + + ADP_ribosylation = "ADP-ribosylation" + + sulfation = "sulfation" + + sumoylation = "sumoylation" + + ubiquitination = "ubiquitination" + + oxidation = "oxidation" + + reduction = "reduction" + + carboxylation = "carboxylation" + + +class CausalMechanismQualifierEnum(str, Enum): + # A causal mechanism mediated by the direct contact between effector and target chemical or biomolecular entity, which form a stable physical interaction. + binding = "binding" + # A causal mechanism in which the effector binds to the target and negatively effects its normal function, e.g. prevention of enzymatic reaction or activation of downstream pathway. + inhibition = "inhibition" + # A causal mechanism in which an antibody specifically binds to and interferes with the target. + antibody_inhibition = "antibody_inhibition" + # A causal mechanism in which the effector binds to a receptor and prevents activation by an agonist through competing for the binding site. + antagonism = "antagonism" + # A causal mechanism in which the effector binds to a molecular channel and prevents or reduces transport of ions through it. + molecular_channel_blockage = "molecular_channel_blockage" + # A causal mechanism in which the effector binds to the same receptor-binding site as an agonist and antagonizes its effects, often exerting the opposite effect of the agonist by suppressing spontaneous receptor signaling. + inverse_agonism = "inverse_agonism" + # A causal mechanism in which the effector reduces or prevents the action of the endogenous ligand of a receptor by binding to a site distinct from that ligand (i.e. non-competitive inhibition) + negative_allosteric_modulation = "negative_allosteric_modulation" + # A causal mechanism in which the effector binds and activates a receptor to mimic the effect of an endogenous ligand. + agonism = "agonism" + # A causal mechanism in which the effector binds to a molecular channel and facilitates transport of ions through it. + molecular_channel_opening = "molecular_channel_opening" + # A causal mechanism in which the effector enhances the action of the endogenous ligand of a receptor by binding to a site distinct from that ligand (i.e. non-competitive inhibition) + positive_allosteric_modulation = "positive_allosteric_modulation" + # A causal mechanism in which the effector binds to and enhances or intensifies the effect of some other chemical or drug on its target. + potentiation = "potentiation" + # A causal mechanism in which the effector binds to and positively affects the normal functioning of its target. + activation = "activation" + # A causal mechanism in which the effector binds to and increases the activity/rate of an enzyme that processes drugs in the body. + inducer = "inducer" + # A causal mechanism mediated by through the control of target gene transcription + transcriptional_regulation = "transcriptional_regulation" + # A causal mechanism mediated by the activation or control of signaling events that influence the some aspect of the target entity (e.g. its activity, processing, transport, etc) + signaling_mediated_control = "signaling_mediated_control" + + stabilization = "stabilization" + + stimulation = "stimulation" + + releasing_activity = "releasing_activity" + + +class LogicalInterpretationEnum(str, Enum): + # A modifier on a triple that causes the triple to be interpreted as a some-some statement + some_some = "some_some" + # A modifier on a triple that causes the triple to be interpreted as an all-some statement. + all_some = "all_some" + + inverse_all_some = "inverse_all_some" + + +class ReactionDirectionEnum(str, Enum): + left_to_right = "left_to_right" + + right_to_left = "right_to_left" + + bidirectional = "bidirectional" + + neutral = "neutral" + + +class ReactionSideEnum(str, Enum): + left = "left" + + right = "right" + + +class PhaseEnum(str, Enum): + """ + phase + """ + + number_0 = "0" + + number_1 = "1" + + number_2 = "2" + + +class StrandEnum(str, Enum): + """ + strand + """ + + # Positive + PLUS_SIGN = "+" + # Negative + _ = "-" + # Unstranded + FULL_STOP = "." + # Unknown + QUESTION_MARK = "?" + + +class SequenceEnum(str, Enum): + """ + type of sequence + """ + + # nucleic acid + na = "na" + # amino acid + aa = "aa" + + +class DruggableGeneCategoryEnum(str, Enum): + # These targets have activities in DrugCentral (ie. approved drugs) with known mechanism of action. + tclin = "tclin" + # These targets have activities in ChEMBL, Guide to Pharmacology or DrugCentral that satisfy the activity thresholds detailed below. + tbio = "tbio" + # These targets do not have known drug or small molecule activities that satisfy the activity thresholds detailed below AND satisfy one or more of the following criteria: target is above the cutoff criteria for Tdark target is annotated with a Gene Ontology Molecular Function or Biological Process leaf term(s) with an Experimental Evidence code + tchem = "tchem" + # These are targets about which virtually nothing is known. They do not have known drug or small molecule activities that satisfy the activity thresholds detailed below AND satisfy two or more of the following criteria: A PubMed text-mining score from Jensen Lab less than 5, greater than or equal TO 3 Gene RIFs, or less than or equal to 50 Antibodies available according to http://antibodypedia.com. + tdark = "tdark" + + +class DrugAvailabilityEnum(str, Enum): + # chemical entity is available over the counter without a prescription. + over_the_counter = "over_the_counter" + # chemical entity is available by prescription. + prescription = "prescription" + + +class DrugDeliveryEnum(str, Enum): + inhalation = "inhalation" + + oral = "oral" + + absorption_through_the_skin = "absorption_through_the_skin" + + intravenous_injection = "intravenous_injection" + + +class ResourceRoleEnum(str, Enum): + """ + The role played by the information reource in serving as a source for an edge in a TRAPI message. Note that a given Edge should have one and only one 'primary' source, and may have any number of 'aggregator' or 'supporting data' sources. This enumeration is found in Biolink Model, but is repeated here for convenience. + """ + + primary_knowledge_source = "primary_knowledge_source" + + aggregator_knowledge_source = "aggregator_knowledge_source" + + supporting_data_source = "supporting_data_source" + + +class FDAApprovalStatusEnum(str, Enum): + # Discovery & Development Phase. Discovery involves researchers finding new possibilities for medication through testing molecular compounds, noting unexpected effects from existing treatments, or the creation of new technology that allows novel ways of targeting medical products to sites in the body. Drug development occurs after researchers identify potential compounds for experiments. + discovery_and_development_phase = "discovery_and_development_phase" + # Preclinical Research Phase. Once researchers have examined the possibilities a new drug may contain, they must do preliminary research to determine its potential for harm (toxicity). This is categorized as preclinical research and can be one of two types: in vitro or in vivo. + preclinical_research_phase = "preclinical_research_phase" + # Clinical Research Phase. Clinical research involves trials of the drug on people, and it is one of the most involved stages in the drug development and approval process. Clinical trials must answer specific questions and follow a protocol determined by the drug researcher or manufacturer. + fda_clinical_research_phase = "fda_clinical_research_phase" + # FDA Review + fda_review_phase_4 = "fda_review_phase_4" + # FDA Post-Market Safety Monitoring. The last phase of drug approval is an ongoing one while the drug is on the marketplace. If a developer wants to change anything about the drug formulation or approve it for a new use, they must apply with the FDA. The FDA also frequently reviews the drug’s advertising and its manufacturing facility to make sure everything involved in its creation and marketing is in compliance with regulations. + fda_post_market_safety_review = "fda_post_market_safety_review" + # In the FDA Clinical Research Phase, the Clinical Research Phase 1 involves 20 – 100 study participants and lasts several months. This phase is used to determine the safety and dosage of the drug, and about 70% of these drugs move on to the next clinical research phase. + fda_clinical_research_phase_1 = "fda_clinical_research_phase_1" + # In the FDA Clinical Research Phase, the Clinical Research Phase 2 involves up to several hundred people, who must have the disease or condition the drug supposes to treat. This phase can last from a few months to two years, and its purpose is to monitor the efficacy of the drug, as well as note side effects that may occur. + fda_clinical_research_phase_2 = "fda_clinical_research_phase_2" + # In the FDA Clinical Research Phase, the Clinical Research Phase 3 involves 300 – 3000 volunteers and can last up to four years. It is used to continue monitoring the efficacy of the drug, as well as exploring any longer-term adverse reactions. + fda_clinical_research_phase_3 = "fda_clinical_research_phase_3" + # In the FDA Clinical Research Phase, the Clinical Research Phase 4 involves several thousands of volunteers who have the disease or condition and continues to monitor safety and efficacy. If a drug passes this phase, it goes on to FDA review. + fda_clinical_research_phase_4 = "fda_clinical_research_phase_4" + # Fast track is a process designed to facilitate the development, and expedite the review of drugs to treat serious conditions and fill an unmet medical need. The purpose is to get important new drugs to the patient earlier. Fast Track addresses a broad range of serious conditions. For more information https://www.fda.gov/patients/fast-track-breakthrough-therapy-accelerated-approval-priority-review/fast-track + fda_fast_track = "fda_fast_track" + # Breakthrough Therapy designation is a process designed to expedite the development and review of drugs that are intended to treat a serious condition and preliminary clinical evidence indicates that the drug may demonstrate substantial improvement over available therapy on a clinically significant endpoint(s). For more information https://www.fda.gov/patients/fast-track-breakthrough-therapy-accelerated-approval-priority-review/breakthrough-therapy + fda_breakthrough_therapy = "fda_breakthrough_therapy" + # When studying a new drug, it can sometimes take many years to learn whether a drug actually provides a real effect on how a patient survives, feels, or functions. A positive therapeutic effect that is clinically meaningful in the context of a given disease is known as “clinical benefit”. Mindful of the fact that it may take an extended period of time to measure a drug’s intended clinical benefit, in 1992 FDA instituted the Accelerated Approval regulations. These regulations allowed drugs for serious conditions that filled an unmet medical need to be approved based on a surrogate endpoint. Using a surrogate endpoint enabled the FDA to approve these drugs faster. For more information https://www.fda.gov/patients/fast-track-breakthrough-therapy-accelerated-approval-priority-review/accelerated-approval + fda_accelerated_approval = "fda_accelerated_approval" + # Prior to approval, each drug marketed in the United States must go through a detailed FDA review process. In 1992, under the Prescription Drug User Act (PDUFA), FDA agreed to specific goals for improving the drug review time and created a two-tiered system of review times – Standard Review and Priority Review. A Priority Review designation means FDA’s goal is to take action on an application within 6 months (compared to 10 months under standard review). For more information https://www.fda.gov/patients/fast-track-breakthrough-therapy-accelerated-approval-priority-review/priority-review + fda_priority_review = "fda_priority_review" + # Regular FDA Approval. The last phase of drug approval is an ongoing one while the drug is on the marketplace. If a developer wants to change anything about the drug formulation or approve it for a new use, they must apply with the FDA. The FDA also frequently reviews the drug’s advertising and its manufacturing facility to make sure everything involved in its creation and marketing is in compliance with regulations. + regular_fda_approval = "regular_fda_approval" + + post_approval_withdrawal = "post_approval_withdrawal" + + +class FDAIDAAdverseEventEnum(str, Enum): + """ + please consult with the FDA guidelines as proposed in this document: https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfcfr/cfrsearch.cfm?fr=312.32 + """ + + # An adverse event or suspected adverse reaction is considered 'life-threatening' if, in the view of either the investigator or sponsor, its occurrence places the patient or subject at immediate risk of death. It does not include an adverse event or suspected adverse reaction that, had it occurred in a more severe form, might have caused death. + life_threatening_adverse_event = "life_threatening_adverse_event" + # An adverse event or suspected adverse reaction is considered 'serious' if, in the view of either the investigator or sponsor, it results in any of the following outcomes: Death, a life-threatening adverse event, inpatient hospitalization or prolongation of existing hospitalization, a persistent or significant incapacity or substantial disruption of the ability to conduct normal life functions, or a congenital anomaly/birth defect. Important medical events that may not result in death, be life-threatening, or require hospitalization may be considered serious when, based upon appropriate medical judgment, they may jeopardize the patient or subject and may require medical or surgical intervention to prevent one of the outcomes listed in this definition. Examples of such medical events include allergic bronchospasm requiring intensive treatment in an emergency room or at home, blood dyscrasias or convulsions that do not result in inpatient hospitalization, or the development of drug dependency or drug abuse. + serious_adverse_event = "serious_adverse_event" + # means any adverse event for which there is a reasonable possibility that the drug caused the adverse event. For the purposes of IND safety reporting, 'reasonable possibility' means there is evidence to suggest a causal relationship between the drug and the adverse event. Suspected adverse reaction implies a lesser degree of certainty about causality than adverse reaction, which means any adverse event caused by a drug. + suspected_adverse_reaction = "suspected_adverse_reaction" + # An adverse event or suspected adverse reaction is considered 'unexpected' if it is not listed in the investigator brochure or is not listed at the specificity or severity that has been observed; or, if an investigator brochure is not required or available, is not consistent with the risk information described in the general investigational plan or elsewhere in the current application, as amended. For example, under this definition, hepatic necrosis would be unexpected (by virtue of greater severity) if the investigator brochure referred only to elevated hepatic enzymes or hepatitis. Similarly, cerebral thromboembolism and cerebral vasculitis would be unexpected (by virtue of greater specificity) if the investigator brochure listed only cerebral vascular accidents. 'Unexpected', as used in this definition, also refers to adverse events or suspected adverse reactions that are mentioned in the investigator brochure as occurring with a class of drugs or as anticipated from the pharmacological properties of the drug, but are not specifically mentioned as occurring with the particular drug under investigation. + unexpected_adverse_event = "unexpected_adverse_event" + + +class MappingCollection(ConfiguredBaseModel): + """ + A collection of deprecated mappings. + """ + + predicate_mappings: Optional[List[PredicateMapping]] = Field( + None, + description="""A collection of relationships that are not used in biolink, but have biolink patterns that can be used to replace them. This is a temporary slot to help with the transition to the fully qualified predicate model in Biolink3.""", + ) + + +class PredicateMapping(ConfiguredBaseModel): + """ + A deprecated predicate mapping object contains the deprecated predicate and an example of the rewiring that should be done to use a qualified statement in its place. + """ + + mapped_predicate: Optional[str] = Field( + None, + description="""The predicate that is being replaced by the fully qualified representation of predicate + subject and object qualifiers. Only to be used in test data and mapping data to help with the transition to the fully qualified predicate model. Not to be used in knowledge graphs.""", + ) + subject_aspect_qualifier: Optional[str] = Field(None) + subject_direction_qualifier: Optional[DirectionQualifierEnum] = Field(None) + subject_form_or_variant_qualifier: Optional[str] = Field(None) + subject_part_qualifier: Optional[str] = Field(None) + subject_derivative_qualifier: Optional[str] = Field(None) + subject_context_qualifier: Optional[str] = Field(None) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + qualified_predicate: Optional[str] = Field( + None, + description="""Predicate to be used in an association when subject and object qualifiers are present and the full reading of the statement requires a qualification to the predicate in use in order to refine or increase the specificity of the full statement reading. This qualifier holds a relationship to be used instead of that expressed by the primary predicate, in a ‘full statement’ reading of the association, where qualifier-based semantics are included. This is necessary only in cases where the primary predicate does not work in a full statement reading.""", + ) + object_aspect_qualifier: Optional[str] = Field(None) + object_direction_qualifier: Optional[DirectionQualifierEnum] = Field(None) + object_form_or_variant_qualifier: Optional[str] = Field(None) + object_part_qualifier: Optional[str] = Field(None) + object_derivative_qualifier: Optional[str] = Field(None) + object_context_qualifier: Optional[str] = Field(None) + causal_mechanism_qualifier: Optional[CausalMechanismQualifierEnum] = Field( + None, + description="""A statement qualifier representing a type of molecular control mechanism through which an effect of a chemical on a gene or gene product is mediated (e.g. 'agonism', 'inhibition', 'allosteric modulation', 'channel blocker')""", + ) + anatomical_context_qualifier: Optional[str] = Field( + None, + description="""A statement qualifier representing an anatomical location where an relationship expressed in an association took place (can be a tissue, cell type, or sub-cellular location).""", + ) + species_context_qualifier: Optional[str] = Field( + None, + description="""A statement qualifier representing a taxonomic category of species in which a relationship expressed in an association took place.""", + ) + exact_match: Optional[List[str]] = Field( + None, + description="""holds between two entities that have strictly equivalent meanings, with a high degree of confidence""", + ) + narrow_match: Optional[List[str]] = Field( + None, + description="""a list of terms from different schemas or terminology systems that have a narrower, more specific meaning. Narrower terms are typically shown as children in a hierarchy or tree.""", + ) + broad_match: Optional[List[str]] = Field( + None, + description="""a list of terms from different schemas or terminology systems that have a broader, more general meaning. Broader terms are typically shown as parents in a hierarchy or tree.""", + ) + + +class OntologyClass(ConfiguredBaseModel): + """ + a concept or class in an ontology, vocabulary or thesaurus. Note that nodes in a biolink compatible KG can be considered both instances of biolink classes, and OWL classes in their own right. In general you should not need to use this class directly. Instead, use the appropriate biolink class. For example, for the GO concept of endocytosis (GO:0006897), use bl:BiologicalProcess as the type. + """ + + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + + +class Annotation(ConfiguredBaseModel): + """ + Biolink Model root class for entity annotations. + """ + + None + + +class QuantityValue(Annotation): + """ + A value of an attribute that is quantitative and measurable, expressed as a combination of a unit and a numeric value + """ + + has_unit: Optional[str] = Field(None, description="""connects a quantity value to a unit""") + has_numeric_value: Optional[float] = Field(None, description="""connects a quantity value to a number""") + + +class RelationshipQuantifier(ConfiguredBaseModel): + None + + +class SensitivityQuantifier(RelationshipQuantifier): + None + + +class SpecificityQuantifier(RelationshipQuantifier): + None + + +class PathognomonicityQuantifier(SpecificityQuantifier): + """ + A relationship quantifier between a variant or symptom and a disease, which is high when the presence of the feature implies the existence of the disease + """ + + None + + +class FrequencyQuantifier(RelationshipQuantifier): + has_count: Optional[int] = Field(None, description="""number of things with a particular property""") + has_total: Optional[int] = Field(None, description="""total number of things in a particular reference set""") + has_quotient: Optional[float] = Field(None) + has_percentage: Optional[float] = Field(None, description="""equivalent to has quotient multiplied by 100""") + + +class ChemicalOrDrugOrTreatment(ConfiguredBaseModel): + None + + +class Entity(ConfiguredBaseModel): + """ + Root Biolink Model class for all things and informational relationships, real or imagined. + """ + + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Entity", "biolink:Entity"]] = Field( + ["biolink:Entity"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class NamedThing(Entity): + """ + a databased entity or concept/class + """ + + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/NamedThing", "biolink:NamedThing"]] = Field( + ["biolink:NamedThing"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Attribute(NamedThing, OntologyClass): + """ + A property or characteristic of an entity. For example, an apple may have properties such as color, shape, age, crispiness. An environmental sample may have attributes such as depth, lat, long, material. + """ + + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Attribute", "biolink:Attribute"]] = Field( + ["biolink:Attribute"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ChemicalRole(Attribute): + """ + A role played by the molecular entity or part thereof within a chemical context. + """ + + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/ChemicalRole", "biolink:ChemicalRole"]] = Field( + ["biolink:ChemicalRole"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class BiologicalSex(Attribute): + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/BiologicalSex", "biolink:BiologicalSex"]] = Field( + ["biolink:BiologicalSex"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class PhenotypicSex(BiologicalSex): + """ + An attribute corresponding to the phenotypic sex of the individual, based upon the reproductive organs present. + """ + + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/PhenotypicSex", "biolink:PhenotypicSex"]] = Field( + ["biolink:PhenotypicSex"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class GenotypicSex(BiologicalSex): + """ + An attribute corresponding to the genotypic sex of the individual, based upon genotypic composition of sex chromosomes. + """ + + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/GenotypicSex", "biolink:GenotypicSex"]] = Field( + ["biolink:GenotypicSex"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class SeverityValue(Attribute): + """ + describes the severity of a phenotypic feature or disease + """ + + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/SeverityValue", "biolink:SeverityValue"]] = Field( + ["biolink:SeverityValue"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class RelationshipType(OntologyClass): + """ + An OWL property used as an edge label + """ + + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + + +class TaxonomicRank(OntologyClass): + """ + A descriptor for the rank within a taxonomic classification. Example instance: TAXRANK:0000017 (kingdom) + """ + + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + + +class OrganismTaxon(NamedThing): + """ + A classification of a set of organisms. Example instances: NCBITaxon:9606 (Homo sapiens), NCBITaxon:2 (Bacteria). Can also be used to represent strains or subspecies. + """ + + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/OrganismTaxon", "biolink:OrganismTaxon"]] = Field( + ["biolink:OrganismTaxon"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Event(NamedThing): + """ + Something that happens at a given place and time. + """ + + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Event", "biolink:Event"]] = Field( + ["biolink:Event"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class AdministrativeEntity(NamedThing): + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/AdministrativeEntity", "biolink:AdministrativeEntity"] + ] = Field( + ["biolink:AdministrativeEntity"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Agent(AdministrativeEntity): + """ + person, group, organization or project that provides a piece of information (i.e. a knowledge association) + """ + + affiliation: Optional[List[str]] = Field( + default_factory=list, + description="""a professional relationship between one provider (often a person) within another provider (often an organization). Target provider identity should be specified by a CURIE. Providers may have multiple affiliations.""", + ) + address: Optional[str] = Field( + None, + description="""the particulars of the place where someone or an organization is situated. For now, this slot is a simple text \"blob\" containing all relevant details of the given location for fitness of purpose. For the moment, this \"address\" can include other contact details such as email and phone number(?).""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""Different classes of agents have distinct preferred identifiers. For publishers, use the ISBN publisher code. See https://grp.isbn-international.org/ for publisher code lookups. For editors, authors and individual providers, use the individual's ORCID if available; Otherwise, a ScopusID, ResearchID or Google Scholar ID ('GSID') may be used if the author ORCID is unknown. Institutional agents could be identified by an International Standard Name Identifier ('ISNI') code.""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Agent", "biolink:Agent"]] = Field( + ["biolink:Agent"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field( + None, + description="""it is recommended that an author's 'name' property be formatted as \"surname, firstname initial.\"""", + ) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class InformationContentEntity(NamedThing): + """ + a piece of information that typically describes some topic of discourse or is used as support. + """ + + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/InformationContentEntity", "biolink:InformationContentEntity"] + ] = Field( + ["biolink:InformationContentEntity"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class StudyResult(InformationContentEntity): + """ + A collection of data items from a study that are about a particular study subject or experimental unit (the 'focus' of the Result) - optionally with context/provenance metadata that may be relevant to the interpretation of this data as evidence. + """ + + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/StudyResult", "biolink:StudyResult"]] = Field( + ["biolink:StudyResult"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class StudyVariable(InformationContentEntity): + """ + a variable that is used as a measure in the investigation of a study + """ + + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/StudyVariable", "biolink:StudyVariable"]] = Field( + ["biolink:StudyVariable"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class CommonDataElement(InformationContentEntity): + """ + A Common Data Element (CDE) is a standardized, precisely defined question, paired with a set of allowable responses, used systematically across different sites, studies, or clinical trials to ensure consistent data collection. Multiple CDEs (from one or more Collections) can be curated into Forms. (https://cde.nlm.nih.gov/home) + """ + + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/CommonDataElement", "biolink:CommonDataElement"]] = Field( + ["biolink:CommonDataElement"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ConceptCountAnalysisResult(StudyResult): + """ + A result of a concept count analysis. + """ + + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/ConceptCountAnalysisResult", "biolink:ConceptCountAnalysisResult"] + ] = Field( + ["biolink:ConceptCountAnalysisResult"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ObservedExpectedFrequencyAnalysisResult(StudyResult): + """ + A result of a observed expected frequency analysis. + """ + + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/ObservedExpectedFrequencyAnalysisResult", + "biolink:ObservedExpectedFrequencyAnalysisResult", + ] + ] = Field( + ["biolink:ObservedExpectedFrequencyAnalysisResult"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class RelativeFrequencyAnalysisResult(StudyResult): + """ + A result of a relative frequency analysis. + """ + + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/RelativeFrequencyAnalysisResult", "biolink:RelativeFrequencyAnalysisResult" + ] + ] = Field( + ["biolink:RelativeFrequencyAnalysisResult"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class TextMiningResult(StudyResult): + """ + A result of text mining. + """ + + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/TextMiningResult", "biolink:TextMiningResult"]] = Field( + ["biolink:TextMiningResult"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ChiSquaredAnalysisResult(StudyResult): + """ + A result of a chi squared analysis. + """ + + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/ChiSquaredAnalysisResult", "biolink:ChiSquaredAnalysisResult"] + ] = Field( + ["biolink:ChiSquaredAnalysisResult"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class LogOddsAnalysisResult(StudyResult): + """ + A result of a log odds ratio analysis. + """ + + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/LogOddsAnalysisResult", "biolink:LogOddsAnalysisResult"] + ] = Field( + ["biolink:LogOddsAnalysisResult"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Dataset(InformationContentEntity): + """ + an item that refers to a collection of data from a data source. + """ + + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Dataset", "biolink:Dataset"]] = Field( + ["biolink:Dataset"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class DatasetDistribution(InformationContentEntity): + """ + an item that holds distribution level information about a dataset. + """ + + distribution_download_url: Optional[str] = Field(None) + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/DatasetDistribution", "biolink:DatasetDistribution"] + ] = Field( + ["biolink:DatasetDistribution"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class DatasetVersion(InformationContentEntity): + """ + an item that holds version level information about a dataset. + """ + + has_dataset: Optional[str] = Field(None) + ingest_date: Optional[str] = Field(None) + has_distribution: Optional[str] = Field(None) + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/DatasetVersion", "biolink:DatasetVersion"]] = Field( + ["biolink:DatasetVersion"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class DatasetSummary(InformationContentEntity): + """ + an item that holds summary level information about a dataset. + """ + + source_web_page: Optional[str] = Field(None) + source_logo: Optional[str] = Field(None) + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/DatasetSummary", "biolink:DatasetSummary"]] = Field( + ["biolink:DatasetSummary"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ConfidenceLevel(InformationContentEntity): + """ + Level of confidence in a statement + """ + + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/ConfidenceLevel", "biolink:ConfidenceLevel"]] = Field( + ["biolink:ConfidenceLevel"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class EvidenceType(InformationContentEntity): + """ + Class of evidence that supports an association + """ + + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/EvidenceType", "biolink:EvidenceType"]] = Field( + ["biolink:EvidenceType"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Publication(InformationContentEntity): + """ + Any ‘published’ piece of information. Publications are considered broadly to include any document or document part made available in print or on the web - which may include scientific journal issues, individual articles, and books - as well as things like pre-prints, white papers, patents, drug labels, web pages, protocol documents, and even a part of a publication if of significant knowledge scope (e.g. a figure, figure legend, or section highlighted by NLP). + """ + + authors: Optional[List[str]] = Field( + default_factory=list, + description="""connects an publication to the list of authors who contributed to the publication. This property should be a comma-delimited list of author names. It is recommended that an author's name be formatted as \"surname, firstname initial.\". Note that this property is a node annotation expressing the citation list of authorship which might typically otherwise be more completely documented in biolink:PublicationToProviderAssociation defined edges which point to full details about an author and possibly, some qualifiers which clarify the specific status of a given author in the publication.""", + ) + pages: Optional[List[str]] = Field( + default_factory=list, + description="""When a 2-tuple of page numbers are provided, they represent the start and end page of the publication within its parent publication context. For books, this may be set to the total number of pages of the book.""", + ) + summary: Optional[str] = Field(None, description="""executive summary of a publication""") + keywords: Optional[List[str]] = Field(default_factory=list, description="""keywords tagging a publication""") + mesh_terms: Optional[List[str]] = Field(None, description="""mesh terms tagging a publication""") + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""Different kinds of publication subtypes will have different preferred identifiers (curies when feasible). Precedence of identifiers for scientific articles is as follows: PMID if available; DOI if not; actual alternate CURIE otherwise. Enclosing publications (i.e. referenced by 'published in' node property) such as books and journals, should have industry-standard identifier such as from ISBN and ISSN.""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Publication", "biolink:Publication"]] = Field( + ["biolink:Publication"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field( + None, + description="""the 'title' of the publication is generally recorded in the 'name' property (inherited from NamedThing). The field name 'title' is now also tagged as an acceptable alias for the node property 'name' (just in case).""", + ) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Book(Publication): + """ + This class may rarely be instantiated except if use cases of a given knowledge graph support its utility. + """ + + authors: Optional[List[str]] = Field( + default_factory=list, + description="""connects an publication to the list of authors who contributed to the publication. This property should be a comma-delimited list of author names. It is recommended that an author's name be formatted as \"surname, firstname initial.\". Note that this property is a node annotation expressing the citation list of authorship which might typically otherwise be more completely documented in biolink:PublicationToProviderAssociation defined edges which point to full details about an author and possibly, some qualifiers which clarify the specific status of a given author in the publication.""", + ) + pages: Optional[List[str]] = Field( + default_factory=list, + description="""When a 2-tuple of page numbers are provided, they represent the start and end page of the publication within its parent publication context. For books, this may be set to the total number of pages of the book.""", + ) + summary: Optional[str] = Field(None, description="""executive summary of a publication""") + keywords: Optional[List[str]] = Field(default_factory=list, description="""keywords tagging a publication""") + mesh_terms: Optional[List[str]] = Field(None, description="""mesh terms tagging a publication""") + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field(..., description="""Books should have industry-standard identifier such as from ISBN.""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Book", "biolink:Book"]] = Field( + ["biolink:Book"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""Should generally be set to an ontology class defined term for 'book'.""" + ) + name: Optional[str] = Field( + None, + description="""the 'title' of the publication is generally recorded in the 'name' property (inherited from NamedThing). The field name 'title' is now also tagged as an acceptable alias for the node property 'name' (just in case).""", + ) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class BookChapter(Publication): + published_in: str = Field( + ..., + description="""The enclosing parent book containing the chapter should have industry-standard identifier from ISBN.""", + ) + volume: Optional[str] = Field( + None, + description="""volume of a book or music release in a collection/series or a published collection of journal issues in a serial publication""", + ) + chapter: Optional[str] = Field(None, description="""chapter of a book""") + authors: Optional[List[str]] = Field( + default_factory=list, + description="""connects an publication to the list of authors who contributed to the publication. This property should be a comma-delimited list of author names. It is recommended that an author's name be formatted as \"surname, firstname initial.\". Note that this property is a node annotation expressing the citation list of authorship which might typically otherwise be more completely documented in biolink:PublicationToProviderAssociation defined edges which point to full details about an author and possibly, some qualifiers which clarify the specific status of a given author in the publication.""", + ) + pages: Optional[List[str]] = Field( + default_factory=list, + description="""When a 2-tuple of page numbers are provided, they represent the start and end page of the publication within its parent publication context. For books, this may be set to the total number of pages of the book.""", + ) + summary: Optional[str] = Field(None, description="""executive summary of a publication""") + keywords: Optional[List[str]] = Field(default_factory=list, description="""keywords tagging a publication""") + mesh_terms: Optional[List[str]] = Field(None, description="""mesh terms tagging a publication""") + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""Different kinds of publication subtypes will have different preferred identifiers (curies when feasible). Precedence of identifiers for scientific articles is as follows: PMID if available; DOI if not; actual alternate CURIE otherwise. Enclosing publications (i.e. referenced by 'published in' node property) such as books and journals, should have industry-standard identifier such as from ISBN and ISSN.""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/BookChapter", "biolink:BookChapter"]] = Field( + ["biolink:BookChapter"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field( + None, + description="""the 'title' of the publication is generally recorded in the 'name' property (inherited from NamedThing). The field name 'title' is now also tagged as an acceptable alias for the node property 'name' (just in case).""", + ) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Serial(Publication): + """ + This class may rarely be instantiated except if use cases of a given knowledge graph support its utility. + """ + + iso_abbreviation: Optional[str] = Field( + None, + description="""Standard abbreviation for periodicals in the International Organization for Standardization (ISO) 4 system See https://www.issn.org/services/online-services/access-to-the-ltwa/. If the 'published in' property is set, then the iso abbreviation pertains to the broader publication context (the journal) within which the given publication node is embedded, not the publication itself.""", + ) + volume: Optional[str] = Field( + None, + description="""volume of a book or music release in a collection/series or a published collection of journal issues in a serial publication""", + ) + issue: Optional[str] = Field( + None, description="""issue of a newspaper, a scientific journal or magazine for reference purpose""" + ) + authors: Optional[List[str]] = Field( + default_factory=list, + description="""connects an publication to the list of authors who contributed to the publication. This property should be a comma-delimited list of author names. It is recommended that an author's name be formatted as \"surname, firstname initial.\". Note that this property is a node annotation expressing the citation list of authorship which might typically otherwise be more completely documented in biolink:PublicationToProviderAssociation defined edges which point to full details about an author and possibly, some qualifiers which clarify the specific status of a given author in the publication.""", + ) + pages: Optional[List[str]] = Field( + default_factory=list, + description="""When a 2-tuple of page numbers are provided, they represent the start and end page of the publication within its parent publication context. For books, this may be set to the total number of pages of the book.""", + ) + summary: Optional[str] = Field(None, description="""executive summary of a publication""") + keywords: Optional[List[str]] = Field(default_factory=list, description="""keywords tagging a publication""") + mesh_terms: Optional[List[str]] = Field(None, description="""mesh terms tagging a publication""") + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., description="""Serials (journals) should have industry-standard identifier such as from ISSN.""" + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Serial", "biolink:Serial"]] = Field( + ["biolink:Serial"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, + description="""Should generally be set to an ontology class defined term for 'serial' or 'journal'.""", + ) + name: Optional[str] = Field( + None, + description="""the 'title' of the publication is generally recorded in the 'name' property (inherited from NamedThing). The field name 'title' is now also tagged as an acceptable alias for the node property 'name' (just in case).""", + ) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Article(Publication): + """ + a piece of writing on a particular topic presented as a stand-alone section of a larger publication + """ + + published_in: str = Field( + ..., + description="""The enclosing parent serial containing the article should have industry-standard identifier from ISSN.""", + ) + iso_abbreviation: Optional[str] = Field( + None, + description="""Optional value, if used locally as a convenience, is set to the iso abbreviation of the 'published in' parent.""", + ) + volume: Optional[str] = Field( + None, + description="""volume of a book or music release in a collection/series or a published collection of journal issues in a serial publication""", + ) + issue: Optional[str] = Field( + None, description="""issue of a newspaper, a scientific journal or magazine for reference purpose""" + ) + authors: Optional[List[str]] = Field( + default_factory=list, + description="""connects an publication to the list of authors who contributed to the publication. This property should be a comma-delimited list of author names. It is recommended that an author's name be formatted as \"surname, firstname initial.\". Note that this property is a node annotation expressing the citation list of authorship which might typically otherwise be more completely documented in biolink:PublicationToProviderAssociation defined edges which point to full details about an author and possibly, some qualifiers which clarify the specific status of a given author in the publication.""", + ) + pages: Optional[List[str]] = Field( + default_factory=list, + description="""When a 2-tuple of page numbers are provided, they represent the start and end page of the publication within its parent publication context. For books, this may be set to the total number of pages of the book.""", + ) + summary: Optional[str] = Field(None, description="""executive summary of a publication""") + keywords: Optional[List[str]] = Field(default_factory=list, description="""keywords tagging a publication""") + mesh_terms: Optional[List[str]] = Field(None, description="""mesh terms tagging a publication""") + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""Different kinds of publication subtypes will have different preferred identifiers (curies when feasible). Precedence of identifiers for scientific articles is as follows: PMID if available; DOI if not; actual alternate CURIE otherwise. Enclosing publications (i.e. referenced by 'published in' node property) such as books and journals, should have industry-standard identifier such as from ISBN and ISSN.""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Article", "biolink:Article"]] = Field( + ["biolink:Article"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field( + None, + description="""the 'title' of the publication is generally recorded in the 'name' property (inherited from NamedThing). The field name 'title' is now also tagged as an acceptable alias for the node property 'name' (just in case).""", + ) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class JournalArticle(Article): + """ + an article, typically presenting results of research, that is published in an issue of a scientific journal. + """ + + published_in: str = Field( + ..., + description="""The enclosing parent serial containing the article should have industry-standard identifier from ISSN.""", + ) + iso_abbreviation: Optional[str] = Field( + None, + description="""Optional value, if used locally as a convenience, is set to the iso abbreviation of the 'published in' parent.""", + ) + volume: Optional[str] = Field( + None, + description="""volume of a book or music release in a collection/series or a published collection of journal issues in a serial publication""", + ) + issue: Optional[str] = Field( + None, description="""issue of a newspaper, a scientific journal or magazine for reference purpose""" + ) + authors: Optional[List[str]] = Field( + default_factory=list, + description="""connects an publication to the list of authors who contributed to the publication. This property should be a comma-delimited list of author names. It is recommended that an author's name be formatted as \"surname, firstname initial.\". Note that this property is a node annotation expressing the citation list of authorship which might typically otherwise be more completely documented in biolink:PublicationToProviderAssociation defined edges which point to full details about an author and possibly, some qualifiers which clarify the specific status of a given author in the publication.""", + ) + pages: Optional[List[str]] = Field( + default_factory=list, + description="""When a 2-tuple of page numbers are provided, they represent the start and end page of the publication within its parent publication context. For books, this may be set to the total number of pages of the book.""", + ) + summary: Optional[str] = Field(None, description="""executive summary of a publication""") + keywords: Optional[List[str]] = Field(default_factory=list, description="""keywords tagging a publication""") + mesh_terms: Optional[List[str]] = Field(None, description="""mesh terms tagging a publication""") + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""Different kinds of publication subtypes will have different preferred identifiers (curies when feasible). Precedence of identifiers for scientific articles is as follows: PMID if available; DOI if not; actual alternate CURIE otherwise. Enclosing publications (i.e. referenced by 'published in' node property) such as books and journals, should have industry-standard identifier such as from ISBN and ISSN.""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/JournalArticle", "biolink:JournalArticle"]] = Field( + ["biolink:JournalArticle"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field( + None, + description="""the 'title' of the publication is generally recorded in the 'name' property (inherited from NamedThing). The field name 'title' is now also tagged as an acceptable alias for the node property 'name' (just in case).""", + ) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Patent(Publication): + """ + a legal document granted by a patent issuing authority which confers upon the patenter the sole right to make, use and sell an invention for a set period of time. + """ + + authors: Optional[List[str]] = Field( + default_factory=list, + description="""connects an publication to the list of authors who contributed to the publication. This property should be a comma-delimited list of author names. It is recommended that an author's name be formatted as \"surname, firstname initial.\". Note that this property is a node annotation expressing the citation list of authorship which might typically otherwise be more completely documented in biolink:PublicationToProviderAssociation defined edges which point to full details about an author and possibly, some qualifiers which clarify the specific status of a given author in the publication.""", + ) + pages: Optional[List[str]] = Field( + default_factory=list, + description="""When a 2-tuple of page numbers are provided, they represent the start and end page of the publication within its parent publication context. For books, this may be set to the total number of pages of the book.""", + ) + summary: Optional[str] = Field(None, description="""executive summary of a publication""") + keywords: Optional[List[str]] = Field(default_factory=list, description="""keywords tagging a publication""") + mesh_terms: Optional[List[str]] = Field(None, description="""mesh terms tagging a publication""") + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""Different kinds of publication subtypes will have different preferred identifiers (curies when feasible). Precedence of identifiers for scientific articles is as follows: PMID if available; DOI if not; actual alternate CURIE otherwise. Enclosing publications (i.e. referenced by 'published in' node property) such as books and journals, should have industry-standard identifier such as from ISBN and ISSN.""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Patent", "biolink:Patent"]] = Field( + ["biolink:Patent"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field( + None, + description="""the 'title' of the publication is generally recorded in the 'name' property (inherited from NamedThing). The field name 'title' is now also tagged as an acceptable alias for the node property 'name' (just in case).""", + ) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class WebPage(Publication): + """ + a document that is published according to World Wide Web standards, which may incorporate text, graphics, sound, and/or other features. + """ + + authors: Optional[List[str]] = Field( + default_factory=list, + description="""connects an publication to the list of authors who contributed to the publication. This property should be a comma-delimited list of author names. It is recommended that an author's name be formatted as \"surname, firstname initial.\". Note that this property is a node annotation expressing the citation list of authorship which might typically otherwise be more completely documented in biolink:PublicationToProviderAssociation defined edges which point to full details about an author and possibly, some qualifiers which clarify the specific status of a given author in the publication.""", + ) + pages: Optional[List[str]] = Field( + default_factory=list, + description="""When a 2-tuple of page numbers are provided, they represent the start and end page of the publication within its parent publication context. For books, this may be set to the total number of pages of the book.""", + ) + summary: Optional[str] = Field(None, description="""executive summary of a publication""") + keywords: Optional[List[str]] = Field(default_factory=list, description="""keywords tagging a publication""") + mesh_terms: Optional[List[str]] = Field(None, description="""mesh terms tagging a publication""") + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""Different kinds of publication subtypes will have different preferred identifiers (curies when feasible). Precedence of identifiers for scientific articles is as follows: PMID if available; DOI if not; actual alternate CURIE otherwise. Enclosing publications (i.e. referenced by 'published in' node property) such as books and journals, should have industry-standard identifier such as from ISBN and ISSN.""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/WebPage", "biolink:WebPage"]] = Field( + ["biolink:WebPage"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field( + None, + description="""the 'title' of the publication is generally recorded in the 'name' property (inherited from NamedThing). The field name 'title' is now also tagged as an acceptable alias for the node property 'name' (just in case).""", + ) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class PreprintPublication(Publication): + """ + a document reresenting an early version of an author's original scholarly work, such as a research paper or a review, prior to formal peer review and publication in a peer-reviewed scholarly or scientific journal. + """ + + authors: Optional[List[str]] = Field( + default_factory=list, + description="""connects an publication to the list of authors who contributed to the publication. This property should be a comma-delimited list of author names. It is recommended that an author's name be formatted as \"surname, firstname initial.\". Note that this property is a node annotation expressing the citation list of authorship which might typically otherwise be more completely documented in biolink:PublicationToProviderAssociation defined edges which point to full details about an author and possibly, some qualifiers which clarify the specific status of a given author in the publication.""", + ) + pages: Optional[List[str]] = Field( + default_factory=list, + description="""When a 2-tuple of page numbers are provided, they represent the start and end page of the publication within its parent publication context. For books, this may be set to the total number of pages of the book.""", + ) + summary: Optional[str] = Field(None, description="""executive summary of a publication""") + keywords: Optional[List[str]] = Field(default_factory=list, description="""keywords tagging a publication""") + mesh_terms: Optional[List[str]] = Field(None, description="""mesh terms tagging a publication""") + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""Different kinds of publication subtypes will have different preferred identifiers (curies when feasible). Precedence of identifiers for scientific articles is as follows: PMID if available; DOI if not; actual alternate CURIE otherwise. Enclosing publications (i.e. referenced by 'published in' node property) such as books and journals, should have industry-standard identifier such as from ISBN and ISSN.""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/PreprintPublication", "biolink:PreprintPublication"] + ] = Field( + ["biolink:PreprintPublication"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field( + None, + description="""the 'title' of the publication is generally recorded in the 'name' property (inherited from NamedThing). The field name 'title' is now also tagged as an acceptable alias for the node property 'name' (just in case).""", + ) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class DrugLabel(Publication): + """ + a document accompanying a drug or its container that provides written, printed or graphic information about the drug, including drug contents, specific instructions or warnings for administration, storage and disposal instructions, etc. + """ + + authors: Optional[List[str]] = Field( + default_factory=list, + description="""connects an publication to the list of authors who contributed to the publication. This property should be a comma-delimited list of author names. It is recommended that an author's name be formatted as \"surname, firstname initial.\". Note that this property is a node annotation expressing the citation list of authorship which might typically otherwise be more completely documented in biolink:PublicationToProviderAssociation defined edges which point to full details about an author and possibly, some qualifiers which clarify the specific status of a given author in the publication.""", + ) + pages: Optional[List[str]] = Field( + default_factory=list, + description="""When a 2-tuple of page numbers are provided, they represent the start and end page of the publication within its parent publication context. For books, this may be set to the total number of pages of the book.""", + ) + summary: Optional[str] = Field(None, description="""executive summary of a publication""") + keywords: Optional[List[str]] = Field(default_factory=list, description="""keywords tagging a publication""") + mesh_terms: Optional[List[str]] = Field(None, description="""mesh terms tagging a publication""") + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""Different kinds of publication subtypes will have different preferred identifiers (curies when feasible). Precedence of identifiers for scientific articles is as follows: PMID if available; DOI if not; actual alternate CURIE otherwise. Enclosing publications (i.e. referenced by 'published in' node property) such as books and journals, should have industry-standard identifier such as from ISBN and ISSN.""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/DrugLabel", "biolink:DrugLabel"]] = Field( + ["biolink:DrugLabel"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field( + None, + description="""the 'title' of the publication is generally recorded in the 'name' property (inherited from NamedThing). The field name 'title' is now also tagged as an acceptable alias for the node property 'name' (just in case).""", + ) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class RetrievalSource(InformationContentEntity): + """ + Provides information about how a particular InformationResource served as a source from which knowledge expressed in an Edge, or data used to generate this knowledge, was retrieved. + """ + + resource_id: str = Field( + ..., + description="""The InformationResource that served as a source for the knowledge expressed in an Edge, or data used to generate this knowledge.""", + ) + resource_role: ResourceRoleEnum = Field( + ..., + description="""The role of the InformationResource in the retrieval of the knowledge expressed in an Edge, or data used to generate this knowledge.""", + ) + upstream_resource_ids: Optional[str] = Field( + None, + description="""The InformationResources that served as a source for the InformationResource that served as a source for the knowledge expressed in an Edge, or data used to generate this knowledge.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + license: Optional[str] = Field(None) + rights: Optional[str] = Field(None) + format: Optional[str] = Field(None) + creation_date: Optional[date] = Field( + None, description="""date on which an entity was created. This can be applied to nodes or edges""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/RetrievalSource", "biolink:RetrievalSource"]] = Field( + ["biolink:RetrievalSource"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class PhysicalEssenceOrOccurrent(ConfiguredBaseModel): + """ + Either a physical or processual entity. + """ + + None + + +class PhysicalEssence(PhysicalEssenceOrOccurrent): + """ + Semantic mixin concept. Pertains to entities that have physical properties such as mass, volume, or charge. + """ + + None + + +class PhysicalEntity(PhysicalEssence, NamedThing): + """ + An entity that has material reality (a.k.a. physical essence). + """ + + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/PhysicalEntity", "biolink:PhysicalEntity"]] = Field( + ["biolink:PhysicalEntity"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Occurrent(PhysicalEssenceOrOccurrent): + """ + A processual entity. + """ + + None + + +class ActivityAndBehavior(Occurrent): + """ + Activity or behavior of any independent integral living, organization or mechanical actor in the world + """ + + None + + +class Activity(ActivityAndBehavior, NamedThing): + """ + An activity is something that occurs over a period of time and acts upon or with entities; it may include consuming, processing, transforming, modifying, relocating, using, or generating entities. + """ + + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Activity", "biolink:Activity"]] = Field( + ["biolink:Activity"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Study(Activity): + """ + a detailed investigation and/or analysis + """ + + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Study", "biolink:Study"]] = Field( + ["biolink:Study"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Procedure(ActivityAndBehavior, NamedThing): + """ + A series of actions conducted in a certain order or manner + """ + + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Procedure", "biolink:Procedure"]] = Field( + ["biolink:Procedure"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Phenomenon(Occurrent, NamedThing): + """ + a fact or situation that is observed to exist or happen, especially one whose cause or explanation is in question + """ + + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Phenomenon", "biolink:Phenomenon"]] = Field( + ["biolink:Phenomenon"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Device(NamedThing): + """ + A thing made or adapted for a particular purpose, especially a piece of mechanical or electronic equipment + """ + + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Device", "biolink:Device"]] = Field( + ["biolink:Device"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class DiagnosticAid(NamedThing): + """ + A device or substance used to help diagnose disease or injury + """ + + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/DiagnosticAid", "biolink:DiagnosticAid"]] = Field( + ["biolink:DiagnosticAid"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class SubjectOfInvestigation(ConfiguredBaseModel): + """ + An entity that has the role of being studied in an investigation, study, or experiment + """ + + None + + +class MaterialSample(SubjectOfInvestigation, PhysicalEntity): + """ + A sample is a limited quantity of something (e.g. an individual or set of individuals from a population, or a portion of a substance) to be used for testing, analysis, inspection, investigation, demonstration, or trial use. [SIO] + """ + + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/MaterialSample", "biolink:MaterialSample"]] = Field( + ["biolink:MaterialSample"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class PlanetaryEntity(NamedThing): + """ + Any entity or process that exists at the level of the whole planet + """ + + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/PlanetaryEntity", "biolink:PlanetaryEntity"]] = Field( + ["biolink:PlanetaryEntity"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class EnvironmentalProcess(PlanetaryEntity, Occurrent): + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/EnvironmentalProcess", "biolink:EnvironmentalProcess"] + ] = Field( + ["biolink:EnvironmentalProcess"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class EnvironmentalFeature(PlanetaryEntity): + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/EnvironmentalFeature", "biolink:EnvironmentalFeature"] + ] = Field( + ["biolink:EnvironmentalFeature"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class GeographicLocation(PlanetaryEntity): + """ + a location that can be described in lat/long coordinates + """ + + latitude: Optional[float] = Field(None, description="""latitude""") + longitude: Optional[float] = Field(None, description="""longitude""") + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/GeographicLocation", "biolink:GeographicLocation"]] = Field( + ["biolink:GeographicLocation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class GeographicLocationAtTime(GeographicLocation): + """ + a location that can be described in lat/long coordinates, for a particular time + """ + + timepoint: Optional[str] = Field(None, description="""a point in time""") + latitude: Optional[float] = Field(None, description="""latitude""") + longitude: Optional[float] = Field(None, description="""longitude""") + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/GeographicLocationAtTime", "biolink:GeographicLocationAtTime"] + ] = Field( + ["biolink:GeographicLocationAtTime"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ThingWithTaxon(ConfiguredBaseModel): + """ + A mixin that can be used on any entity that can be taxonomically classified. This includes individual organisms; genes, their products and other molecular entities; body parts; biological processes + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + + +class BiologicalEntity(ThingWithTaxon, NamedThing): + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/BiologicalEntity", "biolink:BiologicalEntity"]] = Field( + ["biolink:BiologicalEntity"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class GenomicEntity(ConfiguredBaseModel): + has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""") + + +class EpigenomicEntity(ConfiguredBaseModel): + has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""") + + +class BiologicalProcessOrActivity(BiologicalEntity, Occurrent, OntologyClass): + """ + Either an individual molecular activity, or a collection of causally connected molecular activities in a biological system. + """ + + has_input: Optional[List[str]] = Field( + None, + description="""holds between a process and a continuant, where the continuant is an input into the process""", + ) + has_output: Optional[List[str]] = Field( + None, + description="""holds between a process and a continuant, where the continuant is an output of the process""", + ) + enabled_by: Optional[List[str]] = Field( + None, + description="""holds between a process and a physical entity, where the physical entity executes the process""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/BiologicalProcessOrActivity", "biolink:BiologicalProcessOrActivity"] + ] = Field( + ["biolink:BiologicalProcessOrActivity"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class MolecularActivity(BiologicalProcessOrActivity, Occurrent, OntologyClass): + """ + An execution of a molecular function carried out by a gene product or macromolecular complex. + """ + + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + has_input: Optional[List[str]] = Field(None, description="""A chemical entity that is the input for the reaction""") + has_output: Optional[List[str]] = Field( + None, description="""A chemical entity that is the output for the reaction""" + ) + enabled_by: Optional[List[str]] = Field( + None, description="""The gene product, gene, or complex that catalyzes the reaction""" + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/MolecularActivity", "biolink:MolecularActivity"]] = Field( + ["biolink:MolecularActivity"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class BiologicalProcess(BiologicalProcessOrActivity, Occurrent, OntologyClass): + """ + One or more causally connected executions of molecular functions + """ + + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + has_input: Optional[List[str]] = Field( + None, + description="""holds between a process and a continuant, where the continuant is an input into the process""", + ) + has_output: Optional[List[str]] = Field( + None, + description="""holds between a process and a continuant, where the continuant is an output of the process""", + ) + enabled_by: Optional[List[str]] = Field( + None, + description="""holds between a process and a physical entity, where the physical entity executes the process""", + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/BiologicalProcess", "biolink:BiologicalProcess"]] = Field( + ["biolink:BiologicalProcess"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Pathway(BiologicalProcess, OntologyClass): + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + has_input: Optional[List[str]] = Field( + None, + description="""holds between a process and a continuant, where the continuant is an input into the process""", + ) + has_output: Optional[List[str]] = Field( + None, + description="""holds between a process and a continuant, where the continuant is an output of the process""", + ) + enabled_by: Optional[List[str]] = Field( + None, + description="""holds between a process and a physical entity, where the physical entity executes the process""", + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Pathway", "biolink:Pathway"]] = Field( + ["biolink:Pathway"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class PhysiologicalProcess(BiologicalProcess, OntologyClass): + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + has_input: Optional[List[str]] = Field( + None, + description="""holds between a process and a continuant, where the continuant is an input into the process""", + ) + has_output: Optional[List[str]] = Field( + None, + description="""holds between a process and a continuant, where the continuant is an output of the process""", + ) + enabled_by: Optional[List[str]] = Field( + None, + description="""holds between a process and a physical entity, where the physical entity executes the process""", + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/PhysiologicalProcess", "biolink:PhysiologicalProcess"] + ] = Field( + ["biolink:PhysiologicalProcess"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Behavior(BiologicalProcess, ActivityAndBehavior, OntologyClass): + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + has_input: Optional[List[str]] = Field( + None, + description="""holds between a process and a continuant, where the continuant is an input into the process""", + ) + has_output: Optional[List[str]] = Field( + None, + description="""holds between a process and a continuant, where the continuant is an output of the process""", + ) + enabled_by: Optional[List[str]] = Field( + None, + description="""holds between a process and a physical entity, where the physical entity executes the process""", + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Behavior", "biolink:Behavior"]] = Field( + ["biolink:Behavior"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class OrganismAttribute(Attribute): + """ + describes a characteristic of an organismal entity. + """ + + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/OrganismAttribute", "biolink:OrganismAttribute"]] = Field( + ["biolink:OrganismAttribute"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class PhenotypicQuality(OrganismAttribute): + """ + A property of a phenotype + """ + + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/PhenotypicQuality", "biolink:PhenotypicQuality"]] = Field( + ["biolink:PhenotypicQuality"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class GeneticInheritance(BiologicalEntity): + """ + The pattern or 'mode' in which a particular genetic trait or disorder is passed from one generation to the next, e.g. autosomal dominant, autosomal recessive, etc. + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/GeneticInheritance", "biolink:GeneticInheritance"]] = Field( + ["biolink:GeneticInheritance"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class OrganismalEntity(BiologicalEntity, SubjectOfInvestigation): + """ + A named entity that is either a part of an organism, a whole organism, population or clade of organisms, excluding chemical entities + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/OrganismalEntity", "biolink:OrganismalEntity"]] = Field( + ["biolink:OrganismalEntity"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""may often be an organism attribute""") + + +class Bacterium(OrganismalEntity): + """ + A member of a group of unicellular microorganisms lacking a nuclear membrane, that reproduce by binary fission and are often motile. + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Bacterium", "biolink:Bacterium"]] = Field( + ["biolink:Bacterium"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""may often be an organism attribute""") + + +class Virus(OrganismalEntity, SubjectOfInvestigation): + """ + A virus is a microorganism that replicates itself as a microRNA and infects the host cell. + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Virus", "biolink:Virus"]] = Field( + ["biolink:Virus"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""may often be an organism attribute""") + + +class CellularOrganism(OrganismalEntity, SubjectOfInvestigation): + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/CellularOrganism", "biolink:CellularOrganism"]] = Field( + ["biolink:CellularOrganism"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""may often be an organism attribute""") + + +class Mammal(CellularOrganism, SubjectOfInvestigation): + """ + A member of the class Mammalia, a clade of endothermic amniotes distinguished from reptiles and birds by the possession of hair, three middle ear bones, mammary glands, and a neocortex + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Mammal", "biolink:Mammal"]] = Field( + ["biolink:Mammal"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""may often be an organism attribute""") + + +class Human(Mammal, SubjectOfInvestigation): + """ + A member of the the species Homo sapiens. + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Human", "biolink:Human"]] = Field( + ["biolink:Human"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""may often be an organism attribute""") + + +class Plant(CellularOrganism): + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Plant", "biolink:Plant"]] = Field( + ["biolink:Plant"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""may often be an organism attribute""") + + +class Invertebrate(CellularOrganism): + """ + An animal lacking a vertebral column. This group consists of 98% of all animal species. + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Invertebrate", "biolink:Invertebrate"]] = Field( + ["biolink:Invertebrate"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""may often be an organism attribute""") + + +class Vertebrate(CellularOrganism): + """ + A sub-phylum of animals consisting of those having a bony or cartilaginous vertebral column. + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Vertebrate", "biolink:Vertebrate"]] = Field( + ["biolink:Vertebrate"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""may often be an organism attribute""") + + +class Fungus(CellularOrganism): + """ + A kingdom of eukaryotic, heterotrophic organisms that live as saprobes or parasites, including mushrooms, yeasts, smuts, molds, etc. They reproduce either sexually or asexually, and have life cycles that range from simple to complex. Filamentous fungi refer to those that grow as multicellular colonies (mushrooms and molds). + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Fungus", "biolink:Fungus"]] = Field( + ["biolink:Fungus"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""may often be an organism attribute""") + + +class LifeStage(OrganismalEntity): + """ + A stage of development or growth of an organism, including post-natal adult stages + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/LifeStage", "biolink:LifeStage"]] = Field( + ["biolink:LifeStage"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""may often be an organism attribute""") + + +class IndividualOrganism(OrganismalEntity, SubjectOfInvestigation): + """ + An instance of an organism. For example, Richard Nixon, Charles Darwin, my pet cat. Example ID: ORCID:0000-0002-5355-2576 + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/IndividualOrganism", "biolink:IndividualOrganism"]] = Field( + ["biolink:IndividualOrganism"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""may often be an organism attribute""") + + +class PopulationOfIndividualOrganisms(OrganismalEntity, SubjectOfInvestigation): + """ + A collection of individuals from the same taxonomic class distinguished by one or more characteristics. Characteristics can include, but are not limited to, shared geographic location, genetics, phenotypes. + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/PopulationOfIndividualOrganisms", "biolink:PopulationOfIndividualOrganisms" + ] + ] = Field( + ["biolink:PopulationOfIndividualOrganisms"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""may often be an organism attribute""") + + +class StudyPopulation(PopulationOfIndividualOrganisms): + """ + A group of people banded together or treated as a group as participants in a research study. + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/StudyPopulation", "biolink:StudyPopulation"]] = Field( + ["biolink:StudyPopulation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""may often be an organism attribute""") + + +class DiseaseOrPhenotypicFeature(BiologicalEntity): + """ + Either one of a disease or an individual phenotypic feature. Some knowledge resources such as Monarch treat these as distinct, others such as MESH conflate. Please see definitions of phenotypic feature and disease in this model for their independent descriptions. This class is helpful to enforce domains and ranges that may involve either a disease or a phenotypic feature. + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/DiseaseOrPhenotypicFeature", "biolink:DiseaseOrPhenotypicFeature"] + ] = Field( + ["biolink:DiseaseOrPhenotypicFeature"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Disease(DiseaseOrPhenotypicFeature): + """ + A disorder of structure or function, especially one that produces specific signs, phenotypes or symptoms or that affects a specific location and is not simply a direct result of physical injury. A disposition to undergo pathological processes that exists in an organism because of one or more disorders in that organism. + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Disease", "biolink:Disease"]] = Field( + ["biolink:Disease"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class PhenotypicFeature(DiseaseOrPhenotypicFeature): + """ + A combination of entity and quality that makes up a phenotyping statement. An observable characteristic of an individual resulting from the interaction of its genotype with its molecular and physical environment. + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/PhenotypicFeature", "biolink:PhenotypicFeature"]] = Field( + ["biolink:PhenotypicFeature"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class BehavioralFeature(PhenotypicFeature): + """ + A phenotypic feature which is behavioral in nature. + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/BehavioralFeature", "biolink:BehavioralFeature"]] = Field( + ["biolink:BehavioralFeature"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class AnatomicalEntity(OrganismalEntity, PhysicalEssence): + """ + A subcellular location, cell type or gross anatomical part + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/AnatomicalEntity", "biolink:AnatomicalEntity"]] = Field( + ["biolink:AnatomicalEntity"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""may often be an organism attribute""") + + +class CellularComponent(AnatomicalEntity): + """ + A location in or around a cell + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/CellularComponent", "biolink:CellularComponent"]] = Field( + ["biolink:CellularComponent"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""may often be an organism attribute""") + + +class Cell(AnatomicalEntity): + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Cell", "biolink:Cell"]] = Field( + ["biolink:Cell"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""may often be an organism attribute""") + + +class CellLine(OrganismalEntity, SubjectOfInvestigation): + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/CellLine", "biolink:CellLine"]] = Field( + ["biolink:CellLine"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""may often be an organism attribute""") + + +class GrossAnatomicalStructure(AnatomicalEntity): + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/GrossAnatomicalStructure", "biolink:GrossAnatomicalStructure"] + ] = Field( + ["biolink:GrossAnatomicalStructure"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""may often be an organism attribute""") + + +class ChemicalEntityOrGeneOrGeneProduct(ConfiguredBaseModel): + """ + A union of chemical entities and children, and gene or gene product. This mixin is helpful to use when searching across chemical entities that must include genes and their children as chemical entities. + """ + + None + + +class RegulatoryRegion( + ChemicalEntityOrGeneOrGeneProduct, GenomicEntity, BiologicalEntity, PhysicalEssence, OntologyClass +): + """ + A region (or regions) of the genome that contains known or putative regulatory elements that act in cis- or trans- to affect the transcription of gene + """ + + has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""") + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/RegulatoryRegion", "biolink:RegulatoryRegion"]] = Field( + ["biolink:RegulatoryRegion"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class AccessibleDnaRegion( + RegulatoryRegion, ChemicalEntityOrGeneOrGeneProduct, GenomicEntity, PhysicalEssence, OntologyClass +): + """ + A region (or regions) of a chromatinized genome that has been measured to be more accessible to an enzyme such as DNase-I or Tn5 Transpose + """ + + has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""") + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/AccessibleDnaRegion", "biolink:AccessibleDnaRegion"] + ] = Field( + ["biolink:AccessibleDnaRegion"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class TranscriptionFactorBindingSite( + RegulatoryRegion, ChemicalEntityOrGeneOrGeneProduct, GenomicEntity, PhysicalEssence, OntologyClass +): + """ + A region (or regions) of the genome that contains a region of DNA known or predicted to bind a protein that modulates gene transcription + """ + + has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""") + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/TranscriptionFactorBindingSite", "biolink:TranscriptionFactorBindingSite" + ] + ] = Field( + ["biolink:TranscriptionFactorBindingSite"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ChemicalEntityOrProteinOrPolypeptide(ConfiguredBaseModel): + """ + A union of chemical entities and children, and protein and polypeptide. This mixin is helpful to use when searching across chemical entities that must include genes and their children as chemical entities. + """ + + None + + +class ChemicalEntity( + ChemicalEntityOrProteinOrPolypeptide, + ChemicalEntityOrGeneOrGeneProduct, + PhysicalEssence, + NamedThing, + ChemicalOrDrugOrTreatment, +): + """ + A chemical entity is a physical entity that pertains to chemistry or biochemistry. + """ + + trade_name: Optional[str] = Field(None) + available_from: Optional[List[DrugAvailabilityEnum]] = Field(None) + max_tolerated_dose: Optional[str] = Field( + None, + description="""The highest dose of a drug or treatment that does not cause unacceptable side effects. The maximum tolerated dose is determined in clinical trials by testing increasing doses on different groups of people until the highest dose with acceptable side effects is found. Also called MTD.""", + ) + is_toxic: Optional[bool] = Field(None) + has_chemical_role: Optional[List[str]] = Field( + None, description="""A role is particular behaviour which a chemical entity may exhibit.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/ChemicalEntity", "biolink:ChemicalEntity"]] = Field( + ["biolink:ChemicalEntity"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class MolecularEntity(ChemicalEntity): + """ + A molecular entity is a chemical entity composed of individual or covalently bonded atoms. + """ + + is_metabolite: Optional[bool] = Field(None, description="""indicates whether a molecular entity is a metabolite""") + trade_name: Optional[str] = Field(None) + available_from: Optional[List[DrugAvailabilityEnum]] = Field(None) + max_tolerated_dose: Optional[str] = Field( + None, + description="""The highest dose of a drug or treatment that does not cause unacceptable side effects. The maximum tolerated dose is determined in clinical trials by testing increasing doses on different groups of people until the highest dose with acceptable side effects is found. Also called MTD.""", + ) + is_toxic: Optional[bool] = Field(None) + has_chemical_role: Optional[List[str]] = Field( + None, description="""A role is particular behaviour which a chemical entity may exhibit.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/MolecularEntity", "biolink:MolecularEntity"]] = Field( + ["biolink:MolecularEntity"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class SmallMolecule(MolecularEntity): + """ + A small molecule entity is a molecular entity characterized by availability in small-molecule databases of SMILES, InChI, IUPAC, or other unambiguous representation of its precise chemical structure; for convenience of representation, any valid chemical representation is included, even if it is not strictly molecular (e.g., sodium ion). + """ + + is_metabolite: Optional[bool] = Field(None, description="""indicates whether a molecular entity is a metabolite""") + trade_name: Optional[str] = Field(None) + available_from: Optional[List[DrugAvailabilityEnum]] = Field(None) + max_tolerated_dose: Optional[str] = Field( + None, + description="""The highest dose of a drug or treatment that does not cause unacceptable side effects. The maximum tolerated dose is determined in clinical trials by testing increasing doses on different groups of people until the highest dose with acceptable side effects is found. Also called MTD.""", + ) + is_toxic: Optional[bool] = Field(None) + has_chemical_role: Optional[List[str]] = Field( + None, description="""A role is particular behaviour which a chemical entity may exhibit.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/SmallMolecule", "biolink:SmallMolecule"]] = Field( + ["biolink:SmallMolecule"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ChemicalMixture(ChemicalEntity): + """ + A chemical mixture is a chemical entity composed of two or more molecular entities. + """ + + is_supplement: Optional[str] = Field(None) + highest_FDA_approval_status: Optional[str] = Field( + None, + description="""Should be the highest level of FDA approval this chemical entity or device has, regardless of which disease, condition or phenotype it is currently being reviewed to treat. For specific levels of FDA approval for a specific condition, disease, phenotype, etc., see the association slot, 'FDA approval status.'""", + ) + drug_regulatory_status_world_wide: Optional[str] = Field( + None, description="""An agglomeration of drug regulatory status worldwide. Not specific to FDA.""" + ) + routes_of_delivery: Optional[List[DrugDeliveryEnum]] = Field( + None, + description="""the method or process of administering a pharmaceutical compound to achieve a therapeutic effect in humans or animals.""", + ) + trade_name: Optional[str] = Field(None) + available_from: Optional[List[DrugAvailabilityEnum]] = Field(None) + max_tolerated_dose: Optional[str] = Field( + None, + description="""The highest dose of a drug or treatment that does not cause unacceptable side effects. The maximum tolerated dose is determined in clinical trials by testing increasing doses on different groups of people until the highest dose with acceptable side effects is found. Also called MTD.""", + ) + is_toxic: Optional[bool] = Field(None) + has_chemical_role: Optional[List[str]] = Field( + None, description="""A role is particular behaviour which a chemical entity may exhibit.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/ChemicalMixture", "biolink:ChemicalMixture"]] = Field( + ["biolink:ChemicalMixture"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class NucleicAcidEntity(MolecularEntity, GenomicEntity, ThingWithTaxon, PhysicalEssence, OntologyClass): + """ + A nucleic acid entity is a molecular entity characterized by availability in gene databases of nucleotide-based sequence representations of its precise sequence; for convenience of representation, partial sequences of various kinds are included. + """ + + has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""") + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + is_metabolite: Optional[bool] = Field(None, description="""indicates whether a molecular entity is a metabolite""") + trade_name: Optional[str] = Field(None) + available_from: Optional[List[DrugAvailabilityEnum]] = Field(None) + max_tolerated_dose: Optional[str] = Field( + None, + description="""The highest dose of a drug or treatment that does not cause unacceptable side effects. The maximum tolerated dose is determined in clinical trials by testing increasing doses on different groups of people until the highest dose with acceptable side effects is found. Also called MTD.""", + ) + is_toxic: Optional[bool] = Field(None) + has_chemical_role: Optional[List[str]] = Field( + None, description="""A role is particular behaviour which a chemical entity may exhibit.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/NucleicAcidEntity", "biolink:NucleicAcidEntity"]] = Field( + ["biolink:NucleicAcidEntity"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class MolecularMixture(ChemicalMixture): + """ + A molecular mixture is a chemical mixture composed of two or more molecular entities with known concentration and stoichiometry. + """ + + is_supplement: Optional[str] = Field(None) + highest_FDA_approval_status: Optional[str] = Field( + None, + description="""Should be the highest level of FDA approval this chemical entity or device has, regardless of which disease, condition or phenotype it is currently being reviewed to treat. For specific levels of FDA approval for a specific condition, disease, phenotype, etc., see the association slot, 'FDA approval status.'""", + ) + drug_regulatory_status_world_wide: Optional[str] = Field( + None, description="""An agglomeration of drug regulatory status worldwide. Not specific to FDA.""" + ) + routes_of_delivery: Optional[List[DrugDeliveryEnum]] = Field( + None, + description="""the method or process of administering a pharmaceutical compound to achieve a therapeutic effect in humans or animals.""", + ) + trade_name: Optional[str] = Field(None) + available_from: Optional[List[DrugAvailabilityEnum]] = Field(None) + max_tolerated_dose: Optional[str] = Field( + None, + description="""The highest dose of a drug or treatment that does not cause unacceptable side effects. The maximum tolerated dose is determined in clinical trials by testing increasing doses on different groups of people until the highest dose with acceptable side effects is found. Also called MTD.""", + ) + is_toxic: Optional[bool] = Field(None) + has_chemical_role: Optional[List[str]] = Field( + None, description="""A role is particular behaviour which a chemical entity may exhibit.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/MolecularMixture", "biolink:MolecularMixture"]] = Field( + ["biolink:MolecularMixture"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ComplexMolecularMixture(ChemicalMixture): + """ + A complex molecular mixture is a chemical mixture composed of two or more molecular entities with unknown concentration and stoichiometry. + """ + + is_supplement: Optional[str] = Field(None) + highest_FDA_approval_status: Optional[str] = Field( + None, + description="""Should be the highest level of FDA approval this chemical entity or device has, regardless of which disease, condition or phenotype it is currently being reviewed to treat. For specific levels of FDA approval for a specific condition, disease, phenotype, etc., see the association slot, 'FDA approval status.'""", + ) + drug_regulatory_status_world_wide: Optional[str] = Field( + None, description="""An agglomeration of drug regulatory status worldwide. Not specific to FDA.""" + ) + routes_of_delivery: Optional[List[DrugDeliveryEnum]] = Field( + None, + description="""the method or process of administering a pharmaceutical compound to achieve a therapeutic effect in humans or animals.""", + ) + trade_name: Optional[str] = Field(None) + available_from: Optional[List[DrugAvailabilityEnum]] = Field(None) + max_tolerated_dose: Optional[str] = Field( + None, + description="""The highest dose of a drug or treatment that does not cause unacceptable side effects. The maximum tolerated dose is determined in clinical trials by testing increasing doses on different groups of people until the highest dose with acceptable side effects is found. Also called MTD.""", + ) + is_toxic: Optional[bool] = Field(None) + has_chemical_role: Optional[List[str]] = Field( + None, description="""A role is particular behaviour which a chemical entity may exhibit.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/ComplexMolecularMixture", "biolink:ComplexMolecularMixture"] + ] = Field( + ["biolink:ComplexMolecularMixture"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ProcessedMaterial(ChemicalMixture): + """ + A chemical entity (often a mixture) processed for consumption for nutritional, medical or technical use. Is a material entity that is created or changed during material processing. + """ + + is_supplement: Optional[str] = Field(None) + highest_FDA_approval_status: Optional[str] = Field( + None, + description="""Should be the highest level of FDA approval this chemical entity or device has, regardless of which disease, condition or phenotype it is currently being reviewed to treat. For specific levels of FDA approval for a specific condition, disease, phenotype, etc., see the association slot, 'FDA approval status.'""", + ) + drug_regulatory_status_world_wide: Optional[str] = Field( + None, description="""An agglomeration of drug regulatory status worldwide. Not specific to FDA.""" + ) + routes_of_delivery: Optional[List[DrugDeliveryEnum]] = Field( + None, + description="""the method or process of administering a pharmaceutical compound to achieve a therapeutic effect in humans or animals.""", + ) + trade_name: Optional[str] = Field(None) + available_from: Optional[List[DrugAvailabilityEnum]] = Field(None) + max_tolerated_dose: Optional[str] = Field( + None, + description="""The highest dose of a drug or treatment that does not cause unacceptable side effects. The maximum tolerated dose is determined in clinical trials by testing increasing doses on different groups of people until the highest dose with acceptable side effects is found. Also called MTD.""", + ) + is_toxic: Optional[bool] = Field(None) + has_chemical_role: Optional[List[str]] = Field( + None, description="""A role is particular behaviour which a chemical entity may exhibit.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/ProcessedMaterial", "biolink:ProcessedMaterial"]] = Field( + ["biolink:ProcessedMaterial"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Drug(MolecularMixture, ChemicalOrDrugOrTreatment, OntologyClass): + """ + A substance intended for use in the diagnosis, cure, mitigation, treatment, or prevention of disease + """ + + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + is_supplement: Optional[str] = Field(None) + highest_FDA_approval_status: Optional[str] = Field( + None, + description="""Should be the highest level of FDA approval this chemical entity or device has, regardless of which disease, condition or phenotype it is currently being reviewed to treat. For specific levels of FDA approval for a specific condition, disease, phenotype, etc., see the association slot, 'FDA approval status.'""", + ) + drug_regulatory_status_world_wide: Optional[str] = Field( + None, description="""An agglomeration of drug regulatory status worldwide. Not specific to FDA.""" + ) + routes_of_delivery: Optional[List[DrugDeliveryEnum]] = Field( + None, + description="""the method or process of administering a pharmaceutical compound to achieve a therapeutic effect in humans or animals.""", + ) + trade_name: Optional[str] = Field(None) + available_from: Optional[List[DrugAvailabilityEnum]] = Field(None) + max_tolerated_dose: Optional[str] = Field( + None, + description="""The highest dose of a drug or treatment that does not cause unacceptable side effects. The maximum tolerated dose is determined in clinical trials by testing increasing doses on different groups of people until the highest dose with acceptable side effects is found. Also called MTD.""", + ) + is_toxic: Optional[bool] = Field(None) + has_chemical_role: Optional[List[str]] = Field( + None, description="""A role is particular behaviour which a chemical entity may exhibit.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Drug", "biolink:Drug"]] = Field( + ["biolink:Drug"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class EnvironmentalFoodContaminant(ChemicalEntity): + trade_name: Optional[str] = Field(None) + available_from: Optional[List[DrugAvailabilityEnum]] = Field(None) + max_tolerated_dose: Optional[str] = Field( + None, + description="""The highest dose of a drug or treatment that does not cause unacceptable side effects. The maximum tolerated dose is determined in clinical trials by testing increasing doses on different groups of people until the highest dose with acceptable side effects is found. Also called MTD.""", + ) + is_toxic: Optional[bool] = Field(None) + has_chemical_role: Optional[List[str]] = Field( + None, description="""A role is particular behaviour which a chemical entity may exhibit.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/EnvironmentalFoodContaminant", "biolink:EnvironmentalFoodContaminant"] + ] = Field( + ["biolink:EnvironmentalFoodContaminant"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class FoodAdditive(ChemicalEntity): + trade_name: Optional[str] = Field(None) + available_from: Optional[List[DrugAvailabilityEnum]] = Field(None) + max_tolerated_dose: Optional[str] = Field( + None, + description="""The highest dose of a drug or treatment that does not cause unacceptable side effects. The maximum tolerated dose is determined in clinical trials by testing increasing doses on different groups of people until the highest dose with acceptable side effects is found. Also called MTD.""", + ) + is_toxic: Optional[bool] = Field(None) + has_chemical_role: Optional[List[str]] = Field( + None, description="""A role is particular behaviour which a chemical entity may exhibit.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/FoodAdditive", "biolink:FoodAdditive"]] = Field( + ["biolink:FoodAdditive"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Food(ChemicalMixture): + """ + A substance consumed by a living organism as a source of nutrition + """ + + is_supplement: Optional[str] = Field(None) + highest_FDA_approval_status: Optional[str] = Field( + None, + description="""Should be the highest level of FDA approval this chemical entity or device has, regardless of which disease, condition or phenotype it is currently being reviewed to treat. For specific levels of FDA approval for a specific condition, disease, phenotype, etc., see the association slot, 'FDA approval status.'""", + ) + drug_regulatory_status_world_wide: Optional[str] = Field( + None, description="""An agglomeration of drug regulatory status worldwide. Not specific to FDA.""" + ) + routes_of_delivery: Optional[List[DrugDeliveryEnum]] = Field( + None, + description="""the method or process of administering a pharmaceutical compound to achieve a therapeutic effect in humans or animals.""", + ) + trade_name: Optional[str] = Field(None) + available_from: Optional[List[DrugAvailabilityEnum]] = Field(None) + max_tolerated_dose: Optional[str] = Field( + None, + description="""The highest dose of a drug or treatment that does not cause unacceptable side effects. The maximum tolerated dose is determined in clinical trials by testing increasing doses on different groups of people until the highest dose with acceptable side effects is found. Also called MTD.""", + ) + is_toxic: Optional[bool] = Field(None) + has_chemical_role: Optional[List[str]] = Field( + None, description="""A role is particular behaviour which a chemical entity may exhibit.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Food", "biolink:Food"]] = Field( + ["biolink:Food"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class MacromolecularMachineMixin(ConfiguredBaseModel): + """ + A union of gene locus, gene product, and macromolecular complex. These are the basic units of function in a cell. They either carry out individual biological activities, or they encode molecules which do this. + """ + + name: Optional[str] = Field( + None, + description="""genes are typically designated by a short symbol and a full name. We map the symbol to the default display name and use an additional slot for full name""", + ) + + +class GeneOrGeneProduct(MacromolecularMachineMixin): + """ + A union of gene loci or gene products. Frequently an identifier for one will be used as proxy for another + """ + + name: Optional[str] = Field( + None, + description="""genes are typically designated by a short symbol and a full name. We map the symbol to the default display name and use an additional slot for full name""", + ) + + +class Gene( + GeneOrGeneProduct, + ChemicalEntityOrGeneOrGeneProduct, + GenomicEntity, + BiologicalEntity, + PhysicalEssence, + OntologyClass, +): + """ + A region (or regions) that includes all of the sequence elements necessary to encode a functional transcript. A gene locus may include regulatory regions, transcribed regions and/or other functional sequence regions. + """ + + symbol: Optional[str] = Field(None, description="""Symbol for a particular thing""") + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""") + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Gene", "biolink:Gene"]] = Field( + ["biolink:Gene"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field( + None, + description="""genes are typically designated by a short symbol and a full name. We map the symbol to the default display name and use an additional slot for full name""", + ) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class GeneProductMixin(GeneOrGeneProduct): + """ + The functional molecular product of a single gene locus. Gene products are either proteins or functional RNA molecules. + """ + + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + name: Optional[str] = Field( + None, + description="""genes are typically designated by a short symbol and a full name. We map the symbol to the default display name and use an additional slot for full name""", + ) + + +class GeneProductIsoformMixin(GeneProductMixin): + """ + This is an abstract class that can be mixed in with different kinds of gene products to indicate that the gene product is intended to represent a specific isoform rather than a canonical or reference or generic product. The designation of canonical or reference may be arbitrary, or it may represent the superclass of all isoforms. + """ + + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + name: Optional[str] = Field( + None, + description="""genes are typically designated by a short symbol and a full name. We map the symbol to the default display name and use an additional slot for full name""", + ) + + +class MacromolecularComplex(MacromolecularMachineMixin, BiologicalEntity): + """ + A stable assembly of two or more macromolecules, i.e. proteins, nucleic acids, carbohydrates or lipids, in which at least one component is a protein and the constituent parts function together. + """ + + name: Optional[str] = Field( + None, + description="""genes are typically designated by a short symbol and a full name. We map the symbol to the default display name and use an additional slot for full name""", + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/MacromolecularComplex", "biolink:MacromolecularComplex"] + ] = Field( + ["biolink:MacromolecularComplex"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class NucleosomeModification(GeneProductIsoformMixin, EpigenomicEntity, GenomicEntity, BiologicalEntity): + """ + A chemical modification of a histone protein within a nucleosome octomer or a substitution of a histone with a variant histone isoform. e.g. Histone 4 Lysine 20 methylation (H4K20me), histone variant H2AZ substituting H2A. + """ + + has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""") + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/NucleosomeModification", "biolink:NucleosomeModification"] + ] = Field( + ["biolink:NucleosomeModification"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field( + None, + description="""genes are typically designated by a short symbol and a full name. We map the symbol to the default display name and use an additional slot for full name""", + ) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Genome(GenomicEntity, BiologicalEntity, PhysicalEssence, OntologyClass): + """ + A genome is the sum of genetic material within a cell or virion. + """ + + has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""") + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Genome", "biolink:Genome"]] = Field( + ["biolink:Genome"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Exon(BiologicalEntity): + """ + A region of the transcript sequence within a gene which is not removed from the primary RNA transcript by RNA splicing. + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Exon", "biolink:Exon"]] = Field( + ["biolink:Exon"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Transcript(BiologicalEntity): + """ + An RNA synthesized on a DNA or RNA template by an RNA polymerase. + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Transcript", "biolink:Transcript"]] = Field( + ["biolink:Transcript"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class CodingSequence(GenomicEntity, BiologicalEntity): + has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""") + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/CodingSequence", "biolink:CodingSequence"]] = Field( + ["biolink:CodingSequence"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Polypeptide(ChemicalEntityOrProteinOrPolypeptide, ChemicalEntityOrGeneOrGeneProduct, BiologicalEntity): + """ + A polypeptide is a molecular entity characterized by availability in protein databases of amino-acid-based sequence representations of its precise primary structure; for convenience of representation, partial sequences of various kinds are included, even if they do not represent a physical molecule. + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Polypeptide", "biolink:Polypeptide"]] = Field( + ["biolink:Polypeptide"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Protein(Polypeptide, GeneProductMixin): + """ + A gene product that is composed of a chain of amino acid sequences and is produced by ribosome-mediated translation of mRNA + """ + + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Protein", "biolink:Protein"]] = Field( + ["biolink:Protein"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field( + None, + description="""genes are typically designated by a short symbol and a full name. We map the symbol to the default display name and use an additional slot for full name""", + ) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ProteinIsoform(Protein, GeneProductIsoformMixin): + """ + Represents a protein that is a specific isoform of the canonical or reference protein. See https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4114032/ + """ + + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/ProteinIsoform", "biolink:ProteinIsoform"]] = Field( + ["biolink:ProteinIsoform"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field( + None, + description="""genes are typically designated by a short symbol and a full name. We map the symbol to the default display name and use an additional slot for full name""", + ) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class PosttranslationalModification(GeneProductIsoformMixin, BiologicalEntity): + """ + A chemical modification of a polypeptide or protein that occurs after translation. e.g. polypeptide cleavage to form separate proteins, methylation or acetylation of histone tail amino acids, protein ubiquitination. + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/PosttranslationalModification", "biolink:PosttranslationalModification"] + ] = Field( + ["biolink:PosttranslationalModification"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field( + None, + description="""genes are typically designated by a short symbol and a full name. We map the symbol to the default display name and use an additional slot for full name""", + ) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class NucleicAcidSequenceMotif(BiologicalEntity): + """ + A linear nucleotide sequence pattern that is widespread and has, or is conjectured to have, a biological significance. e.g. the TATA box promoter motif, transcription factor binding consensus sequences. + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/NucleicAcidSequenceMotif", "biolink:NucleicAcidSequenceMotif"] + ] = Field( + ["biolink:NucleicAcidSequenceMotif"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class RNAProduct(Transcript, GeneProductMixin): + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/RNAProduct", "biolink:RNAProduct"]] = Field( + ["biolink:RNAProduct"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field( + None, + description="""genes are typically designated by a short symbol and a full name. We map the symbol to the default display name and use an additional slot for full name""", + ) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class RNAProductIsoform(RNAProduct, GeneProductIsoformMixin): + """ + Represents a protein that is a specific isoform of the canonical or reference RNA + """ + + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/RNAProductIsoform", "biolink:RNAProductIsoform"]] = Field( + ["biolink:RNAProductIsoform"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field( + None, + description="""genes are typically designated by a short symbol and a full name. We map the symbol to the default display name and use an additional slot for full name""", + ) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class NoncodingRNAProduct(RNAProduct): + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/NoncodingRNAProduct", "biolink:NoncodingRNAProduct"] + ] = Field( + ["biolink:NoncodingRNAProduct"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field( + None, + description="""genes are typically designated by a short symbol and a full name. We map the symbol to the default display name and use an additional slot for full name""", + ) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class MicroRNA(NoncodingRNAProduct): + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/MicroRNA", "biolink:MicroRNA"]] = Field( + ["biolink:MicroRNA"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field( + None, + description="""genes are typically designated by a short symbol and a full name. We map the symbol to the default display name and use an additional slot for full name""", + ) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class SiRNA(NoncodingRNAProduct): + """ + A small RNA molecule that is the product of a longer exogenous or endogenous dsRNA, which is either a bimolecular duplex or very long hairpin, processed (via the Dicer pathway) such that numerous siRNAs accumulate from both strands of the dsRNA. SRNAs trigger the cleavage of their target molecules. + """ + + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/SiRNA", "biolink:SiRNA"]] = Field( + ["biolink:SiRNA"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field( + None, + description="""genes are typically designated by a short symbol and a full name. We map the symbol to the default display name and use an additional slot for full name""", + ) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class GeneGroupingMixin(ConfiguredBaseModel): + """ + any grouping of multiple genes or gene products + """ + + has_gene_or_gene_product: Optional[List[str]] = Field( + None, description="""connects an entity with one or more gene or gene products""" + ) + + +class ProteinDomain(GeneGroupingMixin, ChemicalEntityOrGeneOrGeneProduct, BiologicalEntity): + """ + A conserved part of protein sequence and (tertiary) structure that can evolve, function, and exist independently of the rest of the protein chain. Protein domains maintain their structure and function independently of the proteins in which they are found. e.g. an SH3 domain. + """ + + has_gene_or_gene_product: Optional[List[str]] = Field( + None, description="""connects an entity with one or more gene or gene products""" + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/ProteinDomain", "biolink:ProteinDomain"]] = Field( + ["biolink:ProteinDomain"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ProteinFamily(GeneGroupingMixin, ChemicalEntityOrGeneOrGeneProduct, BiologicalEntity): + has_gene_or_gene_product: Optional[List[str]] = Field( + None, description="""connects an entity with one or more gene or gene products""" + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/ProteinFamily", "biolink:ProteinFamily"]] = Field( + ["biolink:ProteinFamily"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class GeneFamily(GeneGroupingMixin, ChemicalEntityOrGeneOrGeneProduct, BiologicalEntity): + """ + any grouping of multiple genes or gene products related by common descent + """ + + has_gene_or_gene_product: Optional[List[str]] = Field( + None, description="""connects an entity with one or more gene or gene products""" + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/GeneFamily", "biolink:GeneFamily"]] = Field( + ["biolink:GeneFamily"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Zygosity(Attribute): + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Zygosity", "biolink:Zygosity"]] = Field( + ["biolink:Zygosity"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Genotype(GenomicEntity, BiologicalEntity, PhysicalEssence, OntologyClass): + """ + An information content entity that describes a genome by specifying the total variation in genomic sequence and/or gene expression, relative to some established background + """ + + has_zygosity: Optional[str] = Field(None) + has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""") + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Genotype", "biolink:Genotype"]] = Field( + ["biolink:Genotype"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Haplotype(GenomicEntity, BiologicalEntity, PhysicalEssence, OntologyClass): + """ + A set of zero or more Alleles on a single instance of a Sequence[VMC] + """ + + has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""") + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Haplotype", "biolink:Haplotype"]] = Field( + ["biolink:Haplotype"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class SequenceVariant(GenomicEntity, BiologicalEntity, PhysicalEssence, OntologyClass): + """ + A sequence_variant is a non exact copy of a sequence_feature or genome exhibiting one or more sequence_alteration. + """ + + has_gene: Optional[List[str]] = Field( + None, description="""Each allele can be associated with any number of genes""" + ) + has_biological_sequence: Optional[str] = Field( + None, description="""The state of the sequence w.r.t a reference sequence""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/SequenceVariant", "biolink:SequenceVariant"]] = Field( + ["biolink:SequenceVariant"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Snv(SequenceVariant): + """ + SNVs are single nucleotide positions in genomic DNA at which different sequence alternatives exist + """ + + has_gene: Optional[List[str]] = Field( + None, description="""Each allele can be associated with any number of genes""" + ) + has_biological_sequence: Optional[str] = Field( + None, description="""The state of the sequence w.r.t a reference sequence""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Snv", "biolink:Snv"]] = Field( + ["biolink:Snv"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ReagentTargetedGene(GenomicEntity, BiologicalEntity, PhysicalEssence, OntologyClass): + """ + A gene altered in its expression level in the context of some experiment as a result of being targeted by gene-knockdown reagent(s) such as a morpholino or RNAi. + """ + + has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""") + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/ReagentTargetedGene", "biolink:ReagentTargetedGene"] + ] = Field( + ["biolink:ReagentTargetedGene"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ClinicalAttribute(Attribute): + """ + Attributes relating to a clinical manifestation + """ + + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/ClinicalAttribute", "biolink:ClinicalAttribute"]] = Field( + ["biolink:ClinicalAttribute"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ClinicalMeasurement(ClinicalAttribute): + """ + A clinical measurement is a special kind of attribute which results from a laboratory observation from a subject individual or sample. Measurements can be connected to their subject by the 'has attribute' slot. + """ + + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/ClinicalMeasurement", "biolink:ClinicalMeasurement"] + ] = Field( + ["biolink:ClinicalMeasurement"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ClinicalModifier(ClinicalAttribute): + """ + Used to characterize and specify the phenotypic abnormalities defined in the phenotypic abnormality sub-ontology, with respect to severity, laterality, and other aspects + """ + + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/ClinicalModifier", "biolink:ClinicalModifier"]] = Field( + ["biolink:ClinicalModifier"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ClinicalCourse(ClinicalAttribute): + """ + The course a disease typically takes from its onset, progression in time, and eventual resolution or death of the affected individual + """ + + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/ClinicalCourse", "biolink:ClinicalCourse"]] = Field( + ["biolink:ClinicalCourse"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Onset(ClinicalCourse): + """ + The age group in which (disease) symptom manifestations appear + """ + + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Onset", "biolink:Onset"]] = Field( + ["biolink:Onset"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ClinicalEntity(NamedThing): + """ + Any entity or process that exists in the clinical domain and outside the biological realm. Diseases are placed under biological entities + """ + + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/ClinicalEntity", "biolink:ClinicalEntity"]] = Field( + ["biolink:ClinicalEntity"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ClinicalTrial(ClinicalEntity): + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/ClinicalTrial", "biolink:ClinicalTrial"]] = Field( + ["biolink:ClinicalTrial"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ClinicalIntervention(ClinicalEntity): + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/ClinicalIntervention", "biolink:ClinicalIntervention"] + ] = Field( + ["biolink:ClinicalIntervention"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ClinicalFinding(PhenotypicFeature): + """ + this category is currently considered broad enough to tag clinical lab measurements and other biological attributes taken as 'clinical traits' with some statistical score, for example, a p value in genetic associations. + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/ClinicalFinding", "biolink:ClinicalFinding"]] = Field( + ["biolink:ClinicalFinding"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Hospitalization(ClinicalIntervention): + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Hospitalization", "biolink:Hospitalization"]] = Field( + ["biolink:Hospitalization"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class SocioeconomicAttribute(Attribute): + """ + Attributes relating to a socioeconomic manifestation + """ + + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/SocioeconomicAttribute", "biolink:SocioeconomicAttribute"] + ] = Field( + ["biolink:SocioeconomicAttribute"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Case(IndividualOrganism, SubjectOfInvestigation): + """ + An individual (human) organism that has a patient role in some clinical context. + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Case", "biolink:Case"]] = Field( + ["biolink:Case"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""may often be an organism attribute""") + + +class Cohort(StudyPopulation, SubjectOfInvestigation): + """ + A group of people banded together or treated as a group who share common characteristics. A cohort 'study' is a particular form of longitudinal study that samples a cohort, performing a cross-section at intervals through time. + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Cohort", "biolink:Cohort"]] = Field( + ["biolink:Cohort"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""may often be an organism attribute""") + + +class ExposureEvent(OntologyClass): + """ + A (possibly time bounded) incidence of a feature of the environment of an organism that influences one or more phenotypic features of that organism, potentially mediated by genes + """ + + timepoint: Optional[str] = Field(None, description="""a point in time""") + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + + +class GenomicBackgroundExposure( + ExposureEvent, GeneGroupingMixin, GenomicEntity, ThingWithTaxon, PhysicalEssence, Attribute, OntologyClass +): + """ + A genomic background exposure is where an individual's specific genomic background of genes, sequence variants or other pre-existing genomic conditions constitute a kind of 'exposure' to the organism, leading to or influencing an outcome. + """ + + timepoint: Optional[str] = Field(None, description="""a point in time""") + has_gene_or_gene_product: Optional[List[str]] = Field( + None, description="""connects an entity with one or more gene or gene products""" + ) + has_biological_sequence: Optional[str] = Field(None, description="""connects a genomic feature to its sequence""") + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/GenomicBackgroundExposure", "biolink:GenomicBackgroundExposure"] + ] = Field( + ["biolink:GenomicBackgroundExposure"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class PathologicalEntityMixin(ConfiguredBaseModel): + """ + A pathological (abnormal) structure or process. + """ + + None + + +class PathologicalProcess(PathologicalEntityMixin, BiologicalProcess): + """ + A biologic function or a process having an abnormal or deleterious effect at the subcellular, cellular, multicellular, or organismal level. + """ + + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + has_input: Optional[List[str]] = Field( + None, + description="""holds between a process and a continuant, where the continuant is an input into the process""", + ) + has_output: Optional[List[str]] = Field( + None, + description="""holds between a process and a continuant, where the continuant is an output of the process""", + ) + enabled_by: Optional[List[str]] = Field( + None, + description="""holds between a process and a physical entity, where the physical entity executes the process""", + ) + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/PathologicalProcess", "biolink:PathologicalProcess"] + ] = Field( + ["biolink:PathologicalProcess"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class PathologicalProcessExposure(ExposureEvent, Attribute): + """ + A pathological process, when viewed as an exposure, representing a precondition, leading to or influencing an outcome, e.g. autoimmunity leading to disease. + """ + + timepoint: Optional[str] = Field(None, description="""a point in time""") + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/PathologicalProcessExposure", "biolink:PathologicalProcessExposure"] + ] = Field( + ["biolink:PathologicalProcessExposure"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class PathologicalAnatomicalStructure(PathologicalEntityMixin, AnatomicalEntity): + """ + An anatomical structure with the potential of have an abnormal or deleterious effect at the subcellular, cellular, multicellular, or organismal level. + """ + + in_taxon: Optional[List[str]] = Field( + None, + description="""connects an entity to its taxonomic classification. Only certain kinds of entities can be taxonomically classified; see 'thing with taxon'""", + ) + in_taxon_label: Optional[str] = Field( + None, description="""The human readable scientific name for the taxon of the entity.""" + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/PathologicalAnatomicalStructure", "biolink:PathologicalAnatomicalStructure" + ] + ] = Field( + ["biolink:PathologicalAnatomicalStructure"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""may often be an organism attribute""") + + +class PathologicalAnatomicalExposure(ExposureEvent, Attribute): + """ + An abnormal anatomical structure, when viewed as an exposure, representing an precondition, leading to or influencing an outcome, e.g. thrombosis leading to an ischemic disease outcome. + """ + + timepoint: Optional[str] = Field(None, description="""a point in time""") + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/PathologicalAnatomicalExposure", "biolink:PathologicalAnatomicalExposure" + ] + ] = Field( + ["biolink:PathologicalAnatomicalExposure"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class DiseaseOrPhenotypicFeatureExposure(PathologicalEntityMixin, ExposureEvent, Attribute): + """ + A disease or phenotypic feature state, when viewed as an exposure, represents an precondition, leading to or influencing an outcome, e.g. HIV predisposing an individual to infections; a relative deficiency of skin pigmentation predisposing an individual to skin cancer. + """ + + timepoint: Optional[str] = Field(None, description="""a point in time""") + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/DiseaseOrPhenotypicFeatureExposure", + "biolink:DiseaseOrPhenotypicFeatureExposure", + ] + ] = Field( + ["biolink:DiseaseOrPhenotypicFeatureExposure"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ChemicalExposure(ExposureEvent, Attribute): + """ + A chemical exposure is an intake of a particular chemical entity. + """ + + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/ChemicalExposure", "biolink:ChemicalExposure"]] = Field( + ["biolink:ChemicalExposure"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ComplexChemicalExposure(Attribute): + """ + A complex chemical exposure is an intake of a chemical mixture (e.g. gasoline), other than a drug. + """ + + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/ComplexChemicalExposure", "biolink:ComplexChemicalExposure"] + ] = Field( + ["biolink:ComplexChemicalExposure"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class DrugExposure(ChemicalExposure, ExposureEvent): + """ + A drug exposure is an intake of a particular drug. + """ + + timepoint: Optional[str] = Field(None, description="""a point in time""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/DrugExposure", "biolink:DrugExposure"]] = Field( + ["biolink:DrugExposure"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class DrugToGeneInteractionExposure(DrugExposure, GeneGroupingMixin): + """ + drug to gene interaction exposure is a drug exposure is where the interactions of the drug with specific genes are known to constitute an 'exposure' to the organism, leading to or influencing an outcome. + """ + + has_gene_or_gene_product: Optional[List[str]] = Field( + None, description="""connects an entity with one or more gene or gene products""" + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/DrugToGeneInteractionExposure", "biolink:DrugToGeneInteractionExposure"] + ] = Field( + ["biolink:DrugToGeneInteractionExposure"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class Treatment(ExposureEvent, NamedThing, ChemicalOrDrugOrTreatment): + """ + A treatment is targeted at a disease or phenotype and may involve multiple drug 'exposures', medical devices and/or procedures + """ + + has_drug: Optional[List[str]] = Field(None, description="""connects an entity to one or more drugs""") + has_device: Optional[List[str]] = Field(None, description="""connects an entity to one or more (medical) devices""") + has_procedure: Optional[List[str]] = Field( + None, description="""connects an entity to one or more (medical) procedures""" + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Treatment", "biolink:Treatment"]] = Field( + ["biolink:Treatment"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class BioticExposure(ExposureEvent, Attribute): + """ + An external biotic exposure is an intake of (sometimes pathological) biological organisms (including viruses). + """ + + timepoint: Optional[str] = Field(None, description="""a point in time""") + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/BioticExposure", "biolink:BioticExposure"]] = Field( + ["biolink:BioticExposure"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class EnvironmentalExposure(ExposureEvent, Attribute): + """ + A environmental exposure is a factor relating to abiotic processes in the environment including sunlight (UV-B), atmospheric (heat, cold, general pollution) and water-born contaminants. + """ + + timepoint: Optional[str] = Field(None, description="""a point in time""") + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/EnvironmentalExposure", "biolink:EnvironmentalExposure"] + ] = Field( + ["biolink:EnvironmentalExposure"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class GeographicExposure(EnvironmentalExposure, ExposureEvent): + """ + A geographic exposure is a factor relating to geographic proximity to some impactful entity. + """ + + timepoint: Optional[str] = Field(None, description="""a point in time""") + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/GeographicExposure", "biolink:GeographicExposure"]] = Field( + ["biolink:GeographicExposure"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class BehavioralExposure(ExposureEvent, Attribute): + """ + A behavioral exposure is a factor relating to behavior impacting an individual. + """ + + timepoint: Optional[str] = Field(None, description="""a point in time""") + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/BehavioralExposure", "biolink:BehavioralExposure"]] = Field( + ["biolink:BehavioralExposure"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class SocioeconomicExposure(ExposureEvent, Attribute): + """ + A socioeconomic exposure is a factor relating to social and financial status of an affected individual (e.g. poverty). + """ + + timepoint: Optional[str] = Field(None, description="""a point in time""") + name: Optional[str] = Field( + None, + description="""The human-readable 'attribute name' can be set to a string which reflects its context of interpretation, e.g. SEPIO evidence/provenance/confidence annotation or it can default to the name associated with the 'has attribute type' slot ontology term.""", + ) + has_attribute_type: str = Field(..., description="""connects an attribute to a class that describes it""") + has_quantitative_value: Optional[List[QuantityValue]] = Field( + None, description="""connects an attribute to a value""" + ) + has_qualitative_value: Optional[str] = Field(None, description="""connects an attribute to a value""") + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + provided_by: Optional[List[str]] = Field( + None, + description="""The value in this node property represents the knowledge provider that created or assembled the node and all of its attributes. Used internally to represent how a particular node made its way into a knowledge provider or graph.""", + ) + xref: Optional[List[str]] = Field( + default_factory=list, + description="""A database cross reference or alternative identifier for a NamedThing or edge between two NamedThings. This property should point to a database record or webpage that supports the existence of the edge, or gives more detail about the edge. This property can be used on a node or edge to provide multiple URIs or CURIE cross references.""", + ) + full_name: Optional[str] = Field(None, description="""a long-form human readable name for a thing""") + synonym: Optional[List[str]] = Field( + default_factory=list, description="""Alternate human-readable names for a thing""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/SocioeconomicExposure", "biolink:SocioeconomicExposure"] + ] = Field( + ["biolink:SocioeconomicExposure"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field(default_factory=list) + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: List[str] = Field(..., description="""connects any entity to an attribute""") + + +class Outcome(ConfiguredBaseModel): + """ + An entity that has the role of being the consequence of an exposure event. This is an abstract mixin grouping of various categories of possible biological or non-biological (e.g. clinical) outcomes. + """ + + None + + +class PathologicalProcessOutcome(Outcome): + """ + An outcome resulting from an exposure event which is the manifestation of a pathological process. + """ + + None + + +class PathologicalAnatomicalOutcome(Outcome): + """ + An outcome resulting from an exposure event which is the manifestation of an abnormal anatomical structure. + """ + + None + + +class DiseaseOrPhenotypicFeatureOutcome(Outcome): + """ + Physiological outcomes resulting from an exposure event which is the manifestation of a disease or other characteristic phenotype. + """ + + None + + +class BehavioralOutcome(Outcome): + """ + An outcome resulting from an exposure event which is the manifestation of human behavior. + """ + + None + + +class HospitalizationOutcome(Outcome): + """ + An outcome resulting from an exposure event which is the increased manifestation of acute (e.g. emergency room visit) or chronic (inpatient) hospitalization. + """ + + None + + +class MortalityOutcome(Outcome): + """ + An outcome of death from resulting from an exposure event. + """ + + None + + +class EpidemiologicalOutcome(Outcome): + """ + An epidemiological outcome, such as societal disease burden, resulting from an exposure event. + """ + + None + + +class SocioeconomicOutcome(Outcome): + """ + An general social or economic outcome, such as healthcare costs, utilization, etc., resulting from an exposure event + """ + + None + + +class Association(Entity): + """ + A typed association between two entities, supported by evidence + """ + + subject: str = Field( + ..., + description="""connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[Literal["https://w3id.org/biolink/vocab/Association", "biolink:Association"]] = Field( + ["biolink:Association"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ChemicalEntityAssessesNamedThingAssociation(Association): + subject: str = Field( + ..., + description="""connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/ChemicalEntityAssessesNamedThingAssociation", + "biolink:ChemicalEntityAssessesNamedThingAssociation", + ] + ] = Field( + ["biolink:ChemicalEntityAssessesNamedThingAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ContributorAssociation(Association): + """ + Any association between an entity (such as a publication) and various agents that contribute to its realisation + """ + + subject: str = Field(..., description="""information content entity which an agent has helped realise""") + predicate: str = Field( + ..., description="""generally one of the predicate values 'provider', 'publisher', 'editor' or 'author'""" + ) + object: str = Field(..., description="""agent helping to realise the given entity (e.g. such as a publication)""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""this field can be used to annotate special characteristics of an agent relationship, such as the fact that a given author agent of a publication is the 'corresponding author'""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/ContributorAssociation", "biolink:ContributorAssociation"] + ] = Field( + ["biolink:ContributorAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class GenotypeToGenotypePartAssociation(Association): + """ + Any association between one genotype and a genotypic entity that is a sub-component of it + """ + + subject: str = Field(..., description="""parent genotype""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""child genotype""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/GenotypeToGenotypePartAssociation", + "biolink:GenotypeToGenotypePartAssociation", + ] + ] = Field( + ["biolink:GenotypeToGenotypePartAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class GenotypeToGeneAssociation(Association): + """ + Any association between a genotype and a gene. The genotype have have multiple variants in that gene or a single one. There is no assumption of cardinality + """ + + subject: str = Field(..., description="""parent genotype""") + predicate: str = Field(..., description="""the relationship type used to connect genotype to gene""") + object: str = Field(..., description="""gene implicated in genotype""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/GenotypeToGeneAssociation", "biolink:GenotypeToGeneAssociation"] + ] = Field( + ["biolink:GenotypeToGeneAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class GenotypeToVariantAssociation(Association): + """ + Any association between a genotype and a sequence variant. + """ + + subject: str = Field(..., description="""parent genotype""") + predicate: str = Field(..., description="""the relationship type used to connect genotype to gene""") + object: str = Field(..., description="""gene implicated in genotype""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/GenotypeToVariantAssociation", "biolink:GenotypeToVariantAssociation"] + ] = Field( + ["biolink:GenotypeToVariantAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class GeneToGeneAssociation(Association): + """ + abstract parent class for different kinds of gene-gene or gene product to gene product relationships. Includes homology and interaction. + """ + + subject: str = Field( + ..., + description="""the subject gene in the association. If the relation is symmetric, subject vs object is arbitrary. We allow a gene product to stand as a proxy for the gene or vice versa.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""the object gene in the association. If the relation is symmetric, subject vs object is arbitrary. We allow a gene product to stand as a proxy for the gene or vice versa.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/GeneToGeneAssociation", "biolink:GeneToGeneAssociation"] + ] = Field( + ["biolink:GeneToGeneAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class GeneToGeneHomologyAssociation(GeneToGeneAssociation): + """ + A homology association between two genes. May be orthology (in which case the species of subject and object should differ) or paralogy (in which case the species may be the same) + """ + + subject: str = Field( + ..., + description="""the subject gene in the association. If the relation is symmetric, subject vs object is arbitrary. We allow a gene product to stand as a proxy for the gene or vice versa.""", + ) + predicate: str = Field(..., description="""homology relationship type""") + object: str = Field( + ..., + description="""the object gene in the association. If the relation is symmetric, subject vs object is arbitrary. We allow a gene product to stand as a proxy for the gene or vice versa.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/GeneToGeneHomologyAssociation", "biolink:GeneToGeneHomologyAssociation"] + ] = Field( + ["biolink:GeneToGeneHomologyAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class GeneToGeneFamilyAssociation(Association): + """ + Set membership of a gene in a family of genes related by common evolutionary ancestry usually inferred by sequence comparisons. The genes in a given family generally share common sequence motifs which generally map onto shared gene product structure-function relationships. + """ + + subject: str = Field( + ..., + description="""connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + predicate: str = Field(..., description="""membership of the gene in the given gene family.""") + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/GeneToGeneFamilyAssociation", "biolink:GeneToGeneFamilyAssociation"] + ] = Field( + ["biolink:GeneToGeneFamilyAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class GeneExpressionMixin(ConfiguredBaseModel): + """ + Observed gene expression intensity, context (site, stage) and associated phenotypic status within which the expression occurs. + """ + + quantifier_qualifier: Optional[str] = Field( + None, description="""Optional quantitative value indicating degree of expression.""" + ) + expression_site: Optional[str] = Field( + None, description="""location in which gene or protein expression takes place. May be cell, tissue, or organ.""" + ) + stage_qualifier: Optional[str] = Field( + None, description="""stage during which gene or protein expression of takes place.""" + ) + phenotypic_state: Optional[str] = Field( + None, + description="""in experiments (e.g. gene expression) assaying diseased or unhealthy tissue, the phenotypic state can be put here, e.g. MONDO ID. For healthy tissues, use XXX.""", + ) + + +class GeneToGeneCoexpressionAssociation(GeneExpressionMixin, GeneToGeneAssociation): + """ + Indicates that two genes are co-expressed, generally under the same conditions. + """ + + quantifier_qualifier: Optional[str] = Field( + None, description="""Optional quantitative value indicating degree of expression.""" + ) + expression_site: Optional[str] = Field( + None, description="""location in which gene or protein expression takes place. May be cell, tissue, or organ.""" + ) + stage_qualifier: Optional[str] = Field( + None, description="""stage during which gene or protein expression of takes place.""" + ) + phenotypic_state: Optional[str] = Field( + None, + description="""in experiments (e.g. gene expression) assaying diseased or unhealthy tissue, the phenotypic state can be put here, e.g. MONDO ID. For healthy tissues, use XXX.""", + ) + subject: str = Field( + ..., + description="""the subject gene in the association. If the relation is symmetric, subject vs object is arbitrary. We allow a gene product to stand as a proxy for the gene or vice versa.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""the object gene in the association. If the relation is symmetric, subject vs object is arbitrary. We allow a gene product to stand as a proxy for the gene or vice versa.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/GeneToGeneCoexpressionAssociation", + "biolink:GeneToGeneCoexpressionAssociation", + ] + ] = Field( + ["biolink:GeneToGeneCoexpressionAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class PairwiseGeneToGeneInteraction(GeneToGeneAssociation): + """ + An interaction between two genes or two gene products. May be physical (e.g. protein binding) or genetic (between genes). May be symmetric (e.g. protein interaction) or directed (e.g. phosphorylation) + """ + + subject: str = Field( + ..., + description="""the subject gene in the association. If the relation is symmetric, subject vs object is arbitrary. We allow a gene product to stand as a proxy for the gene or vice versa.""", + ) + predicate: str = Field(..., description="""interaction relationship type""") + object: str = Field( + ..., + description="""the object gene in the association. If the relation is symmetric, subject vs object is arbitrary. We allow a gene product to stand as a proxy for the gene or vice versa.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/PairwiseGeneToGeneInteraction", "biolink:PairwiseGeneToGeneInteraction"] + ] = Field( + ["biolink:PairwiseGeneToGeneInteraction"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class PairwiseMolecularInteraction(PairwiseGeneToGeneInteraction): + """ + An interaction at the molecular level between two physical entities + """ + + interacting_molecules_category: Optional[str] = Field(None) + subject: str = Field( + ..., + description="""the subject gene in the association. If the relation is symmetric, subject vs object is arbitrary. We allow a gene product to stand as a proxy for the gene or vice versa.""", + ) + predicate: str = Field(..., description="""interaction relationship type""") + object: str = Field( + ..., + description="""the object gene in the association. If the relation is symmetric, subject vs object is arbitrary. We allow a gene product to stand as a proxy for the gene or vice versa.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., description="""identifier for the interaction. This may come from an interaction database such as IMEX.""" + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/PairwiseMolecularInteraction", "biolink:PairwiseMolecularInteraction"] + ] = Field( + ["biolink:PairwiseMolecularInteraction"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class CellLineToEntityAssociationMixin(ConfiguredBaseModel): + """ + An relationship between a cell line and another entity + """ + + None + + +class ChemicalEntityToEntityAssociationMixin(ConfiguredBaseModel): + """ + An interaction between a chemical entity and another entity + """ + + None + + +class DrugToEntityAssociationMixin(ChemicalEntityToEntityAssociationMixin): + """ + An interaction between a drug and another entity + """ + + None + + +class ChemicalToEntityAssociationMixin(ChemicalEntityToEntityAssociationMixin): + """ + An interaction between a chemical entity and another entity + """ + + None + + +class CaseToEntityAssociationMixin(ConfiguredBaseModel): + """ + An abstract association for use where the case is the subject + """ + + None + + +class ChemicalToChemicalAssociation(ChemicalToEntityAssociationMixin, Association): + """ + A relationship between two chemical entities. This can encompass actual interactions as well as temporal causal edges, e.g. one chemical converted to another. + """ + + subject: str = Field(..., description="""the chemical entity or entity that is an interactor""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""the chemical element that is the target of the statement""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/ChemicalToChemicalAssociation", "biolink:ChemicalToChemicalAssociation"] + ] = Field( + ["biolink:ChemicalToChemicalAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ReactionToParticipantAssociation(ChemicalToChemicalAssociation): + stoichiometry: Optional[int] = Field( + None, + description="""the relationship between the relative quantities of substances taking part in a reaction or forming a compound, typically a ratio of whole integers.""", + ) + reaction_direction: Optional[ReactionDirectionEnum] = Field( + None, + description="""the direction of a reaction as constrained by the direction enum (ie: left_to_right, neutral, etc.)""", + ) + reaction_side: Optional[ReactionSideEnum] = Field( + None, description="""the side of a reaction being modeled (ie: left or right)""" + ) + subject: str = Field(..., description="""the chemical entity or entity that is an interactor""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""the chemical element that is the target of the statement""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/ReactionToParticipantAssociation", + "biolink:ReactionToParticipantAssociation", + ] + ] = Field( + ["biolink:ReactionToParticipantAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ReactionToCatalystAssociation(ReactionToParticipantAssociation): + stoichiometry: Optional[int] = Field( + None, + description="""the relationship between the relative quantities of substances taking part in a reaction or forming a compound, typically a ratio of whole integers.""", + ) + reaction_direction: Optional[ReactionDirectionEnum] = Field( + None, + description="""the direction of a reaction as constrained by the direction enum (ie: left_to_right, neutral, etc.)""", + ) + reaction_side: Optional[ReactionSideEnum] = Field( + None, description="""the side of a reaction being modeled (ie: left or right)""" + ) + subject: str = Field(..., description="""the chemical entity or entity that is an interactor""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""the chemical element that is the target of the statement""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/ReactionToCatalystAssociation", "biolink:ReactionToCatalystAssociation"] + ] = Field( + ["biolink:ReactionToCatalystAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ChemicalToChemicalDerivationAssociation(ChemicalToChemicalAssociation): + """ + A causal relationship between two chemical entities, where the subject represents the upstream entity and the object represents the downstream. For any such association there is an implicit reaction: + IF + R has-input C1 AND + R has-output C2 AND + R enabled-by P AND + R type Reaction + THEN + C1 derives-into C2 <> + """ + + catalyst_qualifier: Optional[List[str]] = Field( + None, + description="""this connects the derivation edge to the chemical entity that catalyzes the reaction that causes the subject chemical to transform into the object chemical.""", + ) + subject: str = Field(..., description="""the upstream chemical entity""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""the downstream chemical entity""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/ChemicalToChemicalDerivationAssociation", + "biolink:ChemicalToChemicalDerivationAssociation", + ] + ] = Field( + ["biolink:ChemicalToChemicalDerivationAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class MolecularActivityToPathwayAssociation(Association): + """ + Association that holds the relationship between a reaction and the pathway it participates in. + """ + + subject: str = Field( + ..., + description="""connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/MolecularActivityToPathwayAssociation", + "biolink:MolecularActivityToPathwayAssociation", + ] + ] = Field( + ["biolink:MolecularActivityToPathwayAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ChemicalToPathwayAssociation(ChemicalToEntityAssociationMixin, Association): + """ + An interaction between a chemical entity and a biological process or pathway. + """ + + subject: str = Field(..., description="""the chemical entity that is affecting the pathway""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""the pathway that is affected by the chemical""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/ChemicalToPathwayAssociation", "biolink:ChemicalToPathwayAssociation"] + ] = Field( + ["biolink:ChemicalToPathwayAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class NamedThingAssociatedWithLikelihoodOfNamedThingAssociation(Association): + subject: str = Field( + ..., + description="""connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/NamedThingAssociatedWithLikelihoodOfNamedThingAssociation", + "biolink:NamedThingAssociatedWithLikelihoodOfNamedThingAssociation", + ] + ] = Field( + ["biolink:NamedThingAssociatedWithLikelihoodOfNamedThingAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ChemicalGeneInteractionAssociation(ChemicalToEntityAssociationMixin, Association): + """ + describes a physical interaction between a chemical entity and a gene or gene product. Any biological or chemical effect resulting from such an interaction are out of scope, and covered by the ChemicalAffectsGeneAssociation type (e.g. impact of a chemical on the abundance, activity, structure, etc, of either participant in the interaction) + """ + + subject_form_or_variant_qualifier: Optional[ChemicalOrGeneOrGeneProductFormOrVariantEnum] = Field(None) + subject_part_qualifier: Optional[GeneOrGeneProductOrChemicalPartQualifierEnum] = Field(None) + subject_derivative_qualifier: Optional[ChemicalEntityDerivativeEnum] = Field(None) + subject_context_qualifier: Optional[str] = Field(None) + object_form_or_variant_qualifier: Optional[ChemicalOrGeneOrGeneProductFormOrVariantEnum] = Field(None) + object_part_qualifier: Optional[GeneOrGeneProductOrChemicalPartQualifierEnum] = Field(None) + object_context_qualifier: Optional[str] = Field(None) + anatomical_context_qualifier: Optional[str] = Field( + None, + description="""A statement qualifier representing an anatomical location where an relationship expressed in an association took place (can be a tissue, cell type, or sub-cellular location).""", + ) + subject: str = Field(..., description="""the chemical entity or entity that is an interactor""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/ChemicalGeneInteractionAssociation", + "biolink:ChemicalGeneInteractionAssociation", + ] + ] = Field( + ["biolink:ChemicalGeneInteractionAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ChemicalAffectsGeneAssociation(Association): + """ + Describes an effect that a chemical has on a gene or gene product (e.g. an impact of on its abundance, activity,localization, processing, expression, etc.) + """ + + subject_form_or_variant_qualifier: Optional[ChemicalOrGeneOrGeneProductFormOrVariantEnum] = Field(None) + subject_part_qualifier: Optional[GeneOrGeneProductOrChemicalPartQualifierEnum] = Field(None) + subject_derivative_qualifier: Optional[ChemicalEntityDerivativeEnum] = Field(None) + subject_aspect_qualifier: Optional[GeneOrGeneProductOrChemicalEntityAspectEnum] = Field(None) + subject_context_qualifier: Optional[str] = Field(None) + subject_direction_qualifier: Optional[DirectionQualifierEnum] = Field(None) + object_form_or_variant_qualifier: Optional[ChemicalOrGeneOrGeneProductFormOrVariantEnum] = Field(None) + object_part_qualifier: Optional[GeneOrGeneProductOrChemicalPartQualifierEnum] = Field(None) + object_aspect_qualifier: Optional[GeneOrGeneProductOrChemicalEntityAspectEnum] = Field(None) + object_context_qualifier: Optional[str] = Field(None) + causal_mechanism_qualifier: Optional[CausalMechanismQualifierEnum] = Field( + None, + description="""A statement qualifier representing a type of molecular control mechanism through which an effect of a chemical on a gene or gene product is mediated (e.g. 'agonism', 'inhibition', 'allosteric modulation', 'channel blocker')""", + ) + anatomical_context_qualifier: Optional[str] = Field( + None, + description="""A statement qualifier representing an anatomical location where an relationship expressed in an association took place (can be a tissue, cell type, or sub-cellular location).""", + ) + qualified_predicate: Optional[str] = Field( + None, + description="""Predicate to be used in an association when subject and object qualifiers are present and the full reading of the statement requires a qualification to the predicate in use in order to refine or increase the specificity of the full statement reading. This qualifier holds a relationship to be used instead of that expressed by the primary predicate, in a ‘full statement’ reading of the association, where qualifier-based semantics are included. This is necessary only in cases where the primary predicate does not work in a full statement reading.""", + ) + subject: str = Field( + ..., + description="""connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/ChemicalAffectsGeneAssociation", "biolink:ChemicalAffectsGeneAssociation" + ] + ] = Field( + ["biolink:ChemicalAffectsGeneAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class GeneAffectsChemicalAssociation(Association): + """ + Describes an effect that a gene or gene product has on a chemical entity (e.g. an impact of on its abundance, activity, localization, processing, transport, etc.) + """ + + subject_form_or_variant_qualifier: Optional[ChemicalOrGeneOrGeneProductFormOrVariantEnum] = Field(None) + subject_part_qualifier: Optional[GeneOrGeneProductOrChemicalPartQualifierEnum] = Field(None) + subject_derivative_qualifier: Optional[str] = Field(None) + subject_aspect_qualifier: Optional[GeneOrGeneProductOrChemicalEntityAspectEnum] = Field(None) + subject_context_qualifier: Optional[str] = Field(None) + subject_direction_qualifier: Optional[DirectionQualifierEnum] = Field(None) + object_form_or_variant_qualifier: Optional[ChemicalOrGeneOrGeneProductFormOrVariantEnum] = Field(None) + object_part_qualifier: Optional[GeneOrGeneProductOrChemicalPartQualifierEnum] = Field(None) + object_aspect_qualifier: Optional[GeneOrGeneProductOrChemicalEntityAspectEnum] = Field(None) + object_context_qualifier: Optional[str] = Field(None) + causal_mechanism_qualifier: Optional[CausalMechanismQualifierEnum] = Field( + None, + description="""A statement qualifier representing a type of molecular control mechanism through which an effect of a chemical on a gene or gene product is mediated (e.g. 'agonism', 'inhibition', 'allosteric modulation', 'channel blocker')""", + ) + anatomical_context_qualifier: Optional[str] = Field( + None, + description="""A statement qualifier representing an anatomical location where an relationship expressed in an association took place (can be a tissue, cell type, or sub-cellular location).""", + ) + qualified_predicate: Optional[str] = Field( + None, + description="""Predicate to be used in an association when subject and object qualifiers are present and the full reading of the statement requires a qualification to the predicate in use in order to refine or increase the specificity of the full statement reading. This qualifier holds a relationship to be used instead of that expressed by the primary predicate, in a ‘full statement’ reading of the association, where qualifier-based semantics are included. This is necessary only in cases where the primary predicate does not work in a full statement reading.""", + ) + subject: str = Field( + ..., + description="""connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/GeneAffectsChemicalAssociation", "biolink:GeneAffectsChemicalAssociation" + ] + ] = Field( + ["biolink:GeneAffectsChemicalAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class DrugToGeneAssociation(DrugToEntityAssociationMixin, Association): + """ + An interaction between a drug and a gene or gene product. + """ + + subject: str = Field(..., description="""the drug that is an interactor""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""the gene or gene product that is affected by the drug""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/DrugToGeneAssociation", "biolink:DrugToGeneAssociation"] + ] = Field( + ["biolink:DrugToGeneAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class MaterialSampleToEntityAssociationMixin(ConfiguredBaseModel): + """ + An association between a material sample and something. + """ + + None + + +class MaterialSampleDerivationAssociation(Association): + """ + An association between a material sample and the material entity from which it is derived. + """ + + subject: str = Field(..., description="""the material sample being described""") + predicate: str = Field(..., description="""derivation relationship""") + object: str = Field( + ..., + description="""the material entity the sample was derived from. This may be another material sample, or any other material entity, including for example an organism, a geographic feature, or some environmental material.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/MaterialSampleDerivationAssociation", + "biolink:MaterialSampleDerivationAssociation", + ] + ] = Field( + ["biolink:MaterialSampleDerivationAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class DiseaseToEntityAssociationMixin(ConfiguredBaseModel): + None + + +class EntityToExposureEventAssociationMixin(ConfiguredBaseModel): + """ + An association between some entity and an exposure event. + """ + + None + + +class DiseaseToExposureEventAssociation( + EntityToExposureEventAssociationMixin, DiseaseToEntityAssociationMixin, Association +): + """ + An association between an exposure event and a disease. + """ + + subject: str = Field(..., description="""disease class""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/DiseaseToExposureEventAssociation", + "biolink:DiseaseToExposureEventAssociation", + ] + ] = Field( + ["biolink:DiseaseToExposureEventAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class EntityToOutcomeAssociationMixin(ConfiguredBaseModel): + """ + An association between some entity and an outcome + """ + + None + + +class ExposureEventToOutcomeAssociation(EntityToOutcomeAssociationMixin, Association): + """ + An association between an exposure event and an outcome. + """ + + population_context_qualifier: Optional[str] = Field( + None, + description="""a biological population (general, study, cohort, etc.) with a specific set of characteristics to constrain an association.""", + ) + temporal_context_qualifier: Optional[str] = Field( + None, + description="""a constraint of time placed upon the truth value of an association. for time intervales, use temporal interval qualifier.""", + ) + subject: str = Field( + ..., + description="""connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/ExposureEventToOutcomeAssociation", + "biolink:ExposureEventToOutcomeAssociation", + ] + ] = Field( + ["biolink:ExposureEventToOutcomeAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class FrequencyQualifierMixin(ConfiguredBaseModel): + """ + Qualifier for frequency type associations + """ + + frequency_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject""", + ) + + +class EntityToFeatureOrDiseaseQualifiersMixin(FrequencyQualifierMixin): + """ + Qualifiers for entity to disease or phenotype associations. + """ + + severity_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how severe the phenotype is in the subject""", + ) + onset_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state when the phenotype appears is in the subject""", + ) + frequency_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject""", + ) + + +class EntityToPhenotypicFeatureAssociationMixin(EntityToFeatureOrDiseaseQualifiersMixin, FrequencyQuantifier): + sex_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state whether the association is specific to a particular sex.""", + ) + has_count: Optional[int] = Field(None, description="""number of things with a particular property""") + has_total: Optional[int] = Field(None, description="""total number of things in a particular reference set""") + has_quotient: Optional[float] = Field(None) + has_percentage: Optional[float] = Field(None, description="""equivalent to has quotient multiplied by 100""") + severity_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how severe the phenotype is in the subject""", + ) + onset_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state when the phenotype appears is in the subject""", + ) + frequency_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject""", + ) + + +class InformationContentEntityToNamedThingAssociation(Association): + """ + association between a named thing and a information content entity where the specific context of the relationship between that named thing and the publication is unknown. For example, model organisms databases often capture the knowledge that a gene is found in a journal article, but not specifically the context in which that gene was documented in the article. In these cases, this association with the accompanying predicate 'mentions' could be used. Conversely, for more specific associations (like 'gene to disease association', the publication should be captured as an edge property). + """ + + subject: str = Field( + ..., + description="""connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/InformationContentEntityToNamedThingAssociation", + "biolink:InformationContentEntityToNamedThingAssociation", + ] + ] = Field( + ["biolink:InformationContentEntityToNamedThingAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class EntityToDiseaseAssociationMixin(EntityToFeatureOrDiseaseQualifiersMixin): + """ + mixin class for any association whose object (target node) is a disease + """ + + severity_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how severe the phenotype is in the subject""", + ) + onset_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state when the phenotype appears is in the subject""", + ) + frequency_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject""", + ) + + +class DiseaseOrPhenotypicFeatureToEntityAssociationMixin(ConfiguredBaseModel): + None + + +class DiseaseOrPhenotypicFeatureToLocationAssociation(DiseaseOrPhenotypicFeatureToEntityAssociationMixin, Association): + """ + An association between either a disease or a phenotypic feature and an anatomical entity, where the disease/feature manifests in that site. + """ + + subject: str = Field(..., description="""disease or phenotype""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""anatomical entity in which the disease or feature is found.""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/DiseaseOrPhenotypicFeatureToLocationAssociation", + "biolink:DiseaseOrPhenotypicFeatureToLocationAssociation", + ] + ] = Field( + ["biolink:DiseaseOrPhenotypicFeatureToLocationAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class DiseaseOrPhenotypicFeatureToGeneticInheritanceAssociation( + DiseaseOrPhenotypicFeatureToEntityAssociationMixin, Association +): + """ + An association between either a disease or a phenotypic feature and its mode of (genetic) inheritance. + """ + + subject: str = Field(..., description="""disease or phenotype""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., description="""genetic inheritance associated with the specified disease or phenotypic feature.""" + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/DiseaseOrPhenotypicFeatureToGeneticInheritanceAssociation", + "biolink:DiseaseOrPhenotypicFeatureToGeneticInheritanceAssociation", + ] + ] = Field( + ["biolink:DiseaseOrPhenotypicFeatureToGeneticInheritanceAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class EntityToDiseaseOrPhenotypicFeatureAssociationMixin(ConfiguredBaseModel): + None + + +class CellLineToDiseaseOrPhenotypicFeatureAssociation( + EntityToDiseaseOrPhenotypicFeatureAssociationMixin, CellLineToEntityAssociationMixin, Association +): + """ + An relationship between a cell line and a disease or a phenotype, where the cell line is derived from an individual with that disease or phenotype. + """ + + subject: str = Field( + ..., + description="""connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""disease or phenotype""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/CellLineToDiseaseOrPhenotypicFeatureAssociation", + "biolink:CellLineToDiseaseOrPhenotypicFeatureAssociation", + ] + ] = Field( + ["biolink:CellLineToDiseaseOrPhenotypicFeatureAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ChemicalToDiseaseOrPhenotypicFeatureAssociation( + EntityToDiseaseOrPhenotypicFeatureAssociationMixin, ChemicalToEntityAssociationMixin, Association +): + """ + An interaction between a chemical entity and a phenotype or disease, where the presence of the chemical gives rise to or exacerbates the phenotype. + """ + + subject: str = Field(..., description="""the chemical entity or entity that is an interactor""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""the disease or phenotype that is affected by the chemical""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/ChemicalToDiseaseOrPhenotypicFeatureAssociation", + "biolink:ChemicalToDiseaseOrPhenotypicFeatureAssociation", + ] + ] = Field( + ["biolink:ChemicalToDiseaseOrPhenotypicFeatureAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ChemicalOrDrugOrTreatmentToDiseaseOrPhenotypicFeatureAssociation( + EntityToDiseaseOrPhenotypicFeatureAssociationMixin, ChemicalToEntityAssociationMixin, Association +): + """ + This association defines a relationship between a chemical or treatment (or procedure) and a disease or phenotypic feature where the disesae or phenotypic feature is a secondary undesirable effect. + """ + + FDA_adverse_event_level: Optional[FDAIDAAdverseEventEnum] = Field(None) + subject: str = Field(..., description="""the chemical entity or entity that is an interactor""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""disease or phenotype""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/ChemicalOrDrugOrTreatmentToDiseaseOrPhenotypicFeatureAssociation", + "biolink:ChemicalOrDrugOrTreatmentToDiseaseOrPhenotypicFeatureAssociation", + ] + ] = Field( + ["biolink:ChemicalOrDrugOrTreatmentToDiseaseOrPhenotypicFeatureAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ChemicalOrDrugOrTreatmentSideEffectDiseaseOrPhenotypicFeatureAssociation( + ChemicalOrDrugOrTreatmentToDiseaseOrPhenotypicFeatureAssociation, + EntityToDiseaseOrPhenotypicFeatureAssociationMixin, + ChemicalToEntityAssociationMixin, +): + """ + This association defines a relationship between a chemical or treatment (or procedure) and a disease or phenotypic feature where the disesae or phenotypic feature is a secondary, typically (but not always) undesirable effect. + """ + + FDA_adverse_event_level: Optional[FDAIDAAdverseEventEnum] = Field(None) + subject: str = Field(..., description="""the chemical entity or entity that is an interactor""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""disease or phenotype""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/ChemicalOrDrugOrTreatmentSideEffectDiseaseOrPhenotypicFeatureAssociation", + "biolink:ChemicalOrDrugOrTreatmentSideEffectDiseaseOrPhenotypicFeatureAssociation", + ] + ] = Field( + ["biolink:ChemicalOrDrugOrTreatmentSideEffectDiseaseOrPhenotypicFeatureAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class MaterialSampleToDiseaseOrPhenotypicFeatureAssociation( + EntityToDiseaseOrPhenotypicFeatureAssociationMixin, MaterialSampleToEntityAssociationMixin, Association +): + """ + An association between a material sample and a disease or phenotype. + """ + + subject: str = Field(..., description="""the material sample being described""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""disease or phenotype""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/MaterialSampleToDiseaseOrPhenotypicFeatureAssociation", + "biolink:MaterialSampleToDiseaseOrPhenotypicFeatureAssociation", + ] + ] = Field( + ["biolink:MaterialSampleToDiseaseOrPhenotypicFeatureAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class GenotypeToEntityAssociationMixin(ConfiguredBaseModel): + None + + +class GenotypeToPhenotypicFeatureAssociation( + GenotypeToEntityAssociationMixin, EntityToPhenotypicFeatureAssociationMixin, Association +): + """ + Any association between one genotype and a phenotypic feature, where having the genotype confers the phenotype, either in isolation or through environment + """ + + sex_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state whether the association is specific to a particular sex.""", + ) + subject: str = Field(..., description="""genotype that is associated with the phenotypic feature""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/GenotypeToPhenotypicFeatureAssociation", + "biolink:GenotypeToPhenotypicFeatureAssociation", + ] + ] = Field( + ["biolink:GenotypeToPhenotypicFeatureAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + has_count: Optional[int] = Field(None, description="""number of things with a particular property""") + has_total: Optional[int] = Field(None, description="""total number of things in a particular reference set""") + has_quotient: Optional[float] = Field(None) + has_percentage: Optional[float] = Field(None, description="""equivalent to has quotient multiplied by 100""") + severity_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how severe the phenotype is in the subject""", + ) + onset_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state when the phenotype appears is in the subject""", + ) + frequency_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject""", + ) + + +class ExposureEventToPhenotypicFeatureAssociation(EntityToPhenotypicFeatureAssociationMixin, Association): + """ + Any association between an environment and a phenotypic feature, where being in the environment influences the phenotype. + """ + + sex_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state whether the association is specific to a particular sex.""", + ) + subject: str = Field( + ..., + description="""connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/ExposureEventToPhenotypicFeatureAssociation", + "biolink:ExposureEventToPhenotypicFeatureAssociation", + ] + ] = Field( + ["biolink:ExposureEventToPhenotypicFeatureAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + has_count: Optional[int] = Field(None, description="""number of things with a particular property""") + has_total: Optional[int] = Field(None, description="""total number of things in a particular reference set""") + has_quotient: Optional[float] = Field(None) + has_percentage: Optional[float] = Field(None, description="""equivalent to has quotient multiplied by 100""") + severity_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how severe the phenotype is in the subject""", + ) + onset_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state when the phenotype appears is in the subject""", + ) + frequency_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject""", + ) + + +class DiseaseToPhenotypicFeatureAssociation( + EntityToPhenotypicFeatureAssociationMixin, DiseaseToEntityAssociationMixin, Association +): + """ + An association between a disease and a phenotypic feature in which the phenotypic feature is associated with the disease in some way. + """ + + sex_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state whether the association is specific to a particular sex.""", + ) + subject: str = Field(..., description="""disease class""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/DiseaseToPhenotypicFeatureAssociation", + "biolink:DiseaseToPhenotypicFeatureAssociation", + ] + ] = Field( + ["biolink:DiseaseToPhenotypicFeatureAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + has_count: Optional[int] = Field(None, description="""number of things with a particular property""") + has_total: Optional[int] = Field(None, description="""total number of things in a particular reference set""") + has_quotient: Optional[float] = Field(None) + has_percentage: Optional[float] = Field(None, description="""equivalent to has quotient multiplied by 100""") + severity_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how severe the phenotype is in the subject""", + ) + onset_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state when the phenotype appears is in the subject""", + ) + frequency_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject""", + ) + + +class CaseToPhenotypicFeatureAssociation( + EntityToPhenotypicFeatureAssociationMixin, CaseToEntityAssociationMixin, Association +): + """ + An association between a case (e.g. individual patient) and a phenotypic feature in which the individual has or has had the phenotype. + """ + + sex_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state whether the association is specific to a particular sex.""", + ) + subject: str = Field(..., description="""the case (e.g. patient) that has the property""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/CaseToPhenotypicFeatureAssociation", + "biolink:CaseToPhenotypicFeatureAssociation", + ] + ] = Field( + ["biolink:CaseToPhenotypicFeatureAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + has_count: Optional[int] = Field(None, description="""number of things with a particular property""") + has_total: Optional[int] = Field(None, description="""total number of things in a particular reference set""") + has_quotient: Optional[float] = Field(None) + has_percentage: Optional[float] = Field(None, description="""equivalent to has quotient multiplied by 100""") + severity_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how severe the phenotype is in the subject""", + ) + onset_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state when the phenotype appears is in the subject""", + ) + frequency_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject""", + ) + + +class BehaviorToBehavioralFeatureAssociation(EntityToPhenotypicFeatureAssociationMixin, Association): + """ + An association between an mixture behavior and a behavioral feature manifested by the individual exhibited or has exhibited the behavior. + """ + + sex_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state whether the association is specific to a particular sex.""", + ) + subject: str = Field(..., description="""behavior that is the subject of the association""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""behavioral feature that is the object of the association""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/BehaviorToBehavioralFeatureAssociation", + "biolink:BehaviorToBehavioralFeatureAssociation", + ] + ] = Field( + ["biolink:BehaviorToBehavioralFeatureAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + has_count: Optional[int] = Field(None, description="""number of things with a particular property""") + has_total: Optional[int] = Field(None, description="""total number of things in a particular reference set""") + has_quotient: Optional[float] = Field(None) + has_percentage: Optional[float] = Field(None, description="""equivalent to has quotient multiplied by 100""") + severity_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how severe the phenotype is in the subject""", + ) + onset_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state when the phenotype appears is in the subject""", + ) + frequency_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject""", + ) + + +class GeneToEntityAssociationMixin(ConfiguredBaseModel): + None + + +class GeneToPathwayAssociation(GeneToEntityAssociationMixin, Association): + """ + An interaction between a gene or gene product and a biological process or pathway. + """ + + subject: str = Field( + ..., description="""the gene or gene product entity that participates or influences the pathway""" + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""the pathway that includes or is affected by the gene or gene product""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/GeneToPathwayAssociation", "biolink:GeneToPathwayAssociation"] + ] = Field( + ["biolink:GeneToPathwayAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class VariantToEntityAssociationMixin(ConfiguredBaseModel): + None + + +class GeneToDiseaseOrPhenotypicFeatureAssociation( + GeneToEntityAssociationMixin, EntityToPhenotypicFeatureAssociationMixin, Association +): + subject_aspect_qualifier: Optional[GeneOrGeneProductOrChemicalEntityAspectEnum] = Field(None) + object_direction_qualifier: Optional[DirectionQualifierEnum] = Field(None) + sex_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state whether the association is specific to a particular sex.""", + ) + subject: str = Field(..., description="""gene in which variation is correlated with the phenotypic feature""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/GeneToDiseaseOrPhenotypicFeatureAssociation", + "biolink:GeneToDiseaseOrPhenotypicFeatureAssociation", + ] + ] = Field( + ["biolink:GeneToDiseaseOrPhenotypicFeatureAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + has_count: Optional[int] = Field(None, description="""number of things with a particular property""") + has_total: Optional[int] = Field(None, description="""total number of things in a particular reference set""") + has_quotient: Optional[float] = Field(None) + has_percentage: Optional[float] = Field(None, description="""equivalent to has quotient multiplied by 100""") + severity_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how severe the phenotype is in the subject""", + ) + onset_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state when the phenotype appears is in the subject""", + ) + frequency_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject""", + ) + + +class GeneToPhenotypicFeatureAssociation( + GeneToDiseaseOrPhenotypicFeatureAssociation, GeneToEntityAssociationMixin, EntityToPhenotypicFeatureAssociationMixin +): + sex_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state whether the association is specific to a particular sex.""", + ) + subject_aspect_qualifier: Optional[GeneOrGeneProductOrChemicalEntityAspectEnum] = Field(None) + object_direction_qualifier: Optional[DirectionQualifierEnum] = Field(None) + subject: str = Field(..., description="""gene in which variation is correlated with the phenotypic feature""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/GeneToPhenotypicFeatureAssociation", + "biolink:GeneToPhenotypicFeatureAssociation", + ] + ] = Field( + ["biolink:GeneToPhenotypicFeatureAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + has_count: Optional[int] = Field(None, description="""number of things with a particular property""") + has_total: Optional[int] = Field(None, description="""total number of things in a particular reference set""") + has_quotient: Optional[float] = Field(None) + has_percentage: Optional[float] = Field(None, description="""equivalent to has quotient multiplied by 100""") + severity_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how severe the phenotype is in the subject""", + ) + onset_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state when the phenotype appears is in the subject""", + ) + frequency_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject""", + ) + + +class GeneToDiseaseAssociation( + GeneToDiseaseOrPhenotypicFeatureAssociation, GeneToEntityAssociationMixin, EntityToDiseaseAssociationMixin +): + subject_aspect_qualifier: Optional[GeneOrGeneProductOrChemicalEntityAspectEnum] = Field(None) + object_direction_qualifier: Optional[DirectionQualifierEnum] = Field(None) + sex_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state whether the association is specific to a particular sex.""", + ) + subject: str = Field( + ..., + description="""gene in which variation is correlated with the disease, may be protective or causative or associative, or as a model""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""disease""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/GeneToDiseaseAssociation", "biolink:GeneToDiseaseAssociation"] + ] = Field( + ["biolink:GeneToDiseaseAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + has_count: Optional[int] = Field(None, description="""number of things with a particular property""") + has_total: Optional[int] = Field(None, description="""total number of things in a particular reference set""") + has_quotient: Optional[float] = Field(None) + has_percentage: Optional[float] = Field(None, description="""equivalent to has quotient multiplied by 100""") + severity_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how severe the phenotype is in the subject""", + ) + onset_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state when the phenotype appears is in the subject""", + ) + frequency_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject""", + ) + + +class CausalGeneToDiseaseAssociation( + GeneToDiseaseAssociation, GeneToEntityAssociationMixin, EntityToDiseaseAssociationMixin +): + subject_aspect_qualifier: Optional[GeneOrGeneProductOrChemicalEntityAspectEnum] = Field(None) + object_direction_qualifier: Optional[DirectionQualifierEnum] = Field(None) + sex_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state whether the association is specific to a particular sex.""", + ) + subject: str = Field(..., description="""gene in which variation is shown to cause the disease.""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""disease""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/CausalGeneToDiseaseAssociation", "biolink:CausalGeneToDiseaseAssociation" + ] + ] = Field( + ["biolink:CausalGeneToDiseaseAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + has_count: Optional[int] = Field(None, description="""number of things with a particular property""") + has_total: Optional[int] = Field(None, description="""total number of things in a particular reference set""") + has_quotient: Optional[float] = Field(None) + has_percentage: Optional[float] = Field(None, description="""equivalent to has quotient multiplied by 100""") + severity_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how severe the phenotype is in the subject""", + ) + onset_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state when the phenotype appears is in the subject""", + ) + frequency_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject""", + ) + + +class CorrelatedGeneToDiseaseAssociation( + GeneToDiseaseAssociation, GeneToEntityAssociationMixin, EntityToDiseaseAssociationMixin +): + subject_aspect_qualifier: Optional[GeneOrGeneProductOrChemicalEntityAspectEnum] = Field(None) + object_direction_qualifier: Optional[DirectionQualifierEnum] = Field(None) + sex_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state whether the association is specific to a particular sex.""", + ) + subject: str = Field(..., description="""gene in which variation is shown to correlate with the disease.""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""disease""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/CorrelatedGeneToDiseaseAssociation", + "biolink:CorrelatedGeneToDiseaseAssociation", + ] + ] = Field( + ["biolink:CorrelatedGeneToDiseaseAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + has_count: Optional[int] = Field(None, description="""number of things with a particular property""") + has_total: Optional[int] = Field(None, description="""total number of things in a particular reference set""") + has_quotient: Optional[float] = Field(None) + has_percentage: Optional[float] = Field(None, description="""equivalent to has quotient multiplied by 100""") + severity_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how severe the phenotype is in the subject""", + ) + onset_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state when the phenotype appears is in the subject""", + ) + frequency_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject""", + ) + + +class DruggableGeneToDiseaseAssociation( + GeneToDiseaseAssociation, GeneToEntityAssociationMixin, EntityToDiseaseAssociationMixin +): + subject_aspect_qualifier: Optional[GeneOrGeneProductOrChemicalEntityAspectEnum] = Field(None) + object_direction_qualifier: Optional[DirectionQualifierEnum] = Field(None) + sex_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state whether the association is specific to a particular sex.""", + ) + subject: str = Field( + ..., + description="""gene in which variation is correlated with the disease in a protective manner, or if the product produced by the gene can be targeted by a small molecule and this leads to a protective or improving disease state.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""disease""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[DruggableGeneCategoryEnum]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/DruggableGeneToDiseaseAssociation", + "biolink:DruggableGeneToDiseaseAssociation", + ] + ] = Field( + ["biolink:DruggableGeneToDiseaseAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + has_count: Optional[int] = Field(None, description="""number of things with a particular property""") + has_total: Optional[int] = Field(None, description="""total number of things in a particular reference set""") + has_quotient: Optional[float] = Field(None) + has_percentage: Optional[float] = Field(None, description="""equivalent to has quotient multiplied by 100""") + severity_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how severe the phenotype is in the subject""", + ) + onset_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state when the phenotype appears is in the subject""", + ) + frequency_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject""", + ) + + +class VariantToGeneAssociation(VariantToEntityAssociationMixin, Association): + """ + An association between a variant and a gene, where the variant has a genetic association with the gene (i.e. is in linkage disequilibrium) + """ + + subject: str = Field( + ..., description="""a sequence variant in which the allele state is associated with some other entity""" + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/VariantToGeneAssociation", "biolink:VariantToGeneAssociation"] + ] = Field( + ["biolink:VariantToGeneAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class VariantToGeneExpressionAssociation(VariantToGeneAssociation, GeneExpressionMixin): + """ + An association between a variant and expression of a gene (i.e. e-QTL) + """ + + quantifier_qualifier: Optional[str] = Field( + None, description="""Optional quantitative value indicating degree of expression.""" + ) + expression_site: Optional[str] = Field( + None, description="""location in which gene or protein expression takes place. May be cell, tissue, or organ.""" + ) + stage_qualifier: Optional[str] = Field( + None, description="""stage during which gene or protein expression of takes place.""" + ) + phenotypic_state: Optional[str] = Field( + None, + description="""in experiments (e.g. gene expression) assaying diseased or unhealthy tissue, the phenotypic state can be put here, e.g. MONDO ID. For healthy tissues, use XXX.""", + ) + subject: str = Field( + ..., description="""a sequence variant in which the allele state is associated with some other entity""" + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/VariantToGeneExpressionAssociation", + "biolink:VariantToGeneExpressionAssociation", + ] + ] = Field( + ["biolink:VariantToGeneExpressionAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class VariantToPopulationAssociation( + VariantToEntityAssociationMixin, FrequencyQualifierMixin, Association, FrequencyQuantifier +): + """ + An association between a variant and a population, where the variant has particular frequency in the population + """ + + has_count: Optional[int] = Field( + None, description="""number in object population that carry a particular allele, aka allele count""" + ) + has_total: Optional[int] = Field( + None, description="""number all populations that carry a particular allele, aka allele number""" + ) + has_quotient: Optional[float] = Field( + None, + description="""frequency of allele in population, expressed as a number with allele divided by number in reference population, aka allele frequency""", + ) + has_percentage: Optional[float] = Field(None, description="""equivalent to has quotient multiplied by 100""") + frequency_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject""", + ) + subject: str = Field(..., description="""an allele that has a certain frequency in a given population""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""the population that is observed to have the frequency""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/VariantToPopulationAssociation", "biolink:VariantToPopulationAssociation" + ] + ] = Field( + ["biolink:VariantToPopulationAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class PopulationToPopulationAssociation(Association): + """ + An association between a two populations + """ + + subject: str = Field(..., description="""the population that form the subject of the association""") + predicate: str = Field( + ..., + description="""A relationship type that holds between the subject and object populations. Standard mereological relations can be used. E.g. subject part-of object, subject overlaps object. Derivation relationships can also be used""", + ) + object: str = Field(..., description="""the population that form the object of the association""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/PopulationToPopulationAssociation", + "biolink:PopulationToPopulationAssociation", + ] + ] = Field( + ["biolink:PopulationToPopulationAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class VariantToPhenotypicFeatureAssociation( + VariantToEntityAssociationMixin, EntityToPhenotypicFeatureAssociationMixin, Association +): + sex_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state whether the association is specific to a particular sex.""", + ) + subject: str = Field( + ..., + description="""a sequence variant in which the allele state is associated in some way with the phenotype state""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/VariantToPhenotypicFeatureAssociation", + "biolink:VariantToPhenotypicFeatureAssociation", + ] + ] = Field( + ["biolink:VariantToPhenotypicFeatureAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + has_count: Optional[int] = Field(None, description="""number of things with a particular property""") + has_total: Optional[int] = Field(None, description="""total number of things in a particular reference set""") + has_quotient: Optional[float] = Field(None) + has_percentage: Optional[float] = Field(None, description="""equivalent to has quotient multiplied by 100""") + severity_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how severe the phenotype is in the subject""", + ) + onset_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state when the phenotype appears is in the subject""", + ) + frequency_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject""", + ) + + +class VariantToDiseaseAssociation(VariantToEntityAssociationMixin, EntityToDiseaseAssociationMixin, Association): + subject: str = Field( + ..., + description="""a sequence variant in which the allele state is associated in some way with the disease state""", + ) + predicate: str = Field(..., description="""E.g. is pathogenic for""") + object: str = Field(..., description="""a disease that is associated with that variant""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/VariantToDiseaseAssociation", "biolink:VariantToDiseaseAssociation"] + ] = Field( + ["biolink:VariantToDiseaseAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + severity_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how severe the phenotype is in the subject""", + ) + onset_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state when the phenotype appears is in the subject""", + ) + frequency_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject""", + ) + + +class GenotypeToDiseaseAssociation(GenotypeToEntityAssociationMixin, EntityToDiseaseAssociationMixin, Association): + subject: str = Field(..., description="""a genotype that is associated in some way with a disease state""") + predicate: str = Field(..., description="""E.g. is pathogenic for""") + object: str = Field(..., description="""a disease that is associated with that genotype""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/GenotypeToDiseaseAssociation", "biolink:GenotypeToDiseaseAssociation"] + ] = Field( + ["biolink:GenotypeToDiseaseAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + severity_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how severe the phenotype is in the subject""", + ) + onset_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state when the phenotype appears is in the subject""", + ) + frequency_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject""", + ) + + +class ModelToDiseaseAssociationMixin(ConfiguredBaseModel): + """ + This mixin is used for any association class for which the subject (source node) plays the role of a 'model', in that it recapitulates some features of the disease in a way that is useful for studying the disease outside a patient carrying the disease + """ + + None + + +class GeneAsAModelOfDiseaseAssociation( + ModelToDiseaseAssociationMixin, GeneToDiseaseAssociation, EntityToDiseaseAssociationMixin +): + subject_aspect_qualifier: Optional[GeneOrGeneProductOrChemicalEntityAspectEnum] = Field(None) + object_direction_qualifier: Optional[DirectionQualifierEnum] = Field(None) + sex_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state whether the association is specific to a particular sex.""", + ) + subject: str = Field( + ..., + description="""A gene that has a role in modeling the disease. This may be a model organism ortholog of a known disease gene, or it may be a gene whose mutants recapitulate core features of the disease.""", + ) + predicate: str = Field(..., description="""The relationship to the disease""") + object: str = Field(..., description="""disease""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/GeneAsAModelOfDiseaseAssociation", + "biolink:GeneAsAModelOfDiseaseAssociation", + ] + ] = Field( + ["biolink:GeneAsAModelOfDiseaseAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + has_count: Optional[int] = Field(None, description="""number of things with a particular property""") + has_total: Optional[int] = Field(None, description="""total number of things in a particular reference set""") + has_quotient: Optional[float] = Field(None) + has_percentage: Optional[float] = Field(None, description="""equivalent to has quotient multiplied by 100""") + severity_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how severe the phenotype is in the subject""", + ) + onset_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state when the phenotype appears is in the subject""", + ) + frequency_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject""", + ) + + +class VariantAsAModelOfDiseaseAssociation( + ModelToDiseaseAssociationMixin, VariantToDiseaseAssociation, EntityToDiseaseAssociationMixin +): + subject: str = Field(..., description="""A variant that has a role in modeling the disease.""") + predicate: str = Field(..., description="""The relationship to the disease""") + object: str = Field(..., description="""disease""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/VariantAsAModelOfDiseaseAssociation", + "biolink:VariantAsAModelOfDiseaseAssociation", + ] + ] = Field( + ["biolink:VariantAsAModelOfDiseaseAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + severity_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how severe the phenotype is in the subject""", + ) + onset_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state when the phenotype appears is in the subject""", + ) + frequency_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject""", + ) + + +class GenotypeAsAModelOfDiseaseAssociation( + ModelToDiseaseAssociationMixin, GenotypeToDiseaseAssociation, EntityToDiseaseAssociationMixin +): + subject: str = Field(..., description="""A genotype that has a role in modeling the disease.""") + predicate: str = Field(..., description="""The relationship to the disease""") + object: str = Field(..., description="""disease""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/GenotypeAsAModelOfDiseaseAssociation", + "biolink:GenotypeAsAModelOfDiseaseAssociation", + ] + ] = Field( + ["biolink:GenotypeAsAModelOfDiseaseAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + severity_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how severe the phenotype is in the subject""", + ) + onset_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state when the phenotype appears is in the subject""", + ) + frequency_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject""", + ) + + +class CellLineAsAModelOfDiseaseAssociation( + ModelToDiseaseAssociationMixin, CellLineToDiseaseOrPhenotypicFeatureAssociation, EntityToDiseaseAssociationMixin +): + subject: str = Field( + ..., + description="""A cell line derived from an organismal entity with a disease state that is used as a model of that disease.""", + ) + predicate: str = Field(..., description="""The relationship to the disease""") + object: str = Field(..., description="""disease""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/CellLineAsAModelOfDiseaseAssociation", + "biolink:CellLineAsAModelOfDiseaseAssociation", + ] + ] = Field( + ["biolink:CellLineAsAModelOfDiseaseAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + severity_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how severe the phenotype is in the subject""", + ) + onset_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state when the phenotype appears is in the subject""", + ) + frequency_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject""", + ) + + +class OrganismalEntityAsAModelOfDiseaseAssociation( + ModelToDiseaseAssociationMixin, EntityToDiseaseAssociationMixin, Association +): + subject: str = Field( + ..., + description="""A organismal entity (strain, breed) with a predisposition to a disease, or bred/created specifically to model a disease.""", + ) + predicate: str = Field(..., description="""The relationship to the disease""") + object: str = Field(..., description="""disease""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/OrganismalEntityAsAModelOfDiseaseAssociation", + "biolink:OrganismalEntityAsAModelOfDiseaseAssociation", + ] + ] = Field( + ["biolink:OrganismalEntityAsAModelOfDiseaseAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + severity_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how severe the phenotype is in the subject""", + ) + onset_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state when the phenotype appears is in the subject""", + ) + frequency_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject""", + ) + + +class OrganismToOrganismAssociation(Association): + subject: str = Field( + ..., + description="""connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""An association between two individual organisms.""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/OrganismToOrganismAssociation", "biolink:OrganismToOrganismAssociation"] + ] = Field( + ["biolink:OrganismToOrganismAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class TaxonToTaxonAssociation(Association): + subject: str = Field( + ..., + description="""connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""An association between individuals of different taxa.""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/TaxonToTaxonAssociation", "biolink:TaxonToTaxonAssociation"] + ] = Field( + ["biolink:TaxonToTaxonAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class GeneHasVariantThatContributesToDiseaseAssociation(GeneToDiseaseAssociation): + subject_form_or_variant_qualifier: Optional[str] = Field(None) + subject_aspect_qualifier: Optional[GeneOrGeneProductOrChemicalEntityAspectEnum] = Field(None) + object_direction_qualifier: Optional[DirectionQualifierEnum] = Field(None) + sex_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state whether the association is specific to a particular sex.""", + ) + subject: str = Field( + ..., + description="""A gene that has a role in modeling the disease. This may be a model organism ortholog of a known disease gene, or it may be a gene whose mutants recapitulate core features of the disease.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""disease""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/GeneHasVariantThatContributesToDiseaseAssociation", + "biolink:GeneHasVariantThatContributesToDiseaseAssociation", + ] + ] = Field( + ["biolink:GeneHasVariantThatContributesToDiseaseAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + has_count: Optional[int] = Field(None, description="""number of things with a particular property""") + has_total: Optional[int] = Field(None, description="""total number of things in a particular reference set""") + has_quotient: Optional[float] = Field(None) + has_percentage: Optional[float] = Field(None, description="""equivalent to has quotient multiplied by 100""") + severity_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how severe the phenotype is in the subject""", + ) + onset_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state when the phenotype appears is in the subject""", + ) + frequency_qualifier: Optional[str] = Field( + None, + description="""a qualifier used in a phenotypic association to state how frequent the phenotype is observed in the subject""", + ) + + +class GeneToExpressionSiteAssociation(Association): + """ + An association between a gene and a gene expression site, possibly qualified by stage/timing info. + """ + + stage_qualifier: Optional[str] = Field(None, description="""stage at which the gene is expressed in the site""") + quantifier_qualifier: Optional[str] = Field( + None, description="""can be used to indicate magnitude, or also ranking""" + ) + subject: str = Field( + ..., + description="""Gene or gene product positively within the specified anatomical entity (or subclass, i.e. cellular component) location.""", + ) + predicate: str = Field(..., description="""expression relationship""") + object: str = Field(..., description="""location in which the gene is expressed""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/GeneToExpressionSiteAssociation", "biolink:GeneToExpressionSiteAssociation" + ] + ] = Field( + ["biolink:GeneToExpressionSiteAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class SequenceVariantModulatesTreatmentAssociation(Association): + """ + An association between a sequence variant and a treatment or health intervention. The treatment object itself encompasses both the disease and the drug used. + """ + + subject: str = Field(..., description="""variant that modulates the treatment of some disease""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""treatment whose efficacy is modulated by the subject variant""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/SequenceVariantModulatesTreatmentAssociation", + "biolink:SequenceVariantModulatesTreatmentAssociation", + ] + ] = Field( + ["biolink:SequenceVariantModulatesTreatmentAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class FunctionalAssociation(Association): + """ + An association between a macromolecular machine mixin (gene, gene product or complex of gene products) and either a molecular activity, a biological process or a cellular location in which a function is executed. + """ + + subject: str = Field( + ..., description="""gene, product or macromolecular complex that has the function associated with the GO term""" + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., description="""class describing the activity, process or localization of the gene product""" + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/FunctionalAssociation", "biolink:FunctionalAssociation"] + ] = Field( + ["biolink:FunctionalAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class MacromolecularMachineToEntityAssociationMixin(ConfiguredBaseModel): + """ + an association which has a macromolecular machine mixin as a subject + """ + + None + + +class MacromolecularMachineToMolecularActivityAssociation( + MacromolecularMachineToEntityAssociationMixin, FunctionalAssociation +): + """ + A functional association between a macromolecular machine (gene, gene product or complex) and a molecular activity (as represented in the GO molecular function branch), where the entity carries out the activity, or contributes to its execution. + """ + + subject: str = Field( + ..., description="""gene, product or macromolecular complex that has the function associated with the GO term""" + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., description="""class describing the activity, process or localization of the gene product""" + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/MacromolecularMachineToMolecularActivityAssociation", + "biolink:MacromolecularMachineToMolecularActivityAssociation", + ] + ] = Field( + ["biolink:MacromolecularMachineToMolecularActivityAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class MacromolecularMachineToBiologicalProcessAssociation( + MacromolecularMachineToEntityAssociationMixin, FunctionalAssociation +): + """ + A functional association between a macromolecular machine (gene, gene product or complex) and a biological process or pathway (as represented in the GO biological process branch), where the entity carries out some part of the process, regulates it, or acts upstream of it. + """ + + subject: str = Field( + ..., description="""gene, product or macromolecular complex that has the function associated with the GO term""" + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., description="""class describing the activity, process or localization of the gene product""" + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/MacromolecularMachineToBiologicalProcessAssociation", + "biolink:MacromolecularMachineToBiologicalProcessAssociation", + ] + ] = Field( + ["biolink:MacromolecularMachineToBiologicalProcessAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class MacromolecularMachineToCellularComponentAssociation( + MacromolecularMachineToEntityAssociationMixin, FunctionalAssociation +): + """ + A functional association between a macromolecular machine (gene, gene product or complex) and a cellular component (as represented in the GO cellular component branch), where the entity carries out its function in the cellular component. + """ + + subject: str = Field( + ..., description="""gene, product or macromolecular complex that has the function associated with the GO term""" + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., description="""class describing the activity, process or localization of the gene product""" + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/MacromolecularMachineToCellularComponentAssociation", + "biolink:MacromolecularMachineToCellularComponentAssociation", + ] + ] = Field( + ["biolink:MacromolecularMachineToCellularComponentAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class MolecularActivityToChemicalEntityAssociation(Association): + """ + Added in response to capturing relationship between microbiome activities as measured via measurements of blood analytes as collected via blood and stool samples + """ + + subject: str = Field( + ..., + description="""connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/MolecularActivityToChemicalEntityAssociation", + "biolink:MolecularActivityToChemicalEntityAssociation", + ] + ] = Field( + ["biolink:MolecularActivityToChemicalEntityAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class MolecularActivityToMolecularActivityAssociation(Association): + """ + Added in response to capturing relationship between microbiome activities as measured via measurements of blood analytes as collected via blood and stool samples + """ + + subject: str = Field( + ..., + description="""connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/MolecularActivityToMolecularActivityAssociation", + "biolink:MolecularActivityToMolecularActivityAssociation", + ] + ] = Field( + ["biolink:MolecularActivityToMolecularActivityAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class GeneToGoTermAssociation(FunctionalAssociation): + subject: str = Field( + ..., description="""gene, product or macromolecular complex that has the function associated with the GO term""" + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., description="""class describing the activity, process or localization of the gene product""" + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/GeneToGoTermAssociation", "biolink:GeneToGoTermAssociation"] + ] = Field( + ["biolink:GeneToGoTermAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class EntityToDiseaseAssociation(Association): + FDA_approval_status: Optional[FDAApprovalStatusEnum] = Field(None) + subject: str = Field( + ..., + description="""connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/EntityToDiseaseAssociation", "biolink:EntityToDiseaseAssociation"] + ] = Field( + ["biolink:EntityToDiseaseAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class EntityToPhenotypicFeatureAssociation(Association): + FDA_approval_status: Optional[FDAApprovalStatusEnum] = Field(None) + subject: str = Field( + ..., + description="""connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/EntityToPhenotypicFeatureAssociation", + "biolink:EntityToPhenotypicFeatureAssociation", + ] + ] = Field( + ["biolink:EntityToPhenotypicFeatureAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class SequenceAssociation(Association): + """ + An association between a sequence feature and a nucleic acid entity it is localized to. + """ + + subject: str = Field( + ..., + description="""connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/SequenceAssociation", "biolink:SequenceAssociation"] + ] = Field( + ["biolink:SequenceAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class GenomicSequenceLocalization(SequenceAssociation): + """ + A relationship between a sequence feature and a nucleic acid entity it is localized to. The reference entity may be a chromosome, chromosome region or information entity such as a contig. + """ + + start_interbase_coordinate: Optional[int] = Field( + None, + description="""The position at which the subject nucleic acid entity starts on the chromosome or other entity to which it is located on. (ie: the start of the sequence being referenced is 0).""", + ) + end_interbase_coordinate: Optional[int] = Field( + None, + description="""The position at which the subject nucleic acid entity ends on the chromosome or other entity to which it is located on.""", + ) + genome_build: Optional[StrandEnum] = Field( + None, + description="""The version of the genome on which a feature is located. For example, GRCh38 for Homo sapiens.""", + ) + strand: Optional[StrandEnum] = Field( + None, + description="""The strand on which a feature is located. Has a value of '+' (sense strand or forward strand) or '-' (anti-sense strand or reverse strand).""", + ) + phase: Optional[PhaseEnum] = Field( + None, + description="""The phase for a coding sequence entity. For example, phase of a CDS as represented in a GFF3 with a value of 0, 1 or 2.""", + ) + subject: str = Field( + ..., + description="""connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/GenomicSequenceLocalization", "biolink:GenomicSequenceLocalization"] + ] = Field( + ["biolink:GenomicSequenceLocalization"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class SequenceFeatureRelationship(Association): + """ + For example, a particular exon is part of a particular transcript or gene + """ + + subject: str = Field( + ..., + description="""connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/SequenceFeatureRelationship", "biolink:SequenceFeatureRelationship"] + ] = Field( + ["biolink:SequenceFeatureRelationship"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class TranscriptToGeneRelationship(SequenceFeatureRelationship): + """ + A gene is a collection of transcripts + """ + + subject: str = Field( + ..., + description="""connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/TranscriptToGeneRelationship", "biolink:TranscriptToGeneRelationship"] + ] = Field( + ["biolink:TranscriptToGeneRelationship"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class GeneToGeneProductRelationship(SequenceFeatureRelationship): + """ + A gene is transcribed and potentially translated to a gene product + """ + + subject: str = Field( + ..., + description="""connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/GeneToGeneProductRelationship", "biolink:GeneToGeneProductRelationship"] + ] = Field( + ["biolink:GeneToGeneProductRelationship"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ExonToTranscriptRelationship(SequenceFeatureRelationship): + """ + A transcript is formed from multiple exons + """ + + subject: str = Field( + ..., + description="""connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal["https://w3id.org/biolink/vocab/ExonToTranscriptRelationship", "biolink:ExonToTranscriptRelationship"] + ] = Field( + ["biolink:ExonToTranscriptRelationship"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class ChemicalEntityOrGeneOrGeneProductRegulatesGeneAssociation(Association): + """ + A regulatory relationship between two genes + """ + + object_direction_qualifier: Optional[DirectionQualifierEnum] = Field(None) + subject: str = Field( + ..., + description="""connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + predicate: str = Field(..., description="""the direction is always from regulator to regulated""") + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/ChemicalEntityOrGeneOrGeneProductRegulatesGeneAssociation", + "biolink:ChemicalEntityOrGeneOrGeneProductRegulatesGeneAssociation", + ] + ] = Field( + ["biolink:ChemicalEntityOrGeneOrGeneProductRegulatesGeneAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class AnatomicalEntityToAnatomicalEntityAssociation(Association): + subject: str = Field( + ..., + description="""connects an association to the subject of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/AnatomicalEntityToAnatomicalEntityAssociation", + "biolink:AnatomicalEntityToAnatomicalEntityAssociation", + ] + ] = Field( + ["biolink:AnatomicalEntityToAnatomicalEntityAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class AnatomicalEntityToAnatomicalEntityPartOfAssociation(AnatomicalEntityToAnatomicalEntityAssociation): + """ + A relationship between two anatomical entities where the relationship is mereological, i.e the two entities are related by parthood. This includes relationships between cellular components and cells, between cells and tissues, tissues and whole organisms + """ + + subject: str = Field(..., description="""the part""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""the whole""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/AnatomicalEntityToAnatomicalEntityPartOfAssociation", + "biolink:AnatomicalEntityToAnatomicalEntityPartOfAssociation", + ] + ] = Field( + ["biolink:AnatomicalEntityToAnatomicalEntityPartOfAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class AnatomicalEntityToAnatomicalEntityOntogenicAssociation(AnatomicalEntityToAnatomicalEntityAssociation): + """ + A relationship between two anatomical entities where the relationship is ontogenic, i.e. the two entities are related by development. A number of different relationship types can be used to specify the precise nature of the relationship. + """ + + subject: str = Field(..., description="""the structure at a later time""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""the structure at an earlier time""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/AnatomicalEntityToAnatomicalEntityOntogenicAssociation", + "biolink:AnatomicalEntityToAnatomicalEntityOntogenicAssociation", + ] + ] = Field( + ["biolink:AnatomicalEntityToAnatomicalEntityOntogenicAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class OrganismTaxonToEntityAssociation(ConfiguredBaseModel): + """ + An association between an organism taxon and another entity + """ + + None + + +class OrganismTaxonToOrganismTaxonAssociation(OrganismTaxonToEntityAssociation, Association): + """ + A relationship between two organism taxon nodes + """ + + subject: str = Field(..., description="""organism taxon that is the subject of the association""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field( + ..., + description="""connects an association to the object of the association. For example, in a gene-to-phenotype association, the gene is subject and phenotype is object.""", + ) + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/OrganismTaxonToOrganismTaxonAssociation", + "biolink:OrganismTaxonToOrganismTaxonAssociation", + ] + ] = Field( + ["biolink:OrganismTaxonToOrganismTaxonAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class OrganismTaxonToOrganismTaxonSpecialization(OrganismTaxonToOrganismTaxonAssociation): + """ + A child-parent relationship between two taxa. For example: Homo sapiens subclass_of Homo + """ + + subject: str = Field(..., description="""the more specific taxon""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""the more general taxon""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/OrganismTaxonToOrganismTaxonSpecialization", + "biolink:OrganismTaxonToOrganismTaxonSpecialization", + ] + ] = Field( + ["biolink:OrganismTaxonToOrganismTaxonSpecialization"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class OrganismTaxonToOrganismTaxonInteraction(OrganismTaxonToOrganismTaxonAssociation): + """ + An interaction relationship between two taxa. This may be a symbiotic relationship (encompassing mutualism and parasitism), or it may be non-symbiotic. Example: plague transmitted_by flea; cattle domesticated_by Homo sapiens; plague infects Homo sapiens + """ + + associated_environmental_context: Optional[str] = Field( + None, description="""the environment in which the two taxa interact""" + ) + subject: str = Field(..., description="""the taxon that is the subject of the association""") + predicate: str = Field( + ..., + description="""A high-level grouping for the relationship type. AKA minimal predicate. This is analogous to category for nodes.""", + ) + object: str = Field(..., description="""the taxon that is the subject of the association""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/OrganismTaxonToOrganismTaxonInteraction", + "biolink:OrganismTaxonToOrganismTaxonInteraction", + ] + ] = Field( + ["biolink:OrganismTaxonToOrganismTaxonInteraction"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +class OrganismTaxonToEnvironmentAssociation(OrganismTaxonToEntityAssociation, Association): + subject: str = Field(..., description="""the taxon that is the subject of the association""") + predicate: str = Field( + ..., description="""predicate describing the relationship between the taxon and the environment""" + ) + object: str = Field(..., description="""the environment in which the organism occurs""") + negated: Optional[bool] = Field( + None, description="""if set to true, then the association is negated i.e. is not true""" + ) + qualifiers: Optional[List[str]] = Field( + default_factory=list, + description="""connects an association to qualifiers that modify or qualify the meaning of that association""", + ) + publications: Optional[List[str]] = Field( + default_factory=list, + description="""One or more publications that report the statement expressed in an Association, or provide information used as evidence supporting this statement.""", + ) + has_evidence: Optional[List[str]] = Field( + None, description="""connects an association to an instance of supporting evidence""" + ) + knowledge_source: Optional[str] = Field( + None, + description="""An Information Resource from which the knowledge expressed in an Association was retrieved, directly or indirectly. This can be any resource through which the knowledge passed on its way to its currently serialized form. In practice, implementers should use one of the more specific subtypes of this generic property.""", + ) + primary_knowledge_source: Optional[str] = Field( + None, + description="""The most upstream source of the knowledge expressed in an Association that an implementer can identify. Performing a rigorous analysis of upstream data providers is expected; every effort is made to catalog the most upstream source of data in this property. Only one data source should be declared primary in any association. \"aggregator knowledge source\" can be used to capture non-primary sources.""", + ) + aggregator_knowledge_source: Optional[List[str]] = Field( + None, + description="""An intermediate aggregator resource from which knowledge expressed in an Association was retrieved downstream of the original source, on its path to its current serialized form.""", + ) + timepoint: Optional[str] = Field(None, description="""a point in time""") + original_subject: Optional[str] = Field( + None, + description="""used to hold the original subject of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_predicate: Optional[str] = Field( + None, + description="""used to hold the original relation/predicate that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + original_object: Optional[str] = Field( + None, + description="""used to hold the original object of a relation (or predicate) that an external knowledge source uses before transformation to match the biolink-model specification.""", + ) + subject_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category: Optional[str] = Field( + None, + description="""Used to hold the biolink class/category of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_category_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object category closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_namespace: Optional[str] = Field( + None, + description="""Used to hold the subject namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_namespace: Optional[str] = Field( + None, + description="""Used to hold the object namespace of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + subject_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the subject label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + object_label_closure: Optional[List[str]] = Field( + None, + description="""Used to hold the object label closure of an association. This is a denormalized field used primarily in the SQL serialization of a knowledge graph via KGX.""", + ) + retrieval_source_ids: Optional[List[str]] = Field( + None, + description="""A list of retrieval sources that served as a source of knowledge expressed in an Edge, or a source of data used to generate this knowledge.""", + ) + id: str = Field( + ..., + description="""A unique identifier for an entity. Must be either a CURIE shorthand for a URI or a complete URI""", + ) + iri: Optional[str] = Field( + None, description="""An IRI for an entity. This is determined by the id using expansion rules.""" + ) + category: List[ + Literal[ + "https://w3id.org/biolink/vocab/OrganismTaxonToEnvironmentAssociation", + "biolink:OrganismTaxonToEnvironmentAssociation", + ] + ] = Field( + ["biolink:OrganismTaxonToEnvironmentAssociation"], + description="""Name of the high level ontology class in which this entity is categorized. Corresponds to the label for the biolink entity type class. + * In a neo4j database this MAY correspond to the neo4j label tag. + * In an RDF database it should be a biolink model class URI. +This field is multi-valued. It should include values for ancestors of the biolink class; for example, a protein such as Shh would have category values `biolink:Protein`, `biolink:GeneProduct`, `biolink:MolecularEntity`, ... +In an RDF database, nodes will typically have an rdf:type triples. This can be to the most specific biolink class, or potentially to a class more specific than something in biolink. For example, a sequence feature `f` may have a rdf:type assertion to a SO class such as TF_binding_site, which is more specific than anything in biolink. Here we would have categories {biolink:GenomicEntity, biolink:MolecularEntity, biolink:NamedThing}""", + ) + type: Optional[List[str]] = Field( + default_factory=list, description="""rdf:type of biolink:Association should be fixed at rdf:Statement""" + ) + name: Optional[str] = Field(None, description="""A human-readable name for an attribute or entity.""") + description: Optional[str] = Field(None, description="""a human-readable description of an entity""") + has_attribute: Optional[List[str]] = Field(None, description="""connects any entity to an attribute""") + + +# Model rebuild +# see https://pydantic-docs.helpmanual.io/usage/models/#rebuilding-a-model +MappingCollection.model_rebuild() +PredicateMapping.model_rebuild() +OntologyClass.model_rebuild() +Annotation.model_rebuild() +QuantityValue.model_rebuild() +RelationshipQuantifier.model_rebuild() +SensitivityQuantifier.model_rebuild() +SpecificityQuantifier.model_rebuild() +PathognomonicityQuantifier.model_rebuild() +FrequencyQuantifier.model_rebuild() +ChemicalOrDrugOrTreatment.model_rebuild() +Entity.model_rebuild() +NamedThing.model_rebuild() +Attribute.model_rebuild() +ChemicalRole.model_rebuild() +BiologicalSex.model_rebuild() +PhenotypicSex.model_rebuild() +GenotypicSex.model_rebuild() +SeverityValue.model_rebuild() +RelationshipType.model_rebuild() +TaxonomicRank.model_rebuild() +OrganismTaxon.model_rebuild() +Event.model_rebuild() +AdministrativeEntity.model_rebuild() +Agent.model_rebuild() +InformationContentEntity.model_rebuild() +StudyResult.model_rebuild() +StudyVariable.model_rebuild() +CommonDataElement.model_rebuild() +ConceptCountAnalysisResult.model_rebuild() +ObservedExpectedFrequencyAnalysisResult.model_rebuild() +RelativeFrequencyAnalysisResult.model_rebuild() +TextMiningResult.model_rebuild() +ChiSquaredAnalysisResult.model_rebuild() +LogOddsAnalysisResult.model_rebuild() +Dataset.model_rebuild() +DatasetDistribution.model_rebuild() +DatasetVersion.model_rebuild() +DatasetSummary.model_rebuild() +ConfidenceLevel.model_rebuild() +EvidenceType.model_rebuild() +Publication.model_rebuild() +Book.model_rebuild() +BookChapter.model_rebuild() +Serial.model_rebuild() +Article.model_rebuild() +JournalArticle.model_rebuild() +Patent.model_rebuild() +WebPage.model_rebuild() +PreprintPublication.model_rebuild() +DrugLabel.model_rebuild() +RetrievalSource.model_rebuild() +PhysicalEssenceOrOccurrent.model_rebuild() +PhysicalEssence.model_rebuild() +PhysicalEntity.model_rebuild() +Occurrent.model_rebuild() +ActivityAndBehavior.model_rebuild() +Activity.model_rebuild() +Study.model_rebuild() +Procedure.model_rebuild() +Phenomenon.model_rebuild() +Device.model_rebuild() +DiagnosticAid.model_rebuild() +SubjectOfInvestigation.model_rebuild() +MaterialSample.model_rebuild() +PlanetaryEntity.model_rebuild() +EnvironmentalProcess.model_rebuild() +EnvironmentalFeature.model_rebuild() +GeographicLocation.model_rebuild() +GeographicLocationAtTime.model_rebuild() +ThingWithTaxon.model_rebuild() +BiologicalEntity.model_rebuild() +GenomicEntity.model_rebuild() +EpigenomicEntity.model_rebuild() +BiologicalProcessOrActivity.model_rebuild() +MolecularActivity.model_rebuild() +BiologicalProcess.model_rebuild() +Pathway.model_rebuild() +PhysiologicalProcess.model_rebuild() +Behavior.model_rebuild() +OrganismAttribute.model_rebuild() +PhenotypicQuality.model_rebuild() +GeneticInheritance.model_rebuild() +OrganismalEntity.model_rebuild() +Bacterium.model_rebuild() +Virus.model_rebuild() +CellularOrganism.model_rebuild() +Mammal.model_rebuild() +Human.model_rebuild() +Plant.model_rebuild() +Invertebrate.model_rebuild() +Vertebrate.model_rebuild() +Fungus.model_rebuild() +LifeStage.model_rebuild() +IndividualOrganism.model_rebuild() +PopulationOfIndividualOrganisms.model_rebuild() +StudyPopulation.model_rebuild() +DiseaseOrPhenotypicFeature.model_rebuild() +Disease.model_rebuild() +PhenotypicFeature.model_rebuild() +BehavioralFeature.model_rebuild() +AnatomicalEntity.model_rebuild() +CellularComponent.model_rebuild() +Cell.model_rebuild() +CellLine.model_rebuild() +GrossAnatomicalStructure.model_rebuild() +ChemicalEntityOrGeneOrGeneProduct.model_rebuild() +RegulatoryRegion.model_rebuild() +AccessibleDnaRegion.model_rebuild() +TranscriptionFactorBindingSite.model_rebuild() +ChemicalEntityOrProteinOrPolypeptide.model_rebuild() +ChemicalEntity.model_rebuild() +MolecularEntity.model_rebuild() +SmallMolecule.model_rebuild() +ChemicalMixture.model_rebuild() +NucleicAcidEntity.model_rebuild() +MolecularMixture.model_rebuild() +ComplexMolecularMixture.model_rebuild() +ProcessedMaterial.model_rebuild() +Drug.model_rebuild() +EnvironmentalFoodContaminant.model_rebuild() +FoodAdditive.model_rebuild() +Food.model_rebuild() +MacromolecularMachineMixin.model_rebuild() +GeneOrGeneProduct.model_rebuild() +Gene.model_rebuild() +GeneProductMixin.model_rebuild() +GeneProductIsoformMixin.model_rebuild() +MacromolecularComplex.model_rebuild() +NucleosomeModification.model_rebuild() +Genome.model_rebuild() +Exon.model_rebuild() +Transcript.model_rebuild() +CodingSequence.model_rebuild() +Polypeptide.model_rebuild() +Protein.model_rebuild() +ProteinIsoform.model_rebuild() +PosttranslationalModification.model_rebuild() +NucleicAcidSequenceMotif.model_rebuild() +RNAProduct.model_rebuild() +RNAProductIsoform.model_rebuild() +NoncodingRNAProduct.model_rebuild() +MicroRNA.model_rebuild() +SiRNA.model_rebuild() +GeneGroupingMixin.model_rebuild() +ProteinDomain.model_rebuild() +ProteinFamily.model_rebuild() +GeneFamily.model_rebuild() +Zygosity.model_rebuild() +Genotype.model_rebuild() +Haplotype.model_rebuild() +SequenceVariant.model_rebuild() +Snv.model_rebuild() +ReagentTargetedGene.model_rebuild() +ClinicalAttribute.model_rebuild() +ClinicalMeasurement.model_rebuild() +ClinicalModifier.model_rebuild() +ClinicalCourse.model_rebuild() +Onset.model_rebuild() +ClinicalEntity.model_rebuild() +ClinicalTrial.model_rebuild() +ClinicalIntervention.model_rebuild() +ClinicalFinding.model_rebuild() +Hospitalization.model_rebuild() +SocioeconomicAttribute.model_rebuild() +Case.model_rebuild() +Cohort.model_rebuild() +ExposureEvent.model_rebuild() +GenomicBackgroundExposure.model_rebuild() +PathologicalEntityMixin.model_rebuild() +PathologicalProcess.model_rebuild() +PathologicalProcessExposure.model_rebuild() +PathologicalAnatomicalStructure.model_rebuild() +PathologicalAnatomicalExposure.model_rebuild() +DiseaseOrPhenotypicFeatureExposure.model_rebuild() +ChemicalExposure.model_rebuild() +ComplexChemicalExposure.model_rebuild() +DrugExposure.model_rebuild() +DrugToGeneInteractionExposure.model_rebuild() +Treatment.model_rebuild() +BioticExposure.model_rebuild() +EnvironmentalExposure.model_rebuild() +GeographicExposure.model_rebuild() +BehavioralExposure.model_rebuild() +SocioeconomicExposure.model_rebuild() +Outcome.model_rebuild() +PathologicalProcessOutcome.model_rebuild() +PathologicalAnatomicalOutcome.model_rebuild() +DiseaseOrPhenotypicFeatureOutcome.model_rebuild() +BehavioralOutcome.model_rebuild() +HospitalizationOutcome.model_rebuild() +MortalityOutcome.model_rebuild() +EpidemiologicalOutcome.model_rebuild() +SocioeconomicOutcome.model_rebuild() +Association.model_rebuild() +ChemicalEntityAssessesNamedThingAssociation.model_rebuild() +ContributorAssociation.model_rebuild() +GenotypeToGenotypePartAssociation.model_rebuild() +GenotypeToGeneAssociation.model_rebuild() +GenotypeToVariantAssociation.model_rebuild() +GeneToGeneAssociation.model_rebuild() +GeneToGeneHomologyAssociation.model_rebuild() +GeneToGeneFamilyAssociation.model_rebuild() +GeneExpressionMixin.model_rebuild() +GeneToGeneCoexpressionAssociation.model_rebuild() +PairwiseGeneToGeneInteraction.model_rebuild() +PairwiseMolecularInteraction.model_rebuild() +CellLineToEntityAssociationMixin.model_rebuild() +ChemicalEntityToEntityAssociationMixin.model_rebuild() +DrugToEntityAssociationMixin.model_rebuild() +ChemicalToEntityAssociationMixin.model_rebuild() +CaseToEntityAssociationMixin.model_rebuild() +ChemicalToChemicalAssociation.model_rebuild() +ReactionToParticipantAssociation.model_rebuild() +ReactionToCatalystAssociation.model_rebuild() +ChemicalToChemicalDerivationAssociation.model_rebuild() +MolecularActivityToPathwayAssociation.model_rebuild() +ChemicalToPathwayAssociation.model_rebuild() +NamedThingAssociatedWithLikelihoodOfNamedThingAssociation.model_rebuild() +ChemicalGeneInteractionAssociation.model_rebuild() +ChemicalAffectsGeneAssociation.model_rebuild() +GeneAffectsChemicalAssociation.model_rebuild() +DrugToGeneAssociation.model_rebuild() +MaterialSampleToEntityAssociationMixin.model_rebuild() +MaterialSampleDerivationAssociation.model_rebuild() +DiseaseToEntityAssociationMixin.model_rebuild() +EntityToExposureEventAssociationMixin.model_rebuild() +DiseaseToExposureEventAssociation.model_rebuild() +EntityToOutcomeAssociationMixin.model_rebuild() +ExposureEventToOutcomeAssociation.model_rebuild() +FrequencyQualifierMixin.model_rebuild() +EntityToFeatureOrDiseaseQualifiersMixin.model_rebuild() +EntityToPhenotypicFeatureAssociationMixin.model_rebuild() +InformationContentEntityToNamedThingAssociation.model_rebuild() +EntityToDiseaseAssociationMixin.model_rebuild() +DiseaseOrPhenotypicFeatureToEntityAssociationMixin.model_rebuild() +DiseaseOrPhenotypicFeatureToLocationAssociation.model_rebuild() +DiseaseOrPhenotypicFeatureToGeneticInheritanceAssociation.model_rebuild() +EntityToDiseaseOrPhenotypicFeatureAssociationMixin.model_rebuild() +CellLineToDiseaseOrPhenotypicFeatureAssociation.model_rebuild() +ChemicalToDiseaseOrPhenotypicFeatureAssociation.model_rebuild() +ChemicalOrDrugOrTreatmentToDiseaseOrPhenotypicFeatureAssociation.model_rebuild() +ChemicalOrDrugOrTreatmentSideEffectDiseaseOrPhenotypicFeatureAssociation.model_rebuild() +MaterialSampleToDiseaseOrPhenotypicFeatureAssociation.model_rebuild() +GenotypeToEntityAssociationMixin.model_rebuild() +GenotypeToPhenotypicFeatureAssociation.model_rebuild() +ExposureEventToPhenotypicFeatureAssociation.model_rebuild() +DiseaseToPhenotypicFeatureAssociation.model_rebuild() +CaseToPhenotypicFeatureAssociation.model_rebuild() +BehaviorToBehavioralFeatureAssociation.model_rebuild() +GeneToEntityAssociationMixin.model_rebuild() +GeneToPathwayAssociation.model_rebuild() +VariantToEntityAssociationMixin.model_rebuild() +GeneToDiseaseOrPhenotypicFeatureAssociation.model_rebuild() +GeneToPhenotypicFeatureAssociation.model_rebuild() +GeneToDiseaseAssociation.model_rebuild() +CausalGeneToDiseaseAssociation.model_rebuild() +CorrelatedGeneToDiseaseAssociation.model_rebuild() +DruggableGeneToDiseaseAssociation.model_rebuild() +VariantToGeneAssociation.model_rebuild() +VariantToGeneExpressionAssociation.model_rebuild() +VariantToPopulationAssociation.model_rebuild() +PopulationToPopulationAssociation.model_rebuild() +VariantToPhenotypicFeatureAssociation.model_rebuild() +VariantToDiseaseAssociation.model_rebuild() +GenotypeToDiseaseAssociation.model_rebuild() +ModelToDiseaseAssociationMixin.model_rebuild() +GeneAsAModelOfDiseaseAssociation.model_rebuild() +VariantAsAModelOfDiseaseAssociation.model_rebuild() +GenotypeAsAModelOfDiseaseAssociation.model_rebuild() +CellLineAsAModelOfDiseaseAssociation.model_rebuild() +OrganismalEntityAsAModelOfDiseaseAssociation.model_rebuild() +OrganismToOrganismAssociation.model_rebuild() +TaxonToTaxonAssociation.model_rebuild() +GeneHasVariantThatContributesToDiseaseAssociation.model_rebuild() +GeneToExpressionSiteAssociation.model_rebuild() +SequenceVariantModulatesTreatmentAssociation.model_rebuild() +FunctionalAssociation.model_rebuild() +MacromolecularMachineToEntityAssociationMixin.model_rebuild() +MacromolecularMachineToMolecularActivityAssociation.model_rebuild() +MacromolecularMachineToBiologicalProcessAssociation.model_rebuild() +MacromolecularMachineToCellularComponentAssociation.model_rebuild() +MolecularActivityToChemicalEntityAssociation.model_rebuild() +MolecularActivityToMolecularActivityAssociation.model_rebuild() +GeneToGoTermAssociation.model_rebuild() +EntityToDiseaseAssociation.model_rebuild() +EntityToPhenotypicFeatureAssociation.model_rebuild() +SequenceAssociation.model_rebuild() +GenomicSequenceLocalization.model_rebuild() +SequenceFeatureRelationship.model_rebuild() +TranscriptToGeneRelationship.model_rebuild() +GeneToGeneProductRelationship.model_rebuild() +ExonToTranscriptRelationship.model_rebuild() +ChemicalEntityOrGeneOrGeneProductRegulatesGeneAssociation.model_rebuild() +AnatomicalEntityToAnatomicalEntityAssociation.model_rebuild() +AnatomicalEntityToAnatomicalEntityPartOfAssociation.model_rebuild() +AnatomicalEntityToAnatomicalEntityOntogenicAssociation.model_rebuild() +OrganismTaxonToEntityAssociation.model_rebuild() +OrganismTaxonToOrganismTaxonAssociation.model_rebuild() +OrganismTaxonToOrganismTaxonSpecialization.model_rebuild() +OrganismTaxonToOrganismTaxonInteraction.model_rebuild() +OrganismTaxonToEnvironmentAssociation.model_rebuild() diff --git a/src/koza/model/config/source_config.py b/src/koza/model/config/source_config.py index 8a01670..74a3eb6 100644 --- a/src/koza/model/config/source_config.py +++ b/src/koza/model/config/source_config.py @@ -9,7 +9,7 @@ from dataclasses import field from enum import Enum from pathlib import Path -from typing import Dict, List, Union, Literal, Optional +from typing import Dict, List, Union, Optional import yaml from loguru import logger @@ -131,7 +131,7 @@ class DatasetDescription: rights: Optional[str] = None -@dataclass(config=PydanticConfig) +@dataclass(config=PYDANTIC_CONFIG) class SourceConfig: """ Source config data class diff --git a/src/koza/model/config/sssom_config.py b/src/koza/model/config/sssom_config.py index d3a2d57..6590931 100644 --- a/src/koza/model/config/sssom_config.py +++ b/src/koza/model/config/sssom_config.py @@ -26,7 +26,7 @@ class SSSOMConfig: filter_prefixes: Optional list of prefixes to filter by subject_target_prefixes: Optional list of prefixes to use for subject mapping object_target_prefixes: Optional list of prefixes to use for object mapping - + use_match: Optional list of match types to use """ files: List[Union[str, Path]] = field(default_factory=list) @@ -37,7 +37,7 @@ class SSSOMConfig: predicates = {"exact": ["skos:exactMatch"], "narrow": ["skos:narrowMatch"], "broad": ["skos:broadMatch"]} - def __post_init_post_parse__(self): + def __post_init__(self): if not self.use_match: self.use_match = [Match.exact] logger.debug("Building SSSOM Dataframe...") diff --git a/tests/unit/test_kgx_converter.py b/tests/unit/test_kgx_converter.py index e49b48c..7c542c3 100644 --- a/tests/unit/test_kgx_converter.py +++ b/tests/unit/test_kgx_converter.py @@ -1,5 +1,6 @@ import pytest -from biolink.pydanticmodel import Gene, GeneToGeneAssociation +# from biolink.pydanticmodel_v2 import Gene, GeneToGeneAssociation # , Publication +from koza.model.biolink.pydanticmodel_v2 import Gene, GeneToGeneAssociation # , Publication from koza.converter.kgx_converter import KGXConverter diff --git a/tests/unit/test_tsvwriter_node_and_edge.py b/tests/unit/test_tsvwriter_node_and_edge.py index 3c5804e..102347d 100644 --- a/tests/unit/test_tsvwriter_node_and_edge.py +++ b/tests/unit/test_tsvwriter_node_and_edge.py @@ -1,6 +1,7 @@ import os -from biolink.pydanticmodel import Disease, Gene, GeneToDiseaseAssociation +# from biolink.pydanticmodel_v2 import Disease, Gene, GeneToDiseaseAssociation +from koza.model.biolink.pydanticmodel_v2 import Disease, Gene, GeneToDiseaseAssociation from koza.io.writer.tsv_writer import TSVWriter diff --git a/tests/unit/test_tsvwriter_node_only.py b/tests/unit/test_tsvwriter_node_only.py index 5b20f1d..03c22e3 100644 --- a/tests/unit/test_tsvwriter_node_only.py +++ b/tests/unit/test_tsvwriter_node_only.py @@ -1,6 +1,7 @@ import os -from biolink.pydanticmodel import Disease, Gene +# from biolink.pydanticmodel_v2 import Disease, Gene +from koza.model.biolink.pydanticmodel_v2 import Disease, Gene from koza.io.writer.tsv_writer import TSVWriter diff --git a/tests/unit/test_validation.py b/tests/unit/test_validation.py index 90149d2..db2c825 100644 --- a/tests/unit/test_validation.py +++ b/tests/unit/test_validation.py @@ -1,29 +1,36 @@ -# import pytest -# from linkml_validator.validator import Validator +# from pathlib import Path +from urllib.request import urlopen +import yaml -# valid_gene = { -# "id": "BOGUS:12345", -# "name": "Bogus Gene 12345", -# "category": ["biolink:NamedThing", "biolink:Gene"], -# } +import pytest +from linkml.validator import validate -# invalid_gene = {"name": "Bogus Gene 98765", "type": "biolink:NamedThing"} +pytest.skip("validation tests are not working", allow_module_level=True) + + +valid_gene = { + "id": "BOGUS:12345", + "name": "Bogus Gene 12345", + "category": ["biolink:NamedThing", "biolink:Gene"], +} +invalid_gene = {"name": "Bogus Gene 98765", "type": "biolink:NamedThing"} # model_url = "https://raw.githubusercontent.com/biolink/biolink-model/latest/biolink-model.yaml" -# validator = Validator(schema=model_url) -# # model_schema = Path(__file__).parent.parent / 'resources' / 'biolink-model.yaml' -# # validator = Validator(schema="tests/resources/biolink-model.yaml") +model_url = "https://raw.githubusercontent.com/monarch-initiative/monarch-app/main/backend/src/monarch_py/datamodels/similarity.yaml" +with urlopen(model_url) as f: + biolink_model = yaml.load(f, Loader=yaml.FullLoader) -# @pytest.mark.parametrize("gene", [valid_gene]) -# def test_valid_input(gene): -# v = validator.validate(obj=gene, target_class="Gene") -# result = v.validation_results[0] -# assert result.valid == True +@pytest.mark.parametrize("gene", [valid_gene]) +def test_valid_input(gene): + v = validate(instance=gene, target_class="gene", schema=model_url) + result = v.results[0] + print(result) + assert result.valid == True -# @pytest.mark.parametrize("gene", [invalid_gene]) -# def test_invalid_input(gene): -# v = validator.validate(obj=gene, target_class="Gene") -# result = v.validation_results[0] -# assert result.valid == False +@pytest.mark.parametrize("gene", [invalid_gene]) +def test_invalid_input(gene): + v = validate(instance=gene, target_class="gene", schema=model_url) + result = v.results[0] + # assert result.valid == False