From 9dd82ac44faca449f751bf9d7f1a3b0f82acd356 Mon Sep 17 00:00:00 2001 From: Robert Queenin <2177841+ecalifornica@users.noreply.github.com> Date: Fri, 25 Aug 2023 15:46:14 -0700 Subject: [PATCH 1/2] Add black formatter Github workflow configuration For more information: https://black.readthedocs.io/en/stable/integrations/github_actions.html --- .github/workflows/black.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .github/workflows/black.yml diff --git a/.github/workflows/black.yml b/.github/workflows/black.yml new file mode 100644 index 00000000..4a72b0e6 --- /dev/null +++ b/.github/workflows/black.yml @@ -0,0 +1,14 @@ +name: Lint + +on: [push, pull_request] + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: psf/black@stable + with: + options: "--check --verbose" + src: "./src" + version: "~= 23.0" From ab3f700c5a79b282ed6032bd159012dc23340844 Mon Sep 17 00:00:00 2001 From: Robert Queenin <2177841+ecalifornica@users.noreply.github.com> Date: Fri, 25 Aug 2023 17:05:25 -0700 Subject: [PATCH 2/2] Format code with black --- src/hgvs/__init__.py | 3 +- src/hgvs/alignmentmapper.py | 8 ++--- src/hgvs/assemblymapper.py | 11 +++---- src/hgvs/config.py | 3 +- src/hgvs/dataproviders/interface.py | 3 +- src/hgvs/dataproviders/ncbi.py | 3 -- src/hgvs/dataproviders/seqfetcher.py | 3 +- src/hgvs/dataproviders/uta.py | 6 +--- src/hgvs/decorators/deprecated.py | 3 +- src/hgvs/decorators/lru_cache.py | 3 +- src/hgvs/edit.py | 3 +- src/hgvs/exceptions.py | 3 +- src/hgvs/hgvsposition.py | 3 +- src/hgvs/intervalmapper.py | 3 +- src/hgvs/location.py | 6 ++-- src/hgvs/normalizer.py | 7 ++--- src/hgvs/parser.py | 4 +-- src/hgvs/posedit.py | 3 +- src/hgvs/projector.py | 3 +- src/hgvs/sequencevariant.py | 3 +- src/hgvs/shell.py | 45 +++++++++++++++++++++++----- src/hgvs/transcriptmapper.py | 6 ++-- src/hgvs/utils/__init__.py | 3 +- src/hgvs/utils/altseq_to_hgvsp.py | 5 +--- src/hgvs/utils/altseqbuilder.py | 4 +-- src/hgvs/utils/context.py | 3 +- src/hgvs/utils/norm.py | 3 +- src/hgvs/utils/orderedenum.py | 3 +- src/hgvs/validator.py | 6 ++-- src/hgvs/variantmapper.py | 7 ++--- 30 files changed, 75 insertions(+), 94 deletions(-) diff --git a/src/hgvs/__init__.py b/src/hgvs/__init__.py index bee57a00..1027103b 100644 --- a/src/hgvs/__init__.py +++ b/src/hgvs/__init__.py @@ -49,8 +49,7 @@ """ -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals import logging import re diff --git a/src/hgvs/alignmentmapper.py b/src/hgvs/alignmentmapper.py index f92a2b77..6728dc55 100644 --- a/src/hgvs/alignmentmapper.py +++ b/src/hgvs/alignmentmapper.py @@ -27,8 +27,7 @@ # -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals from bioutils.coordinates import strand_int_to_pm from six.moves import range @@ -36,8 +35,7 @@ import hgvs.location from hgvs import global_config from hgvs.enums import Datum -from hgvs.exceptions import (HGVSDataNotAvailableError, HGVSError, - HGVSInvalidIntervalError, HGVSUsageError) +from hgvs.exceptions import HGVSDataNotAvailableError, HGVSError, HGVSInvalidIntervalError, HGVSUsageError from hgvs.utils import build_tx_cigar from hgvs.utils.cigarmapper import CIGARMapper @@ -88,7 +86,6 @@ def __init__(self, hdp, tx_ac, alt_ac, alt_aln_method): self.alt_aln_method = alt_aln_method if self.alt_aln_method != "transcript": - tx_info = hdp.get_tx_info(self.tx_ac, self.alt_ac, self.alt_aln_method) if tx_info is None: raise HGVSDataNotAvailableError( @@ -126,7 +123,6 @@ def __init__(self, hdp, tx_ac, alt_ac, alt_aln_method): self.tgt_len = self.cigarmapper.tgt_len else: - # this covers the identity cases n <-> c tx_identity_info = hdp.get_tx_identity_info(self.tx_ac) if tx_identity_info is None: diff --git a/src/hgvs/assemblymapper.py b/src/hgvs/assemblymapper.py index 0b70f0dc..20acf910 100644 --- a/src/hgvs/assemblymapper.py +++ b/src/hgvs/assemblymapper.py @@ -1,15 +1,12 @@ # -*- coding: utf-8 -*- -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals import logging import hgvs import hgvs.normalizer -from hgvs.exceptions import (HGVSDataNotAvailableError, HGVSError, - HGVSInvalidVariantError, - HGVSUnsupportedOperationError) +from hgvs.exceptions import HGVSDataNotAvailableError, HGVSError, HGVSInvalidVariantError, HGVSUnsupportedOperationError from hgvs.variantmapper import VariantMapper _logger = logging.getLogger(__name__) @@ -57,7 +54,7 @@ def __init__( replace_reference=hgvs.global_config.mapping.replace_reference, add_gene_symbol=hgvs.global_config.mapping.add_gene_symbol, *args, - **kwargs + **kwargs, ): """ :param object hdp: instance of hgvs.dataprovider subclass @@ -78,7 +75,7 @@ def __init__( prevalidation_level=prevalidation_level, add_gene_symbol=add_gene_symbol, *args, - **kwargs + **kwargs, ) self.assembly_name = assembly_name self.alt_aln_method = alt_aln_method diff --git a/src/hgvs/config.py b/src/hgvs/config.py index 79478b70..75790992 100644 --- a/src/hgvs/config.py +++ b/src/hgvs/config.py @@ -27,8 +27,7 @@ """ -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals import logging import re diff --git a/src/hgvs/dataproviders/interface.py b/src/hgvs/dataproviders/interface.py index 9d16431f..17b487dc 100644 --- a/src/hgvs/dataproviders/interface.py +++ b/src/hgvs/dataproviders/interface.py @@ -3,8 +3,7 @@ """ -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals import abc import os diff --git a/src/hgvs/dataproviders/ncbi.py b/src/hgvs/dataproviders/ncbi.py index 49234bf0..ca709deb 100644 --- a/src/hgvs/dataproviders/ncbi.py +++ b/src/hgvs/dataproviders/ncbi.py @@ -311,7 +311,6 @@ def _get_cursor(self, n_retries=1): n_tries_rem = n_retries + 1 while n_tries_rem > 0: try: - conn = self._pool.getconn() if self.pooling else self._conn # autocommit=True obviates closing explicitly @@ -330,7 +329,6 @@ def _get_cursor(self, n_retries=1): break except psycopg2.OperationalError: - _logger.warning("Lost connection to {url}; attempting reconnect".format(url=self.url)) if self.pooling: self._pool.closeall() @@ -340,7 +338,6 @@ def _get_cursor(self, n_retries=1): n_tries_rem -= 1 else: - # N.B. Probably never reached raise HGVSError("Permanently lost connection to {url} ({n} retries)".format(url=self.url, n=n_retries)) diff --git a/src/hgvs/dataproviders/seqfetcher.py b/src/hgvs/dataproviders/seqfetcher.py index 8c8b7666..cc42c973 100644 --- a/src/hgvs/dataproviders/seqfetcher.py +++ b/src/hgvs/dataproviders/seqfetcher.py @@ -3,8 +3,7 @@ """ -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals import logging import os diff --git a/src/hgvs/dataproviders/uta.py b/src/hgvs/dataproviders/uta.py index 0c0bf3f2..39397919 100644 --- a/src/hgvs/dataproviders/uta.py +++ b/src/hgvs/dataproviders/uta.py @@ -4,8 +4,7 @@ """ -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals import contextlib import inspect @@ -580,7 +579,6 @@ def _get_cursor(self, n_retries=1): n_tries_rem = n_retries + 1 while n_tries_rem > 0: try: - conn = self._pool.getconn() if self.pooling else self._conn # autocommit=True obviates closing explicitly @@ -604,7 +602,6 @@ def _get_cursor(self, n_retries=1): break except psycopg2.OperationalError: - _logger.warning("Lost connection to {url}; attempting reconnect".format(url=self.url)) if self.pooling: self._pool.putconn(conn) @@ -616,7 +613,6 @@ def _get_cursor(self, n_retries=1): n_tries_rem -= 1 else: - # N.B. Probably never reached raise HGVSError("Permanently lost connection to {url} ({n} retries)".format(url=self.url, n=n_retries)) diff --git a/src/hgvs/decorators/deprecated.py b/src/hgvs/decorators/deprecated.py index 8e55819d..a7f375d1 100644 --- a/src/hgvs/decorators/deprecated.py +++ b/src/hgvs/decorators/deprecated.py @@ -4,8 +4,7 @@ """ -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals import collections import warnings diff --git a/src/hgvs/decorators/lru_cache.py b/src/hgvs/decorators/lru_cache.py index bd3db19d..dc1477af 100644 --- a/src/hgvs/decorators/lru_cache.py +++ b/src/hgvs/decorators/lru_cache.py @@ -11,8 +11,7 @@ """ -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals from collections import namedtuple from functools import update_wrapper diff --git a/src/hgvs/edit.py b/src/hgvs/edit.py index 0d227b3c..cf354230 100644 --- a/src/hgvs/edit.py +++ b/src/hgvs/edit.py @@ -9,8 +9,7 @@ """ -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals import attr import six diff --git a/src/hgvs/exceptions.py b/src/hgvs/exceptions.py index 52f34583..a9e5fc47 100644 --- a/src/hgvs/exceptions.py +++ b/src/hgvs/exceptions.py @@ -3,8 +3,7 @@ """ -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals class HGVSError(Exception): diff --git a/src/hgvs/hgvsposition.py b/src/hgvs/hgvsposition.py index 498c63e9..eb9a16ca 100644 --- a/src/hgvs/hgvsposition.py +++ b/src/hgvs/hgvsposition.py @@ -3,8 +3,7 @@ """ -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals import attr diff --git a/src/hgvs/intervalmapper.py b/src/hgvs/intervalmapper.py index 240e91c7..accb2fe9 100644 --- a/src/hgvs/intervalmapper.py +++ b/src/hgvs/intervalmapper.py @@ -42,8 +42,7 @@ start_i and minimal end_i. """ -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals import logging import re diff --git a/src/hgvs/location.py b/src/hgvs/location.py index 977ba9c0..7b6780d7 100644 --- a/src/hgvs/location.py +++ b/src/hgvs/location.py @@ -15,8 +15,7 @@ * :class:`Interval` -- an interval of Positions """ -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals from functools import total_ordering @@ -25,8 +24,7 @@ import hgvs from hgvs.enums import Datum, ValidationLevel -from hgvs.exceptions import (HGVSInvalidIntervalError, - HGVSUnsupportedOperationError) +from hgvs.exceptions import HGVSInvalidIntervalError, HGVSUnsupportedOperationError @attr.s(slots=True, repr=False, cmp=False) diff --git a/src/hgvs/normalizer.py b/src/hgvs/normalizer.py index 3f95cc5b..1d41e8f7 100644 --- a/src/hgvs/normalizer.py +++ b/src/hgvs/normalizer.py @@ -2,8 +2,7 @@ """hgvs.normalizer """ -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals import copy import logging @@ -13,9 +12,7 @@ import hgvs import hgvs.validator import hgvs.variantmapper -from hgvs.exceptions import (HGVSDataNotAvailableError, - HGVSInvalidVariantError, - HGVSUnsupportedOperationError) +from hgvs.exceptions import HGVSDataNotAvailableError, HGVSInvalidVariantError, HGVSUnsupportedOperationError from hgvs.utils.norm import normalize_alleles _logger = logging.getLogger(__name__) diff --git a/src/hgvs/parser.py b/src/hgvs/parser.py index 29430dc0..05c0953f 100644 --- a/src/hgvs/parser.py +++ b/src/hgvs/parser.py @@ -4,8 +4,7 @@ """ -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals import copy import logging @@ -17,6 +16,7 @@ from pkg_resources import resource_filename import hgvs.edit + # The following imports are referenced by fully-qualified name in the # hgvs grammar. import hgvs.enums diff --git a/src/hgvs/posedit.py b/src/hgvs/posedit.py index d4a0f0f6..07cc981e 100644 --- a/src/hgvs/posedit.py +++ b/src/hgvs/posedit.py @@ -3,8 +3,7 @@ """ -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals import attr diff --git a/src/hgvs/projector.py b/src/hgvs/projector.py index cc44feb0..b50c0df9 100644 --- a/src/hgvs/projector.py +++ b/src/hgvs/projector.py @@ -4,8 +4,7 @@ """ -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals import copy diff --git a/src/hgvs/sequencevariant.py b/src/hgvs/sequencevariant.py index 3456cfeb..7973323b 100644 --- a/src/hgvs/sequencevariant.py +++ b/src/hgvs/sequencevariant.py @@ -3,8 +3,7 @@ """ -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals import re diff --git a/src/hgvs/shell.py b/src/hgvs/shell.py index a93a7599..2d4da673 100755 --- a/src/hgvs/shell.py +++ b/src/hgvs/shell.py @@ -2,8 +2,7 @@ """start IPython shell with hgvs initialized. Intended to be used for experimenting, debugging, and generating bug reports.""" -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals import logging import os @@ -46,12 +45,42 @@ def shell(): logging.basicConfig(level=os.environ.get("HGVS_LOGGING_LEVEL", logging.WARNING)) from hgvs.easy import ( # noqa: F401; instances; functionalized methods - __version__, am37, am38, c_to_g, c_to_n, c_to_p, g_to_c, g_to_n, - g_to_t, get_relevant_transcripts, global_config, hdp, - hgvs_assembly_mapper_37, hgvs_assembly_mapper_38, hgvs_data_provider, - hgvs_normalizer, hgvs_parser, hgvs_validator, hgvs_variant_mapper, hn, - hp, hv, n_to_c, n_to_g, normalize, normalizer, parse, parser, - projector, t_to_g, t_to_p, validate, validator, variant_mapper, vm) + __version__, + am37, + am38, + c_to_g, + c_to_n, + c_to_p, + g_to_c, + g_to_n, + g_to_t, + get_relevant_transcripts, + global_config, + hdp, + hgvs_assembly_mapper_37, + hgvs_assembly_mapper_38, + hgvs_data_provider, + hgvs_normalizer, + hgvs_parser, + hgvs_validator, + hgvs_variant_mapper, + hn, + hp, + hv, + n_to_c, + n_to_g, + normalize, + normalizer, + parse, + parser, + projector, + t_to_g, + t_to_p, + validate, + validator, + variant_mapper, + vm, + ) from hgvs.utils.context import variant_context_w_alignment # noqa IPython.embed( diff --git a/src/hgvs/transcriptmapper.py b/src/hgvs/transcriptmapper.py index 1573698e..e865be9e 100644 --- a/src/hgvs/transcriptmapper.py +++ b/src/hgvs/transcriptmapper.py @@ -4,8 +4,7 @@ """ -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals import logging @@ -15,8 +14,7 @@ import hgvs.intervalmapper import hgvs.location from hgvs.enums import Datum -from hgvs.exceptions import (HGVSDataNotAvailableError, HGVSError, - HGVSUsageError) +from hgvs.exceptions import HGVSDataNotAvailableError, HGVSError, HGVSUsageError from hgvs.utils import build_tx_cigar _logger = logging.getLogger(__name__) diff --git a/src/hgvs/utils/__init__.py b/src/hgvs/utils/__init__.py index fbe774cb..b5f833c2 100644 --- a/src/hgvs/utils/__init__.py +++ b/src/hgvs/utils/__init__.py @@ -1,7 +1,6 @@ # -*- coding: utf-8 -*- -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals import itertools import re diff --git a/src/hgvs/utils/altseq_to_hgvsp.py b/src/hgvs/utils/altseq_to_hgvsp.py index 631c6c73..fef48765 100644 --- a/src/hgvs/utils/altseq_to_hgvsp.py +++ b/src/hgvs/utils/altseq_to_hgvsp.py @@ -5,8 +5,7 @@ """ -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals from six.moves import range @@ -59,7 +58,6 @@ def build_hgvsp(self): variants = [] if not self._is_ambiguous and len(self._alt_seq) > 0: - do_delins = True if self._ref_seq == self._alt_seq: # Silent p. variant @@ -248,7 +246,6 @@ def _convert_to_sequence_variants(self, variant, acc): alt = None elif len(deletion) == 0: # insertion OR duplication OR extension - is_dup, dup_start = self._check_if_ins_is_dup(start, insertion) if is_dup: # duplication diff --git a/src/hgvs/utils/altseqbuilder.py b/src/hgvs/utils/altseqbuilder.py index 11a0be4f..13e1dbf9 100644 --- a/src/hgvs/utils/altseqbuilder.py +++ b/src/hgvs/utils/altseqbuilder.py @@ -6,8 +6,7 @@ """ -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals import logging import math @@ -83,7 +82,6 @@ def __init__( class AltSeqBuilder(object): - EXON = "exon" INTRON = "intron" F_UTR = "five utr" diff --git a/src/hgvs/utils/context.py b/src/hgvs/utils/context.py index 3a0ef0ca..af40e724 100644 --- a/src/hgvs/utils/context.py +++ b/src/hgvs/utils/context.py @@ -23,8 +23,7 @@ """ -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals import re diff --git a/src/hgvs/utils/norm.py b/src/hgvs/utils/norm.py index 23ba9039..cc94d9da 100644 --- a/src/hgvs/utils/norm.py +++ b/src/hgvs/utils/norm.py @@ -5,8 +5,7 @@ """ -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals from collections import namedtuple diff --git a/src/hgvs/utils/orderedenum.py b/src/hgvs/utils/orderedenum.py index 09bb9470..e78b14dd 100644 --- a/src/hgvs/utils/orderedenum.py +++ b/src/hgvs/utils/orderedenum.py @@ -1,6 +1,5 @@ # -*- coding: utf-8 -*- -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals from enum import Enum diff --git a/src/hgvs/validator.py b/src/hgvs/validator.py index 442e6809..98054db9 100644 --- a/src/hgvs/validator.py +++ b/src/hgvs/validator.py @@ -3,8 +3,7 @@ """ -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals import logging @@ -13,8 +12,7 @@ import hgvs.parser import hgvs.variantmapper from hgvs.enums import Datum, ValidationLevel -from hgvs.exceptions import (HGVSInvalidVariantError, - HGVSUnsupportedOperationError) +from hgvs.exceptions import HGVSInvalidVariantError, HGVSUnsupportedOperationError SEQ_ERROR_MSG = "Variant reference ({var_ref_seq}) does not agree with reference sequence ({ref_seq})" CDS_BOUND_ERROR_MSG = "Variant is outside CDS bounds (CDS length : {cds_length})" diff --git a/src/hgvs/variantmapper.py b/src/hgvs/variantmapper.py index 42d339d7..b6e5d680 100644 --- a/src/hgvs/variantmapper.py +++ b/src/hgvs/variantmapper.py @@ -3,8 +3,7 @@ """ -from __future__ import (absolute_import, division, print_function, - unicode_literals) +from __future__ import absolute_import, division, print_function, unicode_literals import copy import logging @@ -23,9 +22,7 @@ import hgvs.validator from hgvs.decorators.lru_cache import lru_cache from hgvs.enums import PrevalidationLevel -from hgvs.exceptions import (HGVSDataNotAvailableError, - HGVSInvalidVariantError, - HGVSUnsupportedOperationError) +from hgvs.exceptions import HGVSDataNotAvailableError, HGVSInvalidVariantError, HGVSUnsupportedOperationError from hgvs.utils.reftranscriptdata import RefTranscriptData _logger = logging.getLogger(__name__)