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.
Files changed (180) hide show
  1. {catalogmx-0.3.0 → catalogmx-0.4.0}/PKG-INFO +1 -1
  2. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/banxico/inflacion_sqlite.py +4 -8
  3. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/banxico/salarios_minimos_sqlite.py +2 -4
  4. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/banxico/tipo_cambio_usd_sqlite.py +4 -8
  5. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/banxico/udis_sqlite.py +2 -4
  6. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/ift/codigos_lada.py +1 -3
  7. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/clave_prod_serv.py +4 -8
  8. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sepomex/codigos_postales.py +2 -4
  9. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/generators/identity.py +12 -9
  10. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx.egg-info/PKG-INFO +1 -1
  11. {catalogmx-0.3.0 → catalogmx-0.4.0}/pyproject.toml +1 -1
  12. {catalogmx-0.3.0 → catalogmx-0.4.0}/AUTHORS.rst +0 -0
  13. {catalogmx-0.3.0 → catalogmx-0.4.0}/CHANGELOG.rst +0 -0
  14. {catalogmx-0.3.0 → catalogmx-0.4.0}/LICENSE +0 -0
  15. {catalogmx-0.3.0 → catalogmx-0.4.0}/MANIFEST.in +0 -0
  16. {catalogmx-0.3.0 → catalogmx-0.4.0}/README.md +0 -0
  17. {catalogmx-0.3.0 → catalogmx-0.4.0}/README.rst +0 -0
  18. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/__init__.py +0 -0
  19. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/calculators/__init__.py +0 -0
  20. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/calculators/costo_trabajador.py +0 -0
  21. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/calculators/impuestos.py +0 -0
  22. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/calculators/imss.py +0 -0
  23. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/calculators/isr.py +0 -0
  24. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/calculators/resico.py +0 -0
  25. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/__init__.py +0 -0
  26. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/banxico/__init__.py +0 -0
  27. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/banxico/banks.py +0 -0
  28. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/banxico/cetes_sqlite.py +0 -0
  29. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/banxico/codigos_plaza.py +0 -0
  30. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/banxico/instituciones_financieras.py +0 -0
  31. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/banxico/monedas_divisas.py +0 -0
  32. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/banxico/tiie_sqlite.py +0 -0
  33. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/cnbv/__init__.py +0 -0
  34. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/cnbv/sectores.py +0 -0
  35. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/conapo/__init__.py +0 -0
  36. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/conapo/sistema_urbano_nacional.py +0 -0
  37. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/conapo/zonas_metropolitanas.py +0 -0
  38. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/ift/__init__.py +0 -0
  39. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/ift/operadores_moviles.py +0 -0
  40. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/inegi/__init__.py +0 -0
  41. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/inegi/localidades.py +0 -0
  42. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/inegi/municipios.py +0 -0
  43. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/inegi/municipios_completo.py +0 -0
  44. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/inegi/scian.py +0 -0
  45. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/inegi/states.py +0 -0
  46. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/mexico/__init__.py +0 -0
  47. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/mexico/giros_mercantiles.py +0 -0
  48. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/mexico/hoy_no_circula.py +0 -0
  49. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/mexico/placas_formatos.py +0 -0
  50. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/mexico/salarios_minimos.py +0 -0
  51. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/mexico/uma.py +0 -0
  52. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/__init__.py +0 -0
  53. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/carta_porte/__init__.py +0 -0
  54. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/carta_porte/aeropuertos.py +0 -0
  55. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/carta_porte/carreteras.py +0 -0
  56. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/carta_porte/config_autotransporte.py +0 -0
  57. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/carta_porte/material_peligroso.py +0 -0
  58. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/carta_porte/puertos_maritimos.py +0 -0
  59. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/carta_porte/tipo_embalaje.py +0 -0
  60. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/carta_porte/tipo_permiso.py +0 -0
  61. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/__init__.py +0 -0
  62. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/clave_unidad.py +0 -0
  63. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/exportacion.py +0 -0
  64. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/forma_pago.py +0 -0
  65. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/impuesto.py +0 -0
  66. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/meses.py +0 -0
  67. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/metodo_pago.py +0 -0
  68. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/objeto_imp.py +0 -0
  69. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/periodicidad.py +0 -0
  70. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/regimen_fiscal.py +0 -0
  71. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/tasa_o_cuota.py +0 -0
  72. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/tipo_comprobante.py +0 -0
  73. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/tipo_factor.py +0 -0
  74. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/tipo_relacion.py +0 -0
  75. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/cfdi_4/uso_cfdi.py +0 -0
  76. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/comercio_exterior/__init__.py +0 -0
  77. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/comercio_exterior/claves_pedimento.py +0 -0
  78. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/comercio_exterior/estados.py +0 -0
  79. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/comercio_exterior/incoterms.py +0 -0
  80. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/comercio_exterior/monedas.py +0 -0
  81. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/comercio_exterior/motivos_traslado.py +0 -0
  82. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/comercio_exterior/paises.py +0 -0
  83. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/comercio_exterior/registro_ident_trib.py +0 -0
  84. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/comercio_exterior/unidades_aduana.py +0 -0
  85. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/comercio_exterior/validator.py +0 -0
  86. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/nomina/__init__.py +0 -0
  87. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/nomina/banco.py +0 -0
  88. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/nomina/periodicidad_pago.py +0 -0
  89. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/nomina/riesgo_puesto.py +0 -0
  90. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/nomina/tipo_contrato.py +0 -0
  91. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/nomina/tipo_jornada.py +0 -0
  92. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/nomina/tipo_nomina.py +0 -0
  93. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sat/nomina/tipo_regimen.py +0 -0
  94. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sepomex/__init__.py +0 -0
  95. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/catalogs/sepomex/codigos_postales_completo.py +0 -0
  96. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/cli.py +0 -0
  97. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/data/__init__.py +0 -0
  98. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/data/mexico_dynamic.sqlite3 +0 -0
  99. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/data/updater.py +0 -0
  100. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/generators/__init__.py +0 -0
  101. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/helpers.py +0 -0
  102. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/utils/__init__.py +0 -0
  103. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/utils/clabe_utils.py +0 -0
  104. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/utils/text.py +0 -0
  105. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/validators/__init__.py +0 -0
  106. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/validators/clabe.py +0 -0
  107. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/validators/curp.py +0 -0
  108. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/validators/nss.py +0 -0
  109. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx/validators/rfc.py +0 -0
  110. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx.egg-info/SOURCES.txt +0 -0
  111. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx.egg-info/dependency_links.txt +0 -0
  112. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx.egg-info/entry_points.txt +0 -0
  113. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx.egg-info/not-zip-safe +0 -0
  114. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx.egg-info/requires.txt +0 -0
  115. {catalogmx-0.3.0 → catalogmx-0.4.0}/catalogmx.egg-info/top_level.txt +0 -0
  116. {catalogmx-0.3.0 → catalogmx-0.4.0}/setup.cfg +0 -0
  117. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_100_percent_coverage.py +0 -0
  118. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_absolute_final_push.py +0 -0
  119. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_accent_insensitive_search.py +0 -0
  120. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_achievable_coverage.py +0 -0
  121. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_all_catalog_loading.py +0 -0
  122. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_banxico_complete.py +0 -0
  123. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_banxico_new_catalogs.py +0 -0
  124. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_calculators_import.py +0 -0
  125. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_catalogs_sqlite.py +0 -0
  126. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_cetes_sqlite_complete.py +0 -0
  127. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_clabe.py +0 -0
  128. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_clabe_utils.py +0 -0
  129. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_clabe_validation_shared.py +0 -0
  130. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_clabe_vectors_shared.py +0 -0
  131. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_clave_prod_serv_complete.py +0 -0
  132. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_clave_unidad_complete.py +0 -0
  133. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_cli_comprehensive.py +0 -0
  134. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_cnbv_sectores.py +0 -0
  135. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_codigos_plaza_complete.py +0 -0
  136. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_comercio_exterior_validator.py +0 -0
  137. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_costo_trabajador_calculator.py +0 -0
  138. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_costo_trabajador_vectors_shared.py +0 -0
  139. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_curp.py +0 -0
  140. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_curp_complete.py +0 -0
  141. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_curp_rfc_error_paths.py +0 -0
  142. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_curp_validation_shared.py +0 -0
  143. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_curp_vectors_shared.py +0 -0
  144. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_data_updater.py +0 -0
  145. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_every_remaining_gap.py +0 -0
  146. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_final_100_percent.py +0 -0
  147. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_final_coverage.py +0 -0
  148. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_helpers.py +0 -0
  149. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_helpers_complete.py +0 -0
  150. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_identity_generator.py +0 -0
  151. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_ift_catalogs.py +0 -0
  152. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_impuestos_calculators.py +0 -0
  153. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_impuestos_vectors_shared.py +0 -0
  154. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_imss_calculator.py +0 -0
  155. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_imss_vectors_shared.py +0 -0
  156. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_inegi_all.py +0 -0
  157. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_inflacion_sqlite_complete.py +0 -0
  158. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_isr_vectors_shared.py +0 -0
  159. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_mexico_all.py +0 -0
  160. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_new_catalogs.py +0 -0
  161. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_nss.py +0 -0
  162. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_nss_validation_shared.py +0 -0
  163. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_nss_vectors_shared.py +0 -0
  164. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_push_to_100.py +0 -0
  165. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_remaining_coverage.py +0 -0
  166. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_resico.py +0 -0
  167. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_resico_equivalence.py +0 -0
  168. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_resico_vectors_shared.py +0 -0
  169. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_rfc.py +0 -0
  170. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_rfc_complete.py +0 -0
  171. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_rfc_sat_spec.py +0 -0
  172. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_rfc_validation_shared.py +0 -0
  173. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_rfc_vectors_shared.py +0 -0
  174. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_rfcmx.py +0 -0
  175. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_sepomex_accent_search.py +0 -0
  176. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_sqlite_catalogs.py +0 -0
  177. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_tasa_o_cuota_complete.py +0 -0
  178. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_text_utils.py +0 -0
  179. {catalogmx-0.3.0 → catalogmx-0.4.0}/tests/test_text_utils_fallback.py +0 -0
  180. {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.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
- {"code": "625", "name": "Régimen de las Actividades Empresariales con ingresos a través de Plataformas Tecnológicas"},
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 today.year - self.fecha_nacimiento.year - (
170
- (today.month, today.day) < (self.fecha_nacimiento.month, self.fecha_nacimiento.day)
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.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.3.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