From 3d9fe5d4cda6abff21280738cbb7f561d27e3923 Mon Sep 17 00:00:00 2001 From: David Michaels Date: Mon, 29 Jul 2024 18:25:10 -0400 Subject: [PATCH 1/6] Minor updates to dev_servers.py and tests/elasticsearch_fixture.py to allow defining transport_port for elasticsearch for localhost/dev only --- CHANGELOG.rst | 8 ++++++++ pyproject.toml | 2 +- snovault/dev_servers.py | 4 +++- snovault/tests/elasticsearch_fixture.py | 4 +++- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index c980244c2..fdfe73887 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -6,6 +6,14 @@ snovault Change Log ---------- +11.21.1 +======= + +* Minor updates to dev_servers.py and tests/elasticsearch_fixture.py to allow + defining transport_port for elasticsearch, for localhost/dev purposes only, + to allow running (for example) both cgap-portal and smaht-portal simultaneously. + + 11.21.0 ======= diff --git a/pyproject.toml b/pyproject.toml index 0b4ecede9..efa6964a1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "dcicsnovault" -version = "11.21.0" +version = "11.21.0.1b1" # TODO: To become 11.21.1 description = "Storage support for 4DN Data Portals." authors = ["4DN-DCIC Team "] license = "MIT" diff --git a/snovault/dev_servers.py b/snovault/dev_servers.py index 82ee76065..01329a94b 100644 --- a/snovault/dev_servers.py +++ b/snovault/dev_servers.py @@ -173,7 +173,9 @@ def cleanup_process(): es_port = int(es_port) else: es_port = None - elasticsearch = elasticsearch_fixture.server_process(esdata, port=es_port, echo=True) + transport_ports = config.get('elasticsearch.server.transport_ports', None) + elasticsearch = elasticsearch_fixture.server_process(esdata, port=es_port, echo=True, + transport_ports=transport_ports) processes.append(elasticsearch) elif not config.get('indexer.namespace'): raise Exception( diff --git a/snovault/tests/elasticsearch_fixture.py b/snovault/tests/elasticsearch_fixture.py index 94e65da67..b629af800 100644 --- a/snovault/tests/elasticsearch_fixture.py +++ b/snovault/tests/elasticsearch_fixture.py @@ -7,7 +7,7 @@ import tempfile -def server_process(datadir, host='localhost', port=9200, prefix='', echo=False): +def server_process(datadir, host='localhost', port=9200, prefix='', echo=False, transport_ports=None): # args = [ # os.path.join(prefix, 'elasticsearch'), # '-f', # foreground @@ -40,6 +40,8 @@ def server_process(datadir, host='localhost', port=9200, prefix='', echo=False): elif os.path.exists('/etc/elasticsearch'): # elasticsearch.deb setup args.append('-Epath.conf=/etc/elasticsearch') + if isinstance(transport_ports, str) and transport_ports: + args.append(f'-Etransport.port={transport_ports}') # set JVM heap size for ES if not os.environ.get('ES_JAVA_OPTS'): os.environ['ES_JAVA_OPTS'] = "-Xms4G -Xmx4G" From 74476749b5d08e785aedbbe40123890c31dce7f6 Mon Sep 17 00:00:00 2001 From: David Michaels Date: Tue, 30 Jul 2024 10:24:26 -0400 Subject: [PATCH 2/6] Minor updates to dev_servers.py and tests/postgresql_fixture.py to allow parsing sqlalchemy.url in the ini file (e.g. development.ini) for the postgres port and temporary directory path --- CHANGELOG.rst | 10 +++++++--- pyproject.toml | 2 +- snovault/tests/postgresql_fixture.py | 4 ++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index fdfe73887..02cd20808 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -9,9 +9,13 @@ Change Log 11.21.1 ======= -* Minor updates to dev_servers.py and tests/elasticsearch_fixture.py to allow - defining transport_port for elasticsearch, for localhost/dev purposes only, - to allow running (for example) both cgap-portal and smaht-portal simultaneously. +* Minor changes to allow running (for example) both cgap-portal and smaht-portal + simultaneously locally, for localhost/dev purposes only: + - Minor updates to dev_servers.py and tests/elasticsearch_fixture.py + to allow defining transport_port for elasticsearch. + - Minor updates to dev_servers.py and tests/postgresql_fixture.py to allow + parsing sqlalchemy.url in the ini file (e.g. development.ini) for the + postgres port and temporary directory path. 11.21.0 diff --git a/pyproject.toml b/pyproject.toml index efa6964a1..38cf08792 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "dcicsnovault" -version = "11.21.0.1b1" # TODO: To become 11.21.1 +version = "11.21.0.1b2" # TODO: To become 11.21.1 description = "Storage support for 4DN Data Portals." authors = ["4DN-DCIC Team "] license = "MIT" diff --git a/snovault/tests/postgresql_fixture.py b/snovault/tests/postgresql_fixture.py index 62c22322c..0c8030c84 100644 --- a/snovault/tests/postgresql_fixture.py +++ b/snovault/tests/postgresql_fixture.py @@ -56,7 +56,7 @@ def make_snovault_db_test_url(username=SNOVAULT_DB_TEST_USERNAME, return "postgresql://%s@%s:%s/%s%s" % (username, hostname, port, dbname, query_string) -def server_process(datadir, prefix='', echo=False): +def server_process(datadir, prefix='', echo=False, port=None): postgres_command = os.path.join(prefix, 'postgres') @@ -66,7 +66,7 @@ def server_process(datadir, prefix='', echo=False): '-F', # no fsync '-h', SNOVAULT_DB_TEST_HOSTNAME, '-k', datadir, - '-p', str(SNOVAULT_DB_TEST_PORT), + '-p', str(SNOVAULT_DB_TEST_PORT) if port is None else port, ] process = subprocess.Popen( command, From ec6aaede59f6259a1d1f1f89ab9cb3bd0b978e67 Mon Sep 17 00:00:00 2001 From: David Michaels Date: Tue, 30 Jul 2024 10:30:06 -0400 Subject: [PATCH 3/6] Minor updates to dev_servers.py and tests/postgresql_fixture.py to allow parsing sqlalchemy.url in the ini file (e.g. development.ini) for the postgres port and temporary directory path --- pyproject.toml | 2 +- snovault/dev_servers.py | 19 +++++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 38cf08792..8f5f15795 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "dcicsnovault" -version = "11.21.0.1b2" # TODO: To become 11.21.1 +version = "11.21.0.1b3" # TODO: To become 11.21.1 description = "Storage support for 4DN Data Portals." authors = ["4DN-DCIC Team "] license = "MIT" diff --git a/snovault/dev_servers.py b/snovault/dev_servers.py index 01329a94b..7783d503b 100644 --- a/snovault/dev_servers.py +++ b/snovault/dev_servers.py @@ -14,6 +14,7 @@ import shutil import subprocess import sys +from urllib.parse import urlparse as url_parse, parse_qs as url_parse_query from dcicutils.misc_utils import PRINT from pyramid.paster import get_app, get_appsettings @@ -103,7 +104,7 @@ def main(): parser.add_argument('--clear', action="store_true", help="Clear existing data") parser.add_argument('--init', action="store_true", help="Init database") parser.add_argument('--load', action="store_true", help="Load test set") - parser.add_argument('--datadir', default='/tmp/snovault', help="path to datadir") + parser.add_argument('--datadir', default=None, help="path to datadir") parser.add_argument('--no_ingest', action="store_true", default=False, help="Don't start the ingestion process.") args = parser.parse_args() @@ -125,6 +126,20 @@ def run(app_name, config_uri, datadir, clear=False, init=False, load=False, inge # TODO: This variable seems to not get used? -kmp 25-Jul-2020 config = get_appsettings(config_uri, app_name) + if sqlalchemy_url := config.get("sqlalchemy.url", None): + # Handle sqlalchemy.url defined in development.ini that looks something like this: + # sqlalchemy.url = postgresql://postgres@localhost:5442/postgres?host=/tmp/snovaultcgap/pgdata + sqlalchemy_url_parsed = url_parse(sqlalchemy_url) + sqlalchemy_url_port = sqlalchemy_url_parsed.port + sqlalchemy_url_query = url_parse_query(sqlalchemy_url_parsed.query) + if sqlalchemy_url_host := sqlalchemy_url_query.get("host", [None])[0]: + if sqlalchemy_url_host.endswith("/pgdata"): + sqlalchemy_url_host = sqlalchemy_url_host[:-len("/pgdata")] + if (datadir is None) and sqlalchemy_url_host: + datadir = sqlalchemy_url_host + if (os.environ.get("SNOVAULT_DB_TEST_PORT", None) is None) and sqlalchemy_url_port: + os.environ["SNOVAULT_DB_TEST_PORT"] = str(sqlalchemy_url_port) + datadir = os.path.abspath(datadir) pgdata = os.path.join(datadir, 'pgdata') esdata = os.path.join(datadir, 'esdata') @@ -154,7 +169,7 @@ def cleanup_process(): processes = [] # For now - required components - postgres = postgresql_fixture.server_process(pgdata, echo=True) + postgres = postgresql_fixture.server_process(pgdata, echo=True, port=os.environ.get("SNOVAULT_DB_TEST_PORT")) processes.append(postgres) es_server_url = config.get('elasticsearch.server', "localhost") From 9ee730f7fb1d5af69232ea77896282bcd91762a8 Mon Sep 17 00:00:00 2001 From: David Michaels Date: Tue, 30 Jul 2024 11:07:35 -0400 Subject: [PATCH 4/6] Minor updates to dev_servers.py and tests/postgresql_fixture.py to allow parsing sqlalchemy.url in the ini file (e.g. development.ini) for the postgres port and temporary directory path --- pyproject.toml | 2 +- snovault/dev_servers.py | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 8f5f15795..43b65c024 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "dcicsnovault" -version = "11.21.0.1b3" # TODO: To become 11.21.1 +version = "11.21.0.1b4" # TODO: To become 11.21.1 description = "Storage support for 4DN Data Portals." authors = ["4DN-DCIC Team "] license = "MIT" diff --git a/snovault/dev_servers.py b/snovault/dev_servers.py index 7783d503b..e654408b8 100644 --- a/snovault/dev_servers.py +++ b/snovault/dev_servers.py @@ -25,6 +25,7 @@ EPILOG = __doc__ +DEFAULT_DATA_DIR = "/tmp/snovault" logger = logging.getLogger(__name__) @@ -127,8 +128,15 @@ def run(app_name, config_uri, datadir, clear=False, init=False, load=False, inge config = get_appsettings(config_uri, app_name) if sqlalchemy_url := config.get("sqlalchemy.url", None): - # Handle sqlalchemy.url defined in development.ini that looks something like this: - # sqlalchemy.url = postgresql://postgres@localhost:5442/postgres?host=/tmp/snovaultcgap/pgdata + # New as of 2024-07-30 (dmichaels). + # Handle sqlalchemy.url property defined in development.ini that looks something like this: + # sqlalchemy.url = postgresql://postgres@localhost:5442/postgres?host=/tmp/snovault/pgdata + # This allows us to get the temporary data directory (from the URL host query-string, for both + # Postgres and ElasticSearch, e.g. /tmp/snovault) and the Postgres port (from the URL port), + # so that we can easily change where Postgres is running to support (for example) running + # both smaht-portal and cgap-portal locally simultaneously. This also obviates the need + # in the portal makefiles to parse out the port from this (sqlalchemy.url) property to + # set the SNOVAULT_DB_TEST_PORT environment variable as was currently done. sqlalchemy_url_parsed = url_parse(sqlalchemy_url) sqlalchemy_url_port = sqlalchemy_url_parsed.port sqlalchemy_url_query = url_parse_query(sqlalchemy_url_parsed.query) @@ -139,6 +147,8 @@ def run(app_name, config_uri, datadir, clear=False, init=False, load=False, inge datadir = sqlalchemy_url_host if (os.environ.get("SNOVAULT_DB_TEST_PORT", None) is None) and sqlalchemy_url_port: os.environ["SNOVAULT_DB_TEST_PORT"] = str(sqlalchemy_url_port) + if not datadir: + datadir = DEFAULT_DATA_DIR datadir = os.path.abspath(datadir) pgdata = os.path.join(datadir, 'pgdata') From 9494dd4ea5711bbef9f587a44a9f4c7b86c90410 Mon Sep 17 00:00:00 2001 From: David Michaels Date: Mon, 12 Aug 2024 08:49:07 -0400 Subject: [PATCH 5/6] update dcicutils 8.14.0 --- poetry.lock | 194 +++++++++++++++++++++++++++++++++++++++++++------ pyproject.toml | 2 +- 2 files changed, 173 insertions(+), 23 deletions(-) diff --git a/poetry.lock b/poetry.lock index d13b75f29..11f4d58c3 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,9 +1,10 @@ -# This file is automatically @generated by Poetry 1.8.3 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 = "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 = [ @@ -15,6 +16,7 @@ files = [ name = "arrow" version = "1.3.0" description = "Better dates & times for Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -28,12 +30,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 = "async-timeout" version = "4.0.3" description = "Timeout context manager for asyncio programs" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -45,6 +48,7 @@ files = [ name = "attrs" version = "23.2.0" description = "Classes Without Boilerplate" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -64,6 +68,7 @@ tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "p name = "aws-requests-auth" version = "0.4.3" description = "AWS signature version 4 signing process for the python requests module" +category = "main" optional = false python-versions = "*" files = [ @@ -78,6 +83,7 @@ requests = ">=0.14.0" name = "beautifulsoup4" version = "4.12.3" description = "Screen-scraping library" +category = "main" optional = false python-versions = ">=3.6.0" files = [ @@ -97,17 +103,18 @@ lxml = ["lxml"] [[package]] name = "boto3" -version = "1.34.136" +version = "1.34.158" description = "The AWS SDK for Python" +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "boto3-1.34.136-py3-none-any.whl", hash = "sha256:d41037e2c680ab8d6c61a0a4ee6bf1fdd9e857f43996672830a95d62d6f6fa79"}, - {file = "boto3-1.34.136.tar.gz", hash = "sha256:0314e6598f59ee0f34eb4e6d1a0f69fa65c146d2b88a6e837a527a9956ec2731"}, + {file = "boto3-1.34.158-py3-none-any.whl", hash = "sha256:c29e9b7e1034e8734ccaffb9f2b3f3df2268022fd8a93d836604019f8759ce27"}, + {file = "boto3-1.34.158.tar.gz", hash = "sha256:5b7b2ce0ec1e498933f600d29f3e1c641f8c44dd7e468c26795359d23d81fa39"}, ] [package.dependencies] -botocore = ">=1.34.136,<1.35.0" +botocore = ">=1.34.158,<1.35.0" jmespath = ">=0.7.1,<2.0.0" s3transfer = ">=0.10.0,<0.11.0" @@ -118,6 +125,7 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] name = "boto3-stubs" version = "1.34.136" description = "Type annotations for boto3 1.34.136 generated with mypy-boto3-builder 7.24.0" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -522,13 +530,14 @@ xray = ["mypy-boto3-xray (>=1.34.0,<1.35.0)"] [[package]] name = "botocore" -version = "1.34.136" +version = "1.34.158" description = "Low-level, data-driven core of boto 3." +category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "botocore-1.34.136-py3-none-any.whl", hash = "sha256:c63fe9032091fb9e9477706a3ebfa4d0c109b807907051d892ed574f9b573e61"}, - {file = "botocore-1.34.136.tar.gz", hash = "sha256:7f7135178692b39143c8f152a618d2a3b71065a317569a7102d2306d4946f42f"}, + {file = "botocore-1.34.158-py3-none-any.whl", hash = "sha256:0e6fceba1e39bfa8feeba70ba3ac2af958b3387df4bd3b5f2db3f64c1754c756"}, + {file = "botocore-1.34.158.tar.gz", hash = "sha256:5934082e25ad726673afbf466092fb1223dafa250e6e756c819430ba6b1b3da5"}, ] [package.dependencies] @@ -540,12 +549,13 @@ urllib3 = [ ] [package.extras] -crt = ["awscrt (==0.20.11)"] +crt = ["awscrt (==0.21.2)"] [[package]] name = "botocore-stubs" version = "1.34.136" description = "Type annotations and code completion for botocore" +category = "dev" optional = false python-versions = "<4.0,>=3.8" files = [ @@ -563,6 +573,7 @@ botocore = ["botocore"] name = "certifi" version = "2024.6.2" description = "Python package for providing Mozilla's CA Bundle." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -574,6 +585,7 @@ files = [ name = "cffi" version = "1.16.0" description = "Foreign Function Interface for Python calling C code." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -638,6 +650,7 @@ pycparser = "*" name = "chardet" version = "5.2.0" description = "Universal encoding detector for Python 3" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -649,6 +662,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 = [ @@ -748,6 +762,7 @@ files = [ name = "codacy-coverage" version = "1.3.11" description = "Codacy coverage reporter for Python" +category = "dev" optional = false python-versions = "*" files = [ @@ -766,6 +781,7 @@ test = ["coverage", "nosetests"] 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 = [ @@ -777,6 +793,7 @@ files = [ name = "coverage" version = "7.5.4" description = "Code coverage measurement for Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -844,6 +861,7 @@ toml = ["tomli"] name = "cryptography" version = "41.0.7" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -889,6 +907,7 @@ test-randomorder = ["pytest-randomly"] name = "cython" version = "3.0.10" description = "The Cython compiler for writing C extensions in the Python language." +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" files = [ @@ -954,20 +973,21 @@ files = [ [[package]] name = "dcicutils" -version = "8.13.0" +version = "8.14.0" description = "Utility package for interacting with the 4DN Data Portal and other 4DN resources" +category = "main" optional = false python-versions = "<3.13,>=3.8.1" files = [ - {file = "dcicutils-8.13.0-py3-none-any.whl", hash = "sha256:3a443d8f84d845151130b51ea276d4d04193fbbf2e98c91a92228da77ce15f39"}, - {file = "dcicutils-8.13.0.tar.gz", hash = "sha256:34aa712026720626da2f6fa93c9c23a2888d6b6074c3b934daf509aa83220dd1"}, + {file = "dcicutils-8.14.0-py3-none-any.whl", hash = "sha256:cf317c21ebd36d6149a9136858f606b8195bbfad98cd210146409d724197c959"}, + {file = "dcicutils-8.14.0.tar.gz", hash = "sha256:cae1627f5244f76d9bda706a0c6028da0a99da7d164ff4e285aa60f82c5555cb"}, ] [package.dependencies] appdirs = ">=1.4.4,<2.0.0" aws-requests-auth = ">=0.4.2,<1" -boto3 = ">=1.34.136,<2.0.0" -botocore = ">=1.34.136,<2.0.0" +boto3 = ">=1.34.147,<2.0.0" +botocore = ">=1.34.147,<2.0.0" chardet = ">=5.2.0,<6.0.0" docker = ">=4.4.4,<5.0.0" elasticsearch = "7.13.4" @@ -983,7 +1003,7 @@ pyramid = "1.10.8" pytz = ">=2020.4" PyYAML = ">=6.0.1,<7.0.0" redis = ">=4.5.1,<5.0.0" -requests = ">=2.21.0,<3.0.0" +requests = "2.31.0" rfc3986 = ">=1.4.0,<2.0.0" shortuuid = ">=1.0.13,<2.0.0" structlog = ">=19.2.0,<20.0.0" @@ -997,6 +1017,7 @@ webtest = ">=2.0.34,<3.0.0" name = "docker" version = "4.4.4" description = "A Python library for the Docker Engine API." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1018,6 +1039,7 @@ tls = ["cryptography (>=1.3.4)", "idna (>=2.0.0)", "pyOpenSSL (>=17.5.0)"] name = "docutils" version = "0.21.2" description = "Docutils -- Python Documentation Utilities" +category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -1029,6 +1051,7 @@ files = [ name = "elasticsearch" version = "7.13.4" description = "Python client for Elasticsearch" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4" files = [ @@ -1050,6 +1073,7 @@ requests = ["requests (>=2.4.0,<3.0.0)"] name = "elasticsearch-dsl" version = "7.4.1" description = "Python client for Elasticsearch" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1069,6 +1093,7 @@ develop = ["coverage (<5.0.0)", "mock", "pytest (>=3.0.0)", "pytest-cov", "pytes name = "et-xmlfile" version = "1.1.0" description = "An implementation of lxml.xmlfile for the standard library" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1080,6 +1105,7 @@ files = [ name = "events" version = "0.5" description = "Bringing the elegance of C# EventHandler to Python" +category = "main" optional = false python-versions = "*" files = [ @@ -1090,6 +1116,7 @@ files = [ name = "exceptiongroup" version = "1.2.1" description = "Backport of PEP 654 (exception groups)" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1104,6 +1131,7 @@ test = ["pytest (>=6)"] name = "flake8" version = "7.1.0" description = "the modular source code checker: pep8 pyflakes and co" +category = "dev" optional = false python-versions = ">=3.8.1" files = [ @@ -1120,6 +1148,7 @@ pyflakes = ">=3.2.0,<3.3.0" name = "flaky" version = "3.8.1" description = "Plugin for pytest that automatically reruns flaky tests." +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -1131,6 +1160,7 @@ files = [ name = "fqdn" version = "1.5.1" description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" +category = "main" optional = false python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" files = [ @@ -1142,6 +1172,7 @@ files = [ name = "future" version = "0.18.3" description = "Clean single-source support for Python 3 and 2" +category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1152,6 +1183,7 @@ files = [ name = "gitdb" version = "4.0.11" description = "Git Object Database" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1166,6 +1198,7 @@ smmap = ">=3.0.1,<6" name = "gitpython" version = "3.1.43" description = "GitPython is a Python library used to interact with Git repositories" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1184,6 +1217,7 @@ test = ["coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", name = "greenlet" version = "3.0.3" description = "Lightweight in-process concurrent programming" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1255,6 +1289,7 @@ test = ["objgraph", "psutil"] name = "html5lib" version = "1.1" description = "HTML parser based on the WHATWG HTML specification" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1276,6 +1311,7 @@ lxml = ["lxml"] name = "humanfriendly" version = "1.44.9" description = "Human friendly output for text interfaces using Python" +category = "main" optional = false python-versions = "*" files = [ @@ -1287,6 +1323,7 @@ files = [ name = "hupper" version = "1.12.1" description = "Integrated process monitor for developing and reloading daemons." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1302,6 +1339,7 @@ testing = ["mock", "pytest", "pytest-cov", "watchdog"] name = "idna" version = "3.7" description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1313,6 +1351,7 @@ files = [ name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1324,6 +1363,7 @@ files = [ name = "isodate" version = "0.6.1" description = "An ISO 8601 date/time/duration parser and formatter" +category = "main" optional = false python-versions = "*" files = [ @@ -1338,6 +1378,7 @@ six = "*" name = "isoduration" version = "20.11.0" description = "Operations with ISO 8601 durations" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1352,6 +1393,7 @@ arrow = ">=0.15.0" name = "jinja2" version = "3.1.4" description = "A very fast and expressive template engine." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1369,6 +1411,7 @@ i18n = ["Babel (>=2.7)"] name = "jmespath" version = "1.0.1" description = "JSON Matching Expressions" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1380,6 +1423,7 @@ files = [ name = "joblib" version = "1.4.2" description = "Lightweight pipelining with Python functions" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1391,6 +1435,7 @@ files = [ name = "jsonc-parser" version = "1.1.5" description = "A lightweight, native tool for parsing .jsonc files" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1402,6 +1447,7 @@ files = [ name = "jsonpointer" version = "3.0.0" description = "Identify specific nodes in a JSON document (RFC 6901)" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1413,6 +1459,7 @@ files = [ name = "jsonschema" version = "4.22.0" description = "An implementation of JSON Schema validation for Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1442,6 +1489,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 = [ @@ -1456,6 +1504,7 @@ referencing = ">=0.31.0" name = "markupsafe" version = "2.1.5" description = "Safely add untrusted strings to HTML/XML markup." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1525,6 +1574,7 @@ files = [ name = "mccabe" version = "0.7.0" description = "McCabe checker, plugin for flake8" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1536,6 +1586,7 @@ files = [ name = "mirakuru" version = "2.5.2" description = "Process executor (not only) for tests." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1550,6 +1601,7 @@ psutil = {version = ">=4.0.0", markers = "sys_platform != \"cygwin\""} name = "moto" version = "4.2.14" description = "" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1594,6 +1646,7 @@ xray = ["aws-xray-sdk (>=0.93,!=0.96)", "setuptools"] name = "netaddr" version = "0.10.1" description = "A network address manipulation library for Python" +category = "main" optional = false python-versions = "*" files = [ @@ -1605,6 +1658,7 @@ files = [ name = "numpy" version = "1.26.4" description = "Fundamental package for array computing in Python" +category = "main" optional = false python-versions = ">=3.9" files = [ @@ -1650,6 +1704,7 @@ files = [ name = "openpyxl" version = "3.1.5" description = "A Python library to read/write Excel 2010 xlsx/xlsm files" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1664,6 +1719,7 @@ et-xmlfile = "*" name = "opensearch-py" version = "2.6.0" description = "Python client for OpenSearch" +category = "main" optional = false python-versions = "<4,>=3.8" files = [ @@ -1692,6 +1748,7 @@ kerberos = ["requests-kerberos"] name = "packaging" version = "24.1" description = "Core utilities for Python packages" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1703,6 +1760,7 @@ files = [ name = "pandas" version = "2.2.2" description = "Powerful data structures for data analysis, time series, and statistics" +category = "main" optional = false python-versions = ">=3.9" files = [ @@ -1776,6 +1834,7 @@ xml = ["lxml (>=4.9.2)"] name = "passlib" version = "1.7.4" description = "comprehensive password hashing framework supporting over 30 schemes" +category = "main" optional = false python-versions = "*" files = [ @@ -1793,6 +1852,7 @@ totp = ["cryptography"] name = "pastedeploy" version = "1.5.2" description = "Load, configure, and compose WSGI applications and servers" +category = "main" optional = false python-versions = "*" files = [ @@ -1807,6 +1867,7 @@ paste = ["Paste"] name = "patsy" version = "0.5.6" description = "A Python package for describing statistical models and for building design matrices." +category = "main" optional = false python-versions = "*" files = [ @@ -1825,6 +1886,7 @@ test = ["pytest", "pytest-cov", "scipy"] name = "pillow" version = "9.5.0" description = "Python Imaging Library (Fork)" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1904,6 +1966,7 @@ tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "pa name = "pip" version = "24.1.1" description = "The PyPA recommended tool for installing Python packages." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1915,6 +1978,7 @@ files = [ name = "pipdeptree" version = "2.23.0" description = "Command line utility to show dependency tree of packages." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1934,6 +1998,7 @@ test = ["covdefaults (>=2.3)", "diff-cover (>=8.0.1)", "pytest (>=7.4.3)", "pyte name = "plaster" version = "1.0" description = "A loader interface around multiple config file formats." +category = "main" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" files = [ @@ -1952,6 +2017,7 @@ testing = ["pytest", "pytest-cov"] name = "plaster-pastedeploy" version = "0.6" description = "A loader implementing the PasteDeploy syntax to be used by plaster." +category = "main" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" files = [ @@ -1970,6 +2036,7 @@ testing = ["pytest", "pytest-cov"] name = "pluggy" version = "1.5.0" description = "plugin and hook calling mechanisms for python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1985,6 +2052,7 @@ testing = ["pytest", "pytest-benchmark"] name = "pmdarima" version = "2.0.4" description = "Python's forecast::auto.arima equivalent" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2036,6 +2104,7 @@ urllib3 = "*" name = "port-for" version = "0.7.2" description = "Utility that helps with local TCP ports management. It can find an unused TCP localhost port and remember the association." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2047,6 +2116,7 @@ files = [ name = "psutil" version = "5.9.8" description = "Cross-platform lib for process and system monitoring in Python." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -2075,6 +2145,7 @@ test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] name = "psycopg2-binary" version = "2.9.9" description = "psycopg2 - Python-PostgreSQL Database Adapter" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2156,6 +2227,7 @@ files = [ name = "pybrowserid" version = "0.14.0" description = "Python library for the BrowserID Protocol" +category = "main" optional = false python-versions = "*" files = [ @@ -2170,6 +2242,7 @@ requests = "*" name = "pycodestyle" version = "2.12.0" description = "Python style guide checker" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2181,6 +2254,7 @@ files = [ name = "pycparser" version = "2.22" description = "C parser in Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2192,6 +2266,7 @@ files = [ name = "pyflakes" version = "3.2.0" description = "passive checker of Python programs" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2203,6 +2278,7 @@ files = [ name = "pyjwt" version = "2.8.0" description = "JSON Web Token implementation in Python" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2220,6 +2296,7 @@ tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] name = "pyopenssl" version = "23.3.0" description = "Python wrapper module around the OpenSSL library" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2238,6 +2315,7 @@ test = ["flaky", "pretend", "pytest (>=3.0.1)"] 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 = [ @@ -2252,6 +2330,7 @@ diagrams = ["jinja2", "railroad-diagrams"] name = "pyperclip" version = "1.9.0" description = "A cross-platform clipboard module for Python. (Only handles plain text for now.)" +category = "main" optional = false python-versions = "*" files = [ @@ -2262,6 +2341,7 @@ files = [ name = "pyramid" version = "1.10.8" description = "The Pyramid Web Framework, a Pylons project" +category = "main" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" files = [ @@ -2288,6 +2368,7 @@ testing = ["coverage", "nose", "virtualenv", "webtest (>=1.3.1)", "zope.componen name = "pyramid-multiauth" version = "0.9.0" description = "pyramid_multiauth" +category = "main" optional = false python-versions = "*" files = [ @@ -2302,6 +2383,7 @@ pyramid = "*" name = "pyramid-retry" version = "1.0" description = "An execution policy for Pyramid that supports retrying requests after certain failure exceptions." +category = "main" optional = false python-versions = "*" files = [ @@ -2321,6 +2403,7 @@ testing = ["WebTest", "pytest", "pytest-cov"] name = "pyramid-tm" version = "2.5" description = "A package which allows Pyramid requests to join the active transaction" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2340,6 +2423,7 @@ testing = ["WebTest", "coverage (>=5.0)", "pytest", "pytest-cov"] name = "pyramid-translogger" version = "0.1" description = "access log logger tween (almost stolen from Paste.translogger)" +category = "main" optional = false python-versions = "*" files = [ @@ -2353,6 +2437,7 @@ setuptools = "*" name = "pytest" version = "7.4.4" description = "pytest: simple powerful testing with Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2375,6 +2460,7 @@ testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "no name = "pytest-cov" version = "5.0.0" description = "Pytest plugin for measuring coverage." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2393,6 +2479,7 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] name = "pytest-instafail" version = "0.5.0" description = "pytest plugin to show failures instantly" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2407,6 +2494,7 @@ pytest = ">=5" name = "pytest-mock" version = "3.14.0" description = "Thin-wrapper around the mock package for easier use with pytest" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2424,6 +2512,7 @@ dev = ["pre-commit", "pytest-asyncio", "tox"] name = "pytest-redis" version = "2.4.0" description = "Redis fixtures and fixture factories for Pytest." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2444,6 +2533,7 @@ tests = ["mock", "pytest-cov", "pytest-xdist"] name = "pytest-runner" version = "6.0.1" description = "Invoke py.test as distutils command with dependency resolution" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2459,6 +2549,7 @@ testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", name = "pytest-timeout" version = "2.3.1" description = "pytest plugin to abort hanging tests" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2473,6 +2564,7 @@ pytest = ">=7.0.0" 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 = [ @@ -2487,6 +2579,7 @@ six = ">=1.5" name = "python-magic" version = "0.4.27" description = "File type identification using libmagic" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -2498,6 +2591,7 @@ files = [ name = "pytz" version = "2024.1" description = "World timezone definitions, modern and historical" +category = "main" optional = false python-versions = "*" files = [ @@ -2509,6 +2603,7 @@ files = [ name = "pywin32" version = "227" description = "Python for Window Extensions" +category = "main" optional = false python-versions = "*" files = [ @@ -2530,6 +2625,7 @@ files = [ name = "pyyaml" version = "6.0.1" description = "YAML parser and emitter for Python" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2590,6 +2686,7 @@ files = [ name = "rdflib" version = "4.2.2" description = "RDFLib is a Python library for working with RDF, a simple yet powerful language for representing information." +category = "main" optional = false python-versions = "*" files = [ @@ -2609,6 +2706,7 @@ sparql = ["SPARQLWrapper"] name = "rdflib-jsonld" version = "0.6.0" description = "rdflib extension adding JSON-LD parser and serializer" +category = "main" optional = false python-versions = "*" files = [ @@ -2623,6 +2721,7 @@ rdflib = "*" name = "redis" version = "4.6.0" description = "Python client for Redis database and key-value store" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2641,6 +2740,7 @@ ocsp = ["cryptography (>=36.0.1)", "pyopenssl (==20.0.1)", "requests (>=2.26.0)" name = "referencing" version = "0.35.1" description = "JSON Referencing + Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2656,6 +2756,7 @@ rpds-py = ">=0.7.0" name = "repoze-debug" version = "1.1" description = "Forensic debugging WSGI middleware" +category = "dev" optional = false python-versions = "*" files = [ @@ -2672,13 +2773,14 @@ testing = ["WebOb", "coverage", "nose"] [[package]] name = "requests" -version = "2.32.3" +version = "2.31.0" description = "Python HTTP for Humans." +category = "main" optional = false -python-versions = ">=3.8" +python-versions = ">=3.7" files = [ - {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, - {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, + {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, + {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, ] [package.dependencies] @@ -2695,6 +2797,7 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "responses" version = "0.25.3" description = "A utility library for mocking out the `requests` Python library." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2714,6 +2817,7 @@ tests = ["coverage (>=6.0.0)", "flake8", "mypy", "pytest (>=7.0.0)", "pytest-asy name = "rfc3339-validator" version = "0.1.4" description = "A pure python RFC3339 validator" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -2728,6 +2832,7 @@ six = "*" name = "rfc3986" version = "1.5.0" description = "Validating URI References per RFC 3986" +category = "main" optional = false python-versions = "*" files = [ @@ -2742,6 +2847,7 @@ idna2008 = ["idna"] name = "rfc3986-validator" version = "0.1.1" description = "Pure python rfc3986 validator" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -2753,6 +2859,7 @@ files = [ name = "rpds-py" version = "0.18.1" description = "Python bindings to Rust's persistent data structures (rpds)" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2861,6 +2968,7 @@ files = [ name = "rutter" version = "0.4" description = "Py3k-compatible fork of Paste's urlmap" +category = "main" optional = false python-versions = "*" files = [ @@ -2878,6 +2986,7 @@ testing = ["WebTest", "coverage", "pytest", "pytest-cov"] name = "s3transfer" version = "0.10.2" description = "An Amazon S3 Transfer Manager" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2895,6 +3004,7 @@ crt = ["botocore[crt] (>=1.33.2,<2.0a.0)"] name = "scikit-learn" version = "1.5.0" description = "A set of python modules for machine learning and data mining" +category = "main" optional = false python-versions = ">=3.9" files = [ @@ -2940,6 +3050,7 @@ tests = ["black (>=24.3.0)", "matplotlib (>=3.3.4)", "mypy (>=1.9)", "numpydoc ( name = "scipy" version = "1.13.1" description = "Fundamental algorithms for scientific computing in Python" +category = "main" optional = false python-versions = ">=3.9" files = [ @@ -2982,6 +3093,7 @@ test = ["array-api-strict", "asv", "gmpy2", "hypothesis (>=6.30)", "mpmath", "po name = "setuptools" version = "70.1.1" description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2997,6 +3109,7 @@ testing = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metad name = "shortuuid" version = "1.0.13" description = "A generator library for concise, unambiguous and URL-safe UUIDs." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -3008,6 +3121,7 @@ files = [ name = "simplejson" version = "3.19.2" description = "Simple, fast, extensible JSON encoder/decoder for Python" +category = "main" optional = false python-versions = ">=2.5, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -3115,6 +3229,7 @@ files = [ 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 = [ @@ -3126,6 +3241,7 @@ files = [ name = "smmap" version = "5.0.1" description = "A pure Python implementation of a sliding window memory map manager" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3137,6 +3253,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 = [ @@ -3148,6 +3265,7 @@ files = [ name = "sparqlwrapper" version = "1.8.5" description = "SPARQL Endpoint interface to Python" +category = "main" optional = false python-versions = "*" files = [ @@ -3166,6 +3284,7 @@ keepalive = ["keepalive (>=0.5)"] name = "sqlalchemy" version = "1.4.52" description = "Database Abstraction Library" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -3218,7 +3337,7 @@ files = [ ] [package.dependencies] -greenlet = {version = "!=0.4.17", markers = "python_version >= \"3\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")"} +greenlet = {version = "!=0.4.17", markers = "python_version >= \"3\" and platform_machine == \"aarch64\" or python_version >= \"3\" and platform_machine == \"ppc64le\" or python_version >= \"3\" and platform_machine == \"x86_64\" or python_version >= \"3\" and platform_machine == \"amd64\" or python_version >= \"3\" and platform_machine == \"AMD64\" or python_version >= \"3\" and platform_machine == \"win32\" or python_version >= \"3\" and platform_machine == \"WIN32\""} [package.extras] aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] @@ -3245,6 +3364,7 @@ sqlcipher = ["sqlcipher3_binary"] name = "statsmodels" version = "0.14.2" description = "Statistical computations and models for Python" +category = "main" optional = false python-versions = ">=3.9" files = [ @@ -3290,6 +3410,7 @@ docs = ["ipykernel", "jupyter-client", "matplotlib", "nbconvert", "nbformat", "n name = "structlog" version = "19.2.0" description = "Structured Logging for Python" +category = "main" optional = false python-versions = "*" files = [ @@ -3310,6 +3431,7 @@ tests = ["coverage", "freezegun (>=0.2.8)", "pretend", "pytest (>=3.3.0)", "pyth name = "subprocess-middleware" version = "0.3" description = "Subprocess WSGI middleware and Pyramid tween." +category = "main" optional = false python-versions = "*" files = [ @@ -3326,6 +3448,7 @@ test = ["WebTest", "pyramid", "pytest"] name = "threadpoolctl" version = "3.5.0" description = "threadpoolctl" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3337,6 +3460,7 @@ files = [ name = "toml" version = "0.10.2" description = "Python Library for Tom's Obvious, Minimal Language" +category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -3348,6 +3472,7 @@ files = [ name = "tomli" version = "2.0.1" description = "A lil' TOML parser" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3359,6 +3484,7 @@ files = [ name = "tqdm" version = "4.66.4" description = "Fast, Extensible Progress Meter" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3379,6 +3505,7 @@ telegram = ["requests"] name = "transaction" version = "3.1.0" description = "Transaction management for Python" +category = "main" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" files = [ @@ -3398,6 +3525,7 @@ testing = ["coverage", "mock", "nose"] name = "translationstring" version = "1.4" description = "Utility library for i18n relied on by various Repoze and Pyramid packages" +category = "main" optional = false python-versions = "*" files = [ @@ -3412,6 +3540,7 @@ docs = ["Sphinx (>=1.3.1)", "docutils", "pylons-sphinx-themes"] name = "types-awscrt" version = "0.20.12" description = "Type annotations and code completion for awscrt" +category = "dev" optional = false python-versions = "<4.0,>=3.7" files = [ @@ -3423,6 +3552,7 @@ files = [ name = "types-python-dateutil" version = "2.9.0.20240316" description = "Typing stubs for python-dateutil" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3434,6 +3564,7 @@ files = [ name = "types-s3transfer" version = "0.10.1" description = "Type annotations and code completion for s3transfer" +category = "dev" optional = false python-versions = "<4.0,>=3.8" files = [ @@ -3445,6 +3576,7 @@ files = [ name = "typing-extensions" version = "4.12.2" description = "Backported and Experimental Type Hints for Python 3.8+" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3456,6 +3588,7 @@ files = [ name = "tzdata" version = "2024.1" description = "Provider of IANA time zone data" +category = "main" optional = false python-versions = ">=2" files = [ @@ -3467,6 +3600,7 @@ files = [ name = "uri-template" version = "1.3.0" description = "RFC 6570 URI Template Processor" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3481,6 +3615,7 @@ dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake name = "urllib3" version = "1.26.19" description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -3497,6 +3632,7 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] name = "venusian" version = "3.1.0" description = "A library for deferring decorator actions" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3512,6 +3648,7 @@ testing = ["coverage", "pytest", "pytest-cov"] name = "waitress" version = "3.0.0" description = "Waitress WSGI server" +category = "main" optional = false python-versions = ">=3.8.0" files = [ @@ -3527,6 +3664,7 @@ testing = ["coverage (>=5.0)", "pytest", "pytest-cov"] name = "webcolors" version = "24.6.0" description = "A library for working with the color formats defined by HTML and CSS." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3542,6 +3680,7 @@ tests = ["coverage[toml]"] name = "webencodings" version = "0.5.1" description = "Character encoding aliases for legacy web content" +category = "main" optional = false python-versions = "*" files = [ @@ -3553,6 +3692,7 @@ files = [ name = "webob" version = "1.8.7" description = "WSGI request and response object" +category = "main" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*" files = [ @@ -3568,6 +3708,7 @@ testing = ["coverage", "pytest (>=3.1.0)", "pytest-cov", "pytest-xdist"] name = "websocket-client" version = "1.8.0" description = "WebSocket client for Python with low level API options" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3584,6 +3725,7 @@ test = ["websockets"] name = "webtest" version = "2.0.35" description = "Helper to test WSGI applications" +category = "main" optional = false python-versions = "*" files = [ @@ -3605,6 +3747,7 @@ tests = ["PasteDeploy", "WSGIProxy2", "coverage", "mock", "nose (<1.3.0)", "pyqu name = "werkzeug" version = "3.0.3" description = "The comprehensive WSGI web application library." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3622,6 +3765,7 @@ watchdog = ["watchdog (>=2.3)"] name = "wheel" version = "0.43.0" description = "A built-package format for Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3636,6 +3780,7 @@ test = ["pytest (>=6.0.0)", "setuptools (>=65)"] name = "wsgiproxy2" version = "0.4.2" description = "UNKNOWN" +category = "main" optional = false python-versions = "*" files = [ @@ -3650,6 +3795,7 @@ webob = "*" name = "xlrd" version = "1.2.0" description = "Library for developers to extract data from Microsoft Excel (tm) spreadsheet files" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -3661,6 +3807,7 @@ files = [ name = "xmltodict" version = "0.13.0" description = "Makes working with XML feel like you are working with JSON" +category = "dev" optional = false python-versions = ">=3.4" files = [ @@ -3672,6 +3819,7 @@ files = [ name = "zope-deprecation" version = "4.4.0" description = "Zope Deprecation Infrastructure" +category = "main" optional = false python-versions = "*" files = [ @@ -3690,6 +3838,7 @@ test = ["zope.testrunner"] name = "zope-interface" version = "5.5.2" description = "Interfaces for Python" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -3743,6 +3892,7 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] name = "zope-sqlalchemy" version = "1.6" description = "Minimal Zope/SQLAlchemy transaction integration" +category = "main" optional = false python-versions = "*" files = [ @@ -3762,4 +3912,4 @@ test = ["zope.testing"] [metadata] lock-version = "2.0" python-versions = ">=3.9,<3.13" -content-hash = "04e072ff83764d3b1b7ba3e3dee812c84b3fd005e1de6ffba83cefa0c8de8d90" +content-hash = "48947c47d15df16d51e6a72f41151e9b1e4571192d0e5b49817b9f37ae93970b" diff --git a/pyproject.toml b/pyproject.toml index 43b65c024..afdb6d638 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -46,7 +46,7 @@ elasticsearch = "7.13.4" # versions >= 7.14.0 lock out AWS ES elasticsearch_dsl = "^7.4.0" #python-3.12 elasticsearch = "^7.17.9" #python-3.12 elasticsearch_dsl = "^7.4.1" -dcicutils = "^8.13.0" +dcicutils = "^8.14.0" future = "^0.18.3" html5lib = ">=1.1" # experimental, should be OK now that we're not using moto server humanfriendly = "^1.44.9" From 54959f1cbc2715dcb3da5f7887fa33f713e9bdab Mon Sep 17 00:00:00 2001 From: David Michaels Date: Mon, 12 Aug 2024 08:49:58 -0400 Subject: [PATCH 6/6] udpate version 11.21.1 - ready to merge pr-302 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index afdb6d638..d6f0051b8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "dcicsnovault" -version = "11.21.0.1b4" # TODO: To become 11.21.1 +version = "11.21.1" description = "Storage support for 4DN Data Portals." authors = ["4DN-DCIC Team "] license = "MIT"