From a7c5651b08b7ad6da40b4a45a3eaad0bbb5334fa Mon Sep 17 00:00:00 2001 From: korikuzma Date: Fri, 20 May 2022 20:33:46 -0400 Subject: [PATCH 1/4] feat: add endpoint for vrs-python translate_to method --- variation/main.py | 165 ++++++++++++++++++++++++---------------------- 1 file changed, 86 insertions(+), 79 deletions(-) diff --git a/variation/main.py b/variation/main.py index c11dcf57..fd2315f1 100644 --- a/variation/main.py +++ b/variation/main.py @@ -1,16 +1,19 @@ """Main application for FastAPI.""" from enum import Enum -from typing import Dict, Optional +from typing import Dict, Optional, Union from datetime import datetime from urllib.parse import unquote +import json import pkg_resources -from fastapi import FastAPI, Query +from fastapi import FastAPI, Query, Request from fastapi.openapi.utils import get_openapi +from pydantic import ValidationError import python_jsonschema_objects from ga4gh.vrsatile.pydantic.vrs_models import RelativeCopyClass from hgvs.exceptions import HGVSError from bioutils.exceptions import BioutilsError +from ga4gh.vrs import models from variation.schemas import ToVRSService, NormalizeService, ServiceMeta from variation.schemas.hgvs_to_copy_number_schema import \ @@ -22,8 +25,9 @@ from variation.schemas.service_schema import ClinVarAssembly, ParsedToAbsCnvQuery, \ ParsedToAbsCnvService from .version import __version__ -from .schemas.vrs_python_translator_schema import TranslateFromFormat, \ - TranslateFromService, TranslateFromQuery, VrsPythonMeta +from .schemas.vrs_python_translator_schema import ErrorResponse, TranslateFromFormat, \ + TranslateFromService, TranslateFromQuery, TranslateToFormat, TranslateToQuery, \ + TranslateToService, VrsPythonMeta class Tags(Enum): @@ -360,81 +364,84 @@ async def to_canonical_variation( ) -# @app.post("/variation/translate_to", -# summary="Given VRS Allele object as a dict, return variation expressed as " -# "queried format using vrs-python"s translator class", -# response_description="A response to a validly-formed query.", -# description="Return variation in queried format representation. " -# "Request body must contain `allele` and `fmt`. `allele` is a " -# "VRS Allele object represented as a dict. `fmt` must be either " -# "`spdi` or `hgvs`", -# response_model=TranslateToService, -# response_model_exclude_none=True) -# async def vrs_python_translate_to( -# request: Request) -> Union[ErrorResponse, TranslateToService]: -# """Given VRS Allele object as a dict, return variation expressed as queried -# format using vrs-python's translator class -# -# :param Request request: Request body. Request body must contain `allele` and `fmt`. # noqa -# `allele` is a VRS Allele object represented as a dict. `fmt` must be either -# `spdi` or `hgvs` -# :return: ErrorResponse if invalid request body. Else, TranslateToService containing # noqa -# variation represented as fmt representation if valid VRS Allele -# """ -# r = await request.json() -# warnings = list() -# -# allele_query = r.get("allele") -# if not allele_query: -# warnings.append("Missing `allele`. Must be VRS Allele represented as a dict") -# else: -# if not isinstance(allele_query, dict): -# warnings.append("`allele` must be a dict") -# -# if warnings: -# return ErrorResponse(errors=warnings) -# -# fmt_query = r.get("fmt") -# if not fmt_query: -# warnings.append("Missing `fmt`. Must be either `hgvs` or `spdi`") -# else: -# if not isinstance(fmt_query, str): -# warnings.append("`fmt` must be a str") -# else: -# fmt_query = fmt_query.strip() -# valid_fmts = [v.value for k, v in TranslateToFormat.__members__.items()] -# if fmt_query not in valid_fmts: -# warnings.append(f"{fmt_query} not a valid fmt. " -# f"Must be one of {valid_fmts}") -# -# if warnings: -# return ErrorResponse(errors=warnings) -# -# allele = None -# try: -# allele = models.Allele(**r["allele"]) -# except ValidationError as e: -# warnings.append(f"`allele` is not a valid VRS Allele: {e}") -# -# variation = [] -# if allele: -# try: -# variation = query_handler.tlr.translate_to(allele, r["fmt"]) -# except ValueError as e: -# warnings.append(f"vrs-python translator raised {type(e).__name__}: {e}") -# -# return TranslateToService( -# query=TranslateToQuery(variation=allele_query, fmt=fmt_query), -# warnings=warnings, -# variations=variation, -# service_meta_=ServiceMeta( -# version=__version__, -# response_datetime=datetime.now() -# ), -# vrs_python_meta_=VrsPythonMeta( -# version=pkg_resources.get_distribution("ga4gh.vrs").version -# ) -# ) +@app.post("/variation/translate_to", + summary="Given VRS Allele object as a dict, return variation expressed as " + "queried format using vrs-python's translator class", + response_description="A response to a validly-formed query.", + description="Return variation in queried format representation. " + "Request body must contain `allele` and `fmt`. `allele` is a " + "VRS Allele object represented as a dict. `fmt` must be either " + "`spdi` or `hgvs`", + response_model=Union[TranslateToService, ErrorResponse], + response_model_exclude_none=True, + tags=[Tags.VRS_PYTHON]) +async def vrs_python_translate_to( + request: Request) -> Union[ErrorResponse, TranslateToService]: + """Given VRS Allele object as a dict, return variation expressed as queried + format using vrs-python's translator class + + :param Request request: Request body. Request body must contain `allele` and `fmt`. + `allele` is a VRS Allele object represented as a dict. `fmt` must be either + `spdi` or `hgvs` + :return: ErrorResponse if invalid request body. Else, TranslateToService containing + variation represented as fmt representation if valid VRS Allele + """ + r = await request.json() + r = json.loads(r) + warnings = list() + + allele_query = r.get("allele") + if not allele_query: + warnings.append("Missing `allele`. Must be VRS Allele represented as a dict") + else: + if not isinstance(allele_query, dict): + warnings.append("`allele` must be a dict") + + if warnings: + return ErrorResponse(errors=warnings) + + fmt_query = r.get("fmt") + if not fmt_query: + warnings.append("Missing `fmt`. Must be either `hgvs` or `spdi`") + else: + if not isinstance(fmt_query, str): + warnings.append("`fmt` must be a str") + else: + fmt_query = fmt_query.strip() + valid_fmts = {v.value for k, v in TranslateToFormat.__members__.items()} + if fmt_query not in valid_fmts: + warnings.append(f"{fmt_query} not a valid fmt. " + f"Must be one of {valid_fmts}") + + if warnings: + return ErrorResponse(errors=warnings) + + allele = None + try: + allele = models.Allele(**r["allele"]) + except ValidationError as e: + warnings.append(f"`allele` is not a valid VRS Allele: {e}") + + variations = list() + if allele: + try: + variations = query_handler.tlr.translate_to(allele, r["fmt"]) + except ValueError as e: + warnings.append(f"vrs-python translator raised {type(e).__name__}: {e}") + + return TranslateToService( + query=TranslateToQuery(variation=allele_query, fmt=fmt_query), + warnings=warnings, + variations=variations, + service_meta_=ServiceMeta( + version=__version__, + response_datetime=datetime.now() + ), + vrs_python_meta_=VrsPythonMeta( + version=pkg_resources.get_distribution("ga4gh.vrs").version + ) + ) + @app.get("/variation/hgvs_to_absolute_copy_number", summary="Given HGVS expression, return absolute copy number variation", From ec2fca4a3a94d830ccc30dce2032ef8c10e826ed Mon Sep 17 00:00:00 2001 From: korikuzma Date: Fri, 20 May 2022 20:35:47 -0400 Subject: [PATCH 2/4] build: remove hgvs from dependencies --- Pipfile | 1 - requirements-dev.txt | 314 +++++++++++++++++++++---------------------- requirements.txt | 129 +++++++++--------- setup.cfg | 1 - 4 files changed, 213 insertions(+), 232 deletions(-) diff --git a/Pipfile b/Pipfile index 19cec633..4a8abc1f 100644 --- a/Pipfile +++ b/Pipfile @@ -25,7 +25,6 @@ psycopg2-binary = "*" pytest-asyncio = "*" [packages] -hgvs = "*" "biocommons.seqrepo" = "*" fastapi = "*" uvicorn = "*" diff --git a/requirements-dev.txt b/requirements-dev.txt index 66f61806..a7a0d6f3 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,196 +1,186 @@ -# -# These requirements were autogenerated by pipenv -# To regenerate from the project's Pipfile, run: -# -# pipenv lock --requirements --dev -# - -# Note: in pipenv 2020.x, "--dev" changed to emit both default and development -# requirements. To emit only development requirements, pass "--dev-only". - -i https://pypi.org/simple --e . -aiofiles==0.8.0; python_version >= '3.6' and python_version < '4.0' -anyio==3.5.0; python_full_version >= '3.6.2' +aiofiles==0.8.0 +anyio==3.6.1 appdirs==1.4.4 -appnope==0.1.3; sys_platform == 'darwin' -argcomplete==2.0.0; python_version >= '3.6' +appnope==0.1.3 +argcomplete==2.0.0 argh==0.26.2 -argon2-cffi-bindings==21.2.0; python_version >= '3.6' -argon2-cffi==21.3.0; python_version >= '3.6' -asgiref==3.5.0; python_version >= '3.7' +asgiref==3.5.2 asttokens==2.0.5 -asyncpg==0.25.0; python_version >= '3.6' -attrs==21.4.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' -babel==2.9.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' +asyncpg==0.25.0 +attrs==21.4.0 backcall==0.2.0 -beautifulsoup4==4.11.1; python_version >= '3.6' +beautifulsoup4==4.11.1 biocommons.seqrepo==0.6.5 -bioutils==0.5.5; python_version >= '3.6' -bleach==5.0.0; python_version >= '3.7' -boto3==1.21.37 -botocore==1.24.37; python_version >= '3.6' +bioutils==0.5.5 +boto3==1.23.5 +botocore==1.26.5 bs4==0.0.1 -canonicaljson==1.6.0; python_version ~= '3.7' -certifi==2021.10.8 +canonicaljson==1.6.1 +certifi==2022.5.18.1 +charset-normalizer==2.0.12 +click==8.1.3 +coloredlogs==15.0.1 +configparser==5.2.0 +cssselect==1.1.0 +decorator==5.1.1 +executing==0.8.3 +fake-useragent==0.1.11 +fastapi==0.78.0 +ga4gh.vrs[extras]==0.8a0 +ga4gh.vrsatile.pydantic==0.0.11 +gene-normalizer==0.1.27 +gffutils==0.10.1 +h11==0.13.0 +hgvs==1.5.2 +humanfriendly==10.0 +idna==3.3 +importlib-metadata==4.11.3 +inflection==0.5.1 +ipython==8.3.0 +jedi==0.18.1 +jmespath==1.0.0 +jsonschema==3.2.0 +lxml==4.8.0 +markdown==3.3.7 +matplotlib-inline==0.1.3 +numpy==1.22.4 +pandas==1.4.2 +parse==1.19.0 +parsley==1.3 +parso==0.8.3 +pexpect==4.8.0 +pickleshare==0.7.5 +prompt-toolkit==3.0.29 +psycopg2==2.9.3 +ptyprocess==0.7.0 +pure-eval==0.2.2 +pydantic==1.9.1 +pyee==8.2.2 +pyfaidx==0.6.4 +pygments==2.12.0 +pyliftover==0.4 +pyppeteer==1.0.2 +pyquery==1.4.3 +pyrsistent==0.18.1 +pysam==0.19.0 +python-dateutil==2.8.2 +python-jsonschema-objects==0.4.1 +pytz==2022.1 +pyyaml==6.0 +requests==2.27.1 +requests-html==0.10.0 +s3transfer==0.5.2 +setuptools==62.3.2 +simplejson==3.17.6 +six==1.16.0 +sniffio==1.2.0 +soupsieve==2.3.2.post1 +sqlparse==0.4.2 +stack-data==0.2.0 +starlette==0.19.1 +tabulate==0.8.9 +tqdm==4.64.0 +traitlets==5.2.1.post0 +typing-extensions==4.2.0 +urllib3==1.26.9 +uta-tools==0.0.16 +uvicorn==0.17.6 +w3lib==1.22.0 +wcwidth==0.2.5 +websockets==10.3 +yoyo-migrations==7.3.2 +zipp==3.8.0 +argon2-cffi==21.3.0 +argon2-cffi-bindings==21.2.0 +babel==2.10.1 +bleach==5.0.0 cffi==1.15.0 -cfgv==3.3.1; python_full_version >= '3.6.1' -charset-normalizer==2.0.12; python_version >= '3' -click==8.1.2; python_version >= '3.7' -coloredlogs==15.0.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' +cfgv==3.3.1 commonmark==0.9.1 -configparser==5.2.0; python_version >= '3.6' -coverage==6.3.2 +coverage==6.3.3 coveralls==3.3.1 -cssselect==1.1.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' -cycler==0.11.0; python_version >= '3.6' -debugpy==1.6.0; python_version >= '3.7' -decorator==5.1.1; python_version >= '3.5' -defusedxml==0.7.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' +cycler==0.11.0 +debugpy==1.6.0 +defusedxml==0.7.1 distlib==0.3.4 docopt==0.6.2 -docutils==0.18.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' -entrypoints==0.4; python_version >= '3.6' -executing==0.8.3 -fake-useragent==0.1.11 -fastapi==0.75.1 +docutils==0.18.1 +entrypoints==0.4 fastjsonschema==2.15.3 -filelock==3.6.0; python_version >= '3.7' -flake8-annotations==2.8.0 +filelock==3.7.0 +flake8==4.0.1 +flake8-annotations==2.9.0 flake8-docstrings==1.6.0 flake8-import-order==0.18.1 flake8-quotes==3.3.1 -flake8==4.0.1 -fonttools==4.32.0; python_version >= '3.7' -ga4gh.vrs[extras]==0.8a0 -ga4gh.vrsatile.pydantic==0.0.11 -gene-normalizer==0.1.26 -gffutils==0.10.1 -h11==0.13.0; python_version >= '3.6' -hgvs==1.5.2 -humanfriendly==10.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' -identify==2.4.12; python_version >= '3.7' -idna==3.3; python_version >= '3.5' -importlib-metadata==4.11.3; python_version < '3.10' -inflection==0.5.1; python_version >= '3.5' +fonttools==4.33.3 +identify==2.5.1 iniconfig==1.1.1 ipykernel==6.13.0 ipython-genutils==0.2.0 -ipython==8.2.0; python_version >= '3.8' ipywidgets==7.7.0 -jedi==0.18.1; python_version >= '3.6' -jinja2==3.1.1; python_version >= '3.7' -jmespath==1.0.0; python_version >= '3.7' -json5==0.9.6 -jsonschema==3.2.0 -jupyter-client==7.2.2; python_version >= '3.7' -jupyter-console==6.4.3; python_version >= '3.6' -jupyter-core==4.9.2; python_version >= '3.6' -jupyter-server==1.16.0; python_version >= '3.7' +jinja2==3.1.2 +json5==0.9.8 jupyter==1.0.0 -jupyterlab-pygments==0.2.0; python_version >= '3.7' -jupyterlab-server==2.12.0; python_version >= '3.7' -jupyterlab-widgets==1.1.0; python_version >= '3.6' -jupyterlab==3.3.3 -keyring==23.5.0; python_version >= '3.7' -kiwisolver==1.4.2; python_version >= '3.7' -lxml==4.8.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' -markdown==3.3.6; python_version >= '3.6' -markupsafe==2.1.1; python_version >= '3.7' -matplotlib-inline==0.1.3; python_version >= '3.5' -matplotlib==3.5.1 +jupyter-client==7.3.1 +jupyter-console==6.4.3 +jupyter-core==4.10.0 +jupyter-server==1.17.0 +jupyterlab==3.4.2 +jupyterlab-pygments==0.2.2 +jupyterlab-server==2.14.0 +jupyterlab-widgets==1.1.0 +keyring==23.5.0 +kiwisolver==1.4.2 +markupsafe==2.1.1 +matplotlib==3.5.2 mccabe==0.6.1 mistune==0.8.4 -nbclassic==0.3.7; python_version >= '3.7' -nbclient==0.5.13; python_version >= '3.7' -nbconvert==6.5.0; python_version >= '3.7' -nbformat==5.3.0; python_version >= '3.7' -nest-asyncio==1.5.5; python_version >= '3.5' +nbclassic==0.3.7 +nbclient==0.6.3 +nbconvert==6.5.0 +nbformat==5.4.0 +nest-asyncio==1.5.5 nodeenv==1.6.0 -notebook-shim==0.1.0; python_version >= '3.7' -notebook==6.4.10; python_version >= '3.6' -numpy==1.22.3; python_version >= '3.8' -packaging==21.3; python_version >= '3.6' -pandas==1.4.2; python_version >= '3.8' -pandocfilters==1.5.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' -parse==1.19.0 -parsley==1.3 -parso==0.8.3; python_version >= '3.6' -pexpect==4.8.0; sys_platform != 'win32' -pickleshare==0.7.5 -pillow==9.1.0; python_version >= '3.7' +notebook==6.4.11 +notebook-shim==0.1.0 +packaging==21.3 +pandocfilters==1.5.0 +pillow==9.1.1 pkginfo==1.8.2 -platformdirs==2.5.1; python_version >= '3.7' -pluggy==1.0.0; python_version >= '3.6' -pre-commit==2.18.1 -prometheus-client==0.14.1; python_version >= '3.6' -prompt-toolkit==3.0.29; python_full_version >= '3.6.2' -psutil==5.9.0; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3' +platformdirs==2.5.2 +pluggy==1.0.0 +pre-commit==2.19.0 +prometheus-client==0.14.1 +psutil==5.9.1 psycopg2-binary==2.9.3 -psycopg2==2.9.3; python_version >= '3.6' -ptyprocess==0.7.0 -pure-eval==0.2.2 -py==1.11.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' -pycodestyle==2.8.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' -pycparser==2.21; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' -pydantic==1.9.0 -pydocstyle==6.1.1; python_version >= '3.6' -pyee==8.2.2 -pyfaidx==0.6.4 -pyflakes==2.4.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' -pygments==2.11.2; python_version >= '3.5' -pyliftover==0.4 -pyparsing==3.0.8; python_full_version >= '3.6.8' -pyppeteer==1.0.2; python_version >= '3.7' and python_version < '4.0' -pyquery==1.4.3 -pyrsistent==0.18.1; python_version >= '3.7' -pysam==0.19.0 +py==1.11.0 +pycodestyle==2.8.0 +pycparser==2.21 +pydocstyle==6.1.1 +pyflakes==2.4.0 +pyparsing==3.0.9 +pytest==7.1.2 pytest-asyncio==0.18.3 pytest-cov==3.0.0 -pytest==7.1.1 -python-dateutil==2.8.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' -python-jsonschema-objects==0.4.1 -pytz==2022.1 -pyyaml==6.0; python_version >= '3.6' -pyzmq==22.3.0; python_version >= '3.6' -qtconsole==5.3.0; python_version >= '3.7' -qtpy==2.0.1; python_version >= '3.6' -readme-renderer==34.0; python_version >= '3.6' -requests-html==0.10.0; python_version >= '3.6' +pyzmq==23.0.0 +qtconsole==5.3.0 +qtpy==2.1.0 +readme-renderer==35.0 requests-toolbelt==0.9.1 -requests==2.27.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' -rfc3986==2.0.0; python_version >= '3.7' -rich==12.2.0; python_version < '4' and python_full_version >= '3.6.3' -s3transfer==0.5.2; python_version >= '3.6' +rfc3986==2.0.0 +rich==12.4.1 send2trash==1.8.0 -setuptools==62.1.0; python_version >= '3.7' -simplejson==3.17.6; python_version >= '2.5' and python_version not in '3.0, 3.1, 3.2, 3.3' -six==1.16.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' -sniffio==1.2.0; python_version >= '3.5' snowballstemmer==2.2.0 -soupsieve==2.3.2; python_version >= '3.6' -sqlparse==0.4.2; python_version >= '3.5' -stack-data==0.2.0 -starlette==0.17.1; python_version >= '3.6' -tabulate==0.8.9 -terminado==0.13.3; python_version >= '3.7' -tinycss2==1.1.1; python_version >= '3.6' -toml==0.10.2; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3' -tomli==2.0.1; python_version >= '3.7' -tornado==6.1; python_version >= '3.5' -tqdm==4.64.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' -traitlets==5.1.1; python_version >= '3.7' +terminado==0.15.0 +tinycss2==1.1.1 +toml==0.10.2 +tomli==2.0.1 +tornado==6.1 twine==4.0.0 -typing-extensions==4.1.1; python_version >= '3.6' -urllib3==1.26.9; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4.0' -uta-tools==0.0.15 -uvicorn==0.17.6 -virtualenv==20.14.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' -w3lib==1.22.0 -wcwidth==0.2.5 +-e . +virtualenv==20.14.1 webencodings==0.5.1 -websocket-client==1.3.2; python_version >= '3.7' -websockets==10.2; python_version >= '3.7' +websocket-client==1.3.2 widgetsnbextension==3.6.0 -yoyo-migrations==7.3.2 -zipp==3.8.0; python_version >= '3.7' diff --git a/requirements.txt b/requirements.txt index adab7cb4..7842a008 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,100 +1,93 @@ -# -# These requirements were autogenerated by pipenv -# To regenerate from the project's Pipfile, run: -# -# pipenv lock --requirements -# - -i https://pypi.org/simple -aiofiles==0.8.0; python_version >= '3.6' and python_version < '4.0' -anyio==3.5.0; python_full_version >= '3.6.2' +aiofiles==0.8.0 +anyio==3.6.1 appdirs==1.4.4 -appnope==0.1.3; sys_platform == 'darwin' -argcomplete==2.0.0; python_version >= '3.6' +appnope==0.1.3 +argcomplete==2.0.0 argh==0.26.2 -asgiref==3.5.0; python_version >= '3.7' +asgiref==3.5.2 asttokens==2.0.5 -asyncpg==0.25.0; python_version >= '3.6' -attrs==21.4.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' +asyncpg==0.25.0 +attrs==21.4.0 backcall==0.2.0 -beautifulsoup4==4.11.1; python_version >= '3.6' +beautifulsoup4==4.11.1 biocommons.seqrepo==0.6.5 -bioutils==0.5.5; python_version >= '3.6' -boto3==1.21.37 -botocore==1.24.37; python_version >= '3.6' +bioutils==0.5.5 +boto3==1.23.5 +botocore==1.26.5 bs4==0.0.1 -canonicaljson==1.6.0; python_version ~= '3.7' -certifi==2021.10.8 -charset-normalizer==2.0.12; python_version >= '3' -click==8.1.2; python_version >= '3.7' -coloredlogs==15.0.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' -configparser==5.2.0; python_version >= '3.6' -cssselect==1.1.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' -decorator==5.1.1; python_version >= '3.5' +canonicaljson==1.6.1 +certifi==2022.5.18.1 +charset-normalizer==2.0.12 +click==8.1.3 +coloredlogs==15.0.1 +configparser==5.2.0 +cssselect==1.1.0 +decorator==5.1.1 executing==0.8.3 fake-useragent==0.1.11 -fastapi==0.75.1 +fastapi==0.78.0 ga4gh.vrs[extras]==0.8a0 ga4gh.vrsatile.pydantic==0.0.11 -gene-normalizer==0.1.26 +gene-normalizer==0.1.27 gffutils==0.10.1 -h11==0.13.0; python_version >= '3.6' +h11==0.13.0 hgvs==1.5.2 -humanfriendly==10.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' -idna==3.3; python_version >= '3.5' -importlib-metadata==4.11.3; python_version < '3.10' -inflection==0.5.1; python_version >= '3.5' -ipython==8.2.0; python_version >= '3.8' -jedi==0.18.1; python_version >= '3.6' -jmespath==1.0.0; python_version >= '3.7' +humanfriendly==10.0 +idna==3.3 +importlib-metadata==4.11.3 +inflection==0.5.1 +ipython==8.3.0 +jedi==0.18.1 +jmespath==1.0.0 jsonschema==3.2.0 -lxml==4.8.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' -markdown==3.3.6; python_version >= '3.6' -matplotlib-inline==0.1.3; python_version >= '3.5' -numpy==1.22.3; python_version >= '3.8' -pandas==1.4.2; python_version >= '3.8' +lxml==4.8.0 +markdown==3.3.7 +matplotlib-inline==0.1.3 +numpy==1.22.4 +pandas==1.4.2 parse==1.19.0 parsley==1.3 -parso==0.8.3; python_version >= '3.6' -pexpect==4.8.0; sys_platform != 'win32' +parso==0.8.3 +pexpect==4.8.0 pickleshare==0.7.5 -prompt-toolkit==3.0.29; python_full_version >= '3.6.2' -psycopg2==2.9.3; python_version >= '3.6' +prompt-toolkit==3.0.29 +psycopg2==2.9.3 ptyprocess==0.7.0 pure-eval==0.2.2 -pydantic==1.9.0 +pydantic==1.9.1 pyee==8.2.2 pyfaidx==0.6.4 -pygments==2.11.2; python_version >= '3.5' +pygments==2.12.0 pyliftover==0.4 -pyppeteer==1.0.2; python_version >= '3.7' and python_version < '4.0' +pyppeteer==1.0.2 pyquery==1.4.3 -pyrsistent==0.18.1; python_version >= '3.7' +pyrsistent==0.18.1 pysam==0.19.0 -python-dateutil==2.8.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' +python-dateutil==2.8.2 python-jsonschema-objects==0.4.1 pytz==2022.1 -pyyaml==6.0; python_version >= '3.6' -requests-html==0.10.0; python_version >= '3.6' -requests==2.27.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' -s3transfer==0.5.2; python_version >= '3.6' -setuptools==62.1.0; python_version >= '3.7' -simplejson==3.17.6; python_version >= '2.5' and python_version not in '3.0, 3.1, 3.2, 3.3' -six==1.16.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' -sniffio==1.2.0; python_version >= '3.5' -soupsieve==2.3.2; python_version >= '3.6' -sqlparse==0.4.2; python_version >= '3.5' +pyyaml==6.0 +requests==2.27.1 +requests-html==0.10.0 +s3transfer==0.5.2 +setuptools==62.3.2 +simplejson==3.17.6 +six==1.16.0 +sniffio==1.2.0 +soupsieve==2.3.2.post1 +sqlparse==0.4.2 stack-data==0.2.0 -starlette==0.17.1; python_version >= '3.6' +starlette==0.19.1 tabulate==0.8.9 -tqdm==4.64.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' -traitlets==5.1.1; python_version >= '3.7' -typing-extensions==4.1.1; python_version >= '3.6' -urllib3==1.26.9; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4.0' -uta-tools==0.0.15 +tqdm==4.64.0 +traitlets==5.2.1.post0 +typing-extensions==4.2.0 +urllib3==1.26.9 +uta-tools==0.0.16 uvicorn==0.17.6 w3lib==1.22.0 wcwidth==0.2.5 -websockets==10.2; python_version >= '3.7' +websockets==10.3 yoyo-migrations==7.3.2 -zipp==3.8.0; python_version >= '3.7' +zipp==3.8.0 diff --git a/setup.cfg b/setup.cfg index b9792685..91bc2730 100644 --- a/setup.cfg +++ b/setup.cfg @@ -25,7 +25,6 @@ zip_safe = False include_package_data = True install_requires = - hgvs biocommons.seqrepo fastapi uvicorn From db5cd170a196f55383bc6e5d05fef67838224c07 Mon Sep 17 00:00:00 2001 From: korikuzma Date: Fri, 20 May 2022 20:36:26 -0400 Subject: [PATCH 3/4] refactor: update version --- variation/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/variation/version.py b/variation/version.py index 4fbec93e..5ae007ca 100644 --- a/variation/version.py +++ b/variation/version.py @@ -1 +1 @@ -__version__ = "0.4.0a3" +__version__ = "0.4.0a4" From d2f471e83aecec1d93fd182b443cd52ae45350a8 Mon Sep 17 00:00:00 2001 From: korikuzma Date: Sun, 22 May 2022 18:04:18 -0400 Subject: [PATCH 4/4] build: specify uta_tools >= 0.0.17 --- Pipfile | 2 +- requirements-dev.txt | 4 ++-- requirements.txt | 4 ++-- setup.cfg | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Pipfile b/Pipfile index 4a8abc1f..f42d870e 100644 --- a/Pipfile +++ b/Pipfile @@ -34,4 +34,4 @@ gene-normalizer = ">=0.1.26" pyliftover = "*" boto3 = "*" "ga4gh.vrsatile.pydantic" = ">=0.0.11" -uta-tools = ">=0.0.15" +uta-tools = ">=0.0.17" diff --git a/requirements-dev.txt b/requirements-dev.txt index a7a0d6f3..885c729f 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -35,7 +35,7 @@ h11==0.13.0 hgvs==1.5.2 humanfriendly==10.0 idna==3.3 -importlib-metadata==4.11.3 +importlib-metadata==4.11.4 inflection==0.5.1 ipython==8.3.0 jedi==0.18.1 @@ -84,7 +84,7 @@ tqdm==4.64.0 traitlets==5.2.1.post0 typing-extensions==4.2.0 urllib3==1.26.9 -uta-tools==0.0.16 +uta-tools==0.0.17 uvicorn==0.17.6 w3lib==1.22.0 wcwidth==0.2.5 diff --git a/requirements.txt b/requirements.txt index 7842a008..5ba8ce17 100644 --- a/requirements.txt +++ b/requirements.txt @@ -35,7 +35,7 @@ h11==0.13.0 hgvs==1.5.2 humanfriendly==10.0 idna==3.3 -importlib-metadata==4.11.3 +importlib-metadata==4.11.4 inflection==0.5.1 ipython==8.3.0 jedi==0.18.1 @@ -84,7 +84,7 @@ tqdm==4.64.0 traitlets==5.2.1.post0 typing-extensions==4.2.0 urllib3==1.26.9 -uta-tools==0.0.16 +uta-tools==0.0.17 uvicorn==0.17.6 w3lib==1.22.0 wcwidth==0.2.5 diff --git a/setup.cfg b/setup.cfg index 91bc2730..3076b4de 100644 --- a/setup.cfg +++ b/setup.cfg @@ -34,7 +34,7 @@ install_requires = pyliftover boto3 ga4gh.vrsatile.pydantic >= 0.0.11 - uta-tools >= 0.0.15 + uta-tools >= 0.0.17 tests_require = pytest