correpy


Namecorrepy JSON
Version 0.4.1 PyPI version JSON
download
home_pagehttps://github.com/thiagosalvatore/correpy
SummaryCorrePy (Corretagem Python) é uma lib responsável por parsear notas de corretagem no padrão B3 (Sinacor) e retornar os dados no formato JSON.
upload_time2024-04-26 20:12:30
maintainerNone
docs_urlNone
authorThiago Salvatore
requires_python<4.0,>=3.8
licenseApache-2.0
keywords corretagem parser b3 nota de corretagem imposto de renda
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![thiagosalvatore](https://circleci.com/gh/thiagosalvatore/correpy.svg?style=shield)](https://app.circleci.com/pipelines/github/thiagosalvatore/correpy?branch=main&filter=all)
[![PyPI version](https://badge.fury.io/py/correpy.svg)](https://badge.fury.io/py/correpy)
# CorrePy
CorrePy (Corretagem Python) é uma lib responsável por parsear notas de corretagem no padrão B3 (Sinacor) e retornar os
dados em um formato estruturado para que você possa utilizar em suas aplicações.

## Instalação
Este projeto suporta qualquer versão do python >= 3.8

`pip install correpy`

## Como usar
Depois de instalada, sua utilização é extremamente simples. Primeiramente vamos precisar abrir o PDF com a nota de corretagem.
Se você estiver utilizando essa lib em uma API, você precisará transformar seu arquivo PDF em BytesIO.

```python
import io

with open('path to your pdf file', 'rb') as f:
    content = io.BytesIO(f.read())
    content.seek(0)
```

O conteúdo da sua nota de corretagem estará na variável `content` e é ela quem iremos usar para inicializar a nossa lib.
Se a sua nota de corretagem possuir senha, você precisará informar também, caso contrário o parser nâo irá funcionar.

```python
import io

from correpy.parsers.brokerage_notes.b3_parser.b3_parser import B3Parser

with open('path to your pdf file', 'rb') as f:
    content = io.BytesIO(f.read())
    content.seek(0)
    
    brokerage_notes = B3Parser(brokerage_note=content, password="password").parse_brokerage_note()
```

### Resultado
Depois de efetuar o parser da sua nota de corretagem, `correpy` irá retornar uma lista no formato abaixo. Os valores de cada campo serão explicados em seguida.

```python
[
    BrokerageNote(
        reference_date=date(2022, 5, 2),
        settlement_fee=Decimal("7.92"),
        registration_fee=Decimal("0"),
        term_fee=Decimal("0"),
        ana_fee=Decimal("0"),
        emoluments=Decimal("1.58"),
        operational_fee=Decimal("0"),
        execution=Decimal("0"),
        custody_fee=Decimal("0"),
        taxes=Decimal("0"),
        others=Decimal("0"),
        transactions=[
            Transaction(
                transaction_type=TransactionType.SELL,
                amount=54,
                unit_price=Decimal('24.99'),
                security=Security(
                    name='BBSEGURIDADE ON NM'
                )
            ),
            Transaction(
                transaction_type=TransactionType.BUY,
                amount=200,
                unit_price=Decimal('17.29'),
                security=Security(
                    name='MOVIDA ON NM'
                )
            )
        ]
    )
]
```

### Descrição das entidades
Abaixo você pode encontrar a descrição de cada um dos campos retornados. 

#### Brokerage Note

| BrokerageNote         |                                     |
|-----------------------|-------------------------------------|
| reference_id          | Número da nota                      |
| reference_date        | Data do pregão                      |
| settlement_fee        | Taxa de liquidação                  |
| registration_fee      | Taxa de registro                    |
| term_fee              | Taxa de termo/opções                |
| ana_fee               | Taxa A.N.A                          |
| emoluments            | Emolumentos                         |
| operational_fee       | Taxa Operacional                    |
| execution             | Execução                            |
| custody_fee           | Taxa de custódia                    |
| source_withheld_taxes | IRRF                    |
| taxes                 | Impostos                            |
| others                | Outros                              |
| transactions          | Lista de [transações](#transaction) |

#### Transaction

| Transaction          |                                                            |
|----------------------|------------------------------------------------------------|
| transaction_type     | Enum com o tipo de transação (BUY - compra, SELL - venda)  |
| amount               | Quantidade                                                 |
| unit_price           | Valor unitário                                             |
| security             | Objeto [Security](#security) representando um título       |
| source_witheld_taxes | IRRF retido na fonte (0.005% sobre o valor total de venda) |

#### Security
| Security |                         |
|----------|-------------------------|
| name     | Especificação do título |


## Como contribuir
Estamos utilizando poetry para gerenciar o projeto e suas dependencias.

Este projeto ainda está em evolução e qualquer PR é bem vindo. Algumas ferramentas estão sendo utilizadas para melhorar a qualidade do código:

1. MyPy para checagem estática de tipos
2. PyLint
3. Black
4. isort

Para verificar se o seu código continua de acordo com os critérios definidos, basta rodar `./pipeline/lint.sh`.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/thiagosalvatore/correpy",
    "name": "correpy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.8",
    "maintainer_email": null,
    "keywords": "corretagem, parser, b3, nota de corretagem, imposto de renda",
    "author": "Thiago  Salvatore",
    "author_email": "thiago.salvatore@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/d1/4a/639b23fcc56ac1c7b25b1dc0c107608d4c35d2e79401006d4d11d367c18a/correpy-0.4.1.tar.gz",
    "platform": null,
    "description": "[![thiagosalvatore](https://circleci.com/gh/thiagosalvatore/correpy.svg?style=shield)](https://app.circleci.com/pipelines/github/thiagosalvatore/correpy?branch=main&filter=all)\n[![PyPI version](https://badge.fury.io/py/correpy.svg)](https://badge.fury.io/py/correpy)\n# CorrePy\nCorrePy (Corretagem Python) \u00e9 uma lib respons\u00e1vel por parsear notas de corretagem no padr\u00e3o B3 (Sinacor) e retornar os\ndados em um formato estruturado para que voc\u00ea possa utilizar em suas aplica\u00e7\u00f5es.\n\n## Instala\u00e7\u00e3o\nEste projeto suporta qualquer vers\u00e3o do python >= 3.8\n\n`pip install correpy`\n\n## Como usar\nDepois de instalada, sua utiliza\u00e7\u00e3o \u00e9 extremamente simples. Primeiramente vamos precisar abrir o PDF com a nota de corretagem.\nSe voc\u00ea estiver utilizando essa lib em uma API, voc\u00ea precisar\u00e1 transformar seu arquivo PDF em BytesIO.\n\n```python\nimport io\n\nwith open('path to your pdf file', 'rb') as f:\n    content = io.BytesIO(f.read())\n    content.seek(0)\n```\n\nO conte\u00fado da sua nota de corretagem estar\u00e1 na vari\u00e1vel `content` e \u00e9 ela quem iremos usar para inicializar a nossa lib.\nSe a sua nota de corretagem possuir senha, voc\u00ea precisar\u00e1 informar tamb\u00e9m, caso contr\u00e1rio o parser n\u00e2o ir\u00e1 funcionar.\n\n```python\nimport io\n\nfrom correpy.parsers.brokerage_notes.b3_parser.b3_parser import B3Parser\n\nwith open('path to your pdf file', 'rb') as f:\n    content = io.BytesIO(f.read())\n    content.seek(0)\n    \n    brokerage_notes = B3Parser(brokerage_note=content, password=\"password\").parse_brokerage_note()\n```\n\n### Resultado\nDepois de efetuar o parser da sua nota de corretagem, `correpy` ir\u00e1 retornar uma lista no formato abaixo. Os valores de cada campo ser\u00e3o explicados em seguida.\n\n```python\n[\n    BrokerageNote(\n        reference_date=date(2022, 5, 2),\n        settlement_fee=Decimal(\"7.92\"),\n        registration_fee=Decimal(\"0\"),\n        term_fee=Decimal(\"0\"),\n        ana_fee=Decimal(\"0\"),\n        emoluments=Decimal(\"1.58\"),\n        operational_fee=Decimal(\"0\"),\n        execution=Decimal(\"0\"),\n        custody_fee=Decimal(\"0\"),\n        taxes=Decimal(\"0\"),\n        others=Decimal(\"0\"),\n        transactions=[\n            Transaction(\n                transaction_type=TransactionType.SELL,\n                amount=54,\n                unit_price=Decimal('24.99'),\n                security=Security(\n                    name='BBSEGURIDADE ON NM'\n                )\n            ),\n            Transaction(\n                transaction_type=TransactionType.BUY,\n                amount=200,\n                unit_price=Decimal('17.29'),\n                security=Security(\n                    name='MOVIDA ON NM'\n                )\n            )\n        ]\n    )\n]\n```\n\n### Descri\u00e7\u00e3o das entidades\nAbaixo voc\u00ea pode encontrar a descri\u00e7\u00e3o de cada um dos campos retornados. \n\n#### Brokerage Note\n\n| BrokerageNote         |                                     |\n|-----------------------|-------------------------------------|\n| reference_id          | N\u00famero da nota                      |\n| reference_date        | Data do preg\u00e3o                      |\n| settlement_fee        | Taxa de liquida\u00e7\u00e3o                  |\n| registration_fee      | Taxa de registro                    |\n| term_fee              | Taxa de termo/op\u00e7\u00f5es                |\n| ana_fee               | Taxa A.N.A                          |\n| emoluments            | Emolumentos                         |\n| operational_fee       | Taxa Operacional                    |\n| execution             | Execu\u00e7\u00e3o                            |\n| custody_fee           | Taxa de cust\u00f3dia                    |\n| source_withheld_taxes | IRRF                    |\n| taxes                 | Impostos                            |\n| others                | Outros                              |\n| transactions          | Lista de [transa\u00e7\u00f5es](#transaction) |\n\n#### Transaction\n\n| Transaction          |                                                            |\n|----------------------|------------------------------------------------------------|\n| transaction_type     | Enum com o tipo de transa\u00e7\u00e3o (BUY - compra, SELL - venda)  |\n| amount               | Quantidade                                                 |\n| unit_price           | Valor unit\u00e1rio                                             |\n| security             | Objeto [Security](#security) representando um t\u00edtulo       |\n| source_witheld_taxes | IRRF retido na fonte (0.005% sobre o valor total de venda) |\n\n#### Security\n| Security |                         |\n|----------|-------------------------|\n| name     | Especifica\u00e7\u00e3o do t\u00edtulo |\n\n\n## Como contribuir\nEstamos utilizando poetry para gerenciar o projeto e suas dependencias.\n\nEste projeto ainda est\u00e1 em evolu\u00e7\u00e3o e qualquer PR \u00e9 bem vindo. Algumas ferramentas est\u00e3o sendo utilizadas para melhorar a qualidade do c\u00f3digo:\n\n1. MyPy para checagem est\u00e1tica de tipos\n2. PyLint\n3. Black\n4. isort\n\nPara verificar se o seu c\u00f3digo continua de acordo com os crit\u00e9rios definidos, basta rodar `./pipeline/lint.sh`.\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "CorrePy (Corretagem Python) \u00e9 uma lib respons\u00e1vel por parsear notas de corretagem no padr\u00e3o B3 (Sinacor) e retornar os dados no formato JSON.",
    "version": "0.4.1",
    "project_urls": {
        "Homepage": "https://github.com/thiagosalvatore/correpy",
        "Repository": "https://github.com/thiagosalvatore/correpy"
    },
    "split_keywords": [
        "corretagem",
        " parser",
        " b3",
        " nota de corretagem",
        " imposto de renda"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "29a4c2f7be73264722c4d30eed7ef003a026613dec0c9453188d4f274910d116",
                "md5": "fcc480b702fb513423e114127afacd64",
                "sha256": "545b674b491cf684a0be0f59570397ded6d0d76a584744145b0ef7a8c51c4884"
            },
            "downloads": -1,
            "filename": "correpy-0.4.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "fcc480b702fb513423e114127afacd64",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.8",
            "size": 23028,
            "upload_time": "2024-04-26T20:12:28",
            "upload_time_iso_8601": "2024-04-26T20:12:28.545296Z",
            "url": "https://files.pythonhosted.org/packages/29/a4/c2f7be73264722c4d30eed7ef003a026613dec0c9453188d4f274910d116/correpy-0.4.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d14a639b23fcc56ac1c7b25b1dc0c107608d4c35d2e79401006d4d11d367c18a",
                "md5": "ad11ba761a932fe79b1f995d6d8ee385",
                "sha256": "89217a0b0c3e4b3838caddd75cfdfcf99e6dac2808b3b01939e8fc0f22bb7179"
            },
            "downloads": -1,
            "filename": "correpy-0.4.1.tar.gz",
            "has_sig": false,
            "md5_digest": "ad11ba761a932fe79b1f995d6d8ee385",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.8",
            "size": 15733,
            "upload_time": "2024-04-26T20:12:30",
            "upload_time_iso_8601": "2024-04-26T20:12:30.306459Z",
            "url": "https://files.pythonhosted.org/packages/d1/4a/639b23fcc56ac1c7b25b1dc0c107608d4c35d2e79401006d4d11d367c18a/correpy-0.4.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-26 20:12:30",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "thiagosalvatore",
    "github_project": "correpy",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "circle": true,
    "lcname": "correpy"
}
        
Elapsed time: 0.24467s