From 4f85bc579975993cc8cebca72ebb18cb105b01a1 Mon Sep 17 00:00:00 2001 From: jdidion Date: Thu, 22 Feb 2024 09:22:35 -0800 Subject: [PATCH] rever reformatting --- fgpyo/fasta/builder.py | 21 +- fgpyo/fasta/tests/test_builder.py | 22 +- fgpyo/io/tests/test_io.py | 27 +-- fgpyo/sam/__init__.py | 12 +- fgpyo/sam/tests/test_sam.py | 4 +- fgpyo/sam/tests/test_template_iterator.py | 4 +- fgpyo/tests/test_read_structure.py | 42 +--- fgpyo/util/inspect.py | 39 +--- fgpyo/util/logging.py | 19 +- fgpyo/util/tests/test_logging.py | 7 +- fgpyo/util/tests/test_metric.py | 17 +- fgpyo/util/types.py | 8 +- fgpyo/vcf/builder.py | 6 +- fgpyo/vcf/tests/test_builder.py | 22 +- poetry.lock | 246 +++++++++++++++++----- pyproject.toml | 3 +- 16 files changed, 238 insertions(+), 261 deletions(-) diff --git a/fgpyo/fasta/builder.py b/fgpyo/fasta/builder.py index ea60b244..5a7a90f6 100755 --- a/fgpyo/fasta/builder.py +++ b/fgpyo/fasta/builder.py @@ -49,6 +49,7 @@ def samtools_dict(*args: Any) -> None: def samtools_faidx(*args: Any) -> None: pass + else: from pysam import dict as samtools_dict from pysam import faidx as samtools_faidx @@ -91,10 +92,7 @@ class ContigBuilder: """ def __init__( - self, - name: str, - assembly: str, - species: str, + self, name: str, assembly: str, species: str, ): self.name = name self.assembly = assembly @@ -146,10 +144,7 @@ class FastaBuilder: """ def __init__( - self, - assembly: str = "testassembly", - species: str = "testspecies", - line_length: int = 80, + self, assembly: str = "testassembly", species: str = "testspecies", line_length: int = 80, ): self.assembly: str = assembly self.species: str = species @@ -161,10 +156,7 @@ def __getitem__(self, key: str) -> ContigBuilder: return self.__contig_builders[key] def add( - self, - name: str, - assembly: Optional[str] = None, - species: Optional[str] = None, + self, name: str, assembly: Optional[str] = None, species: Optional[str] = None, ) -> ContigBuilder: """ Creates and returns a new ContigBuilder for a contig with the provided name. @@ -189,10 +181,7 @@ def add( self.__contig_builders[name] = builder return builder - def to_file( - self, - path: Path, - ) -> None: + def to_file(self, path: Path,) -> None: """ Writes out the set of accumulated contigs to a FASTA file at the `path` given. Also generates the accompanying fasta index file (`.fa.fai`) and sequence diff --git a/fgpyo/fasta/tests/test_builder.py b/fgpyo/fasta/tests/test_builder.py index b3dbb438..a1db172a 100644 --- a/fgpyo/fasta/tests/test_builder.py +++ b/fgpyo/fasta/tests/test_builder.py @@ -25,17 +25,10 @@ def test_bases_length_from_ContigBuilder_add_default() -> None: @pytest.mark.parametrize( - "name, bases, times, length_bases", - [ - ("chr1", "AAA", 3, 9), - ("chr2", "TTT", 10, 30), - ], + "name, bases, times, length_bases", [("chr1", "AAA", 3, 9), ("chr2", "TTT", 10, 30),], ) def test_bases_length_from_ContigBuilder_add( - name: str, - bases: str, - times: int, - length_bases: int, + name: str, bases: str, times: int, length_bases: int, ) -> None: """Checks that the number of bases in each contig is correct""" builder = FastaBuilder() @@ -60,17 +53,10 @@ def test_contig_dict_is_not_accessable() -> None: @pytest.mark.parametrize( "name, bases, times, expected", - [ - ("chr3", "AAA a", 3, ("AAAA" * 3)), - ("chr2", "TT T gT", 10, ("TTTGT" * 10)), - ], + [("chr3", "AAA a", 3, ("AAAA" * 3)), ("chr2", "TT T gT", 10, ("TTTGT" * 10)),], ) def test_bases_string_from_ContigBuilder_add( - name: str, - bases: str, - times: int, - expected: str, - tmp_path: Path, + name: str, bases: str, times: int, expected: str, tmp_path: Path, ) -> None: """ Reads bases back from fasta and checks that extra spaces are removed and bases are uppercase diff --git a/fgpyo/io/tests/test_io.py b/fgpyo/io/tests/test_io.py index d4cf286d..aa785aa1 100644 --- a/fgpyo/io/tests/test_io.py +++ b/fgpyo/io/tests/test_io.py @@ -84,16 +84,9 @@ def test_assert_path_is_writeable_pass() -> None: @pytest.mark.parametrize( - "suffix, expected", - [ - (".gz", io.TextIOWrapper), - (".fa", io.TextIOWrapper), - ], + "suffix, expected", [(".gz", io.TextIOWrapper), (".fa", io.TextIOWrapper),], ) -def test_reader( - suffix: str, - expected: Any, -) -> None: +def test_reader(suffix: str, expected: Any,) -> None: """Tests fgpyo.io.to_reader""" with NamedTemp(suffix=suffix, mode="r", delete=True) as read_file: with fio.to_reader(path=Path(read_file.name)) as reader: @@ -101,16 +94,9 @@ def test_reader( @pytest.mark.parametrize( - "suffix, expected", - [ - (".gz", io.TextIOWrapper), - (".fa", io.TextIOWrapper), - ], + "suffix, expected", [(".gz", io.TextIOWrapper), (".fa", io.TextIOWrapper),], ) -def test_writer( - suffix: str, - expected: Any, -) -> None: +def test_writer(suffix: str, expected: Any,) -> None: """Tests fgpyo.io.to_writer()""" with NamedTemp(suffix=suffix, mode="w", delete=True) as write_file: with fio.to_writer(path=Path(write_file.name)) as writer: @@ -121,10 +107,7 @@ def test_writer( "suffix, list_to_write", [(".txt", ["Test with a flat file", 10]), (".gz", ["Test with a gzip file", 10])], ) -def test_read_and_write_lines( - suffix: str, - list_to_write: List[Any], -) -> None: +def test_read_and_write_lines(suffix: str, list_to_write: List[Any],) -> None: """Test fgpyo.fio.read_lines and write_lines""" with NamedTemp(suffix=suffix, mode="w", delete=True) as read_file: fio.write_lines(path=Path(read_file.name), lines_to_write=list_to_write) diff --git a/fgpyo/sam/__init__.py b/fgpyo/sam/__init__.py index bb9fa6a3..11b61344 100644 --- a/fgpyo/sam/__init__.py +++ b/fgpyo/sam/__init__.py @@ -863,11 +863,7 @@ def all_recs(self) -> Iterator[AlignedSegment]: for rec in recs: yield rec - def write_to( - self, - writer: SamFile, - primary_only: bool = False, - ) -> None: + def write_to(self, writer: SamFile, primary_only: bool = False,) -> None: """Write the records associated with the template to file. Args: @@ -883,11 +879,7 @@ def write_to( for rec in rec_iter: writer.write(rec) - def set_tag( - self, - tag: str, - value: Union[str, int, float, None], - ) -> None: + def set_tag(self, tag: str, value: Union[str, int, float, None],) -> None: """Add a tag to all records associated with the template. Setting a tag to `None` will remove the tag. diff --git a/fgpyo/sam/tests/test_sam.py b/fgpyo/sam/tests/test_sam.py index 29a013f7..94fc944a 100755 --- a/fgpyo/sam/tests/test_sam.py +++ b/fgpyo/sam/tests/test_sam.py @@ -154,9 +154,7 @@ def test_sam_file_open_writing( def test_sam_file_open_writing_header_keyword( - expected_records: List[pysam.AlignedSegment], - header_dict: AlignmentHeader, - tmp_path: Path, + expected_records: List[pysam.AlignedSegment], header_dict: AlignmentHeader, tmp_path: Path, ) -> None: # Use SamWriter # use header as a keyword argument diff --git a/fgpyo/sam/tests/test_template_iterator.py b/fgpyo/sam/tests/test_template_iterator.py index 79ab9283..397603d0 100644 --- a/fgpyo/sam/tests/test_template_iterator.py +++ b/fgpyo/sam/tests/test_template_iterator.py @@ -73,9 +73,7 @@ def test_to_templates() -> None: assert len(list(template2.all_recs())) == 2 -def test_write_template( - tmp_path: Path, -) -> None: +def test_write_template(tmp_path: Path,) -> None: builder = SamBuilder() template = Template.build( [ diff --git a/fgpyo/tests/test_read_structure.py b/fgpyo/tests/test_read_structure.py index f317f60a..64b230f8 100644 --- a/fgpyo/tests/test_read_structure.py +++ b/fgpyo/tests/test_read_structure.py @@ -31,24 +31,9 @@ def _S(off: int, len: int) -> ReadSegment: ("1M", (_M(0, 1),)), ("1S", (_S(0, 1),)), ("101T", (_T(0, 101),)), - ( - "5B101T", - ( - _B(0, 5), - _T(5, 101), - ), - ), + ("5B101T", (_B(0, 5), _T(5, 101),),), ("123456789T", (_T(0, 123456789),)), - ( - "10T10B10B10S10M", - ( - _T(0, 10), - _B(10, 10), - _B(20, 10), - _S(30, 10), - _M(40, 10), - ), - ), + ("10T10B10B10S10M", (_T(0, 10), _B(10, 10), _B(20, 10), _S(30, 10), _M(40, 10),),), ], ) def test_read_structure_from_string(string: str, segments: Tuple[ReadSegment, ...]) -> None: @@ -58,24 +43,8 @@ def test_read_structure_from_string(string: str, segments: Tuple[ReadSegment, .. @pytest.mark.parametrize( "string,segments", [ - ( - "75T 8B 8B 75T", - ( - _T(0, 75), - _B(75, 8), - _B(83, 8), - _T(91, 75), - ), - ), - ( - " 75T 8B 8B 75T ", - ( - _T(0, 75), - _B(75, 8), - _B(83, 8), - _T(91, 75), - ), - ), + ("75T 8B 8B 75T", (_T(0, 75), _B(75, 8), _B(83, 8), _T(91, 75),),), + (" 75T 8B 8B 75T ", (_T(0, 75), _B(75, 8), _B(83, 8), _T(91, 75),),), ], ) def test_read_structure_from_string_with_whitespace( @@ -98,8 +67,7 @@ def test_read_structure_variable_once_and_only_once_last_segment_ok( @pytest.mark.parametrize( - "string", - ["++M", "5M++T", "5M70+T", "+M+T", "+M70T"], + "string", ["++M", "5M++T", "5M70+T", "+M+T", "+M70T"], ) def test_read_structure_variable_once_and_only_once_last_segment_exception(string: str) -> None: with pytest.raises(Exception): diff --git a/fgpyo/util/inspect.py b/fgpyo/util/inspect.py index 6c8fee56..313f10c4 100644 --- a/fgpyo/util/inspect.py +++ b/fgpyo/util/inspect.py @@ -68,9 +68,7 @@ def split_at_given_level( def _get_parser( - cls: Type, - type_: TypeAlias, - parsers: Optional[Dict[type, Callable[[str], Any]]] = None, + cls: Type, type_: TypeAlias, parsers: Optional[Dict[type, Callable[[str], Any]]] = None, ) -> partial: """Attempts to find a parser for a provided type. @@ -114,11 +112,7 @@ def get_parser() -> partial: assert ( len(subtypes) == 1 ), "Lists are allowed only one subtype per PEP specification!" - subtype_parser = _get_parser( - cls, - subtypes[0], - parsers, - ) + subtype_parser = _get_parser(cls, subtypes[0], parsers,) return functools.partial( lambda s: list( [] @@ -134,11 +128,7 @@ def get_parser() -> partial: assert ( len(subtypes) == 1 ), "Sets are allowed only one subtype per PEP specification!" - subtype_parser = _get_parser( - cls, - subtypes[0], - parsers, - ) + subtype_parser = _get_parser(cls, subtypes[0], parsers,) return functools.partial( lambda s: set( set({}) @@ -151,12 +141,7 @@ def get_parser() -> partial: ) elif typing.get_origin(type_) == tuple: subtype_parsers = [ - _get_parser( - cls, - subtype, - parsers, - ) - for subtype in typing.get_args(type_) + _get_parser(cls, subtype, parsers,) for subtype in typing.get_args(type_) ] def tuple_parse(tuple_string: str) -> Tuple[Any, ...]: @@ -185,16 +170,8 @@ def tuple_parse(tuple_string: str) -> Tuple[Any, ...]: len(subtypes) == 2 ), "Dict object must have exactly 2 subtypes per PEP specification!" (key_parser, val_parser) = ( - _get_parser( - cls, - subtypes[0], - parsers, - ), - _get_parser( - cls, - subtypes[1], - parsers, - ), + _get_parser(cls, subtypes[0], parsers,), + _get_parser(cls, subtypes[1], parsers,), ) def dict_parse(dict_string: str) -> Dict[Any, Any]: @@ -254,9 +231,7 @@ def dict_parse(dict_string: str) -> Dict[Any, Any]: def attr_from( - cls: Type, - kwargs: Dict[str, str], - parsers: Optional[Dict[type, Callable[[str], Any]]] = None, + cls: Type, kwargs: Dict[str, str], parsers: Optional[Dict[type, Callable[[str], Any]]] = None, ) -> Any: """Builds an attr class from key-word arguments diff --git a/fgpyo/util/logging.py b/fgpyo/util/logging.py index 5c1210b5..d30c9dab 100644 --- a/fgpyo/util/logging.py +++ b/fgpyo/util/logging.py @@ -125,9 +125,7 @@ def __exit__( return False def record( - self, - reference_name: Optional[str] = None, - position: Optional[int] = None, + self, reference_name: Optional[str] = None, position: Optional[int] = None, ) -> bool: """Record an item at a given genomic coordinate. Args: @@ -147,10 +145,7 @@ def record( else: return False - def record_alignment( - self, - rec: AlignedSegment, - ) -> bool: + def record_alignment(self, rec: AlignedSegment,) -> bool: """Correctly record pysam.AlignedSegments (zero-based coordinates). Args: @@ -164,11 +159,7 @@ def record_alignment( else: return self.record(rec.reference_name, rec.reference_start + 1) - def _log( - self, - refname: Optional[str] = None, - position: Optional[int] = None, - ) -> None: + def _log(self, refname: Optional[str] = None, position: Optional[int] = None,) -> None: """Helper method to print the log message. Args: @@ -187,9 +178,7 @@ def _log( self.printer(f"{self.verb} {self.count:,d} {self.noun}: {coordinate}") - def log_last( - self, - ) -> bool: + def log_last(self,) -> bool: """Force logging the last record, for example when progress has completed.""" if self._count_mod_unit != 0: self._log(refname=self._last_reference_name, position=self._last_position) diff --git a/fgpyo/util/tests/test_logging.py b/fgpyo/util/tests/test_logging.py index 09f21235..358baa04 100644 --- a/fgpyo/util/tests/test_logging.py +++ b/fgpyo/util/tests/test_logging.py @@ -43,12 +43,7 @@ def test_progress_logger_as_context_manager() -> None: @pytest.mark.parametrize( - "record", - [ - (r1_mapped_named), - (r2_unmapped_named), - (r2_unmapped_un_named), - ], + "record", [(r1_mapped_named), (r2_unmapped_named), (r2_unmapped_un_named),], ) def test_record_alignment_mapped_record(record: pysam.AlignedSegment) -> None: # Define instance of ProgressLogger diff --git a/fgpyo/util/tests/test_metric.py b/fgpyo/util/tests/test_metric.py index d84ed4b1..8da5cc49 100644 --- a/fgpyo/util/tests/test_metric.py +++ b/fgpyo/util/tests/test_metric.py @@ -34,13 +34,7 @@ class DummyMetric(Metric["DummyMetric"]): dict_value: Dict[int, str] = attr.ib() tuple_value: Tuple[int, str] = attr.ib() list_value: List[str] = attr.ib() - complex_value: Dict[ - int, - Dict[ - Tuple[int, int], - Set[str], - ], - ] = attr.ib() + complex_value: Dict[int, Dict[Tuple[int, int], Set[str],],] = attr.ib() DUMMY_METRICS: List[DummyMetric] = [ @@ -53,9 +47,7 @@ class DummyMetric(Metric["DummyMetric"]): optional_int_value=-5, optional_bool_value=True, optional_enum_value=EnumTest.EnumVal3, - dict_value={ - 1: "test1", - }, + dict_value={1: "test1",}, tuple_value=(0, "test1"), list_value=[], complex_value={1: {(5, 1): set({"mapped_test_val1", "setval2"})}}, @@ -138,10 +130,7 @@ class PersonDefault(Metric["PersonDefault"]): @pytest.mark.parametrize("metric", DUMMY_METRICS) -def test_metric_roundtrip( - tmp_path: Path, - metric: DummyMetric, -) -> None: +def test_metric_roundtrip(tmp_path: Path, metric: DummyMetric,) -> None: path: Path = tmp_path / "metrics.txt" DummyMetric.write(path, metric) diff --git a/fgpyo/util/types.py b/fgpyo/util/types.py index 9bcee785..fa630495 100644 --- a/fgpyo/util/types.py +++ b/fgpyo/util/types.py @@ -78,9 +78,7 @@ def _is_optional(type_: type) -> bool: def _make_union_parser_worker( - union: Type[UnionType], - parsers: Iterable[Callable[[str], UnionType]], - value: str, + union: Type[UnionType], parsers: Iterable[Callable[[str], UnionType]], value: str, ) -> UnionType: """Worker function behind union parsing. Iterates through possible parsers for the union and returns the value produced by the first parser that works. Otherwise raises an error if none @@ -110,9 +108,7 @@ def make_union_parser(union: Type[UnionType], parsers: Iterable[Callable[[str], def _make_literal_parser_worker( - literal: Type[LiteralType], - parsers: Iterable[Callable[[str], LiteralType]], - value: str, + literal: Type[LiteralType], parsers: Iterable[Callable[[str], LiteralType]], value: str, ) -> LiteralType: """Worker function behind literal parsing. Iterates through possible literals and returns the value produced by the first literal that matches expectation. diff --git a/fgpyo/vcf/builder.py b/fgpyo/vcf/builder.py index a1307096..c2018838 100644 --- a/fgpyo/vcf/builder.py +++ b/fgpyo/vcf/builder.py @@ -363,11 +363,7 @@ def add_format_header( header_line += ">" self.add_header_line(header_line) - def add_filter_header( - self, - name: str, - description: Optional[str] = None, - ) -> None: + def add_filter_header(self, name: str, description: Optional[str] = None,) -> None: """ Add a FILTER header field to the VCF header. diff --git a/fgpyo/vcf/tests/test_builder.py b/fgpyo/vcf/tests/test_builder.py index 2a16d797..7697e564 100644 --- a/fgpyo/vcf/tests/test_builder.py +++ b/fgpyo/vcf/tests/test_builder.py @@ -51,8 +51,7 @@ def _get_random_contig( def _get_random_variant_inputs( - random_generator: random.Random, - sequence_dict: Dict[str, Dict[str, Any]], + random_generator: random.Random, sequence_dict: Dict[str, Dict[str, Any]], ) -> Mapping[str, Any]: """ Randomly generate inputs that should produce a valid Variant. Don't include format fields. @@ -227,9 +226,7 @@ def _get_is_compressed(input_file: Path) -> bool: @pytest.mark.parametrize("compress", (True, False)) def test_zero_sample_vcf_round_trip( - temp_path: Path, - zero_sample_record_inputs: Tuple[Mapping[str, Any], ...], - compress: bool, + temp_path: Path, zero_sample_record_inputs: Tuple[Mapping[str, Any], ...], compress: bool, ) -> None: """ Test if zero-sample VCF (no genotypes) output records match the records read in from the @@ -252,24 +249,13 @@ def test_zero_sample_vcf_round_trip( def _add_random_genotypes( - random_generator: random.Random, - record_input: Mapping[str, Any], - sample_ids: Iterable[str], + random_generator: random.Random, record_input: Mapping[str, Any], sample_ids: Iterable[str], ) -> Mapping[str, Any]: """Add random genotypes to the record input.""" genotypes = { sample_id: { "GT": random_generator.choice( - [ - (None,), - (0, 0), - (0, 1), - (1, 0), - (1, 1), - (None, 0), - (0, None), - (1, None), - ] + [(None,), (0, 0), (0, 1), (1, 0), (1, 1), (None, 0), (0, None), (1, None),] ) } for sample_id in sample_ids diff --git a/poetry.lock b/poetry.lock index 720e205d..5b3a6853 100644 --- a/poetry.lock +++ b/poetry.lock @@ -11,6 +11,17 @@ files = [ {file = "alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"}, ] +[[package]] +name = "appdirs" +version = "1.4.4" +description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +optional = false +python-versions = "*" +files = [ + {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, + {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, +] + [[package]] name = "attrs" version = "23.2.0" @@ -49,49 +60,26 @@ dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] [[package]] name = "black" -version = "24.2.0" +version = "19.10b0" description = "The uncompromising code formatter." optional = false -python-versions = ">=3.8" +python-versions = ">=3.6" files = [ - {file = "black-24.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6981eae48b3b33399c8757036c7f5d48a535b962a7c2310d19361edeef64ce29"}, - {file = "black-24.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d533d5e3259720fdbc1b37444491b024003e012c5173f7d06825a77508085430"}, - {file = "black-24.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61a0391772490ddfb8a693c067df1ef5227257e72b0e4108482b8d41b5aee13f"}, - {file = "black-24.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:992e451b04667116680cb88f63449267c13e1ad134f30087dec8527242e9862a"}, - {file = "black-24.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:163baf4ef40e6897a2a9b83890e59141cc8c2a98f2dda5080dc15c00ee1e62cd"}, - {file = "black-24.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e37c99f89929af50ffaf912454b3e3b47fd64109659026b678c091a4cd450fb2"}, - {file = "black-24.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f9de21bafcba9683853f6c96c2d515e364aee631b178eaa5145fc1c61a3cc92"}, - {file = "black-24.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:9db528bccb9e8e20c08e716b3b09c6bdd64da0dd129b11e160bf082d4642ac23"}, - {file = "black-24.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d84f29eb3ee44859052073b7636533ec995bd0f64e2fb43aeceefc70090e752b"}, - {file = "black-24.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e08fb9a15c914b81dd734ddd7fb10513016e5ce7e6704bdd5e1251ceee51ac9"}, - {file = "black-24.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:810d445ae6069ce64030c78ff6127cd9cd178a9ac3361435708b907d8a04c693"}, - {file = "black-24.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:ba15742a13de85e9b8f3239c8f807723991fbfae24bad92d34a2b12e81904982"}, - {file = "black-24.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7e53a8c630f71db01b28cd9602a1ada68c937cbf2c333e6ed041390d6968faf4"}, - {file = "black-24.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:93601c2deb321b4bad8f95df408e3fb3943d85012dddb6121336b8e24a0d1218"}, - {file = "black-24.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0057f800de6acc4407fe75bb147b0c2b5cbb7c3ed110d3e5999cd01184d53b0"}, - {file = "black-24.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:faf2ee02e6612577ba0181f4347bcbcf591eb122f7841ae5ba233d12c39dcb4d"}, - {file = "black-24.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:057c3dc602eaa6fdc451069bd027a1b2635028b575a6c3acfd63193ced20d9c8"}, - {file = "black-24.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:08654d0797e65f2423f850fc8e16a0ce50925f9337fb4a4a176a7aa4026e63f8"}, - {file = "black-24.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca610d29415ee1a30a3f30fab7a8f4144e9d34c89a235d81292a1edb2b55f540"}, - {file = "black-24.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:4dd76e9468d5536abd40ffbc7a247f83b2324f0c050556d9c371c2b9a9a95e31"}, - {file = "black-24.2.0-py3-none-any.whl", hash = "sha256:e8a6ae970537e67830776488bca52000eaa37fa63b9988e8c487458d9cd5ace6"}, - {file = "black-24.2.0.tar.gz", hash = "sha256:bce4f25c27c3435e4dace4815bcb2008b87e167e3bf4ee47ccdc5ce906eb4894"}, + {file = "black-19.10b0-py36-none-any.whl", hash = "sha256:1b30e59be925fafc1ee4565e5e08abef6b03fe455102883820fe5ee2e4734e0b"}, + {file = "black-19.10b0.tar.gz", hash = "sha256:c2edb73a08e9e0e6f65a0e6af18b059b8b1cdd5bef997d7a0b181df93dc81539"}, ] [package.dependencies] -click = ">=8.0.0" -mypy-extensions = ">=0.4.3" -packaging = ">=22.0" -pathspec = ">=0.9.0" -platformdirs = ">=2" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} +appdirs = "*" +attrs = ">=18.1.0" +click = ">=6.5" +pathspec = ">=0.6,<1" +regex = "*" +toml = ">=0.9.4" +typed-ast = ">=1.4.0" [package.extras] -colorama = ["colorama (>=0.4.3)"] -d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"] -jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] -uvloop = ["uvloop (>=0.15.2)"] +d = ["aiohttp (>=3.3.2)", "aiohttp-cors"] [[package]] name = "certifi" @@ -205,13 +193,13 @@ files = [ [[package]] name = "click" -version = "8.1.7" +version = "8.0.4" description = "Composable command line interface toolkit" optional = false -python-versions = ">=3.7" +python-versions = ">=3.6" files = [ - {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, - {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, + {file = "click-8.0.4-py3-none-any.whl", hash = "sha256:6a7a62563bbfabfda3a38f3023a1db4a35978c0abd76f6c9605ecd6554d6d9b1"}, + {file = "click-8.0.4.tar.gz", hash = "sha256:8458d7b1287c5fb128c90e23381cf99dcde74beaf6c7ff6384ce84d6fe090adb"}, ] [package.dependencies] @@ -576,21 +564,6 @@ files = [ {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, ] -[[package]] -name = "platformdirs" -version = "4.2.0" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -optional = false -python-versions = ">=3.8" -files = [ - {file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"}, - {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"}, -] - -[package.extras] -docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] - [[package]] name = "pluggy" version = "1.4.0" @@ -752,6 +725,108 @@ files = [ {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, ] +[[package]] +name = "regex" +version = "2023.12.25" +description = "Alternative regular expression module, to replace re." +optional = false +python-versions = ">=3.7" +files = [ + {file = "regex-2023.12.25-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0694219a1d54336fd0445ea382d49d36882415c0134ee1e8332afd1529f0baa5"}, + {file = "regex-2023.12.25-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b014333bd0217ad3d54c143de9d4b9a3ca1c5a29a6d0d554952ea071cff0f1f8"}, + {file = "regex-2023.12.25-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d865984b3f71f6d0af64d0d88f5733521698f6c16f445bb09ce746c92c97c586"}, + {file = "regex-2023.12.25-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e0eabac536b4cc7f57a5f3d095bfa557860ab912f25965e08fe1545e2ed8b4c"}, + {file = "regex-2023.12.25-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c25a8ad70e716f96e13a637802813f65d8a6760ef48672aa3502f4c24ea8b400"}, + {file = "regex-2023.12.25-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9b6d73353f777630626f403b0652055ebfe8ff142a44ec2cf18ae470395766e"}, + {file = "regex-2023.12.25-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9cc99d6946d750eb75827cb53c4371b8b0fe89c733a94b1573c9dd16ea6c9e4"}, + {file = "regex-2023.12.25-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88d1f7bef20c721359d8675f7d9f8e414ec5003d8f642fdfd8087777ff7f94b5"}, + {file = "regex-2023.12.25-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cb3fe77aec8f1995611f966d0c656fdce398317f850d0e6e7aebdfe61f40e1cd"}, + {file = "regex-2023.12.25-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:7aa47c2e9ea33a4a2a05f40fcd3ea36d73853a2aae7b4feab6fc85f8bf2c9704"}, + {file = "regex-2023.12.25-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:df26481f0c7a3f8739fecb3e81bc9da3fcfae34d6c094563b9d4670b047312e1"}, + {file = "regex-2023.12.25-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c40281f7d70baf6e0db0c2f7472b31609f5bc2748fe7275ea65a0b4601d9b392"}, + {file = "regex-2023.12.25-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:d94a1db462d5690ebf6ae86d11c5e420042b9898af5dcf278bd97d6bda065423"}, + {file = "regex-2023.12.25-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ba1b30765a55acf15dce3f364e4928b80858fa8f979ad41f862358939bdd1f2f"}, + {file = "regex-2023.12.25-cp310-cp310-win32.whl", hash = "sha256:150c39f5b964e4d7dba46a7962a088fbc91f06e606f023ce57bb347a3b2d4630"}, + {file = "regex-2023.12.25-cp310-cp310-win_amd64.whl", hash = "sha256:09da66917262d9481c719599116c7dc0c321ffcec4b1f510c4f8a066f8768105"}, + {file = "regex-2023.12.25-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1b9d811f72210fa9306aeb88385b8f8bcef0dfbf3873410413c00aa94c56c2b6"}, + {file = "regex-2023.12.25-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d902a43085a308cef32c0d3aea962524b725403fd9373dea18110904003bac97"}, + {file = "regex-2023.12.25-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d166eafc19f4718df38887b2bbe1467a4f74a9830e8605089ea7a30dd4da8887"}, + {file = "regex-2023.12.25-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7ad32824b7f02bb3c9f80306d405a1d9b7bb89362d68b3c5a9be53836caebdb"}, + {file = "regex-2023.12.25-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:636ba0a77de609d6510235b7f0e77ec494d2657108f777e8765efc060094c98c"}, + {file = "regex-2023.12.25-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fda75704357805eb953a3ee15a2b240694a9a514548cd49b3c5124b4e2ad01b"}, + {file = "regex-2023.12.25-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f72cbae7f6b01591f90814250e636065850c5926751af02bb48da94dfced7baa"}, + {file = "regex-2023.12.25-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:db2a0b1857f18b11e3b0e54ddfefc96af46b0896fb678c85f63fb8c37518b3e7"}, + {file = "regex-2023.12.25-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7502534e55c7c36c0978c91ba6f61703faf7ce733715ca48f499d3dbbd7657e0"}, + {file = "regex-2023.12.25-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:e8c7e08bb566de4faaf11984af13f6bcf6a08f327b13631d41d62592681d24fe"}, + {file = "regex-2023.12.25-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:283fc8eed679758de38fe493b7d7d84a198b558942b03f017b1f94dda8efae80"}, + {file = "regex-2023.12.25-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:f44dd4d68697559d007462b0a3a1d9acd61d97072b71f6d1968daef26bc744bd"}, + {file = "regex-2023.12.25-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:67d3ccfc590e5e7197750fcb3a2915b416a53e2de847a728cfa60141054123d4"}, + {file = "regex-2023.12.25-cp311-cp311-win32.whl", hash = "sha256:68191f80a9bad283432385961d9efe09d783bcd36ed35a60fb1ff3f1ec2efe87"}, + {file = "regex-2023.12.25-cp311-cp311-win_amd64.whl", hash = "sha256:7d2af3f6b8419661a0c421584cfe8aaec1c0e435ce7e47ee2a97e344b98f794f"}, + {file = "regex-2023.12.25-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8a0ccf52bb37d1a700375a6b395bff5dd15c50acb745f7db30415bae3c2b0715"}, + {file = "regex-2023.12.25-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c3c4a78615b7762740531c27cf46e2f388d8d727d0c0c739e72048beb26c8a9d"}, + {file = "regex-2023.12.25-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ad83e7545b4ab69216cef4cc47e344d19622e28aabec61574b20257c65466d6a"}, + {file = "regex-2023.12.25-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7a635871143661feccce3979e1727c4e094f2bdfd3ec4b90dfd4f16f571a87a"}, + {file = "regex-2023.12.25-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d498eea3f581fbe1b34b59c697512a8baef88212f92e4c7830fcc1499f5b45a5"}, + {file = "regex-2023.12.25-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:43f7cd5754d02a56ae4ebb91b33461dc67be8e3e0153f593c509e21d219c5060"}, + {file = "regex-2023.12.25-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51f4b32f793812714fd5307222a7f77e739b9bc566dc94a18126aba3b92b98a3"}, + {file = "regex-2023.12.25-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba99d8077424501b9616b43a2d208095746fb1284fc5ba490139651f971d39d9"}, + {file = "regex-2023.12.25-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4bfc2b16e3ba8850e0e262467275dd4d62f0d045e0e9eda2bc65078c0110a11f"}, + {file = "regex-2023.12.25-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8c2c19dae8a3eb0ea45a8448356ed561be843b13cbc34b840922ddf565498c1c"}, + {file = "regex-2023.12.25-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:60080bb3d8617d96f0fb7e19796384cc2467447ef1c491694850ebd3670bc457"}, + {file = "regex-2023.12.25-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b77e27b79448e34c2c51c09836033056a0547aa360c45eeeb67803da7b0eedaf"}, + {file = "regex-2023.12.25-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:518440c991f514331f4850a63560321f833979d145d7d81186dbe2f19e27ae3d"}, + {file = "regex-2023.12.25-cp312-cp312-win32.whl", hash = "sha256:e2610e9406d3b0073636a3a2e80db05a02f0c3169b5632022b4e81c0364bcda5"}, + {file = "regex-2023.12.25-cp312-cp312-win_amd64.whl", hash = "sha256:cc37b9aeebab425f11f27e5e9e6cf580be7206c6582a64467a14dda211abc232"}, + {file = "regex-2023.12.25-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:da695d75ac97cb1cd725adac136d25ca687da4536154cdc2815f576e4da11c69"}, + {file = "regex-2023.12.25-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d126361607b33c4eb7b36debc173bf25d7805847346dd4d99b5499e1fef52bc7"}, + {file = "regex-2023.12.25-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4719bb05094d7d8563a450cf8738d2e1061420f79cfcc1fa7f0a44744c4d8f73"}, + {file = "regex-2023.12.25-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5dd58946bce44b53b06d94aa95560d0b243eb2fe64227cba50017a8d8b3cd3e2"}, + {file = "regex-2023.12.25-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22a86d9fff2009302c440b9d799ef2fe322416d2d58fc124b926aa89365ec482"}, + {file = "regex-2023.12.25-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2aae8101919e8aa05ecfe6322b278f41ce2994c4a430303c4cd163fef746e04f"}, + {file = "regex-2023.12.25-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e692296c4cc2873967771345a876bcfc1c547e8dd695c6b89342488b0ea55cd8"}, + {file = "regex-2023.12.25-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:263ef5cc10979837f243950637fffb06e8daed7f1ac1e39d5910fd29929e489a"}, + {file = "regex-2023.12.25-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:d6f7e255e5fa94642a0724e35406e6cb7001c09d476ab5fce002f652b36d0c39"}, + {file = "regex-2023.12.25-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:88ad44e220e22b63b0f8f81f007e8abbb92874d8ced66f32571ef8beb0643b2b"}, + {file = "regex-2023.12.25-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:3a17d3ede18f9cedcbe23d2daa8a2cd6f59fe2bf082c567e43083bba3fb00347"}, + {file = "regex-2023.12.25-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d15b274f9e15b1a0b7a45d2ac86d1f634d983ca40d6b886721626c47a400bf39"}, + {file = "regex-2023.12.25-cp37-cp37m-win32.whl", hash = "sha256:ed19b3a05ae0c97dd8f75a5d8f21f7723a8c33bbc555da6bbe1f96c470139d3c"}, + {file = "regex-2023.12.25-cp37-cp37m-win_amd64.whl", hash = "sha256:a6d1047952c0b8104a1d371f88f4ab62e6275567d4458c1e26e9627ad489b445"}, + {file = "regex-2023.12.25-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:b43523d7bc2abd757119dbfb38af91b5735eea45537ec6ec3a5ec3f9562a1c53"}, + {file = "regex-2023.12.25-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:efb2d82f33b2212898f1659fb1c2e9ac30493ac41e4d53123da374c3b5541e64"}, + {file = "regex-2023.12.25-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b7fca9205b59c1a3d5031f7e64ed627a1074730a51c2a80e97653e3e9fa0d415"}, + {file = "regex-2023.12.25-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:086dd15e9435b393ae06f96ab69ab2d333f5d65cbe65ca5a3ef0ec9564dfe770"}, + {file = "regex-2023.12.25-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e81469f7d01efed9b53740aedd26085f20d49da65f9c1f41e822a33992cb1590"}, + {file = "regex-2023.12.25-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:34e4af5b27232f68042aa40a91c3b9bb4da0eeb31b7632e0091afc4310afe6cb"}, + {file = "regex-2023.12.25-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9852b76ab558e45b20bf1893b59af64a28bd3820b0c2efc80e0a70a4a3ea51c1"}, + {file = "regex-2023.12.25-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff100b203092af77d1a5a7abe085b3506b7eaaf9abf65b73b7d6905b6cb76988"}, + {file = "regex-2023.12.25-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cc038b2d8b1470364b1888a98fd22d616fba2b6309c5b5f181ad4483e0017861"}, + {file = "regex-2023.12.25-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:094ba386bb5c01e54e14434d4caabf6583334090865b23ef58e0424a6286d3dc"}, + {file = "regex-2023.12.25-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5cd05d0f57846d8ba4b71d9c00f6f37d6b97d5e5ef8b3c3840426a475c8f70f4"}, + {file = "regex-2023.12.25-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:9aa1a67bbf0f957bbe096375887b2505f5d8ae16bf04488e8b0f334c36e31360"}, + {file = "regex-2023.12.25-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:98a2636994f943b871786c9e82bfe7883ecdaba2ef5df54e1450fa9869d1f756"}, + {file = "regex-2023.12.25-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:37f8e93a81fc5e5bd8db7e10e62dc64261bcd88f8d7e6640aaebe9bc180d9ce2"}, + {file = "regex-2023.12.25-cp38-cp38-win32.whl", hash = "sha256:d78bd484930c1da2b9679290a41cdb25cc127d783768a0369d6b449e72f88beb"}, + {file = "regex-2023.12.25-cp38-cp38-win_amd64.whl", hash = "sha256:b521dcecebc5b978b447f0f69b5b7f3840eac454862270406a39837ffae4e697"}, + {file = "regex-2023.12.25-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f7bc09bc9c29ebead055bcba136a67378f03d66bf359e87d0f7c759d6d4ffa31"}, + {file = "regex-2023.12.25-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e14b73607d6231f3cc4622809c196b540a6a44e903bcfad940779c80dffa7be7"}, + {file = "regex-2023.12.25-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9eda5f7a50141291beda3edd00abc2d4a5b16c29c92daf8d5bd76934150f3edc"}, + {file = "regex-2023.12.25-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc6bb9aa69aacf0f6032c307da718f61a40cf970849e471254e0e91c56ffca95"}, + {file = "regex-2023.12.25-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:298dc6354d414bc921581be85695d18912bea163a8b23cac9a2562bbcd5088b1"}, + {file = "regex-2023.12.25-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2f4e475a80ecbd15896a976aa0b386c5525d0ed34d5c600b6d3ebac0a67c7ddf"}, + {file = "regex-2023.12.25-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:531ac6cf22b53e0696f8e1d56ce2396311254eb806111ddd3922c9d937151dae"}, + {file = "regex-2023.12.25-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:22f3470f7524b6da61e2020672df2f3063676aff444db1daa283c2ea4ed259d6"}, + {file = "regex-2023.12.25-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:89723d2112697feaa320c9d351e5f5e7b841e83f8b143dba8e2d2b5f04e10923"}, + {file = "regex-2023.12.25-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0ecf44ddf9171cd7566ef1768047f6e66975788258b1c6c6ca78098b95cf9a3d"}, + {file = "regex-2023.12.25-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:905466ad1702ed4acfd67a902af50b8db1feeb9781436372261808df7a2a7bca"}, + {file = "regex-2023.12.25-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:4558410b7a5607a645e9804a3e9dd509af12fb72b9825b13791a37cd417d73a5"}, + {file = "regex-2023.12.25-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:7e316026cc1095f2a3e8cc012822c99f413b702eaa2ca5408a513609488cb62f"}, + {file = "regex-2023.12.25-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3b1de218d5375cd6ac4b5493e0b9f3df2be331e86520f23382f216c137913d20"}, + {file = "regex-2023.12.25-cp39-cp39-win32.whl", hash = "sha256:11a963f8e25ab5c61348d090bf1b07f1953929c13bd2309a0662e9ff680763c9"}, + {file = "regex-2023.12.25-cp39-cp39-win_amd64.whl", hash = "sha256:e693e233ac92ba83a87024e1d32b5f9ab15ca55ddd916d878146f4e3406b5c91"}, + {file = "regex-2023.12.25.tar.gz", hash = "sha256:29171aa128da69afdf4bde412d5bedc335f2ca8fcfe4489038577d05f16181e5"}, +] + [[package]] name = "requests" version = "2.31.0" @@ -957,6 +1032,17 @@ files = [ lint = ["docutils-stubs", "flake8", "mypy"] test = ["pytest"] +[[package]] +name = "toml" +version = "0.10.2" +description = "Python Library for Tom's Obvious, Minimal Language" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, + {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, +] + [[package]] name = "tomli" version = "2.0.1" @@ -968,6 +1054,56 @@ files = [ {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, ] +[[package]] +name = "typed-ast" +version = "1.5.5" +description = "a fork of Python 2 and 3 ast modules with type comment support" +optional = false +python-versions = ">=3.6" +files = [ + {file = "typed_ast-1.5.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4bc1efe0ce3ffb74784e06460f01a223ac1f6ab31c6bc0376a21184bf5aabe3b"}, + {file = "typed_ast-1.5.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5f7a8c46a8b333f71abd61d7ab9255440d4a588f34a21f126bbfc95f6049e686"}, + {file = "typed_ast-1.5.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:597fc66b4162f959ee6a96b978c0435bd63791e31e4f410622d19f1686d5e769"}, + {file = "typed_ast-1.5.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d41b7a686ce653e06c2609075d397ebd5b969d821b9797d029fccd71fdec8e04"}, + {file = "typed_ast-1.5.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:5fe83a9a44c4ce67c796a1b466c270c1272e176603d5e06f6afbc101a572859d"}, + {file = "typed_ast-1.5.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d5c0c112a74c0e5db2c75882a0adf3133adedcdbfd8cf7c9d6ed77365ab90a1d"}, + {file = "typed_ast-1.5.5-cp310-cp310-win_amd64.whl", hash = "sha256:e1a976ed4cc2d71bb073e1b2a250892a6e968ff02aa14c1f40eba4f365ffec02"}, + {file = "typed_ast-1.5.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c631da9710271cb67b08bd3f3813b7af7f4c69c319b75475436fcab8c3d21bee"}, + {file = "typed_ast-1.5.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b445c2abfecab89a932b20bd8261488d574591173d07827c1eda32c457358b18"}, + {file = "typed_ast-1.5.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc95ffaaab2be3b25eb938779e43f513e0e538a84dd14a5d844b8f2932593d88"}, + {file = "typed_ast-1.5.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61443214d9b4c660dcf4b5307f15c12cb30bdfe9588ce6158f4a005baeb167b2"}, + {file = "typed_ast-1.5.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6eb936d107e4d474940469e8ec5b380c9b329b5f08b78282d46baeebd3692dc9"}, + {file = "typed_ast-1.5.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e48bf27022897577d8479eaed64701ecaf0467182448bd95759883300ca818c8"}, + {file = "typed_ast-1.5.5-cp311-cp311-win_amd64.whl", hash = "sha256:83509f9324011c9a39faaef0922c6f720f9623afe3fe220b6d0b15638247206b"}, + {file = "typed_ast-1.5.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:44f214394fc1af23ca6d4e9e744804d890045d1643dd7e8229951e0ef39429b5"}, + {file = "typed_ast-1.5.5-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:118c1ce46ce58fda78503eae14b7664163aa735b620b64b5b725453696f2a35c"}, + {file = "typed_ast-1.5.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be4919b808efa61101456e87f2d4c75b228f4e52618621c77f1ddcaae15904fa"}, + {file = "typed_ast-1.5.5-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:fc2b8c4e1bc5cd96c1a823a885e6b158f8451cf6f5530e1829390b4d27d0807f"}, + {file = "typed_ast-1.5.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:16f7313e0a08c7de57f2998c85e2a69a642e97cb32f87eb65fbfe88381a5e44d"}, + {file = "typed_ast-1.5.5-cp36-cp36m-win_amd64.whl", hash = "sha256:2b946ef8c04f77230489f75b4b5a4a6f24c078be4aed241cfabe9cbf4156e7e5"}, + {file = "typed_ast-1.5.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2188bc33d85951ea4ddad55d2b35598b2709d122c11c75cffd529fbc9965508e"}, + {file = "typed_ast-1.5.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0635900d16ae133cab3b26c607586131269f88266954eb04ec31535c9a12ef1e"}, + {file = "typed_ast-1.5.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:57bfc3cf35a0f2fdf0a88a3044aafaec1d2f24d8ae8cd87c4f58d615fb5b6311"}, + {file = "typed_ast-1.5.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:fe58ef6a764de7b4b36edfc8592641f56e69b7163bba9f9c8089838ee596bfb2"}, + {file = "typed_ast-1.5.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d09d930c2d1d621f717bb217bf1fe2584616febb5138d9b3e8cdd26506c3f6d4"}, + {file = "typed_ast-1.5.5-cp37-cp37m-win_amd64.whl", hash = "sha256:d40c10326893ecab8a80a53039164a224984339b2c32a6baf55ecbd5b1df6431"}, + {file = "typed_ast-1.5.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:fd946abf3c31fb50eee07451a6aedbfff912fcd13cf357363f5b4e834cc5e71a"}, + {file = "typed_ast-1.5.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ed4a1a42df8a3dfb6b40c3d2de109e935949f2f66b19703eafade03173f8f437"}, + {file = "typed_ast-1.5.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:045f9930a1550d9352464e5149710d56a2aed23a2ffe78946478f7b5416f1ede"}, + {file = "typed_ast-1.5.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:381eed9c95484ceef5ced626355fdc0765ab51d8553fec08661dce654a935db4"}, + {file = "typed_ast-1.5.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:bfd39a41c0ef6f31684daff53befddae608f9daf6957140228a08e51f312d7e6"}, + {file = "typed_ast-1.5.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8c524eb3024edcc04e288db9541fe1f438f82d281e591c548903d5b77ad1ddd4"}, + {file = "typed_ast-1.5.5-cp38-cp38-win_amd64.whl", hash = "sha256:7f58fabdde8dcbe764cef5e1a7fcb440f2463c1bbbec1cf2a86ca7bc1f95184b"}, + {file = "typed_ast-1.5.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:042eb665ff6bf020dd2243307d11ed626306b82812aba21836096d229fdc6a10"}, + {file = "typed_ast-1.5.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:622e4a006472b05cf6ef7f9f2636edc51bda670b7bbffa18d26b255269d3d814"}, + {file = "typed_ast-1.5.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1efebbbf4604ad1283e963e8915daa240cb4bf5067053cf2f0baadc4d4fb51b8"}, + {file = "typed_ast-1.5.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0aefdd66f1784c58f65b502b6cf8b121544680456d1cebbd300c2c813899274"}, + {file = "typed_ast-1.5.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:48074261a842acf825af1968cd912f6f21357316080ebaca5f19abbb11690c8a"}, + {file = "typed_ast-1.5.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:429ae404f69dc94b9361bb62291885894b7c6fb4640d561179548c849f8492ba"}, + {file = "typed_ast-1.5.5-cp39-cp39-win_amd64.whl", hash = "sha256:335f22ccb244da2b5c296e6f96b06ee9bed46526db0de38d2f0e5a6597b81155"}, + {file = "typed_ast-1.5.5.tar.gz", hash = "sha256:94282f7a354f36ef5dbce0ef3467ebf6a258e370ab33d5b40c249fa996e590dd"}, +] + [[package]] name = "typing-extensions" version = "4.9.0" @@ -1002,4 +1138,4 @@ docs = ["sphinx", "sphinx_rtd_theme"] [metadata] lock-version = "2.0" python-versions = ">=3.8.0,<4.0" -content-hash = "975e6749bc8842594f0af28cc1bd1067c42d3e7f49c18d3f29a03cc438dbdcea" +content-hash = "943145eda74584c2dc95239fc3cf4d6985d44faf7d726cd910736946e90a0edc" diff --git a/pyproject.toml b/pyproject.toml index 1b2a4bc8..dc305d24 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,7 +35,8 @@ typing_extensions = { version = ">=3.7.4", python = "<3.12" } docs = ["sphinx", "sphinx_rtd_theme"] [tool.poetry.dev-dependencies] -black = ">=23.3.0" +black = "19.10b0" +click = "<8.1.0" flake8 = [ { version = ">=5.0.0", python = "<3.12.0" }, { version = ">=6.1.0", python = ">=3.12.0" },