Skip to main content

siti-python

release test

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

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()

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.

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

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
        }
    ]
}

Metadata

Release files for aiositi-mex 0.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aiositi-mex 0.0.4
File Size Uploaded
aiositi-mex-0.0.4.tar.gz 18.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aiositi-mex 0.0.4
File Interpreter ABI Platform
aiositi_mex-0.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 51.3 kB

Release files / aiositi-mex-0.0.4.tar.gz

Download URL aiositi-mex-0.0.4.tar.gz
Size 18.7 kB
Tags Source
SHA-256 checksum
How to use checksums
040f95276e2771d25b8be855d023293bc17894f5d302721e0c20594591a92afd
BLAKE2b-256 checksum
How to use checksums
ae603e1d4a6ba7cd01d50b4d0a52f4451a3afd7995f0a3b2d990d7760af840e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release files / aiositi_mex-0.0.4-py3-none-any.whl

Download URL aiositi_mex-0.0.4-py3-none-any.whl
Size 32.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c35f3f7aaa4104d7ab55192a9fdea34f078719c53c7c680a1083401593e972b7
BLAKE2b-256 checksum
How to use checksums
e724657eec8b3b558495def57ce34a322cde77f93a568a02a27a9cf2b688a53b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release history Release notifications | RSS feed

This release

0.0.4 This release

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page