From 5ec990738f5990592ba07fb69c8a41f441eaf117 Mon Sep 17 00:00:00 2001 From: Patrick Kalita Date: Tue, 9 Jul 2024 15:25:49 -0700 Subject: [PATCH 01/11] Standardize on pytest-style tests --- Makefile | 2 +- poetry.lock | 39 +++++---------------------------------- pyproject.toml | 15 +++++++++------ tests/test_data.py | 14 +++++--------- 4 files changed, 20 insertions(+), 50 deletions(-) diff --git a/Makefile b/Makefile index 957f9ea..837e687 100644 --- a/Makefile +++ b/Makefile @@ -143,7 +143,7 @@ test-schema: $(RUN) gen-project ${CONFIG_YAML} -d tmp $(SOURCE_SCHEMA_PATH) test-python: - $(RUN) python -m unittest discover + $(RUN) pytest tests lint: $(RUN) linkml-lint $(SOURCE_SCHEMA_PATH) diff --git a/poetry.lock b/poetry.lock index 8d8005a..b4db559 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1152,7 +1152,6 @@ optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" files = [ {file = "jsonpatch-1.33-py2.py3-none-any.whl", hash = "sha256:0ae28c0cd062bbd8b8ecc26d7d164fbbea9652a1a3693f3b956c1eae5145dade"}, - {file = "jsonpatch-1.33.tar.gz", hash = "sha256:9fcd4009c41e6d12348b4a0ff2563ba56a2923a7dfee731d004e212e1ee5030c"}, ] [package.dependencies] @@ -1459,9 +1458,13 @@ files = [ {file = "lxml-5.2.2-cp36-cp36m-win_amd64.whl", hash = "sha256:edcfa83e03370032a489430215c1e7783128808fd3e2e0a3225deee278585196"}, {file = "lxml-5.2.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:28bf95177400066596cdbcfc933312493799382879da504633d16cf60bba735b"}, {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a745cc98d504d5bd2c19b10c79c61c7c3df9222629f1b6210c0368177589fb8"}, + {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b590b39ef90c6b22ec0be925b211298e810b4856909c8ca60d27ffbca6c12e6"}, {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b336b0416828022bfd5a2e3083e7f5ba54b96242159f83c7e3eebaec752f1716"}, + {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:c2faf60c583af0d135e853c86ac2735ce178f0e338a3c7f9ae8f622fd2eb788c"}, {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:4bc6cb140a7a0ad1f7bc37e018d0ed690b7b6520ade518285dc3171f7a117905"}, + {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7ff762670cada8e05b32bf1e4dc50b140790909caa8303cfddc4d702b71ea184"}, {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:57f0a0bbc9868e10ebe874e9f129d2917750adf008fe7b9c1598c0fbbfdde6a6"}, + {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:a6d2092797b388342c1bc932077ad232f914351932353e2e8706851c870bca1f"}, {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:60499fe961b21264e17a471ec296dcbf4365fbea611bf9e303ab69db7159ce61"}, {file = "lxml-5.2.2-cp37-cp37m-win32.whl", hash = "sha256:d9b342c76003c6b9336a80efcc766748a333573abf9350f4094ee46b006ec18f"}, {file = "lxml-5.2.2-cp37-cp37m-win_amd64.whl", hash = "sha256:b16db2770517b8799c79aa80f4053cd6f8b716f21f8aca962725a9565ce3ee40"}, @@ -2563,7 +2566,6 @@ description = "A pure Python implementation of the trie data structure." optional = false python-versions = "*" files = [ - {file = "PyTrie-0.4.0-py3-none-any.whl", hash = "sha256:f687c224ee8c66cda8e8628a903011b692635ffbb08d4b39c5f92b18eb78c950"}, {file = "PyTrie-0.4.0.tar.gz", hash = "sha256:8f4488f402d3465993fb6b6efa09866849ed8cda7903b50647b7d0342b805379"}, ] @@ -2593,7 +2595,6 @@ files = [ {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-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, {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"}, @@ -2601,16 +2602,8 @@ files = [ {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-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, {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-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, - {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, - {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, - {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, {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"}, @@ -2627,7 +2620,6 @@ files = [ {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-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, {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"}, @@ -2635,7 +2627,6 @@ files = [ {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-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, {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"}, @@ -2988,50 +2979,30 @@ files = [ {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b42169467c42b692c19cf539c38d4602069d8c1505e97b86387fcf7afb766e1d"}, {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:07238db9cbdf8fc1e9de2489a4f68474e70dffcb32232db7c08fa61ca0c7c462"}, {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:fff3573c2db359f091e1589c3d7c5fc2f86f5bdb6f24252c2d8e539d4e45f412"}, - {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux_2_24_aarch64.whl", hash = "sha256:aa2267c6a303eb483de8d02db2871afb5c5fc15618d894300b88958f729ad74f"}, - {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:840f0c7f194986a63d2c2465ca63af8ccbbc90ab1c6001b1978f05119b5e7334"}, - {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:024cfe1fc7c7f4e1aff4a81e718109e13409767e4f871443cbff3dba3578203d"}, {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-win32.whl", hash = "sha256:c69212f63169ec1cfc9bb44723bf2917cbbd8f6191a00ef3410f5a7fe300722d"}, {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-win_amd64.whl", hash = "sha256:cabddb8d8ead485e255fe80429f833172b4cadf99274db39abc080e068cbcc31"}, {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bef08cd86169d9eafb3ccb0a39edb11d8e25f3dae2b28f5c52fd997521133069"}, {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:b16420e621d26fdfa949a8b4b47ade8810c56002f5389970db4ddda51dbff248"}, {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:25c515e350e5b739842fc3228d662413ef28f295791af5e5110b543cf0b57d9b"}, - {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_24_aarch64.whl", hash = "sha256:1707814f0d9791df063f8c19bb51b0d1278b8e9a2353abbb676c2f685dee6afe"}, - {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:46d378daaac94f454b3a0e3d8d78cafd78a026b1d71443f4966c696b48a6d899"}, - {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:09b055c05697b38ecacb7ac50bdab2240bfca1a0c4872b0fd309bb07dc9aa3a9"}, {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-win32.whl", hash = "sha256:53a300ed9cea38cf5a2a9b069058137c2ca1ce658a874b79baceb8f892f915a7"}, {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-win_amd64.whl", hash = "sha256:c2a72e9109ea74e511e29032f3b670835f8a59bbdc9ce692c5b4ed91ccf1eedb"}, {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:ebc06178e8821efc9692ea7544aa5644217358490145629914d8020042c24aa1"}, {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:edaef1c1200c4b4cb914583150dcaa3bc30e592e907c01117c08b13a07255ec2"}, {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d176b57452ab5b7028ac47e7b3cf644bcfdc8cacfecf7e71759f7f51a59e5c92"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-manylinux_2_24_aarch64.whl", hash = "sha256:1dc67314e7e1086c9fdf2680b7b6c2be1c0d8e3a8279f2e993ca2a7545fecf62"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3213ece08ea033eb159ac52ae052a4899b56ecc124bb80020d9bbceeb50258e9"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:aab7fd643f71d7946f2ee58cc88c9b7bfc97debd71dcc93e03e2d174628e7e2d"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-win32.whl", hash = "sha256:5c365d91c88390c8d0a8545df0b5857172824b1c604e867161e6b3d59a827eaa"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-win_amd64.whl", hash = "sha256:1758ce7d8e1a29d23de54a16ae867abd370f01b5a69e1a3ba75223eaa3ca1a1b"}, {file = "ruamel.yaml.clib-0.2.8-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a5aa27bad2bb83670b71683aae140a1f52b0857a2deff56ad3f6c13a017a26ed"}, {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c58ecd827313af6864893e7af0a3bb85fd529f862b6adbefe14643947cfe2942"}, {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_12_0_arm64.whl", hash = "sha256:f481f16baec5290e45aebdc2a5168ebc6d35189ae6fea7a58787613a25f6e875"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux_2_24_aarch64.whl", hash = "sha256:77159f5d5b5c14f7c34073862a6b7d34944075d9f93e681638f6d753606c6ce6"}, {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7f67a1ee819dc4562d444bbafb135832b0b909f81cc90f7aa00260968c9ca1b3"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4ecbf9c3e19f9562c7fdd462e8d18dd902a47ca046a2e64dba80699f0b6c09b7"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:87ea5ff66d8064301a154b3933ae406b0863402a799b16e4a1d24d9fbbcbe0d3"}, {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win32.whl", hash = "sha256:75e1ed13e1f9de23c5607fe6bd1aeaae21e523b32d83bb33918245361e9cc51b"}, {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win_amd64.whl", hash = "sha256:3f215c5daf6a9d7bbed4a0a4f760f3113b10e82ff4c5c44bec20a68c8014f675"}, {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1b617618914cb00bf5c34d4357c37aa15183fa229b24767259657746c9077615"}, {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:a6a9ffd280b71ad062eae53ac1659ad86a17f59a0fdc7699fd9be40525153337"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_24_aarch64.whl", hash = "sha256:305889baa4043a09e5b76f8e2a51d4ffba44259f6b4c72dec8ca56207d9c6fe1"}, {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:700e4ebb569e59e16a976857c8798aee258dceac7c7d6b50cab63e080058df91"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:e2b4c44b60eadec492926a7270abb100ef9f72798e18743939bdbf037aab8c28"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e79e5db08739731b0ce4850bed599235d601701d5694c36570a99a0c5ca41a9d"}, {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win32.whl", hash = "sha256:955eae71ac26c1ab35924203fda6220f84dce57d6d7884f189743e2abe3a9fbe"}, {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win_amd64.whl", hash = "sha256:56f4252222c067b4ce51ae12cbac231bce32aee1d33fbfc9d17e5b8d6966c312"}, {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:03d1162b6d1df1caa3a4bd27aa51ce17c9afc2046c31b0ad60a0a96ec22f8001"}, {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:bba64af9fa9cebe325a62fa398760f5c7206b215201b0ec825005f1b18b9bccf"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux_2_24_aarch64.whl", hash = "sha256:a1a45e0bb052edf6a1d3a93baef85319733a888363938e1fc9924cb00c8df24c"}, {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:da09ad1c359a728e112d60116f626cc9f29730ff3e0e7db72b9a2dbc2e4beed5"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:184565012b60405d93838167f425713180b949e9d8dd0bbc7b49f074407c5a8b"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a75879bacf2c987c003368cf14bed0ffe99e8e85acfa6c0bfffc21a090f16880"}, {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win32.whl", hash = "sha256:84b554931e932c46f94ab306913ad7e11bba988104c5cff26d90d03f68258cd5"}, {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win_amd64.whl", hash = "sha256:25ac8c08322002b06fa1d49d1646181f0b2c72f5cbc15a85e80b4c30a544bb15"}, {file = "ruamel.yaml.clib-0.2.8.tar.gz", hash = "sha256:beb2e0404003de9a4cab9753a8805a8fe9320ee6673136ed7f04255fe60bb512"}, @@ -3700,4 +3671,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.9" -content-hash = "656fcb90023fce629cb042868ad0eb88e08d7960ee12605d50ba5bee4a9682dd" +content-hash = "ab59fe33c0d754b14529832833d212806912588ceb485be0059b5aa0fea25ac1" diff --git a/pyproject.toml b/pyproject.toml index e25f7b7..2ce12e2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,17 +12,20 @@ python = "^3.9" linkml-runtime = "^1.1.24" oaklib = "^0.6.10" -[tool.poetry-dynamic-versioning] -enable = true -vcs = "git" -style = "pep440" - -[tool.poetry.dev-dependencies] +[tool.poetry.group.dev.dependencies] linkml = "^1.3.5" mkdocs-material = "^8.2.8" mkdocs-mermaid2-plugin = ">=1.1.1" schemasheets = "^0.1.14" +[tool.poetry.group.test.dependencies] +pytest = "^8.2.2" + +[tool.poetry-dynamic-versioning] +enable = true +vcs = "git" +style = "pep440" + [build-system] requires = ["poetry-core>=1.0.0", "poetry-dynamic-versioning"] build-backend = "poetry_dynamic_versioning.backend" diff --git a/tests/test_data.py b/tests/test_data.py index 636bc14..522465b 100644 --- a/tests/test_data.py +++ b/tests/test_data.py @@ -1,7 +1,6 @@ """Data test.""" import os import glob -import unittest from linkml_runtime.loaders import yaml_loader from gocam.datamodel.gocam import Model @@ -12,11 +11,8 @@ EXAMPLE_FILES = glob.glob(os.path.join(DATA_DIR, '*.yaml')) -class TestData(unittest.TestCase): - """Test data and datamodel.""" - - def test_data(self): - """Data test.""" - for path in EXAMPLE_FILES: - obj = yaml_loader.load(path, target_class=Model) - assert obj +def test_data(): + """Data test.""" + for path in EXAMPLE_FILES: + obj = yaml_loader.load(path, target_class=Model) + assert obj From dc0110365c497a3c4c138fbb9bed120e40d8441d Mon Sep 17 00:00:00 2001 From: Patrick Kalita Date: Tue, 9 Jul 2024 15:32:46 -0700 Subject: [PATCH 02/11] Remove extraneous files --- src/gocam/datamodel/gocam.py.old | 345 ------------------------------- src/gocam/utils/__init__.py | 0 src/gocam/utils/pubmed_utils.py | 0 3 files changed, 345 deletions(-) delete mode 100644 src/gocam/datamodel/gocam.py.old delete mode 100644 src/gocam/utils/__init__.py delete mode 100644 src/gocam/utils/pubmed_utils.py diff --git a/src/gocam/datamodel/gocam.py.old b/src/gocam/datamodel/gocam.py.old deleted file mode 100644 index 54fab54..0000000 --- a/src/gocam/datamodel/gocam.py.old +++ /dev/null @@ -1,345 +0,0 @@ -from __future__ import annotations -from datetime import ( - datetime, - date -) -from decimal import Decimal -from enum import Enum -import re -import sys -from typing import ( - Any, - List, - Literal, - Dict, - Optional, - Union -) -from pydantic.version import VERSION as PYDANTIC_VERSION -if int(PYDANTIC_VERSION[0])>=2: - from pydantic import ( - BaseModel, - ConfigDict, - Field, - field_validator - ) -else: - from pydantic import ( - BaseModel, - Field, - validator - ) - -metamodel_version = "None" -version = "None" - - -class ConfiguredBaseModel(BaseModel): - model_config = ConfigDict( - validate_assignment = True, - validate_default = True, - extra = "forbid", - arbitrary_types_allowed = True, - use_enum_values = True, - strict = False, - ) - pass - - -class ModelStateEnum(str, Enum): - """ - Status of a model - """ - production = "production" - development = "development" - - -class InformationBiomacromoleculeCategory(str, Enum): - GeneOrReferenceProtein = "GeneOrReferenceProtein" - ProteinIsoform = "ProteinIsoform" - MacromolecularComplex = "MacromolecularComplex" - Unknown = "Unknown" - - -class CausalPredicateEnum(str, Enum): - causally_upstream_of_positive_effect = "causally upstream of, positive effect" - causally_upstream_of_negative_effect = "causally upstream of, negative effect" - causally_upstream_of = "causally upstream of" - immediately_causally_upstream_of = "immediately causally upstream of" - causally_upstream_of_or_within = "causally upstream of or within" - causally_upstream_of_or_within_negative_effect = "causally upstream of or within, negative effect" - causally_upstream_of_or_within_positive_effect = "causally upstream of or within, positive effect" - regulates = "regulates" - negatively_regulates = "negatively regulates" - positively_regulates = "positively regulates" - - -class Model(ConfiguredBaseModel): - """ - A model of a biological program consisting of a set of causally connected activities - """ - title: Optional[str] = Field(None) - status: Optional[ModelStateEnum] = Field(None) - objects: Optional[List[Union[Object,TermObject,PublicationObject,EvidenceTermObject,MolecularFunctionTermObject,BiologicalProcessTermObject,CellularAnatomicalEntityTermObject,MoleculeTermObject,CellTypeTermObject,GrossAnatomicalStructureTermObject,PhaseTermObject,InformationBiomacromoleculeTermObject,GeneProductTermObject,ProteinComplexTermObject]]] = Field(default_factory=list) - provenances: Optional[List[ProvenanceInfo]] = Field(default_factory=list) - - -class Activity(ConfiguredBaseModel): - """ - An individual activity in a causal model, representing the individual molecular activity of a single gene product or complex - """ - enabled_by: Optional[Union[InformationBiomacromoleculeTermObject,GeneProductTermObject,ProteinComplexTermObject]] = Field(None, description="""The gene product or complex that carries out the activity""") - molecular_function: Optional[MolecularFunctionAssociation] = Field(None, description="""The molecular function that is carried out by the gene product or complex""") - occurs_in: Optional[CellularAnatomicalEntityAssociation] = Field(None, description="""The cellular location in which the activity occurs""") - part_of: Optional[BiologicalProcessAssociation] = Field(None, description="""The larger biological process in which the activity is a part""") - has_direct_input: Optional[MoleculeAssociation] = Field(None, description="""The input molecules that are directly consumed by the activity""") - causal_associations: Optional[CausalAssociation] = Field(None, description="""The causal associations that connect this activity to other activities""") - provenances: Optional[List[ProvenanceInfo]] = Field(default_factory=list, description="""Provenance information for the activity""") - - -class Association(ConfiguredBaseModel): - """ - An abstract grouping for different kinds of evidence-associated provenance - """ - type: Literal["Association"] = Field("Association") - evidence: Optional[str] = Field(None) - reference: Optional[str] = Field(None) - with_objects: Optional[List[str]] = Field(default_factory=list) - provenances: Optional[List[ProvenanceInfo]] = Field(default_factory=list) - - -class CausalAssociation(Association): - """ - A causal association between two activities - """ - predicate: Optional[CausalPredicateEnum] = Field(None) - type: Literal["CausalAssociation"] = Field("CausalAssociation") - evidence: Optional[str] = Field(None) - reference: Optional[str] = Field(None) - with_objects: Optional[List[str]] = Field(default_factory=list) - provenances: Optional[List[ProvenanceInfo]] = Field(default_factory=list) - - -class TermAssociation(Association): - """ - An association between an activity and a term, potentially with extensions - """ - term: Optional[str] = Field(None) - type: Literal["TermAssociation"] = Field("TermAssociation") - evidence: Optional[str] = Field(None) - reference: Optional[str] = Field(None) - with_objects: Optional[List[str]] = Field(default_factory=list) - provenances: Optional[List[ProvenanceInfo]] = Field(default_factory=list) - - -class MolecularFunctionAssociation(TermAssociation): - """ - An association between an activity and a molecular function term - """ - term: Optional[str] = Field(None) - type: Literal["MolecularFunctionAssociation"] = Field("MolecularFunctionAssociation") - evidence: Optional[str] = Field(None) - reference: Optional[str] = Field(None) - with_objects: Optional[List[str]] = Field(default_factory=list) - provenances: Optional[List[ProvenanceInfo]] = Field(default_factory=list) - - -class BiologicalProcessAssociation(TermAssociation): - """ - An association between an activity and a biological process term - """ - term: Optional[str] = Field(None) - type: Literal["BiologicalProcessAssociation"] = Field("BiologicalProcessAssociation") - evidence: Optional[str] = Field(None) - reference: Optional[str] = Field(None) - with_objects: Optional[List[str]] = Field(default_factory=list) - provenances: Optional[List[ProvenanceInfo]] = Field(default_factory=list) - - -class CellularAnatomicalEntityAssociation(TermAssociation): - """ - An association between an activity and a cellular anatomical entity term - """ - term: Optional[str] = Field(None) - type: Literal["CellularAnatomicalEntityAssociation"] = Field("CellularAnatomicalEntityAssociation") - evidence: Optional[str] = Field(None) - reference: Optional[str] = Field(None) - with_objects: Optional[List[str]] = Field(default_factory=list) - provenances: Optional[List[ProvenanceInfo]] = Field(default_factory=list) - - -class MoleculeAssociation(TermAssociation): - """ - An association between an activity and a molecule term - """ - term: Optional[str] = Field(None) - type: Literal["MoleculeAssociation"] = Field("MoleculeAssociation") - evidence: Optional[str] = Field(None) - reference: Optional[str] = Field(None) - with_objects: Optional[List[str]] = Field(default_factory=list) - provenances: Optional[List[ProvenanceInfo]] = Field(default_factory=list) - - -class Object(ConfiguredBaseModel): - """ - An abstract class for all identified objects in a model - """ - id: str = Field(...) - label: Optional[str] = Field(None) - type: Literal["https://w3id.org/gocam/Object","gocam:Object"] = Field("gocam:Object") - - -class TermObject(Object): - """ - An abstract class for all ontology term objects - """ - id: str = Field(...) - label: Optional[str] = Field(None) - type: Literal["https://w3id.org/gocam/TermObject","gocam:TermObject"] = Field("gocam:TermObject") - - -class PublicationObject(Object): - """ - An object that represents a publication or other kind of reference - """ - id: str = Field(...) - label: Optional[str] = Field(None) - type: Literal["https://w3id.org/gocam/PublicationObject","gocam:PublicationObject"] = Field("gocam:PublicationObject") - - -class EvidenceTermObject(TermObject): - """ - A term object that represents an evidence term from ECO - """ - id: str = Field(...) - label: Optional[str] = Field(None) - type: Literal["https://w3id.org/gocam/EvidenceTermObject","gocam:EvidenceTermObject"] = Field("gocam:EvidenceTermObject") - - -class MolecularFunctionTermObject(TermObject): - """ - A term object that represents a molecular function term from GO - """ - id: str = Field(...) - label: Optional[str] = Field(None) - type: Literal["https://w3id.org/gocam/MolecularFunctionTermObject","gocam:MolecularFunctionTermObject"] = Field("gocam:MolecularFunctionTermObject") - - -class BiologicalProcessTermObject(TermObject): - """ - A termm object that represents a biological process term from GO - """ - id: str = Field(...) - label: Optional[str] = Field(None) - type: Literal["https://w3id.org/gocam/BiologicalProcessTermObject","gocam:BiologicalProcessTermObject"] = Field("gocam:BiologicalProcessTermObject") - - -class CellularAnatomicalEntityTermObject(TermObject): - """ - A term object that represents a cellular anatomical entity term from GO - """ - id: str = Field(...) - label: Optional[str] = Field(None) - type: Literal["https://w3id.org/gocam/CellularAnatomicalEntityTermObject","gocam:CellularAnatomicalEntityTermObject"] = Field("gocam:CellularAnatomicalEntityTermObject") - - -class MoleculeTermObject(TermObject): - """ - A term object that represents a molecule term from CHEBI or UniProtKB - """ - id: str = Field(...) - label: Optional[str] = Field(None) - type: Literal["https://w3id.org/gocam/MoleculeTermObject","gocam:MoleculeTermObject"] = Field("gocam:MoleculeTermObject") - - -class CellTypeTermObject(TermObject): - """ - A term object that represents a cell type term from CL - """ - id: str = Field(...) - label: Optional[str] = Field(None) - type: Literal["https://w3id.org/gocam/CellTypeTermObject","gocam:CellTypeTermObject"] = Field("gocam:CellTypeTermObject") - - -class GrossAnatomicalStructureTermObject(TermObject): - """ - A term object that represents a gross anatomical structure term from UBERON - """ - id: str = Field(...) - label: Optional[str] = Field(None) - type: Literal["https://w3id.org/gocam/GrossAnatomicalStructureTermObject","gocam:GrossAnatomicalStructureTermObject"] = Field("gocam:GrossAnatomicalStructureTermObject") - - -class PhaseTermObject(TermObject): - """ - A term object that represents a phase term from GO or UBERON - """ - id: str = Field(...) - label: Optional[str] = Field(None) - type: Literal["https://w3id.org/gocam/PhaseTermObject","gocam:PhaseTermObject"] = Field("gocam:PhaseTermObject") - - -class InformationBiomacromoleculeTermObject(TermObject): - """ - An abstract class for all information biomacromolecule term objects - """ - id: str = Field(...) - label: Optional[str] = Field(None) - type: Literal["https://w3id.org/gocam/InformationBiomacromoleculeTermObject","gocam:InformationBiomacromoleculeTermObject"] = Field("gocam:InformationBiomacromoleculeTermObject") - - -class GeneProductTermObject(InformationBiomacromoleculeTermObject): - """ - A term object that represents a gene product term from GO or UniProtKB - """ - id: str = Field(...) - label: Optional[str] = Field(None) - type: Literal["https://w3id.org/gocam/GeneProductTermObject","gocam:GeneProductTermObject"] = Field("gocam:GeneProductTermObject") - - -class ProteinComplexTermObject(InformationBiomacromoleculeTermObject): - """ - A term object that represents a protein complex term from GO - """ - id: str = Field(...) - label: Optional[str] = Field(None) - type: Literal["https://w3id.org/gocam/ProteinComplexTermObject","gocam:ProteinComplexTermObject"] = Field("gocam:ProteinComplexTermObject") - - -class ProvenanceInfo(ConfiguredBaseModel): - """ - Provenance information for an object - """ - contributor: Optional[str] = Field(None) - created: Optional[str] = Field(None) - date: Optional[str] = Field(None) - provided_by: Optional[str] = Field(None) - - -# Model rebuild -# see https://pydantic-docs.helpmanual.io/usage/models/#rebuilding-a-model -Model.model_rebuild() -Activity.model_rebuild() -Association.model_rebuild() -CausalAssociation.model_rebuild() -TermAssociation.model_rebuild() -MolecularFunctionAssociation.model_rebuild() -BiologicalProcessAssociation.model_rebuild() -CellularAnatomicalEntityAssociation.model_rebuild() -MoleculeAssociation.model_rebuild() -Object.model_rebuild() -TermObject.model_rebuild() -PublicationObject.model_rebuild() -EvidenceTermObject.model_rebuild() -MolecularFunctionTermObject.model_rebuild() -BiologicalProcessTermObject.model_rebuild() -CellularAnatomicalEntityTermObject.model_rebuild() -MoleculeTermObject.model_rebuild() -CellTypeTermObject.model_rebuild() -GrossAnatomicalStructureTermObject.model_rebuild() -PhaseTermObject.model_rebuild() -InformationBiomacromoleculeTermObject.model_rebuild() -GeneProductTermObject.model_rebuild() -ProteinComplexTermObject.model_rebuild() -ProvenanceInfo.model_rebuild() - diff --git a/src/gocam/utils/__init__.py b/src/gocam/utils/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/gocam/utils/pubmed_utils.py b/src/gocam/utils/pubmed_utils.py deleted file mode 100644 index e69de29..0000000 From 038e79b3d3eeb9429e9337e65a8c2abc6e5c334c Mon Sep 17 00:00:00 2001 From: Patrick Kalita Date: Tue, 9 Jul 2024 16:08:58 -0700 Subject: [PATCH 03/11] Clean up imports and dependencies --- poetry.lock | 1296 ++-------------------- pyproject.toml | 7 +- src/gocam/cli.py | 5 +- src/gocam/datamodel/__init__.py | 2 +- src/gocam/translation/__init__.py | 1 + src/gocam/translation/minerva_wrapper.py | 11 +- tests/test_data.py | 2 +- 7 files changed, 109 insertions(+), 1215 deletions(-) diff --git a/poetry.lock b/poetry.lock index b4db559..1efb12d 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,20 +1,5 @@ # This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. -[[package]] -name = "airium" -version = "0.2.6" -description = "Easy and quick html builder with natural syntax correspondence (python->html). No templates needed. Serves pure pythonic library with no dependencies." -optional = false -python-versions = "*" -files = [ - {file = "airium-0.2.6-py3-none-any.whl", hash = "sha256:50af5cf491e084f27909e29a93550b4170e587cde01334d58c6249644ee8c6c2"}, - {file = "airium-0.2.6.tar.gz", hash = "sha256:ccab36b798b6cce3d0c5074e52ce8059f6e82991caae4985f42cadfad80b1de4"}, -] - -[package.extras] -dev = ["pytest (>=6.2,<7.0)", "pytest-cov (>=3.0,<4.0)", "pytest-mock (>=3.6,<4.0)"] -parse = ["beautifulsoup4 (>=4.10.0,<5.0)", "requests (>=2.12.0,<3)"] - [[package]] name = "annotated-types" version = "0.7.0" @@ -36,17 +21,6 @@ files = [ {file = "antlr4-python3-runtime-4.9.3.tar.gz", hash = "sha256:f224469b4168294902bb1efa80a8bf7855f24c99aef99cbefc1bcd3cce77881b"}, ] -[[package]] -name = "appdirs" -version = "1.4.4" -description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -optional = false -python-versions = "*" -files = [ - {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, - {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, -] - [[package]] name = "arrow" version = "1.3.0" @@ -85,17 +59,6 @@ tests = ["attrs[tests-no-zope]", "zope-interface"] tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"] tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"] -[[package]] -name = "bcp47" -version = "0.1.0" -description = "Language tags made easy" -optional = false -python-versions = "*" -files = [ - {file = "bcp47-0.1.0-py3-none-any.whl", hash = "sha256:a567b7fe881c900916a9db62ac8f792370c7ddf2664e601b74eeed35d8758aa5"}, - {file = "bcp47-0.1.0.tar.gz", hash = "sha256:37cc7a03fd696149ebfe7de785c5bad473f911eddac8415cf479584049cf03d5"}, -] - [[package]] name = "beautifulsoup4" version = "4.12.3" @@ -158,31 +121,6 @@ files = [ {file = "cachetools-5.3.3.tar.gz", hash = "sha256:ba29e2dfa0b8b556606f097407ed1aa62080ee108ab0dc5ec9d6a723a007d105"}, ] -[[package]] -name = "cattrs" -version = "23.2.3" -description = "Composable complex class support for attrs and dataclasses." -optional = false -python-versions = ">=3.8" -files = [ - {file = "cattrs-23.2.3-py3-none-any.whl", hash = "sha256:0341994d94971052e9ee70662542699a3162ea1e0c62f7ce1b4a57f563685108"}, - {file = "cattrs-23.2.3.tar.gz", hash = "sha256:a934090d95abaa9e911dac357e3a8699e0b4b14f8529bcc7d2b1ad9d51672b9f"}, -] - -[package.dependencies] -attrs = ">=23.1.0" -exceptiongroup = {version = ">=1.1.1", markers = "python_version < \"3.11\""} -typing-extensions = {version = ">=4.1.0,<4.6.3 || >4.6.3", markers = "python_version < \"3.11\""} - -[package.extras] -bson = ["pymongo (>=4.4.0)"] -cbor2 = ["cbor2 (>=5.4.6)"] -msgpack = ["msgpack (>=1.0.5)"] -orjson = ["orjson (>=3.9.2)"] -pyyaml = ["pyyaml (>=6.0)"] -tomlkit = ["tomlkit (>=0.11.8)"] -ujson = ["ujson (>=5.7.0)"] - [[package]] name = "certifi" version = "2024.6.2" @@ -317,32 +255,6 @@ files = [ {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, ] -[[package]] -name = "class-resolver" -version = "0.4.3" -description = "Lookup and instantiate classes with style." -optional = false -python-versions = ">=3.7" -files = [ - {file = "class_resolver-0.4.3-py3-none-any.whl", hash = "sha256:9a0e3420edc262f1eb357580ff607ddc5806b9c0d19354a6f3dede15a69fbea0"}, - {file = "class_resolver-0.4.3.tar.gz", hash = "sha256:18bb9983cb377f669e5900979de4aa65449d95ead61838fa12862958998c71a2"}, -] - -[package.dependencies] -importlib-metadata = {version = ">3.6", markers = "python_version < \"3.10\""} - -[package.extras] -click = ["click"] -docdata = ["docdata"] -docs = ["sphinx", "sphinx-autodoc-typehints", "sphinx-automodapi", "sphinx-rtd-theme"] -numpy = ["numpy"] -optuna = ["optuna"] -ray = ["ray[tune] (<2.0.0)"] -sklearn = ["scikit-learn"] -tests = ["coverage", "docdata", "pytest"] -torch = ["torch"] -torch-geometric = ["torch", "torch-geometric", "torch-sparse"] - [[package]] name = "click" version = "8.1.7" @@ -402,17 +314,6 @@ files = [ {file = "daff-1.3.46.tar.gz", hash = "sha256:22d0da9fd6a3275b54c926a9c97b180f9258aad65113ea18f3fec52cbadcd818"}, ] -[[package]] -name = "defusedxml" -version = "0.7.1" -description = "XML bomb protection for Python stdlib modules" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, - {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, -] - [[package]] name = "deprecated" version = "1.2.14" @@ -430,20 +331,6 @@ wrapt = ">=1.10,<2" [package.extras] dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "sphinx (<2)", "tox"] -[[package]] -name = "deprecation" -version = "2.1.0" -description = "A library to handle automated deprecations" -optional = false -python-versions = "*" -files = [ - {file = "deprecation-2.1.0-py2.py3-none-any.whl", hash = "sha256:a10811591210e1fb0e768a8c25517cabeabcba6f0bf96564f8ff45189f90b14a"}, - {file = "deprecation-2.1.0.tar.gz", hash = "sha256:72b3bde64e5d778694b0cf68178aed03d15e15477116add3fb773e581f9518ff"}, -] - -[package.dependencies] -packaging = "*" - [[package]] name = "editorconfig" version = "0.12.4" @@ -465,25 +352,6 @@ files = [ {file = "et_xmlfile-1.1.0.tar.gz", hash = "sha256:8eb9e2bc2f8c97e37a2dc85a09ecdcdec9d8a396530a6d5a33b30b9a92da0c5c"}, ] -[[package]] -name = "eutils" -version = "0.6.0" -description = "\"Python interface to NCBI's eutilities API\"" -optional = false -python-versions = ">=3.6" -files = [ - {file = "eutils-0.6.0-py2.py3-none-any.whl", hash = "sha256:4938c4baff6ca52141204ff3eff3a91ec1e83e52a6c5d92e7163585117b96566"}, - {file = "eutils-0.6.0.tar.gz", hash = "sha256:3515178c0aadb836206a3eee2bc9f340f3213c13b53632e058eb58a9219d03cf"}, -] - -[package.dependencies] -lxml = "*" -pytz = "*" -requests = "*" - -[package.extras] -dev = ["flake8", "ipython", "mock", "pytest", "pytest-cov", "restview", "setuptools", "sphinx", "sphinx-rtd-theme", "tox", "vcrpy", "yapf"] - [[package]] name = "exceptiongroup" version = "1.2.1" @@ -498,61 +366,6 @@ files = [ [package.extras] test = ["pytest (>=6)"] -[[package]] -name = "fastobo" -version = "0.12.3" -description = "Faultless AST for Open Biomedical Ontologies in Python." -optional = false -python-versions = ">=3.7" -files = [ - {file = "fastobo-0.12.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:79fe4f5ba1ec1a2bc1ca0d65834cfc622db639128ba89019328937e623c54094"}, - {file = "fastobo-0.12.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:21c347ec270d0ef6e120ba701370a8ef20953654b397d2814f62595d4d7c0062"}, - {file = "fastobo-0.12.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42b5cc3676bfbe902632075455eb8faef2e3c2812423bb172e0c9bb905e93e04"}, - {file = "fastobo-0.12.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:922e61874e3c436c1990fb741f69b15c8395d1c760c569f2b4f024c7d315a0f4"}, - {file = "fastobo-0.12.3-cp310-cp310-win_amd64.whl", hash = "sha256:c8f73c80ae92fd7ba8e0532880b53308200563a7ce2137ed751dd3bfb5dcde88"}, - {file = "fastobo-0.12.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7862627caf2deda767a8b5278f7da3bf6cb8173130505f7aed03c41d5b512de9"}, - {file = "fastobo-0.12.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b496e003db5ae1d27de3c5078a3a00d1bcb84b436eb68461a55efd3af979bbc6"}, - {file = "fastobo-0.12.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2fed9875760ea2f0d7d9a3697f83a3168c3cd46005b41096dafbae97220a9637"}, - {file = "fastobo-0.12.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:debab1d3144506a9b4c0d98261ecf7bdcadb5f420843358188b11bc9312aec90"}, - {file = "fastobo-0.12.3-cp311-cp311-win_amd64.whl", hash = "sha256:5566f9f54f836e29edbdae15d22b11982db73fedfaefcbe5cc9f10f2568179a4"}, - {file = "fastobo-0.12.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:a9d6502e397bcb644ada900e33ea70683006c23598758f829be7210e375f7952"}, - {file = "fastobo-0.12.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:673aa41d260869ba6ae07aaa716c78cb26203662e61b3e401b006d85d748cf76"}, - {file = "fastobo-0.12.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68841568868408ac1b020d436ce29de50c7457031051d8d7389dc8d838cb244f"}, - {file = "fastobo-0.12.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:09714ec07d4b0211a3ada40b7b1bfcca64aa01ba24c50d39c4d367bea058f996"}, - {file = "fastobo-0.12.3-cp312-cp312-win_amd64.whl", hash = "sha256:fa6aaa4380825692c863f2cf9a0ad667973af8dd9162fd8282331464489b3f6c"}, - {file = "fastobo-0.12.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:fa546543209f3ce95b23c767dd4c2ae4181a81526e8ab2df4a0c079b4073ef72"}, - {file = "fastobo-0.12.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9739bb54c025679108a1ba8638f327ddddb68d7cdd666fd9009a72597a590560"}, - {file = "fastobo-0.12.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7cce0096b09a73fef542c17899f84db1234aff7d6bc12c1b8b86e109613bfa0"}, - {file = "fastobo-0.12.3-cp37-cp37m-win_amd64.whl", hash = "sha256:64e028355b7ca9fb4d2b8f688759e04a7c48c08db55aaafdc599dca9bc4d70fe"}, - {file = "fastobo-0.12.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:525cf2eebb584e5e2a2fe7c9aca4172109a8bdc008cf5699d14ffbd15a136cae"}, - {file = "fastobo-0.12.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:727743ff6353eb5d2982568e585b7b69fed9f6e63a141ebbbbd3f5d79a4ea8bd"}, - {file = "fastobo-0.12.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a73ba3d593d420675691e53698cdc21b4500b17036ee80bd26b5acea03192e8"}, - {file = "fastobo-0.12.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:377ecc157842a10ecc8a00c8d9ea9f380010cbb1ee123db42b7aca78d6c12cd9"}, - {file = "fastobo-0.12.3-cp38-cp38-win_amd64.whl", hash = "sha256:bd6d4c7be54900022f85403b5c65f80b2b27997e185920a5e50471bf66e7ff08"}, - {file = "fastobo-0.12.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:eea6e991a4e9c0f9e4c752125f72c22ed27fb8ea3c08e4610b1264c3a3100979"}, - {file = "fastobo-0.12.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e1ea49a9f0b8c8a51d920cb2782c88ddb66f44e81db55ee876ccbc6a2c3a12d2"}, - {file = "fastobo-0.12.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cdbd0c52a5d0d43035b21294579b73439889e4af08eb5739dc94a59caaa861f"}, - {file = "fastobo-0.12.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c6acd98a335375c384e236b1e37867150b3b067f3a161c0cfe6a3dcf74aa9bd0"}, - {file = "fastobo-0.12.3-cp39-cp39-win_amd64.whl", hash = "sha256:32ce37ba36f3b5e7b6642b6c0e5b9a0a6d95f78e5e98901f45cbbc958665fe46"}, - {file = "fastobo-0.12.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c8fba47c98201d0c3b0c515e1ded7608a1f3015a5a0a34df8d6cbf201d58a00e"}, - {file = "fastobo-0.12.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4071609ee8c8e87b03b2e786c6bd6d6845eb3580410bf95ee29c445699a99530"}, - {file = "fastobo-0.12.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34781dd51ad9589e6b73bf6c3854edd22a6aba4d78d9ef17fcba3448b8501abe"}, - {file = "fastobo-0.12.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:958da0f135270da6fcfb8181114e5f631e77bc11ad897112039764af19085183"}, - {file = "fastobo-0.12.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:75977f4cbdfd7b371b9c4107de953c3bd1a57201cec7c877a9a64eff7817b8ce"}, - {file = "fastobo-0.12.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4589124050eab5517416a357b8e0c50ecbd36a7caaf3428b3b403f8147858986"}, - {file = "fastobo-0.12.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c3bdbc447398a21b5ea35195bf1541f8634d86680ed763b71aa99928859bc2e"}, - {file = "fastobo-0.12.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:29f5180c37428af74ff80f08a4889d13fb716a6ee858debd00ac805f7c4f792b"}, - {file = "fastobo-0.12.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9e6d701d9f69a94222c621c86ef47fa7d2cebed0a0f455a2c9144a0a8227d4ea"}, - {file = "fastobo-0.12.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d21581d8a22b0acf2db2b987e76c19be3b9e5a714e290690e2858b533bd882a5"}, - {file = "fastobo-0.12.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b676acbf95579a72b1fae985442a583a15f2cc358efd061ab304a1f6e14269a"}, - {file = "fastobo-0.12.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:3f245df99769d08c007aa2630b9ca0c2aca628371512f48aaf61953f67625b05"}, - {file = "fastobo-0.12.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:dc566c24d891ab21eb985fbc73d1b5ef3bfa3f096473060cfddbab8b00669756"}, - {file = "fastobo-0.12.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:75205475ce0d6cedd5074107c3719b2c8df4e14cc5d481b1a28a5639418705cd"}, - {file = "fastobo-0.12.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e180e7dcf53e6fc774230d8a53212c7f710b2265ef2b3b07fe4fc75226bae17c"}, - {file = "fastobo-0.12.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:5e6f20a884c9409e9968e77ee74d407564814f2360dfc35440de268d753ad85e"}, - {file = "fastobo-0.12.3.tar.gz", hash = "sha256:f375932a24b078706797eb9296740f2d2e6987a34309bda7c9f235aba1d74217"}, -] - [[package]] name = "fqdn" version = "1.5.1" @@ -564,25 +377,6 @@ files = [ {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, ] -[[package]] -name = "funowl" -version = "0.2.3" -description = "Python rendering of the OWL Functional syntax" -optional = false -python-versions = ">=3.7" -files = [ - {file = "funowl-0.2.3-py3-none-any.whl", hash = "sha256:4c4328d03c7815cd61d6691f0fafc78dc9a78ec3dcab4c83afb64d125ad3660e"}, - {file = "funowl-0.2.3.tar.gz", hash = "sha256:eecc2f58d792c714f6671a826cb2744e80cd3019fa56b3c8539ce69c8d874126"}, -] - -[package.dependencies] -bcp47 = "*" -jsonasobj = "*" -pyjsg = ">=0.11.6" -rdflib = ">=6.2.0,<8" -rdflib-shim = "*" -rfc3987 = "*" - [[package]] name = "ghp-import" version = "2.1.0" @@ -880,109 +674,6 @@ files = [ {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, ] -[[package]] -name = "ijson" -version = "3.3.0" -description = "Iterative JSON parser with standard Python iterator interfaces" -optional = false -python-versions = "*" -files = [ - {file = "ijson-3.3.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7f7a5250599c366369fbf3bc4e176f5daa28eb6bc7d6130d02462ed335361675"}, - {file = "ijson-3.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f87a7e52f79059f9c58f6886c262061065eb6f7554a587be7ed3aa63e6b71b34"}, - {file = "ijson-3.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b73b493af9e947caed75d329676b1b801d673b17481962823a3e55fe529c8b8b"}, - {file = "ijson-3.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5576415f3d76290b160aa093ff968f8bf6de7d681e16e463a0134106b506f49"}, - {file = "ijson-3.3.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4e9ffe358d5fdd6b878a8a364e96e15ca7ca57b92a48f588378cef315a8b019e"}, - {file = "ijson-3.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8643c255a25824ddd0895c59f2319c019e13e949dc37162f876c41a283361527"}, - {file = "ijson-3.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:df3ab5e078cab19f7eaeef1d5f063103e1ebf8c26d059767b26a6a0ad8b250a3"}, - {file = "ijson-3.3.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3dc1fb02c6ed0bae1b4bf96971258bf88aea72051b6e4cebae97cff7090c0607"}, - {file = "ijson-3.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e9afd97339fc5a20f0542c971f90f3ca97e73d3050cdc488d540b63fae45329a"}, - {file = "ijson-3.3.0-cp310-cp310-win32.whl", hash = "sha256:844c0d1c04c40fd1b60f148dc829d3f69b2de789d0ba239c35136efe9a386529"}, - {file = "ijson-3.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:d654d045adafdcc6c100e8e911508a2eedbd2a1b5f93f930ba13ea67d7704ee9"}, - {file = "ijson-3.3.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:501dce8eaa537e728aa35810656aa00460a2547dcb60937c8139f36ec344d7fc"}, - {file = "ijson-3.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:658ba9cad0374d37b38c9893f4864f284cdcc7d32041f9808fba8c7bcaadf134"}, - {file = "ijson-3.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2636cb8c0f1023ef16173f4b9a233bcdb1df11c400c603d5f299fac143ca8d70"}, - {file = "ijson-3.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd174b90db68c3bcca273e9391934a25d76929d727dc75224bf244446b28b03b"}, - {file = "ijson-3.3.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:97a9aea46e2a8371c4cf5386d881de833ed782901ac9f67ebcb63bb3b7d115af"}, - {file = "ijson-3.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c594c0abe69d9d6099f4ece17763d53072f65ba60b372d8ba6de8695ce6ee39e"}, - {file = "ijson-3.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8e0ff16c224d9bfe4e9e6bd0395826096cda4a3ef51e6c301e1b61007ee2bd24"}, - {file = "ijson-3.3.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0015354011303175eae7e2ef5136414e91de2298e5a2e9580ed100b728c07e51"}, - {file = "ijson-3.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:034642558afa57351a0ffe6de89e63907c4cf6849070cc10a3b2542dccda1afe"}, - {file = "ijson-3.3.0-cp311-cp311-win32.whl", hash = "sha256:192e4b65495978b0bce0c78e859d14772e841724d3269fc1667dc6d2f53cc0ea"}, - {file = "ijson-3.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:72e3488453754bdb45c878e31ce557ea87e1eb0f8b4fc610373da35e8074ce42"}, - {file = "ijson-3.3.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:988e959f2f3d59ebd9c2962ae71b97c0df58323910d0b368cc190ad07429d1bb"}, - {file = "ijson-3.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b2f73f0d0fce5300f23a1383d19b44d103bb113b57a69c36fd95b7c03099b181"}, - {file = "ijson-3.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0ee57a28c6bf523d7cb0513096e4eb4dac16cd935695049de7608ec110c2b751"}, - {file = "ijson-3.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e0155a8f079c688c2ccaea05de1ad69877995c547ba3d3612c1c336edc12a3a5"}, - {file = "ijson-3.3.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ab00721304af1ae1afa4313ecfa1bf16b07f55ef91e4a5b93aeaa3e2bd7917c"}, - {file = "ijson-3.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40ee3821ee90be0f0e95dcf9862d786a7439bd1113e370736bfdf197e9765bfb"}, - {file = "ijson-3.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:da3b6987a0bc3e6d0f721b42c7a0198ef897ae50579547b0345f7f02486898f5"}, - {file = "ijson-3.3.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:63afea5f2d50d931feb20dcc50954e23cef4127606cc0ecf7a27128ed9f9a9e6"}, - {file = "ijson-3.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b5c3e285e0735fd8c5a26d177eca8b52512cdd8687ca86ec77a0c66e9c510182"}, - {file = "ijson-3.3.0-cp312-cp312-win32.whl", hash = "sha256:907f3a8674e489abdcb0206723e5560a5cb1fa42470dcc637942d7b10f28b695"}, - {file = "ijson-3.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:8f890d04ad33262d0c77ead53c85f13abfb82f2c8f078dfbf24b78f59534dfdd"}, - {file = "ijson-3.3.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b9d85a02e77ee8ea6d9e3fd5d515bcc3d798d9c1ea54817e5feb97a9bc5d52fe"}, - {file = "ijson-3.3.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6576cdc36d5a09b0c1a3d81e13a45d41a6763188f9eaae2da2839e8a4240bce"}, - {file = "ijson-3.3.0-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5589225c2da4bb732c9c370c5961c39a6db72cf69fb2a28868a5413ed7f39e6"}, - {file = "ijson-3.3.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad04cf38164d983e85f9cba2804566c0160b47086dcca4cf059f7e26c5ace8ca"}, - {file = "ijson-3.3.0-cp36-cp36m-musllinux_1_2_aarch64.whl", hash = "sha256:a3b730ef664b2ef0e99dec01b6573b9b085c766400af363833e08ebc1e38eb2f"}, - {file = "ijson-3.3.0-cp36-cp36m-musllinux_1_2_i686.whl", hash = "sha256:4690e3af7b134298055993fcbea161598d23b6d3ede11b12dca6815d82d101d5"}, - {file = "ijson-3.3.0-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:aaa6bfc2180c31a45fac35d40e3312a3d09954638ce0b2e9424a88e24d262a13"}, - {file = "ijson-3.3.0-cp36-cp36m-win32.whl", hash = "sha256:44367090a5a876809eb24943f31e470ba372aaa0d7396b92b953dda953a95d14"}, - {file = "ijson-3.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:7e2b3e9ca957153557d06c50a26abaf0d0d6c0ddf462271854c968277a6b5372"}, - {file = "ijson-3.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:47c144117e5c0e2babb559bc8f3f76153863b8dd90b2d550c51dab5f4b84a87f"}, - {file = "ijson-3.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29ce02af5fbf9ba6abb70765e66930aedf73311c7d840478f1ccecac53fefbf3"}, - {file = "ijson-3.3.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4ac6c3eeed25e3e2cb9b379b48196413e40ac4e2239d910bb33e4e7f6c137745"}, - {file = "ijson-3.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d92e339c69b585e7b1d857308ad3ca1636b899e4557897ccd91bb9e4a56c965b"}, - {file = "ijson-3.3.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:8c85447569041939111b8c7dbf6f8fa7a0eb5b2c4aebb3c3bec0fb50d7025121"}, - {file = "ijson-3.3.0-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:542c1e8fddf082159a5d759ee1412c73e944a9a2412077ed00b303ff796907dc"}, - {file = "ijson-3.3.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:30cfea40936afb33b57d24ceaf60d0a2e3d5c1f2335ba2623f21d560737cc730"}, - {file = "ijson-3.3.0-cp37-cp37m-win32.whl", hash = "sha256:6b661a959226ad0d255e49b77dba1d13782f028589a42dc3172398dd3814c797"}, - {file = "ijson-3.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:0b003501ee0301dbf07d1597482009295e16d647bb177ce52076c2d5e64113e0"}, - {file = "ijson-3.3.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3e8d8de44effe2dbd0d8f3eb9840344b2d5b4cc284a14eb8678aec31d1b6bea8"}, - {file = "ijson-3.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9cd5c03c63ae06d4f876b9844c5898d0044c7940ff7460db9f4cd984ac7862b5"}, - {file = "ijson-3.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:04366e7e4a4078d410845e58a2987fd9c45e63df70773d7b6e87ceef771b51ee"}, - {file = "ijson-3.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de7c1ddb80fa7a3ab045266dca169004b93f284756ad198306533b792774f10a"}, - {file = "ijson-3.3.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8851584fb931cffc0caa395f6980525fd5116eab8f73ece9d95e6f9c2c326c4c"}, - {file = "ijson-3.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bdcfc88347fd981e53c33d832ce4d3e981a0d696b712fbcb45dcc1a43fe65c65"}, - {file = "ijson-3.3.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:3917b2b3d0dbbe3296505da52b3cb0befbaf76119b2edaff30bd448af20b5400"}, - {file = "ijson-3.3.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:e10c14535abc7ddf3fd024aa36563cd8ab5d2bb6234a5d22c77c30e30fa4fb2b"}, - {file = "ijson-3.3.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:3aba5c4f97f4e2ce854b5591a8b0711ca3b0c64d1b253b04ea7b004b0a197ef6"}, - {file = "ijson-3.3.0-cp38-cp38-win32.whl", hash = "sha256:b325f42e26659df1a0de66fdb5cde8dd48613da9c99c07d04e9fb9e254b7ee1c"}, - {file = "ijson-3.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:ff835906f84451e143f31c4ce8ad73d83ef4476b944c2a2da91aec8b649570e1"}, - {file = "ijson-3.3.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3c556f5553368dff690c11d0a1fb435d4ff1f84382d904ccc2dc53beb27ba62e"}, - {file = "ijson-3.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e4396b55a364a03ff7e71a34828c3ed0c506814dd1f50e16ebed3fc447d5188e"}, - {file = "ijson-3.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e6850ae33529d1e43791b30575070670070d5fe007c37f5d06aebc1dd152ab3f"}, - {file = "ijson-3.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:36aa56d68ea8def26778eb21576ae13f27b4a47263a7a2581ab2ef58b8de4451"}, - {file = "ijson-3.3.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7ec759c4a0fc820ad5dc6a58e9c391e7b16edcb618056baedbedbb9ea3b1524"}, - {file = "ijson-3.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b51bab2c4e545dde93cb6d6bb34bf63300b7cd06716f195dd92d9255df728331"}, - {file = "ijson-3.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:92355f95a0e4da96d4c404aa3cff2ff033f9180a9515f813255e1526551298c1"}, - {file = "ijson-3.3.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:8795e88adff5aa3c248c1edce932db003d37a623b5787669ccf205c422b91e4a"}, - {file = "ijson-3.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:8f83f553f4cde6d3d4eaf58ec11c939c94a0ec545c5b287461cafb184f4b3a14"}, - {file = "ijson-3.3.0-cp39-cp39-win32.whl", hash = "sha256:ead50635fb56577c07eff3e557dac39533e0fe603000684eea2af3ed1ad8f941"}, - {file = "ijson-3.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:c8a9befb0c0369f0cf5c1b94178d0d78f66d9cebb9265b36be6e4f66236076b8"}, - {file = "ijson-3.3.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2af323a8aec8a50fa9effa6d640691a30a9f8c4925bd5364a1ca97f1ac6b9b5c"}, - {file = "ijson-3.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f64f01795119880023ba3ce43072283a393f0b90f52b66cc0ea1a89aa64a9ccb"}, - {file = "ijson-3.3.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a716e05547a39b788deaf22725490855337fc36613288aa8ae1601dc8c525553"}, - {file = "ijson-3.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:473f5d921fadc135d1ad698e2697025045cd8ed7e5e842258295012d8a3bc702"}, - {file = "ijson-3.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:dd26b396bc3a1e85f4acebeadbf627fa6117b97f4c10b177d5779577c6607744"}, - {file = "ijson-3.3.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:25fd49031cdf5fd5f1fd21cb45259a64dad30b67e64f745cc8926af1c8c243d3"}, - {file = "ijson-3.3.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b72178b1e565d06ab19319965022b36ef41bcea7ea153b32ec31194bec032a2"}, - {file = "ijson-3.3.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d0b6b637d05dbdb29d0bfac2ed8425bb369e7af5271b0cc7cf8b801cb7360c2"}, - {file = "ijson-3.3.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5378d0baa59ae422905c5f182ea0fd74fe7e52a23e3821067a7d58c8306b2191"}, - {file = "ijson-3.3.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:99f5c8ab048ee4233cc4f2b461b205cbe01194f6201018174ac269bf09995749"}, - {file = "ijson-3.3.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:45ff05de889f3dc3d37a59d02096948ce470699f2368b32113954818b21aa74a"}, - {file = "ijson-3.3.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1efb521090dd6cefa7aafd120581947b29af1713c902ff54336b7c7130f04c47"}, - {file = "ijson-3.3.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:87c727691858fd3a1c085d9980d12395517fcbbf02c69fbb22dede8ee03422da"}, - {file = "ijson-3.3.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0420c24e50389bc251b43c8ed379ab3e3ba065ac8262d98beb6735ab14844460"}, - {file = "ijson-3.3.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:8fdf3721a2aa7d96577970f5604bd81f426969c1822d467f07b3d844fa2fecc7"}, - {file = "ijson-3.3.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:891f95c036df1bc95309951940f8eea8537f102fa65715cdc5aae20b8523813b"}, - {file = "ijson-3.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed1336a2a6e5c427f419da0154e775834abcbc8ddd703004108121c6dd9eba9d"}, - {file = "ijson-3.3.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f0c819f83e4f7b7f7463b2dc10d626a8be0c85fbc7b3db0edc098c2b16ac968e"}, - {file = "ijson-3.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33afc25057377a6a43c892de34d229a86f89ea6c4ca3dd3db0dcd17becae0dbb"}, - {file = "ijson-3.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7914d0cf083471856e9bc2001102a20f08e82311dfc8cf1a91aa422f9414a0d6"}, - {file = "ijson-3.3.0.tar.gz", hash = "sha256:7f172e6ba1bee0d4c8f8ebd639577bfe429dee0f3f96775a067b8bae4492d8a0"}, -] - [[package]] name = "importlib-metadata" version = "8.0.0" @@ -1002,24 +693,6 @@ doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linke perf = ["ipython"] test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] -[[package]] -name = "importlib-resources" -version = "6.4.0" -description = "Read resources from Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "importlib_resources-6.4.0-py3-none-any.whl", hash = "sha256:50d10f043df931902d4194ea07ec57960f66a80449ff867bfe782b4c486ba78c"}, - {file = "importlib_resources-6.4.0.tar.gz", hash = "sha256:cdb2b453b8046ca4e3798eb1d84f3cce1446a0e8e7b5ef4efb600f19fc398145"}, -] - -[package.dependencies] -zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["jaraco.test (>=5.4)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)", "zipp (>=3.17)"] - [[package]] name = "iniconfig" version = "2.0.0" @@ -1130,20 +803,6 @@ files = [ [package.dependencies] hbreader = "*" -[[package]] -name = "jsonlines" -version = "4.0.0" -description = "Library with helpers for the jsonlines file format" -optional = false -python-versions = ">=3.8" -files = [ - {file = "jsonlines-4.0.0-py3-none-any.whl", hash = "sha256:185b334ff2ca5a91362993f42e83588a360cf95ce4b71a73548502bda52a7c55"}, - {file = "jsonlines-4.0.0.tar.gz", hash = "sha256:0c6d2c09117550c089995247f605ae4cf77dd1533041d366351f6f298822ea74"}, -] - -[package.dependencies] -attrs = ">=19.2.0" - [[package]] name = "jsonpatch" version = "1.33" @@ -1225,55 +884,6 @@ files = [ [package.dependencies] referencing = ">=0.31.0" -[[package]] -name = "kgcl-rdflib" -version = "0.5.0" -description = "Schema for the KGCL project." -optional = false -python-versions = ">=3.8,<4.0" -files = [ - {file = "kgcl_rdflib-0.5.0-py3-none-any.whl", hash = "sha256:214c011eac692384dd18397e455af2a7375f6a2f71fa318df245e8826678f454"}, - {file = "kgcl_rdflib-0.5.0.tar.gz", hash = "sha256:19e34690316714b9c500e1749a35d1a0d17282f2a38cd2b1fd3d7d8cf5e6013d"}, -] - -[package.dependencies] -kgcl-schema = ">=0.5.0" -linkml-runtime = ">=1.1.24" - -[[package]] -name = "kgcl-schema" -version = "0.6.8" -description = "Schema for the KGCL project." -optional = false -python-versions = "<4.0,>=3.9" -files = [ - {file = "kgcl_schema-0.6.8-py3-none-any.whl", hash = "sha256:84deb921203c5b94c9fa6386e7fec24593162abbccdadeb78a5f7231c0c75803"}, - {file = "kgcl_schema-0.6.8.tar.gz", hash = "sha256:7520e8fc7cd1546e3212ae868fae410720c4f2cea0e0a5e85ac277f63941d8bd"}, -] - -[package.dependencies] -curies = ">=0.6.0" -lark = ">=1.1.2" -linkml-runtime = ">=1.1.24" -prefixmaps = ">=0.2.0,<0.3.0" - -[[package]] -name = "lark" -version = "1.1.9" -description = "a modern parsing library" -optional = false -python-versions = ">=3.6" -files = [ - {file = "lark-1.1.9-py3-none-any.whl", hash = "sha256:a0dd3a87289f8ccbb325901e4222e723e7d745dbfc1803eaf5f3d2ace19cf2db"}, - {file = "lark-1.1.9.tar.gz", hash = "sha256:15fa5236490824c2c4aba0e22d2d6d823575dcaf4cdd1848e34b6ad836240fba"}, -] - -[package.extras] -atomic-cache = ["atomicwrites"] -interegular = ["interegular (>=0.3.1,<0.4.0)"] -nearley = ["js2py"] -regex = ["regex"] - [[package]] name = "linkml" version = "1.7.10" @@ -1334,23 +944,6 @@ jsonpath-ng = "*" linkml-runtime = ">=1.1.6" "ruamel.yaml" = "*" -[[package]] -name = "linkml-renderer" -version = "0.3.1" -description = "linkml-renderer" -optional = false -python-versions = "<4.0,>=3.8" -files = [ - {file = "linkml_renderer-0.3.1-py3-none-any.whl", hash = "sha256:3737247ecc349c270b849c55593719fb457b385223ef8f75e7e7b0da11eb12e3"}, - {file = "linkml_renderer-0.3.1.tar.gz", hash = "sha256:f600ca96d603e53b7187abe1dc9c417334bd96756d3e4f704a96892f6b28ba5a"}, -] - -[package.dependencies] -airium = ">=0.2.5,<0.3.0" -click = ">=8.1.3,<9.0.0" -linkml-runtime = ">=1.4.1" -pydantic = "*" - [[package]] name = "linkml-runtime" version = "1.7.7" @@ -1377,164 +970,6 @@ pyyaml = "*" rdflib = ">=6.0.0" requests = "*" -[[package]] -name = "lxml" -version = "5.2.2" -description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." -optional = false -python-versions = ">=3.6" -files = [ - {file = "lxml-5.2.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:364d03207f3e603922d0d3932ef363d55bbf48e3647395765f9bfcbdf6d23632"}, - {file = "lxml-5.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:50127c186f191b8917ea2fb8b206fbebe87fd414a6084d15568c27d0a21d60db"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:74e4f025ef3db1c6da4460dd27c118d8cd136d0391da4e387a15e48e5c975147"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:981a06a3076997adf7c743dcd0d7a0415582661e2517c7d961493572e909aa1d"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aef5474d913d3b05e613906ba4090433c515e13ea49c837aca18bde190853dff"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1e275ea572389e41e8b039ac076a46cb87ee6b8542df3fff26f5baab43713bca"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5b65529bb2f21ac7861a0e94fdbf5dc0daab41497d18223b46ee8515e5ad297"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bcc98f911f10278d1daf14b87d65325851a1d29153caaf146877ec37031d5f36"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_ppc64le.whl", hash = "sha256:b47633251727c8fe279f34025844b3b3a3e40cd1b198356d003aa146258d13a2"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_s390x.whl", hash = "sha256:fbc9d316552f9ef7bba39f4edfad4a734d3d6f93341232a9dddadec4f15d425f"}, - {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:13e69be35391ce72712184f69000cda04fc89689429179bc4c0ae5f0b7a8c21b"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3b6a30a9ab040b3f545b697cb3adbf3696c05a3a68aad172e3fd7ca73ab3c835"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:a233bb68625a85126ac9f1fc66d24337d6e8a0f9207b688eec2e7c880f012ec0"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:dfa7c241073d8f2b8e8dbc7803c434f57dbb83ae2a3d7892dd068d99e96efe2c"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1a7aca7964ac4bb07680d5c9d63b9d7028cace3e2d43175cb50bba8c5ad33316"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ae4073a60ab98529ab8a72ebf429f2a8cc612619a8c04e08bed27450d52103c0"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ffb2be176fed4457e445fe540617f0252a72a8bc56208fd65a690fdb1f57660b"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e290d79a4107d7d794634ce3e985b9ae4f920380a813717adf61804904dc4393"}, - {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:96e85aa09274955bb6bd483eaf5b12abadade01010478154b0ec70284c1b1526"}, - {file = "lxml-5.2.2-cp310-cp310-win32.whl", hash = "sha256:f956196ef61369f1685d14dad80611488d8dc1ef00be57c0c5a03064005b0f30"}, - {file = "lxml-5.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:875a3f90d7eb5c5d77e529080d95140eacb3c6d13ad5b616ee8095447b1d22e7"}, - {file = "lxml-5.2.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:45f9494613160d0405682f9eee781c7e6d1bf45f819654eb249f8f46a2c22545"}, - {file = "lxml-5.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b0b3f2df149efb242cee2ffdeb6674b7f30d23c9a7af26595099afaf46ef4e88"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d28cb356f119a437cc58a13f8135ab8a4c8ece18159eb9194b0d269ec4e28083"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:657a972f46bbefdbba2d4f14413c0d079f9ae243bd68193cb5061b9732fa54c1"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b74b9ea10063efb77a965a8d5f4182806fbf59ed068b3c3fd6f30d2ac7bee734"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:07542787f86112d46d07d4f3c4e7c760282011b354d012dc4141cc12a68cef5f"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:303f540ad2dddd35b92415b74b900c749ec2010e703ab3bfd6660979d01fd4ed"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:2eb2227ce1ff998faf0cd7fe85bbf086aa41dfc5af3b1d80867ecfe75fb68df3"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_ppc64le.whl", hash = "sha256:1d8a701774dfc42a2f0b8ccdfe7dbc140500d1049e0632a611985d943fcf12df"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_s390x.whl", hash = "sha256:56793b7a1a091a7c286b5f4aa1fe4ae5d1446fe742d00cdf2ffb1077865db10d"}, - {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:eb00b549b13bd6d884c863554566095bf6fa9c3cecb2e7b399c4bc7904cb33b5"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a2569a1f15ae6c8c64108a2cd2b4a858fc1e13d25846be0666fc144715e32ab"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:8cf85a6e40ff1f37fe0f25719aadf443686b1ac7652593dc53c7ef9b8492b115"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:d237ba6664b8e60fd90b8549a149a74fcc675272e0e95539a00522e4ca688b04"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0b3f5016e00ae7630a4b83d0868fca1e3d494c78a75b1c7252606a3a1c5fc2ad"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:23441e2b5339bc54dc949e9e675fa35efe858108404ef9aa92f0456929ef6fe8"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:2fb0ba3e8566548d6c8e7dd82a8229ff47bd8fb8c2da237607ac8e5a1b8312e5"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:79d1fb9252e7e2cfe4de6e9a6610c7cbb99b9708e2c3e29057f487de5a9eaefa"}, - {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6dcc3d17eac1df7859ae01202e9bb11ffa8c98949dcbeb1069c8b9a75917e01b"}, - {file = "lxml-5.2.2-cp311-cp311-win32.whl", hash = "sha256:4c30a2f83677876465f44c018830f608fa3c6a8a466eb223535035fbc16f3438"}, - {file = "lxml-5.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:49095a38eb333aaf44c06052fd2ec3b8f23e19747ca7ec6f6c954ffea6dbf7be"}, - {file = "lxml-5.2.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:7429e7faa1a60cad26ae4227f4dd0459efde239e494c7312624ce228e04f6391"}, - {file = "lxml-5.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:50ccb5d355961c0f12f6cf24b7187dbabd5433f29e15147a67995474f27d1776"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc911208b18842a3a57266d8e51fc3cfaccee90a5351b92079beed912a7914c2"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33ce9e786753743159799fdf8e92a5da351158c4bfb6f2db0bf31e7892a1feb5"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ec87c44f619380878bd49ca109669c9f221d9ae6883a5bcb3616785fa8f94c97"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08ea0f606808354eb8f2dfaac095963cb25d9d28e27edcc375d7b30ab01abbf6"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75a9632f1d4f698b2e6e2e1ada40e71f369b15d69baddb8968dcc8e683839b18"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:74da9f97daec6928567b48c90ea2c82a106b2d500f397eeb8941e47d30b1ca85"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_ppc64le.whl", hash = "sha256:0969e92af09c5687d769731e3f39ed62427cc72176cebb54b7a9d52cc4fa3b73"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_s390x.whl", hash = "sha256:9164361769b6ca7769079f4d426a41df6164879f7f3568be9086e15baca61466"}, - {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:d26a618ae1766279f2660aca0081b2220aca6bd1aa06b2cf73f07383faf48927"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab67ed772c584b7ef2379797bf14b82df9aa5f7438c5b9a09624dd834c1c1aaf"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:3d1e35572a56941b32c239774d7e9ad724074d37f90c7a7d499ab98761bd80cf"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:8268cbcd48c5375f46e000adb1390572c98879eb4f77910c6053d25cc3ac2c67"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e282aedd63c639c07c3857097fc0e236f984ceb4089a8b284da1c526491e3f3d"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfdc2bfe69e9adf0df4915949c22a25b39d175d599bf98e7ddf620a13678585"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4aefd911793b5d2d7a921233a54c90329bf3d4a6817dc465f12ffdfe4fc7b8fe"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:8b8df03a9e995b6211dafa63b32f9d405881518ff1ddd775db4e7b98fb545e1c"}, - {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f11ae142f3a322d44513de1018b50f474f8f736bc3cd91d969f464b5bfef8836"}, - {file = "lxml-5.2.2-cp312-cp312-win32.whl", hash = "sha256:16a8326e51fcdffc886294c1e70b11ddccec836516a343f9ed0f82aac043c24a"}, - {file = "lxml-5.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:bbc4b80af581e18568ff07f6395c02114d05f4865c2812a1f02f2eaecf0bfd48"}, - {file = "lxml-5.2.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e3d9d13603410b72787579769469af730c38f2f25505573a5888a94b62b920f8"}, - {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38b67afb0a06b8575948641c1d6d68e41b83a3abeae2ca9eed2ac59892b36706"}, - {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c689d0d5381f56de7bd6966a4541bff6e08bf8d3871bbd89a0c6ab18aa699573"}, - {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_28_x86_64.whl", hash = "sha256:cf2a978c795b54c539f47964ec05e35c05bd045db5ca1e8366988c7f2fe6b3ce"}, - {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:739e36ef7412b2bd940f75b278749106e6d025e40027c0b94a17ef7968d55d56"}, - {file = "lxml-5.2.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:d8bbcd21769594dbba9c37d3c819e2d5847656ca99c747ddb31ac1701d0c0ed9"}, - {file = "lxml-5.2.2-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:2304d3c93f2258ccf2cf7a6ba8c761d76ef84948d87bf9664e14d203da2cd264"}, - {file = "lxml-5.2.2-cp36-cp36m-win32.whl", hash = "sha256:02437fb7308386867c8b7b0e5bc4cd4b04548b1c5d089ffb8e7b31009b961dc3"}, - {file = "lxml-5.2.2-cp36-cp36m-win_amd64.whl", hash = "sha256:edcfa83e03370032a489430215c1e7783128808fd3e2e0a3225deee278585196"}, - {file = "lxml-5.2.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:28bf95177400066596cdbcfc933312493799382879da504633d16cf60bba735b"}, - {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a745cc98d504d5bd2c19b10c79c61c7c3df9222629f1b6210c0368177589fb8"}, - {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b590b39ef90c6b22ec0be925b211298e810b4856909c8ca60d27ffbca6c12e6"}, - {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b336b0416828022bfd5a2e3083e7f5ba54b96242159f83c7e3eebaec752f1716"}, - {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:c2faf60c583af0d135e853c86ac2735ce178f0e338a3c7f9ae8f622fd2eb788c"}, - {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:4bc6cb140a7a0ad1f7bc37e018d0ed690b7b6520ade518285dc3171f7a117905"}, - {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7ff762670cada8e05b32bf1e4dc50b140790909caa8303cfddc4d702b71ea184"}, - {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:57f0a0bbc9868e10ebe874e9f129d2917750adf008fe7b9c1598c0fbbfdde6a6"}, - {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:a6d2092797b388342c1bc932077ad232f914351932353e2e8706851c870bca1f"}, - {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:60499fe961b21264e17a471ec296dcbf4365fbea611bf9e303ab69db7159ce61"}, - {file = "lxml-5.2.2-cp37-cp37m-win32.whl", hash = "sha256:d9b342c76003c6b9336a80efcc766748a333573abf9350f4094ee46b006ec18f"}, - {file = "lxml-5.2.2-cp37-cp37m-win_amd64.whl", hash = "sha256:b16db2770517b8799c79aa80f4053cd6f8b716f21f8aca962725a9565ce3ee40"}, - {file = "lxml-5.2.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7ed07b3062b055d7a7f9d6557a251cc655eed0b3152b76de619516621c56f5d3"}, - {file = "lxml-5.2.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f60fdd125d85bf9c279ffb8e94c78c51b3b6a37711464e1f5f31078b45002421"}, - {file = "lxml-5.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a7e24cb69ee5f32e003f50e016d5fde438010c1022c96738b04fc2423e61706"}, - {file = "lxml-5.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23cfafd56887eaed93d07bc4547abd5e09d837a002b791e9767765492a75883f"}, - {file = "lxml-5.2.2-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:19b4e485cd07b7d83e3fe3b72132e7df70bfac22b14fe4bf7a23822c3a35bff5"}, - {file = "lxml-5.2.2-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:7ce7ad8abebe737ad6143d9d3bf94b88b93365ea30a5b81f6877ec9c0dee0a48"}, - {file = "lxml-5.2.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e49b052b768bb74f58c7dda4e0bdf7b79d43a9204ca584ffe1fb48a6f3c84c66"}, - {file = "lxml-5.2.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d14a0d029a4e176795cef99c056d58067c06195e0c7e2dbb293bf95c08f772a3"}, - {file = "lxml-5.2.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:be49ad33819d7dcc28a309b86d4ed98e1a65f3075c6acd3cd4fe32103235222b"}, - {file = "lxml-5.2.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a6d17e0370d2516d5bb9062c7b4cb731cff921fc875644c3d751ad857ba9c5b1"}, - {file = "lxml-5.2.2-cp38-cp38-win32.whl", hash = "sha256:5b8c041b6265e08eac8a724b74b655404070b636a8dd6d7a13c3adc07882ef30"}, - {file = "lxml-5.2.2-cp38-cp38-win_amd64.whl", hash = "sha256:f61efaf4bed1cc0860e567d2ecb2363974d414f7f1f124b1df368bbf183453a6"}, - {file = "lxml-5.2.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:fb91819461b1b56d06fa4bcf86617fac795f6a99d12239fb0c68dbeba41a0a30"}, - {file = "lxml-5.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d4ed0c7cbecde7194cd3228c044e86bf73e30a23505af852857c09c24e77ec5d"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54401c77a63cc7d6dc4b4e173bb484f28a5607f3df71484709fe037c92d4f0ed"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:625e3ef310e7fa3a761d48ca7ea1f9d8718a32b1542e727d584d82f4453d5eeb"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:519895c99c815a1a24a926d5b60627ce5ea48e9f639a5cd328bda0515ea0f10c"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c7079d5eb1c1315a858bbf180000757db8ad904a89476653232db835c3114001"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:343ab62e9ca78094f2306aefed67dcfad61c4683f87eee48ff2fd74902447726"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:cd9e78285da6c9ba2d5c769628f43ef66d96ac3085e59b10ad4f3707980710d3"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_ppc64le.whl", hash = "sha256:546cf886f6242dff9ec206331209db9c8e1643ae642dea5fdbecae2453cb50fd"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_s390x.whl", hash = "sha256:02f6a8eb6512fdc2fd4ca10a49c341c4e109aa6e9448cc4859af5b949622715a"}, - {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:339ee4a4704bc724757cd5dd9dc8cf4d00980f5d3e6e06d5847c1b594ace68ab"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0a028b61a2e357ace98b1615fc03f76eb517cc028993964fe08ad514b1e8892d"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f90e552ecbad426eab352e7b2933091f2be77115bb16f09f78404861c8322981"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:d83e2d94b69bf31ead2fa45f0acdef0757fa0458a129734f59f67f3d2eb7ef32"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a02d3c48f9bb1e10c7788d92c0c7db6f2002d024ab6e74d6f45ae33e3d0288a3"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:6d68ce8e7b2075390e8ac1e1d3a99e8b6372c694bbe612632606d1d546794207"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:453d037e09a5176d92ec0fd282e934ed26d806331a8b70ab431a81e2fbabf56d"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:3b019d4ee84b683342af793b56bb35034bd749e4cbdd3d33f7d1107790f8c472"}, - {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:cb3942960f0beb9f46e2a71a3aca220d1ca32feb5a398656be934320804c0df9"}, - {file = "lxml-5.2.2-cp39-cp39-win32.whl", hash = "sha256:ac6540c9fff6e3813d29d0403ee7a81897f1d8ecc09a8ff84d2eea70ede1cdbf"}, - {file = "lxml-5.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:610b5c77428a50269f38a534057444c249976433f40f53e3b47e68349cca1425"}, - {file = "lxml-5.2.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:b537bd04d7ccd7c6350cdaaaad911f6312cbd61e6e6045542f781c7f8b2e99d2"}, - {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4820c02195d6dfb7b8508ff276752f6b2ff8b64ae5d13ebe02e7667e035000b9"}, - {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a09f6184f17a80897172863a655467da2b11151ec98ba8d7af89f17bf63dae"}, - {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:76acba4c66c47d27c8365e7c10b3d8016a7da83d3191d053a58382311a8bf4e1"}, - {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b128092c927eaf485928cec0c28f6b8bead277e28acf56800e972aa2c2abd7a2"}, - {file = "lxml-5.2.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ae791f6bd43305aade8c0e22f816b34f3b72b6c820477aab4d18473a37e8090b"}, - {file = "lxml-5.2.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a2f6a1bc2460e643785a2cde17293bd7a8f990884b822f7bca47bee0a82fc66b"}, - {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e8d351ff44c1638cb6e980623d517abd9f580d2e53bfcd18d8941c052a5a009"}, - {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bec4bd9133420c5c52d562469c754f27c5c9e36ee06abc169612c959bd7dbb07"}, - {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:55ce6b6d803890bd3cc89975fca9de1dff39729b43b73cb15ddd933b8bc20484"}, - {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:8ab6a358d1286498d80fe67bd3d69fcbc7d1359b45b41e74c4a26964ca99c3f8"}, - {file = "lxml-5.2.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:06668e39e1f3c065349c51ac27ae430719d7806c026fec462e5693b08b95696b"}, - {file = "lxml-5.2.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9cd5323344d8ebb9fb5e96da5de5ad4ebab993bbf51674259dbe9d7a18049525"}, - {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89feb82ca055af0fe797a2323ec9043b26bc371365847dbe83c7fd2e2f181c34"}, - {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e481bba1e11ba585fb06db666bfc23dbe181dbafc7b25776156120bf12e0d5a6"}, - {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:9d6c6ea6a11ca0ff9cd0390b885984ed31157c168565702959c25e2191674a14"}, - {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3d98de734abee23e61f6b8c2e08a88453ada7d6486dc7cdc82922a03968928db"}, - {file = "lxml-5.2.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:69ab77a1373f1e7563e0fb5a29a8440367dec051da6c7405333699d07444f511"}, - {file = "lxml-5.2.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:34e17913c431f5ae01d8658dbf792fdc457073dcdfbb31dc0cc6ab256e664a8d"}, - {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05f8757b03208c3f50097761be2dea0aba02e94f0dc7023ed73a7bb14ff11eb0"}, - {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a520b4f9974b0a0a6ed73c2154de57cdfd0c8800f4f15ab2b73238ffed0b36e"}, - {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5e097646944b66207023bc3c634827de858aebc226d5d4d6d16f0b77566ea182"}, - {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b5e4ef22ff25bfd4ede5f8fb30f7b24446345f3e79d9b7455aef2836437bc38a"}, - {file = "lxml-5.2.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ff69a9a0b4b17d78170c73abe2ab12084bdf1691550c5629ad1fe7849433f324"}, - {file = "lxml-5.2.2.tar.gz", hash = "sha256:bb2dc4898180bea79863d5487e5f9c7c34297414bad54bcd0f0852aee9cfdb87"}, -] - -[package.extras] -cssselect = ["cssselect (>=0.7)"] -html-clean = ["lxml-html-clean"] -html5 = ["html5lib"] -htmlsoup = ["BeautifulSoup4"] -source = ["Cython (>=3.0.10)"] - [[package]] name = "markdown" version = "3.6" @@ -1751,146 +1186,6 @@ click = "*" [package.extras] tests = ["coverage", "pytest"] -[[package]] -name = "ndex2" -version = "3.9.0" -description = "Nice CX Python includes a client and a data model." -optional = false -python-versions = "*" -files = [ - {file = "ndex2-3.9.0-py2.py3-none-any.whl", hash = "sha256:168a6ed3209f2c9596752897fe535599b11f87305c10d55446bf8ffef4762283"}, - {file = "ndex2-3.9.0.tar.gz", hash = "sha256:388b2f110b2eb1ba787298bc4210ca0cea821c462ec71a4ec4cb6eb0e1b74f70"}, -] - -[package.dependencies] -ijson = "*" -networkx = "*" -numpy = "*" -pandas = "*" -requests = "*" -requests-toolbelt = "*" -six = "*" -urllib3 = ">=1.16" - -[[package]] -name = "networkx" -version = "3.2.1" -description = "Python package for creating and manipulating graphs and networks" -optional = false -python-versions = ">=3.9" -files = [ - {file = "networkx-3.2.1-py3-none-any.whl", hash = "sha256:f18c69adc97877c42332c170849c96cefa91881c99a7cb3e95b7c659ebdc1ec2"}, - {file = "networkx-3.2.1.tar.gz", hash = "sha256:9f1bb5cf3409bf324e0a722c20bdb4c20ee39bf1c30ce8ae499c8502b0b5e0c6"}, -] - -[package.extras] -default = ["matplotlib (>=3.5)", "numpy (>=1.22)", "pandas (>=1.4)", "scipy (>=1.9,!=1.11.0,!=1.11.1)"] -developer = ["changelist (==0.4)", "mypy (>=1.1)", "pre-commit (>=3.2)", "rtoml"] -doc = ["nb2plots (>=0.7)", "nbconvert (<7.9)", "numpydoc (>=1.6)", "pillow (>=9.4)", "pydata-sphinx-theme (>=0.14)", "sphinx (>=7)", "sphinx-gallery (>=0.14)", "texext (>=0.6.7)"] -extra = ["lxml (>=4.6)", "pydot (>=1.4.2)", "pygraphviz (>=1.11)", "sympy (>=1.10)"] -test = ["pytest (>=7.2)", "pytest-cov (>=4.0)"] - -[[package]] -name = "numpy" -version = "2.0.0" -description = "Fundamental package for array computing in Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "numpy-2.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:04494f6ec467ccb5369d1808570ae55f6ed9b5809d7f035059000a37b8d7e86f"}, - {file = "numpy-2.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2635dbd200c2d6faf2ef9a0d04f0ecc6b13b3cad54f7c67c61155138835515d2"}, - {file = "numpy-2.0.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:0a43f0974d501842866cc83471bdb0116ba0dffdbaac33ec05e6afed5b615238"}, - {file = "numpy-2.0.0-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:8d83bb187fb647643bd56e1ae43f273c7f4dbcdf94550d7938cfc32566756514"}, - {file = "numpy-2.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79e843d186c8fb1b102bef3e2bc35ef81160ffef3194646a7fdd6a73c6b97196"}, - {file = "numpy-2.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d7696c615765091cc5093f76fd1fa069870304beaccfd58b5dcc69e55ef49c1"}, - {file = "numpy-2.0.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b4c76e3d4c56f145d41b7b6751255feefae92edbc9a61e1758a98204200f30fc"}, - {file = "numpy-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:acd3a644e4807e73b4e1867b769fbf1ce8c5d80e7caaef0d90dcdc640dfc9787"}, - {file = "numpy-2.0.0-cp310-cp310-win32.whl", hash = "sha256:cee6cc0584f71adefe2c908856ccc98702baf95ff80092e4ca46061538a2ba98"}, - {file = "numpy-2.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:ed08d2703b5972ec736451b818c2eb9da80d66c3e84aed1deeb0c345fefe461b"}, - {file = "numpy-2.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ad0c86f3455fbd0de6c31a3056eb822fc939f81b1618f10ff3406971893b62a5"}, - {file = "numpy-2.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e7f387600d424f91576af20518334df3d97bc76a300a755f9a8d6e4f5cadd289"}, - {file = "numpy-2.0.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:34f003cb88b1ba38cb9a9a4a3161c1604973d7f9d5552c38bc2f04f829536609"}, - {file = "numpy-2.0.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:b6f6a8f45d0313db07d6d1d37bd0b112f887e1369758a5419c0370ba915b3871"}, - {file = "numpy-2.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f64641b42b2429f56ee08b4f427a4d2daf916ec59686061de751a55aafa22e4"}, - {file = "numpy-2.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7039a136017eaa92c1848152827e1424701532ca8e8967fe480fe1569dae581"}, - {file = "numpy-2.0.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:46e161722e0f619749d1cd892167039015b2c2817296104487cd03ed4a955995"}, - {file = "numpy-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0e50842b2295ba8414c8c1d9d957083d5dfe9e16828b37de883f51fc53c4016f"}, - {file = "numpy-2.0.0-cp311-cp311-win32.whl", hash = "sha256:2ce46fd0b8a0c947ae047d222f7136fc4d55538741373107574271bc00e20e8f"}, - {file = "numpy-2.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:fbd6acc766814ea6443628f4e6751d0da6593dae29c08c0b2606164db026970c"}, - {file = "numpy-2.0.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:354f373279768fa5a584bac997de6a6c9bc535c482592d7a813bb0c09be6c76f"}, - {file = "numpy-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4d2f62e55a4cd9c58c1d9a1c9edaedcd857a73cb6fda875bf79093f9d9086f85"}, - {file = "numpy-2.0.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:1e72728e7501a450288fc8e1f9ebc73d90cfd4671ebbd631f3e7857c39bd16f2"}, - {file = "numpy-2.0.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:84554fc53daa8f6abf8e8a66e076aff6ece62de68523d9f665f32d2fc50fd66e"}, - {file = "numpy-2.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c73aafd1afca80afecb22718f8700b40ac7cab927b8abab3c3e337d70e10e5a2"}, - {file = "numpy-2.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49d9f7d256fbc804391a7f72d4a617302b1afac1112fac19b6c6cec63fe7fe8a"}, - {file = "numpy-2.0.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:0ec84b9ba0654f3b962802edc91424331f423dcf5d5f926676e0150789cb3d95"}, - {file = "numpy-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:feff59f27338135776f6d4e2ec7aeeac5d5f7a08a83e80869121ef8164b74af9"}, - {file = "numpy-2.0.0-cp312-cp312-win32.whl", hash = "sha256:c5a59996dc61835133b56a32ebe4ef3740ea5bc19b3983ac60cc32be5a665d54"}, - {file = "numpy-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:a356364941fb0593bb899a1076b92dfa2029f6f5b8ba88a14fd0984aaf76d0df"}, - {file = "numpy-2.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e61155fae27570692ad1d327e81c6cf27d535a5d7ef97648a17d922224b216de"}, - {file = "numpy-2.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4554eb96f0fd263041baf16cf0881b3f5dafae7a59b1049acb9540c4d57bc8cb"}, - {file = "numpy-2.0.0-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:903703372d46bce88b6920a0cd86c3ad82dae2dbef157b5fc01b70ea1cfc430f"}, - {file = "numpy-2.0.0-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:3e8e01233d57639b2e30966c63d36fcea099d17c53bf424d77f088b0f4babd86"}, - {file = "numpy-2.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cde1753efe513705a0c6d28f5884e22bdc30438bf0085c5c486cdaff40cd67a"}, - {file = "numpy-2.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:821eedb7165ead9eebdb569986968b541f9908979c2da8a4967ecac4439bae3d"}, - {file = "numpy-2.0.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9a1712c015831da583b21c5bfe15e8684137097969c6d22e8316ba66b5baabe4"}, - {file = "numpy-2.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9c27f0946a3536403efb0e1c28def1ae6730a72cd0d5878db38824855e3afc44"}, - {file = "numpy-2.0.0-cp39-cp39-win32.whl", hash = "sha256:63b92c512d9dbcc37f9d81b123dec99fdb318ba38c8059afc78086fe73820275"}, - {file = "numpy-2.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:3f6bed7f840d44c08ebdb73b1825282b801799e325bcbdfa6bc5c370e5aecc65"}, - {file = "numpy-2.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9416a5c2e92ace094e9f0082c5fd473502c91651fb896bc17690d6fc475128d6"}, - {file = "numpy-2.0.0-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:17067d097ed036636fa79f6a869ac26df7db1ba22039d962422506640314933a"}, - {file = "numpy-2.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38ecb5b0582cd125f67a629072fed6f83562d9dd04d7e03256c9829bdec027ad"}, - {file = "numpy-2.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:cef04d068f5fb0518a77857953193b6bb94809a806bd0a14983a8f12ada060c9"}, - {file = "numpy-2.0.0.tar.gz", hash = "sha256:cf5d1c9e6837f8af9f92b6bd3e86d513cdc11f60fd62185cc49ec7d1aba34864"}, -] - -[[package]] -name = "oaklib" -version = "0.6.10" -description = "Ontology Access Kit: Python library for common ontology operations over a variety of backends" -optional = false -python-versions = "<4.0.0,>=3.9" -files = [ - {file = "oaklib-0.6.10-py3-none-any.whl", hash = "sha256:fa7684a8f8e6319231590a5a6128a38e976dee38e06e9fe7887e0b08d03012fa"}, - {file = "oaklib-0.6.10.tar.gz", hash = "sha256:1e4d6503a5f5144e669df4ee9b97f4b9dbc1ed4510bfb408914dd4c413bfc82e"}, -] - -[package.dependencies] -airium = ">=0.2.5" -appdirs = ">=1.4.4" -class-resolver = ">=0.4.2" -click = "*" -curies = ">=0.6.6" -defusedxml = ">=0.7.1,<0.8.0" -eutils = ">=0.6.0" -funowl = ">=0.2.0" -jsonlines = ">=4.0.0,<5.0.0" -kgcl-rdflib = "0.5.0" -kgcl-schema = ">=0.6.8,<0.7.0" -linkml-renderer = ">=0.3.0" -linkml-runtime = ">=1.5.3" -ndex2 = ">=3.5.0,<4.0.0" -networkx = ">=2.7.1" -ols-client = ">=0.1.1" -ontoportal-client = ">=0.0.3" -prefixmaps = ">=0.1.2" -pronto = ">=2.5.0" -pydantic = "*" -pysolr = ">=3.9.0,<4.0.0" -pystow = ">=0.5.0" -ratelimit = ">=2.2.1" -requests-cache = ">=1.0.1,<2.0.0" -semsql = ">=0.3.1" -SPARQLWrapper = "*" -SQLAlchemy = ">=1.4.32" -sssom = ">=0.4.4,<0.5.0" -tenacity = ">=8.2.3,<9.0.0" - -[package.extras] -gilda = ["gilda (>=1.0.0)", "urllib3 (<2)"] -llm = ["aiohttp", "html2text", "llm"] -semsimian = ["semsimian (>=0.2.16)"] - [[package]] name = "oauthlib" version = "3.2.2" @@ -1907,28 +1202,6 @@ rsa = ["cryptography (>=3.0.0)"] signals = ["blinker (>=1.4.0)"] signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"] -[[package]] -name = "ols-client" -version = "0.1.4" -description = "A client to the EBI Ontology Lookup Service" -optional = false -python-versions = ">=3.7" -files = [ - {file = "ols_client-0.1.4-py3-none-any.whl", hash = "sha256:7bdca0590042e07cc7ee3ef3fba99c3b6862cde6c8835afb129de31284b3e010"}, - {file = "ols_client-0.1.4.tar.gz", hash = "sha256:cd2a0f39107f39eaf0f40b9098f12d442cf3d43e28228e63feb407d0aeb44470"}, -] - -[package.dependencies] -class-resolver = "*" -click = "*" -more-click = "*" -pystow = "*" -requests = "*" - -[package.extras] -docs = ["sphinx", "sphinx-autodoc-typehints", "sphinx-automodapi", "sphinx-click", "sphinx-rtd-theme"] -tests = ["coverage", "pytest"] - [[package]] name = "ontodev-cogs" version = "0.3.3" @@ -1950,25 +1223,6 @@ requests = "*" tabulate = "*" termcolor = "*" -[[package]] -name = "ontoportal-client" -version = "0.0.4" -description = "A client to BioPortal and other OntoPortal instances." -optional = false -python-versions = ">=3.7" -files = [ - {file = "ontoportal_client-0.0.4-py3-none-any.whl", hash = "sha256:0dedd4ce003e0b6c1128fa05101e57bcc128ad79a6c9fcae66037d2447706c4c"}, - {file = "ontoportal_client-0.0.4.tar.gz", hash = "sha256:1bf7edcb94db3ed68ea9a64c620056f0517f7e209826b05dbfda8fe27384fa48"}, -] - -[package.dependencies] -pystow = "*" -typing-extensions = "*" - -[package.extras] -docs = ["sphinx", "sphinx-autodoc-typehints", "sphinx-automodapi", "sphinx-rtd-theme"] -tests = ["coverage", "pytest", "unittest-templates"] - [[package]] name = "openpyxl" version = "3.1.4" @@ -1994,95 +1248,6 @@ files = [ {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, ] -[[package]] -name = "pandas" -version = "2.2.2" -description = "Powerful data structures for data analysis, time series, and statistics" -optional = false -python-versions = ">=3.9" -files = [ - {file = "pandas-2.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90c6fca2acf139569e74e8781709dccb6fe25940488755716d1d354d6bc58bce"}, - {file = "pandas-2.2.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c7adfc142dac335d8c1e0dcbd37eb8617eac386596eb9e1a1b77791cf2498238"}, - {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4abfe0be0d7221be4f12552995e58723c7422c80a659da13ca382697de830c08"}, - {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8635c16bf3d99040fdf3ca3db669a7250ddf49c55dc4aa8fe0ae0fa8d6dcc1f0"}, - {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:40ae1dffb3967a52203105a077415a86044a2bea011b5f321c6aa64b379a3f51"}, - {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8e5a0b00e1e56a842f922e7fae8ae4077aee4af0acb5ae3622bd4b4c30aedf99"}, - {file = "pandas-2.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:ddf818e4e6c7c6f4f7c8a12709696d193976b591cc7dc50588d3d1a6b5dc8772"}, - {file = "pandas-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:696039430f7a562b74fa45f540aca068ea85fa34c244d0deee539cb6d70aa288"}, - {file = "pandas-2.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8e90497254aacacbc4ea6ae5e7a8cd75629d6ad2b30025a4a8b09aa4faf55151"}, - {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58b84b91b0b9f4bafac2a0ac55002280c094dfc6402402332c0913a59654ab2b"}, - {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2123dc9ad6a814bcdea0f099885276b31b24f7edf40f6cdbc0912672e22eee"}, - {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:2925720037f06e89af896c70bca73459d7e6a4be96f9de79e2d440bd499fe0db"}, - {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0cace394b6ea70c01ca1595f839cf193df35d1575986e484ad35c4aeae7266c1"}, - {file = "pandas-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:873d13d177501a28b2756375d59816c365e42ed8417b41665f346289adc68d24"}, - {file = "pandas-2.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9dfde2a0ddef507a631dc9dc4af6a9489d5e2e740e226ad426a05cabfbd7c8ef"}, - {file = "pandas-2.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e9b79011ff7a0f4b1d6da6a61aa1aa604fb312d6647de5bad20013682d1429ce"}, - {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cb51fe389360f3b5a4d57dbd2848a5f033350336ca3b340d1c53a1fad33bcad"}, - {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eee3a87076c0756de40b05c5e9a6069c035ba43e8dd71c379e68cab2c20f16ad"}, - {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3e374f59e440d4ab45ca2fffde54b81ac3834cf5ae2cdfa69c90bc03bde04d76"}, - {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:43498c0bdb43d55cb162cdc8c06fac328ccb5d2eabe3cadeb3529ae6f0517c32"}, - {file = "pandas-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:d187d355ecec3629624fccb01d104da7d7f391db0311145817525281e2804d23"}, - {file = "pandas-2.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0ca6377b8fca51815f382bd0b697a0814c8bda55115678cbc94c30aacbb6eff2"}, - {file = "pandas-2.2.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9057e6aa78a584bc93a13f0a9bf7e753a5e9770a30b4d758b8d5f2a62a9433cd"}, - {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:001910ad31abc7bf06f49dcc903755d2f7f3a9186c0c040b827e522e9cef0863"}, - {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66b479b0bd07204e37583c191535505410daa8df638fd8e75ae1b383851fe921"}, - {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a77e9d1c386196879aa5eb712e77461aaee433e54c68cf253053a73b7e49c33a"}, - {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:92fd6b027924a7e178ac202cfbe25e53368db90d56872d20ffae94b96c7acc57"}, - {file = "pandas-2.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:640cef9aa381b60e296db324337a554aeeb883ead99dc8f6c18e81a93942f5f4"}, - {file = "pandas-2.2.2.tar.gz", hash = "sha256:9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54"}, -] - -[package.dependencies] -numpy = [ - {version = ">=1.22.4", markers = "python_version < \"3.11\""}, - {version = ">=1.23.2", markers = "python_version == \"3.11\""}, - {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, -] -python-dateutil = ">=2.8.2" -pytz = ">=2020.1" -tzdata = ">=2022.7" - -[package.extras] -all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] -aws = ["s3fs (>=2022.11.0)"] -clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] -compression = ["zstandard (>=0.19.0)"] -computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] -consortium-standard = ["dataframe-api-compat (>=0.1.7)"] -excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] -feather = ["pyarrow (>=10.0.1)"] -fss = ["fsspec (>=2022.11.0)"] -gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] -hdf5 = ["tables (>=3.8.0)"] -html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] -mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] -output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] -parquet = ["pyarrow (>=10.0.1)"] -performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] -plot = ["matplotlib (>=3.6.3)"] -postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] -pyarrow = ["pyarrow (>=10.0.1)"] -spss = ["pyreadstat (>=1.2.0)"] -sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] -test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] -xml = ["lxml (>=4.9.2)"] - -[[package]] -name = "pansql" -version = "0.0.1" -description = "sqldf for pandas" -optional = false -python-versions = "*" -files = [ - {file = "pansql-0.0.1-py3-none-any.whl", hash = "sha256:0c49d8c23e418ac065af767ed350c544c0d6d96dc04e2faa1f8b37851d404988"}, - {file = "pansql-0.0.1.tar.gz", hash = "sha256:61091112442c5d663ea5c042b6327a9b6b94c6687831677dddda46f292532e29"}, -] - -[package.dependencies] -numpy = "*" -pandas = "*" -sqlalchemy = "*" - [[package]] name = "parse" version = "1.20.2" @@ -2179,23 +1344,6 @@ files = [ curies = ">=0.5.3" pyyaml = ">=5.3.1" -[[package]] -name = "pronto" -version = "2.5.7" -description = "Python frontend to ontologies." -optional = false -python-versions = ">=3.7" -files = [ - {file = "pronto-2.5.7-py2.py3-none-any.whl", hash = "sha256:d7a053cb1735353ef1c708226e77d051a1a32906b5c77f89f9d99c6ca5b5c985"}, - {file = "pronto-2.5.7.tar.gz", hash = "sha256:014a5b02064781d6edd7ca5b4f63b13342dd9b5322248f5a4740f48a98464629"}, -] - -[package.dependencies] -chardet = ">=5.0,<6.0" -fastobo = ">=0.12.2,<0.13.0" -networkx = ">=2.3,<4.0" -python-dateutil = ">=2.8,<3.0" - [[package]] name = "proto-plus" version = "1.24.0" @@ -2260,109 +1408,122 @@ pyasn1 = ">=0.4.6,<0.7.0" [[package]] name = "pydantic" -version = "2.7.4" +version = "2.8.2" description = "Data validation using Python type hints" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic-2.7.4-py3-none-any.whl", hash = "sha256:ee8538d41ccb9c0a9ad3e0e5f07bf15ed8015b481ced539a1759d8cc89ae90d0"}, - {file = "pydantic-2.7.4.tar.gz", hash = "sha256:0c84efd9548d545f63ac0060c1e4d39bb9b14db8b3c0652338aecc07b5adec52"}, + {file = "pydantic-2.8.2-py3-none-any.whl", hash = "sha256:73ee9fddd406dc318b885c7a2eab8a6472b68b8fb5ba8150949fc3db939f23c8"}, + {file = "pydantic-2.8.2.tar.gz", hash = "sha256:6f62c13d067b0755ad1c21a34bdd06c0c12625a22b0fc09c6b149816604f7c2a"}, ] [package.dependencies] annotated-types = ">=0.4.0" -pydantic-core = "2.18.4" -typing-extensions = ">=4.6.1" +pydantic-core = "2.20.1" +typing-extensions = [ + {version = ">=4.12.2", markers = "python_version >= \"3.13\""}, + {version = ">=4.6.1", markers = "python_version < \"3.13\""}, +] [package.extras] email = ["email-validator (>=2.0.0)"] [[package]] name = "pydantic-core" -version = "2.18.4" +version = "2.20.1" description = "Core functionality for Pydantic validation and serialization" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic_core-2.18.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:f76d0ad001edd426b92233d45c746fd08f467d56100fd8f30e9ace4b005266e4"}, - {file = "pydantic_core-2.18.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:59ff3e89f4eaf14050c8022011862df275b552caef8082e37b542b066ce1ff26"}, - {file = "pydantic_core-2.18.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a55b5b16c839df1070bc113c1f7f94a0af4433fcfa1b41799ce7606e5c79ce0a"}, - {file = "pydantic_core-2.18.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4d0dcc59664fcb8974b356fe0a18a672d6d7cf9f54746c05f43275fc48636851"}, - {file = "pydantic_core-2.18.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8951eee36c57cd128f779e641e21eb40bc5073eb28b2d23f33eb0ef14ffb3f5d"}, - {file = "pydantic_core-2.18.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4701b19f7e3a06ea655513f7938de6f108123bf7c86bbebb1196eb9bd35cf724"}, - {file = "pydantic_core-2.18.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e00a3f196329e08e43d99b79b286d60ce46bed10f2280d25a1718399457e06be"}, - {file = "pydantic_core-2.18.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:97736815b9cc893b2b7f663628e63f436018b75f44854c8027040e05230eeddb"}, - {file = "pydantic_core-2.18.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6891a2ae0e8692679c07728819b6e2b822fb30ca7445f67bbf6509b25a96332c"}, - {file = "pydantic_core-2.18.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bc4ff9805858bd54d1a20efff925ccd89c9d2e7cf4986144b30802bf78091c3e"}, - {file = "pydantic_core-2.18.4-cp310-none-win32.whl", hash = "sha256:1b4de2e51bbcb61fdebd0ab86ef28062704f62c82bbf4addc4e37fa4b00b7cbc"}, - {file = "pydantic_core-2.18.4-cp310-none-win_amd64.whl", hash = "sha256:6a750aec7bf431517a9fd78cb93c97b9b0c496090fee84a47a0d23668976b4b0"}, - {file = "pydantic_core-2.18.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:942ba11e7dfb66dc70f9ae66b33452f51ac7bb90676da39a7345e99ffb55402d"}, - {file = "pydantic_core-2.18.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b2ebef0e0b4454320274f5e83a41844c63438fdc874ea40a8b5b4ecb7693f1c4"}, - {file = "pydantic_core-2.18.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a642295cd0c8df1b86fc3dced1d067874c353a188dc8e0f744626d49e9aa51c4"}, - {file = "pydantic_core-2.18.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f09baa656c904807e832cf9cce799c6460c450c4ad80803517032da0cd062e2"}, - {file = "pydantic_core-2.18.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:98906207f29bc2c459ff64fa007afd10a8c8ac080f7e4d5beff4c97086a3dabd"}, - {file = "pydantic_core-2.18.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:19894b95aacfa98e7cb093cd7881a0c76f55731efad31073db4521e2b6ff5b7d"}, - {file = "pydantic_core-2.18.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0fbbdc827fe5e42e4d196c746b890b3d72876bdbf160b0eafe9f0334525119c8"}, - {file = "pydantic_core-2.18.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f85d05aa0918283cf29a30b547b4df2fbb56b45b135f9e35b6807cb28bc47951"}, - {file = "pydantic_core-2.18.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e85637bc8fe81ddb73fda9e56bab24560bdddfa98aa64f87aaa4e4b6730c23d2"}, - {file = "pydantic_core-2.18.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2f5966897e5461f818e136b8451d0551a2e77259eb0f73a837027b47dc95dab9"}, - {file = "pydantic_core-2.18.4-cp311-none-win32.whl", hash = "sha256:44c7486a4228413c317952e9d89598bcdfb06399735e49e0f8df643e1ccd0558"}, - {file = "pydantic_core-2.18.4-cp311-none-win_amd64.whl", hash = "sha256:8a7164fe2005d03c64fd3b85649891cd4953a8de53107940bf272500ba8a788b"}, - {file = "pydantic_core-2.18.4-cp311-none-win_arm64.whl", hash = "sha256:4e99bc050fe65c450344421017f98298a97cefc18c53bb2f7b3531eb39bc7805"}, - {file = "pydantic_core-2.18.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:6f5c4d41b2771c730ea1c34e458e781b18cc668d194958e0112455fff4e402b2"}, - {file = "pydantic_core-2.18.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2fdf2156aa3d017fddf8aea5adfba9f777db1d6022d392b682d2a8329e087cef"}, - {file = "pydantic_core-2.18.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4748321b5078216070b151d5271ef3e7cc905ab170bbfd27d5c83ee3ec436695"}, - {file = "pydantic_core-2.18.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:847a35c4d58721c5dc3dba599878ebbdfd96784f3fb8bb2c356e123bdcd73f34"}, - {file = "pydantic_core-2.18.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3c40d4eaad41f78e3bbda31b89edc46a3f3dc6e171bf0ecf097ff7a0ffff7cb1"}, - {file = "pydantic_core-2.18.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:21a5e440dbe315ab9825fcd459b8814bb92b27c974cbc23c3e8baa2b76890077"}, - {file = "pydantic_core-2.18.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01dd777215e2aa86dfd664daed5957704b769e726626393438f9c87690ce78c3"}, - {file = "pydantic_core-2.18.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4b06beb3b3f1479d32befd1f3079cc47b34fa2da62457cdf6c963393340b56e9"}, - {file = "pydantic_core-2.18.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:564d7922e4b13a16b98772441879fcdcbe82ff50daa622d681dd682175ea918c"}, - {file = "pydantic_core-2.18.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:0eb2a4f660fcd8e2b1c90ad566db2b98d7f3f4717c64fe0a83e0adb39766d5b8"}, - {file = "pydantic_core-2.18.4-cp312-none-win32.whl", hash = "sha256:8b8bab4c97248095ae0c4455b5a1cd1cdd96e4e4769306ab19dda135ea4cdb07"}, - {file = "pydantic_core-2.18.4-cp312-none-win_amd64.whl", hash = "sha256:14601cdb733d741b8958224030e2bfe21a4a881fb3dd6fbb21f071cabd48fa0a"}, - {file = "pydantic_core-2.18.4-cp312-none-win_arm64.whl", hash = "sha256:c1322d7dd74713dcc157a2b7898a564ab091ca6c58302d5c7b4c07296e3fd00f"}, - {file = "pydantic_core-2.18.4-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:823be1deb01793da05ecb0484d6c9e20baebb39bd42b5d72636ae9cf8350dbd2"}, - {file = "pydantic_core-2.18.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ebef0dd9bf9b812bf75bda96743f2a6c5734a02092ae7f721c048d156d5fabae"}, - {file = "pydantic_core-2.18.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae1d6df168efb88d7d522664693607b80b4080be6750c913eefb77e34c12c71a"}, - {file = "pydantic_core-2.18.4-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f9899c94762343f2cc2fc64c13e7cae4c3cc65cdfc87dd810a31654c9b7358cc"}, - {file = "pydantic_core-2.18.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99457f184ad90235cfe8461c4d70ab7dd2680e28821c29eca00252ba90308c78"}, - {file = "pydantic_core-2.18.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18f469a3d2a2fdafe99296a87e8a4c37748b5080a26b806a707f25a902c040a8"}, - {file = "pydantic_core-2.18.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b7cdf28938ac6b8b49ae5e92f2735056a7ba99c9b110a474473fd71185c1af5d"}, - {file = "pydantic_core-2.18.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:938cb21650855054dc54dfd9120a851c974f95450f00683399006aa6e8abb057"}, - {file = "pydantic_core-2.18.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:44cd83ab6a51da80fb5adbd9560e26018e2ac7826f9626bc06ca3dc074cd198b"}, - {file = "pydantic_core-2.18.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:972658f4a72d02b8abfa2581d92d59f59897d2e9f7e708fdabe922f9087773af"}, - {file = "pydantic_core-2.18.4-cp38-none-win32.whl", hash = "sha256:1d886dc848e60cb7666f771e406acae54ab279b9f1e4143babc9c2258213daa2"}, - {file = "pydantic_core-2.18.4-cp38-none-win_amd64.whl", hash = "sha256:bb4462bd43c2460774914b8525f79b00f8f407c945d50881568f294c1d9b4443"}, - {file = "pydantic_core-2.18.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:44a688331d4a4e2129140a8118479443bd6f1905231138971372fcde37e43528"}, - {file = "pydantic_core-2.18.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a2fdd81edd64342c85ac7cf2753ccae0b79bf2dfa063785503cb85a7d3593223"}, - {file = "pydantic_core-2.18.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:86110d7e1907ab36691f80b33eb2da87d780f4739ae773e5fc83fb272f88825f"}, - {file = "pydantic_core-2.18.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:46387e38bd641b3ee5ce247563b60c5ca098da9c56c75c157a05eaa0933ed154"}, - {file = "pydantic_core-2.18.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:123c3cec203e3f5ac7b000bd82235f1a3eced8665b63d18be751f115588fea30"}, - {file = "pydantic_core-2.18.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dc1803ac5c32ec324c5261c7209e8f8ce88e83254c4e1aebdc8b0a39f9ddb443"}, - {file = "pydantic_core-2.18.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53db086f9f6ab2b4061958d9c276d1dbe3690e8dd727d6abf2321d6cce37fa94"}, - {file = "pydantic_core-2.18.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:abc267fa9837245cc28ea6929f19fa335f3dc330a35d2e45509b6566dc18be23"}, - {file = "pydantic_core-2.18.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a0d829524aaefdebccb869eed855e2d04c21d2d7479b6cada7ace5448416597b"}, - {file = "pydantic_core-2.18.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:509daade3b8649f80d4e5ff21aa5673e4ebe58590b25fe42fac5f0f52c6f034a"}, - {file = "pydantic_core-2.18.4-cp39-none-win32.whl", hash = "sha256:ca26a1e73c48cfc54c4a76ff78df3727b9d9f4ccc8dbee4ae3f73306a591676d"}, - {file = "pydantic_core-2.18.4-cp39-none-win_amd64.whl", hash = "sha256:c67598100338d5d985db1b3d21f3619ef392e185e71b8d52bceacc4a7771ea7e"}, - {file = "pydantic_core-2.18.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:574d92eac874f7f4db0ca653514d823a0d22e2354359d0759e3f6a406db5d55d"}, - {file = "pydantic_core-2.18.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:1f4d26ceb5eb9eed4af91bebeae4b06c3fb28966ca3a8fb765208cf6b51102ab"}, - {file = "pydantic_core-2.18.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77450e6d20016ec41f43ca4a6c63e9fdde03f0ae3fe90e7c27bdbeaece8b1ed4"}, - {file = "pydantic_core-2.18.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d323a01da91851a4f17bf592faf46149c9169d68430b3146dcba2bb5e5719abc"}, - {file = "pydantic_core-2.18.4-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43d447dd2ae072a0065389092a231283f62d960030ecd27565672bd40746c507"}, - {file = "pydantic_core-2.18.4-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:578e24f761f3b425834f297b9935e1ce2e30f51400964ce4801002435a1b41ef"}, - {file = "pydantic_core-2.18.4-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:81b5efb2f126454586d0f40c4d834010979cb80785173d1586df845a632e4e6d"}, - {file = "pydantic_core-2.18.4-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ab86ce7c8f9bea87b9d12c7f0af71102acbf5ecbc66c17796cff45dae54ef9a5"}, - {file = "pydantic_core-2.18.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:90afc12421df2b1b4dcc975f814e21bc1754640d502a2fbcc6d41e77af5ec312"}, - {file = "pydantic_core-2.18.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:51991a89639a912c17bef4b45c87bd83593aee0437d8102556af4885811d59f5"}, - {file = "pydantic_core-2.18.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:293afe532740370aba8c060882f7d26cfd00c94cae32fd2e212a3a6e3b7bc15e"}, - {file = "pydantic_core-2.18.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b48ece5bde2e768197a2d0f6e925f9d7e3e826f0ad2271120f8144a9db18d5c8"}, - {file = "pydantic_core-2.18.4-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:eae237477a873ab46e8dd748e515c72c0c804fb380fbe6c85533c7de51f23a8f"}, - {file = "pydantic_core-2.18.4-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:834b5230b5dfc0c1ec37b2fda433b271cbbc0e507560b5d1588e2cc1148cf1ce"}, - {file = "pydantic_core-2.18.4-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e858ac0a25074ba4bce653f9b5d0a85b7456eaddadc0ce82d3878c22489fa4ee"}, - {file = "pydantic_core-2.18.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2fd41f6eff4c20778d717af1cc50eca52f5afe7805ee530a4fbd0bae284f16e9"}, - {file = "pydantic_core-2.18.4.tar.gz", hash = "sha256:ec3beeada09ff865c344ff3bc2f427f5e6c26401cc6113d77e372c3fdac73864"}, + {file = "pydantic_core-2.20.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3acae97ffd19bf091c72df4d726d552c473f3576409b2a7ca36b2f535ffff4a3"}, + {file = "pydantic_core-2.20.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:41f4c96227a67a013e7de5ff8f20fb496ce573893b7f4f2707d065907bffdbd6"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f239eb799a2081495ea659d8d4a43a8f42cd1fe9ff2e7e436295c38a10c286a"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:53e431da3fc53360db73eedf6f7124d1076e1b4ee4276b36fb25514544ceb4a3"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1f62b2413c3a0e846c3b838b2ecd6c7a19ec6793b2a522745b0869e37ab5bc1"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d41e6daee2813ecceea8eda38062d69e280b39df793f5a942fa515b8ed67953"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d482efec8b7dc6bfaedc0f166b2ce349df0011f5d2f1f25537ced4cfc34fd98"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e93e1a4b4b33daed65d781a57a522ff153dcf748dee70b40c7258c5861e1768a"}, + {file = "pydantic_core-2.20.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e7c4ea22b6739b162c9ecaaa41d718dfad48a244909fe7ef4b54c0b530effc5a"}, + {file = "pydantic_core-2.20.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4f2790949cf385d985a31984907fecb3896999329103df4e4983a4a41e13e840"}, + {file = "pydantic_core-2.20.1-cp310-none-win32.whl", hash = "sha256:5e999ba8dd90e93d57410c5e67ebb67ffcaadcea0ad973240fdfd3a135506250"}, + {file = "pydantic_core-2.20.1-cp310-none-win_amd64.whl", hash = "sha256:512ecfbefef6dac7bc5eaaf46177b2de58cdf7acac8793fe033b24ece0b9566c"}, + {file = "pydantic_core-2.20.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d2a8fa9d6d6f891f3deec72f5cc668e6f66b188ab14bb1ab52422fe8e644f312"}, + {file = "pydantic_core-2.20.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:175873691124f3d0da55aeea1d90660a6ea7a3cfea137c38afa0a5ffabe37b88"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37eee5b638f0e0dcd18d21f59b679686bbd18917b87db0193ae36f9c23c355fc"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25e9185e2d06c16ee438ed39bf62935ec436474a6ac4f9358524220f1b236e43"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:150906b40ff188a3260cbee25380e7494ee85048584998c1e66df0c7a11c17a6"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ad4aeb3e9a97286573c03df758fc7627aecdd02f1da04516a86dc159bf70121"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3f3ed29cd9f978c604708511a1f9c2fdcb6c38b9aae36a51905b8811ee5cbf1"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b0dae11d8f5ded51699c74d9548dcc5938e0804cc8298ec0aa0da95c21fff57b"}, + {file = "pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:faa6b09ee09433b87992fb5a2859efd1c264ddc37280d2dd5db502126d0e7f27"}, + {file = "pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9dc1b507c12eb0481d071f3c1808f0529ad41dc415d0ca11f7ebfc666e66a18b"}, + {file = "pydantic_core-2.20.1-cp311-none-win32.whl", hash = "sha256:fa2fddcb7107e0d1808086ca306dcade7df60a13a6c347a7acf1ec139aa6789a"}, + {file = "pydantic_core-2.20.1-cp311-none-win_amd64.whl", hash = "sha256:40a783fb7ee353c50bd3853e626f15677ea527ae556429453685ae32280c19c2"}, + {file = "pydantic_core-2.20.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:595ba5be69b35777474fa07f80fc260ea71255656191adb22a8c53aba4479231"}, + {file = "pydantic_core-2.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a4f55095ad087474999ee28d3398bae183a66be4823f753cd7d67dd0153427c9"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9aa05d09ecf4c75157197f27cdc9cfaeb7c5f15021c6373932bf3e124af029f"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e97fdf088d4b31ff4ba35db26d9cc472ac7ef4a2ff2badeabf8d727b3377fc52"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc633a9fe1eb87e250b5c57d389cf28998e4292336926b0b6cdaee353f89a237"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d573faf8eb7e6b1cbbcb4f5b247c60ca8be39fe2c674495df0eb4318303137fe"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26dc97754b57d2fd00ac2b24dfa341abffc380b823211994c4efac7f13b9e90e"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:33499e85e739a4b60c9dac710c20a08dc73cb3240c9a0e22325e671b27b70d24"}, + {file = "pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:bebb4d6715c814597f85297c332297c6ce81e29436125ca59d1159b07f423eb1"}, + {file = "pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:516d9227919612425c8ef1c9b869bbbee249bc91912c8aaffb66116c0b447ebd"}, + {file = "pydantic_core-2.20.1-cp312-none-win32.whl", hash = "sha256:469f29f9093c9d834432034d33f5fe45699e664f12a13bf38c04967ce233d688"}, + {file = "pydantic_core-2.20.1-cp312-none-win_amd64.whl", hash = "sha256:035ede2e16da7281041f0e626459bcae33ed998cca6a0a007a5ebb73414ac72d"}, + {file = "pydantic_core-2.20.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:0827505a5c87e8aa285dc31e9ec7f4a17c81a813d45f70b1d9164e03a813a686"}, + {file = "pydantic_core-2.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:19c0fa39fa154e7e0b7f82f88ef85faa2a4c23cc65aae2f5aea625e3c13c735a"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa223cd1e36b642092c326d694d8bf59b71ddddc94cdb752bbbb1c5c91d833b"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c336a6d235522a62fef872c6295a42ecb0c4e1d0f1a3e500fe949415761b8a19"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7eb6a0587eded33aeefea9f916899d42b1799b7b14b8f8ff2753c0ac1741edac"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70c8daf4faca8da5a6d655f9af86faf6ec2e1768f4b8b9d0226c02f3d6209703"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9fa4c9bf273ca41f940bceb86922a7667cd5bf90e95dbb157cbb8441008482c"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:11b71d67b4725e7e2a9f6e9c0ac1239bbc0c48cce3dc59f98635efc57d6dac83"}, + {file = "pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:270755f15174fb983890c49881e93f8f1b80f0b5e3a3cc1394a255706cabd203"}, + {file = "pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c81131869240e3e568916ef4c307f8b99583efaa60a8112ef27a366eefba8ef0"}, + {file = "pydantic_core-2.20.1-cp313-none-win32.whl", hash = "sha256:b91ced227c41aa29c672814f50dbb05ec93536abf8f43cd14ec9521ea09afe4e"}, + {file = "pydantic_core-2.20.1-cp313-none-win_amd64.whl", hash = "sha256:65db0f2eefcaad1a3950f498aabb4875c8890438bc80b19362cf633b87a8ab20"}, + {file = "pydantic_core-2.20.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:4745f4ac52cc6686390c40eaa01d48b18997cb130833154801a442323cc78f91"}, + {file = "pydantic_core-2.20.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a8ad4c766d3f33ba8fd692f9aa297c9058970530a32c728a2c4bfd2616d3358b"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41e81317dd6a0127cabce83c0c9c3fbecceae981c8391e6f1dec88a77c8a569a"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:04024d270cf63f586ad41fff13fde4311c4fc13ea74676962c876d9577bcc78f"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eaad4ff2de1c3823fddf82f41121bdf453d922e9a238642b1dedb33c4e4f98ad"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:26ab812fa0c845df815e506be30337e2df27e88399b985d0bb4e3ecfe72df31c"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c5ebac750d9d5f2706654c638c041635c385596caf68f81342011ddfa1e5598"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2aafc5a503855ea5885559eae883978c9b6d8c8993d67766ee73d82e841300dd"}, + {file = "pydantic_core-2.20.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4868f6bd7c9d98904b748a2653031fc9c2f85b6237009d475b1008bfaeb0a5aa"}, + {file = "pydantic_core-2.20.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:aa2f457b4af386254372dfa78a2eda2563680d982422641a85f271c859df1987"}, + {file = "pydantic_core-2.20.1-cp38-none-win32.whl", hash = "sha256:225b67a1f6d602de0ce7f6c1c3ae89a4aa25d3de9be857999e9124f15dab486a"}, + {file = "pydantic_core-2.20.1-cp38-none-win_amd64.whl", hash = "sha256:6b507132dcfc0dea440cce23ee2182c0ce7aba7054576efc65634f080dbe9434"}, + {file = "pydantic_core-2.20.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:b03f7941783b4c4a26051846dea594628b38f6940a2fdc0df00b221aed39314c"}, + {file = "pydantic_core-2.20.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1eedfeb6089ed3fad42e81a67755846ad4dcc14d73698c120a82e4ccf0f1f9f6"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:635fee4e041ab9c479e31edda27fcf966ea9614fff1317e280d99eb3e5ab6fe2"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:77bf3ac639c1ff567ae3b47f8d4cc3dc20f9966a2a6dd2311dcc055d3d04fb8a"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ed1b0132f24beeec5a78b67d9388656d03e6a7c837394f99257e2d55b461611"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c6514f963b023aeee506678a1cf821fe31159b925c4b76fe2afa94cc70b3222b"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10d4204d8ca33146e761c79f83cc861df20e7ae9f6487ca290a97702daf56006"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2d036c7187b9422ae5b262badb87a20a49eb6c5238b2004e96d4da1231badef1"}, + {file = "pydantic_core-2.20.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9ebfef07dbe1d93efb94b4700f2d278494e9162565a54f124c404a5656d7ff09"}, + {file = "pydantic_core-2.20.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6b9d9bb600328a1ce523ab4f454859e9d439150abb0906c5a1983c146580ebab"}, + {file = "pydantic_core-2.20.1-cp39-none-win32.whl", hash = "sha256:784c1214cb6dd1e3b15dd8b91b9a53852aed16671cc3fbe4786f4f1db07089e2"}, + {file = "pydantic_core-2.20.1-cp39-none-win_amd64.whl", hash = "sha256:d2fe69c5434391727efa54b47a1e7986bb0186e72a41b203df8f5b0a19a4f669"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a45f84b09ac9c3d35dfcf6a27fd0634d30d183205230a0ebe8373a0e8cfa0906"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d02a72df14dfdbaf228424573a07af10637bd490f0901cee872c4f434a735b94"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2b27e6af28f07e2f195552b37d7d66b150adbaa39a6d327766ffd695799780f"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:084659fac3c83fd674596612aeff6041a18402f1e1bc19ca39e417d554468482"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:242b8feb3c493ab78be289c034a1f659e8826e2233786e36f2893a950a719bb6"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:38cf1c40a921d05c5edc61a785c0ddb4bed67827069f535d794ce6bcded919fc"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e0bbdd76ce9aa5d4209d65f2b27fc6e5ef1312ae6c5333c26db3f5ade53a1e99"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:254ec27fdb5b1ee60684f91683be95e5133c994cc54e86a0b0963afa25c8f8a6"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:407653af5617f0757261ae249d3fba09504d7a71ab36ac057c938572d1bc9331"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:c693e916709c2465b02ca0ad7b387c4f8423d1db7b4649c551f27a529181c5ad"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b5ff4911aea936a47d9376fd3ab17e970cc543d1b68921886e7f64bd28308d1"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:177f55a886d74f1808763976ac4efd29b7ed15c69f4d838bbd74d9d09cf6fa86"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:964faa8a861d2664f0c7ab0c181af0bea66098b1919439815ca8803ef136fc4e"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:4dd484681c15e6b9a977c785a345d3e378d72678fd5f1f3c0509608da24f2ac0"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f6d6cff3538391e8486a431569b77921adfcdef14eb18fbf19b7c0a5294d4e6a"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a6d511cc297ff0883bc3708b465ff82d7560193169a8b93260f74ecb0a5e08a7"}, + {file = "pydantic_core-2.20.1.tar.gz", hash = "sha256:26ca695eeee5f9f1aeeb211ffc12f10bcb6f71e2989988fda61dabd65db878d4"}, ] [package.dependencies] @@ -2470,22 +1631,6 @@ pyjsg = ">=0.11.10" rdflib-shim = "*" shexjsg = ">=0.8.1" -[[package]] -name = "pysolr" -version = "3.9.0" -description = "Lightweight Python client for Apache Solr" -optional = false -python-versions = "*" -files = [ - {file = "pysolr-3.9.0.tar.gz", hash = "sha256:6ef05feb87c614894243eddc62e9b0a6134a889c159ae868655cf6cd749545e6"}, -] - -[package.dependencies] -requests = ">=2.9.1" - -[package.extras] -solrcloud = ["kazoo (>=2.5.0)"] - [[package]] name = "pystow" version = "0.5.4" @@ -2572,17 +1717,6 @@ files = [ [package.dependencies] sortedcontainers = "*" -[[package]] -name = "pytz" -version = "2024.1" -description = "World timezone definitions, modern and historical" -optional = false -python-versions = "*" -files = [ - {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, - {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, -] - [[package]] name = "pyyaml" version = "6.0.1" @@ -2646,16 +1780,6 @@ files = [ [package.dependencies] pyyaml = "*" -[[package]] -name = "ratelimit" -version = "2.2.1" -description = "API rate limit decorator" -optional = false -python-versions = "*" -files = [ - {file = "ratelimit-2.2.1.tar.gz", hash = "sha256:af8a9b64b821529aca09ebaf6d8d279100d766f19e90b5059ac6a718ca6dee42"}, -] - [[package]] name = "rdflib" version = "7.0.0" @@ -2742,36 +1866,6 @@ urllib3 = ">=1.21.1,<3" socks = ["PySocks (>=1.5.6,!=1.5.7)"] use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] -[[package]] -name = "requests-cache" -version = "1.2.1" -description = "A persistent cache for python requests" -optional = false -python-versions = ">=3.8" -files = [ - {file = "requests_cache-1.2.1-py3-none-any.whl", hash = "sha256:1285151cddf5331067baa82598afe2d47c7495a1334bfe7a7d329b43e9fd3603"}, - {file = "requests_cache-1.2.1.tar.gz", hash = "sha256:68abc986fdc5b8d0911318fbb5f7c80eebcd4d01bfacc6685ecf8876052511d1"}, -] - -[package.dependencies] -attrs = ">=21.2" -cattrs = ">=22.2" -platformdirs = ">=2.5" -requests = ">=2.22" -url-normalize = ">=1.4" -urllib3 = ">=1.25.5" - -[package.extras] -all = ["boto3 (>=1.15)", "botocore (>=1.18)", "itsdangerous (>=2.0)", "pymongo (>=3)", "pyyaml (>=6.0.1)", "redis (>=3)", "ujson (>=5.4)"] -bson = ["bson (>=0.5)"] -docs = ["furo (>=2023.3,<2024.0)", "linkify-it-py (>=2.0,<3.0)", "myst-parser (>=1.0,<2.0)", "sphinx (>=5.0.2,<6.0.0)", "sphinx-autodoc-typehints (>=1.19)", "sphinx-automodapi (>=0.14)", "sphinx-copybutton (>=0.5)", "sphinx-design (>=0.2)", "sphinx-notfound-page (>=0.8)", "sphinxcontrib-apidoc (>=0.3)", "sphinxext-opengraph (>=0.9)"] -dynamodb = ["boto3 (>=1.15)", "botocore (>=1.18)"] -json = ["ujson (>=5.4)"] -mongodb = ["pymongo (>=3)"] -redis = ["redis (>=3)"] -security = ["itsdangerous (>=2.0)"] -yaml = ["pyyaml (>=6.0.1)"] - [[package]] name = "requests-oauthlib" version = "2.0.0" @@ -2790,20 +1884,6 @@ requests = ">=2.0.0" [package.extras] rsa = ["oauthlib[signedtoken] (>=3.0.0)"] -[[package]] -name = "requests-toolbelt" -version = "1.0.0" -description = "A utility belt for advanced users of python-requests" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6"}, - {file = "requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06"}, -] - -[package.dependencies] -requests = ">=2.0.1,<3.0.0" - [[package]] name = "rfc3339-validator" version = "0.1.4" @@ -3026,64 +2106,6 @@ linkml = ">=1.5.0" linkml-runtime = ">=1.5.0" ontodev-cogs = ">=0.3.3,<0.4.0" -[[package]] -name = "scipy" -version = "1.13.1" -description = "Fundamental algorithms for scientific computing in Python" -optional = false -python-versions = ">=3.9" -files = [ - {file = "scipy-1.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:20335853b85e9a49ff7572ab453794298bcf0354d8068c5f6775a0eabf350aca"}, - {file = "scipy-1.13.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d605e9c23906d1994f55ace80e0125c587f96c020037ea6aa98d01b4bd2e222f"}, - {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfa31f1def5c819b19ecc3a8b52d28ffdcc7ed52bb20c9a7589669dd3c250989"}, - {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26264b282b9da0952a024ae34710c2aff7d27480ee91a2e82b7b7073c24722f"}, - {file = "scipy-1.13.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:eccfa1906eacc02de42d70ef4aecea45415f5be17e72b61bafcfd329bdc52e94"}, - {file = "scipy-1.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:2831f0dc9c5ea9edd6e51e6e769b655f08ec6db6e2e10f86ef39bd32eb11da54"}, - {file = "scipy-1.13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:27e52b09c0d3a1d5b63e1105f24177e544a222b43611aaf5bc44d4a0979e32f9"}, - {file = "scipy-1.13.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:54f430b00f0133e2224c3ba42b805bfd0086fe488835effa33fa291561932326"}, - {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e89369d27f9e7b0884ae559a3a956e77c02114cc60a6058b4e5011572eea9299"}, - {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a78b4b3345f1b6f68a763c6e25c0c9a23a9fd0f39f5f3d200efe8feda560a5fa"}, - {file = "scipy-1.13.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:45484bee6d65633752c490404513b9ef02475b4284c4cfab0ef946def50b3f59"}, - {file = "scipy-1.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:5713f62f781eebd8d597eb3f88b8bf9274e79eeabf63afb4a737abc6c84ad37b"}, - {file = "scipy-1.13.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5d72782f39716b2b3509cd7c33cdc08c96f2f4d2b06d51e52fb45a19ca0c86a1"}, - {file = "scipy-1.13.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:017367484ce5498445aade74b1d5ab377acdc65e27095155e448c88497755a5d"}, - {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:949ae67db5fa78a86e8fa644b9a6b07252f449dcf74247108c50e1d20d2b4627"}, - {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de3ade0e53bc1f21358aa74ff4830235d716211d7d077e340c7349bc3542e884"}, - {file = "scipy-1.13.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2ac65fb503dad64218c228e2dc2d0a0193f7904747db43014645ae139c8fad16"}, - {file = "scipy-1.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:cdd7dacfb95fea358916410ec61bbc20440f7860333aee6d882bb8046264e949"}, - {file = "scipy-1.13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:436bbb42a94a8aeef855d755ce5a465479c721e9d684de76bf61a62e7c2b81d5"}, - {file = "scipy-1.13.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:8335549ebbca860c52bf3d02f80784e91a004b71b059e3eea9678ba994796a24"}, - {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d533654b7d221a6a97304ab63c41c96473ff04459e404b83275b60aa8f4b7004"}, - {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:637e98dcf185ba7f8e663e122ebf908c4702420477ae52a04f9908707456ba4d"}, - {file = "scipy-1.13.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a014c2b3697bde71724244f63de2476925596c24285c7a637364761f8710891c"}, - {file = "scipy-1.13.1-cp39-cp39-win_amd64.whl", hash = "sha256:392e4ec766654852c25ebad4f64e4e584cf19820b980bc04960bca0b0cd6eaa2"}, - {file = "scipy-1.13.1.tar.gz", hash = "sha256:095a87a0312b08dfd6a6155cbbd310a8c51800fc931b8c0b84003014b874ed3c"}, -] - -[package.dependencies] -numpy = ">=1.22.4,<2.3" - -[package.extras] -dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] -doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.12.0)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0)", "sphinx-design (>=0.4.0)"] -test = ["array-api-strict", "asv", "gmpy2", "hypothesis (>=6.30)", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] - -[[package]] -name = "semsql" -version = "0.3.3" -description = "" -optional = false -python-versions = ">=3.8,<4.0" -files = [ - {file = "semsql-0.3.3-py3-none-any.whl", hash = "sha256:7249cf1faf61dabf2605a06dd0955775e1adad2e462e3f95ebbb1b7caed0e54c"}, - {file = "semsql-0.3.3.tar.gz", hash = "sha256:af75543bbe7469b856f58653d490095527f3653c6b499e27a714c6da78f1d185"}, -] - -[package.dependencies] -click = ">=8.1.3,<9.0.0" -linkml-runtime = ">=1.2.15,<2.0.0" -SQLAlchemy-Utils = ">=0.38.2,<0.39.0" - [[package]] name = "setuptools" version = "70.1.1" @@ -3269,75 +2291,6 @@ postgresql-psycopgbinary = ["psycopg[binary] (>=3.0.7)"] pymysql = ["pymysql"] sqlcipher = ["sqlcipher3_binary"] -[[package]] -name = "sqlalchemy-utils" -version = "0.38.3" -description = "Various utility functions for SQLAlchemy." -optional = false -python-versions = "~=3.6" -files = [ - {file = "SQLAlchemy-Utils-0.38.3.tar.gz", hash = "sha256:9f9afba607a40455cf703adfa9846584bf26168a0c5a60a70063b70d65051f4d"}, - {file = "SQLAlchemy_Utils-0.38.3-py3-none-any.whl", hash = "sha256:5c13b5d08adfaa85f3d4e8ec09a75136216fad41346980d02974a70a77988bf9"}, -] - -[package.dependencies] -SQLAlchemy = ">=1.3" - -[package.extras] -arrow = ["arrow (>=0.3.4)"] -babel = ["Babel (>=1.3)"] -color = ["colour (>=0.0.4)"] -encrypted = ["cryptography (>=0.6)"] -intervals = ["intervals (>=0.7.1)"] -password = ["passlib (>=1.6,<2.0)"] -pendulum = ["pendulum (>=2.0.5)"] -phone = ["phonenumbers (>=5.9.2)"] -test = ["Jinja2 (>=2.3)", "Pygments (>=1.2)", "backports.zoneinfo", "docutils (>=0.10)", "flake8 (>=2.4.0)", "flexmock (>=0.9.7)", "isort (>=4.2.2)", "pg8000 (>=1.12.4)", "psycopg2 (>=2.5.1)", "psycopg2cffi (>=2.8.1)", "pymysql", "pyodbc", "pytest (>=2.7.1)", "python-dateutil (>=2.6)", "pytz (>=2014.2)"] -test-all = ["Babel (>=1.3)", "Jinja2 (>=2.3)", "Pygments (>=1.2)", "arrow (>=0.3.4)", "backports.zoneinfo", "colour (>=0.0.4)", "cryptography (>=0.6)", "docutils (>=0.10)", "flake8 (>=2.4.0)", "flexmock (>=0.9.7)", "furl (>=0.4.1)", "intervals (>=0.7.1)", "isort (>=4.2.2)", "passlib (>=1.6,<2.0)", "pendulum (>=2.0.5)", "pg8000 (>=1.12.4)", "phonenumbers (>=5.9.2)", "psycopg2 (>=2.5.1)", "psycopg2cffi (>=2.8.1)", "pymysql", "pyodbc", "pytest (>=2.7.1)", "python-dateutil", "python-dateutil (>=2.6)", "pytz (>=2014.2)"] -timezone = ["python-dateutil"] -url = ["furl (>=0.4.1)"] - -[[package]] -name = "sssom" -version = "0.4.11" -description = "Operations on SSSOM mapping tables" -optional = false -python-versions = "<4.0,>=3.8" -files = [ - {file = "sssom-0.4.11-py3-none-any.whl", hash = "sha256:4642f126a6ec8a4201bef77107a5ac76ed69b8f624014b5b77e56745969c0f76"}, - {file = "sssom-0.4.11.tar.gz", hash = "sha256:5043390657a396f9e5d064e5788990a52ec19c395c6380514abfe01b85a5eebc"}, -] - -[package.dependencies] -click = ">=8.1.6" -curies = ">=0.7.3" -deprecation = ">=2.1.0,<3.0.0" -importlib-resources = ">=6.1.1,<7.0.0" -linkml-runtime = ">=1.7.5,<2.0.0" -networkx = {version = ">=3.1", extras = ["networkx"]} -pandas = ">1.0.3" -pansql = {version = ">=0.0.1", extras = ["pansql"]} -pyyaml = ">=6.0.1,<7.0.0" -rdflib = ">=6.0.0" -scipy = {version = "*", extras = ["scipy"]} -sparqlwrapper = ">=2.0.0" -sssom-schema = ">=0.15.2,<0.16.0" -validators = ">=0.20.0" - -[[package]] -name = "sssom-schema" -version = "0.15.2" -description = "SSSOM is a Simple Standard for Sharing Ontology Mappings." -optional = false -python-versions = "<4.0,>=3.8" -files = [ - {file = "sssom_schema-0.15.2-py3-none-any.whl", hash = "sha256:41112586160d5e57a7cfedab22dfd0c21d1e3e1a86805f7fe31918a9b664ca15"}, - {file = "sssom_schema-0.15.2.tar.gz", hash = "sha256:c759ee8f9e4a7e5e8249b58198189b2e48e297ff31a918d4af64a89ed30938da"}, -] - -[package.dependencies] -linkml-runtime = "*" - [[package]] name = "tabulate" version = "0.9.0" @@ -3352,21 +2305,6 @@ files = [ [package.extras] widechars = ["wcwidth"] -[[package]] -name = "tenacity" -version = "8.4.2" -description = "Retry code until it succeeds" -optional = false -python-versions = ">=3.8" -files = [ - {file = "tenacity-8.4.2-py3-none-any.whl", hash = "sha256:9e6f7cf7da729125c7437222f8a522279751cdfbe6b67bfe64f75d3a348661b2"}, - {file = "tenacity-8.4.2.tar.gz", hash = "sha256:cd80a53a79336edba8489e767f729e4f391c896956b57140b5d7511a64bbd3ef"}, -] - -[package.extras] -doc = ["reno", "sphinx"] -test = ["pytest", "tornado (>=4.5)", "typeguard"] - [[package]] name = "termcolor" version = "2.4.0" @@ -3434,17 +2372,6 @@ files = [ {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, ] -[[package]] -name = "tzdata" -version = "2024.1" -description = "Provider of IANA time zone data" -optional = false -python-versions = ">=2" -files = [ - {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, - {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, -] - [[package]] name = "uri-template" version = "1.3.0" @@ -3470,20 +2397,6 @@ files = [ {file = "uritemplate-4.1.1.tar.gz", hash = "sha256:4346edfc5c3b79f694bccd6d6099a322bbeb628dbf2cd86eea55a456ce5124f0"}, ] -[[package]] -name = "url-normalize" -version = "1.4.3" -description = "URL normalization for Python" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" -files = [ - {file = "url-normalize-1.4.3.tar.gz", hash = "sha256:d23d3a070ac52a67b83a1c59a0e68f8608d1cd538783b401bc9de2c0fac999b2"}, - {file = "url_normalize-1.4.3-py2.py3-none-any.whl", hash = "sha256:ec3c301f04e5bb676d333a7fa162fa977ad2ca04b7e652bfc9fac4e405728eed"}, -] - -[package.dependencies] -six = "*" - [[package]] name = "urllib3" version = "2.2.2" @@ -3501,17 +2414,6 @@ h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] -[[package]] -name = "validators" -version = "0.28.3" -description = "Python Data Validation for Humans™" -optional = false -python-versions = ">=3.8" -files = [ - {file = "validators-0.28.3-py3-none-any.whl", hash = "sha256:53cafa854f13850156259d9cc479b864ee901f6a96e6b109e6fc33f98f37d99f"}, - {file = "validators-0.28.3.tar.gz", hash = "sha256:c6c79840bcde9ba77b19f6218f7738188115e27830cbaff43264bc4ed24c429d"}, -] - [[package]] name = "watchdog" version = "4.0.1" @@ -3671,4 +2573,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.9" -content-hash = "ab59fe33c0d754b14529832833d212806912588ceb485be0059b5aa0fea25ac1" +content-hash = "a088f63831c1e0fc38fbf36fd52e8622dbf6e9e91ba868ee424c4f5b457bbca1" diff --git a/pyproject.toml b/pyproject.toml index 2ce12e2..4d261a5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,15 +2,18 @@ name = "gocam" version = "0.1.0" description = "GO CAM Data Model (Python)" -authors = ["My Name "] +authors = ["The Gene Ontology Consortium "] license = "BSD-3" readme = "README.md" include = ["README.md", "src/gocam/schema", "project"] [tool.poetry.dependencies] python = "^3.9" +click = "^8" linkml-runtime = "^1.1.24" -oaklib = "^0.6.10" +pydantic = "^2" +pyyaml = "^6" +requests = "^2" [tool.poetry.group.dev.dependencies] linkml = "^1.3.5" diff --git a/src/gocam/cli.py b/src/gocam/cli.py index 5f7a654..f707f37 100644 --- a/src/gocam/cli.py +++ b/src/gocam/cli.py @@ -2,14 +2,11 @@ import logging import sys import warnings -from typing import Optional import click import yaml -from linkml_runtime.dumpers import json_dumper -from pydantic import BaseModel -from gocam.translation.minerva_wrapper import MinervaWrapper +from gocam.translation import MinervaWrapper index_type_option = click.option( "--index-type", diff --git a/src/gocam/datamodel/__init__.py b/src/gocam/datamodel/__init__.py index c1b179c..104cdc8 100644 --- a/src/gocam/datamodel/__init__.py +++ b/src/gocam/datamodel/__init__.py @@ -1,5 +1,5 @@ from pathlib import Path -from .gocam import * +from gocam.datamodel.gocam import * THIS_PATH = Path(__file__).parent diff --git a/src/gocam/translation/__init__.py b/src/gocam/translation/__init__.py index e69de29..fb2b2d0 100644 --- a/src/gocam/translation/__init__.py +++ b/src/gocam/translation/__init__.py @@ -0,0 +1 @@ +from gocam.translation.minerva_wrapper import MinervaWrapper diff --git a/src/gocam/translation/minerva_wrapper.py b/src/gocam/translation/minerva_wrapper.py index ea6d65a..d566e69 100644 --- a/src/gocam/translation/minerva_wrapper.py +++ b/src/gocam/translation/minerva_wrapper.py @@ -1,12 +1,10 @@ import logging from collections import defaultdict from dataclasses import dataclass, field -from typing import ClassVar, Dict, Iterable, Iterator, Optional, Tuple, List +from typing import Dict, Iterator, Optional, Tuple, List import requests -import requests_cache import yaml -from oaklib import BasicOntologyInterface, get_adapter from gocam.datamodel import Model, Activity, MolecularFunctionAssociation, BiologicalProcessAssociation, \ CellularAnatomicalEntityAssociation, CausalAssociation, Object, EvidenceItem, ProvenanceInfo @@ -78,13 +76,6 @@ class MinervaWrapper: TODO: Implement a fact counter to ensure all facts are encountered for and nothing dropped on floor """ - - name: ClassVar[str] = "gocam" - - default_object_type = "Activity" - - _label_adapter: BasicOntologyInterface = None - session: requests.Session = field(default_factory=lambda: requests.Session()) diff --git a/tests/test_data.py b/tests/test_data.py index 522465b..f0b8406 100644 --- a/tests/test_data.py +++ b/tests/test_data.py @@ -3,7 +3,7 @@ import glob from linkml_runtime.loaders import yaml_loader -from gocam.datamodel.gocam import Model +from gocam.datamodel import Model ROOT = os.path.join(os.path.dirname(__file__), '..') DATA_DIR = os.path.join(ROOT, "src", "data", "examples") From 57023d84efa852cfb0294097f6f89ade140b1f13 Mon Sep 17 00:00:00 2001 From: Patrick Kalita Date: Tue, 9 Jul 2024 16:11:15 -0700 Subject: [PATCH 04/11] Add missing pytest mark registration --- pyproject.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 4d261a5..db02951 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,3 +39,7 @@ docs = ["linkml", "mkdocs-material"] [tool.poetry.scripts] gocam = "gocam.cli:cli" +[tool.pytest.ini_options] +markers = [ + "integration" +] From e906e5d299608b9e08e277e58f2c67bd1007e690 Mon Sep 17 00:00:00 2001 From: Patrick Kalita Date: Tue, 9 Jul 2024 16:12:58 -0700 Subject: [PATCH 05/11] Remove unnecessary dependency extras --- pyproject.toml | 3 --- 1 file changed, 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index db02951..3555ef8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,9 +33,6 @@ style = "pep440" requires = ["poetry-core>=1.0.0", "poetry-dynamic-versioning"] build-backend = "poetry_dynamic_versioning.backend" -[tool.poetry.extras] -docs = ["linkml", "mkdocs-material"] - [tool.poetry.scripts] gocam = "gocam.cli:cli" From 666049604f4cb898755ce3b188194bcdd147fce2 Mon Sep 17 00:00:00 2001 From: Patrick Kalita Date: Wed, 10 Jul 2024 16:13:18 -0700 Subject: [PATCH 06/11] Do tidying up of minerva_wrapper module and test * Use to PEP8 formatting * Add docstrings * Refactor out duplicated code * Use more descriptive method & variable names * Fix typing annotations * Add additional assertions to test * Remove unnecessary printing and file writing in test --- src/gocam/translation/minerva_wrapper.py | 276 +++++++++--------- .../test_translation/test_minerva_wrapper.py | 26 +- 2 files changed, 157 insertions(+), 145 deletions(-) diff --git a/src/gocam/translation/minerva_wrapper.py b/src/gocam/translation/minerva_wrapper.py index d566e69..d4fa463 100644 --- a/src/gocam/translation/minerva_wrapper.py +++ b/src/gocam/translation/minerva_wrapper.py @@ -1,16 +1,22 @@ import logging from collections import defaultdict from dataclasses import dataclass, field -from typing import Dict, Iterator, Optional, Tuple, List +from typing import Dict, Iterator, Optional, List, DefaultDict import requests import yaml -from gocam.datamodel import Model, Activity, MolecularFunctionAssociation, BiologicalProcessAssociation, \ - CellularAnatomicalEntityAssociation, CausalAssociation, Object, EvidenceItem, ProvenanceInfo - -INDEX_URL = "https://go-public.s3.amazonaws.com/files/gocam-models.json" -GOCAM_ENDPOINT = "https://api.geneontology.org/api/go-cam/" +from gocam.datamodel import ( + Model, + Activity, + MolecularFunctionAssociation, + BiologicalProcessAssociation, + CellularAnatomicalEntityAssociation, + CausalAssociation, + Object, + EvidenceItem, + ProvenanceInfo, +) ENABLED_BY = "RO:0002333" PART_OF = "BFO:0000050" @@ -29,7 +35,8 @@ def _normalize_property(prop: str) -> str: return prop.split("/")[-1] return prop -def _annotations(obj: Dict) -> Dict: + +def _annotations(obj: Dict) -> Dict[str, str]: """ Extract annotations from an object (assumes single-valued). @@ -37,7 +44,8 @@ def _annotations(obj: Dict) -> Dict: """ return {_normalize_property(a["key"]): a["value"] for a in obj["annotations"]} -def _annotations_multivalued(obj: Dict) -> Dict: + +def _annotations_multivalued(obj: Dict) -> Dict[str, List[str]]: """ Extract annotations from an object (assumes multi-valued). @@ -48,6 +56,7 @@ def _annotations_multivalued(obj: Dict) -> Dict: anns[a["key"]].append(a["value"]) return anns + MAIN_TYPES = [ "molecular_function", "biological_process", @@ -58,16 +67,6 @@ def _annotations_multivalued(obj: Dict) -> Dict: "anatomical entity", ] -TYPE_MAPPING = { - "molecular_function": "MolecularFunctionTermObject", - "biological_process": "BiologicalProcessTermObject", - "cellular_component": "CellularComponentTermObject", - "information biomacromolecule": "InformationBiomacromoleculeTermObject", - "evidence": "EvidenceTermObject", - "chemical entity": "ChemicalEntityTermObject", - "anatomical entity": "AnatomicalEntityTermObject", -} - @dataclass class MinervaWrapper: @@ -76,71 +75,93 @@ class MinervaWrapper: TODO: Implement a fact counter to ensure all facts are encountered for and nothing dropped on floor """ + session: requests.Session = field(default_factory=lambda: requests.Session()) + gocam_index_url: str = "https://go-public.s3.amazonaws.com/files/gocam-models.json" + gocam_endpoint_base: str = "https://api.geneontology.org/api/go-cam/" + def models(self) -> Iterator[Model]: + """Iterator over all GO-CAM models from the index. - def models( - self, **kwargs - ) -> Iterator[Model]: + This method fetches the list of all GO-CAM models from the index URL. For each model, the + Minerva JSON object is fetched and converted to a Model object. + + :return: Iterator over GO-CAM models + :rtype: Iterator[Model] """ - Fetch all models from the API. - :param kwargs: - :return: + for gocam_id in self.models_ids(): + yield self.fetch_model(gocam_id) + + def models_ids(self) -> Iterator[str]: + """Iterator over all GO-CAM IDs from the index. + + This method fetches the list of all GO-CAM models from the index URL and returns an + iterator over the IDs of each model. + + :return: Iterator over GO-CAM IDs + :rtype: Iterator[str] """ - models = requests.get(INDEX_URL).json() - for model in models: - if "gocam" not in model: - raise ValueError(f"Missing gocam in {model}") - gocam = model["gocam"] - yield self.object_by_id(gocam.replace("http://model.geneontology.org/", "")) - - def models_ids( - self, **kwargs - ) -> Iterator[Model]: - models = requests.get(INDEX_URL).json() - for model in models: - if "gocam" not in model: + response = self.session.get(self.gocam_index_url) + response.raise_for_status() + for model in response.json(): + gocam = model.get("gocam") + if gocam is None: raise ValueError(f"Missing gocam in {model}") - gocam = model["gocam"] yield gocam.replace("http://model.geneontology.org/", "") + def fetch_minerva_object(self, gocam_id: str) -> Dict: + """Fetch a Minerva JSON object for a given GO-CAM ID. - def internal_object_by_id(self, object_id: str) -> Optional[Dict]: - session = self.session - if not object_id: - raise ValueError(f"Missing object ID: {object_id}") - logger.info(f"Fetch object: {object_id}") - # response = session.get(MODEL_URL_TEMPLATE.format(model_id=object_id)) - local_id = object_id.replace("gocam:", "") - response = session.get(f"{GOCAM_ENDPOINT}/{local_id}") - response.raise_for_status() - obj = response.json() - return obj - - def object_by_id(self, object_id: str) -> Optional[Model]: - session = self.session - if not object_id: - raise ValueError(f"Missing object ID: {object_id}") - logger.info(f"Fetch object: {object_id}") - local_id = object_id.replace("gocam:", "") - response = session.get(f"{GOCAM_ENDPOINT}/{local_id}") + :param gocam_id: GO-CAM ID + :type gocam_id: str + :return: Minerva JSON object + :rtype: Dict + """ + if not gocam_id: + raise ValueError(f"Missing GO-CAM ID: {gocam_id}") + local_id = gocam_id.replace("gocam:", "") + url = f"{self.gocam_endpoint_base}/{local_id}" + logger.info(f"Fetch Minerva JSON from: {url}") + response = self.session.get(url) response.raise_for_status() - obj = response.json() - return self.object_from_dict(obj) + return response.json() + + def fetch_model(self, gocam_id: str) -> Model: + """Fetch a GO-CAM Model for a given GO-CAM ID. - def object_from_dict(self, obj: Dict) -> Optional[Model]: + :param gocam_id: GO-CAM ID + :type gocam_id: str + :return: GO-CAM Model + :rtype: Model + """ + minerva_object = self.fetch_minerva_object(gocam_id) + return self.minerva_object_to_model(minerva_object) + + @staticmethod + def minerva_object_to_model(obj: Dict) -> Model: + """Convert a Minerva JSON object to a GO-CAM Model. + + :param obj: Minerva JSON object + :type obj: Dict + :return: GO-CAM Model + :rtype: Model + """ id = obj["id"] logger.info(f"Processing model id: {id}") logger.debug(f"Model: {yaml.dump(obj)}") - individuals = obj["individuals"] - individual_to_type = {} # individual ID to "root" type / category, e.g Evidence, BP, .. - individual_to_term = {} - individual_to_annotations = {} - sources = set() - id2obj = {} + # Bookkeeping variables + + # individual ID to "root" type / category, e.g Evidence, BP + individual_to_type: Dict[str, Optional[str]] = {} + individual_to_term: Dict[str, str] = {} + individual_to_annotations: Dict[str, Dict] = {} + id2obj: Dict[str, Dict] = {} + activities: List[Activity] = [] + activities_by_mf_id: DefaultDict[str, List[Activity]] = defaultdict(list) + facts_by_property = defaultdict(list) def _cls(obj: Dict) -> Optional[str]: if obj.get("type", None) == "complement": @@ -153,61 +174,56 @@ def _cls(obj: Dict) -> Optional[str]: id2obj[id] = obj return id - def _evidence_from_fact(fact: Dict) -> Tuple[EvidenceItem, List[ProvenanceInfo]]: + def _evidence_from_fact(fact: Dict) -> List[EvidenceItem]: anns_mv = _annotations_multivalued(fact) evidence_inst_ids = anns_mv.get("evidence", []) - evs = [] - provs = [] + evs: List[EvidenceItem] = [] for evidence_inst_id in evidence_inst_ids: - with_obj = individual_to_annotations.get(evidence_inst_id, {}).get("with", None) + evidence_inst_annotations = individual_to_annotations.get( + evidence_inst_id, {} + ) + with_obj: Optional[str] = evidence_inst_annotations.get("with", None) if with_obj: with_objs = with_obj.split(" | ") else: with_objs = None prov = ProvenanceInfo( - contributor=individual_to_annotations.get(evidence_inst_id, {}).get("contributor", None), - date=individual_to_annotations.get(evidence_inst_id, {}).get("date", None), + contributor=evidence_inst_annotations.get("contributor", None), + date=evidence_inst_annotations.get("date", None), ) ev = EvidenceItem( term=individual_to_term.get(evidence_inst_id, None), - reference=individual_to_annotations.get(evidence_inst_id, {}).get("source", None), + reference=evidence_inst_annotations.get("source", None), with_objects=with_objs, - provenances=[prov] + provenances=[prov], ) evs.append(ev) - return evs, provs + return evs - for i in individuals: - typs = [x["label"] for x in i.get("root-type", []) if x] - typ = None + for individual in obj["individuals"]: + typs = [x["label"] for x in individual.get("root-type", []) if x] + typ: Optional[str] = None for t in typs: if t in MAIN_TYPES: typ = t break if not typ: - logger.warning(f"Could not find type for {i}") + logger.warning(f"Could not find type for {individual}") continue - individual_to_type[i["id"]] = typ - terms = [_cls(x) for x in i.get("type", [])] - terms = [x for x in terms if x] + individual_to_type[individual["id"]] = typ + terms = list(filter(None, (_cls(x) for x in individual.get("type", [])))) if len(terms) > 1: - logger.warning(f"Multiple terms for {i}: {terms}") + logger.warning(f"Multiple terms for {individual}: {terms}") if not terms: - logger.warning(f"No terms for {i}") + logger.warning(f"No terms for {individual}") continue - individual_to_term[i["id"]] = terms[0] - anns = _annotations(i) - individual_to_annotations[i["id"]] = anns - if "source" in anns: - sources.add(anns["source"]) - activities = [] - relationships = [] - gene_ids = set() - process_ids = set() - activities_by_mf_id: Dict[str, Activity] = defaultdict(list) - facts_by_property = defaultdict(list) + individual_to_term[individual["id"]] = terms[0] + anns = _annotations(individual) + individual_to_annotations[individual["id"]] = anns + for fact in obj["facts"]: facts_by_property[fact["property"]].append(fact) + enabled_by_facts = facts_by_property.get(ENABLED_BY, []) if not enabled_by_facts: raise ValueError(f"Missing {ENABLED_BY} in {facts_by_property}") @@ -221,15 +237,14 @@ def _evidence_from_fact(fact: Dict) -> Tuple[EvidenceItem, List[ProvenanceInfo]] continue gene_id = individual_to_term[o] - evs, provs = _evidence_from_fact(fact) + evs = _evidence_from_fact(fact) activity = Activity( id=s, enabled_by=gene_id, - molecular_function=MolecularFunctionAssociation(term=individual_to_term[s], - provenances=provs, - evidence=evs), + molecular_function=MolecularFunctionAssociation( + term=individual_to_term[s], evidence=evs + ), ) - gene_ids.add(gene_id) activities.append(activity) activities_by_mf_id[s].append(activity) @@ -239,10 +254,10 @@ def _evidence_from_fact(fact: Dict) -> Tuple[EvidenceItem, List[ProvenanceInfo]] logger.warning(f"Missing {o} in {individual_to_term}") continue for a in activities_by_mf_id.get(s, []): - evs, _provs = _evidence_from_fact(fact) - a.part_of = BiologicalProcessAssociation(term=individual_to_term[o], - evidence=evs) - process_ids.add(individual_to_term[o]) + evs = _evidence_from_fact(fact) + a.part_of = BiologicalProcessAssociation( + term=individual_to_term[o], evidence=evs + ) for fact in facts_by_property.get(OCCURS_IN, []): s, o = fact["subject"], fact["object"] @@ -250,48 +265,43 @@ def _evidence_from_fact(fact: Dict) -> Tuple[EvidenceItem, List[ProvenanceInfo]] logger.warning(f"Missing {o} in {individual_to_term}") continue for a in activities_by_mf_id.get(s, []): - evs, _provs = _evidence_from_fact(fact) - a.occurs_in = CellularAnatomicalEntityAssociation(term=individual_to_term[o], - evidence=evs) + evs = _evidence_from_fact(fact) + a.occurs_in = CellularAnatomicalEntityAssociation( + term=individual_to_term[o], evidence=evs + ) - for p, facts in facts_by_property.items(): + for fact_property, facts in facts_by_property.items(): for fact in facts: s, o = fact["subject"], fact["object"] - sas = activities_by_mf_id.get(s, []) - oas = activities_by_mf_id.get(o, []) - if not sas or not oas: + subject_activities = activities_by_mf_id.get(s, []) + object_activities = activities_by_mf_id.get(o, []) + + if not subject_activities or not object_activities: continue if individual_to_type.get(s, None) != "molecular_function": continue if individual_to_type.get(o, None) != "molecular_function": continue - sa = sas[0] - oa = oas[0] - evs, _provs = _evidence_from_fact(fact) + if len(subject_activities) > 1: + logger.warning(f"Multiple activities for subject: {s}") + if len(object_activities) > 1: + logger.warning(f"Multiple activities for object: {o}") + + subject_activity = subject_activities[0] + object_activity = object_activities[0] + evs = _evidence_from_fact(fact) rel = CausalAssociation( - predicate=p, - downstream_activity=oa.id, + predicate=fact_property, + downstream_activity=object_activity.id, evidence=evs, ) - if not sa.causal_associations: - sa.causal_associations = [] - sa.causal_associations.append(rel) - # raise ValueError(f"{rel} in {sa}") - relationships.append(rel) - #pmids = {a.reference for a in activities if "reference" in a} - #pmids = [p for p in pmids if p and p.startswith("PMID")] - #pubs = self.pubmed_wrapper.objects_by_ids(pmids) - #pubs_by_id = {p["id"]: p for p in pubs} - #for a in activities: - # if "reference" in a: - # ref = a["reference"] - # if ref in pubs_by_id: - # a["reference_title"] = pubs_by_id[ref]["title"] + if not subject_activity.causal_associations: + subject_activity.causal_associations = [] + subject_activity.causal_associations.append(rel) + annotations = _annotations(obj) annotations_mv = _annotations_multivalued(obj) - objs = [ - Object(id=obj["id"], label=obj["label"]) for obj in id2obj.values() - ] + objs = [Object(id=obj["id"], label=obj["label"]) for obj in id2obj.values()] cam = Model( id=id, title=annotations["title"], diff --git a/tests/test_translation/test_minerva_wrapper.py b/tests/test_translation/test_minerva_wrapper.py index e3987aa..c3fd6ea 100644 --- a/tests/test_translation/test_minerva_wrapper.py +++ b/tests/test_translation/test_minerva_wrapper.py @@ -1,10 +1,11 @@ import json import pytest -import yaml from gocam.translation.minerva_wrapper import MinervaWrapper -from tests import OUTPUT_DIR, INPUT_DIR +from tests import INPUT_DIR + +ENABLED_BY = "RO:0002333" # mark as integration test @@ -12,20 +13,21 @@ @pytest.mark.parametrize("model_local_id", ["663d668500002178"]) def test_api(model_local_id): mw = MinervaWrapper() - d = mw.internal_object_by_id(model_local_id) - OUTPUT_DIR.mkdir(parents=True, exist_ok=True) - with(open(OUTPUT_DIR / "t.json", "w")) as f: - json.dump(d, f) - model = mw.object_by_id(model_local_id) + model = mw.fetch_model(model_local_id) assert model is not None @pytest.mark.parametrize("base_name", ["minerva-example"]) def test_object(base_name): mw = MinervaWrapper() - d = json.load(open(INPUT_DIR / f"{base_name}.json", "r")) - model = mw.object_from_dict(d) - assert model is not None - md = model.model_dump(exclude_unset=True) - print(yaml.dump(md, sort_keys=False)) + with open(INPUT_DIR / f"{base_name}.json", "r") as f: + minerva_object = json.load(f) + model = mw.minerva_object_to_model(minerva_object) + # TODO: add more sanity checks here + assert model is not None + assert model.id == minerva_object["id"] + enabled_by_facts = [ + fact for fact in minerva_object["facts"] if fact["property"] == ENABLED_BY + ] + assert len(model.activities) == len(enabled_by_facts) From dc5c68b11c505ee16c3ec4fed69ae27ac98ff902 Mon Sep 17 00:00:00 2001 From: Patrick Kalita Date: Wed, 10 Jul 2024 17:08:51 -0700 Subject: [PATCH 07/11] Do tidying up of cli module and add corresponding test * Use to PEP8 formatting * Add docstrings * Remove unused code * Add test for CLI with new dependency for HTTP request mocking * Add additional Minerva object sample for testing --- poetry.lock | 22 +++++-- pyproject.toml | 1 + src/gocam/cli.py | 57 ++++++++----------- src/gocam/translation/minerva_wrapper.py | 2 +- tests/input/minerva-5b91dbd100002057.json | 1 + ...ple.json => minerva-663d668500002178.json} | 0 tests/test_cli.py | 39 +++++++++++++ .../test_translation/test_minerva_wrapper.py | 2 +- 8 files changed, 84 insertions(+), 40 deletions(-) create mode 100644 tests/input/minerva-5b91dbd100002057.json rename tests/input/{minerva-example.json => minerva-663d668500002178.json} (100%) create mode 100644 tests/test_cli.py diff --git a/poetry.lock b/poetry.lock index 1efb12d..df78108 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1866,6 +1866,23 @@ urllib3 = ">=1.21.1,<3" socks = ["PySocks (>=1.5.6,!=1.5.7)"] use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] +[[package]] +name = "requests-mock" +version = "1.12.1" +description = "Mock out responses from the requests package" +optional = false +python-versions = ">=3.5" +files = [ + {file = "requests-mock-1.12.1.tar.gz", hash = "sha256:e9e12e333b525156e82a3c852f22016b9158220d2f47454de9cae8a77d371401"}, + {file = "requests_mock-1.12.1-py2.py3-none-any.whl", hash = "sha256:b1e37054004cdd5e56c84454cc7df12b25f90f382159087f4b6915aaeef39563"}, +] + +[package.dependencies] +requests = ">=2.22,<3" + +[package.extras] +fixture = ["fixtures"] + [[package]] name = "requests-oauthlib" version = "2.0.0" @@ -2567,10 +2584,7 @@ files = [ doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] -[extras] -docs = [] - [metadata] lock-version = "2.0" python-versions = "^3.9" -content-hash = "a088f63831c1e0fc38fbf36fd52e8622dbf6e9e91ba868ee424c4f5b457bbca1" +content-hash = "3fa1ae4c5d3c4df30a24e9bdbb3f09da3bd1e93ea3a868aaf11cf63e0d4b06c0" diff --git a/pyproject.toml b/pyproject.toml index 3555ef8..e466934 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,6 +23,7 @@ schemasheets = "^0.1.14" [tool.poetry.group.test.dependencies] pytest = "^8.2.2" +requests-mock = "^1.12.1" [tool.poetry-dynamic-versioning] enable = true diff --git a/src/gocam/cli.py b/src/gocam/cli.py index f707f37..5b4fc02 100644 --- a/src/gocam/cli.py +++ b/src/gocam/cli.py @@ -1,34 +1,12 @@ import json import logging import sys -import warnings import click import yaml from gocam.translation import MinervaWrapper -index_type_option = click.option( - "--index-type", - "-t", - default="simple", - show_default=True, - help="Type of index to create. Values: simple, llm", -) - -logger = logging.getLogger(__name__) - -warnings.filterwarnings("ignore", module="duckdb_engine") - -def get_wrapper(): - return MinervaWrapper() - - -format_choice = click.Choice(["json", "yaml", "tsv"]) - - -include_internal_option = click.option("--include-internal/--no-include-internal", default=False, show_default=True) - @click.group() @click.option("-v", "--verbose", count=True) @@ -39,15 +17,17 @@ def get_wrapper(): show_default=True, help="If set then show full stacktrace on error", ) -@click.pass_context -def cli(ctx, verbose: int, quiet: bool, stacktrace: bool): - """A CLI for interacting with the linkml-store.""" +def cli(verbose: int, quiet: bool, stacktrace: bool): + """A CLI for interacting with GO-CAMs.""" if not stacktrace: sys.tracebacklimit = 0 + logger = logging.getLogger() # Set handler for the root logger to output to the console console_handler = logging.StreamHandler() - console_handler.setFormatter(logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")) + console_handler.setFormatter( + logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") + ) # Clear existing handlers to avoid duplicate messages if function runs multiple times logger.handlers = [] @@ -65,22 +45,31 @@ def cli(ctx, verbose: int, quiet: bool, stacktrace: bool): @cli.command() -@click.option("--format", "-f", type=format_choice, help="Input format") +@click.option( + "--format", + "-f", + type=click.Choice(["json", "yaml"]), + default="yaml", + show_default=True, + help="Input format", +) @click.argument("model_ids", nargs=-1) def fetch(model_ids, format): - wrapper = get_wrapper() + """Fetch GO-CAM models.""" + wrapper = MinervaWrapper() + if not model_ids: model_ids = wrapper.models_ids() + for model_id in model_ids: - model = wrapper.object_by_id(model_id) + model = wrapper.fetch_model(model_id) model_dict = model.model_dump(exclude_none=True, exclude_unset=True) - if format is None: - format = "yaml" + if format == "json": - print(json.dumps(model_dict, indent=2)) + click.echo(json.dumps(model_dict, indent=2)) elif format == "yaml": - print("---") - print(yaml.dump(model_dict, sort_keys=False)) + click.echo("---") + click.echo(yaml.dump(model_dict, sort_keys=False)) else: click.echo(model.model_dump()) diff --git a/src/gocam/translation/minerva_wrapper.py b/src/gocam/translation/minerva_wrapper.py index d4fa463..4e682a1 100644 --- a/src/gocam/translation/minerva_wrapper.py +++ b/src/gocam/translation/minerva_wrapper.py @@ -122,7 +122,7 @@ def fetch_minerva_object(self, gocam_id: str) -> Dict: if not gocam_id: raise ValueError(f"Missing GO-CAM ID: {gocam_id}") local_id = gocam_id.replace("gocam:", "") - url = f"{self.gocam_endpoint_base}/{local_id}" + url = f"{self.gocam_endpoint_base}{local_id}" logger.info(f"Fetch Minerva JSON from: {url}") response = self.session.get(url) response.raise_for_status() diff --git a/tests/input/minerva-5b91dbd100002057.json b/tests/input/minerva-5b91dbd100002057.json new file mode 100644 index 0000000..2437c57 --- /dev/null +++ b/tests/input/minerva-5b91dbd100002057.json @@ -0,0 +1 @@ +{"id":"gomodel:5b91dbd100002057","individuals":[{"id":"gomodel:5b91dbd100002057/5b91dbd100002058","type":[{"type":"class","id":"WB:WBGene00010700","label":"nipi-3 Cele"}],"root-type":[{"type":"class","id":"CHEBI:33695","label":"information biomacromolecule"},{"type":"class","id":"CHEBI:24431","label":"chemical entity"}],"annotations":[{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2018-12-18"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002059","type":[{"type":"class","id":"GO:0031434","label":"mitogen-activated protein kinase kinase binding"}],"root-type":[{"type":"class","id":"GO:0003674","label":"molecular_function"},{"type":"class","id":"obo:go/extensions/reacto.owl#molecular_event","label":"Molecular Event"}],"annotations":[{"key":"hint-layout-y","value":"146"},{"key":"date","value":"2019-05-17"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"hint-layout-x","value":"345"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002061","type":[{"type":"class","id":"ECO:0000318","label":"biological aspect of ancestor evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"source","value":"PAINT_REF:22961"},{"key":"date","value":"2018-12-18"},{"key":"with","value":"PANTHER:PTN001121144"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002063","type":[{"type":"class","id":"WB:WBGene00006599","label":"tpa-1 Cele"}],"root-type":[{"type":"class","id":"CHEBI:33695","label":"information biomacromolecule"},{"type":"class","id":"CHEBI:24431","label":"chemical entity"}],"annotations":[{"key":"date","value":"2018-12-18"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002064","type":[{"type":"class","id":"GO:0031435","label":"mitogen-activated protein kinase kinase kinase binding"}],"root-type":[{"type":"class","id":"GO:0003674","label":"molecular_function"},{"type":"class","id":"obo:go/extensions/reacto.owl#molecular_event","label":"Molecular Event"}],"annotations":[{"key":"contributor","value":"https://orcid.org/0000-0002-1706-4196"},{"key":"hint-layout-y","value":"1606.25"},{"key":"hint-layout-x","value":"1059.375"},{"key":"date","value":"2019-10-15"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002066","type":[{"type":"class","id":"ECO:0000353","label":"physical interaction evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"source","value":"PMID:23072806"},{"key":"with","value":"WB:WBGene00003374"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2018-12-18"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002073","type":[{"type":"class","id":"WB:WBGene00004034","label":"pkc-3 Cele"}],"root-type":[{"type":"class","id":"CHEBI:33695","label":"information biomacromolecule"},{"type":"class","id":"CHEBI:24431","label":"chemical entity"}],"annotations":[{"key":"date","value":"2018-12-18"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002074","type":[{"type":"class","id":"GO:0004674","label":"protein serine/threonine kinase activity"}],"root-type":[{"type":"class","id":"GO:0003674","label":"molecular_function"},{"type":"class","id":"obo:go/extensions/reacto.owl#molecular_event","label":"Molecular Event"}],"annotations":[{"key":"hint-layout-x","value":"1201"},{"key":"date","value":"2019-05-17"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"hint-layout-y","value":"437"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002076","type":[{"type":"class","id":"ECO:0000501","label":"evidence used in automatic assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"with","value":"UniProtKB-KW:KW-0723"},{"key":"date","value":"2018-12-18"},{"key":"source","value":"GO_REF:0000037"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002077","type":[{"type":"class","id":"ECO:0000314","label":"direct assay evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"source","value":"PMID:11134025"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2018-12-18"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002078","type":[{"type":"class","id":"ECO:0000501","label":"evidence used in automatic assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"source","value":"GO_REF:0000002"},{"key":"date","value":"2018-12-18"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"with","value":"InterPro:IPR000961"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002079","type":[{"type":"class","id":"ECO:0000315","label":"mutant phenotype evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"source","value":"PMID:16459299"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"date","value":"2018-12-18"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002080","type":[{"type":"class","id":"ECO:0000314","label":"direct assay evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"source","value":"PMID:21857670"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2018-12-18"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002081","type":[{"type":"class","id":"ECO:0000318","label":"biological aspect of ancestor evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"source","value":"PAINT_REF:24356"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"with","value":"PANTHER:PTN000683254"},{"key":"date","value":"2018-12-18"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002083","type":[{"type":"class","id":"WB:WBGene00006575","label":"tir-1 Cele"}],"root-type":[{"type":"class","id":"CHEBI:33695","label":"information biomacromolecule"},{"type":"class","id":"CHEBI:24431","label":"chemical entity"}],"annotations":[{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2018-12-18"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002084","type":[{"type":"class","id":"GO:0035591","label":"signaling adaptor activity"}],"root-type":[{"type":"class","id":"GO:0003674","label":"molecular_function"},{"type":"class","id":"obo:go/extensions/reacto.owl#molecular_event","label":"Molecular Event"}],"annotations":[{"key":"date","value":"2019-05-17"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"hint-layout-y","value":"177"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"hint-layout-x","value":"854"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002088","type":[{"type":"class","id":"WB:WBGene00003822","label":"nsy-1 Cele"}],"root-type":[{"type":"class","id":"CHEBI:33695","label":"information biomacromolecule"},{"type":"class","id":"CHEBI:24431","label":"chemical entity"}],"annotations":[{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"date","value":"2018-12-18"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002089","type":[{"type":"class","id":"GO:0004709","label":"MAP kinase kinase kinase activity"}],"root-type":[{"type":"class","id":"GO:0003674","label":"molecular_function"},{"type":"class","id":"obo:go/extensions/reacto.owl#molecular_event","label":"Molecular Event"}],"annotations":[{"key":"hint-layout-x","value":"848.75"},{"key":"hint-layout-y","value":"336"},{"key":"date","value":"2019-01-15"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002090","type":[{"type":"class","id":"ECO:0000501","label":"evidence used in automatic assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"date","value":"2018-12-18"},{"key":"source","value":"GO_REF:0000003"},{"key":"with","value":"EC:2.7.11.25"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002091","type":[{"type":"class","id":"ECO:0000314","label":"direct assay evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"source","value":"PMID:11751572"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2018-12-18"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002092","type":[{"type":"class","id":"WB:WBGene00004758","label":"sek-1 Cele"}],"root-type":[{"type":"class","id":"CHEBI:33695","label":"information biomacromolecule"},{"type":"class","id":"CHEBI:24431","label":"chemical entity"}],"annotations":[{"key":"date","value":"2018-12-18"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002093","type":[{"type":"class","id":"GO:0004708","label":"MAP kinase kinase activity"}],"root-type":[{"type":"class","id":"GO:0003674","label":"molecular_function"},{"type":"class","id":"obo:go/extensions/reacto.owl#molecular_event","label":"Molecular Event"}],"annotations":[{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"hint-layout-y","value":"493"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"hint-layout-x","value":"847.5"},{"key":"date","value":"2019-01-15"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002094","type":[{"type":"class","id":"ECO:0000314","label":"direct assay evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2018-12-18"},{"key":"source","value":"PMID:11751572"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002095","type":[{"type":"class","id":"ECO:0000318","label":"biological aspect of ancestor evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"with","value":"PANTHER:PTN000684494"},{"key":"source","value":"PAINT_REF:24361"},{"key":"date","value":"2018-12-18"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002096","type":[{"type":"class","id":"WB:WBGene00004055","label":"pmk-1 Cele"}],"root-type":[{"type":"class","id":"CHEBI:33695","label":"information biomacromolecule"},{"type":"class","id":"CHEBI:24431","label":"chemical entity"}],"annotations":[{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2018-12-18"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002097","type":[{"type":"class","id":"GO:0004707","label":"MAP kinase activity"}],"root-type":[{"type":"class","id":"GO:0003674","label":"molecular_function"},{"type":"class","id":"obo:go/extensions/reacto.owl#molecular_event","label":"Molecular Event"}],"annotations":[{"key":"date","value":"2019-01-15"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"hint-layout-y","value":"657.25"},{"key":"hint-layout-x","value":"853.75"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002098","type":[{"type":"class","id":"GO:0061760","label":"antifungal innate immune response"}],"root-type":[{"type":"class","id":"GO:0008150","label":"biological_process"}],"annotations":[{"key":"hint-layout-x","value":"1612"},{"key":"contributor","value":"https://orcid.org/0000-0002-1706-4196"},{"key":"hint-layout-y","value":"1143"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2021-07-26"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002099","type":[{"type":"class","id":"ECO:0000314","label":"direct assay evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"date","value":"2018-12-18"},{"key":"source","value":"PMID:16166371"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002100","type":[{"type":"class","id":"ECO:0000501","label":"evidence used in automatic assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"source","value":"GO_REF:0000003"},{"key":"with","value":"EC:2.7.11.24"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2018-12-18"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002101","type":[{"type":"class","id":"ECO:0000314","label":"direct assay evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"source","value":"PMID:11703092"},{"key":"date","value":"2018-12-18"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002102","type":[{"type":"class","id":"ECO:0000501","label":"evidence used in automatic assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"with","value":"InterPro:IPR008352"},{"key":"source","value":"GO_REF:0000002"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2018-12-18"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002103","type":[{"type":"class","id":"ECO:0000318","label":"biological aspect of ancestor evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"with","value":"PANTHER:PTN002372889"},{"key":"source","value":"PAINT_REF:24055"},{"key":"date","value":"2018-12-18"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002104","type":[{"type":"class","id":"ECO:0000318","label":"biological aspect of ancestor evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"with","value":"PANTHER:PTN001172432"},{"key":"date","value":"2018-12-18"},{"key":"source","value":"PAINT_REF:24055"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002105","type":[{"type":"class","id":"ECO:0000315","label":"mutant phenotype evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"source","value":"PMID:18394898"},{"key":"date","value":"2018-12-18"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002110","type":[{"type":"class","id":"WB:WBGene00001674","label":"gpa-12 Cele"}],"root-type":[{"type":"class","id":"CHEBI:33695","label":"information biomacromolecule"},{"type":"class","id":"CHEBI:24431","label":"chemical entity"}],"annotations":[{"key":"date","value":"2018-12-18"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002111","type":[{"type":"class","id":"GO:0031683","label":"G-protein beta/gamma-subunit complex binding"}],"root-type":[{"type":"class","id":"GO:0003674","label":"molecular_function"},{"type":"class","id":"obo:go/extensions/reacto.owl#molecular_event","label":"Molecular Event"}],"annotations":[{"key":"hint-layout-x","value":"1738"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"hint-layout-y","value":"221"},{"key":"date","value":"2019-05-17"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002113","type":[{"type":"class","id":"ECO:0000501","label":"evidence used in automatic assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"with","value":"InterPro:IPR000469"},{"key":"source","value":"GO_REF:0000002"},{"key":"date","value":"2018-12-18"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002114","type":[{"type":"class","id":"ECO:0000318","label":"biological aspect of ancestor evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"source","value":"PAINT_REF:10218"},{"key":"with","value":"PANTHER:PTN000026392"},{"key":"date","value":"2018-12-18"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002116","type":[{"type":"class","id":"WB:WBGene00010556","label":"rack-1 Cele"}],"root-type":[{"type":"class","id":"CHEBI:33695","label":"information biomacromolecule"},{"type":"class","id":"CHEBI:24431","label":"chemical entity"}],"annotations":[{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2018-12-18"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002117","type":[{"type":"class","id":"GO:0005080","label":"protein kinase C binding"}],"root-type":[{"type":"class","id":"GO:0003674","label":"molecular_function"},{"type":"class","id":"obo:go/extensions/reacto.owl#molecular_event","label":"Molecular Event"}],"annotations":[{"key":"hint-layout-y","value":"295"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"hint-layout-x","value":"1218"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"date","value":"2019-05-17"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002119","type":[{"type":"class","id":"ECO:0000318","label":"biological aspect of ancestor evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2018-12-18"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"source","value":"PAINT_REF:19868"},{"key":"with","value":"PANTHER:PTN000458645"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002121","type":[{"type":"class","id":"WB:WBGene00004038","label":"plc-3 Cele"}],"root-type":[{"type":"class","id":"CHEBI:33695","label":"information biomacromolecule"},{"type":"class","id":"CHEBI:24431","label":"chemical entity"}],"annotations":[{"key":"date","value":"2018-12-18"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002122","type":[{"type":"class","id":"GO:0004435","label":"phosphatidylinositol phospholipase C activity"}],"root-type":[{"type":"class","id":"GO:0003674","label":"molecular_function"},{"type":"class","id":"obo:go/extensions/reacto.owl#molecular_event","label":"Molecular Event"}],"annotations":[{"key":"hint-layout-x","value":"1402.25"},{"key":"hint-layout-y","value":"223.5"},{"key":"date","value":"2019-05-21"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002123","type":[{"type":"class","id":"ECO:0000501","label":"evidence used in automatic assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"source","value":"GO_REF:0000003"},{"key":"date","value":"2018-12-18"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"with","value":"EC:3.1.4.11"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002124","type":[{"type":"class","id":"ECO:0000501","label":"evidence used in automatic assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"source","value":"GO_REF:0000002"},{"key":"date","value":"2018-12-18"},{"key":"with","value":"InterPro:IPR001711"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002130","type":[{"type":"class","id":"ECO:0000315","label":"mutant phenotype evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"source","value":"PMID:19380113"},{"key":"date","value":"2018-12-19"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002131","type":[{"type":"class","id":"WB:WBGene00001177","label":"egl-8 Cele"}],"root-type":[{"type":"class","id":"CHEBI:33695","label":"information biomacromolecule"},{"type":"class","id":"CHEBI:24431","label":"chemical entity"}],"annotations":[{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"date","value":"2018-12-19"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002132","type":[{"type":"class","id":"GO:0004435","label":"phosphatidylinositol phospholipase C activity"}],"root-type":[{"type":"class","id":"GO:0003674","label":"molecular_function"},{"type":"class","id":"obo:go/extensions/reacto.owl#molecular_event","label":"Molecular Event"}],"annotations":[{"key":"date","value":"2019-10-15"},{"key":"contributor","value":"https://orcid.org/0000-0002-1706-4196"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"hint-layout-x","value":"862.5"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"hint-layout-y","value":"1912.5"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002133","type":[{"type":"class","id":"ECO:0000501","label":"evidence used in automatic assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"date","value":"2018-12-19"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"with","value":"EC:3.1.4.11"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"source","value":"GO_REF:0000003"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002134","type":[{"type":"class","id":"ECO:0000501","label":"evidence used in automatic assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"date","value":"2018-12-19"},{"key":"source","value":"GO_REF:0000002"},{"key":"with","value":"InterPro:IPR001711"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002146","type":[{"type":"class","id":"ECO:0000270","label":"expression pattern evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"source","value":"PMID:19380113"},{"key":"date","value":"2018-12-19"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002219","type":[{"type":"class","id":"ECO:0000270","label":"expression pattern evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"source","value":"PMID:19380113 "},{"key":"date","value":"2019-01-02"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002227","type":[{"type":"class","id":"ECO:0000315","label":"mutant phenotype evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"date","value":"2019-01-03"},{"key":"source","value":"PMID:19380113 "},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002228","type":[{"type":"class","id":"ECO:0000315","label":"mutant phenotype evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"source","value":"PMID:19380113"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2019-01-03"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002229","type":[{"type":"class","id":"ECO:0000270","label":"expression pattern evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"source","value":"PMID:19380113"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2019-01-03"}]},{"id":"gomodel:5b91dbd100002057/5b91dbd100002230","type":[{"type":"class","id":"ECO:0000270","label":"expression pattern evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"date","value":"2019-01-03"},{"key":"source","value":"PMID:19380113"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"}]},{"id":"gomodel:5b91dbd100002057/5c4605cc00003188","type":[{"type":"class","id":"ECO:0000315","label":"mutant phenotype evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"source","value":"PMID:19380113"},{"key":"date","value":"2019-05-07"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"id":"gomodel:5b91dbd100002057/5c4605cc00004174","type":[{"type":"class","id":"GO:0003674","label":"molecular_function"}],"root-type":[{"type":"class","id":"GO:0003674","label":"molecular_function"},{"type":"class","id":"obo:go/extensions/reacto.owl#molecular_event","label":"Molecular Event"}],"annotations":[{"key":"contributor","value":"https://orcid.org/0000-0002-1706-4196"},{"key":"date","value":"2019-10-15"},{"key":"hint-layout-x","value":"1953"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"hint-layout-y","value":"674"}]},{"id":"gomodel:5b91dbd100002057/5c4605cc00004176","type":[{"type":"class","id":"ECO:0000315","label":"mutant phenotype evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"source","value":"PMID:19380113"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2019-05-17"}]},{"id":"gomodel:5b91dbd100002057/5c4605cc00004177","type":[{"type":"class","id":"ECO:0000315","label":"mutant phenotype evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"source","value":"PMID:18394898"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"date","value":"2019-05-17"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"}]},{"id":"gomodel:5b91dbd100002057/5c4605cc00004178","type":[{"type":"class","id":"ECO:0000501","label":"evidence used in automatic assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"date","value":"2019-05-17"},{"key":"with","value":"UniProtKB-KW:KW-0295"},{"key":"source","value":"GO_REF:0000037"}]},{"id":"gomodel:5b91dbd100002057/5c4605cc00004179","type":[{"type":"class","id":"ECO:0000314","label":"direct assay evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"date","value":"2019-05-17"},{"key":"source","value":"PMID:15625192"}]},{"id":"gomodel:5b91dbd100002057/5c4605cc00004180","type":[{"type":"class","id":"ECO:0000315","label":"mutant phenotype evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"source","value":"PMID:19380113"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2019-05-17"}]},{"id":"gomodel:5b91dbd100002057/5c4605cc00004181","type":[{"type":"class","id":"ECO:0000315","label":"mutant phenotype evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"source","value":"PMID:18394898"},{"key":"date","value":"2019-05-17"}]},{"id":"gomodel:5b91dbd100002057/5c4605cc00004182","type":[{"type":"class","id":"ECO:0000315","label":"mutant phenotype evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"source","value":"PMID:19380113"},{"key":"date","value":"2019-05-17"}]},{"id":"gomodel:5b91dbd100002057/5c4605cc00004183","type":[{"type":"class","id":"ECO:0000315","label":"mutant phenotype evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"source","value":"PMID:19380113"},{"key":"date","value":"2019-05-17"}]},{"id":"gomodel:5b91dbd100002057/5c4605cc00004276","type":[{"type":"class","id":"ECO:0000315","label":"mutant phenotype evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"source","value":"PMID:15123841"},{"key":"date","value":"2019-05-21"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"}]},{"id":"gomodel:5b91dbd100002057/5c4605cc00004277","type":[{"type":"class","id":"ECO:0000315","label":"mutant phenotype evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"date","value":"2019-05-21"},{"key":"source","value":"PMID:12142542"}]},{"id":"gomodel:5b91dbd100002057/5c4605cc00004278","type":[{"type":"class","id":"ECO:0000315","label":"mutant phenotype evidence used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"date","value":"2019-05-21"},{"key":"source","value":"PMID:12142542"}]},{"id":"gomodel:5b91dbd100002057/5c4605cc00004317","type":[{"type":"class","id":"GO:0005737","label":"cytoplasm"}],"root-type":[{"type":"class","id":"UBERON:0001062","label":"anatomical entity"},{"type":"class","id":"GO:0110165","label":"cellular anatomical entity"},{"type":"class","id":"GO:0005575","label":"cellular_component"},{"type":"class","id":"CARO:0000000","label":"anatomical entity"}],"annotations":[{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"hint-layout-y","value":"402"},{"key":"hint-layout-x","value":"647.5"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"date","value":"2019-05-21"}]},{"id":"gomodel:5b91dbd100002057/5da4ff8500000001","type":[{"type":"class","id":"WB:WBGene00003767","label":"nlp-29 Cele"}],"root-type":[{"type":"class","id":"CHEBI:33695","label":"information biomacromolecule"},{"type":"class","id":"CHEBI:24431","label":"chemical entity"}],"annotations":[{"key":"contributor","value":"https://orcid.org/0000-0002-1706-4196"},{"key":"date","value":"2019-10-15"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"id":"gomodel:5b91dbd100002057/5da4ff8500000002","type":[{"type":"class","id":"ECO:0000307","label":"no evidence data found used in manual assertion"}],"root-type":[{"type":"class","id":"ECO:0000000","label":"evidence"}],"annotations":[{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"source","value":"GO_REF:0000015"},{"key":"contributor","value":"https://orcid.org/0000-0002-1706-4196"},{"key":"date","value":"2019-10-15"}]},{"id":"gomodel:5b91dbd100002057/60fa1b5f00000052","type":[{"type":"class","id":"WBbt:0005733","label":"hypodermis"}],"root-type":[{"type":"class","id":"UBERON:0001062","label":"anatomical entity"},{"type":"class","id":"CARO:0000000","label":"anatomical entity"}],"annotations":[{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"date","value":"2021-07-26"},{"key":"contributor","value":"https://orcid.org/0000-0002-1706-4196"}]}],"facts":[{"subject":"gomodel:5b91dbd100002057/5b91dbd100002059","property":"RO:0002304","property-label":"RO:0002304","object":"gomodel:5b91dbd100002057/5b91dbd100002064","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5c4605cc00003188","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2019-05-07"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002097","property":"RO:0002304","property-label":"RO:0002304","object":"gomodel:5b91dbd100002057/5c4605cc00004174","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5c4605cc00004177","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2019-05-17"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002111","property":"RO:0002304","property-label":"RO:0002304","object":"gomodel:5b91dbd100002057/5b91dbd100002064","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002130","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2018-12-19"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002059","property":"BFO:0000050","property-label":"BFO:0000050","object":"gomodel:5b91dbd100002057/5b91dbd100002098","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5c4605cc00004181","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2019-05-17"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002084","property":"RO:0002629","property-label":"RO:0002629","object":"gomodel:5b91dbd100002057/5b91dbd100002089","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5c4605cc00004276","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2019-05-21"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5c4605cc00004174","property":"BFO:0000050","property-label":"BFO:0000050","object":"gomodel:5b91dbd100002057/5b91dbd100002098","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5c4605cc00004178","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2019-05-17"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002089","property":"RO:0002629","property-label":"RO:0002629","object":"gomodel:5b91dbd100002057/5b91dbd100002093","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5c4605cc00004277","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2019-05-21"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002074","property":"RO:0002333","property-label":"RO:0002333","object":"gomodel:5b91dbd100002057/5b91dbd100002073","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002076","value-type":"IRI"},{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002077","value-type":"IRI"},{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002078","value-type":"IRI"},{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002079","value-type":"IRI"},{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002080","value-type":"IRI"},{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002081","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2018-12-18"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002117","property":"BFO:0000050","property-label":"BFO:0000050","object":"gomodel:5b91dbd100002057/5b91dbd100002098","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5c4605cc00004180","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2019-05-17"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002093","property":"RO:0002629","property-label":"RO:0002629","object":"gomodel:5b91dbd100002057/5b91dbd100002097","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5c4605cc00004278","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2019-05-21"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002097","property":"BFO:0000050","property-label":"BFO:0000050","object":"gomodel:5b91dbd100002057/5b91dbd100002098","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002105","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2018-12-18"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002111","property":"RO:0002304","property-label":"RO:0002304","object":"gomodel:5b91dbd100002057/5b91dbd100002132","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002230","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2019-01-03"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002084","property":"RO:0002333","property-label":"RO:0002333","object":"gomodel:5b91dbd100002057/5b91dbd100002083","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5c4605cc00004179","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2019-05-17"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002117","property":"RO:0002304","property-label":"RO:0002304","object":"gomodel:5b91dbd100002057/5b91dbd100002064","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002219","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2019-01-02"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002132","property":"RO:0002333","property-label":"RO:0002333","object":"gomodel:5b91dbd100002057/5b91dbd100002131","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002133","value-type":"IRI"},{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002134","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2018-12-19"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002089","property":"RO:0002333","property-label":"RO:0002333","object":"gomodel:5b91dbd100002057/5b91dbd100002088","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002090","value-type":"IRI"},{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002091","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2018-12-18"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002074","property":"RO:0002304","property-label":"RO:0002304","object":"gomodel:5b91dbd100002057/5c4605cc00004174","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5c4605cc00004176","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2019-05-17"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002111","property":"RO:0002333","property-label":"RO:0002333","object":"gomodel:5b91dbd100002057/5b91dbd100002110","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002113","value-type":"IRI"},{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002114","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2018-12-18"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002097","property":"RO:0002333","property-label":"RO:0002333","object":"gomodel:5b91dbd100002057/5b91dbd100002096","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002099","value-type":"IRI"},{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002100","value-type":"IRI"},{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002101","value-type":"IRI"},{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002102","value-type":"IRI"},{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002103","value-type":"IRI"},{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002104","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2018-12-18"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002093","property":"RO:0002333","property-label":"RO:0002333","object":"gomodel:5b91dbd100002057/5b91dbd100002092","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002094","value-type":"IRI"},{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002095","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2018-12-18"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002111","property":"RO:0002304","property-label":"RO:0002304","object":"gomodel:5b91dbd100002057/5b91dbd100002122","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002229","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2019-01-03"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002132","property":"RO:0002304","property-label":"RO:0002304","object":"gomodel:5b91dbd100002057/5b91dbd100002064","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002228","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2019-01-03"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002064","property":"RO:0002304","property-label":"RO:0002304","object":"gomodel:5b91dbd100002057/5b91dbd100002084","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002146","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2018-12-19"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002074","property":"BFO:0000050","property-label":"BFO:0000050","object":"gomodel:5b91dbd100002057/5b91dbd100002098","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5c4605cc00004182","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2019-05-17"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002122","property":"RO:0002333","property-label":"RO:0002333","object":"gomodel:5b91dbd100002057/5b91dbd100002121","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002123","value-type":"IRI"},{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002124","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2018-12-18"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002111","property":"BFO:0000050","property-label":"BFO:0000050","object":"gomodel:5b91dbd100002057/5b91dbd100002098","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5c4605cc00004183","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2019-05-17"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002098","property":"BFO:0000066","property-label":"BFO:0000066","object":"gomodel:5b91dbd100002057/60fa1b5f00000052","annotations":[{"key":"contributor","value":"https://orcid.org/0000-0002-1706-4196"},{"key":"date","value":"2021-07-26"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002064","property":"RO:0002333","property-label":"RO:0002333","object":"gomodel:5b91dbd100002057/5b91dbd100002063","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002066","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2018-12-18"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002059","property":"RO:0002333","property-label":"RO:0002333","object":"gomodel:5b91dbd100002057/5b91dbd100002058","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002061","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2018-12-18"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002117","property":"RO:0002333","property-label":"RO:0002333","object":"gomodel:5b91dbd100002057/5b91dbd100002116","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002119","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2018-12-18"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5c4605cc00004174","property":"RO:0002333","property-label":"RO:0002333","object":"gomodel:5b91dbd100002057/5da4ff8500000001","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5da4ff8500000002","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-1706-4196"},{"key":"date","value":"2019-10-15"},{"key":"providedBy","value":"http://www.wormbase.org"}]},{"subject":"gomodel:5b91dbd100002057/5b91dbd100002122","property":"RO:0002304","property-label":"RO:0002304","object":"gomodel:5b91dbd100002057/5b91dbd100002064","annotations":[{"key":"evidence","value":"gomodel:5b91dbd100002057/5b91dbd100002227","value-type":"IRI"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2019-01-03"},{"key":"providedBy","value":"http://www.wormbase.org"}]}],"annotations":[{"key":"state","value":"production"},{"key":"contributor","value":"https://orcid.org/0000-0002-1706-4196"},{"key":"contributor","value":"https://orcid.org/0000-0002-3013-9906"},{"key":"date","value":"2021-07-26"},{"key":"title","value":"Antifungal innate immune response in the hypodermis via MAPK cascade (C. elegans)"},{"key":"providedBy","value":"http://www.wormbase.org"},{"key":"http://www.geneontology.org/formats/oboInOwl#id","value":"gomodel:5b91dbd100002057"},{"key":"https://w3id.org/biolink/vocab/in_taxon","value":"NCBITaxon:6239","value-type":"IRI"}]} \ No newline at end of file diff --git a/tests/input/minerva-example.json b/tests/input/minerva-663d668500002178.json similarity index 100% rename from tests/input/minerva-example.json rename to tests/input/minerva-663d668500002178.json diff --git a/tests/test_cli.py b/tests/test_cli.py new file mode 100644 index 0000000..c0c3d24 --- /dev/null +++ b/tests/test_cli.py @@ -0,0 +1,39 @@ +import json + +import pytest +import yaml +from click.testing import CliRunner + +from gocam.cli import fetch +from tests import INPUT_DIR + + +@pytest.fixture +def runner(): + return CliRunner() + + +@pytest.fixture +def api_mock(requests_mock): + gocam_id = "5b91dbd100002057" + with open(INPUT_DIR / f"minerva-{gocam_id}.json", "r") as f: + minerva_object = json.load(f) + requests_mock.get( + f"https://api.geneontology.org/api/go-cam/{gocam_id}", json=minerva_object + ) + + +def test_fetch_yaml(runner, api_mock): + result = runner.invoke(fetch, ["--format", "yaml", "5b91dbd100002057"]) + assert result.exit_code == 0 + + parsed_output = yaml.safe_load(result.output) + assert parsed_output["id"] == "gomodel:5b91dbd100002057" + + +def test_fetch_json(runner, api_mock): + result = runner.invoke(fetch, ["--format", "json", "5b91dbd100002057"]) + assert result.exit_code == 0 + + parsed_output = json.loads(result.output) + assert parsed_output["id"] == "gomodel:5b91dbd100002057" diff --git a/tests/test_translation/test_minerva_wrapper.py b/tests/test_translation/test_minerva_wrapper.py index c3fd6ea..c2374f7 100644 --- a/tests/test_translation/test_minerva_wrapper.py +++ b/tests/test_translation/test_minerva_wrapper.py @@ -17,7 +17,7 @@ def test_api(model_local_id): assert model is not None -@pytest.mark.parametrize("base_name", ["minerva-example"]) +@pytest.mark.parametrize("base_name", ["minerva-663d668500002178", "minerva-5b91dbd100002057"]) def test_object(base_name): mw = MinervaWrapper() with open(INPUT_DIR / f"{base_name}.json", "r") as f: From 5cbd27ff76686c05a90ce8643d44179963a82eb3 Mon Sep 17 00:00:00 2001 From: Patrick Kalita Date: Thu, 11 Jul 2024 09:21:29 -0700 Subject: [PATCH 08/11] Update pypi-publish workflow for trusted publishing --- .github/workflows/pypi-publish.yaml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pypi-publish.yaml b/.github/workflows/pypi-publish.yaml index 22d5a69..a2d2057 100644 --- a/.github/workflows/pypi-publish.yaml +++ b/.github/workflows/pypi-publish.yaml @@ -9,6 +9,12 @@ jobs: build-n-publish: name: Build and publish Python 🐍 distributions 📦 to PyPI runs-on: ubuntu-latest + environment: + name: pypi + url: https://pypi.org/p/gocam + permissions: + # this permission is mandatory for trusted publishing + id-token: write steps: - uses: actions/checkout@v3 @@ -30,7 +36,4 @@ jobs: run: poetry build - name: Publish distribution 📦 to PyPI - uses: pypa/gh-action-pypi-publish@v1.2.2 - with: - user: __token__ - password: ${{ secrets.PYPI_PASSWORD }} + uses: pypa/gh-action-pypi-publish@release/v1 From fbea99f59b0f9c1df81ac7b93ece27e3a51d1868 Mon Sep 17 00:00:00 2001 From: Patrick Kalita Date: Thu, 11 Jul 2024 09:36:33 -0700 Subject: [PATCH 09/11] Use poetry venv caching feature of actions/setup-python action --- .github/workflows/deploy-docs.yaml | 23 +++++++++++------------ .github/workflows/main.yaml | 19 +++++++------------ .github/workflows/pypi-publish.yaml | 18 +++++++++--------- .github/workflows/test_pages_build.yaml | 15 +++++++-------- 4 files changed, 34 insertions(+), 41 deletions(-) diff --git a/.github/workflows/deploy-docs.yaml b/.github/workflows/deploy-docs.yaml index ec1bc81..eedb345 100644 --- a/.github/workflows/deploy-docs.yaml +++ b/.github/workflows/deploy-docs.yaml @@ -15,23 +15,22 @@ jobs: id-token: write # to verify the deployment originates from an appropriate source steps: - - name: Checkout - uses: actions/checkout@v4 + - uses: actions/checkout@v4 with: - fetch-depth: 0 # otherwise, you will failed to push refs to dest repo + fetch-depth: 0 # otherwise, it will fail to push refs to dest repo - - name: Set up Python. - uses: actions/setup-python@v4 - with: - python-version: 3.9 - - - name: Install Poetry. + - name: Install Poetry run: pipx install poetry - - name: Install dependencies. - run: poetry install -E docs + - uses: actions/setup-python@v5 + with: + python-version: '3.12' + cache: 'poetry' + + - name: Install dependencies + run: poetry install - - name: Build documentation. + - name: Build documentation run: | mkdir -p docs touch docs/.nojekyll diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index d5332e8..9a3e511 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -11,26 +11,21 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.9", "3.10"] + python-version: ["3.9", "3.12"] steps: + - uses: actions/checkout@v4 - - name: Check out repository - uses: actions/checkout@v3 + - name: Install Poetry + run: pipx install poetry - - name: Set up Python - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - - - name: Install Poetry - run: pipx install poetry + cache: 'poetry' - name: Install dependencies - run: poetry install --no-interaction --no-root - - - name: Install project - run: poetry install --no-interaction + run: poetry install - name: Run test suite run: make test diff --git a/.github/workflows/pypi-publish.yaml b/.github/workflows/pypi-publish.yaml index a2d2057..56520b3 100644 --- a/.github/workflows/pypi-publish.yaml +++ b/.github/workflows/pypi-publish.yaml @@ -17,20 +17,20 @@ jobs: id-token: write steps: - - uses: actions/checkout@v3 - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: 3.9 + - uses: actions/checkout@v4 - name: Install Poetry run: | pipx install poetry - poetry self add "poetry-dynamic-versioning[plugin]" + pipx inject poetry "poetry-dynamic-versioning[plugin]" + + - uses: actions/setup-python@v5 + with: + python-version: '3.12' + cache: 'poetry' - # - name: Install dependencies - # run: poetry install --no-interaction + - name: Install dependencies + run: poetry install - name: Build source and wheel archives run: poetry build diff --git a/.github/workflows/test_pages_build.yaml b/.github/workflows/test_pages_build.yaml index 0a2ccd0..b1f0119 100644 --- a/.github/workflows/test_pages_build.yaml +++ b/.github/workflows/test_pages_build.yaml @@ -13,21 +13,20 @@ jobs: run: runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v4 + - uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Set up Python 3 - uses: actions/setup-python@v4 - with: - python-version: 3.9 - - name: Install Poetry run: pipx install poetry + - uses: actions/setup-python@v5 + with: + python-version: '3.12' + cache: 'poetry' + - name: Install dependencies - run: poetry install -E docs + run: poetry install - name: Build documentation run: | From 31e25e7cb0cfc4bb2ee6081231896543998dc412 Mon Sep 17 00:00:00 2001 From: Patrick Kalita Date: Thu, 11 Jul 2024 10:10:05 -0700 Subject: [PATCH 10/11] Add version flag to CLI --- pyproject.toml | 2 +- src/gocam/__init__.py | 1 + src/gocam/_version.py | 2 +- src/gocam/cli.py | 2 ++ tests/test_cli.py | 9 ++++++++- 5 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 src/gocam/__init__.py diff --git a/pyproject.toml b/pyproject.toml index e466934..b45f2ef 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "gocam" -version = "0.1.0" +version = "0.0.0" description = "GO CAM Data Model (Python)" authors = ["The Gene Ontology Consortium "] license = "BSD-3" diff --git a/src/gocam/__init__.py b/src/gocam/__init__.py new file mode 100644 index 0000000..651774b --- /dev/null +++ b/src/gocam/__init__.py @@ -0,0 +1 @@ +from gocam._version import __version__ diff --git a/src/gocam/_version.py b/src/gocam/_version.py index 7edc9ee..fe5022e 100644 --- a/src/gocam/_version.py +++ b/src/gocam/_version.py @@ -1,7 +1,7 @@ from importlib.metadata import version, PackageNotFoundError try: - __version__ = version(__name__) + __version__ = version(__package__) except PackageNotFoundError: # package not installed __version__ = "0.0.0" diff --git a/src/gocam/cli.py b/src/gocam/cli.py index 5b4fc02..a7b7985 100644 --- a/src/gocam/cli.py +++ b/src/gocam/cli.py @@ -5,6 +5,7 @@ import click import yaml +from gocam import __version__ from gocam.translation import MinervaWrapper @@ -17,6 +18,7 @@ show_default=True, help="If set then show full stacktrace on error", ) +@click.version_option(__version__) def cli(verbose: int, quiet: bool, stacktrace: bool): """A CLI for interacting with GO-CAMs.""" if not stacktrace: diff --git a/tests/test_cli.py b/tests/test_cli.py index c0c3d24..09644d0 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -4,7 +4,8 @@ import yaml from click.testing import CliRunner -from gocam.cli import fetch +from gocam import __version__ +from gocam.cli import fetch, cli from tests import INPUT_DIR @@ -37,3 +38,9 @@ def test_fetch_json(runner, api_mock): parsed_output = json.loads(result.output) assert parsed_output["id"] == "gomodel:5b91dbd100002057" + + +def test_version(runner): + result = runner.invoke(cli, ["--version"]) + assert result.exit_code == 0 + assert __version__ in result.output From e5eebb497b9911d27ec8806f0c839aa45f39c720 Mon Sep 17 00:00:00 2001 From: Patrick Kalita Date: Thu, 11 Jul 2024 11:42:24 -0700 Subject: [PATCH 11/11] Rebuild artifacts and test before publishing to PyPI --- .github/workflows/pypi-publish.yaml | 6 ++++++ Makefile | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pypi-publish.yaml b/.github/workflows/pypi-publish.yaml index 56520b3..7a23432 100644 --- a/.github/workflows/pypi-publish.yaml +++ b/.github/workflows/pypi-publish.yaml @@ -32,6 +32,12 @@ jobs: - name: Install dependencies run: poetry install + - name: Generate project files + run: make clean all + + - name: Test project + run: make test + - name: Build source and wheel archives run: poetry build diff --git a/Makefile b/Makefile index 837e687..1549bb0 100644 --- a/Makefile +++ b/Makefile @@ -105,7 +105,7 @@ create-data-harmonizer: npm init data-harmonizer $(SOURCE_SCHEMA_PATH) all: site -site: gen-project gendoc +site: gen-project gendoc $(PYDANTIC) %.yaml: gen-project deploy: all mkd-gh-deploy @@ -219,6 +219,6 @@ clean: rm -rf $(DEST) rm -rf tmp rm -fr docs/* - rm -fr $(PYMODEL)/* + rm -fr $(PYDANTIC) include project.Makefile