diff --git a/fiscaliza/__init__.py b/fiscaliza/__init__.py deleted file mode 100644 index 493f741..0000000 --- a/fiscaliza/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__version__ = "0.3.0" diff --git a/fiscaliza/_modidx.py b/fiscaliza/_modidx.py deleted file mode 100644 index 3c41674..0000000 --- a/fiscaliza/_modidx.py +++ /dev/null @@ -1,117 +0,0 @@ -# Autogenerated by nbdev - -d = { 'settings': { 'branch': 'main', - 'doc_baseurl': '/fiscaliza', - 'doc_host': 'https://InovaFiscaliza.github.io', - 'git_url': 'https://github.com/InovaFiscaliza/fiscaliza', - 'lib_path': 'fiscaliza'}, - 'syms': { 'fiscaliza.attrs': {}, - 'fiscaliza.constants': {}, - 'fiscaliza.datatypes': { 'fiscaliza.datatypes.AtomicField': ('datatypes.html#atomicfield', 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.AtomicField.__call__': ( 'datatypes.html#atomicfield.__call__', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.AtomicField.__repr__': ( 'datatypes.html#atomicfield.__repr__', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.AtomicField.dtype': ( 'datatypes.html#atomicfield.dtype', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.AtomicField.reset': ( 'datatypes.html#atomicfield.reset', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.AtomicField.value': ( 'datatypes.html#atomicfield.value', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.Coordenadas': ('datatypes.html#coordenadas', 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.Coordenadas.__call__': ( 'datatypes.html#coordenadas.__call__', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.Coordenadas.__repr__': ( 'datatypes.html#coordenadas.__repr__', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.Coordenadas.format_value_string': ( 'datatypes.html#coordenadas.format_value_string', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.Coordenadas.reset': ( 'datatypes.html#coordenadas.reset', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.Coordenadas.value': ( 'datatypes.html#coordenadas.value', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.EncodedString': ('datatypes.html#encodedstring', 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.EncodedString.__repr__': ( 'datatypes.html#encodedstring.__repr__', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.EncodedString.format_value_string': ( 'datatypes.html#encodedstring.format_value_string', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.FieldWithOptions': ('datatypes.html#fieldwithoptions', 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.FieldWithOptions.__call__': ( 'datatypes.html#fieldwithoptions.__call__', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.FieldWithOptions.__repr__': ( 'datatypes.html#fieldwithoptions.__repr__', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.FieldWithOptions.dtype': ( 'datatypes.html#fieldwithoptions.dtype', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.GerarPlai': ('datatypes.html#gerarplai', 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.GerarPlai.__call__': ( 'datatypes.html#gerarplai.__call__', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.GerarPlai.__repr__': ( 'datatypes.html#gerarplai.__repr__', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.GerarPlai.reset': ('datatypes.html#gerarplai.reset', 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.GerarPlai.validate_coord_fi': ( 'datatypes.html#gerarplai.validate_coord_fi', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.GerarPlai.validate_tipo_processo': ( 'datatypes.html#gerarplai.validate_tipo_processo', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.GerarPlai.validate_values': ( 'datatypes.html#gerarplai.validate_values', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.GerarPlai.value': ('datatypes.html#gerarplai.value', 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.SimpleField': ('datatypes.html#simplefield', 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.SimpleField.__call__': ( 'datatypes.html#simplefield.__call__', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.SimpleField.__repr__': ( 'datatypes.html#simplefield.__repr__', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.SimpleField.dtype': ( 'datatypes.html#simplefield.dtype', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.SimpleField.format_value_string': ( 'datatypes.html#simplefield.format_value_string', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.SimpleField.reset': ( 'datatypes.html#simplefield.reset', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.SimpleField.validate_value': ( 'datatypes.html#simplefield.validate_value', - 'fiscaliza/datatypes.py'), - 'fiscaliza.datatypes.SimpleField.value': ( 'datatypes.html#simplefield.value', - 'fiscaliza/datatypes.py')}, - 'fiscaliza.main': { 'fiscaliza.main.Fiscaliza': ('main.html#fiscaliza', 'fiscaliza/main.py'), - 'fiscaliza.main.Fiscaliza.__init__': ('main.html#fiscaliza.__init__', 'fiscaliza/main.py'), - 'fiscaliza.main.Fiscaliza.authenticate': ('main.html#fiscaliza.authenticate', 'fiscaliza/main.py'), - 'fiscaliza.main.Fiscaliza.get_issue': ('main.html#fiscaliza.get_issue', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue': ('main.html#issue', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue.__format_json_string': ('main.html#issue.__format_json_string', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue.__init__': ('main.html#issue.__init__', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue._append_irregularity_options': ( 'main.html#issue._append_irregularity_options', - 'fiscaliza/main.py'), - 'fiscaliza.main.Issue._attrs': ('main.html#issue._attrs', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue._check_submission': ('main.html#issue._check_submission', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue._check_uploads': ('main.html#issue._check_uploads', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue._extract_acao': ('main.html#issue._extract_acao', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue._fields_derived_from_select_conditional': ( 'main.html#issue._fields_derived_from_select_conditional', - 'fiscaliza/main.py'), - 'fiscaliza.main.Issue._fiscais2ids': ('main.html#issue._fiscais2ids', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue._get_id_only_fields': ('main.html#issue._get_id_only_fields', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue._issue_members': ('main.html#issue._issue_members', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue._keys_unrelated_from_select_conditional': ( 'main.html#issue._keys_unrelated_from_select_conditional', - 'fiscaliza/main.py'), - 'fiscaliza.main.Issue._parse_special_fields': ( 'main.html#issue._parse_special_fields', - 'fiscaliza/main.py'), - 'fiscaliza.main.Issue._parse_value_dict': ('main.html#issue._parse_value_dict', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue._update_fields': ('main.html#issue._update_fields', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue._update_options_for_each_conditional': ( 'main.html#issue._update_options_for_each_conditional', - 'fiscaliza/main.py'), - 'fiscaliza.main.Issue._utf2ascii': ('main.html#issue._utf2ascii', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue._validar_relatorio': ('main.html#issue._validar_relatorio', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue.attrs': ('main.html#issue.attrs', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue.conditional_fields': ('main.html#issue.conditional_fields', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue.current_user': ('main.html#issue.current_user', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue.custom_fields': ('main.html#issue.custom_fields', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue.editable_fields': ('main.html#issue.editable_fields', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue.extract_coords': ('main.html#issue.extract_coords', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue.extract_value': ('main.html#issue.extract_value', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue.format_number_field': ('main.html#issue.format_number_field', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue.ids2names': ('main.html#issue.ids2names', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue.mandatory_fields': ('main.html#issue.mandatory_fields', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue.names2id': ('main.html#issue.names2id', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue.project_members': ('main.html#issue.project_members', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue.refresh': ('main.html#issue.refresh', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue.relations': ('main.html#issue.relations', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue.type': ('main.html#issue.type', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue.update': ('main.html#issue.update', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue.update_fields': ('main.html#issue.update_fields', 'fiscaliza/main.py'), - 'fiscaliza.main.Issue.update_on': ('main.html#issue.update_on', 'fiscaliza/main.py')}}} diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..aeb96e8 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,24 @@ +[project] +name = "fiscaliza" +version = "1.0.2" +description = "Implementação de API python a instância do Redmine da Anatel: Fiscaliza" +readme = "README.md" +authors = [ + { name = "Ronaldo S.A. Batista", email = "ronaldokun@gmail.com" } +] +requires-python = ">=3.11,<3.12" +dependencies = [ + "certifi==2024.6.2", + "fastcore>=1.5.46", + "python-dotenv>=1.0.1", + "python-redmine==2.4.0", + "unidecode>=1.3.8", + "urllib3==2.2.2", +] + +[project.scripts] +fiscaliza = "fiscaliza:main" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" diff --git a/settings.ini b/settings.ini index 27d4d21..ea9f5a9 100644 --- a/settings.ini +++ b/settings.ini @@ -5,7 +5,7 @@ ### Python library ### repo = fiscaliza lib_name = %(repo)s -version = 1.0.1 +version = 1.0.2 min_python = 3.11 license = apache2 black_formatting = False diff --git a/src/fiscaliza/__init__.py b/src/fiscaliza/__init__.py new file mode 100644 index 0000000..5becc17 --- /dev/null +++ b/src/fiscaliza/__init__.py @@ -0,0 +1 @@ +__version__ = "1.0.0" diff --git a/fiscaliza/attrs.py b/src/fiscaliza/attrs.py similarity index 100% rename from fiscaliza/attrs.py rename to src/fiscaliza/attrs.py diff --git a/fiscaliza/constants.py b/src/fiscaliza/constants.py similarity index 99% rename from fiscaliza/constants.py rename to src/fiscaliza/constants.py index a771e65..48386fc 100644 --- a/fiscaliza/constants.py +++ b/src/fiscaliza/constants.py @@ -1,12 +1,21 @@ # AUTOGENERATED! DO NOT EDIT! File to edit: ../nbs/01_constants.ipynb. # %% auto 0 -__all__ = ['URL_PD', 'URL_PD_INTRA', 'URL_HM', 'STATUS', 'FLOW', 'STATES', 'SERVICOS', 'MUNICIPIOS'] +__all__ = [ + "URL_PD", + "URL_PD_INTRA", + "URL_HM", + "STATUS", + "FLOW", + "STATES", + "SERVICOS", + "MUNICIPIOS", +] # %% ../nbs/01_constants.ipynb 2 URL_PD = "https://sistemas.anatel.gov.br/fiscaliza/" URL_PD_INTRA = "https://sistemasnet/fiscaliza" -URL_HM = "https://sistemasnethm/fiscaliza" +URL_HM = "https://sistemasnethm.anatel.gov.br/fiscaliza" STATUS = { "Rascunho": 1, @@ -154,6 +163,7 @@ "800": "800 - COLETIVO - RETRANSMISSAO DE T.V.", "801": "801 - COLETIVO - RETRANSMISSÃO DE RADIODIFUSÃO DE SONS E IMAGENS - DIGITAL", "802": "802 - COLETIVO - PLANO BÁSICO DE RADIODIFUSÃO DE SONS E IMAGENS - DIGITAL", + "805": "805 - COLETIVO - RETRANSMISSÃO DE RÁDIO (RTR) NA AMAZÔNIA LEGAL", "810": "810 - COLETIVO - DISTRIBUICAO DE SINAIS DE TELEVISAO - DISTV", "820": "820 - RESTRITO - DE TELEV. EM CIRCUITO FECHADO (RADIOENLACE)", "900": "900 - COLETIVO - FUST", @@ -5734,4 +5744,3 @@ "TO/Wanderlândia", "TO/Xambioá", ] - diff --git a/fiscaliza/datatypes.py b/src/fiscaliza/datatypes.py similarity index 100% rename from fiscaliza/datatypes.py rename to src/fiscaliza/datatypes.py diff --git a/fiscaliza/main.py b/src/fiscaliza/main.py similarity index 100% rename from fiscaliza/main.py rename to src/fiscaliza/main.py diff --git a/tests/test_certificacao.py b/tests/test_certificacao.py index 2a515fb..5c9b787 100644 --- a/tests/test_certificacao.py +++ b/tests/test_certificacao.py @@ -1,6 +1,7 @@ import os import random from random import randint +from pathlib import Path from dotenv import load_dotenv from fiscaliza.main import Fiscaliza from fiscaliza.constants import MUNICIPIOS, SERVICOS @@ -36,10 +37,10 @@ "gerar_plai": 1, "tipo_do_processo_plai": random.choice(FIELDS["tipo_do_processo_plai"].options), "coord_fi_plai": random.choice(FIELDS["coord_fi_plai"].options), - "html_path": "/mnt/c/Users/rsilva/code/fiscaliza/tests/Report_2024.02.18_T11.30.55_123456.html", + "html_path": Path(__file__).parent / "Report_2024.02.18_T11.30.55_123456.html", "uploads": [ { - "path": "/mnt/c/Users/rsilva/code/fiscaliza/tests/Report_2024.02.18_T11.30.55_123456.json", + "path": Path(__file__).parent / "Report_2024.02.18_T11.30.55_123456.json", "filename": "Info.json", } ], diff --git a/tests/test_fiscaliza.py b/tests/test_fiscaliza.py index ed8672d..92dd8d6 100644 --- a/tests/test_fiscaliza.py +++ b/tests/test_fiscaliza.py @@ -3,7 +3,7 @@ from redminelib import Redmine from dotenv import load_dotenv -from main import Fiscaliza +from fiscaliza.main import Fiscaliza load_dotenv(override=True) diff --git a/uv.lock b/uv.lock new file mode 100644 index 0000000..c5082c0 --- /dev/null +++ b/uv.lock @@ -0,0 +1,142 @@ +version = 1 +requires-python = "==3.11.*" + +[[package]] +name = "certifi" +version = "2024.6.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/07/b3/e02f4f397c81077ffc52a538e0aec464016f1860c472ed33bd2a1d220cc5/certifi-2024.6.2.tar.gz", hash = "sha256:3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516", size = 165550 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5b/11/1e78951465b4a225519b8c3ad29769c49e0d8d157a070f681d5b6d64737f/certifi-2024.6.2-py3-none-any.whl", hash = "sha256:ddc6c8ce995e6987e7faf5e3f1b02b302836a0e5d98ece18392cb1a36c72ad56", size = 164433 }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f2/4f/e1808dc01273379acc506d18f1504eb2d299bd4131743b9fc54d7be4df1e/charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e", size = 106620 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/61/73589dcc7a719582bf56aae309b6103d2762b526bffe189d635a7fcfd998/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c", size = 193339 }, + { url = "https://files.pythonhosted.org/packages/77/d5/8c982d58144de49f59571f940e329ad6e8615e1e82ef84584c5eeb5e1d72/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944", size = 124366 }, + { url = "https://files.pythonhosted.org/packages/bf/19/411a64f01ee971bed3231111b69eb56f9331a769072de479eae7de52296d/charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee", size = 118874 }, + { url = "https://files.pythonhosted.org/packages/4c/92/97509850f0d00e9f14a46bc751daabd0ad7765cff29cdfb66c68b6dad57f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c", size = 138243 }, + { url = "https://files.pythonhosted.org/packages/e2/29/d227805bff72ed6d6cb1ce08eec707f7cfbd9868044893617eb331f16295/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6", size = 148676 }, + { url = "https://files.pythonhosted.org/packages/13/bc/87c2c9f2c144bedfa62f894c3007cd4530ba4b5351acb10dc786428a50f0/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea", size = 141289 }, + { url = "https://files.pythonhosted.org/packages/eb/5b/6f10bad0f6461fa272bfbbdf5d0023b5fb9bc6217c92bf068fa5a99820f5/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc", size = 142585 }, + { url = "https://files.pythonhosted.org/packages/3b/a0/a68980ab8a1f45a36d9745d35049c1af57d27255eff8c907e3add84cf68f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5", size = 144408 }, + { url = "https://files.pythonhosted.org/packages/d7/a1/493919799446464ed0299c8eef3c3fad0daf1c3cd48bff9263c731b0d9e2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594", size = 139076 }, + { url = "https://files.pythonhosted.org/packages/fb/9d/9c13753a5a6e0db4a0a6edb1cef7aee39859177b64e1a1e748a6e3ba62c2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c", size = 146874 }, + { url = "https://files.pythonhosted.org/packages/75/d2/0ab54463d3410709c09266dfb416d032a08f97fd7d60e94b8c6ef54ae14b/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365", size = 150871 }, + { url = "https://files.pythonhosted.org/packages/8d/c9/27e41d481557be53d51e60750b85aa40eaf52b841946b3cdeff363105737/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129", size = 148546 }, + { url = "https://files.pythonhosted.org/packages/ee/44/4f62042ca8cdc0cabf87c0fc00ae27cd8b53ab68be3605ba6d071f742ad3/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236", size = 143048 }, + { url = "https://files.pythonhosted.org/packages/01/f8/38842422988b795220eb8038745d27a675ce066e2ada79516c118f291f07/charset_normalizer-3.4.0-cp311-cp311-win32.whl", hash = "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99", size = 94389 }, + { url = "https://files.pythonhosted.org/packages/0b/6e/b13bd47fa9023b3699e94abf565b5a2f0b0be6e9ddac9812182596ee62e4/charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27", size = 101752 }, + { url = "https://files.pythonhosted.org/packages/bf/9b/08c0432272d77b04803958a4598a51e2a4b51c06640af8b8f0f908c18bf2/charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", size = 49446 }, +] + +[[package]] +name = "fastcore" +version = "1.7.19" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a2/a0/1582ae095c746fbe8d0ca98dedc9b6917e4730baa74cb3249db7b14d40c0/fastcore-1.7.19.tar.gz", hash = "sha256:72ac75cf3f7a591966e24aa37a4283512a097a098b4794c944ce707f71ba0f02", size = 77876 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/60/ca/10828fb40dcf097d1af84c1f2f863bae4046d5949450bf95b3260f767672/fastcore-1.7.19-py3-none-any.whl", hash = "sha256:c528203caf2bcb6869f1198c7bcb0f77158e04eeb8d3bc4c7b60c21b389235a1", size = 81340 }, +] + +[[package]] +name = "fiscaliza" +version = "1.0.2" +source = { editable = "." } +dependencies = [ + { name = "certifi" }, + { name = "fastcore" }, + { name = "python-dotenv" }, + { name = "python-redmine" }, + { name = "unidecode" }, + { name = "urllib3" }, +] + +[package.metadata] +requires-dist = [ + { name = "certifi", specifier = "==2024.6.2" }, + { name = "fastcore", specifier = ">=1.5.46" }, + { name = "python-dotenv", specifier = ">=1.0.1" }, + { name = "python-redmine", specifier = "==2.4.0" }, + { name = "unidecode", specifier = ">=1.3.8" }, + { name = "urllib3", specifier = "==2.2.2" }, +] + +[[package]] +name = "idna" +version = "3.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 }, +] + +[[package]] +name = "packaging" +version = "24.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/51/65/50db4dda066951078f0a96cf12f4b9ada6e4b811516bf0262c0f4f7064d4/packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002", size = 148788 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/08/aa/cc0199a5f0ad350994d660967a8efb233fe0416e4639146c089643407ce6/packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124", size = 53985 }, +] + +[[package]] +name = "python-dotenv" +version = "1.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bc/57/e84d88dfe0aec03b7a2d4327012c1627ab5f03652216c63d49846d7a6c58/python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca", size = 39115 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/3e/b68c118422ec867fa7ab88444e1274aa40681c606d59ac27de5a5588f082/python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a", size = 19863 }, +] + +[[package]] +name = "python-redmine" +version = "2.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9d/13/84f5d560022ef9a26a2a9c328fecda305d727c5c9efd961e1841d7fb3a39/python-redmine-2.4.0.tar.gz", hash = "sha256:29e1c479e6bedc4b193f84dda25121a1a0fcc30969c7f0f6e729c5638749e9d8", size = 67730 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/17/0c/b35e99c187db8d93673ff540882cc61480670106fe860da35162f75445b4/python_redmine-2.4.0-py3-none-any.whl", hash = "sha256:c9b6ee4465516c1794fe8038b98ddc8bf9d8caa3c0564cf2bc6ea7d4637a2d3a", size = 37961 }, +] + +[[package]] +name = "requests" +version = "2.32.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 }, +] + +[[package]] +name = "unidecode" +version = "1.3.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f7/89/19151076a006b9ac0dd37b1354e031f5297891ee507eb624755e58e10d3e/Unidecode-1.3.8.tar.gz", hash = "sha256:cfdb349d46ed3873ece4586b96aa75258726e2fa8ec21d6f00a591d98806c2f4", size = 192701 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/b7/6ec57841fb67c98f52fc8e4a2d96df60059637cba077edc569a302a8ffc7/Unidecode-1.3.8-py3-none-any.whl", hash = "sha256:d130a61ce6696f8148a3bd8fe779c99adeb4b870584eeb9526584e9aa091fd39", size = 235494 }, +] + +[[package]] +name = "urllib3" +version = "2.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/6d/fa469ae21497ddc8bc93e5877702dca7cb8f911e337aca7452b5724f1bb6/urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168", size = 292266 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ca/1c/89ffc63a9605b583d5df2be791a27bc1a42b7c32bab68d3c8f2f73a98cd4/urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472", size = 121444 }, +]