From 871466fc8c0e34b2d3a08c8d238924822c7f4b88 Mon Sep 17 00:00:00 2001 From: Chris Mungall Date: Fri, 29 Mar 2024 19:30:54 -0700 Subject: [PATCH] Ensuring that pronto definition objects are stringified (730) (#731) * stringifying pronto Definition objects. Fixes #730 * Additional test for #730 * Syncing with latest KGCL Uses https://github.com/INCATools/kgcl/pull/74 * Ensure not None --- poetry.lock | 313 +++++++++++++++++- pyproject.toml | 2 +- .../pronto/pronto_implementation.py | 2 +- src/oaklib/utilities/lexical/synonymizer.py | 10 +- tests/test_implementations/__init__.py | 1 + tests/test_utilities/test_synonymizer.py | 28 +- 6 files changed, 332 insertions(+), 24 deletions(-) diff --git a/poetry.lock b/poetry.lock index aaba0dfc1..c731354ce 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,9 +1,10 @@ -# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.4.2 and should not be changed by hand. [[package]] name = "adeft" version = "0.11.2" description = "Acromine based Disambiguation of Entities From Text" +category = "main" optional = true python-versions = "*" files = [ @@ -24,6 +25,7 @@ test = ["pytest", "pytest-cov"] name = "aiohttp" version = "3.9.3" description = "Async http client/server framework (asyncio)" +category = "main" optional = true python-versions = ">=3.8" files = [ @@ -120,6 +122,7 @@ speedups = ["Brotli", "aiodns", "brotlicffi"] name = "aiosignal" version = "1.3.1" description = "aiosignal: a list of registered asynchronous callbacks" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -134,6 +137,7 @@ frozenlist = ">=1.1.0" 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." +category = "main" optional = false python-versions = "*" files = [ @@ -149,6 +153,7 @@ parse = ["beautifulsoup4 (>=4.10.0,<5.0)", "requests (>=2.12.0,<3)"] name = "alabaster" version = "0.7.16" description = "A light, configurable Sphinx theme" +category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -160,6 +165,7 @@ files = [ name = "aniso8601" version = "9.0.1" description = "A library for parsing ISO 8601 strings." +category = "main" optional = true python-versions = "*" files = [ @@ -174,6 +180,7 @@ dev = ["black", "coverage", "isort", "pre-commit", "pyenchant", "pylint"] name = "annotated-types" version = "0.6.0" description = "Reusable constraint types to use with typing.Annotated" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -185,6 +192,7 @@ files = [ name = "antlr4-python3-runtime" version = "4.9.3" description = "ANTLR 4.9.3 runtime for Python 3.7" +category = "main" optional = false python-versions = "*" files = [ @@ -195,6 +203,7 @@ files = [ name = "anyio" version = "4.3.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -217,6 +226,7 @@ trio = ["trio (>=0.23)"] name = "appdirs" version = "1.4.4" description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "main" optional = false python-versions = "*" files = [ @@ -228,6 +238,7 @@ files = [ name = "appnope" version = "0.1.4" description = "Disable App Nap on macOS >= 10.9" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -239,6 +250,7 @@ files = [ name = "argon2-cffi" version = "23.1.0" description = "Argon2 for Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -259,6 +271,7 @@ typing = ["mypy"] name = "argon2-cffi-bindings" version = "21.2.0" description = "Low-level CFFI bindings for Argon2" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -296,6 +309,7 @@ tests = ["pytest"] name = "arrow" version = "1.3.0" description = "Better dates & times for Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -309,12 +323,13 @@ types-python-dateutil = ">=2.8.10" [package.extras] doc = ["doc8", "sphinx (>=7.0.0)", "sphinx-autobuild", "sphinx-autodoc-typehints", "sphinx_rtd_theme (>=1.3.0)"] -test = ["dateparser (==1.*)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (==3.*)"] +test = ["dateparser (>=1.0.0,<2.0.0)", "pre-commit", "pytest", "pytest-cov", "pytest-mock", "pytz (==2021.1)", "simplejson (>=3.0.0,<4.0.0)"] [[package]] name = "asttokens" version = "2.4.1" description = "Annotate AST trees with source code positions" +category = "dev" optional = false python-versions = "*" files = [ @@ -333,6 +348,7 @@ test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] name = "async-lru" version = "2.0.4" description = "Simple LRU cache for asyncio" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -347,6 +363,7 @@ typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} name = "async-timeout" version = "4.0.3" description = "Timeout context manager for asyncio programs" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -358,6 +375,7 @@ files = [ name = "attrs" version = "23.2.0" description = "Classes Without Boilerplate" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -377,6 +395,7 @@ tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "p name = "babel" version = "2.14.0" description = "Internationalization utilities" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -391,6 +410,7 @@ dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] name = "bcp47" version = "0.0.4" description = "Language tags made easy" +category = "main" optional = false python-versions = "*" files = [ @@ -402,6 +422,7 @@ files = [ name = "beautifulsoup4" version = "4.12.3" description = "Screen-scraping library" +category = "main" optional = false python-versions = ">=3.6.0" files = [ @@ -423,6 +444,7 @@ lxml = ["lxml"] name = "bleach" version = "6.1.0" description = "An easy safelist-based HTML-sanitizing tool." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -441,6 +463,7 @@ css = ["tinycss2 (>=1.1.0,<1.3)"] name = "blinker" version = "1.7.0" description = "Fast, simple object-to-object and broadcast signaling" +category = "main" optional = true python-versions = ">=3.8" files = [ @@ -452,6 +475,7 @@ files = [ name = "boto3" version = "1.34.58" description = "The AWS SDK for Python" +category = "main" optional = true python-versions = ">= 3.8" files = [ @@ -471,6 +495,7 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] name = "botocore" version = "1.34.58" description = "Low-level, data-driven core of boto 3." +category = "main" optional = true python-versions = ">= 3.8" files = [ @@ -493,6 +518,7 @@ crt = ["awscrt (==0.19.19)"] name = "cachetools" version = "5.3.3" description = "Extensible memoizing collections and decorators" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -504,6 +530,7 @@ files = [ name = "cattrs" version = "23.2.3" description = "Composable complex class support for attrs and dataclasses." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -529,6 +556,7 @@ ujson = ["ujson (>=5.7.0)"] name = "certifi" version = "2024.2.2" description = "Python package for providing Mozilla's CA Bundle." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -540,6 +568,7 @@ files = [ name = "cffi" version = "1.16.0" description = "Foreign Function Interface for Python calling C code." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -604,6 +633,7 @@ pycparser = "*" name = "cfgraph" version = "0.2.1" description = "rdflib collections flattening graph" +category = "dev" optional = false python-versions = "*" files = [ @@ -617,6 +647,7 @@ rdflib = ">=0.4.2" name = "chardet" version = "5.2.0" description = "Universal encoding detector for Python 3" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -628,6 +659,7 @@ files = [ name = "charset-normalizer" version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -727,6 +759,7 @@ files = [ name = "class-resolver" version = "0.4.3" description = "Lookup and instantiate classes with style." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -753,6 +786,7 @@ torch-geometric = ["torch", "torch-geometric", "torch-sparse"] name = "click" version = "8.1.7" description = "Composable command line interface toolkit" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -767,6 +801,7 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} name = "click-default-group" version = "1.2.4" description = "click_default_group" +category = "main" optional = true python-versions = ">=2.7" files = [ @@ -784,6 +819,7 @@ test = ["pytest"] name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ @@ -795,6 +831,7 @@ files = [ name = "comm" version = "0.2.1" description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -812,6 +849,7 @@ test = ["pytest"] name = "contourpy" version = "1.2.0" description = "Python library for calculating contours of 2D quadrilateral grids" +category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -875,6 +913,7 @@ test-no-images = ["pytest", "pytest-cov", "pytest-xdist", "wurlitzer"] name = "coverage" version = "6.5.0" description = "Code coverage measurement for Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -937,6 +976,7 @@ toml = ["tomli"] name = "curies" version = "0.7.7" description = "Idiomatic conversion between URIs and compact URIs (CURIEs)." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -961,6 +1001,7 @@ tests = ["coverage", "pytest"] name = "cycler" version = "0.12.1" description = "Composable style cycles" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -976,6 +1017,7 @@ tests = ["pytest", "pytest-cov", "pytest-xdist"] name = "debugpy" version = "1.8.1" description = "An implementation of the Debug Adapter Protocol for Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1007,6 +1049,7 @@ files = [ name = "decorator" version = "5.1.1" description = "Decorators for Humans" +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -1018,6 +1061,7 @@ files = [ name = "defusedxml" version = "0.7.1" description = "XML bomb protection for Python stdlib modules" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1029,6 +1073,7 @@ files = [ name = "deprecated" version = "1.2.14" description = "Python @deprecated decorator to deprecate old python classes, functions or methods." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1046,6 +1091,7 @@ dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "sphinx (<2)", "tox"] name = "deprecation" version = "2.1.0" description = "A library to handle automated deprecations" +category = "main" optional = false python-versions = "*" files = [ @@ -1060,6 +1106,7 @@ packaging = "*" name = "distlib" version = "0.3.8" description = "Distribution utilities" +category = "dev" optional = false python-versions = "*" files = [ @@ -1071,6 +1118,7 @@ files = [ name = "distro" version = "1.9.0" description = "Distro - an OS platform information API" +category = "main" optional = true python-versions = ">=3.6" files = [ @@ -1082,6 +1130,7 @@ files = [ name = "docutils" version = "0.18.1" description = "Docutils -- Python Documentation Utilities" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1093,6 +1142,7 @@ files = [ name = "editorconfig" version = "0.12.4" description = "EditorConfig File Locator and Interpreter for Python" +category = "main" optional = false python-versions = "*" files = [ @@ -1103,6 +1153,7 @@ files = [ name = "et-xmlfile" version = "1.1.0" description = "An implementation of lxml.xmlfile for the standard library" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1114,6 +1165,7 @@ files = [ name = "eutils" version = "0.6.0" description = "\"Python interface to NCBI's eutilities API\"" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1133,6 +1185,7 @@ dev = ["flake8", "ipython", "mock", "pytest", "pytest-cov", "restview", "setupto name = "exceptiongroup" version = "1.2.0" description = "Backport of PEP 654 (exception groups)" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1147,6 +1200,7 @@ test = ["pytest (>=6)"] name = "executing" version = "2.0.1" description = "Get the currently executing AST node of a frame, and other information" +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -1161,6 +1215,7 @@ tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipyth name = "fastjsonschema" version = "2.19.1" description = "Fastest Python implementation of JSON schema" +category = "dev" optional = false python-versions = "*" files = [ @@ -1175,6 +1230,7 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc name = "fastobo" version = "0.12.3" description = "Faultless AST for Open Biomedical Ontologies in Python." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1230,6 +1286,7 @@ files = [ name = "filelock" version = "3.13.1" description = "A platform independent file lock." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1246,6 +1303,7 @@ typing = ["typing-extensions (>=4.8)"] name = "flask" version = "3.0.2" description = "A simple framework for building complex web applications." +category = "main" optional = true python-versions = ">=3.8" files = [ @@ -1269,6 +1327,7 @@ dotenv = ["python-dotenv"] name = "flask-restx" version = "1.3.0" description = "Fully featured framework for fast, easy and documented API development with Flask" +category = "main" optional = true python-versions = "*" files = [ @@ -1293,6 +1352,7 @@ test = ["Faker (==2.0.0)", "blinker", "invoke (==2.2.0)", "mock (==3.0.5)", "pyt name = "fonttools" version = "4.49.0" description = "Tools to manipulate font files" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1358,6 +1418,7 @@ woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] name = "fqdn" version = "1.5.1" description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" +category = "dev" optional = false python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" files = [ @@ -1369,6 +1430,7 @@ files = [ name = "frozenlist" version = "1.4.1" description = "A list-like structure which implements collections.abc.MutableSequence" +category = "main" optional = true python-versions = ">=3.8" files = [ @@ -1455,6 +1517,7 @@ files = [ name = "funowl" version = "0.2.3" description = "Python rendering of the OWL Functional syntax" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1474,6 +1537,7 @@ rfc3987 = "*" name = "ghp-import" version = "2.1.0" description = "Copy your docs directly to the gh-pages branch." +category = "main" optional = false python-versions = "*" files = [ @@ -1491,6 +1555,7 @@ dev = ["flake8", "markdown", "twine", "wheel"] name = "gilda" version = "1.1.0" description = "Grounding for biomedical entities with contextual disambiguation" +category = "main" optional = true python-versions = "*" files = [ @@ -1519,6 +1584,7 @@ ui = ["flask-bootstrap", "flask-wtf"] name = "graphviz" version = "0.20.1" description = "Simple Python interface for Graphviz" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1535,6 +1601,7 @@ test = ["coverage", "mock (>=4)", "pytest (>=7)", "pytest-cov", "pytest-mock (>= name = "greenlet" version = "3.0.3" description = "Lightweight in-process concurrent programming" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1606,6 +1673,7 @@ test = ["objgraph", "psutil"] name = "h11" version = "0.14.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1617,6 +1685,7 @@ files = [ name = "hbreader" version = "0.9.1" description = "Honey Badger reader - a generic file/url/string open and read tool" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1628,6 +1697,7 @@ files = [ name = "httpcore" version = "1.0.4" description = "A minimal low-level HTTP client." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1642,13 +1712,14 @@ h11 = ">=0.13,<0.15" [package.extras] asyncio = ["anyio (>=4.0,<5.0)"] http2 = ["h2 (>=3,<5)"] -socks = ["socksio (==1.*)"] +socks = ["socksio (>=1.0.0,<2.0.0)"] trio = ["trio (>=0.22.0,<0.25.0)"] [[package]] name = "httpx" version = "0.27.0" description = "The next generation HTTP client." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1659,20 +1730,21 @@ files = [ [package.dependencies] anyio = "*" certifi = "*" -httpcore = "==1.*" +httpcore = ">=1.0.0,<2.0.0" idna = "*" sniffio = "*" [package.extras] brotli = ["brotli", "brotlicffi"] -cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] +cli = ["click (>=8.0.0,<9.0.0)", "pygments (>=2.0.0,<3.0.0)", "rich (>=10,<14)"] http2 = ["h2 (>=3,<5)"] -socks = ["socksio (==1.*)"] +socks = ["socksio (>=1.0.0,<2.0.0)"] [[package]] name = "idna" version = "3.6" description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1684,6 +1756,7 @@ files = [ name = "ijson" version = "3.2.3" description = "Iterative JSON parser with standard Python iterator interfaces" +category = "main" optional = false python-versions = "*" files = [ @@ -1782,6 +1855,7 @@ files = [ name = "imagesize" version = "1.4.1" description = "Getting image size from png/jpeg/jpeg2000/gif file" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1793,6 +1867,7 @@ files = [ name = "importlib-metadata" version = "7.0.2" description = "Read metadata from Python packages" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1812,6 +1887,7 @@ testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs name = "importlib-resources" version = "6.1.3" description = "Read resources from Python packages" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1830,6 +1906,7 @@ testing = ["jaraco.collections", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "py name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1841,6 +1918,7 @@ files = [ name = "ipykernel" version = "6.29.3" description = "IPython Kernel for Jupyter" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1854,7 +1932,7 @@ comm = ">=0.1.1" debugpy = ">=1.6.5" ipython = ">=7.23.1" jupyter-client = ">=6.1.12" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" matplotlib-inline = ">=0.1" nest-asyncio = "*" packaging = "*" @@ -1874,6 +1952,7 @@ test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio name = "ipython" version = "8.18.1" description = "IPython: Productive Interactive Computing" +category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -1911,6 +1990,7 @@ test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.22)", "pa name = "ipywidgets" version = "8.1.2" description = "Jupyter interactive widgets" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1932,6 +2012,7 @@ test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] name = "isodate" version = "0.6.1" description = "An ISO 8601 date/time/duration parser and formatter" +category = "main" optional = false python-versions = "*" files = [ @@ -1946,6 +2027,7 @@ six = "*" name = "isoduration" version = "20.11.0" description = "Operations with ISO 8601 durations" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1960,6 +2042,7 @@ arrow = ">=0.15.0" name = "itsdangerous" version = "2.1.2" description = "Safely pass data to untrusted environments and back." +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -1971,6 +2054,7 @@ files = [ name = "jedi" version = "0.19.1" description = "An autocompletion tool for Python that can be used for text editors." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1990,6 +2074,7 @@ testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] name = "jinja2" version = "3.1.3" description = "A very fast and expressive template engine." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2007,6 +2092,7 @@ i18n = ["Babel (>=2.7)"] name = "jmespath" version = "1.0.1" description = "JSON Matching Expressions" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -2018,6 +2104,7 @@ files = [ name = "joblib" version = "1.3.2" description = "Lightweight pipelining with Python functions" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -2029,6 +2116,7 @@ files = [ name = "jsbeautifier" version = "1.15.1" description = "JavaScript unobfuscator and beautifier." +category = "main" optional = false python-versions = "*" files = [ @@ -2043,6 +2131,7 @@ six = ">=1.13.0" name = "json-flattener" version = "0.1.9" description = "Python library for denormalizing nested dicts or json objects to tables and back" +category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -2058,6 +2147,7 @@ pyyaml = "*" name = "json5" version = "0.9.22" description = "A Python implementation of the JSON5 data format." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2072,6 +2162,7 @@ dev = ["hypothesis"] name = "jsonasobj" version = "1.3.1" description = "JSON as python objects" +category = "main" optional = false python-versions = "*" files = [ @@ -2083,6 +2174,7 @@ files = [ name = "jsonasobj2" version = "1.0.4" description = "JSON as python objects - version 2" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2097,6 +2189,7 @@ hbreader = "*" name = "jsonlines" version = "4.0.0" description = "Library with helpers for the jsonlines file format" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2111,6 +2204,7 @@ attrs = ">=19.2.0" name = "jsonpatch" version = "1.33" description = "Apply JSON-Patches (RFC 6902)" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" files = [ @@ -2125,6 +2219,7 @@ jsonpointer = ">=1.9" name = "jsonpath-ng" version = "1.6.1" description = "A final implementation of JSONPath for Python that aims to be standard compliant, including arithmetic and binary comparison operators and providing clear AST for metaprogramming." +category = "dev" optional = false python-versions = "*" files = [ @@ -2139,6 +2234,7 @@ ply = "*" name = "jsonpointer" version = "2.4" description = "Identify specific nodes in a JSON document (RFC 6901)" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" files = [ @@ -2150,6 +2246,7 @@ files = [ name = "jsonschema" version = "4.21.1" description = "An implementation of JSON Schema validation for Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2180,6 +2277,7 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- name = "jsonschema-specifications" version = "2023.12.1" description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2194,6 +2292,7 @@ referencing = ">=0.31.0" name = "jupyter" version = "1.0.0" description = "Jupyter metapackage. Install all the Jupyter components in one go." +category = "dev" optional = false python-versions = "*" files = [ @@ -2214,6 +2313,7 @@ qtconsole = "*" name = "jupyter-client" version = "8.6.0" description = "Jupyter protocol implementation and client libraries" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2223,7 +2323,7 @@ files = [ [package.dependencies] importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" python-dateutil = ">=2.8.2" pyzmq = ">=23.0" tornado = ">=6.2" @@ -2237,6 +2337,7 @@ test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pyt name = "jupyter-console" version = "6.6.3" description = "Jupyter terminal console" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2248,7 +2349,7 @@ files = [ ipykernel = ">=6.14" ipython = "*" jupyter-client = ">=7.0.0" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" prompt-toolkit = ">=3.0.30" pygments = "*" pyzmq = ">=17" @@ -2261,6 +2362,7 @@ test = ["flaky", "pexpect", "pytest"] name = "jupyter-core" version = "5.7.1" description = "Jupyter core package. A base package on which Jupyter projects rely." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2281,6 +2383,7 @@ test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"] name = "jupyter-events" version = "0.9.0" description = "Jupyter Event System library" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2306,6 +2409,7 @@ test = ["click", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.19.0)", "p name = "jupyter-lsp" version = "2.2.4" description = "Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2321,6 +2425,7 @@ jupyter-server = ">=1.1.2" name = "jupyter-server" version = "2.13.0" description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2333,7 +2438,7 @@ anyio = ">=3.1.0" argon2-cffi = "*" jinja2 = "*" jupyter-client = ">=7.4.4" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" jupyter-events = ">=0.9.0" jupyter-server-terminals = "*" nbconvert = ">=6.4.4" @@ -2357,6 +2462,7 @@ test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-sc name = "jupyter-server-terminals" version = "0.5.2" description = "A Jupyter Server Extension Providing Terminals." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2376,6 +2482,7 @@ test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (> name = "jupyterlab" version = "4.1.4" description = "JupyterLab computational environment" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2409,6 +2516,7 @@ test = ["coverage", "pytest (>=7.0)", "pytest-check-links (>=0.7)", "pytest-cons name = "jupyterlab-pygments" version = "0.3.0" description = "Pygments theme using JupyterLab CSS variables" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2420,6 +2528,7 @@ files = [ name = "jupyterlab-server" version = "2.25.3" description = "A set of server components for JupyterLab and JupyterLab like applications." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2446,6 +2555,7 @@ test = ["hatch", "ipykernel", "openapi-core (>=0.18.0,<0.19.0)", "openapi-spec-v name = "jupyterlab-widgets" version = "3.0.10" description = "Jupyter interactive widgets for JupyterLab" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2457,6 +2567,7 @@ files = [ name = "kgcl-rdflib" version = "0.5.0" description = "Schema for the KGCL project." +category = "main" optional = false python-versions = ">=3.8,<4.0" files = [ @@ -2470,13 +2581,14 @@ linkml-runtime = ">=1.1.24" [[package]] name = "kgcl-schema" -version = "0.6.5" +version = "0.6.8" description = "Schema for the KGCL project." +category = "main" optional = false -python-versions = ">=3.9,<4.0" +python-versions = "<4.0,>=3.9" files = [ - {file = "kgcl_schema-0.6.5-py3-none-any.whl", hash = "sha256:5f8cbe938c1d5a203adbade94cb44729abd5f8f7d387d7bcdcb6c17adb906aab"}, - {file = "kgcl_schema-0.6.5.tar.gz", hash = "sha256:e9d8a87036db0ed694ce8b2047f1deb919086e50581248000ffe351234233e99"}, + {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] @@ -2489,6 +2601,7 @@ prefixmaps = ">=0.2.0,<0.3.0" name = "kiwisolver" version = "1.4.5" description = "A fast implementation of the Cassowary constraint solver" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2602,6 +2715,7 @@ files = [ name = "lark" version = "1.1.9" description = "a modern parsing library" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2619,6 +2733,7 @@ regex = ["regex"] name = "linkml" version = "1.7.5" description = "Linked Open Data Modeling Language" +category = "dev" optional = false python-versions = ">=3.8.1,<4.0.0" files = [ @@ -2656,6 +2771,7 @@ watchdog = ">=0.9.0" name = "linkml-dataops" version = "0.1.0" description = "LinkML Data Operations API" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2674,6 +2790,7 @@ linkml-runtime = ">=1.1.6" name = "linkml-renderer" version = "0.3.0" description = "linkml-renderer" +category = "main" optional = false python-versions = ">=3.8,<4.0" files = [ @@ -2691,6 +2808,7 @@ pydantic = "*" name = "linkml-runtime" version = "1.7.2" description = "Runtime environment for LinkML, the Linked open data modeling language" +category = "main" optional = false python-versions = ">=3.8,<4.0" files = [ @@ -2717,6 +2835,7 @@ requests = "*" name = "llm" version = "0.13.1" description = "A CLI utility and Python library for interacting with Large Language Models, including OpenAI, PaLM and local models installed on your own machine." +category = "main" optional = true python-versions = ">=3.8" files = [ @@ -2745,6 +2864,7 @@ test = ["black (>=24.1.0)", "cogapp", "mypy", "numpy", "pytest", "pytest-httpx", name = "lxml" version = "5.1.0" description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2838,6 +2958,7 @@ source = ["Cython (>=3.0.7)"] name = "markdown" version = "3.5.2" description = "Python implementation of John Gruber's Markdown." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2856,6 +2977,7 @@ testing = ["coverage", "pyyaml"] name = "markdown-it-py" version = "3.0.0" description = "Python port of markdown-it. Markdown parsing, done right!" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2880,6 +3002,7 @@ testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] name = "markupsafe" version = "2.1.5" description = "Safely add untrusted strings to HTML/XML markup." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2949,6 +3072,7 @@ files = [ name = "matplotlib" version = "3.8.3" description = "Python plotting package" +category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -2998,6 +3122,7 @@ python-dateutil = ">=2.7" name = "matplotlib-inline" version = "0.1.6" description = "Inline Matplotlib backend for Jupyter" +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -3012,6 +3137,7 @@ traitlets = "*" name = "mdit-py-plugins" version = "0.4.0" description = "Collection of plugins for markdown-it-py" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3031,6 +3157,7 @@ testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] name = "mdurl" version = "0.1.2" description = "Markdown URL utilities" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3042,6 +3169,7 @@ files = [ name = "mergedeep" version = "1.3.4" description = "A deep merge function for 🐍." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -3053,6 +3181,7 @@ files = [ name = "mistune" version = "3.0.2" description = "A sane and fast Markdown parser with useful plugins and renderers" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3064,6 +3193,7 @@ files = [ name = "mkdocs" version = "1.5.3" description = "Project documentation with Markdown." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3095,6 +3225,7 @@ min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-imp name = "mkdocs-material" version = "9.5.13" description = "Documentation that simply works" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3124,6 +3255,7 @@ recommended = ["mkdocs-minify-plugin (>=0.7,<1.0)", "mkdocs-redirects (>=1.2,<2. name = "mkdocs-material-extensions" version = "1.3.1" description = "Extension pack for Python Markdown and MkDocs Material." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3135,6 +3267,7 @@ files = [ name = "mkdocs-mermaid2-plugin" version = "0.6.0" description = "A MkDocs plugin for including mermaid graphs in markdown sources" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -3156,6 +3289,7 @@ setuptools = ">=18.5" name = "more-click" version = "0.1.2" description = "More click." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3173,6 +3307,7 @@ tests = ["coverage", "pytest"] name = "multidict" version = "6.0.5" description = "multidict implementation" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -3272,6 +3407,7 @@ files = [ name = "myst-parser" version = "2.0.0" description = "An extended [CommonMark](https://spec.commonmark.org/) compliant parser," +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3298,6 +3434,7 @@ testing-docutils = ["pygments", "pytest (>=7,<8)", "pytest-param-files (>=0.3.4, name = "nbclient" version = "0.9.0" description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." +category = "dev" optional = false python-versions = ">=3.8.0" files = [ @@ -3307,7 +3444,7 @@ files = [ [package.dependencies] jupyter-client = ">=6.1.12" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" nbformat = ">=5.1" traitlets = ">=5.4" @@ -3320,6 +3457,7 @@ test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>= name = "nbconvert" version = "7.16.2" description = "Converting Jupyter Notebooks (.ipynb files) to other formats. Output formats include asciidoc, html, latex, markdown, pdf, py, rst, script. nbconvert can be used both as a Python library (`import nbconvert`) or as a command line tool (invoked as `jupyter nbconvert ...`)." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3358,6 +3496,7 @@ webpdf = ["playwright"] name = "nbformat" version = "5.9.2" description = "The Jupyter Notebook format" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3379,6 +3518,7 @@ test = ["pep440", "pre-commit", "pytest", "testpath"] name = "ndex2" version = "3.8.0" description = "Nice CX Python includes a client and a data model." +category = "main" optional = false python-versions = "*" files = [ @@ -3400,6 +3540,7 @@ urllib3 = ">=1.16" name = "nest-asyncio" version = "1.6.0" description = "Patch asyncio to allow nested event loops" +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -3411,6 +3552,7 @@ files = [ name = "networkx" version = "3.2.1" description = "Python package for creating and manipulating graphs and networks" +category = "main" optional = false python-versions = ">=3.9" files = [ @@ -3429,6 +3571,7 @@ test = ["pytest (>=7.2)", "pytest-cov (>=4.0)"] name = "nltk" version = "3.8.1" description = "Natural Language Toolkit" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -3454,6 +3597,7 @@ twitter = ["twython"] name = "notebook" version = "7.1.1" description = "Jupyter Notebook - A web-based notebook environment for interactive computing" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3477,6 +3621,7 @@ test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4 name = "notebook-shim" version = "0.2.4" description = "A shim layer for notebook traits and config" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3494,6 +3639,7 @@ test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync" name = "numpy" version = "1.26.4" description = "Fundamental package for array computing in Python" +category = "main" optional = false python-versions = ">=3.9" files = [ @@ -3539,6 +3685,7 @@ files = [ name = "ols-client" version = "0.1.4" description = "A client to the EBI Ontology Lookup Service" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3561,6 +3708,7 @@ tests = ["coverage", "pytest"] name = "ontoportal-client" version = "0.0.4" description = "A client to BioPortal and other OntoPortal instances." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3580,6 +3728,7 @@ tests = ["coverage", "pytest", "unittest-templates"] name = "openai" version = "1.13.3" description = "The official Python library for the openai API" +category = "main" optional = true python-versions = ">=3.7.1" files = [ @@ -3603,6 +3752,7 @@ datalib = ["numpy (>=1)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)"] name = "openpyxl" version = "3.1.2" description = "A Python library to read/write Excel 2010 xlsx/xlsm files" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -3617,6 +3767,7 @@ et-xmlfile = "*" name = "overrides" version = "7.7.0" description = "A decorator to automatically detect mismatch when overriding a method." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -3628,6 +3779,7 @@ files = [ name = "packaging" version = "23.2" description = "Core utilities for Python packages" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3639,6 +3791,7 @@ files = [ name = "paginate" version = "0.5.6" description = "Divides large result sets into pages for easier browsing" +category = "main" optional = false python-versions = "*" files = [ @@ -3649,6 +3802,7 @@ files = [ name = "pandas" version = "2.2.1" description = "Powerful data structures for data analysis, time series, and statistics" +category = "main" optional = false python-versions = ">=3.9" files = [ @@ -3722,6 +3876,7 @@ xml = ["lxml (>=4.9.2)"] name = "pandocfilters" version = "1.5.1" description = "Utilities for writing pandoc filters in python" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -3733,6 +3888,7 @@ files = [ name = "pansql" version = "0.0.1" description = "sqldf for pandas" +category = "main" optional = false python-versions = "*" files = [ @@ -3749,6 +3905,7 @@ sqlalchemy = "*" name = "parse" version = "1.20.1" description = "parse() is the opposite of format()" +category = "dev" optional = false python-versions = "*" files = [ @@ -3760,6 +3917,7 @@ files = [ name = "parso" version = "0.8.3" description = "A Python Parser" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -3775,6 +3933,7 @@ testing = ["docopt", "pytest (<6.0.0)"] name = "pathspec" version = "0.12.1" description = "Utility library for gitignore style pattern matching of file paths." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3786,6 +3945,7 @@ files = [ name = "pexpect" version = "4.9.0" description = "Pexpect allows easy control of interactive console applications." +category = "dev" optional = false python-versions = "*" files = [ @@ -3800,6 +3960,7 @@ ptyprocess = ">=0.5" name = "pillow" version = "10.2.0" description = "Python Imaging Library (Fork)" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3885,6 +4046,7 @@ xmp = ["defusedxml"] name = "pip" version = "24.0" description = "The PyPA recommended tool for installing Python packages." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3896,6 +4058,7 @@ files = [ name = "platformdirs" version = "4.2.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3911,6 +4074,7 @@ test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest- name = "pluggy" version = "1.4.0" description = "plugin and hook calling mechanisms for python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3926,6 +4090,7 @@ testing = ["pytest", "pytest-benchmark"] name = "ply" version = "3.11" description = "Python Lex & Yacc" +category = "dev" optional = false python-versions = "*" files = [ @@ -3937,6 +4102,7 @@ files = [ name = "prefixcommons" version = "0.1.12" description = "A python API for working with ID prefixes" +category = "main" optional = false python-versions = ">=3.7,<4.0" files = [ @@ -3954,6 +4120,7 @@ requests = ">=2.28.1,<3.0.0" name = "prefixmaps" version = "0.2.2" description = "A python library for retrieving semantic prefix maps" +category = "main" optional = false python-versions = ">=3.8,<4.0" files = [ @@ -3969,6 +4136,7 @@ pyyaml = ">=5.3.1" name = "prometheus-client" version = "0.20.0" description = "Python client for the Prometheus monitoring system." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3983,6 +4151,7 @@ twisted = ["twisted"] name = "prompt-toolkit" version = "3.0.43" description = "Library for building powerful interactive command lines in Python" +category = "dev" optional = false python-versions = ">=3.7.0" files = [ @@ -3997,6 +4166,7 @@ wcwidth = "*" name = "pronto" version = "2.5.6" description = "Python frontend to ontologies." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4014,6 +4184,7 @@ python-dateutil = ">=2.8,<3.0" name = "psutil" version = "5.9.8" description = "Cross-platform lib for process and system monitoring in Python." +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -4042,6 +4213,7 @@ test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] name = "ptyprocess" version = "0.7.0" description = "Run a subprocess in a pseudo terminal" +category = "dev" optional = false python-versions = "*" files = [ @@ -4053,6 +4225,7 @@ files = [ name = "pure-eval" version = "0.2.2" description = "Safely evaluate AST nodes without side effects" +category = "dev" optional = false python-versions = "*" files = [ @@ -4067,6 +4240,7 @@ tests = ["pytest"] name = "pycparser" version = "2.21" description = "C parser in Python" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -4078,6 +4252,7 @@ files = [ name = "pydantic" version = "2.6.3" description = "Data validation using Python type hints" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -4097,6 +4272,7 @@ email = ["email-validator (>=2.0.0)"] name = "pydantic-core" version = "2.16.3" description = "" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -4188,6 +4364,7 @@ typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" name = "pygments" version = "2.17.2" description = "Pygments is a syntax highlighting package written in Python." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4203,6 +4380,7 @@ windows-terminal = ["colorama (>=0.4.6)"] name = "pyjsg" version = "0.11.10" description = "Python JSON Schema Grammar interpreter" +category = "main" optional = false python-versions = "*" files = [ @@ -4218,6 +4396,7 @@ jsonasobj = ">=1.2.1" name = "pymdown-extensions" version = "10.7.1" description = "Extension pack for Python Markdown." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -4236,6 +4415,7 @@ extra = ["pygments (>=2.12)"] name = "pyparsing" version = "3.1.2" description = "pyparsing module - Classes and methods to define and execute parsing grammars" +category = "main" optional = false python-versions = ">=3.6.8" files = [ @@ -4250,6 +4430,7 @@ diagrams = ["jinja2", "railroad-diagrams"] name = "pyproject-api" version = "1.6.1" description = "API to interact with the python pyproject.toml based projects" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -4269,6 +4450,7 @@ testing = ["covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytes name = "pyreadline3" version = "3.4.1" description = "A python implementation of GNU readline." +category = "main" optional = true python-versions = "*" files = [ @@ -4280,6 +4462,7 @@ files = [ name = "pyshex" version = "0.8.1" description = "Python ShEx Implementation" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -4302,6 +4485,7 @@ urllib3 = "*" name = "pyshexc" version = "0.9.1" description = "PyShExC - Python ShEx compiler" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4321,6 +4505,7 @@ shexjsg = ">=0.8.1" name = "pysolr" version = "3.9.0" description = "Lightweight Python client for Apache Solr" +category = "main" optional = false python-versions = "*" files = [ @@ -4337,6 +4522,7 @@ solrcloud = ["kazoo (>=2.5.0)"] name = "pystow" version = "0.5.3" description = "Easily pick a place to store data for your python package." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4361,6 +4547,7 @@ xml = ["lxml"] name = "pytest" version = "7.4.4" description = "pytest: simple powerful testing with Python" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4383,6 +4570,7 @@ testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "no name = "pytest-logging" version = "2015.11.4" description = "Configures logging and allows tweaking the log level with a py.test flag" +category = "main" optional = false python-versions = "*" files = [ @@ -4396,6 +4584,7 @@ pytest = ">=2.8.1" name = "python-dateutil" version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ @@ -4410,6 +4599,7 @@ six = ">=1.5" name = "python-json-logger" version = "2.0.7" description = "A python library adding a json log formatter" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -4421,6 +4611,7 @@ files = [ name = "python-ulid" version = "2.2.0" description = "Universally unique lexicographically sortable identifier" +category = "main" optional = true python-versions = ">=3.9" files = [ @@ -4432,9 +4623,11 @@ files = [ name = "pytrie" version = "0.4.0" description = "A pure Python implementation of the trie data structure." +category = "main" optional = false python-versions = "*" files = [ + {file = "PyTrie-0.4.0-py3-none-any.whl", hash = "sha256:f687c224ee8c66cda8e8628a903011b692635ffbb08d4b39c5f92b18eb78c950"}, {file = "PyTrie-0.4.0.tar.gz", hash = "sha256:8f4488f402d3465993fb6b6efa09866849ed8cda7903b50647b7d0342b805379"}, ] @@ -4445,6 +4638,7 @@ sortedcontainers = "*" name = "pytz" version = "2024.1" description = "World timezone definitions, modern and historical" +category = "main" optional = false python-versions = "*" files = [ @@ -4456,6 +4650,7 @@ files = [ name = "pywin32" version = "306" description = "Python for Window Extensions" +category = "dev" optional = false python-versions = "*" files = [ @@ -4479,6 +4674,7 @@ files = [ name = "pywinpty" version = "2.0.13" description = "Pseudo terminal support for Windows from Python." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -4494,6 +4690,7 @@ files = [ name = "pyyaml" version = "6.0.1" description = "YAML parser and emitter for Python" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -4554,6 +4751,7 @@ files = [ name = "pyyaml-env-tag" version = "0.1" description = "A custom YAML tag for referencing environment variables in YAML files. " +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -4568,6 +4766,7 @@ pyyaml = "*" name = "pyzmq" version = "25.1.2" description = "Python bindings for 0MQ" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -4673,6 +4872,7 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""} name = "qtconsole" version = "5.5.1" description = "Jupyter Qt console" +category = "dev" optional = false python-versions = ">= 3.8" files = [ @@ -4698,6 +4898,7 @@ test = ["flaky", "pytest", "pytest-qt"] name = "qtpy" version = "2.4.1" description = "Provides an abstraction layer on top of the various Qt bindings (PyQt5/6 and PySide2/6)." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4715,6 +4916,7 @@ test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"] name = "ratelimit" version = "2.2.1" description = "API rate limit decorator" +category = "main" optional = false python-versions = "*" files = [ @@ -4725,6 +4927,7 @@ files = [ name = "rdflib" version = "7.0.0" description = "RDFLib is a Python library for working with RDF, a simple yet powerful language for representing information." +category = "main" optional = false python-versions = ">=3.8.1,<4.0.0" files = [ @@ -4746,6 +4949,7 @@ networkx = ["networkx (>=2.0.0,<3.0.0)"] name = "rdflib-jsonld" version = "0.6.1" description = "rdflib extension adding JSON-LD parser and serializer" +category = "main" optional = false python-versions = "*" files = [ @@ -4760,6 +4964,7 @@ rdflib = ">=5.0.0" name = "rdflib-shim" version = "1.0.3" description = "Shim for rdflib 5 and 6 incompatibilities" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4775,6 +4980,7 @@ rdflib-jsonld = "0.6.1" name = "referencing" version = "0.33.0" description = "JSON Referencing + Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -4790,6 +4996,7 @@ rpds-py = ">=0.7.0" name = "regex" version = "2023.12.25" description = "Alternative regular expression module, to replace re." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4892,6 +5099,7 @@ files = [ name = "requests" version = "2.31.0" description = "Python HTTP for Humans." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4913,6 +5121,7 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "requests-cache" version = "1.2.0" description = "A persistent cache for python requests" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -4943,6 +5152,7 @@ yaml = ["pyyaml (>=6.0.1)"] name = "requests-toolbelt" version = "1.0.0" description = "A utility belt for advanced users of python-requests" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -4957,6 +5167,7 @@ requests = ">=2.0.1,<3.0.0" name = "rfc3339-validator" version = "0.1.4" description = "A pure python RFC3339 validator" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -4971,6 +5182,7 @@ six = "*" name = "rfc3986-validator" version = "0.1.1" description = "Pure python rfc3986 validator" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -4982,6 +5194,7 @@ files = [ name = "rfc3987" version = "1.3.8" description = "Parsing and validation of URIs (RFC 3986) and IRIs (RFC 3987)" +category = "main" optional = false python-versions = "*" files = [ @@ -4993,6 +5206,7 @@ files = [ name = "rpds-py" version = "0.18.0" description = "Python bindings to Rust's persistent data structures (rpds)" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -5101,6 +5315,7 @@ files = [ name = "ruamel-yaml" version = "0.18.6" description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -5119,6 +5334,7 @@ jinja2 = ["ruamel.yaml.jinja2 (>=0.2)"] name = "ruamel-yaml-clib" version = "0.2.8" description = "C version of reader, parser and emitter for ruamel.yaml derived from libyaml" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -5178,6 +5394,7 @@ files = [ name = "s3transfer" version = "0.10.0" description = "An Amazon S3 Transfer Manager" +category = "main" optional = true python-versions = ">= 3.8" files = [ @@ -5195,6 +5412,7 @@ crt = ["botocore[crt] (>=1.33.2,<2.0a.0)"] name = "scikit-learn" version = "1.4.1.post1" description = "A set of python modules for machine learning and data mining" +category = "main" optional = true python-versions = ">=3.9" files = [ @@ -5237,6 +5455,7 @@ tests = ["black (>=23.3.0)", "matplotlib (>=3.3.4)", "mypy (>=1.3)", "numpydoc ( name = "scipy" version = "1.12.0" description = "Fundamental algorithms for scientific computing in Python" +category = "main" optional = false python-versions = ">=3.9" files = [ @@ -5279,6 +5498,7 @@ test = ["asv", "gmpy2", "hypothesis", "mpmath", "pooch", "pytest", "pytest-cov", name = "seaborn" version = "0.12.2" description = "Statistical data visualization" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -5300,6 +5520,7 @@ stats = ["scipy (>=1.3)", "statsmodels (>=0.10)"] name = "semsimian" version = "0.2.15" description = "Sematic similarity calculations for ontologies implemented in Rust." +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -5344,6 +5565,7 @@ files = [ name = "semsql" version = "0.3.3" description = "" +category = "main" optional = false python-versions = ">=3.8,<4.0" files = [ @@ -5360,6 +5582,7 @@ SQLAlchemy-Utils = ">=0.38.2,<0.39.0" name = "send2trash" version = "1.8.2" description = "Send file to trash natively under Mac OS X, Windows and Linux" +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -5376,6 +5599,7 @@ win32 = ["pywin32"] name = "setuptools" version = "69.1.1" description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -5392,6 +5616,7 @@ testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jar name = "shexjsg" version = "0.8.2" description = "ShExJSG - Astract Syntax Tree for the ShEx 2.0 language" +category = "dev" optional = false python-versions = "*" files = [ @@ -5406,6 +5631,7 @@ pyjsg = ">=0.11.10" name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -5417,6 +5643,7 @@ files = [ name = "sniffio" version = "1.3.1" description = "Sniff out which async library your code is running under" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5428,6 +5655,7 @@ files = [ name = "snowballstemmer" version = "2.2.0" description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." +category = "dev" optional = false python-versions = "*" files = [ @@ -5439,6 +5667,7 @@ files = [ name = "sortedcontainers" version = "2.4.0" description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set" +category = "main" optional = false python-versions = "*" files = [ @@ -5450,6 +5679,7 @@ files = [ name = "soupsieve" version = "2.5" description = "A modern CSS selector implementation for Beautiful Soup." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -5461,6 +5691,7 @@ files = [ name = "sparqlslurper" version = "0.5.1" description = "SPARQL Slurper for rdflib" +category = "dev" optional = false python-versions = ">=3.7.4" files = [ @@ -5477,6 +5708,7 @@ sparqlwrapper = ">=1.8.2" name = "sparqlwrapper" version = "2.0.0" description = "SPARQL Endpoint interface to Python" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5497,6 +5729,7 @@ pandas = ["pandas (>=1.3.5)"] name = "sphinx" version = "7.2.6" description = "Python documentation generator" +category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -5532,6 +5765,7 @@ test = ["cython (>=3.0)", "filelock", "html5lib", "pytest (>=4.6)", "setuptools name = "sphinx-click" version = "5.1.0" description = "Sphinx extension that automatically documents click applications" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -5548,6 +5782,7 @@ sphinx = ">=2.0" name = "sphinx-copybutton" version = "0.5.1" description = "Add a copy button to each of your code cells." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -5566,6 +5801,7 @@ rtd = ["ipython", "myst-nb", "sphinx", "sphinx-book-theme", "sphinx-examples"] name = "sphinx-rtd-theme" version = "1.3.0" description = "Read the Docs theme for Sphinx" +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -5585,6 +5821,7 @@ dev = ["bump2version", "sphinxcontrib-httpdomain", "transifex-client", "wheel"] name = "sphinxcontrib-applehelp" version = "1.0.8" description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" +category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -5601,6 +5838,7 @@ test = ["pytest"] name = "sphinxcontrib-devhelp" version = "1.0.6" description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" +category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -5617,6 +5855,7 @@ test = ["pytest"] name = "sphinxcontrib-htmlhelp" version = "2.0.5" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" +category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -5633,6 +5872,7 @@ test = ["html5lib", "pytest"] name = "sphinxcontrib-jquery" version = "4.1" description = "Extension to include jQuery on newer Sphinx releases" +category = "dev" optional = false python-versions = ">=2.7" files = [ @@ -5647,6 +5887,7 @@ Sphinx = ">=1.8" name = "sphinxcontrib-jsmath" version = "1.0.1" description = "A sphinx extension which renders display math in HTML via JavaScript" +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -5661,6 +5902,7 @@ test = ["flake8", "mypy", "pytest"] name = "sphinxcontrib-mermaid" version = "0.8.1" description = "Mermaid diagrams in yours Sphinx powered docs" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -5672,6 +5914,7 @@ files = [ name = "sphinxcontrib-qthelp" version = "1.0.7" description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" +category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -5688,6 +5931,7 @@ test = ["pytest"] name = "sphinxcontrib-serializinghtml" version = "1.1.10" description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" +category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -5704,6 +5948,7 @@ test = ["pytest"] name = "sqlalchemy" version = "2.0.28" description = "Database Abstraction Library" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5791,6 +6036,7 @@ sqlcipher = ["sqlcipher3_binary"] name = "sqlalchemy-utils" version = "0.38.3" description = "Various utility functions for SQLAlchemy." +category = "main" optional = false python-versions = "~=3.6" files = [ @@ -5819,6 +6065,7 @@ url = ["furl (>=0.4.1)"] name = "sqlite-fts4" version = "1.0.3" description = "Python functions for working with SQLite FTS4 search" +category = "main" optional = true python-versions = "*" files = [ @@ -5833,6 +6080,7 @@ test = ["pytest"] name = "sqlite-migrate" version = "0.1b0" description = "A simple database migration system for SQLite, based on sqlite-utils" +category = "main" optional = true python-versions = "*" files = [ @@ -5850,6 +6098,7 @@ test = ["black", "mypy", "pytest", "ruff"] name = "sqlite-utils" version = "3.36" description = "CLI tool and Python library for manipulating SQLite databases" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -5876,6 +6125,7 @@ tui = ["trogon"] name = "sssom" version = "0.4.4" description = "Operations on SSSOM mapping tables" +category = "main" optional = false python-versions = ">=3.8,<4.0" files = [ @@ -5903,6 +6153,7 @@ validators = ">=0.20.0" name = "sssom-schema" version = "0.15.0" description = "SSSOM is a Simple Standard for Sharing Ontology Mappings." +category = "main" optional = false python-versions = ">=3.7.6,<4.0.0" files = [ @@ -5918,6 +6169,7 @@ mkdocs-mermaid2-plugin = ">=0.6.0,<0.7.0" name = "stack-data" version = "0.6.3" description = "Extract data from python stack frames and tracebacks for informative displays" +category = "dev" optional = false python-versions = "*" files = [ @@ -5937,6 +6189,7 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] name = "tabulate" version = "0.9.0" description = "Pretty-print tabular data" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -5951,6 +6204,7 @@ widechars = ["wcwidth"] name = "tenacity" version = "8.2.3" description = "Retry code until it succeeds" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5965,6 +6219,7 @@ doc = ["reno", "sphinx", "tornado (>=4.5)"] name = "terminado" version = "0.18.0" description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -5986,6 +6241,7 @@ typing = ["mypy (>=1.6,<2.0)", "traitlets (>=5.11.1)"] name = "threadpoolctl" version = "3.3.0" description = "threadpoolctl" +category = "main" optional = true python-versions = ">=3.8" files = [ @@ -5997,6 +6253,7 @@ files = [ name = "tinycss2" version = "1.2.1" description = "A tiny CSS parser" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -6015,6 +6272,7 @@ test = ["flake8", "isort", "pytest"] name = "tomli" version = "2.0.1" description = "A lil' TOML parser" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -6026,6 +6284,7 @@ files = [ name = "tornado" version = "6.4" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +category = "dev" optional = false python-versions = ">= 3.8" files = [ @@ -6046,6 +6305,7 @@ files = [ name = "tox" version = "4.14.1" description = "tox is a generic virtualenv management and test command line tool" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -6073,6 +6333,7 @@ testing = ["build[virtualenv] (>=1.0.3)", "covdefaults (>=2.3)", "detect-test-po name = "tqdm" version = "4.66.2" description = "Fast, Extensible Progress Meter" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -6093,6 +6354,7 @@ telegram = ["requests"] name = "traitlets" version = "5.14.1" description = "Traitlets Python configuration system" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -6108,6 +6370,7 @@ test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0, name = "types-python-dateutil" version = "2.8.19.20240106" description = "Typing stubs for python-dateutil" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -6119,6 +6382,7 @@ files = [ name = "typing-extensions" version = "4.10.0" description = "Backported and Experimental Type Hints for Python 3.8+" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -6130,6 +6394,7 @@ files = [ name = "tzdata" version = "2024.1" description = "Provider of IANA time zone data" +category = "main" optional = false python-versions = ">=2" files = [ @@ -6141,6 +6406,7 @@ files = [ name = "unidecode" version = "1.3.8" description = "ASCII transliterations of Unicode text" +category = "main" optional = true python-versions = ">=3.5" files = [ @@ -6152,6 +6418,7 @@ files = [ name = "uri-template" version = "1.3.0" description = "RFC 6570 URI Template Processor" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -6166,6 +6433,7 @@ dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake name = "url-normalize" version = "1.4.3" description = "URL normalization for Python" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -6180,6 +6448,7 @@ six = "*" name = "urllib3" version = "1.26.18" description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -6196,6 +6465,7 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] name = "validators" version = "0.22.0" description = "Python Data Validation for Humans™" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -6218,6 +6488,7 @@ tooling-extras = ["pyaml (>=23.7.0)", "pypandoc-binary (>=1.11)", "pytest (>=7.4 name = "virtualenv" version = "20.25.1" description = "Virtual Python Environment builder" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -6238,6 +6509,7 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess name = "watchdog" version = "4.0.0" description = "Filesystem events monitoring" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -6279,6 +6551,7 @@ watchmedo = ["PyYAML (>=3.10)"] name = "wcwidth" version = "0.2.13" description = "Measures the displayed width of unicode strings in a terminal" +category = "dev" optional = false python-versions = "*" files = [ @@ -6290,6 +6563,7 @@ files = [ name = "webcolors" version = "1.13" description = "A library for working with the color formats defined by HTML and CSS." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -6305,6 +6579,7 @@ tests = ["pytest", "pytest-cov"] name = "webencodings" version = "0.5.1" description = "Character encoding aliases for legacy web content" +category = "dev" optional = false python-versions = "*" files = [ @@ -6316,6 +6591,7 @@ files = [ name = "websocket-client" version = "1.7.0" description = "WebSocket client for Python with low level API options" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -6332,6 +6608,7 @@ test = ["websockets"] name = "werkzeug" version = "3.0.1" description = "The comprehensive WSGI web application library." +category = "main" optional = true python-versions = ">=3.8" files = [ @@ -6349,6 +6626,7 @@ watchdog = ["watchdog (>=2.3)"] name = "widgetsnbextension" version = "4.0.10" description = "Jupyter interactive widgets for Jupyter Notebook" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -6360,6 +6638,7 @@ files = [ name = "wrapt" version = "1.16.0" description = "Module for decorators, wrappers and monkey patching." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -6439,6 +6718,7 @@ files = [ name = "yarl" version = "1.9.4" description = "Yet another URL library" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -6542,6 +6822,7 @@ multidict = ">=4.0" name = "zipp" version = "3.17.0" description = "Backport of pathlib-compatible object wrapper for zip files" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -6563,4 +6844,4 @@ semsimian = ["semsimian"] [metadata] lock-version = "2.0" python-versions = ">=3.9,<4.0.0" -content-hash = "1a7d5a135ecd6016d915620c07c4094acd2fc55b0a0e6d90db22d59953ceb16f" +content-hash = "bf4d23af1cff701ffa0c6be74934f5e821f3d2d13e4ba00f0f6ed9d44bffb9b9" diff --git a/pyproject.toml b/pyproject.toml index de91464e4..0d0f68dfc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,7 +19,7 @@ sssom = "^0.4.4" ratelimit = ">=2.2.1" appdirs = ">=1.4.4" semsql = ">=0.3.1" -kgcl-schema = "^0.6.5" +kgcl-schema = "^0.6.8" funowl = ">=0.2.0" gilda = {version = ">=1.0.0", optional = true} diff --git a/src/oaklib/implementations/pronto/pronto_implementation.py b/src/oaklib/implementations/pronto/pronto_implementation.py index aad80f34f..4ed08d72e 100644 --- a/src/oaklib/implementations/pronto/pronto_implementation.py +++ b/src/oaklib/implementations/pronto/pronto_implementation.py @@ -491,7 +491,7 @@ def remove_relationship(self, curie: CURIE, predicate: Optional[PRED_CURIE], fil def definition(self, curie: CURIE, lang: Optional[LANGUAGE_TAG] = None) -> Optional[str]: e = self._entity(curie) - return e.definition if e else None + return str(e.definition) if e and e.definition else None def definitions( self, diff --git a/src/oaklib/utilities/lexical/synonymizer.py b/src/oaklib/utilities/lexical/synonymizer.py index 72e3553e6..a8782a61c 100644 --- a/src/oaklib/utilities/lexical/synonymizer.py +++ b/src/oaklib/utilities/lexical/synonymizer.py @@ -53,12 +53,16 @@ def apply_synonymizer_to_terms( """ Apply synonymizer rules to a list of terms. + Note synonymizer despite its name is not just for synonyms. It can be used to + replace definitions, labels, ... + :param adapter: :param terms: :param ruleset: :param include_all: :return: """ + pred_to_qual = {v: k for k, v in EXTENDED_SCOPE_TO_SYNONYM_PRED_MAP.items()} n = 0 for curie in terms: tvs = list(adapter.entity_alias_map(curie).items()) @@ -76,7 +80,11 @@ def apply_synonymizer_to_terms( ): if replaced: if qualifier is None or qualifier == "": - qualifier = "exact" + if rule.in_place or scope_pred == "definition": + # preserves the original synonym type + qualifier = pred_to_qual.get(scope_pred, scope_pred).lower() + else: + qualifier = "exact" n += 1 change_id = f"kgcl_change_id_{n}" if qualifier == "label": diff --git a/tests/test_implementations/__init__.py b/tests/test_implementations/__init__.py index 006b9f788..fc28f423a 100644 --- a/tests/test_implementations/__init__.py +++ b/tests/test_implementations/__init__.py @@ -172,6 +172,7 @@ def test_definitions(self, oi: BasicOntologyInterface, include_metadata=False): """ test = self.test tdef = oi.definition(NUCLEUS) + assert isinstance(tdef, str) test.assertTrue(tdef.startswith("A membrane-bounded organelle of eukaryotic cells")) test.assertIsNone(oi.definition(FAKE_ID)) if include_metadata: diff --git a/tests/test_utilities/test_synonymizer.py b/tests/test_utilities/test_synonymizer.py index 4f30c5fd5..191a9bf37 100644 --- a/tests/test_utilities/test_synonymizer.py +++ b/tests/test_utilities/test_synonymizer.py @@ -77,17 +77,35 @@ def test_synonymizer(rule, input, expected): [CYTOPLASM], [ ( - "change definition of GO:0005737 from All of the contents of a cell excluding " - "the plasma membrane and nucleus, but including other subcellular structures. " - "to All of the contents of a cell excluding the plasma membrane and " - "NUCLEUS, but including other subcellular structures." + "change definition of GO:0005737 from 'All of the contents of a cell excluding " + "the plasma membrane and nucleus, but including other subcellular structures.' " + "to 'All of the contents of a cell excluding the plasma membrane and " + "NUCLEUS, but including other subcellular structures.'" + ) + ], + ), + ( + Synonymizer( + match=r"All of the contents", + replacement="XYZ", + in_place=True, + ), + True, + [CYTOPLASM], + [ + ( + "change definition of GO:0005737 from 'All of the contents of a cell excluding " + "the plasma membrane and nucleus, but including other subcellular structures.' " + "to 'XYZ of a cell excluding the plasma membrane and " + "nucleus, but including other subcellular structures.'" ) ], ), ], ) def test_syonymizer_on_terms(ruleset, include_all, terms, expected): - adapter = get_adapter(TEST_SIMPLE_ONT) + #adapter = get_adapter(f"simpleobo:{TEST_SIMPLE_ONT}") + adapter = get_adapter(f"{TEST_SIMPLE_ONT}") if isinstance(ruleset, Synonymizer): ruleset = RuleSet(rules=[ruleset]) changes = list(apply_synonymizer_to_terms(adapter, terms, ruleset, include_all=include_all))