diff options
Diffstat (limited to 'python-aiositi-mex.spec')
-rw-r--r-- | python-aiositi-mex.spec | 466 |
1 files changed, 466 insertions, 0 deletions
diff --git a/python-aiositi-mex.spec b/python-aiositi-mex.spec new file mode 100644 index 0000000..f2a95a3 --- /dev/null +++ b/python-aiositi-mex.spec @@ -0,0 +1,466 @@ +%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 +[](https://github.com/cuenca-mx/siti-python/actions/workflows/release.yml) +[](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 +[](https://github.com/cuenca-mx/siti-python/actions/workflows/release.yml) +[](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 +[](https://github.com/cuenca-mx/siti-python/actions/workflows/release.yml) +[](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 <Python_Bot@openeuler.org> - 0.0.4-1 +- Package Spec generated |