%global _empty_manifest_terminate_build 0 Name: python-aiositi-mex Version: 0.0.4 Release: 1 Summary: Cliente para enviar reportes a la CNBV. License: MIT License URL: https://github.com/cuenca-mx/siti-python Source0: https://mirrors.nju.edu.cn/pypi/web/packages/ae/60/3e1d4a6ba7cd01d50b4d0a52f4451a3afd7995f0a3b2d990d7760af840e6/aiositi-mex-0.0.4.tar.gz BuildArch: noarch Requires: python3-requests Requires: python3-aiohttp Requires: python3-pydantic Requires: python3-pandas %description # siti-python [![release](https://github.com/cuenca-mx/siti-python/actions/workflows/release.yml/badge.svg)](https://github.com/cuenca-mx/siti-python/actions/workflows/release.yml) [![test](https://github.com/cuenca-mx/siti-python/actions/workflows/test.yml/badge.svg)](https://github.com/cuenca-mx/siti-python/actions/workflows/test.yml) Cliente para enviar reportes a la CNBV por medio de la plataforma SITI Documentación: https://sitiapiqa.cnbv.gob.mx/devportal/apis/ La manera sugerida para llenar reportes es por medio de diccionarios con el formato del modelo: ## Desde diccionarios ```python from siti.resources.ifpe import Reporte111 dict_111 = { 'identificador_reporte': { 'inicio_periodo': dt.date(2019, 1, 1), 'fin_periodo': dt.date(2019, 1, 31), 'clave_institucion': '065000', 'reporte': '111', }, 'informacion_financiera': [ { 'concepto': '100000000000', 'moneda': '2', 'dato': 334422.0434, }, ] } r111 = Reporte111(**dict_111) In [1]: r111 Out[1]: Reporte111( folio=None, identificador_reporte=IdentificadorReporte( inicio_periodo=datetime.date(2019, 1, 1), fin_periodo=datetime.date(2019, 1, 31), clave_institucion='065000', reporte='111' ), informacion_financiera=[ InformacionFinanciera( concepto='100000000000', moneda='2', dato=334422.0434 ) ] ) ``` Donde r111 será el reporte construido con el modelo, y se realizarán las validaciones propias de ese reporte. ## Desde dataframe De igual manera se puede construir el objto con la utilización de un dataframe de Pandas con un formato que siga las columnas del modelo que se quiere construir. Para obtener las columnas del modelo se puede mandar a llamar el método `.columns()` ```python In [13]: Reporte111.columns() Out[13]: { 'inicio_periodo': str, 'fin_periodo': str, 'clave_institucion': str, 'reporte': str, 'concepto': str, 'moneda': str, 'dato': float } ``` Se puede construir un dataframe con esta información y posteriormente mandar a llamar el método .from_dataframe(name, df), dónde name es el nombre del archivo que tiene que cumplir con el formato `CLAVEINSTITUCION_REPORTE_FECHAINICIO_FECHAFINAL` ejemplo: `065014_2610_20210831_20210831` para obtener los datos del campo `identificador_reporte`. ```python import pandas as pd name = '065014_2610_20210831_20210831.csv' columns = Reporte111.columns() df = pd.read_csv(name, dtype=columns) r111 = Reporte111.from_dataframe(name, df) In [1]: r111 Out[1]: Reporte111( folio=None, identificador_reporte=IdentificadorReporte( inicio_periodo=datetime.date(2019, 1, 1), fin_periodo=datetime.date(2019, 1, 31), clave_institucion='065000', reporte='111' ), informacion_financiera=[ InformacionFinanciera( concepto='100000000000', moneda='2', dato=334422.0434 ) ] ) ``` ## Enviar Al mandar a llamar cualquiera de los métodos de enviar (`send`, `resend`, `update`), el cliente automáticamente convertirá el objeto al formato solicitado por la CNBV. Este formato se puede obtener llamando el método .dict(to_camel_case=True). > **Estos métodos regresarán un folio, el cual es importante almacenar para poder realizar el seguimiento del envío** ```python In [1]: r111.dict(to_camel_case=True) Out[1]: { 'identificadorReporte': { 'inicioPeriodo': '20190101', 'finPeriodo': '20190131', 'claveInstitucion': '065000', 'reporte': '111' }, 'informacionFinanciera': [ { 'concepto': '100000000000', 'moneda': '2', 'dato': 334422.0434 } ] } ``` %package -n python3-aiositi-mex Summary: Cliente para enviar reportes a la CNBV. Provides: python-aiositi-mex BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-aiositi-mex # siti-python [![release](https://github.com/cuenca-mx/siti-python/actions/workflows/release.yml/badge.svg)](https://github.com/cuenca-mx/siti-python/actions/workflows/release.yml) [![test](https://github.com/cuenca-mx/siti-python/actions/workflows/test.yml/badge.svg)](https://github.com/cuenca-mx/siti-python/actions/workflows/test.yml) Cliente para enviar reportes a la CNBV por medio de la plataforma SITI Documentación: https://sitiapiqa.cnbv.gob.mx/devportal/apis/ La manera sugerida para llenar reportes es por medio de diccionarios con el formato del modelo: ## Desde diccionarios ```python from siti.resources.ifpe import Reporte111 dict_111 = { 'identificador_reporte': { 'inicio_periodo': dt.date(2019, 1, 1), 'fin_periodo': dt.date(2019, 1, 31), 'clave_institucion': '065000', 'reporte': '111', }, 'informacion_financiera': [ { 'concepto': '100000000000', 'moneda': '2', 'dato': 334422.0434, }, ] } r111 = Reporte111(**dict_111) In [1]: r111 Out[1]: Reporte111( folio=None, identificador_reporte=IdentificadorReporte( inicio_periodo=datetime.date(2019, 1, 1), fin_periodo=datetime.date(2019, 1, 31), clave_institucion='065000', reporte='111' ), informacion_financiera=[ InformacionFinanciera( concepto='100000000000', moneda='2', dato=334422.0434 ) ] ) ``` Donde r111 será el reporte construido con el modelo, y se realizarán las validaciones propias de ese reporte. ## Desde dataframe De igual manera se puede construir el objto con la utilización de un dataframe de Pandas con un formato que siga las columnas del modelo que se quiere construir. Para obtener las columnas del modelo se puede mandar a llamar el método `.columns()` ```python In [13]: Reporte111.columns() Out[13]: { 'inicio_periodo': str, 'fin_periodo': str, 'clave_institucion': str, 'reporte': str, 'concepto': str, 'moneda': str, 'dato': float } ``` Se puede construir un dataframe con esta información y posteriormente mandar a llamar el método .from_dataframe(name, df), dónde name es el nombre del archivo que tiene que cumplir con el formato `CLAVEINSTITUCION_REPORTE_FECHAINICIO_FECHAFINAL` ejemplo: `065014_2610_20210831_20210831` para obtener los datos del campo `identificador_reporte`. ```python import pandas as pd name = '065014_2610_20210831_20210831.csv' columns = Reporte111.columns() df = pd.read_csv(name, dtype=columns) r111 = Reporte111.from_dataframe(name, df) In [1]: r111 Out[1]: Reporte111( folio=None, identificador_reporte=IdentificadorReporte( inicio_periodo=datetime.date(2019, 1, 1), fin_periodo=datetime.date(2019, 1, 31), clave_institucion='065000', reporte='111' ), informacion_financiera=[ InformacionFinanciera( concepto='100000000000', moneda='2', dato=334422.0434 ) ] ) ``` ## Enviar Al mandar a llamar cualquiera de los métodos de enviar (`send`, `resend`, `update`), el cliente automáticamente convertirá el objeto al formato solicitado por la CNBV. Este formato se puede obtener llamando el método .dict(to_camel_case=True). > **Estos métodos regresarán un folio, el cual es importante almacenar para poder realizar el seguimiento del envío** ```python In [1]: r111.dict(to_camel_case=True) Out[1]: { 'identificadorReporte': { 'inicioPeriodo': '20190101', 'finPeriodo': '20190131', 'claveInstitucion': '065000', 'reporte': '111' }, 'informacionFinanciera': [ { 'concepto': '100000000000', 'moneda': '2', 'dato': 334422.0434 } ] } ``` %package help Summary: Development documents and examples for aiositi-mex Provides: python3-aiositi-mex-doc %description help # siti-python [![release](https://github.com/cuenca-mx/siti-python/actions/workflows/release.yml/badge.svg)](https://github.com/cuenca-mx/siti-python/actions/workflows/release.yml) [![test](https://github.com/cuenca-mx/siti-python/actions/workflows/test.yml/badge.svg)](https://github.com/cuenca-mx/siti-python/actions/workflows/test.yml) Cliente para enviar reportes a la CNBV por medio de la plataforma SITI Documentación: https://sitiapiqa.cnbv.gob.mx/devportal/apis/ La manera sugerida para llenar reportes es por medio de diccionarios con el formato del modelo: ## Desde diccionarios ```python from siti.resources.ifpe import Reporte111 dict_111 = { 'identificador_reporte': { 'inicio_periodo': dt.date(2019, 1, 1), 'fin_periodo': dt.date(2019, 1, 31), 'clave_institucion': '065000', 'reporte': '111', }, 'informacion_financiera': [ { 'concepto': '100000000000', 'moneda': '2', 'dato': 334422.0434, }, ] } r111 = Reporte111(**dict_111) In [1]: r111 Out[1]: Reporte111( folio=None, identificador_reporte=IdentificadorReporte( inicio_periodo=datetime.date(2019, 1, 1), fin_periodo=datetime.date(2019, 1, 31), clave_institucion='065000', reporte='111' ), informacion_financiera=[ InformacionFinanciera( concepto='100000000000', moneda='2', dato=334422.0434 ) ] ) ``` Donde r111 será el reporte construido con el modelo, y se realizarán las validaciones propias de ese reporte. ## Desde dataframe De igual manera se puede construir el objto con la utilización de un dataframe de Pandas con un formato que siga las columnas del modelo que se quiere construir. Para obtener las columnas del modelo se puede mandar a llamar el método `.columns()` ```python In [13]: Reporte111.columns() Out[13]: { 'inicio_periodo': str, 'fin_periodo': str, 'clave_institucion': str, 'reporte': str, 'concepto': str, 'moneda': str, 'dato': float } ``` Se puede construir un dataframe con esta información y posteriormente mandar a llamar el método .from_dataframe(name, df), dónde name es el nombre del archivo que tiene que cumplir con el formato `CLAVEINSTITUCION_REPORTE_FECHAINICIO_FECHAFINAL` ejemplo: `065014_2610_20210831_20210831` para obtener los datos del campo `identificador_reporte`. ```python import pandas as pd name = '065014_2610_20210831_20210831.csv' columns = Reporte111.columns() df = pd.read_csv(name, dtype=columns) r111 = Reporte111.from_dataframe(name, df) In [1]: r111 Out[1]: Reporte111( folio=None, identificador_reporte=IdentificadorReporte( inicio_periodo=datetime.date(2019, 1, 1), fin_periodo=datetime.date(2019, 1, 31), clave_institucion='065000', reporte='111' ), informacion_financiera=[ InformacionFinanciera( concepto='100000000000', moneda='2', dato=334422.0434 ) ] ) ``` ## Enviar Al mandar a llamar cualquiera de los métodos de enviar (`send`, `resend`, `update`), el cliente automáticamente convertirá el objeto al formato solicitado por la CNBV. Este formato se puede obtener llamando el método .dict(to_camel_case=True). > **Estos métodos regresarán un folio, el cual es importante almacenar para poder realizar el seguimiento del envío** ```python In [1]: r111.dict(to_camel_case=True) Out[1]: { 'identificadorReporte': { 'inicioPeriodo': '20190101', 'finPeriodo': '20190131', 'claveInstitucion': '065000', 'reporte': '111' }, 'informacionFinanciera': [ { 'concepto': '100000000000', 'moneda': '2', 'dato': 334422.0434 } ] } ``` %prep %autosetup -n aiositi-mex-0.0.4 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-aiositi-mex -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Mon May 15 2023 Python_Bot - 0.0.4-1 - Package Spec generated