catalogmx 0.3.0__tar.gz → 0.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {catalogmx-0.3.0 → catalogmx-0.4.0}/PKG-INFO +1 -1
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/banxico/inflacion_sqlite.py +4 -8
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/banxico/salarios_minimos_sqlite.py +2 -4
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/banxico/tipo_cambio_usd_sqlite.py +4 -8
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/banxico/udis_sqlite.py +2 -4
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/ift/codigos_lada.py +1 -3
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/clave_prod_serv.py +4 -8
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sepomex/codigos_postales.py +2 -4
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/generators/identity.py +12 -9
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx.egg-info/PKG-INFO +1 -1
- {catalogmx-0.3.0 → catalogmx-0.4.0}/pyproject.toml +1 -1
- {catalogmx-0.3.0 → catalogmx-0.4.0}/AUTHORS.rst +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/CHANGELOG.rst +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/LICENSE +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/MANIFEST.in +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/README.md +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/README.rst +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/__init__.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/calculators/__init__.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/calculators/costo_trabajador.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/calculators/impuestos.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/calculators/imss.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/calculators/isr.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/calculators/resico.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/__init__.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/banxico/__init__.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/banxico/banks.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/banxico/cetes_sqlite.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/banxico/codigos_plaza.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/banxico/instituciones_financieras.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/banxico/monedas_divisas.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/banxico/tiie_sqlite.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/cnbv/__init__.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/cnbv/sectores.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/conapo/__init__.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/conapo/sistema_urbano_nacional.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/conapo/zonas_metropolitanas.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/ift/__init__.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/ift/operadores_moviles.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/inegi/__init__.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/inegi/localidades.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/inegi/municipios.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/inegi/municipios_completo.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/inegi/scian.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/inegi/states.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/mexico/__init__.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/mexico/giros_mercantiles.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/mexico/hoy_no_circula.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/mexico/placas_formatos.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/mexico/salarios_minimos.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/mexico/uma.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/__init__.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/carta_porte/__init__.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/carta_porte/aeropuertos.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/carta_porte/carreteras.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/carta_porte/config_autotransporte.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/carta_porte/material_peligroso.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/carta_porte/puertos_maritimos.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/carta_porte/tipo_embalaje.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/carta_porte/tipo_permiso.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/__init__.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/clave_unidad.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/exportacion.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/forma_pago.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/impuesto.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/meses.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/metodo_pago.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/objeto_imp.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/periodicidad.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/regimen_fiscal.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/tasa_o_cuota.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/tipo_comprobante.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/tipo_factor.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/tipo_relacion.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/uso_cfdi.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/comercio_exterior/__init__.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/comercio_exterior/claves_pedimento.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/comercio_exterior/estados.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/comercio_exterior/incoterms.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/comercio_exterior/monedas.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/comercio_exterior/motivos_traslado.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/comercio_exterior/paises.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/comercio_exterior/registro_ident_trib.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/comercio_exterior/unidades_aduana.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/comercio_exterior/validator.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/nomina/__init__.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/nomina/banco.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/nomina/periodicidad_pago.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/nomina/riesgo_puesto.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/nomina/tipo_contrato.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/nomina/tipo_jornada.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/nomina/tipo_nomina.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/nomina/tipo_regimen.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sepomex/__init__.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sepomex/codigos_postales_completo.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/cli.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/data/__init__.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/data/mexico_dynamic.sqlite3 +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/data/updater.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/generators/__init__.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/helpers.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/utils/__init__.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/utils/clabe_utils.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/utils/text.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/validators/__init__.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/validators/clabe.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/validators/curp.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/validators/nss.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/validators/rfc.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx.egg-info/SOURCES.txt +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx.egg-info/dependency_links.txt +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx.egg-info/entry_points.txt +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx.egg-info/not-zip-safe +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx.egg-info/requires.txt +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx.egg-info/top_level.txt +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/setup.cfg +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_100_percent_coverage.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_absolute_final_push.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_accent_insensitive_search.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_achievable_coverage.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_all_catalog_loading.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_banxico_complete.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_banxico_new_catalogs.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_calculators_import.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_catalogs_sqlite.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_cetes_sqlite_complete.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_clabe.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_clabe_utils.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_clabe_validation_shared.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_clabe_vectors_shared.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_clave_prod_serv_complete.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_clave_unidad_complete.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_cli_comprehensive.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_cnbv_sectores.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_codigos_plaza_complete.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_comercio_exterior_validator.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_costo_trabajador_calculator.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_costo_trabajador_vectors_shared.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_curp.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_curp_complete.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_curp_rfc_error_paths.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_curp_validation_shared.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_curp_vectors_shared.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_data_updater.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_every_remaining_gap.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_final_100_percent.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_final_coverage.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_helpers.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_helpers_complete.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_identity_generator.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_ift_catalogs.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_impuestos_calculators.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_impuestos_vectors_shared.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_imss_calculator.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_imss_vectors_shared.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_inegi_all.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_inflacion_sqlite_complete.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_isr_vectors_shared.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_mexico_all.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_new_catalogs.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_nss.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_nss_validation_shared.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_nss_vectors_shared.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_push_to_100.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_remaining_coverage.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_resico.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_resico_equivalence.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_resico_vectors_shared.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_rfc.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_rfc_complete.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_rfc_sat_spec.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_rfc_validation_shared.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_rfc_vectors_shared.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_rfcmx.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_sepomex_accent_search.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_sqlite_catalogs.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_tasa_o_cuota_complete.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_text_utils.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_text_utils_fallback.py +0 -0
- {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_tiie_sqlite_complete.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: catalogmx
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Comprehensive Mexican data validators and official catalogs library - 170K+ records
|
|
5
5
|
Author-email: Luis Fernando Barrera <luisfernando@informind.com>
|
|
6
6
|
Maintainer-email: Luis Fernando Barrera <luisfernando@informind.com>
|
|
@@ -55,13 +55,11 @@ class InflacionCatalog:
|
|
|
55
55
|
"""
|
|
56
56
|
db = sqlite3.connect(cls._get_db_path())
|
|
57
57
|
db.row_factory = sqlite3.Row
|
|
58
|
-
cursor = db.execute(
|
|
59
|
-
"""
|
|
58
|
+
cursor = db.execute("""
|
|
60
59
|
SELECT fecha, anio, mes, inpc, inflacion_mensual, inflacion_anual
|
|
61
60
|
FROM inflacion
|
|
62
61
|
ORDER BY fecha
|
|
63
|
-
"""
|
|
64
|
-
)
|
|
62
|
+
""")
|
|
65
63
|
results = [cls._row_to_dict(row) for row in cursor.fetchall()]
|
|
66
64
|
db.close()
|
|
67
65
|
return results
|
|
@@ -131,14 +129,12 @@ class InflacionCatalog:
|
|
|
131
129
|
db = sqlite3.connect(cls._get_db_path())
|
|
132
130
|
db.row_factory = sqlite3.Row
|
|
133
131
|
|
|
134
|
-
cursor = db.execute(
|
|
135
|
-
"""
|
|
132
|
+
cursor = db.execute("""
|
|
136
133
|
SELECT fecha, anio, mes, inpc, inflacion_mensual, inflacion_anual
|
|
137
134
|
FROM inflacion
|
|
138
135
|
ORDER BY fecha DESC
|
|
139
136
|
LIMIT 1
|
|
140
|
-
"""
|
|
141
|
-
)
|
|
137
|
+
""")
|
|
142
138
|
row = cursor.fetchone()
|
|
143
139
|
db.close()
|
|
144
140
|
|
|
@@ -51,13 +51,11 @@ class SalariosMinimosCatalog:
|
|
|
51
51
|
"""
|
|
52
52
|
db = sqlite3.connect(cls._get_db_path())
|
|
53
53
|
db.row_factory = sqlite3.Row
|
|
54
|
-
cursor = db.execute(
|
|
55
|
-
"""
|
|
54
|
+
cursor = db.execute("""
|
|
56
55
|
SELECT fecha, zona, salario_diario, anio, mes
|
|
57
56
|
FROM salarios_minimos
|
|
58
57
|
ORDER BY fecha, zona
|
|
59
|
-
"""
|
|
60
|
-
)
|
|
58
|
+
""")
|
|
61
59
|
results = [cls._row_to_dict(row) for row in cursor.fetchall()]
|
|
62
60
|
db.close()
|
|
63
61
|
return results
|
|
@@ -50,14 +50,12 @@ class TipoCambioUSDCatalog:
|
|
|
50
50
|
"""
|
|
51
51
|
db = sqlite3.connect(cls._get_db_path())
|
|
52
52
|
db.row_factory = sqlite3.Row
|
|
53
|
-
cursor = db.execute(
|
|
54
|
-
"""
|
|
53
|
+
cursor = db.execute("""
|
|
55
54
|
SELECT fecha, tipo_cambio, anio, mes, fuente, moneda_origen, moneda_destino
|
|
56
55
|
FROM tipo_cambio
|
|
57
56
|
WHERE fuente = 'FIX'
|
|
58
57
|
ORDER BY fecha
|
|
59
|
-
"""
|
|
60
|
-
)
|
|
58
|
+
""")
|
|
61
59
|
results = [cls._row_to_dict(row) for row in cursor.fetchall()]
|
|
62
60
|
db.close()
|
|
63
61
|
return results
|
|
@@ -123,15 +121,13 @@ class TipoCambioUSDCatalog:
|
|
|
123
121
|
db = sqlite3.connect(cls._get_db_path())
|
|
124
122
|
db.row_factory = sqlite3.Row
|
|
125
123
|
|
|
126
|
-
cursor = db.execute(
|
|
127
|
-
"""
|
|
124
|
+
cursor = db.execute("""
|
|
128
125
|
SELECT fecha, tipo_cambio, anio, mes, fuente, moneda_origen, moneda_destino
|
|
129
126
|
FROM tipo_cambio
|
|
130
127
|
WHERE fuente = 'FIX'
|
|
131
128
|
ORDER BY fecha DESC
|
|
132
129
|
LIMIT 1
|
|
133
|
-
"""
|
|
134
|
-
)
|
|
130
|
+
""")
|
|
135
131
|
row = cursor.fetchone()
|
|
136
132
|
db.close()
|
|
137
133
|
|
|
@@ -196,15 +196,13 @@ class UDICatalog:
|
|
|
196
196
|
db = sqlite3.connect(cls._get_db_path())
|
|
197
197
|
db.row_factory = sqlite3.Row
|
|
198
198
|
|
|
199
|
-
cursor = db.execute(
|
|
200
|
-
"""
|
|
199
|
+
cursor = db.execute("""
|
|
201
200
|
SELECT fecha, valor, anio, mes, tipo, moneda, notas
|
|
202
201
|
FROM udis
|
|
203
202
|
WHERE tipo IN ('diario', 'oficial_banxico')
|
|
204
203
|
ORDER BY fecha DESC
|
|
205
204
|
LIMIT 1
|
|
206
|
-
"""
|
|
207
|
-
)
|
|
205
|
+
""")
|
|
208
206
|
row = cursor.fetchone()
|
|
209
207
|
db.close()
|
|
210
208
|
|
|
@@ -310,9 +310,7 @@ class CodigosLADACatalog:
|
|
|
310
310
|
return [c for c in cls._data if c.get("region") == region]
|
|
311
311
|
|
|
312
312
|
@classmethod
|
|
313
|
-
def get_prefijos_por_municipio(
|
|
314
|
-
cls, cve_entidad: str, cve_municipio: str
|
|
315
|
-
) -> list[str]:
|
|
313
|
+
def get_prefijos_por_municipio(cls, cve_entidad: str, cve_municipio: str) -> list[str]:
|
|
316
314
|
"""
|
|
317
315
|
Obtiene todos los prefijos telefónicos probables para un municipio.
|
|
318
316
|
|
|
@@ -104,8 +104,7 @@ class ClaveProdServCatalog:
|
|
|
104
104
|
def _ensure_schema(cls, conn: sqlite3.Connection) -> None:
|
|
105
105
|
"""Crea tablas mínimas si el archivo existe pero está vacío."""
|
|
106
106
|
cursor = conn.cursor()
|
|
107
|
-
cursor.execute(
|
|
108
|
-
"""
|
|
107
|
+
cursor.execute("""
|
|
109
108
|
CREATE TABLE IF NOT EXISTS clave_prod_serv (
|
|
110
109
|
clave TEXT PRIMARY KEY,
|
|
111
110
|
descripcion TEXT,
|
|
@@ -116,10 +115,8 @@ class ClaveProdServCatalog:
|
|
|
116
115
|
fecha_inicio_vigencia TEXT,
|
|
117
116
|
fecha_fin_vigencia TEXT
|
|
118
117
|
)
|
|
119
|
-
"""
|
|
120
|
-
|
|
121
|
-
cursor.execute(
|
|
122
|
-
"""
|
|
118
|
+
""")
|
|
119
|
+
cursor.execute("""
|
|
123
120
|
CREATE VIRTUAL TABLE IF NOT EXISTS clave_prod_serv_fts USING fts5(
|
|
124
121
|
clave,
|
|
125
122
|
descripcion,
|
|
@@ -128,8 +125,7 @@ class ClaveProdServCatalog:
|
|
|
128
125
|
content='clave_prod_serv',
|
|
129
126
|
content_rowid='rowid'
|
|
130
127
|
)
|
|
131
|
-
"""
|
|
132
|
-
)
|
|
128
|
+
""")
|
|
133
129
|
cursor.execute("SELECT COUNT(*) FROM clave_prod_serv")
|
|
134
130
|
(count,) = cursor.fetchone()
|
|
135
131
|
if count == 0:
|
|
@@ -149,16 +149,14 @@ class CodigosPostalesSQLite:
|
|
|
149
149
|
def _ensure_schema(cls, conn):
|
|
150
150
|
"""Crea tablas mínimas si el archivo existe pero está vacío."""
|
|
151
151
|
cursor = conn.cursor()
|
|
152
|
-
cursor.execute(
|
|
153
|
-
"""
|
|
152
|
+
cursor.execute("""
|
|
154
153
|
CREATE TABLE IF NOT EXISTS codigos_postales (
|
|
155
154
|
cp TEXT,
|
|
156
155
|
asentamiento TEXT,
|
|
157
156
|
municipio TEXT,
|
|
158
157
|
estado TEXT
|
|
159
158
|
)
|
|
160
|
-
"""
|
|
161
|
-
)
|
|
159
|
+
""")
|
|
162
160
|
cursor.execute("SELECT COUNT(*) FROM codigos_postales")
|
|
163
161
|
(count,) = cursor.fetchone()
|
|
164
162
|
if count == 0:
|
|
@@ -49,8 +49,7 @@ def _get_faker() -> Faker:
|
|
|
49
49
|
"""Get a Faker instance with Mexican locale."""
|
|
50
50
|
if Faker is None:
|
|
51
51
|
raise ImportError(
|
|
52
|
-
"Faker is required for identity generation. "
|
|
53
|
-
"Install it with: pip install faker"
|
|
52
|
+
"Faker is required for identity generation. " "Install it with: pip install faker"
|
|
54
53
|
)
|
|
55
54
|
return Faker("es_MX")
|
|
56
55
|
|
|
@@ -113,7 +112,10 @@ REGIMENES_PERSONA_FISICA = [
|
|
|
113
112
|
{"code": "606", "name": "Arrendamiento"},
|
|
114
113
|
{"code": "612", "name": "Personas Físicas con Actividades Empresariales y Profesionales"},
|
|
115
114
|
{"code": "621", "name": "Incorporación Fiscal"},
|
|
116
|
-
{
|
|
115
|
+
{
|
|
116
|
+
"code": "625",
|
|
117
|
+
"name": "Régimen de las Actividades Empresariales con ingresos a través de Plataformas Tecnológicas",
|
|
118
|
+
},
|
|
117
119
|
{"code": "626", "name": "Régimen Simplificado de Confianza"},
|
|
118
120
|
]
|
|
119
121
|
|
|
@@ -166,8 +168,10 @@ class PersonaFisica:
|
|
|
166
168
|
def edad(self) -> int:
|
|
167
169
|
"""Age in years."""
|
|
168
170
|
today = date.today()
|
|
169
|
-
return
|
|
170
|
-
|
|
171
|
+
return (
|
|
172
|
+
today.year
|
|
173
|
+
- self.fecha_nacimiento.year
|
|
174
|
+
- ((today.month, today.day) < (self.fecha_nacimiento.month, self.fecha_nacimiento.day))
|
|
171
175
|
)
|
|
172
176
|
|
|
173
177
|
def to_dict(self) -> dict:
|
|
@@ -330,7 +334,7 @@ class IdentityGenerator:
|
|
|
330
334
|
if estado:
|
|
331
335
|
estado_info = next(
|
|
332
336
|
(e for e in ESTADOS_MEXICO if e["name"].upper() == estado.upper()),
|
|
333
|
-
random.choice(ESTADOS_MEXICO)
|
|
337
|
+
random.choice(ESTADOS_MEXICO),
|
|
334
338
|
)
|
|
335
339
|
else:
|
|
336
340
|
estado_info = random.choice(ESTADOS_MEXICO)
|
|
@@ -490,9 +494,7 @@ class IdentityGenerator:
|
|
|
490
494
|
persona.municipio = self.faker.city()
|
|
491
495
|
persona.estado = random.choice(ESTADOS_MEXICO)["name"].title()
|
|
492
496
|
|
|
493
|
-
def _add_contact(
|
|
494
|
-
self, persona: PersonaFisica, nombre: str, apellido: str
|
|
495
|
-
) -> None:
|
|
497
|
+
def _add_contact(self, persona: PersonaFisica, nombre: str, apellido: str) -> None:
|
|
496
498
|
"""Add contact information to persona física."""
|
|
497
499
|
persona.telefono = self._generate_phone()
|
|
498
500
|
|
|
@@ -508,6 +510,7 @@ class IdentityGenerator:
|
|
|
508
510
|
email_user = random.choice(email_styles)
|
|
509
511
|
# Normalize email (remove accents)
|
|
510
512
|
import unicodedata
|
|
513
|
+
|
|
511
514
|
email_user = unicodedata.normalize("NFD", email_user)
|
|
512
515
|
email_user = "".join(c for c in email_user if unicodedata.category(c) != "Mn")
|
|
513
516
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: catalogmx
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Comprehensive Mexican data validators and official catalogs library - 170K+ records
|
|
5
5
|
Author-email: Luis Fernando Barrera <luisfernando@informind.com>
|
|
6
6
|
Maintainer-email: Luis Fernando Barrera <luisfernando@informind.com>
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "catalogmx"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.4.0"
|
|
8
8
|
description = "Comprehensive Mexican data validators and official catalogs library - 170K+ records"
|
|
9
9
|
readme = {file = "README.md", content-type = "text/markdown"}
|
|
10
10
|
requires-python = ">=3.10"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/carta_porte/config_autotransporte.py
RENAMED
|
File without changes
|
{catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/carta_porte/material_peligroso.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/comercio_exterior/claves_pedimento.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/comercio_exterior/motivos_traslado.py
RENAMED
|
File without changes
|
|
File without changes
|
{catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/comercio_exterior/registro_ident_trib.py
RENAMED
|
File without changes
|
{catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/comercio_exterior/unidades_aduana.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|