aiositi-mex


Nameaiositi-mex JSON
Version 0.0.4 PyPI version JSON
download
home_pagehttps://github.com/cuenca-mx/siti-python
SummaryCliente para enviar reportes a la CNBV.
upload_time2023-03-01 02:11:29
maintainer
docs_urlNone
authorCuenca
requires_python>=3.6
license
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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
        }
    ]
}
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/cuenca-mx/siti-python",
    "name": "aiositi-mex",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "",
    "author": "Cuenca",
    "author_email": "dev@cuenca.com",
    "download_url": "https://files.pythonhosted.org/packages/ae/60/3e1d4a6ba7cd01d50b4d0a52f4451a3afd7995f0a3b2d990d7760af840e6/aiositi-mex-0.0.4.tar.gz",
    "platform": null,
    "description": "# siti-python\n[![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)\n[![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)\n\nCliente para enviar reportes a la CNBV por medio de la plataforma SITI\nDocumentaci\u00f3n: https://sitiapiqa.cnbv.gob.mx/devportal/apis/\n\nLa manera sugerida para llenar reportes es por medio de diccionarios con el formato del modelo:\n\n## Desde diccionarios\n\n```python\nfrom siti.resources.ifpe import Reporte111\n\ndict_111 = {\n    'identificador_reporte': {\n        'inicio_periodo': dt.date(2019, 1, 1),\n        'fin_periodo': dt.date(2019, 1, 31),\n        'clave_institucion': '065000',\n        'reporte': '111',\n    },\n    'informacion_financiera': [\n        {\n            'concepto': '100000000000',\n            'moneda': '2',\n            'dato': 334422.0434,\n        },\n    ]\n}\n\nr111 = Reporte111(**dict_111)\n\nIn [1]: r111\nOut[1]: \n    Reporte111(\n        folio=None,\n        identificador_reporte=IdentificadorReporte(\n            inicio_periodo=datetime.date(2019, 1, 1),\n            fin_periodo=datetime.date(2019, 1, 31),\n            clave_institucion='065000',\n            reporte='111'\n        ),\n        informacion_financiera=[\n            InformacionFinanciera(\n                concepto='100000000000',\n                moneda='2',\n                dato=334422.0434\n            )\n        ]\n    )\n```\n\nDonde r111 ser\u00e1 el reporte construido con el modelo, y se realizar\u00e1n las validaciones propias de ese reporte.\n\n\n## Desde dataframe\nDe igual manera se puede construir el objto con la utilizaci\u00f3n de un dataframe de Pandas con un formato que siga las columnas del modelo que se quiere construir.\nPara obtener las columnas del modelo se puede mandar a llamar el m\u00e9todo `.columns()`\n\n```python\nIn [13]: Reporte111.columns()\nOut[13]: \n{\n    'inicio_periodo': str,\n    'fin_periodo': str,\n    'clave_institucion': str,\n    'reporte': str,\n    'concepto': str,\n    'moneda': str,\n    'dato': float\n}\n```\n\nSe puede construir un dataframe con esta informaci\u00f3n y posteriormente mandar a llamar el m\u00e9todo .from_dataframe(name, df), d\u00f3nde 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`.\n\n```python\nimport pandas as pd\n\nname = '065014_2610_20210831_20210831.csv'\ncolumns = Reporte111.columns()\ndf = pd.read_csv(name, dtype=columns)\nr111 = Reporte111.from_dataframe(name, df)\n\nIn [1]: r111\nOut[1]: \n    Reporte111(\n        folio=None,\n        identificador_reporte=IdentificadorReporte(\n            inicio_periodo=datetime.date(2019, 1, 1),\n            fin_periodo=datetime.date(2019, 1, 31),\n            clave_institucion='065000',\n            reporte='111'\n        ),\n        informacion_financiera=[\n            InformacionFinanciera(\n                concepto='100000000000',\n                moneda='2',\n                dato=334422.0434\n            )\n        ]\n    )\n```\n\n\n## Enviar\n\nAl mandar a llamar cualquiera de los m\u00e9todos de enviar (`send`, `resend`, `update`), el cliente autom\u00e1ticamente convertir\u00e1 el objeto al formato solicitado por la CNBV. Este formato se puede obtener llamando el m\u00e9todo .dict(to_camel_case=True).\n\n\n> **Estos m\u00e9todos regresar\u00e1n un folio, el cual es importante almacenar para poder realizar el seguimiento del env\u00edo**\n\n```python\nIn [1]: r111.dict(to_camel_case=True)\nOut[1]: \n{\n    'identificadorReporte': {\n        'inicioPeriodo': '20190101',\n        'finPeriodo': '20190131',\n        'claveInstitucion': '065000',\n        'reporte': '111'\n    },\n    'informacionFinanciera': [\n        {\n            'concepto': '100000000000',\n            'moneda': '2',\n            'dato': 334422.0434\n        }\n    ]\n}\n```\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Cliente para enviar reportes a la CNBV.",
    "version": "0.0.4",
    "project_urls": {
        "Homepage": "https://github.com/cuenca-mx/siti-python"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e724657eec8b3b558495def57ce34a322cde77f93a568a02a27a9cf2b688a53b",
                "md5": "43154ebe893e2a2556f51a30e147b957",
                "sha256": "c35f3f7aaa4104d7ab55192a9fdea34f078719c53c7c680a1083401593e972b7"
            },
            "downloads": -1,
            "filename": "aiositi_mex-0.0.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "43154ebe893e2a2556f51a30e147b957",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 32571,
            "upload_time": "2023-03-01T02:11:28",
            "upload_time_iso_8601": "2023-03-01T02:11:28.899703Z",
            "url": "https://files.pythonhosted.org/packages/e7/24/657eec8b3b558495def57ce34a322cde77f93a568a02a27a9cf2b688a53b/aiositi_mex-0.0.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ae603e1d4a6ba7cd01d50b4d0a52f4451a3afd7995f0a3b2d990d7760af840e6",
                "md5": "34576d5bafc9adbe5a576b50b9895a47",
                "sha256": "040f95276e2771d25b8be855d023293bc17894f5d302721e0c20594591a92afd"
            },
            "downloads": -1,
            "filename": "aiositi-mex-0.0.4.tar.gz",
            "has_sig": false,
            "md5_digest": "34576d5bafc9adbe5a576b50b9895a47",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 18739,
            "upload_time": "2023-03-01T02:11:29",
            "upload_time_iso_8601": "2023-03-01T02:11:29.987290Z",
            "url": "https://files.pythonhosted.org/packages/ae/60/3e1d4a6ba7cd01d50b4d0a52f4451a3afd7995f0a3b2d990d7760af840e6/aiositi-mex-0.0.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-03-01 02:11:29",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "cuenca-mx",
    "github_project": "siti-python",
    "github_not_found": true,
    "lcname": "aiositi-mex"
}
        
Elapsed time: 0.07497s