From a4a1246392ba159f23ccd21303cc061b31bdfb95 Mon Sep 17 00:00:00 2001 From: sarahgonicholson Date: Fri, 28 Feb 2025 14:53:20 -0500 Subject: [PATCH 01/13] Add dsa mappings and update duplexseq mappings --- submitr/config/custom_column_mappings.json | 208 ++++++++++++++++++++- 1 file changed, 200 insertions(+), 8 deletions(-) diff --git a/submitr/config/custom_column_mappings.json b/submitr/config/custom_column_mappings.json index cb9fca5a31..f9ca2e648e 100644 --- a/submitr/config/custom_column_mappings.json +++ b/submitr/config/custom_column_mappings.json @@ -1,11 +1,11 @@ { "version": "1.0.0", "sheet_mappings": { - "ExternalQualityMetric": "external_quality_metric", - "AnotherTypeForCustomColumnMappingsHere": "another_custom_column_mappings_here" + "DuplexSeq_ExternalQualityMetric": "duplexseq_external_quality_metric", + "DSA_ExternalQualityMetric": "dsa_external_quality_metric" }, "column_mappings": { - "external_quality_metric": { + "duplexseq_external_quality_metric": { "total_raw_reads_sequenced": { "qc_values#.derived_from": "{name}", "qc_values#.value": "{value:integer}", @@ -54,25 +54,217 @@ "qc_values#.key": "Number of Final Post-filtering Consensus Interrogated Base Pairs", "qc_values#.tooltip": "After applying all filters for variant calling, e.e. Mapping quality, Low complexity regions, a4s2 duplex reconstruction criteria, etc." }, + "genome_coverage_1x": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value:float}", + "qc_values#.key": "Fraction of Genome Coverage at Specific Depths Post-filtering >=1X", + "qc_values#.tooltip": "null" + }, + "genome_coverage_2x": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value:float}", + "qc_values#.key": "Fraction of Genome Coverage at Specific Depths Post-filtering >=2X", + "qc_values#.tooltip": "null" + }, + "genome_coverage_3x": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value:float}", + "qc_values#.key": "Fraction of Genome Coverage at Specific Depths Post-filtering >=3X", + "qc_values#.tooltip": "null" + }, + "genome_coverage_4x": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value:float}", + "qc_values#.key": "Fraction of Genome Coverage at Specific Depths Post-filtering >=4X", + "qc_values#.tooltip": "null" + }, + "germline_homozygous_snv_count_by_molecule": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value:integer}", + "qc_values#.key": "Germline Homozygous SNV Count by Molecule", + "qc_values#.tooltip": "null" + }, + "germline_heterozygous_snv_count_by_molecule": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value:integer}", + "qc_values#.key": "Germline Heterozygous SNV Count by Molecule", + "qc_values#.tooltip": "null" + }, "somatic_snv_count_by_molecule": { "qc_values#.derived_from": "{name}", "qc_values#.value": "{value:integer}", "qc_values#.key": "Somatic SNV Count by Molecule", "qc_values#.tooltip": null }, + "snv_detection_rate_by_molecule": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value:float}", + "qc_values#.key": "SNV Detection Rate by Molecule", + "qc_values#.tooltip": "Detected germline mutations / total germline mutations" + }, "snv_mutation_burden_by_molecule": { "qc_values#.derived_from": "{name}", "qc_values#.value": "{value:float}", "qc_values#.key": "Somatic SNV Mutation Burden by Molecule", "qc_values#.tooltip": "Detected somatic mutation / final consensus interrogated base pairs" + }, + "germline_homozygous_snv_count_by_allele": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value:integer}", + "qc_values#.key": "Germline Homozygous SNV Count by Allele", + "qc_values#.tooltip": "null" + }, + "germline_heterozygous_snv_count_by_allele": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value:integer}", + "qc_values#.key": "Germline Heterozygous SNV Count by Allele", + "qc_values#.tooltip": "null" + }, + "somatic_snv_count_by_allele": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value:integer}", + "qc_values#.key": "Somatic SNV Count by Allele", + "qc_values#.tooltip": null + }, + "snv_mutation_burden_by_allele": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value:float}", + "qc_values#.key": "Somatic SNV Mutation Burden by Allele", + "qc_values#.tooltip": "Detected somatic mutation / final consensus interrogated base pairs" + }, + "germline_indel_count_by_molecule": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value:integer}", + "qc_values#.key": "Germline Indel Count by Molecule", + "qc_values#.tooltip": null + }, + "somatic_indel_count_by_molecule": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value:integer}", + "qc_values#.key": "Somatic Indel Count by Molecule", + "qc_values#.tooltip": null + }, + "indel_mutation_burden_by_molecule": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value:integer}", + "qc_values#.key": "Somatic Indel Mutation Burden by Molecule", + "qc_values#.tooltip": "Detected somatic indels / detection rate (i.e. detected somatic indels/ detected germline indels * total germline indels)" + }, + "germline_indel_count_by_allele": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value:integer}", + "qc_values#.key": "Germline Indel Count by Allele", + "qc_values#.tooltip": null + }, + "somatic_indel_count_by_allele": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value:integer}", + "qc_values#.key": "Somatic Indel Count by Allele", + "qc_values#.tooltip": null + }, + "indel_mutation_burden_by_allele": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value:float}", + "qc_values#.key": "Somatic Indel Mutation Burden by Allele", + "qc_values#.tooltip": null } }, - "another_custom_column_mappings_here": { - "your_custom_column_name": { + "dsa_external_quality_metric": { + "contig_l50": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value: integer}", + "qc_values#.key": "Contig L50", + "qc_values#.tooltip": "L50 of contigs: the count of the smallest number of contigs whose total length makes up 50% of the assembly size" + }, + "contig_n50": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value: integer}", + "qc_values#.key": "Contig N50", + "qc_values#.tooltip": "N50 of contigs: the sequence length of the shortest contig at 50% of the total assembly length (bp)" + }, + "gaps_between_scaffolds": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value: integer}", + "qc_values#.key": "Gapps Between Scaffolds", + "qc_values#.tooltip": "Number of gaps between scaffolds" + }, + "gc_content": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value: float}", + "qc_values#.key": "GC Content", + "qc_values#.tooltip": "GC content of assembly excluding N (%)" + }, + "largest_contig_size": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value: integer}", + "qc_values#.key": "Largest Contig Size", + "qc_values#.tooltip": "Size of the largest contig in the assembly (bp)" + }, + "number_of_contigs": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value: integer}", + "qc_values#.key": "Number of Contigs", + "qc_values#.tooltip": "Number of contigs in the assembly" + }, + "number_of_scaffolds": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value: integer}", + "qc_values#.key": "Number of Scaffolds", + "qc_values#.tooltip": "Number of scaffolds in the assembly" + }, + "percent_single_copy": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value: float}", + "qc_values#.key": "Percent Single Copy", + "qc_values#.tooltip": "Percentage of highly conserved genes with a single copy present in the assembly (BUSCO)" + }, + "percent_multi_copy": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value: float}", + "qc_values#.key": "Percent Multiple Copy", + "qc_values#.tooltip": "Percentage of highly conserved genes with multiple copies present in the assembly (BUSCO)" + }, + "percent_fragmented": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value: float}", + "qc_values#.key": "Percent Fragmented", + "qc_values#.tooltip": "Percentage of highly conserved genes with fragmented representation in the assembly (BUSCO)" + }, + "percent_missing": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value: float}", + "qc_values#.key": "Percent Missing", + "qc_values#.tooltip": "Percentage of highly conserved genes that are missing from the assembly (BUSCO)" + }, + "quality_value": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value: float}", + "qc_values#.key": "Quality Value", + "qc_values#.tooltip": "Consensus quality value (QV) of the assembly (from Merqury)" + }, + "scaffold_l50": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value: integer}", + "qc_values#.key": "Contig L50", + "qc_values#.tooltip": "L50 of scaffolds: the count of the smallest number of scaffolds whose total length makes up 50% of the assembly size" + }, + "scaffold_n50": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value: integer}", + "qc_values#.key": "Scaffold N50", + "qc_values#.tooltip": "N50 of scaffolds: the sequence length of the shortest scaffold at 50% of the total assembly length (bp)" + }, + "total_ungapped_length": { + "qc_values#.derived_from": "{name}", + "qc_values#.value": "{value: integer}", + "qc_values#.key": "Total Ungapped Length", + "qc_values#.tooltip": "Total ungapped length of the assembly (bp)" + }, + "number_of_chromosomes": { "qc_values#.derived_from": "{name}", - "qc_values#.value": "{value}", - "qc_values#.key": "Your key for this column mapping", - "qc_values#.tooltip": "Your tooltip text for this column mapping" + "qc_values#.value": "{value: integer}", + "qc_values#.key": "Number of Chromosomes", + "qc_values#.tooltip": "Number of chromosomes in the assembly" } } } From 01a063df1afd56d2ba72974e556df7ab30efb939 Mon Sep 17 00:00:00 2001 From: sarahgonicholson Date: Fri, 21 Mar 2025 10:18:55 -0400 Subject: [PATCH 02/13] Update poetry lock --- poetry.lock | 142 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 138 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index f4b370293c..839cec53f7 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,9 +1,10 @@ -# This file is automatically @generated by Poetry 1.8.4 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 = "alabaster" version = "0.7.13" description = "A configurable sidebar-enabled Sphinx theme" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -15,6 +16,7 @@ files = [ name = "altgraph" version = "0.17.4" description = "Python graph (network) package" +category = "main" optional = false python-versions = "*" files = [ @@ -26,6 +28,7 @@ files = [ 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 = [ @@ -37,6 +40,7 @@ files = [ name = "async-timeout" version = "5.0.1" description = "Timeout context manager for asyncio programs" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -48,6 +52,7 @@ files = [ name = "attrs" version = "25.1.0" description = "Classes Without Boilerplate" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -67,6 +72,7 @@ tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] 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 = [ @@ -81,6 +87,7 @@ requests = ">=0.14.0" name = "babel" version = "2.17.0" description = "Internationalization utilities" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -98,6 +105,7 @@ dev = ["backports.zoneinfo", "freezegun (>=1.0,<2.0)", "jinja2 (>=3.0)", "pytest name = "beautifulsoup4" version = "4.13.3" description = "Screen-scraping library" +category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -120,6 +128,7 @@ lxml = ["lxml"] name = "boto3" version = "1.36.18" description = "The AWS SDK for Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -139,6 +148,7 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] name = "botocore" version = "1.36.18" description = "Low-level, data-driven core of boto 3." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -161,6 +171,7 @@ crt = ["awscrt (==0.23.8)"] name = "cachetools" version = "5.5.1" description = "Extensible memoizing collections and decorators" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -172,6 +183,7 @@ files = [ name = "certifi" version = "2025.1.31" description = "Python package for providing Mozilla's CA Bundle." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -183,6 +195,7 @@ files = [ name = "cffi" version = "1.17.1" description = "Foreign Function Interface for Python calling C code." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -262,6 +275,7 @@ pycparser = "*" name = "chardet" version = "5.2.0" description = "Universal encoding detector for Python 3" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -273,6 +287,7 @@ files = [ name = "charset-normalizer" version = "3.4.1" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -374,6 +389,7 @@ files = [ name = "codacy-coverage" version = "1.3.11" description = "Codacy coverage reporter for Python" +category = "dev" optional = false python-versions = "*" files = [ @@ -392,6 +408,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 = [ @@ -403,6 +420,7 @@ files = [ name = "coverage" version = "7.6.1" description = "Code coverage measurement for Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -490,6 +508,7 @@ toml = ["tomli"] name = "cryptography" version = "43.0.3" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -539,6 +558,7 @@ test-randomorder = ["pytest-randomly"] name = "dcicutils" version = "8.18.1" 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 = [ @@ -581,6 +601,7 @@ webtest = ">=2.0.34,<3.0.0" name = "docker" version = "7.1.0" description = "A Python library for the Docker Engine API." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -603,6 +624,7 @@ websockets = ["websocket-client (>=1.3.0)"] name = "docutils" version = "0.20.1" description = "Docutils -- Python Documentation Utilities" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -614,6 +636,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 = [ @@ -635,6 +658,7 @@ requests = ["requests (>=2.4.0,<3.0.0)"] name = "et-xmlfile" version = "2.0.0" description = "An implementation of lxml.xmlfile for the standard library" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -646,6 +670,7 @@ files = [ name = "events" version = "0.5" description = "Bringing the elegance of C# EventHandler to Python" +category = "main" optional = false python-versions = "*" files = [ @@ -656,6 +681,7 @@ files = [ name = "exceptiongroup" version = "1.2.2" description = "Backport of PEP 654 (exception groups)" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -670,6 +696,7 @@ test = ["pytest (>=6)"] name = "flake8" version = "7.1.1" description = "the modular source code checker: pep8 pyflakes and co" +category = "dev" optional = false python-versions = ">=3.8.1" files = [ @@ -686,6 +713,7 @@ pyflakes = ">=3.2.0,<3.3.0" name = "gitdb" version = "4.0.12" description = "Git Object Database" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -700,6 +728,7 @@ smmap = ">=3.0.1,<6" name = "gitpython" version = "3.1.44" description = "GitPython is a Python library used to interact with Git repositories" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -718,6 +747,7 @@ test = ["coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", name = "google" version = "3.0.0" description = "Python bindings to the Google search engine." +category = "main" optional = false python-versions = "*" files = [ @@ -732,6 +762,7 @@ beautifulsoup4 = "*" name = "google-api-core" version = "2.24.1" description = "Google API client core library" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -756,6 +787,7 @@ grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"] name = "google-api-python-client" version = "2.160.0" description = "Google API Client Library for Python" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -764,7 +796,7 @@ files = [ ] [package.dependencies] -google-api-core = ">=1.31.5,<2.0.dev0 || >2.3.0,<3.0.0.dev0" +google-api-core = ">=1.31.5,<2.0.0 || >2.3.0,<3.0.0.dev0" google-auth = ">=1.32.0,<2.24.0 || >2.24.0,<2.25.0 || >2.25.0,<3.0.0.dev0" google-auth-httplib2 = ">=0.2.0,<1.0.0" httplib2 = ">=0.19.0,<1.dev0" @@ -774,6 +806,7 @@ uritemplate = ">=3.0.1,<5" name = "google-auth" version = "2.38.0" description = "Google Authentication Library" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -798,6 +831,7 @@ requests = ["requests (>=2.20.0,<3.0.0.dev0)"] name = "google-auth-httplib2" version = "0.2.0" description = "Google Authentication Library: httplib2 transport" +category = "main" optional = false python-versions = "*" files = [ @@ -813,6 +847,7 @@ httplib2 = ">=0.19.0" name = "google-auth-oauthlib" version = "1.2.1" description = "Google Authentication Library" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -831,6 +866,7 @@ tool = ["click (>=6.0.0)"] name = "google-cloud-core" version = "2.4.1" description = "Google Cloud API client core library" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -839,7 +875,7 @@ files = [ ] [package.dependencies] -google-api-core = ">=1.31.6,<2.0.dev0 || >2.3.0,<3.0.0dev" +google-api-core = ">=1.31.6,<2.0.0 || >2.3.0,<3.0.0dev" google-auth = ">=1.25.0,<3.0dev" [package.extras] @@ -849,6 +885,7 @@ grpc = ["grpcio (>=1.38.0,<2.0dev)", "grpcio-status (>=1.38.0,<2.0.dev0)"] name = "google-cloud-storage" version = "2.19.0" description = "Google Cloud Storage API client library" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -872,6 +909,7 @@ tracing = ["opentelemetry-api (>=1.1.0)"] name = "google-crc32c" version = "1.5.0" description = "A python wrapper of the C library 'Google CRC32C'" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -952,6 +990,7 @@ testing = ["pytest"] name = "google-pasta" version = "0.2.0" description = "pasta is an AST-based Python refactoring library" +category = "main" optional = false python-versions = "*" files = [ @@ -967,6 +1006,7 @@ six = "*" name = "google-resumable-media" version = "2.7.2" description = "Utilities for Google Media Downloads and Resumable Uploads" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -985,6 +1025,7 @@ requests = ["requests (>=2.18.0,<3.0.0dev)"] name = "googleapi" version = "0.1.0" description = "A high-level python interface to Google APIs" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1008,6 +1049,7 @@ oauthlib = ">=3.0.1" name = "googleapis-common-protos" version = "1.66.0" description = "Common protobufs used in Google APIs" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1025,6 +1067,7 @@ grpc = ["grpcio (>=1.44.0,<2.0.0.dev0)"] name = "httplib2" version = "0.22.0" description = "A comprehensive HTTP client library." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1039,6 +1082,7 @@ pyparsing = {version = ">=2.4.2,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0 name = "hupper" version = "1.12.1" description = "Integrated process monitor for developing and reloading daemons." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1054,6 +1098,7 @@ testing = ["mock", "pytest", "pytest-cov", "watchdog"] name = "idna" version = "3.10" description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1068,6 +1113,7 @@ all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2 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 = [ @@ -1079,6 +1125,7 @@ files = [ name = "importlib-metadata" version = "8.5.0" description = "Read metadata from Python packages" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1102,6 +1149,7 @@ type = ["pytest-mypy"] name = "importlib-resources" version = "6.4.5" description = "Read resources from Python packages" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1124,6 +1172,7 @@ type = ["pytest-mypy"] name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1135,6 +1184,7 @@ files = [ name = "jinja2" version = "3.1.5" description = "A very fast and expressive template engine." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1152,6 +1202,7 @@ i18n = ["Babel (>=2.7)"] name = "jmespath" version = "1.0.1" description = "JSON Matching Expressions" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1163,6 +1214,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 = [ @@ -1174,6 +1226,7 @@ files = [ name = "jsonschema" version = "4.23.0" description = "An implementation of JSON Schema validation for Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1197,6 +1250,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 = [ @@ -1212,6 +1266,7 @@ referencing = ">=0.31.0" name = "macholib" version = "1.16.3" description = "Mach-O header analysis and editing" +category = "main" optional = false python-versions = "*" files = [ @@ -1226,6 +1281,7 @@ altgraph = ">=0.17" name = "markupsafe" version = "2.1.5" description = "Safely add untrusted strings to HTML/XML markup." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1295,6 +1351,7 @@ files = [ name = "mccabe" version = "0.7.0" description = "McCabe checker, plugin for flake8" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1306,6 +1363,7 @@ files = [ name = "oauth2client" version = "4.1.3" description = "OAuth 2.0 client library" +category = "main" optional = false python-versions = "*" files = [ @@ -1324,6 +1382,7 @@ six = ">=1.6.1" name = "oauthlib" version = "3.2.2" description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1340,6 +1399,7 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"] 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 = [ @@ -1354,6 +1414,7 @@ et-xmlfile = "*" name = "opensearch-py" version = "2.8.0" description = "Python client for OpenSearch" +category = "main" optional = false python-versions = "<4,>=3.8" files = [ @@ -1381,6 +1442,7 @@ kerberos = ["requests_kerberos"] name = "packaging" version = "24.2" description = "Core utilities for Python packages" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1392,6 +1454,7 @@ files = [ name = "pastedeploy" version = "3.1.0" description = "Load, configure, and compose WSGI applications and servers" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1408,6 +1471,7 @@ testing = ["Paste", "pytest", "pytest-cov"] name = "pefile" version = "2023.2.7" description = "Python PE parsing module" +category = "main" optional = false python-versions = ">=3.6.0" files = [ @@ -1419,6 +1483,7 @@ files = [ name = "pip-licenses" version = "4.5.1" description = "Dump the software license list of Python packages installed with pip." +category = "dev" optional = false python-versions = "~=3.8" files = [ @@ -1437,6 +1502,7 @@ test = ["docutils", "mypy", "pytest-cov", "pytest-pycodestyle", "pytest-runner", name = "pkgutil-resolve-name" version = "1.3.10" description = "Resolve a name to an object." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1448,6 +1514,7 @@ files = [ name = "plaster" version = "1.1.2" description = "A loader interface around multiple config file formats." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1463,6 +1530,7 @@ testing = ["pytest", "pytest-cov"] name = "plaster-pastedeploy" version = "1.0.1" description = "A loader implementing the PasteDeploy syntax to be used by plaster." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1481,6 +1549,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 = [ @@ -1496,6 +1565,7 @@ testing = ["pytest", "pytest-benchmark"] name = "prettytable" version = "3.11.0" description = "A simple Python library for easily displaying tabular data in a visually appealing ASCII table format" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1513,6 +1583,7 @@ tests = ["pytest", "pytest-cov", "pytest-lazy-fixtures"] name = "proto-plus" version = "1.26.0" description = "Beautiful, Pythonic protocol buffers" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1530,6 +1601,7 @@ testing = ["google-api-core (>=1.31.5)"] name = "protobuf" version = "5.29.3" description = "" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1550,6 +1622,7 @@ files = [ name = "pyasn1" version = "0.6.1" description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1561,6 +1634,7 @@ files = [ name = "pyasn1-modules" version = "0.4.1" description = "A collection of ASN.1-based protocols modules" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1575,6 +1649,7 @@ pyasn1 = ">=0.4.6,<0.7.0" name = "pycodestyle" version = "2.12.1" description = "Python style guide checker" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1586,6 +1661,7 @@ files = [ name = "pycparser" version = "2.22" description = "C parser in Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1597,6 +1673,7 @@ files = [ name = "pyflakes" version = "3.2.0" description = "passive checker of Python programs" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1608,6 +1685,7 @@ files = [ name = "pygments" version = "2.19.1" description = "Pygments is a syntax highlighting package written in Python." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1622,6 +1700,7 @@ windows-terminal = ["colorama (>=0.4.6)"] name = "pyinstaller" version = "6.12.0" description = "PyInstaller bundles a Python application and all its dependencies into a single package." +category = "main" optional = false python-versions = "<3.14,>=3.8" files = [ @@ -1657,6 +1736,7 @@ hook-testing = ["execnet (>=1.5.0)", "psutil", "pytest (>=2.7.3)"] name = "pyinstaller-hooks-contrib" version = "2025.1" description = "Community maintained hooks for PyInstaller" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1673,6 +1753,7 @@ setuptools = ">=42.0.0" name = "pyjwt" version = "2.9.0" description = "JSON Web Token implementation in Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1690,6 +1771,7 @@ tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] name = "pyopenssl" version = "24.3.0" description = "Python wrapper module around the OpenSSL library" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1708,6 +1790,7 @@ test = ["pretend", "pytest (>=3.0.1)", "pytest-rerunfailures"] name = "pyparsing" version = "3.1.4" description = "pyparsing module - Classes and methods to define and execute parsing grammars" +category = "main" optional = false python-versions = ">=3.6.8" files = [ @@ -1722,6 +1805,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 = [ @@ -1732,6 +1816,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 = [ @@ -1758,6 +1843,7 @@ testing = ["coverage", "nose", "virtualenv", "webtest (>=1.3.1)", "zope.componen name = "pytest" version = "8.3.4" description = "pytest: simple powerful testing with Python" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1780,6 +1866,7 @@ dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments name = "pytest-cov" version = "5.0.0" description = "Pytest plugin for measuring coverage." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1798,6 +1885,7 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] 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 = [ @@ -1815,6 +1903,7 @@ dev = ["pre-commit", "pytest-asyncio", "tox"] 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 = [ @@ -1830,6 +1919,7 @@ testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", 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 = [ @@ -1844,6 +1934,7 @@ six = ">=1.5" name = "pytz" version = "2025.1" description = "World timezone definitions, modern and historical" +category = "main" optional = false python-versions = "*" files = [ @@ -1855,6 +1946,7 @@ files = [ name = "pywin32" version = "308" description = "Python for Window Extensions" +category = "main" optional = false python-versions = "*" files = [ @@ -1882,6 +1974,7 @@ files = [ name = "pywin32-ctypes" version = "0.2.3" description = "A (partial) reimplementation of pywin32 using ctypes/cffi" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1893,6 +1986,7 @@ files = [ name = "pyyaml" version = "6.0.2" description = "YAML parser and emitter for Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1955,6 +2049,7 @@ files = [ 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 = [ @@ -1973,6 +2068,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 = [ @@ -1988,6 +2084,7 @@ rpds-py = ">=0.7.0" name = "requests" version = "2.32.3" description = "Python HTTP for Humans." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2009,6 +2106,7 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "requests-oauthlib" version = "2.0.0" description = "OAuthlib authentication support for Requests." +category = "main" optional = false python-versions = ">=3.4" files = [ @@ -2027,6 +2125,7 @@ rsa = ["oauthlib[signedtoken] (>=3.0.0)"] name = "rfc3986" version = "1.5.0" description = "Validating URI References per RFC 3986" +category = "main" optional = false python-versions = "*" files = [ @@ -2041,6 +2140,7 @@ idna2008 = ["idna"] name = "rpds-py" version = "0.20.1" description = "Python bindings to Rust's persistent data structures (rpds)" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2153,6 +2253,7 @@ files = [ name = "rsa" version = "4.9" description = "Pure-Python RSA implementation" +category = "main" optional = false python-versions = ">=3.6,<4" files = [ @@ -2167,6 +2268,7 @@ pyasn1 = ">=0.1.3" name = "s3transfer" version = "0.11.2" description = "An Amazon S3 Transfer Manager" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2184,6 +2286,7 @@ crt = ["botocore[crt] (>=1.36.0,<2.0a.0)"] name = "setuptools" version = "75.3.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2198,12 +2301,13 @@ cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] enabler = ["pytest-enabler (>=2.2)"] test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test (>=5.5)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] -type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.12.*)", "pytest-mypy"] +type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (>=1.12.0,<1.13.0)", "pytest-mypy"] [[package]] 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 = [ @@ -2215,6 +2319,7 @@ files = [ name = "six" version = "1.17.0" description = "Python 2 and 3 compatibility utilities" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ @@ -2226,6 +2331,7 @@ files = [ name = "smmap" version = "5.0.2" description = "A pure Python implementation of a sliding window memory map manager" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2237,6 +2343,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 = [ @@ -2248,6 +2355,7 @@ files = [ name = "soupsieve" version = "2.6" description = "A modern CSS selector implementation for Beautiful Soup." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2259,6 +2367,7 @@ files = [ name = "sphinx" version = "7.1.2" description = "Python documentation generator" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2294,6 +2403,7 @@ test = ["cython", "filelock", "html5lib", "pytest (>=4.6)"] name = "sphinx-rtd-theme" version = "3.0.2" description = "Read the Docs theme for Sphinx" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2313,6 +2423,7 @@ dev = ["bump2version", "transifex-client", "twine", "wheel"] name = "sphinx-tabs" version = "3.4.7" description = "Tabbed views for Sphinx" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2333,6 +2444,7 @@ testing = ["bs4", "coverage", "pygments", "pytest (>=7.1,<8)", "pytest-cov", "py name = "sphinxcontrib-applehelp" version = "1.0.4" description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2348,6 +2460,7 @@ test = ["pytest"] name = "sphinxcontrib-devhelp" version = "1.0.2" description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -2363,6 +2476,7 @@ test = ["pytest"] name = "sphinxcontrib-htmlhelp" version = "2.0.1" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2378,6 +2492,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 = [ @@ -2392,6 +2507,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 = [ @@ -2406,6 +2522,7 @@ test = ["flake8", "mypy", "pytest"] name = "sphinxcontrib-qthelp" version = "1.0.3" description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -2421,6 +2538,7 @@ test = ["pytest"] name = "sphinxcontrib-serializinghtml" version = "1.1.5" description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -2436,6 +2554,7 @@ test = ["pytest"] name = "structlog" version = "19.2.0" description = "Structured Logging for Python" +category = "main" optional = false python-versions = "*" files = [ @@ -2456,6 +2575,7 @@ tests = ["coverage", "freezegun (>=0.2.8)", "pretend", "pytest (>=3.3.0)", "pyth 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 = [ @@ -2467,6 +2587,7 @@ files = [ name = "tomli" version = "2.2.1" description = "A lil' TOML parser" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2508,6 +2629,7 @@ files = [ name = "tqdm" version = "4.67.1" description = "Fast, Extensible Progress Meter" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2529,6 +2651,7 @@ telegram = ["requests"] 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 = [ @@ -2543,6 +2666,7 @@ docs = ["Sphinx (>=1.3.1)", "docutils", "pylons-sphinx-themes"] 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 = [ @@ -2554,6 +2678,7 @@ files = [ name = "uritemplate" version = "4.1.1" description = "Implementation of RFC 6570 URI Templates" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2565,6 +2690,7 @@ files = [ name = "urllib3" version = "1.26.20" 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 = [ @@ -2581,6 +2707,7 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] name = "venusian" version = "3.1.1" description = "A library for deferring decorator actions" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2596,6 +2723,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 = [ @@ -2611,6 +2739,7 @@ testing = ["coverage (>=5.0)", "pytest", "pytest-cov"] name = "wcwidth" version = "0.2.13" description = "Measures the displayed width of unicode strings in a terminal" +category = "dev" optional = false python-versions = "*" files = [ @@ -2622,6 +2751,7 @@ files = [ name = "webob" version = "1.8.9" description = "WSGI request and response object" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ @@ -2637,6 +2767,7 @@ testing = ["coverage", "pytest (>=3.1.0)", "pytest-cov", "pytest-xdist"] name = "webtest" version = "2.0.35" description = "Helper to test WSGI applications" +category = "main" optional = false python-versions = "*" files = [ @@ -2658,6 +2789,7 @@ tests = ["PasteDeploy", "WSGIProxy2", "coverage", "mock", "nose (<1.3.0)", "pyqu name = "zipp" version = "3.20.2" description = "Backport of pathlib-compatible object wrapper for zip files" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2677,6 +2809,7 @@ type = ["pytest-mypy"] name = "zope-deprecation" version = "5.0" description = "Zope Deprecation Infrastructure" +category = "main" optional = false python-versions = ">= 3.7" files = [ @@ -2695,6 +2828,7 @@ test = ["zope.testrunner"] name = "zope-interface" version = "7.2" description = "Interfaces for Python" +category = "main" optional = false python-versions = ">=3.8" files = [ From 3fc2ade7e8dc51f8979b639d98315e79d0bd73c4 Mon Sep 17 00:00:00 2001 From: sarahgonicholson Date: Fri, 28 Mar 2025 13:53:54 -0400 Subject: [PATCH 03/13] Update contributors list --- CONTRIBUTORS.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/CONTRIBUTORS.json b/CONTRIBUTORS.json index 1057fac41c..38d1710466 100644 --- a/CONTRIBUTORS.json +++ b/CONTRIBUTORS.json @@ -66,6 +66,22 @@ "Will Ronchetti", "William Ronchetti" ] + }, + "Sarah Nicholson": { + "emails": [ + "sarah_nicholson@hms.harvard.edu" + ], + "names": [ + "Sarah Nicholson" + ] + }, + "sgonicholson": { + "emails": [ + "169822153+sgonicholson@users.noreply.github.com" + ], + "names": [ + "sgonicholson" + ] } } } From f524054975338b2e82c555fb47f96417f3f69634 Mon Sep 17 00:00:00 2001 From: sarahgonicholson Date: Fri, 28 Mar 2025 13:55:19 -0400 Subject: [PATCH 04/13] Public email address --- CONTRIBUTORS.json | 8 -------- 1 file changed, 8 deletions(-) diff --git a/CONTRIBUTORS.json b/CONTRIBUTORS.json index 38d1710466..35f4af059f 100644 --- a/CONTRIBUTORS.json +++ b/CONTRIBUTORS.json @@ -67,14 +67,6 @@ "William Ronchetti" ] }, - "Sarah Nicholson": { - "emails": [ - "sarah_nicholson@hms.harvard.edu" - ], - "names": [ - "Sarah Nicholson" - ] - }, "sgonicholson": { "emails": [ "169822153+sgonicholson@users.noreply.github.com" From 39432e5bd99350499199db92cbddb1a4279f2371 Mon Sep 17 00:00:00 2001 From: sarahgonicholson Date: Fri, 28 Mar 2025 13:58:48 -0400 Subject: [PATCH 05/13] Public email address --- CONTRIBUTORS.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CONTRIBUTORS.json b/CONTRIBUTORS.json index 35f4af059f..38d1710466 100644 --- a/CONTRIBUTORS.json +++ b/CONTRIBUTORS.json @@ -67,6 +67,14 @@ "William Ronchetti" ] }, + "Sarah Nicholson": { + "emails": [ + "sarah_nicholson@hms.harvard.edu" + ], + "names": [ + "Sarah Nicholson" + ] + }, "sgonicholson": { "emails": [ "169822153+sgonicholson@users.noreply.github.com" From a84b3631ced2b557ba866bc57a518d4ca3135b93 Mon Sep 17 00:00:00 2001 From: sarahgonicholson Date: Fri, 28 Mar 2025 14:51:38 -0400 Subject: [PATCH 06/13] Contributors --- CONTRIBUTORS.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTORS.json b/CONTRIBUTORS.json index 38d1710466..479e696b57 100644 --- a/CONTRIBUTORS.json +++ b/CONTRIBUTORS.json @@ -72,12 +72,13 @@ "sarah_nicholson@hms.harvard.edu" ], "names": [ - "Sarah Nicholson" + "Sarah Nicholson", + "sgonicholson" ] }, "sgonicholson": { "emails": [ - "169822153+sgonicholson@users.noreply.github.com" + "sgonicholson@.github.com" ], "names": [ "sgonicholson" From 6d1efd0710975dbf0dfe281e8afb5801eb4b7f22 Mon Sep 17 00:00:00 2001 From: sarahgonicholson Date: Fri, 28 Mar 2025 14:54:08 -0400 Subject: [PATCH 07/13] Contributors --- CONTRIBUTORS.json | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/CONTRIBUTORS.json b/CONTRIBUTORS.json index 479e696b57..e912efe384 100644 --- a/CONTRIBUTORS.json +++ b/CONTRIBUTORS.json @@ -67,21 +67,14 @@ "William Ronchetti" ] }, - "Sarah Nicholson": { - "emails": [ - "sarah_nicholson@hms.harvard.edu" - ], - "names": [ - "Sarah Nicholson", - "sgonicholson" - ] - }, "sgonicholson": { "emails": [ - "sgonicholson@.github.com" + "sgonicholson@.github.com", + "sarah_nicholson@hms.harvard.edu" ], "names": [ - "sgonicholson" + "sgonicholson", + "Sarah Nicholson" ] } } From 9a8b5bb42b5c9b9766cc364df20ed240d99fe495 Mon Sep 17 00:00:00 2001 From: sarahgonicholson Date: Fri, 28 Mar 2025 14:55:42 -0400 Subject: [PATCH 08/13] Contributors --- CONTRIBUTORS.json | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTORS.json b/CONTRIBUTORS.json index e912efe384..80947b5116 100644 --- a/CONTRIBUTORS.json +++ b/CONTRIBUTORS.json @@ -74,6 +74,7 @@ ], "names": [ "sgonicholson", + "sarahgonicholson", "Sarah Nicholson" ] } From 1863980780d96b5ef830b5f07c50af6c70092005 Mon Sep 17 00:00:00 2001 From: sarahgonicholson Date: Wed, 2 Apr 2025 09:43:28 -0400 Subject: [PATCH 09/13] Update changelog --- CHANGELOG.rst | 4 ++++ pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 615446edd2..2d81200d9f 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -6,6 +6,10 @@ smaht-submitr Change Log ---------- +1.6.4 +===== +* sgonicholson + Update `custom_column_mappings` to include values for both DuplexSeq_ExternalQualityMetrics and DSA_ExternalQualityMetrics 1.6.3 ===== diff --git a/pyproject.toml b/pyproject.toml index 4a815cffcb..765f598634 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "smaht-submitr" -version = "1.6.3" +version = "1.6.4" description = "Support for uploading file submissions to SMAHT." # TODO: Update this email address when a more specific one is available for SMaHT. authors = ["SMaHT DAC "] From ff22c1d655ae0d1e932d4ebbb20c4a7fad3825b9 Mon Sep 17 00:00:00 2001 From: sarahgonicholson Date: Wed, 2 Apr 2025 10:21:02 -0400 Subject: [PATCH 10/13] Fix contributors typo --- CONTRIBUTORS.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTORS.json b/CONTRIBUTORS.json index 80947b5116..f65eafe154 100644 --- a/CONTRIBUTORS.json +++ b/CONTRIBUTORS.json @@ -69,7 +69,7 @@ }, "sgonicholson": { "emails": [ - "sgonicholson@.github.com", + "sgonicholson@github.com", "sarah_nicholson@hms.harvard.edu" ], "names": [ From 651654fff5022882585e79cc4d7179bb8cdcc4b0 Mon Sep 17 00:00:00 2001 From: sarahgonicholson Date: Fri, 4 Apr 2025 13:41:03 -0400 Subject: [PATCH 11/13] Fix typos and update tooltips --- submitr/config/custom_column_mappings.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/submitr/config/custom_column_mappings.json b/submitr/config/custom_column_mappings.json index f9ca2e648e..1a6d880ec0 100644 --- a/submitr/config/custom_column_mappings.json +++ b/submitr/config/custom_column_mappings.json @@ -52,43 +52,43 @@ "qc_values#.derived_from": "{name}", "qc_values#.value": "{value:integer}", "qc_values#.key": "Number of Final Post-filtering Consensus Interrogated Base Pairs", - "qc_values#.tooltip": "After applying all filters for variant calling, e.e. Mapping quality, Low complexity regions, a4s2 duplex reconstruction criteria, etc." + "qc_values#.tooltip": "After applying all filters for variant calling, e.g. Mapping quality, Low complexity regions, a4s2 duplex reconstruction criteria, etc." }, "genome_coverage_1x": { "qc_values#.derived_from": "{name}", "qc_values#.value": "{value:float}", "qc_values#.key": "Fraction of Genome Coverage at Specific Depths Post-filtering >=1X", - "qc_values#.tooltip": "null" + "qc_values#.tooltip": null }, "genome_coverage_2x": { "qc_values#.derived_from": "{name}", "qc_values#.value": "{value:float}", "qc_values#.key": "Fraction of Genome Coverage at Specific Depths Post-filtering >=2X", - "qc_values#.tooltip": "null" + "qc_values#.tooltip": "Genomic coverage of a4s2 duplexes (%). To estimate the bias introduced by genomic region" }, "genome_coverage_3x": { "qc_values#.derived_from": "{name}", "qc_values#.value": "{value:float}", "qc_values#.key": "Fraction of Genome Coverage at Specific Depths Post-filtering >=3X", - "qc_values#.tooltip": "null" + "qc_values#.tooltip": null }, "genome_coverage_4x": { "qc_values#.derived_from": "{name}", "qc_values#.value": "{value:float}", "qc_values#.key": "Fraction of Genome Coverage at Specific Depths Post-filtering >=4X", - "qc_values#.tooltip": "null" + "qc_values#.tooltip": null }, "germline_homozygous_snv_count_by_molecule": { "qc_values#.derived_from": "{name}", "qc_values#.value": "{value:integer}", "qc_values#.key": "Germline Homozygous SNV Count by Molecule", - "qc_values#.tooltip": "null" + "qc_values#.tooltip": null }, "germline_heterozygous_snv_count_by_molecule": { "qc_values#.derived_from": "{name}", "qc_values#.value": "{value:integer}", "qc_values#.key": "Germline Heterozygous SNV Count by Molecule", - "qc_values#.tooltip": "null" + "qc_values#.tooltip": null }, "somatic_snv_count_by_molecule": { "qc_values#.derived_from": "{name}", @@ -185,7 +185,7 @@ "gaps_between_scaffolds": { "qc_values#.derived_from": "{name}", "qc_values#.value": "{value: integer}", - "qc_values#.key": "Gapps Between Scaffolds", + "qc_values#.key": "Gaps Between Scaffolds", "qc_values#.tooltip": "Number of gaps between scaffolds" }, "gc_content": { From 5c5de8d43964176a13faadd45151f762f866412a Mon Sep 17 00:00:00 2001 From: sarahgonicholson Date: Mon, 7 Apr 2025 10:00:41 -0400 Subject: [PATCH 12/13] Update changelog and fix poetry.lock version --- CHANGELOG.rst | 2 +- poetry.lock | 332 +++++++++++++++---------------------------------- pyproject.toml | 2 +- 3 files changed, 100 insertions(+), 236 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 2d81200d9f..78f94e5410 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -6,7 +6,7 @@ smaht-submitr Change Log ---------- -1.6.4 +1.7.0 ===== * sgonicholson Update `custom_column_mappings` to include values for both DuplexSeq_ExternalQualityMetrics and DSA_ExternalQualityMetrics diff --git a/poetry.lock b/poetry.lock index 611673ce07..243a4b4241 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,10 +1,9 @@ -# This file is automatically @generated by Poetry 1.4.2 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand. [[package]] name = "alabaster" version = "0.7.13" description = "A configurable sidebar-enabled Sphinx theme" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -16,7 +15,6 @@ files = [ name = "altgraph" version = "0.17.4" description = "Python graph (network) package" -category = "main" optional = false python-versions = "*" files = [ @@ -28,7 +26,6 @@ files = [ 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 = [ @@ -40,7 +37,6 @@ files = [ name = "async-timeout" version = "5.0.1" description = "Timeout context manager for asyncio programs" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -50,21 +46,20 @@ files = [ [[package]] name = "attrs" -version = "25.1.0" +version = "25.3.0" description = "Classes Without Boilerplate" -category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "attrs-25.1.0-py3-none-any.whl", hash = "sha256:c75a69e28a550a7e93789579c22aa26b0f5b83b75dc4e08fe092980051e1090a"}, - {file = "attrs-25.1.0.tar.gz", hash = "sha256:1c97078a80c814273a76b2a298a932eb681c87415c11dee0a6921de7f1b02c3e"}, + {file = "attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3"}, + {file = "attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b"}, ] [package.extras] benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier"] tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] @@ -72,7 +67,6 @@ tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] 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 = [ @@ -87,7 +81,6 @@ requests = ">=0.14.0" name = "babel" version = "2.17.0" description = "Internationalization utilities" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -105,7 +98,6 @@ dev = ["backports.zoneinfo", "freezegun (>=1.0,<2.0)", "jinja2 (>=3.0)", "pytest name = "beautifulsoup4" version = "4.13.3" description = "Screen-scraping library" -category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -126,18 +118,17 @@ lxml = ["lxml"] [[package]] name = "boto3" -version = "1.37.5" +version = "1.37.28" description = "The AWS SDK for Python" -category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "boto3-1.37.5-py3-none-any.whl", hash = "sha256:12166353519aca0cc8d9dcfbbb0d38f8915955a5912b8cb241b2b2314f0dbc14"}, - {file = "boto3-1.37.5.tar.gz", hash = "sha256:ae6e7048beeaa4478368e554a4b290e3928beb0ae8d8767d108d72381a81af30"}, + {file = "boto3-1.37.28-py3-none-any.whl", hash = "sha256:e584d9d33808633e73af3d962e22cf2cea91a38bc5a17577bb25618f8ded504f"}, + {file = "boto3-1.37.28.tar.gz", hash = "sha256:09ee85ba70a88286bba0d1bf5f0460a4b3bde52d162216accfe637b8bfac351b"}, ] [package.dependencies] -botocore = ">=1.37.5,<1.38.0" +botocore = ">=1.37.28,<1.38.0" jmespath = ">=0.7.1,<2.0.0" s3transfer = ">=0.11.0,<0.12.0" @@ -146,14 +137,13 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "botocore" -version = "1.37.5" +version = "1.37.28" description = "Low-level, data-driven core of boto 3." -category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "botocore-1.37.5-py3-none-any.whl", hash = "sha256:e5cfbb8026d5b4fadd9b3a18b61d238a41a8b8f620ab75873dc1467d456150d6"}, - {file = "botocore-1.37.5.tar.gz", hash = "sha256:f8f526d33ae74d242c577e0440b57b9ec7d53edd41db211155ec8087fe7a5a21"}, + {file = "botocore-1.37.28-py3-none-any.whl", hash = "sha256:c26b645d7b125bf42ffc1671b862b47500ee658e3a1c95d2438cb689fc85df15"}, + {file = "botocore-1.37.28.tar.gz", hash = "sha256:69ea327f70f0607d174c4c2b1dcc87327b9c48e413c9d322179172b614b28e03"}, ] [package.dependencies] @@ -171,7 +161,6 @@ crt = ["awscrt (==0.23.8)"] name = "cachetools" version = "5.5.2" description = "Extensible memoizing collections and decorators" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -183,7 +172,6 @@ files = [ name = "certifi" version = "2025.1.31" description = "Python package for providing Mozilla's CA Bundle." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -195,7 +183,6 @@ files = [ name = "cffi" version = "1.17.1" description = "Foreign Function Interface for Python calling C code." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -275,7 +262,6 @@ pycparser = "*" name = "chardet" version = "5.2.0" description = "Universal encoding detector for Python 3" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -287,7 +273,6 @@ files = [ name = "charset-normalizer" version = "3.4.1" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -389,7 +374,6 @@ files = [ name = "codacy-coverage" version = "1.3.11" description = "Codacy coverage reporter for Python" -category = "dev" optional = false python-versions = "*" files = [ @@ -408,7 +392,6 @@ 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 = [ @@ -420,7 +403,6 @@ files = [ name = "coverage" version = "7.6.1" description = "Code coverage measurement for Python" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -508,7 +490,6 @@ toml = ["tomli"] name = "cryptography" version = "43.0.3" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -558,7 +539,6 @@ test-randomorder = ["pytest-randomly"] name = "dcicutils" version = "8.18.3" 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 = [ @@ -601,7 +581,6 @@ webtest = ">=2.0.34,<3.0.0" name = "docker" version = "7.1.0" description = "A Python library for the Docker Engine API." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -624,7 +603,6 @@ websockets = ["websocket-client (>=1.3.0)"] name = "docutils" version = "0.20.1" description = "Docutils -- Python Documentation Utilities" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -636,7 +614,6 @@ 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 = [ @@ -658,7 +635,6 @@ requests = ["requests (>=2.4.0,<3.0.0)"] name = "et-xmlfile" version = "2.0.0" description = "An implementation of lxml.xmlfile for the standard library" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -670,7 +646,6 @@ files = [ name = "events" version = "0.5" description = "Bringing the elegance of C# EventHandler to Python" -category = "main" optional = false python-versions = "*" files = [ @@ -681,7 +656,6 @@ files = [ name = "exceptiongroup" version = "1.2.2" description = "Backport of PEP 654 (exception groups)" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -696,7 +670,6 @@ test = ["pytest (>=6)"] name = "flake8" version = "7.1.2" description = "the modular source code checker: pep8 pyflakes and co" -category = "dev" optional = false python-versions = ">=3.8.1" files = [ @@ -713,7 +686,6 @@ pyflakes = ">=3.2.0,<3.3.0" name = "gitdb" version = "4.0.12" description = "Git Object Database" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -728,7 +700,6 @@ smmap = ">=3.0.1,<6" name = "gitpython" version = "3.1.44" description = "GitPython is a Python library used to interact with Git repositories" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -747,7 +718,6 @@ test = ["coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", name = "google" version = "3.0.0" description = "Python bindings to the Google search engine." -category = "main" optional = false python-versions = "*" files = [ @@ -760,22 +730,21 @@ beautifulsoup4 = "*" [[package]] name = "google-api-core" -version = "2.24.1" +version = "2.24.2" description = "Google API client core library" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "google_api_core-2.24.1-py3-none-any.whl", hash = "sha256:bc78d608f5a5bf853b80bd70a795f703294de656c096c0968320830a4bc280f1"}, - {file = "google_api_core-2.24.1.tar.gz", hash = "sha256:f8b36f5456ab0dd99a1b693a40a31d1e7757beea380ad1b38faaf8941eae9d8a"}, + {file = "google_api_core-2.24.2-py3-none-any.whl", hash = "sha256:810a63ac95f3c441b7c0e43d344e372887f62ce9071ba972eacf32672e072de9"}, + {file = "google_api_core-2.24.2.tar.gz", hash = "sha256:81718493daf06d96d6bc76a91c23874dbf2fac0adbbf542831b805ee6e974696"}, ] [package.dependencies] -google-auth = ">=2.14.1,<3.0.dev0" -googleapis-common-protos = ">=1.56.2,<2.0.dev0" -proto-plus = ">=1.22.3,<2.0.0dev" -protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<6.0.0.dev0" -requests = ">=2.18.0,<3.0.0.dev0" +google-auth = ">=2.14.1,<3.0.0" +googleapis-common-protos = ">=1.56.2,<2.0.0" +proto-plus = ">=1.22.3,<2.0.0" +protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<7.0.0" +requests = ">=2.18.0,<3.0.0" [package.extras] async-rest = ["google-auth[aiohttp] (>=2.35.0,<3.0.dev0)"] @@ -785,28 +754,26 @@ grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"] [[package]] name = "google-api-python-client" -version = "2.162.0" +version = "2.166.0" description = "Google API Client Library for Python" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "google_api_python_client-2.162.0-py2.py3-none-any.whl", hash = "sha256:49365fa4f7795fe81a747f5544d6528ea94314fa59664e0ea1005f603facf1ec"}, - {file = "google_api_python_client-2.162.0.tar.gz", hash = "sha256:5f8bc934a5b6eea73a7d12d999e6585c1823179f48340234acb385e2502e735a"}, + {file = "google_api_python_client-2.166.0-py2.py3-none-any.whl", hash = "sha256:dd8cc74d9fc18538ab05cbd2e93cb4f82382f910c5f6945db06c91f1deae6e45"}, + {file = "google_api_python_client-2.166.0.tar.gz", hash = "sha256:b8cf843bd9d736c134aef76cf1dc7a47c9283a2ef24267b97207b9dd43b30ef7"}, ] [package.dependencies] -google-api-core = ">=1.31.5,<2.0.0 || >2.3.0,<3.0.0.dev0" -google-auth = ">=1.32.0,<2.24.0 || >2.24.0,<2.25.0 || >2.25.0,<3.0.0.dev0" +google-api-core = ">=1.31.5,<2.0.dev0 || >2.3.0,<3.0.0" +google-auth = ">=1.32.0,<2.24.0 || >2.24.0,<2.25.0 || >2.25.0,<3.0.0" google-auth-httplib2 = ">=0.2.0,<1.0.0" -httplib2 = ">=0.19.0,<1.dev0" +httplib2 = ">=0.19.0,<1.0.0" uritemplate = ">=3.0.1,<5" [[package]] name = "google-auth" version = "2.38.0" description = "Google Authentication Library" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -831,7 +798,6 @@ requests = ["requests (>=2.20.0,<3.0.0.dev0)"] name = "google-auth-httplib2" version = "0.2.0" description = "Google Authentication Library: httplib2 transport" -category = "main" optional = false python-versions = "*" files = [ @@ -847,7 +813,6 @@ httplib2 = ">=0.19.0" name = "google-auth-oauthlib" version = "1.2.1" description = "Google Authentication Library" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -864,18 +829,17 @@ tool = ["click (>=6.0.0)"] [[package]] name = "google-cloud-core" -version = "2.4.2" +version = "2.4.3" description = "Google Cloud API client core library" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "google_cloud_core-2.4.2-py2.py3-none-any.whl", hash = "sha256:7459c3e83de7cb8b9ecfec9babc910efb4314030c56dd798eaad12c426f7d180"}, - {file = "google_cloud_core-2.4.2.tar.gz", hash = "sha256:a4fcb0e2fcfd4bfe963837fad6d10943754fd79c1a50097d68540b6eb3d67f35"}, + {file = "google_cloud_core-2.4.3-py2.py3-none-any.whl", hash = "sha256:5130f9f4c14b4fafdff75c79448f9495cfade0d8775facf1b09c3bf67e027f6e"}, + {file = "google_cloud_core-2.4.3.tar.gz", hash = "sha256:1fab62d7102844b278fe6dead3af32408b1df3eb06f5c7e8634cbd40edc4da53"}, ] [package.dependencies] -google-api-core = ">=1.31.6,<2.0.0 || >2.3.0,<3.0.0dev" +google-api-core = ">=1.31.6,<2.0.dev0 || >2.3.0,<3.0.0dev" google-auth = ">=1.25.0,<3.0dev" [package.extras] @@ -885,7 +849,6 @@ grpc = ["grpcio (>=1.38.0,<2.0dev)", "grpcio-status (>=1.38.0,<2.0.dev0)"] name = "google-cloud-storage" version = "2.19.0" description = "Google Cloud Storage API client library" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -909,7 +872,6 @@ tracing = ["opentelemetry-api (>=1.1.0)"] name = "google-crc32c" version = "1.5.0" description = "A python wrapper of the C library 'Google CRC32C'" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -990,7 +952,6 @@ testing = ["pytest"] name = "google-pasta" version = "0.2.0" description = "pasta is an AST-based Python refactoring library" -category = "main" optional = false python-versions = "*" files = [ @@ -1006,7 +967,6 @@ six = "*" name = "google-resumable-media" version = "2.7.2" description = "Utilities for Google Media Downloads and Resumable Uploads" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1025,7 +985,6 @@ requests = ["requests (>=2.18.0,<3.0.0dev)"] name = "googleapi" version = "0.1.0" description = "A high-level python interface to Google APIs" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1047,27 +1006,25 @@ oauthlib = ">=3.0.1" [[package]] name = "googleapis-common-protos" -version = "1.69.0" +version = "1.69.2" description = "Common protobufs used in Google APIs" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "googleapis_common_protos-1.69.0-py2.py3-none-any.whl", hash = "sha256:17835fdc4fa8da1d61cfe2d4d5d57becf7c61d4112f8d81c67eaa9d7ce43042d"}, - {file = "googleapis_common_protos-1.69.0.tar.gz", hash = "sha256:5a46d58af72846f59009b9c4710425b9af2139555c71837081706b213b298187"}, + {file = "googleapis_common_protos-1.69.2-py3-none-any.whl", hash = "sha256:0b30452ff9c7a27d80bfc5718954063e8ab53dd3697093d3bc99581f5fd24212"}, + {file = "googleapis_common_protos-1.69.2.tar.gz", hash = "sha256:3e1b904a27a33c821b4b749fd31d334c0c9c30e6113023d495e48979a3dc9c5f"}, ] [package.dependencies] -protobuf = ">=3.20.2,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<6.0.0.dev0" +protobuf = ">=3.20.2,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<7.0.0" [package.extras] -grpc = ["grpcio (>=1.44.0,<2.0.0.dev0)"] +grpc = ["grpcio (>=1.44.0,<2.0.0)"] [[package]] name = "httplib2" version = "0.22.0" description = "A comprehensive HTTP client library." -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1082,7 +1039,6 @@ pyparsing = {version = ">=2.4.2,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0 name = "hupper" version = "1.12.1" description = "Integrated process monitor for developing and reloading daemons." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1098,7 +1054,6 @@ testing = ["mock", "pytest", "pytest-cov", "watchdog"] name = "idna" version = "3.10" description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1113,7 +1068,6 @@ all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2 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 = [ @@ -1125,7 +1079,6 @@ files = [ name = "importlib-metadata" version = "8.5.0" description = "Read metadata from Python packages" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1149,7 +1102,6 @@ type = ["pytest-mypy"] name = "importlib-resources" version = "6.4.5" description = "Read resources from Python packages" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1170,26 +1122,24 @@ type = ["pytest-mypy"] [[package]] name = "iniconfig" -version = "2.0.0" +version = "2.1.0" description = "brain-dead simple config-ini parsing" -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, - {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, + {file = "iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760"}, + {file = "iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7"}, ] [[package]] name = "jinja2" -version = "3.1.5" +version = "3.1.6" description = "A very fast and expressive template engine." -category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"}, - {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"}, + {file = "jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67"}, + {file = "jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d"}, ] [package.dependencies] @@ -1202,7 +1152,6 @@ i18n = ["Babel (>=2.7)"] name = "jmespath" version = "1.0.1" description = "JSON Matching Expressions" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1214,7 +1163,6 @@ 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 = [ @@ -1226,7 +1174,6 @@ files = [ name = "jsonschema" version = "4.23.0" description = "An implementation of JSON Schema validation for Python" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1250,7 +1197,6 @@ 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 = [ @@ -1266,7 +1212,6 @@ referencing = ">=0.31.0" name = "macholib" version = "1.16.3" description = "Mach-O header analysis and editing" -category = "main" optional = false python-versions = "*" files = [ @@ -1281,7 +1226,6 @@ altgraph = ">=0.17" name = "markupsafe" version = "2.1.5" description = "Safely add untrusted strings to HTML/XML markup." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1351,7 +1295,6 @@ files = [ name = "mccabe" version = "0.7.0" description = "McCabe checker, plugin for flake8" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1363,7 +1306,6 @@ files = [ name = "oauth2client" version = "4.1.3" description = "OAuth 2.0 client library" -category = "main" optional = false python-versions = "*" files = [ @@ -1382,7 +1324,6 @@ six = ">=1.6.1" name = "oauthlib" version = "3.2.2" description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1399,7 +1340,6 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"] 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 = [ @@ -1414,7 +1354,6 @@ et-xmlfile = "*" name = "opensearch-py" version = "2.8.0" description = "Python client for OpenSearch" -category = "main" optional = false python-versions = "<4,>=3.8" files = [ @@ -1442,7 +1381,6 @@ kerberos = ["requests_kerberos"] name = "packaging" version = "24.2" description = "Core utilities for Python packages" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1454,7 +1392,6 @@ files = [ name = "pastedeploy" version = "3.1.0" description = "Load, configure, and compose WSGI applications and servers" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1471,7 +1408,6 @@ testing = ["Paste", "pytest", "pytest-cov"] name = "pefile" version = "2023.2.7" description = "Python PE parsing module" -category = "main" optional = false python-versions = ">=3.6.0" files = [ @@ -1483,7 +1419,6 @@ files = [ name = "pip-licenses" version = "4.5.1" description = "Dump the software license list of Python packages installed with pip." -category = "dev" optional = false python-versions = "~=3.8" files = [ @@ -1502,7 +1437,6 @@ test = ["docutils", "mypy", "pytest-cov", "pytest-pycodestyle", "pytest-runner", name = "pkgutil-resolve-name" version = "1.3.10" description = "Resolve a name to an object." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1514,7 +1448,6 @@ files = [ name = "plaster" version = "1.1.2" description = "A loader interface around multiple config file formats." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1530,7 +1463,6 @@ testing = ["pytest", "pytest-cov"] name = "plaster-pastedeploy" version = "1.0.1" description = "A loader implementing the PasteDeploy syntax to be used by plaster." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1549,7 +1481,6 @@ 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 = [ @@ -1565,7 +1496,6 @@ testing = ["pytest", "pytest-benchmark"] name = "prettytable" version = "3.11.0" description = "A simple Python library for easily displaying tabular data in a visually appealing ASCII table format" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1581,48 +1511,45 @@ tests = ["pytest", "pytest-cov", "pytest-lazy-fixtures"] [[package]] name = "proto-plus" -version = "1.26.0" +version = "1.26.1" description = "Beautiful, Pythonic protocol buffers" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "proto_plus-1.26.0-py3-none-any.whl", hash = "sha256:bf2dfaa3da281fc3187d12d224c707cb57214fb2c22ba854eb0c105a3fb2d4d7"}, - {file = "proto_plus-1.26.0.tar.gz", hash = "sha256:6e93d5f5ca267b54300880fff156b6a3386b3fa3f43b1da62e680fc0c586ef22"}, + {file = "proto_plus-1.26.1-py3-none-any.whl", hash = "sha256:13285478c2dcf2abb829db158e1047e2f1e8d63a077d94263c2b88b043c75a66"}, + {file = "proto_plus-1.26.1.tar.gz", hash = "sha256:21a515a4c4c0088a773899e23c7bbade3d18f9c66c73edd4c7ee3816bc96a012"}, ] [package.dependencies] -protobuf = ">=3.19.0,<6.0.0dev" +protobuf = ">=3.19.0,<7.0.0" [package.extras] testing = ["google-api-core (>=1.31.5)"] [[package]] name = "protobuf" -version = "5.29.3" +version = "5.29.4" description = "" -category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "protobuf-5.29.3-cp310-abi3-win32.whl", hash = "sha256:3ea51771449e1035f26069c4c7fd51fba990d07bc55ba80701c78f886bf9c888"}, - {file = "protobuf-5.29.3-cp310-abi3-win_amd64.whl", hash = "sha256:a4fa6f80816a9a0678429e84973f2f98cbc218cca434abe8db2ad0bffc98503a"}, - {file = "protobuf-5.29.3-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:a8434404bbf139aa9e1300dbf989667a83d42ddda9153d8ab76e0d5dcaca484e"}, - {file = "protobuf-5.29.3-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:daaf63f70f25e8689c072cfad4334ca0ac1d1e05a92fc15c54eb9cf23c3efd84"}, - {file = "protobuf-5.29.3-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:c027e08a08be10b67c06bf2370b99c811c466398c357e615ca88c91c07f0910f"}, - {file = "protobuf-5.29.3-cp38-cp38-win32.whl", hash = "sha256:84a57163a0ccef3f96e4b6a20516cedcf5bb3a95a657131c5c3ac62200d23252"}, - {file = "protobuf-5.29.3-cp38-cp38-win_amd64.whl", hash = "sha256:b89c115d877892a512f79a8114564fb435943b59067615894c3b13cd3e1fa107"}, - {file = "protobuf-5.29.3-cp39-cp39-win32.whl", hash = "sha256:0eb32bfa5219fc8d4111803e9a690658aa2e6366384fd0851064b963b6d1f2a7"}, - {file = "protobuf-5.29.3-cp39-cp39-win_amd64.whl", hash = "sha256:6ce8cc3389a20693bfde6c6562e03474c40851b44975c9b2bf6df7d8c4f864da"}, - {file = "protobuf-5.29.3-py3-none-any.whl", hash = "sha256:0a18ed4a24198528f2333802eb075e59dea9d679ab7a6c5efb017a59004d849f"}, - {file = "protobuf-5.29.3.tar.gz", hash = "sha256:5da0f41edaf117bde316404bad1a486cb4ededf8e4a54891296f648e8e076620"}, + {file = "protobuf-5.29.4-cp310-abi3-win32.whl", hash = "sha256:13eb236f8eb9ec34e63fc8b1d6efd2777d062fa6aaa68268fb67cf77f6839ad7"}, + {file = "protobuf-5.29.4-cp310-abi3-win_amd64.whl", hash = "sha256:bcefcdf3976233f8a502d265eb65ea740c989bacc6c30a58290ed0e519eb4b8d"}, + {file = "protobuf-5.29.4-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:307ecba1d852ec237e9ba668e087326a67564ef83e45a0189a772ede9e854dd0"}, + {file = "protobuf-5.29.4-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:aec4962f9ea93c431d5714ed1be1c93f13e1a8618e70035ba2b0564d9e633f2e"}, + {file = "protobuf-5.29.4-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:d7d3f7d1d5a66ed4942d4fefb12ac4b14a29028b209d4bfb25c68ae172059922"}, + {file = "protobuf-5.29.4-cp38-cp38-win32.whl", hash = "sha256:1832f0515b62d12d8e6ffc078d7e9eb06969aa6dc13c13e1036e39d73bebc2de"}, + {file = "protobuf-5.29.4-cp38-cp38-win_amd64.whl", hash = "sha256:476cb7b14914c780605a8cf62e38c2a85f8caff2e28a6a0bad827ec7d6c85d68"}, + {file = "protobuf-5.29.4-cp39-cp39-win32.whl", hash = "sha256:fd32223020cb25a2cc100366f1dedc904e2d71d9322403224cdde5fdced0dabe"}, + {file = "protobuf-5.29.4-cp39-cp39-win_amd64.whl", hash = "sha256:678974e1e3a9b975b8bc2447fca458db5f93a2fb6b0c8db46b6675b5b5346812"}, + {file = "protobuf-5.29.4-py3-none-any.whl", hash = "sha256:3fde11b505e1597f71b875ef2fc52062b6a9740e5f7c8997ce878b6009145862"}, + {file = "protobuf-5.29.4.tar.gz", hash = "sha256:4f1dfcd7997b31ef8f53ec82781ff434a28bf71d9102ddde14d076adcfc78c99"}, ] [[package]] name = "pyasn1" version = "0.6.1" description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1632,24 +1559,22 @@ files = [ [[package]] name = "pyasn1-modules" -version = "0.4.1" +version = "0.4.2" description = "A collection of ASN.1-based protocols modules" -category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "pyasn1_modules-0.4.1-py3-none-any.whl", hash = "sha256:49bfa96b45a292b711e986f222502c1c9a5e1f4e568fc30e2574a6c7d07838fd"}, - {file = "pyasn1_modules-0.4.1.tar.gz", hash = "sha256:c28e2dbf9c06ad61c71a075c7e0f9fd0f1b0bb2d2ad4377f240d33ac2ab60a7c"}, + {file = "pyasn1_modules-0.4.2-py3-none-any.whl", hash = "sha256:29253a9207ce32b64c3ac6600edc75368f98473906e8fd1043bd6b5b1de2c14a"}, + {file = "pyasn1_modules-0.4.2.tar.gz", hash = "sha256:677091de870a80aae844b1ca6134f54652fa2c8c5a52aa396440ac3106e941e6"}, ] [package.dependencies] -pyasn1 = ">=0.4.6,<0.7.0" +pyasn1 = ">=0.6.1,<0.7.0" [[package]] name = "pycodestyle" version = "2.12.1" description = "Python style guide checker" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1661,7 +1586,6 @@ files = [ name = "pycparser" version = "2.22" description = "C parser in Python" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1673,7 +1597,6 @@ files = [ name = "pyflakes" version = "3.2.0" description = "passive checker of Python programs" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1685,7 +1608,6 @@ files = [ name = "pygments" version = "2.19.1" description = "Pygments is a syntax highlighting package written in Python." -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1700,7 +1622,6 @@ windows-terminal = ["colorama (>=0.4.6)"] name = "pyinstaller" version = "6.12.0" description = "PyInstaller bundles a Python application and all its dependencies into a single package." -category = "main" optional = false python-versions = "<3.14,>=3.8" files = [ @@ -1734,14 +1655,13 @@ hook-testing = ["execnet (>=1.5.0)", "psutil", "pytest (>=2.7.3)"] [[package]] name = "pyinstaller-hooks-contrib" -version = "2025.1" +version = "2025.2" description = "Community maintained hooks for PyInstaller" -category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "pyinstaller_hooks_contrib-2025.1-py3-none-any.whl", hash = "sha256:d3c799470cbc0bda60dcc8e6b4ab976777532b77621337f2037f558905e3a8e9"}, - {file = "pyinstaller_hooks_contrib-2025.1.tar.gz", hash = "sha256:130818f9e9a0a7f2261f1fd66054966a3a50c99d000981c5d1db11d3ad0c6ab2"}, + {file = "pyinstaller_hooks_contrib-2025.2-py3-none-any.whl", hash = "sha256:0b2bc7697075de5eb071ff13ef4a156d3beae6c19c7cbdcd70f37978d2013e30"}, + {file = "pyinstaller_hooks_contrib-2025.2.tar.gz", hash = "sha256:ccdd41bc30290f725f3e48f4a39985d11855af81d614d167e3021e303acb9102"}, ] [package.dependencies] @@ -1753,7 +1673,6 @@ setuptools = ">=42.0.0" name = "pyjwt" version = "2.9.0" description = "JSON Web Token implementation in Python" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1771,7 +1690,6 @@ tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] name = "pyopenssl" version = "24.3.0" description = "Python wrapper module around the OpenSSL library" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1790,7 +1708,6 @@ test = ["pretend", "pytest (>=3.0.1)", "pytest-rerunfailures"] name = "pyparsing" version = "3.1.4" description = "pyparsing module - Classes and methods to define and execute parsing grammars" -category = "main" optional = false python-versions = ">=3.6.8" files = [ @@ -1805,7 +1722,6 @@ 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 = [ @@ -1816,7 +1732,6 @@ 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 = [ @@ -1843,7 +1758,6 @@ testing = ["coverage", "nose", "virtualenv", "webtest (>=1.3.1)", "zope.componen name = "pytest" version = "8.3.5" description = "pytest: simple powerful testing with Python" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1866,7 +1780,6 @@ dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments name = "pytest-cov" version = "5.0.0" description = "Pytest plugin for measuring coverage." -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1885,7 +1798,6 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] 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 = [ @@ -1903,7 +1815,6 @@ dev = ["pre-commit", "pytest-asyncio", "tox"] 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 = [ @@ -1919,7 +1830,6 @@ testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", 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 = [ @@ -1932,49 +1842,44 @@ six = ">=1.5" [[package]] name = "pytz" -version = "2025.1" +version = "2025.2" description = "World timezone definitions, modern and historical" -category = "main" optional = false python-versions = "*" files = [ - {file = "pytz-2025.1-py2.py3-none-any.whl", hash = "sha256:89dd22dca55b46eac6eda23b2d72721bf1bdfef212645d81513ef5d03038de57"}, - {file = "pytz-2025.1.tar.gz", hash = "sha256:c2db42be2a2518b28e65f9207c4d05e6ff547d1efa4086469ef855e4ab70178e"}, + {file = "pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00"}, + {file = "pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3"}, ] [[package]] name = "pywin32" -version = "308" +version = "310" description = "Python for Window Extensions" -category = "main" optional = false python-versions = "*" files = [ - {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"}, - {file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"}, - {file = "pywin32-308-cp310-cp310-win_arm64.whl", hash = "sha256:a5ab5381813b40f264fa3495b98af850098f814a25a63589a8e9eb12560f450c"}, - {file = "pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a"}, - {file = "pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b"}, - {file = "pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6"}, - {file = "pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897"}, - {file = "pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47"}, - {file = "pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091"}, - {file = "pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed"}, - {file = "pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4"}, - {file = "pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd"}, - {file = "pywin32-308-cp37-cp37m-win32.whl", hash = "sha256:1f696ab352a2ddd63bd07430080dd598e6369152ea13a25ebcdd2f503a38f1ff"}, - {file = "pywin32-308-cp37-cp37m-win_amd64.whl", hash = "sha256:13dcb914ed4347019fbec6697a01a0aec61019c1046c2b905410d197856326a6"}, - {file = "pywin32-308-cp38-cp38-win32.whl", hash = "sha256:5794e764ebcabf4ff08c555b31bd348c9025929371763b2183172ff4708152f0"}, - {file = "pywin32-308-cp38-cp38-win_amd64.whl", hash = "sha256:3b92622e29d651c6b783e368ba7d6722b1634b8e70bd376fd7610fe1992e19de"}, - {file = "pywin32-308-cp39-cp39-win32.whl", hash = "sha256:7873ca4dc60ab3287919881a7d4f88baee4a6e639aa6962de25a98ba6b193341"}, - {file = "pywin32-308-cp39-cp39-win_amd64.whl", hash = "sha256:71b3322d949b4cc20776436a9c9ba0eeedcbc9c650daa536df63f0ff111bb920"}, + {file = "pywin32-310-cp310-cp310-win32.whl", hash = "sha256:6dd97011efc8bf51d6793a82292419eba2c71cf8e7250cfac03bba284454abc1"}, + {file = "pywin32-310-cp310-cp310-win_amd64.whl", hash = "sha256:c3e78706e4229b915a0821941a84e7ef420bf2b77e08c9dae3c76fd03fd2ae3d"}, + {file = "pywin32-310-cp310-cp310-win_arm64.whl", hash = "sha256:33babed0cf0c92a6f94cc6cc13546ab24ee13e3e800e61ed87609ab91e4c8213"}, + {file = "pywin32-310-cp311-cp311-win32.whl", hash = "sha256:1e765f9564e83011a63321bb9d27ec456a0ed90d3732c4b2e312b855365ed8bd"}, + {file = "pywin32-310-cp311-cp311-win_amd64.whl", hash = "sha256:126298077a9d7c95c53823934f000599f66ec9296b09167810eb24875f32689c"}, + {file = "pywin32-310-cp311-cp311-win_arm64.whl", hash = "sha256:19ec5fc9b1d51c4350be7bb00760ffce46e6c95eaf2f0b2f1150657b1a43c582"}, + {file = "pywin32-310-cp312-cp312-win32.whl", hash = "sha256:8a75a5cc3893e83a108c05d82198880704c44bbaee4d06e442e471d3c9ea4f3d"}, + {file = "pywin32-310-cp312-cp312-win_amd64.whl", hash = "sha256:bf5c397c9a9a19a6f62f3fb821fbf36cac08f03770056711f765ec1503972060"}, + {file = "pywin32-310-cp312-cp312-win_arm64.whl", hash = "sha256:2349cc906eae872d0663d4d6290d13b90621eaf78964bb1578632ff20e152966"}, + {file = "pywin32-310-cp313-cp313-win32.whl", hash = "sha256:5d241a659c496ada3253cd01cfaa779b048e90ce4b2b38cd44168ad555ce74ab"}, + {file = "pywin32-310-cp313-cp313-win_amd64.whl", hash = "sha256:667827eb3a90208ddbdcc9e860c81bde63a135710e21e4cb3348968e4bd5249e"}, + {file = "pywin32-310-cp313-cp313-win_arm64.whl", hash = "sha256:e308f831de771482b7cf692a1f308f8fca701b2d8f9dde6cc440c7da17e47b33"}, + {file = "pywin32-310-cp38-cp38-win32.whl", hash = "sha256:0867beb8addefa2e3979d4084352e4ac6e991ca45373390775f7084cc0209b9c"}, + {file = "pywin32-310-cp38-cp38-win_amd64.whl", hash = "sha256:30f0a9b3138fb5e07eb4973b7077e1883f558e40c578c6925acc7a94c34eaa36"}, + {file = "pywin32-310-cp39-cp39-win32.whl", hash = "sha256:851c8d927af0d879221e616ae1f66145253537bbdd321a77e8ef701b443a9a1a"}, + {file = "pywin32-310-cp39-cp39-win_amd64.whl", hash = "sha256:96867217335559ac619f00ad70e513c0fcf84b8a3af9fc2bba3b59b97da70475"}, ] [[package]] name = "pywin32-ctypes" version = "0.2.3" description = "A (partial) reimplementation of pywin32 using ctypes/cffi" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1986,7 +1891,6 @@ files = [ name = "pyyaml" version = "6.0.2" description = "YAML parser and emitter for Python" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2049,7 +1953,6 @@ files = [ 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 = [ @@ -2068,7 +1971,6 @@ 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 = [ @@ -2084,7 +1986,6 @@ rpds-py = ">=0.7.0" name = "requests" version = "2.32.3" description = "Python HTTP for Humans." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2106,7 +2007,6 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "requests-oauthlib" version = "2.0.0" description = "OAuthlib authentication support for Requests." -category = "main" optional = false python-versions = ">=3.4" files = [ @@ -2125,7 +2025,6 @@ rsa = ["oauthlib[signedtoken] (>=3.0.0)"] name = "rfc3986" version = "1.5.0" description = "Validating URI References per RFC 3986" -category = "main" optional = false python-versions = "*" files = [ @@ -2140,7 +2039,6 @@ idna2008 = ["idna"] name = "rpds-py" version = "0.20.1" description = "Python bindings to Rust's persistent data structures (rpds)" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2253,7 +2151,6 @@ files = [ name = "rsa" version = "4.9" description = "Pure-Python RSA implementation" -category = "main" optional = false python-versions = ">=3.6,<4" files = [ @@ -2266,32 +2163,30 @@ pyasn1 = ">=0.1.3" [[package]] name = "s3transfer" -version = "0.11.3" +version = "0.11.4" description = "An Amazon S3 Transfer Manager" -category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "s3transfer-0.11.3-py3-none-any.whl", hash = "sha256:ca855bdeb885174b5ffa95b9913622459d4ad8e331fc98eb01e6d5eb6a30655d"}, - {file = "s3transfer-0.11.3.tar.gz", hash = "sha256:edae4977e3a122445660c7c114bba949f9d191bae3b34a096f18a1c8c354527a"}, + {file = "s3transfer-0.11.4-py3-none-any.whl", hash = "sha256:ac265fa68318763a03bf2dc4f39d5cbd6a9e178d81cc9483ad27da33637e320d"}, + {file = "s3transfer-0.11.4.tar.gz", hash = "sha256:559f161658e1cf0a911f45940552c696735f5c74e64362e515f333ebed87d679"}, ] [package.dependencies] -botocore = ">=1.36.0,<2.0a.0" +botocore = ">=1.37.4,<2.0a.0" [package.extras] -crt = ["botocore[crt] (>=1.36.0,<2.0a.0)"] +crt = ["botocore[crt] (>=1.37.4,<2.0a.0)"] [[package]] name = "setuptools" -version = "75.3.0" +version = "75.3.2" description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-75.3.0-py3-none-any.whl", hash = "sha256:f2504966861356aa38616760c0f66568e535562374995367b4e69c7143cf6bcd"}, - {file = "setuptools-75.3.0.tar.gz", hash = "sha256:fba5dd4d766e97be1b1681d98712680ae8f2f26d7881245f2ce9e40714f1a686"}, + {file = "setuptools-75.3.2-py3-none-any.whl", hash = "sha256:90ab613b6583fc02d5369cbca13ea26ea0e182d1df2d943ee9cbe81d4c61add9"}, + {file = "setuptools-75.3.2.tar.gz", hash = "sha256:3c1383e1038b68556a382c1e8ded8887cd20141b0eb5708a6c8d277de49364f5"}, ] [package.extras] @@ -2300,14 +2195,13 @@ core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.co cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] enabler = ["pytest-enabler (>=2.2)"] -test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test (>=5.5)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] -type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (>=1.12.0,<1.13.0)", "pytest-mypy"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test (>=5.5)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "ruff (<=0.7.1)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] +type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.12.*)", "pytest-mypy"] [[package]] 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 = [ @@ -2319,7 +2213,6 @@ files = [ name = "six" version = "1.17.0" description = "Python 2 and 3 compatibility utilities" -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ @@ -2331,7 +2224,6 @@ files = [ name = "smmap" version = "5.0.2" description = "A pure Python implementation of a sliding window memory map manager" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2343,7 +2235,6 @@ files = [ name = "snowballstemmer" version = "2.2.0" description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -category = "dev" optional = false python-versions = "*" files = [ @@ -2355,7 +2246,6 @@ files = [ name = "soupsieve" version = "2.6" description = "A modern CSS selector implementation for Beautiful Soup." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2367,7 +2257,6 @@ files = [ name = "sphinx" version = "7.1.2" description = "Python documentation generator" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2403,7 +2292,6 @@ test = ["cython", "filelock", "html5lib", "pytest (>=4.6)"] name = "sphinx-rtd-theme" version = "3.0.2" description = "Read the Docs theme for Sphinx" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2423,7 +2311,6 @@ dev = ["bump2version", "transifex-client", "twine", "wheel"] name = "sphinx-tabs" version = "3.4.7" description = "Tabbed views for Sphinx" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2444,7 +2331,6 @@ testing = ["bs4", "coverage", "pygments", "pytest (>=7.1,<8)", "pytest-cov", "py name = "sphinxcontrib-applehelp" version = "1.0.4" description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2460,7 +2346,6 @@ test = ["pytest"] name = "sphinxcontrib-devhelp" version = "1.0.2" description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -2476,7 +2361,6 @@ test = ["pytest"] name = "sphinxcontrib-htmlhelp" version = "2.0.1" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2492,7 +2376,6 @@ 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 = [ @@ -2507,7 +2390,6 @@ 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 = [ @@ -2522,7 +2404,6 @@ test = ["flake8", "mypy", "pytest"] name = "sphinxcontrib-qthelp" version = "1.0.3" description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -2538,7 +2419,6 @@ test = ["pytest"] name = "sphinxcontrib-serializinghtml" version = "1.1.5" description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -2554,7 +2434,6 @@ test = ["pytest"] name = "structlog" version = "19.2.0" description = "Structured Logging for Python" -category = "main" optional = false python-versions = "*" files = [ @@ -2575,7 +2454,6 @@ tests = ["coverage", "freezegun (>=0.2.8)", "pretend", "pytest (>=3.3.0)", "pyth 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 = [ @@ -2587,7 +2465,6 @@ files = [ name = "tomli" version = "2.2.1" description = "A lil' TOML parser" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2629,7 +2506,6 @@ files = [ name = "tqdm" version = "4.67.1" description = "Fast, Extensible Progress Meter" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2651,7 +2527,6 @@ telegram = ["requests"] 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 = [ @@ -2664,21 +2539,19 @@ docs = ["Sphinx (>=1.3.1)", "docutils", "pylons-sphinx-themes"] [[package]] name = "typing-extensions" -version = "4.12.2" +version = "4.13.1" description = "Backported and Experimental Type Hints for Python 3.8+" -category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, - {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, + {file = "typing_extensions-4.13.1-py3-none-any.whl", hash = "sha256:4b6cf02909eb5495cfbc3f6e8fd49217e6cc7944e145cdda8caa3734777f9e69"}, + {file = "typing_extensions-4.13.1.tar.gz", hash = "sha256:98795af00fb9640edec5b8e31fc647597b4691f099ad75f469a2616be1a76dff"}, ] [[package]] name = "uritemplate" version = "4.1.1" description = "Implementation of RFC 6570 URI Templates" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2690,7 +2563,6 @@ files = [ name = "urllib3" version = "1.26.20" 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 = [ @@ -2707,7 +2579,6 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] name = "venusian" version = "3.1.1" description = "A library for deferring decorator actions" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2723,7 +2594,6 @@ 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 = [ @@ -2739,7 +2609,6 @@ testing = ["coverage (>=5.0)", "pytest", "pytest-cov"] name = "wcwidth" version = "0.2.13" description = "Measures the displayed width of unicode strings in a terminal" -category = "dev" optional = false python-versions = "*" files = [ @@ -2751,7 +2620,6 @@ files = [ name = "webob" version = "1.8.9" description = "WSGI request and response object" -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ @@ -2767,7 +2635,6 @@ testing = ["coverage", "pytest (>=3.1.0)", "pytest-cov", "pytest-xdist"] name = "webtest" version = "2.0.35" description = "Helper to test WSGI applications" -category = "main" optional = false python-versions = "*" files = [ @@ -2789,7 +2656,6 @@ tests = ["PasteDeploy", "WSGIProxy2", "coverage", "mock", "nose (<1.3.0)", "pyqu name = "zipp" version = "3.20.2" description = "Backport of pathlib-compatible object wrapper for zip files" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2809,7 +2675,6 @@ type = ["pytest-mypy"] name = "zope-deprecation" version = "5.0" description = "Zope Deprecation Infrastructure" -category = "main" optional = false python-versions = ">= 3.7" files = [ @@ -2828,7 +2693,6 @@ test = ["zope.testrunner"] name = "zope-interface" version = "7.2" description = "Interfaces for Python" -category = "main" optional = false python-versions = ">=3.8" files = [ diff --git a/pyproject.toml b/pyproject.toml index 765f598634..7c15c5ac5e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "smaht-submitr" -version = "1.6.4" +version = "1.7.0" description = "Support for uploading file submissions to SMAHT." # TODO: Update this email address when a more specific one is available for SMaHT. authors = ["SMaHT DAC "] From 49a87938b330a0226a794ec5be3c432b6175797c Mon Sep 17 00:00:00 2001 From: sarahgonicholson Date: Fri, 11 Apr 2025 11:26:51 -0400 Subject: [PATCH 13/13] Update version in config file --- submitr/config/custom_column_mappings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submitr/config/custom_column_mappings.json b/submitr/config/custom_column_mappings.json index 1a6d880ec0..e80d408ab0 100644 --- a/submitr/config/custom_column_mappings.json +++ b/submitr/config/custom_column_mappings.json @@ -1,5 +1,5 @@ { - "version": "1.0.0", + "version": "2.0.0", "sheet_mappings": { "DuplexSeq_ExternalQualityMetric": "duplexseq_external_quality_metric", "DSA_ExternalQualityMetric": "dsa_external_quality_metric"