Skip to content

API reference

Auto-generated from the docstrings. Every public function has a Portuguese name and an English alias; both are listed below, grouped by API.

Utilities

tesouropy_clear_cache

tesouropy_clear_cache() -> None

Clear the tesouropy in-memory cache.

Removes all cached API responses stored during the current session. This applies to every API covered by the package (SICONFI, CUSTOS, SADIPEM, Transferencias, SIORG, SIOPE): they share a single in-memory store.

Source code in src/tesouropy/_core.py
def tesouropy_clear_cache() -> None:
    """Clear the tesouropy in-memory cache.

    Removes **all** cached API responses stored during the current session.
    This applies to every API covered by the package (SICONFI, CUSTOS,
    SADIPEM, Transferencias, SIORG, SIOPE): they share a single in-memory store.
    """
    _CACHE.clear()
    log.info("Cache cleared (all APIs).")

set_verbose

set_verbose(value: bool) -> None

Set the package-wide default for the verbose argument.

Equivalent to options(tesouror.verbose = TRUE) in the R package.

Source code in src/tesouropy/_core.py
def set_verbose(value: bool) -> None:
    """Set the package-wide default for the ``verbose`` argument.

    Equivalent to ``options(tesouror.verbose = TRUE)`` in the R package.
    """
    global _VERBOSE_DEFAULT
    _VERBOSE_DEFAULT = bool(value)

TesouroError

Bases: RuntimeError

Raised for actionable errors talking to a Treasury API.

Source code in src/tesouropy/_core.py
class TesouroError(RuntimeError):
    """Raised for actionable errors talking to a Treasury API."""

SICONFI

siconfi

SICONFI API functions (RREO, RGF, DCA, MSC, entities).

API docs: https://apidatalake.tesouro.gov.br/docs/siconfi/

Every public function has a Portuguese name (PT parameters) and an English alias that maps the English parameter names onto the PT ones.

get_entes

get_entes(
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

Get the list of Brazilian government entities (states, municipalities, DF).

Returns a polars DataFrame with columns cod_ibge, ente, capital, regiao, uf, esfera, an_exercicio, populacao, co_cnpj.

Source code in src/tesouropy/siconfi.py
def get_entes(use_cache=True, verbose=False, page_size=None, max_rows=INF):
    """Get the list of Brazilian government entities (states, municipalities, DF).

    Returns a polars DataFrame with columns ``cod_ibge``, ``ente``, ``capital``,
    ``regiao``, ``uf``, ``esfera``, ``an_exercicio``, ``populacao``, ``co_cnpj``.
    """
    return siconfi_fetch_all(
        "/entes", use_cache=use_cache, verbose=verbose, page_size=page_size,
        max_rows=max_rows,
    )

get_entities

get_entities(
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

English alias for :func:get_entes.

Source code in src/tesouropy/siconfi.py
def get_entities(use_cache=True, verbose=False, page_size=None, max_rows=INF):
    """English alias for :func:`get_entes`."""
    return get_entes(use_cache=use_cache, verbose=verbose, page_size=page_size,
                     max_rows=max_rows)

get_anexos

get_anexos(
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

Get the report appendix reference table grouped by government sphere.

Source code in src/tesouropy/siconfi.py
def get_anexos(use_cache=True, verbose=False, page_size=None, max_rows=INF):
    """Get the report appendix reference table grouped by government sphere."""
    return siconfi_fetch_all(
        "/anexos-relatorios", use_cache=use_cache, verbose=verbose,
        page_size=page_size, max_rows=max_rows,
    )

get_annexes

get_annexes(
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

English alias for :func:get_anexos.

Source code in src/tesouropy/siconfi.py
def get_annexes(use_cache=True, verbose=False, page_size=None, max_rows=INF):
    """English alias for :func:`get_anexos`."""
    return get_anexos(use_cache=use_cache, verbose=verbose, page_size=page_size,
                      max_rows=max_rows)

get_dca

get_dca(
    an_exercicio,
    id_ente,
    no_anexo=None,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

Get Annual Accounts Declaration (DCA) data for an entity and fiscal year.

Parameters:

Name Type Description Default
an_exercicio int

Fiscal year (e.g. 2022). Required.

required
id_ente int

IBGE code of the entity. Required.

required
no_anexo str

Appendix name filter (e.g. "DCA-Anexo I-AB").

None
Source code in src/tesouropy/siconfi.py
def get_dca(an_exercicio, id_ente, no_anexo=None, use_cache=True, verbose=False,
            page_size=None, max_rows=INF):
    """Get Annual Accounts Declaration (DCA) data for an entity and fiscal year.

    Parameters
    ----------
    an_exercicio : int
        Fiscal year (e.g. ``2022``). Required.
    id_ente : int
        IBGE code of the entity. Required.
    no_anexo : str, optional
        Appendix name filter (e.g. ``"DCA-Anexo I-AB"``).
    """
    check_required(an_exercicio=an_exercicio, id_ente=id_ente)
    params = {
        "an_exercicio": an_exercicio,
        "id_ente": id_ente,
        "no_anexo": no_anexo,
    }
    return siconfi_fetch_all("/dca", params, use_cache=use_cache,
                             verbose=verbose, page_size=page_size,
                             max_rows=max_rows)

get_annual_accounts

get_annual_accounts(
    fiscal_year,
    entity_id,
    appendix=None,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

English alias for :func:get_dca.

Source code in src/tesouropy/siconfi.py
def get_annual_accounts(fiscal_year, entity_id, appendix=None, use_cache=True,
                        verbose=False, page_size=None, max_rows=INF):
    """English alias for :func:`get_dca`."""
    check_required(fiscal_year=fiscal_year, entity_id=entity_id)
    return get_dca(an_exercicio=fiscal_year, id_ente=entity_id,
                   no_anexo=appendix, use_cache=use_cache, verbose=verbose,
                   page_size=page_size, max_rows=max_rows)

get_dca_for_state

get_dca_for_state(
    state_uf,
    an_exercicio,
    no_anexo=None,
    include_capital=True,
    on_error="warn",
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

Get DCA data for every municipality of a Brazilian state (fault tolerant).

Failed calls are recorded on result.failed.

Source code in src/tesouropy/siconfi.py
def get_dca_for_state(state_uf, an_exercicio, no_anexo=None,
                      include_capital=True, on_error="warn", use_cache=True,
                      verbose=False, page_size=None, max_rows=INF):
    """Get DCA data for every municipality of a Brazilian state (fault tolerant).

    Failed calls are recorded on ``result.failed``.
    """
    check_required(state_uf=state_uf, an_exercicio=an_exercicio)
    munis = resolve_state_munis(state_uf, include_capital=include_capital,
                                use_cache=use_cache, verbose=verbose)
    param_list = [
        {
            "an_exercicio": an_exercicio,
            "id_ente": id_ente,
            "no_anexo": no_anexo,
            "use_cache": use_cache,
            "verbose": verbose,
            "page_size": page_size,
            "max_rows": max_rows,
        }
        for id_ente in munis["cod_ibge"].to_list()
    ]
    return tnr_loop(get_dca, param_list, id_key="id_ente", on_error=on_error,
                    progress_label=f"DCA {state_uf}")

get_annual_accounts_for_state

get_annual_accounts_for_state(
    state_uf,
    fiscal_year,
    appendix=None,
    include_capital=True,
    on_error="warn",
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

English alias for :func:get_dca_for_state.

Source code in src/tesouropy/siconfi.py
def get_annual_accounts_for_state(state_uf, fiscal_year, appendix=None,
                                  include_capital=True, on_error="warn",
                                  use_cache=True, verbose=False, page_size=None,
                                  max_rows=INF):
    """English alias for :func:`get_dca_for_state`."""
    check_required(state_uf=state_uf, fiscal_year=fiscal_year)
    return get_dca_for_state(state_uf=state_uf, an_exercicio=fiscal_year,
                             no_anexo=appendix, include_capital=include_capital,
                             on_error=on_error, use_cache=use_cache,
                             verbose=verbose, page_size=page_size,
                             max_rows=max_rows)

get_extrato

get_extrato(
    id_ente,
    an_referencia,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

Get the delivery status extract for an entity and reference year.

Source code in src/tesouropy/siconfi.py
def get_extrato(id_ente, an_referencia, use_cache=True, verbose=False,
                page_size=None, max_rows=INF):
    """Get the delivery status extract for an entity and reference year."""
    check_required(id_ente=id_ente, an_referencia=an_referencia)
    params = {"id_ente": id_ente, "an_referencia": an_referencia}
    return siconfi_fetch_all("/extrato_entregas", params, use_cache=use_cache,
                             verbose=verbose, page_size=page_size,
                             max_rows=max_rows)

get_delivery_status

get_delivery_status(
    entity_id,
    year,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

English alias for :func:get_extrato.

Source code in src/tesouropy/siconfi.py
def get_delivery_status(entity_id, year, use_cache=True, verbose=False,
                        page_size=None, max_rows=INF):
    """English alias for :func:`get_extrato`."""
    check_required(entity_id=entity_id, year=year)
    return get_extrato(id_ente=entity_id, an_referencia=year,
                       use_cache=use_cache, verbose=verbose, page_size=page_size,
                       max_rows=max_rows)

get_rreo

get_rreo(
    an_exercicio,
    nr_periodo,
    co_tipo_demonstrativo,
    no_anexo,
    id_ente,
    co_esfera=None,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

Get Budget Execution Summary Report (RREO) data.

co_esfera is optional: some entities (e.g. the Federal District constitutional fund) only return data when the sphere filter is omitted, so leave it None if a sphere-filtered call comes back empty.

Source code in src/tesouropy/siconfi.py
def get_rreo(an_exercicio, nr_periodo, co_tipo_demonstrativo, no_anexo, id_ente,
             co_esfera=None, use_cache=True, verbose=False, page_size=None,
             max_rows=INF):
    """Get Budget Execution Summary Report (RREO) data.

    ``co_esfera`` is optional: some entities (e.g. the Federal District
    constitutional fund) only return data when the sphere filter is omitted, so
    leave it ``None`` if a sphere-filtered call comes back empty.
    """
    check_required(an_exercicio=an_exercicio, nr_periodo=nr_periodo,
                   co_tipo_demonstrativo=co_tipo_demonstrativo,
                   no_anexo=no_anexo, id_ente=id_ente)
    params = {
        "an_exercicio": an_exercicio,
        "nr_periodo": nr_periodo,
        "co_tipo_demonstrativo": co_tipo_demonstrativo,
        "no_anexo": no_anexo,
        "co_esfera": co_esfera,
        "id_ente": id_ente,
    }
    return siconfi_fetch_all("/rreo", params, use_cache=use_cache,
                             verbose=verbose, page_size=page_size,
                             max_rows=max_rows)

get_budget_report

get_budget_report(
    fiscal_year,
    period,
    report_type,
    appendix,
    entity_id,
    sphere=None,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

English alias for :func:get_rreo.

Source code in src/tesouropy/siconfi.py
def get_budget_report(fiscal_year, period, report_type, appendix, entity_id,
                      sphere=None, use_cache=True, verbose=False, page_size=None,
                      max_rows=INF):
    """English alias for :func:`get_rreo`."""
    check_required(fiscal_year=fiscal_year, period=period,
                   report_type=report_type, appendix=appendix,
                   entity_id=entity_id)
    return get_rreo(an_exercicio=fiscal_year, nr_periodo=period,
                    co_tipo_demonstrativo=report_type, no_anexo=appendix,
                    id_ente=entity_id, co_esfera=sphere, use_cache=use_cache,
                    verbose=verbose, page_size=page_size, max_rows=max_rows)

get_rreo_for_state

get_rreo_for_state(
    state_uf,
    an_exercicio,
    nr_periodo,
    co_tipo_demonstrativo,
    no_anexo,
    include_capital=True,
    on_error="warn",
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

Get RREO data for every municipality of a Brazilian state (fault tolerant).

Failed calls are recorded on result.failed.

Source code in src/tesouropy/siconfi.py
def get_rreo_for_state(state_uf, an_exercicio, nr_periodo,
                       co_tipo_demonstrativo, no_anexo, include_capital=True,
                       on_error="warn", use_cache=True, verbose=False,
                       page_size=None, max_rows=INF):
    """Get RREO data for every municipality of a Brazilian state (fault tolerant).

    Failed calls are recorded on ``result.failed``.
    """
    check_required(state_uf=state_uf, an_exercicio=an_exercicio,
                   nr_periodo=nr_periodo,
                   co_tipo_demonstrativo=co_tipo_demonstrativo,
                   no_anexo=no_anexo)
    munis = resolve_state_munis(state_uf, include_capital=include_capital,
                                use_cache=use_cache, verbose=verbose)
    param_list = [
        {
            "an_exercicio": an_exercicio,
            "nr_periodo": nr_periodo,
            "co_tipo_demonstrativo": co_tipo_demonstrativo,
            "no_anexo": no_anexo,
            "co_esfera": "M",
            "id_ente": id_ente,
            "use_cache": use_cache,
            "verbose": verbose,
            "page_size": page_size,
            "max_rows": max_rows,
        }
        for id_ente in munis["cod_ibge"].to_list()
    ]
    return tnr_loop(get_rreo, param_list, id_key="id_ente", on_error=on_error,
                    progress_label=f"RREO {state_uf}")

get_budget_report_for_state

get_budget_report_for_state(
    state_uf,
    fiscal_year,
    period,
    report_type,
    appendix,
    include_capital=True,
    on_error="warn",
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

English alias for :func:get_rreo_for_state.

Source code in src/tesouropy/siconfi.py
def get_budget_report_for_state(state_uf, fiscal_year, period, report_type,
                                appendix, include_capital=True, on_error="warn",
                                use_cache=True, verbose=False, page_size=None,
                                max_rows=INF):
    """English alias for :func:`get_rreo_for_state`."""
    check_required(state_uf=state_uf, fiscal_year=fiscal_year, period=period,
                   report_type=report_type, appendix=appendix)
    return get_rreo_for_state(state_uf=state_uf, an_exercicio=fiscal_year,
                              nr_periodo=period,
                              co_tipo_demonstrativo=report_type,
                              no_anexo=appendix,
                              include_capital=include_capital, on_error=on_error,
                              use_cache=use_cache, verbose=verbose,
                              page_size=page_size, max_rows=max_rows)

get_rgf

get_rgf(
    an_exercicio,
    in_periodicidade,
    nr_periodo,
    co_tipo_demonstrativo,
    no_anexo,
    co_esfera,
    co_poder,
    id_ente,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

Get Fiscal Management Report (RGF) data.

in_periodicidade is "Q" (four-monthly) or "S" (semi-annual); co_poder is the branch: "E" exec, "L" legislative, "J" judiciary, "M" public ministry, "D" public defender.

Source code in src/tesouropy/siconfi.py
def get_rgf(an_exercicio, in_periodicidade, nr_periodo, co_tipo_demonstrativo,
            no_anexo, co_esfera, co_poder, id_ente, use_cache=True,
            verbose=False, page_size=None, max_rows=INF):
    """Get Fiscal Management Report (RGF) data.

    ``in_periodicidade`` is ``"Q"`` (four-monthly) or ``"S"`` (semi-annual);
    ``co_poder`` is the branch: ``"E"`` exec, ``"L"`` legislative, ``"J"``
    judiciary, ``"M"`` public ministry, ``"D"`` public defender.
    """
    check_required(an_exercicio=an_exercicio, in_periodicidade=in_periodicidade,
                   nr_periodo=nr_periodo,
                   co_tipo_demonstrativo=co_tipo_demonstrativo,
                   no_anexo=no_anexo, co_esfera=co_esfera, co_poder=co_poder,
                   id_ente=id_ente)
    params = {
        "an_exercicio": an_exercicio,
        "in_periodicidade": in_periodicidade,
        "nr_periodo": nr_periodo,
        "co_tipo_demonstrativo": co_tipo_demonstrativo,
        "no_anexo": no_anexo,
        "co_esfera": co_esfera,
        "co_poder": co_poder,
        "id_ente": id_ente,
    }
    return siconfi_fetch_all("/rgf", params, use_cache=use_cache,
                             verbose=verbose, page_size=page_size,
                             max_rows=max_rows)

get_fiscal_report

get_fiscal_report(
    fiscal_year,
    periodicity,
    period,
    report_type,
    appendix,
    sphere,
    branch,
    entity_id,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

English alias for :func:get_rgf.

Source code in src/tesouropy/siconfi.py
def get_fiscal_report(fiscal_year, periodicity, period, report_type, appendix,
                      sphere, branch, entity_id, use_cache=True, verbose=False,
                      page_size=None, max_rows=INF):
    """English alias for :func:`get_rgf`."""
    check_required(fiscal_year=fiscal_year, periodicity=periodicity,
                   period=period, report_type=report_type, appendix=appendix,
                   sphere=sphere, branch=branch, entity_id=entity_id)
    return get_rgf(an_exercicio=fiscal_year, in_periodicidade=periodicity,
                   nr_periodo=period, co_tipo_demonstrativo=report_type,
                   no_anexo=appendix, co_esfera=sphere, co_poder=branch,
                   id_ente=entity_id, use_cache=use_cache, verbose=verbose,
                   page_size=page_size, max_rows=max_rows)

get_rgf_for_state

get_rgf_for_state(
    state_uf,
    an_exercicio,
    in_periodicidade,
    nr_periodo,
    co_tipo_demonstrativo,
    no_anexo,
    co_poder,
    include_capital=True,
    on_error="warn",
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

Get RGF data for every municipality of a Brazilian state (fault tolerant).

Source code in src/tesouropy/siconfi.py
def get_rgf_for_state(state_uf, an_exercicio, in_periodicidade, nr_periodo,
                      co_tipo_demonstrativo, no_anexo, co_poder,
                      include_capital=True, on_error="warn", use_cache=True,
                      verbose=False, page_size=None, max_rows=INF):
    """Get RGF data for every municipality of a Brazilian state (fault tolerant)."""
    check_required(state_uf=state_uf, an_exercicio=an_exercicio,
                   in_periodicidade=in_periodicidade, nr_periodo=nr_periodo,
                   co_tipo_demonstrativo=co_tipo_demonstrativo,
                   no_anexo=no_anexo, co_poder=co_poder)
    munis = resolve_state_munis(state_uf, include_capital=include_capital,
                                use_cache=use_cache, verbose=verbose)
    param_list = [
        {
            "an_exercicio": an_exercicio,
            "in_periodicidade": in_periodicidade,
            "nr_periodo": nr_periodo,
            "co_tipo_demonstrativo": co_tipo_demonstrativo,
            "no_anexo": no_anexo,
            "co_esfera": "M",
            "co_poder": co_poder,
            "id_ente": id_ente,
            "use_cache": use_cache,
            "verbose": verbose,
            "page_size": page_size,
            "max_rows": max_rows,
        }
        for id_ente in munis["cod_ibge"].to_list()
    ]
    return tnr_loop(get_rgf, param_list, id_key="id_ente", on_error=on_error,
                    progress_label=f"RGF {state_uf}")

get_fiscal_report_for_state

get_fiscal_report_for_state(
    state_uf,
    fiscal_year,
    periodicity,
    period,
    report_type,
    appendix,
    branch,
    include_capital=True,
    on_error="warn",
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

English alias for :func:get_rgf_for_state.

Source code in src/tesouropy/siconfi.py
def get_fiscal_report_for_state(state_uf, fiscal_year, periodicity, period,
                                report_type, appendix, branch,
                                include_capital=True, on_error="warn",
                                use_cache=True, verbose=False, page_size=None,
                                max_rows=INF):
    """English alias for :func:`get_rgf_for_state`."""
    check_required(state_uf=state_uf, fiscal_year=fiscal_year,
                   periodicity=periodicity, period=period,
                   report_type=report_type, appendix=appendix, branch=branch)
    return get_rgf_for_state(state_uf=state_uf, an_exercicio=fiscal_year,
                             in_periodicidade=periodicity, nr_periodo=period,
                             co_tipo_demonstrativo=report_type,
                             no_anexo=appendix, co_poder=branch,
                             include_capital=include_capital, on_error=on_error,
                             use_cache=use_cache, verbose=verbose,
                             page_size=page_size, max_rows=max_rows)

get_msc_controle

get_msc_controle(
    id_ente,
    an_referencia,
    me_referencia,
    co_tipo_matriz,
    classe_conta,
    id_tv,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

Get MSC control accounts data (classes 7 and 8).

co_tipo_matriz is "MSCC" (monthly aggregate) or "MSCE" (annual closing); id_tv is "beginning_balance", "ending_balance" or "period_change".

Source code in src/tesouropy/siconfi.py
def get_msc_controle(id_ente, an_referencia, me_referencia, co_tipo_matriz,
                     classe_conta, id_tv, use_cache=True, verbose=False,
                     page_size=None, max_rows=INF):
    """Get MSC control accounts data (classes 7 and 8).

    ``co_tipo_matriz`` is ``"MSCC"`` (monthly aggregate) or ``"MSCE"`` (annual
    closing); ``id_tv`` is ``"beginning_balance"``, ``"ending_balance"`` or
    ``"period_change"``.
    """
    return _get_msc("/msc_controle", id_ente, an_referencia, me_referencia,
                    co_tipo_matriz, classe_conta, id_tv, use_cache, verbose,
                    page_size, max_rows)

get_msc_control

get_msc_control(
    entity_id,
    year,
    month,
    matrix_type,
    account_class,
    value_type,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

English alias for :func:get_msc_controle.

Source code in src/tesouropy/siconfi.py
def get_msc_control(entity_id, year, month, matrix_type, account_class,
                    value_type, use_cache=True, verbose=False, page_size=None,
                    max_rows=INF):
    """English alias for :func:`get_msc_controle`."""
    return get_msc_controle(id_ente=entity_id, an_referencia=year,
                            me_referencia=month, co_tipo_matriz=matrix_type,
                            classe_conta=account_class, id_tv=value_type,
                            use_cache=use_cache, verbose=verbose,
                            page_size=page_size, max_rows=max_rows)

get_msc_orcamentaria

get_msc_orcamentaria(
    id_ente,
    an_referencia,
    me_referencia,
    co_tipo_matriz,
    classe_conta,
    id_tv,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

Get MSC budgetary accounts data (classes 5 and 6).

Source code in src/tesouropy/siconfi.py
def get_msc_orcamentaria(id_ente, an_referencia, me_referencia, co_tipo_matriz,
                         classe_conta, id_tv, use_cache=True, verbose=False,
                         page_size=None, max_rows=INF):
    """Get MSC budgetary accounts data (classes 5 and 6)."""
    return _get_msc("/msc_orcamentaria", id_ente, an_referencia, me_referencia,
                    co_tipo_matriz, classe_conta, id_tv, use_cache, verbose,
                    page_size, max_rows)

get_msc_budget

get_msc_budget(
    entity_id,
    year,
    month,
    matrix_type,
    account_class,
    value_type,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

English alias for :func:get_msc_orcamentaria.

Source code in src/tesouropy/siconfi.py
def get_msc_budget(entity_id, year, month, matrix_type, account_class,
                   value_type, use_cache=True, verbose=False, page_size=None,
                   max_rows=INF):
    """English alias for :func:`get_msc_orcamentaria`."""
    return get_msc_orcamentaria(id_ente=entity_id, an_referencia=year,
                                me_referencia=month, co_tipo_matriz=matrix_type,
                                classe_conta=account_class, id_tv=value_type,
                                use_cache=use_cache, verbose=verbose,
                                page_size=page_size, max_rows=max_rows)

get_msc_patrimonial

get_msc_patrimonial(
    id_ente,
    an_referencia,
    me_referencia,
    co_tipo_matriz,
    classe_conta,
    id_tv,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

Get MSC equity/asset accounts data (classes 1 to 4).

Source code in src/tesouropy/siconfi.py
def get_msc_patrimonial(id_ente, an_referencia, me_referencia, co_tipo_matriz,
                        classe_conta, id_tv, use_cache=True, verbose=False,
                        page_size=None, max_rows=INF):
    """Get MSC equity/asset accounts data (classes 1 to 4)."""
    return _get_msc("/msc_patrimonial", id_ente, an_referencia, me_referencia,
                    co_tipo_matriz, classe_conta, id_tv, use_cache, verbose,
                    page_size, max_rows)

get_msc_equity

get_msc_equity(
    entity_id,
    year,
    month,
    matrix_type,
    account_class,
    value_type,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

English alias for :func:get_msc_patrimonial.

Source code in src/tesouropy/siconfi.py
def get_msc_equity(entity_id, year, month, matrix_type, account_class,
                   value_type, use_cache=True, verbose=False, page_size=None,
                   max_rows=INF):
    """English alias for :func:`get_msc_patrimonial`."""
    return get_msc_patrimonial(id_ente=entity_id, an_referencia=year,
                               me_referencia=month, co_tipo_matriz=matrix_type,
                               classe_conta=account_class, id_tv=value_type,
                               use_cache=use_cache, verbose=verbose,
                               page_size=page_size, max_rows=max_rows)

CUSTOS

custos

CUSTOS API functions (federal government cost data).

API docs: https://apidatalake.tesouro.gov.br/docs/custos/

PERFORMANCE WARNING: the CUSTOS API is slow (server default 250 rows/page, frequent HTTP 504 timeouts). Unfiltered queries return hundreds of thousands of rows. Always filter by organizacao_n1 + organizacao_n2, ano + mes, natureza_juridica, and/or cap with max_rows.

SIORG codes are auto-padded: pass 244 or "244"; both become "000244". Use :func:tesouropy.get_siorg_orgaos / :func:tesouropy.get_siorg_estrutura to look up codes.

get_custos_pessoal_ativo

get_custos_pessoal_ativo(
    ano=None,
    mes=None,
    natureza_juridica=None,
    organizacao_n1=None,
    organizacao_n2=None,
    organizacao_n3=None,
    use_cache=True,
    verbose=False,
    page_size=500,
    max_rows=INF,
)

Get active staff cost data. All parameters are optional filters.

natureza_juridica: 1 Public Company, 2 Public Foundation, 3 Direct Administration, 4 Autarchy, 6 Mixed Economy Company. organizacao_n* are SIORG codes (auto zero-padded to 6 digits).

Source code in src/tesouropy/custos.py
def get_custos_pessoal_ativo(ano=None, mes=None, natureza_juridica=None,
                             organizacao_n1=None, organizacao_n2=None,
                             organizacao_n3=None, use_cache=True, verbose=False,
                             page_size=500, max_rows=INF):
    """Get active staff cost data. All parameters are optional filters.

    ``natureza_juridica``: ``1`` Public Company, ``2`` Public Foundation,
    ``3`` Direct Administration, ``4`` Autarchy, ``6`` Mixed Economy Company.
    ``organizacao_n*`` are SIORG codes (auto zero-padded to 6 digits).
    """
    return _custos("/pessoal_ativo", ano, mes, natureza_juridica,
                   organizacao_n1, organizacao_n2, organizacao_n3, use_cache,
                   verbose, page_size, max_rows)

get_costs_active_staff

get_costs_active_staff(
    year=None,
    month=None,
    legal_nature=None,
    org_level1=None,
    org_level2=None,
    org_level3=None,
    use_cache=True,
    verbose=False,
    page_size=500,
    max_rows=INF,
)

English alias for :func:get_custos_pessoal_ativo.

Source code in src/tesouropy/custos.py
def get_costs_active_staff(year=None, month=None, legal_nature=None,
                           org_level1=None, org_level2=None, org_level3=None,
                           use_cache=True, verbose=False, page_size=500,
                           max_rows=INF):
    """English alias for :func:`get_custos_pessoal_ativo`."""
    return get_custos_pessoal_ativo(ano=year, mes=month,
                                    natureza_juridica=legal_nature,
                                    organizacao_n1=org_level1,
                                    organizacao_n2=org_level2,
                                    organizacao_n3=org_level3,
                                    use_cache=use_cache, verbose=verbose,
                                    page_size=page_size, max_rows=max_rows)

get_custos_pessoal_inativo

get_custos_pessoal_inativo(
    ano=None,
    mes=None,
    natureza_juridica=None,
    organizacao_n1=None,
    organizacao_n2=None,
    organizacao_n3=None,
    use_cache=True,
    verbose=False,
    page_size=500,
    max_rows=INF,
)

Get retired (inactive) staff cost data. All parameters are optional.

Source code in src/tesouropy/custos.py
def get_custos_pessoal_inativo(ano=None, mes=None, natureza_juridica=None,
                               organizacao_n1=None, organizacao_n2=None,
                               organizacao_n3=None, use_cache=True,
                               verbose=False, page_size=500, max_rows=INF):
    """Get retired (inactive) staff cost data. All parameters are optional."""
    return _custos("/pessoal_inativo", ano, mes, natureza_juridica,
                   organizacao_n1, organizacao_n2, organizacao_n3, use_cache,
                   verbose, page_size, max_rows)

get_costs_retired_staff

get_costs_retired_staff(
    year=None,
    month=None,
    legal_nature=None,
    org_level1=None,
    org_level2=None,
    org_level3=None,
    use_cache=True,
    verbose=False,
    page_size=500,
    max_rows=INF,
)

English alias for :func:get_custos_pessoal_inativo.

Source code in src/tesouropy/custos.py
def get_costs_retired_staff(year=None, month=None, legal_nature=None,
                            org_level1=None, org_level2=None, org_level3=None,
                            use_cache=True, verbose=False, page_size=500,
                            max_rows=INF):
    """English alias for :func:`get_custos_pessoal_inativo`."""
    return get_custos_pessoal_inativo(ano=year, mes=month,
                                      natureza_juridica=legal_nature,
                                      organizacao_n1=org_level1,
                                      organizacao_n2=org_level2,
                                      organizacao_n3=org_level3,
                                      use_cache=use_cache, verbose=verbose,
                                      page_size=page_size, max_rows=max_rows)

get_custos_pensionistas

get_custos_pensionistas(
    ano=None,
    mes=None,
    natureza_juridica=None,
    organizacao_n1=None,
    organizacao_n2=None,
    organizacao_n3=None,
    use_cache=True,
    verbose=False,
    page_size=500,
    max_rows=INF,
)

Get pensioner cost data. All parameters are optional filters.

Source code in src/tesouropy/custos.py
def get_custos_pensionistas(ano=None, mes=None, natureza_juridica=None,
                            organizacao_n1=None, organizacao_n2=None,
                            organizacao_n3=None, use_cache=True, verbose=False,
                            page_size=500, max_rows=INF):
    """Get pensioner cost data. All parameters are optional filters."""
    return _custos("/pensionistas", ano, mes, natureza_juridica, organizacao_n1,
                   organizacao_n2, organizacao_n3, use_cache, verbose,
                   page_size, max_rows)

get_costs_pensioners

get_costs_pensioners(
    year=None,
    month=None,
    legal_nature=None,
    org_level1=None,
    org_level2=None,
    org_level3=None,
    use_cache=True,
    verbose=False,
    page_size=500,
    max_rows=INF,
)

English alias for :func:get_custos_pensionistas.

Source code in src/tesouropy/custos.py
def get_costs_pensioners(year=None, month=None, legal_nature=None,
                         org_level1=None, org_level2=None, org_level3=None,
                         use_cache=True, verbose=False, page_size=500,
                         max_rows=INF):
    """English alias for :func:`get_custos_pensionistas`."""
    return get_custos_pensionistas(ano=year, mes=month,
                                   natureza_juridica=legal_nature,
                                   organizacao_n1=org_level1,
                                   organizacao_n2=org_level2,
                                   organizacao_n3=org_level3,
                                   use_cache=use_cache, verbose=verbose,
                                   page_size=page_size, max_rows=max_rows)

get_custos_demais

get_custos_demais(
    ano=None,
    mes=None,
    natureza_juridica=None,
    organizacao_n1=None,
    organizacao_n2=None,
    organizacao_n3=None,
    use_cache=True,
    verbose=False,
    page_size=500,
    max_rows=INF,
)

Get other (non-personnel) cost data. All parameters are optional.

Source code in src/tesouropy/custos.py
def get_custos_demais(ano=None, mes=None, natureza_juridica=None,
                      organizacao_n1=None, organizacao_n2=None,
                      organizacao_n3=None, use_cache=True, verbose=False,
                      page_size=500, max_rows=INF):
    """Get other (non-personnel) cost data. All parameters are optional."""
    return _custos("/demais", ano, mes, natureza_juridica, organizacao_n1,
                   organizacao_n2, organizacao_n3, use_cache, verbose,
                   page_size, max_rows)

get_costs_other

get_costs_other(
    year=None,
    month=None,
    legal_nature=None,
    org_level1=None,
    org_level2=None,
    org_level3=None,
    use_cache=True,
    verbose=False,
    page_size=500,
    max_rows=INF,
)

English alias for :func:get_custos_demais.

Source code in src/tesouropy/custos.py
def get_costs_other(year=None, month=None, legal_nature=None, org_level1=None,
                    org_level2=None, org_level3=None, use_cache=True,
                    verbose=False, page_size=500, max_rows=INF):
    """English alias for :func:`get_custos_demais`."""
    return get_custos_demais(ano=year, mes=month, natureza_juridica=legal_nature,
                             organizacao_n1=org_level1, organizacao_n2=org_level2,
                             organizacao_n3=org_level3, use_cache=use_cache,
                             verbose=verbose, page_size=page_size,
                             max_rows=max_rows)

get_custos_depreciacao

get_custos_depreciacao(
    ano=None,
    mes=None,
    natureza_juridica=None,
    organizacao_n1=None,
    organizacao_n2=None,
    organizacao_n3=None,
    use_cache=True,
    verbose=False,
    page_size=500,
    max_rows=INF,
)

Get depreciation cost data. All parameters are optional filters.

Source code in src/tesouropy/custos.py
def get_custos_depreciacao(ano=None, mes=None, natureza_juridica=None,
                           organizacao_n1=None, organizacao_n2=None,
                           organizacao_n3=None, use_cache=True, verbose=False,
                           page_size=500, max_rows=INF):
    """Get depreciation cost data. All parameters are optional filters."""
    return _custos("/depreciacao", ano, mes, natureza_juridica, organizacao_n1,
                   organizacao_n2, organizacao_n3, use_cache, verbose,
                   page_size, max_rows)

get_costs_depreciation

get_costs_depreciation(
    year=None,
    month=None,
    legal_nature=None,
    org_level1=None,
    org_level2=None,
    org_level3=None,
    use_cache=True,
    verbose=False,
    page_size=500,
    max_rows=INF,
)

English alias for :func:get_custos_depreciacao.

Source code in src/tesouropy/custos.py
def get_costs_depreciation(year=None, month=None, legal_nature=None,
                           org_level1=None, org_level2=None, org_level3=None,
                           use_cache=True, verbose=False, page_size=500,
                           max_rows=INF):
    """English alias for :func:`get_custos_depreciacao`."""
    return get_custos_depreciacao(ano=year, mes=month,
                                  natureza_juridica=legal_nature,
                                  organizacao_n1=org_level1,
                                  organizacao_n2=org_level2,
                                  organizacao_n3=org_level3, use_cache=use_cache,
                                  verbose=verbose, page_size=page_size,
                                  max_rows=max_rows)

get_custos_transferencias

get_custos_transferencias(
    ano=None,
    mes=None,
    natureza_juridica=None,
    organizacao_n1=None,
    organizacao_n2=None,
    organizacao_n3=None,
    use_cache=True,
    verbose=False,
    page_size=500,
    max_rows=INF,
)

Get transfer cost data. All parameters are optional filters.

Source code in src/tesouropy/custos.py
def get_custos_transferencias(ano=None, mes=None, natureza_juridica=None,
                              organizacao_n1=None, organizacao_n2=None,
                              organizacao_n3=None, use_cache=True, verbose=False,
                              page_size=500, max_rows=INF):
    """Get transfer cost data. All parameters are optional filters."""
    return _custos("/transferencias", ano, mes, natureza_juridica,
                   organizacao_n1, organizacao_n2, organizacao_n3, use_cache,
                   verbose, page_size, max_rows)

get_costs_transfers

get_costs_transfers(
    year=None,
    month=None,
    legal_nature=None,
    org_level1=None,
    org_level2=None,
    org_level3=None,
    use_cache=True,
    verbose=False,
    page_size=500,
    max_rows=INF,
)

English alias for :func:get_custos_transferencias.

Source code in src/tesouropy/custos.py
def get_costs_transfers(year=None, month=None, legal_nature=None,
                        org_level1=None, org_level2=None, org_level3=None,
                        use_cache=True, verbose=False, page_size=500,
                        max_rows=INF):
    """English alias for :func:`get_custos_transferencias`."""
    return get_custos_transferencias(ano=year, mes=month,
                                     natureza_juridica=legal_nature,
                                     organizacao_n1=org_level1,
                                     organizacao_n2=org_level2,
                                     organizacao_n3=org_level3,
                                     use_cache=use_cache, verbose=verbose,
                                     page_size=page_size, max_rows=max_rows)

SADIPEM

sadipem

SADIPEM API functions (public debt and credit operations).

API docs: https://apidatalake.tesouro.gov.br/docs/sadipem/

Typical workflow: 1. Search PVLs with :func:get_pvl / :func:get_debt_requests. 2. Pick an id_pleito from the results. 3. Use that id_pleito in the detail functions below.

get_pvl

get_pvl(
    uf=None,
    tipo_interessado=None,
    id_ente=None,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

Get public debt verification requests (PVL).

Use the resulting id_pleito column to query the detail functions (:func:get_pvl_tramitacao, :func:get_opc_cronograma_liberacoes, ...).

Source code in src/tesouropy/sadipem.py
def get_pvl(uf=None, tipo_interessado=None, id_ente=None, use_cache=True,
            verbose=False, page_size=None, max_rows=INF):
    """Get public debt verification requests (PVL).

    Use the resulting ``id_pleito`` column to query the detail functions
    (:func:`get_pvl_tramitacao`, :func:`get_opc_cronograma_liberacoes`, ...).
    """
    params = {"uf": uf, "tipo_interessado": tipo_interessado, "id_ente": id_ente}
    return sadipem_fetch_all("/pvl", params, use_cache=use_cache,
                             verbose=verbose, page_size=page_size,
                             max_rows=max_rows)

get_debt_requests

get_debt_requests(
    state=None,
    entity_type=None,
    entity_id=None,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

English alias for :func:get_pvl.

Source code in src/tesouropy/sadipem.py
def get_debt_requests(state=None, entity_type=None, entity_id=None,
                      use_cache=True, verbose=False, page_size=None,
                      max_rows=INF):
    """English alias for :func:`get_pvl`."""
    return get_pvl(uf=state, tipo_interessado=entity_type, id_ente=entity_id,
                   use_cache=use_cache, verbose=verbose, page_size=page_size,
                   max_rows=max_rows)

get_pvl_tramitacao

get_pvl_tramitacao(
    id_pleito,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

Get PVL processing status for approved non-credit operations.

Only returns data for PVLs with status "Deferido"; otherwise an empty DataFrame is returned.

Source code in src/tesouropy/sadipem.py
def get_pvl_tramitacao(id_pleito, use_cache=True, verbose=False, page_size=None,
                       max_rows=INF):
    """Get PVL processing status for approved non-credit operations.

    Only returns data for PVLs with status ``"Deferido"``; otherwise an empty
    DataFrame is returned.
    """
    check_required(id_pleito=id_pleito)
    return sadipem_fetch_all("/opnc-pvl-tramitacao-deferido",
                             {"id_pleito": id_pleito}, use_cache=use_cache,
                             verbose=verbose, page_size=page_size,
                             max_rows=max_rows)

get_pvl_status

get_pvl_status(
    request_id,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

English alias for :func:get_pvl_tramitacao.

Source code in src/tesouropy/sadipem.py
def get_pvl_status(request_id, use_cache=True, verbose=False, page_size=None,
                   max_rows=INF):
    """English alias for :func:`get_pvl_tramitacao`."""
    check_required(request_id=request_id)
    return get_pvl_tramitacao(id_pleito=request_id, use_cache=use_cache,
                              verbose=verbose, page_size=page_size,
                              max_rows=max_rows)

get_opc_cronograma_liberacoes

get_opc_cronograma_liberacoes(
    id_pleito,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

Get the credit operation release schedule for a PVL request.

Source code in src/tesouropy/sadipem.py
def get_opc_cronograma_liberacoes(id_pleito, use_cache=True, verbose=False,
                                  page_size=None, max_rows=INF):
    """Get the credit operation release schedule for a PVL request."""
    check_required(id_pleito=id_pleito)
    return sadipem_fetch_all("/opc-cronograma-liberacoes",
                             {"id_pleito": id_pleito}, use_cache=use_cache,
                             verbose=verbose, page_size=page_size,
                             max_rows=max_rows)

get_credit_release_schedule

get_credit_release_schedule(
    request_id,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

English alias for :func:get_opc_cronograma_liberacoes.

Source code in src/tesouropy/sadipem.py
def get_credit_release_schedule(request_id, use_cache=True, verbose=False,
                                page_size=None, max_rows=INF):
    """English alias for :func:`get_opc_cronograma_liberacoes`."""
    check_required(request_id=request_id)
    return get_opc_cronograma_liberacoes(id_pleito=request_id,
                                         use_cache=use_cache, verbose=verbose,
                                         page_size=page_size, max_rows=max_rows)

get_opc_cronograma_pagamentos

get_opc_cronograma_pagamentos(
    id_pleito,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

Get the credit operation payment schedule for a PVL request.

Source code in src/tesouropy/sadipem.py
def get_opc_cronograma_pagamentos(id_pleito, use_cache=True, verbose=False,
                                  page_size=None, max_rows=INF):
    """Get the credit operation payment schedule for a PVL request."""
    check_required(id_pleito=id_pleito)
    return sadipem_fetch_all("/opc-cronograma-pagamentos",
                             {"id_pleito": id_pleito}, use_cache=use_cache,
                             verbose=verbose, page_size=page_size,
                             max_rows=max_rows)

get_credit_payment_schedule

get_credit_payment_schedule(
    request_id,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

English alias for :func:get_opc_cronograma_pagamentos.

Source code in src/tesouropy/sadipem.py
def get_credit_payment_schedule(request_id, use_cache=True, verbose=False,
                                page_size=None, max_rows=INF):
    """English alias for :func:`get_opc_cronograma_pagamentos`."""
    check_required(request_id=request_id)
    return get_opc_cronograma_pagamentos(id_pleito=request_id,
                                         use_cache=use_cache, verbose=verbose,
                                         page_size=page_size, max_rows=max_rows)

get_opc_taxa_cambio

get_opc_taxa_cambio(
    id_pleito,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

Get credit operation exchange rate data for a PVL request.

Source code in src/tesouropy/sadipem.py
def get_opc_taxa_cambio(id_pleito, use_cache=True, verbose=False, page_size=None,
                        max_rows=INF):
    """Get credit operation exchange rate data for a PVL request."""
    check_required(id_pleito=id_pleito)
    return sadipem_fetch_all("/opc-taxa-cambio", {"id_pleito": id_pleito},
                             use_cache=use_cache, verbose=verbose,
                             page_size=page_size, max_rows=max_rows)

get_credit_exchange_rate

get_credit_exchange_rate(
    request_id,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

English alias for :func:get_opc_taxa_cambio.

Source code in src/tesouropy/sadipem.py
def get_credit_exchange_rate(request_id, use_cache=True, verbose=False,
                             page_size=None, max_rows=INF):
    """English alias for :func:`get_opc_taxa_cambio`."""
    check_required(request_id=request_id)
    return get_opc_taxa_cambio(id_pleito=request_id, use_cache=use_cache,
                               verbose=verbose, page_size=page_size,
                               max_rows=max_rows)

get_res_cdp

get_res_cdp(
    id_pleito,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

Get the Debt Capacity Result (CDP) for a PVL request.

Source code in src/tesouropy/sadipem.py
def get_res_cdp(id_pleito, use_cache=True, verbose=False, page_size=None,
                max_rows=INF):
    """Get the Debt Capacity Result (CDP) for a PVL request."""
    check_required(id_pleito=id_pleito)
    return sadipem_fetch_all("/res-cdp", {"id_pleito": id_pleito},
                             use_cache=use_cache, verbose=verbose,
                             page_size=page_size, max_rows=max_rows)

get_debt_capacity

get_debt_capacity(
    request_id,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

English alias for :func:get_res_cdp.

Source code in src/tesouropy/sadipem.py
def get_debt_capacity(request_id, use_cache=True, verbose=False, page_size=None,
                      max_rows=INF):
    """English alias for :func:`get_res_cdp`."""
    check_required(request_id=request_id)
    return get_res_cdp(id_pleito=request_id, use_cache=use_cache,
                       verbose=verbose, page_size=page_size, max_rows=max_rows)

get_res_cronograma_pagamentos

get_res_cronograma_pagamentos(
    id_pleito,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

Get the debt payment schedule result for a PVL request.

Source code in src/tesouropy/sadipem.py
def get_res_cronograma_pagamentos(id_pleito, use_cache=True, verbose=False,
                                  page_size=None, max_rows=INF):
    """Get the debt payment schedule result for a PVL request."""
    check_required(id_pleito=id_pleito)
    return sadipem_fetch_all("/res-cronograma-pagamentos",
                             {"id_pleito": id_pleito}, use_cache=use_cache,
                             verbose=verbose, page_size=page_size,
                             max_rows=max_rows)

get_debt_payment_schedule

get_debt_payment_schedule(
    request_id,
    use_cache=True,
    verbose=False,
    page_size=None,
    max_rows=INF,
)

English alias for :func:get_res_cronograma_pagamentos.

Source code in src/tesouropy/sadipem.py
def get_debt_payment_schedule(request_id, use_cache=True, verbose=False,
                              page_size=None, max_rows=INF):
    """English alias for :func:`get_res_cronograma_pagamentos`."""
    check_required(request_id=request_id)
    return get_res_cronograma_pagamentos(id_pleito=request_id,
                                         use_cache=use_cache, verbose=verbose,
                                         page_size=page_size, max_rows=max_rows)

Transferências Constitucionais

transferencias

Transferencias Constitucionais API functions.

Docs: https://apiapex.tesouro.gov.br/aria/v1/transferencias_constitucionais/docs

IMPORTANT: all filter parameters use NUMERIC CODES from the Treasury's internal systems. These are NOT IBGE codes. Use the dictionary functions to look codes up: :func:get_tc_transferencias, :func:get_tc_estados, :func:get_tc_municipios.

Multi-value parameters accept either a colon-separated string ("1:2:3") or a Python sequence ([1, 2, 3]).

get_tc_transferencias

get_tc_transferencias(use_cache=True, verbose=False)

Get the transfer-type dictionary (codigo, nome).

These are internal Treasury codes, not IBGE codes.

Source code in src/tesouropy/transferencias.py
def get_tc_transferencias(use_cache=True, verbose=False):
    """Get the transfer-type dictionary (``codigo``, ``nome``).

    These are internal Treasury codes, not IBGE codes.
    """
    return transferencias_fetch("/transferencias", use_cache=use_cache,
                                verbose=verbose)

get_tc_transfer_types

get_tc_transfer_types(use_cache=True, verbose=False)

English alias for :func:get_tc_transferencias.

Source code in src/tesouropy/transferencias.py
def get_tc_transfer_types(use_cache=True, verbose=False):
    """English alias for :func:`get_tc_transferencias`."""
    return get_tc_transferencias(use_cache=use_cache, verbose=verbose)

get_tc_estados

get_tc_estados(use_cache=True, verbose=False)

Get the state dictionary (codigo, nome).

These are internal Treasury codes, not IBGE codes.

Source code in src/tesouropy/transferencias.py
def get_tc_estados(use_cache=True, verbose=False):
    """Get the state dictionary (``codigo``, ``nome``).

    These are internal Treasury codes, not IBGE codes.
    """
    return transferencias_fetch("/estados", use_cache=use_cache, verbose=verbose)

get_tc_states

get_tc_states(use_cache=True, verbose=False)

English alias for :func:get_tc_estados.

Source code in src/tesouropy/transferencias.py
def get_tc_states(use_cache=True, verbose=False):
    """English alias for :func:`get_tc_estados`."""
    return get_tc_estados(use_cache=use_cache, verbose=verbose)

get_tc_municipios

get_tc_municipios(
    p_nome=None, p_uf=None, use_cache=True, verbose=False
)

Get the municipality dictionary.

p_uf is a Treasury state code from :func:get_tc_estados (not a UF abbreviation or IBGE code).

Source code in src/tesouropy/transferencias.py
def get_tc_municipios(p_nome=None, p_uf=None, use_cache=True, verbose=False):
    """Get the municipality dictionary.

    ``p_uf`` is a Treasury state code from :func:`get_tc_estados` (not a UF
    abbreviation or IBGE code).
    """
    check_not_uf_abbrev(p_uf, "p_uf")
    params = {"p_nome": p_nome, "p_uf": p_uf}
    return transferencias_fetch("/municipios", params, use_cache=use_cache,
                                verbose=verbose)

get_tc_municipalities

get_tc_municipalities(
    name=None,
    state_code=None,
    use_cache=True,
    verbose=False,
)

English alias for :func:get_tc_municipios.

Source code in src/tesouropy/transferencias.py
def get_tc_municipalities(name=None, state_code=None, use_cache=True,
                          verbose=False):
    """English alias for :func:`get_tc_municipios`."""
    return get_tc_municipios(p_nome=name, p_uf=state_code, use_cache=use_cache,
                             verbose=verbose)

get_tc_por_estados

get_tc_por_estados(
    p_estado=None,
    p_ano=None,
    p_mes=None,
    p_transferencia=None,
    p_sn_detalhar=None,
    use_cache=True,
    verbose=False,
)

Get constitutional transfers aggregated by state.

Multi-value parameters accept a sequence or a colon-separated string.

Source code in src/tesouropy/transferencias.py
def get_tc_por_estados(p_estado=None, p_ano=None, p_mes=None,
                       p_transferencia=None, p_sn_detalhar=None, use_cache=True,
                       verbose=False):
    """Get constitutional transfers aggregated by state.

    Multi-value parameters accept a sequence or a colon-separated string.
    """
    check_not_uf_abbrev(p_estado, "p_estado")
    params = {
        "p_estado": collapse_param(p_estado),
        "p_ano": collapse_param(p_ano),
        "p_mes": collapse_param(p_mes),
        "p_transferencia": collapse_param(p_transferencia),
        "p_sn_detalhar": p_sn_detalhar,
    }
    return transferencias_fetch("/por_estados", params, use_cache=use_cache,
                                verbose=verbose)

get_tc_by_state

get_tc_by_state(
    state_code=None,
    year=None,
    month=None,
    transfer_type=None,
    detailed=None,
    use_cache=True,
    verbose=False,
)

English alias for :func:get_tc_por_estados.

Source code in src/tesouropy/transferencias.py
def get_tc_by_state(state_code=None, year=None, month=None, transfer_type=None,
                    detailed=None, use_cache=True, verbose=False):
    """English alias for :func:`get_tc_por_estados`."""
    return get_tc_por_estados(p_estado=state_code, p_ano=year, p_mes=month,
                              p_transferencia=transfer_type,
                              p_sn_detalhar=detailed, use_cache=use_cache,
                              verbose=verbose)

get_tc_por_estados_detalhe

get_tc_por_estados_detalhe(
    p_estado=None,
    p_ano=None,
    p_mes=None,
    p_transferencia=None,
    use_cache=True,
    verbose=False,
)

Get detailed constitutional transfers by state.

Source code in src/tesouropy/transferencias.py
def get_tc_por_estados_detalhe(p_estado=None, p_ano=None, p_mes=None,
                               p_transferencia=None, use_cache=True,
                               verbose=False):
    """Get detailed constitutional transfers by state."""
    check_not_uf_abbrev(p_estado, "p_estado")
    params = {
        "p_estado": collapse_param(p_estado),
        "p_ano": collapse_param(p_ano),
        "p_mes": collapse_param(p_mes),
        "p_transferencia": collapse_param(p_transferencia),
    }
    return transferencias_fetch("/por_estados_detalhe", params,
                                use_cache=use_cache, verbose=verbose)

get_tc_by_state_detail

get_tc_by_state_detail(
    state_code=None,
    year=None,
    month=None,
    transfer_type=None,
    use_cache=True,
    verbose=False,
)

English alias for :func:get_tc_por_estados_detalhe.

Source code in src/tesouropy/transferencias.py
def get_tc_by_state_detail(state_code=None, year=None, month=None,
                           transfer_type=None, use_cache=True, verbose=False):
    """English alias for :func:`get_tc_por_estados_detalhe`."""
    return get_tc_por_estados_detalhe(p_estado=state_code, p_ano=year,
                                      p_mes=month,
                                      p_transferencia=transfer_type,
                                      use_cache=use_cache, verbose=verbose)

get_tc_por_municipio

get_tc_por_municipio(
    p_estado=None,
    p_municipio=None,
    p_ano=None,
    p_mes=None,
    p_transferencia=None,
    p_sn_detalhar=None,
    use_cache=True,
    verbose=False,
)

Get constitutional transfers for municipalities within states.

Note: this endpoint expects UPPERCASE parameter names upstream; the conversion is handled internally.

Source code in src/tesouropy/transferencias.py
def get_tc_por_municipio(p_estado=None, p_municipio=None, p_ano=None, p_mes=None,
                         p_transferencia=None, p_sn_detalhar=None, use_cache=True,
                         verbose=False):
    """Get constitutional transfers for municipalities within states.

    Note: this endpoint expects UPPERCASE parameter names upstream; the
    conversion is handled internally.
    """
    check_not_uf_abbrev(p_estado, "p_estado")
    params = {
        "P_ESTADO": collapse_param(p_estado),
        "P_MUNICIPIOS": collapse_param(p_municipio),
        "P_ANO": collapse_param(p_ano),
        "P_MES": collapse_param(p_mes),
        "P_TRANSFERENCIA": collapse_param(p_transferencia),
        "P_SN_DETALHAR": p_sn_detalhar,
    }
    return transferencias_fetch("/por_estado_municipio", params,
                                use_cache=use_cache, verbose=verbose)

get_tc_by_municipality

get_tc_by_municipality(
    state_code=None,
    municipality=None,
    year=None,
    month=None,
    transfer_type=None,
    detailed=None,
    use_cache=True,
    verbose=False,
)

English alias for :func:get_tc_por_municipio.

Source code in src/tesouropy/transferencias.py
def get_tc_by_municipality(state_code=None, municipality=None, year=None,
                           month=None, transfer_type=None, detailed=None,
                           use_cache=True, verbose=False):
    """English alias for :func:`get_tc_por_municipio`."""
    return get_tc_por_municipio(p_estado=state_code, p_municipio=municipality,
                                p_ano=year, p_mes=month,
                                p_transferencia=transfer_type,
                                p_sn_detalhar=detailed, use_cache=use_cache,
                                verbose=verbose)

get_tc_por_municipio_detalhe

get_tc_por_municipio_detalhe(
    p_estado=None,
    p_municipio=None,
    p_ano=None,
    p_mes=None,
    p_transferencia=None,
    use_cache=True,
    verbose=False,
)

Get detailed constitutional transfers by municipality.

Source code in src/tesouropy/transferencias.py
def get_tc_por_municipio_detalhe(p_estado=None, p_municipio=None, p_ano=None,
                                 p_mes=None, p_transferencia=None, use_cache=True,
                                 verbose=False):
    """Get detailed constitutional transfers by municipality."""
    check_not_uf_abbrev(p_estado, "p_estado")
    params = {
        "P_ESTADO": collapse_param(p_estado),
        "P_MUNICIPIOS": collapse_param(p_municipio),
        "P_ANO": collapse_param(p_ano),
        "P_MES": collapse_param(p_mes),
        "P_TRANSFERENCIA": collapse_param(p_transferencia),
    }
    return transferencias_fetch("/por_estado_municipio_detalhe", params,
                                use_cache=use_cache, verbose=verbose)

get_tc_by_municipality_detail

get_tc_by_municipality_detail(
    state_code=None,
    municipality=None,
    year=None,
    month=None,
    transfer_type=None,
    use_cache=True,
    verbose=False,
)

English alias for :func:get_tc_por_municipio_detalhe.

Source code in src/tesouropy/transferencias.py
def get_tc_by_municipality_detail(state_code=None, municipality=None, year=None,
                                  month=None, transfer_type=None, use_cache=True,
                                  verbose=False):
    """English alias for :func:`get_tc_por_municipio_detalhe`."""
    return get_tc_por_municipio_detalhe(p_estado=state_code,
                                        p_municipio=municipality, p_ano=year,
                                        p_mes=month,
                                        p_transferencia=transfer_type,
                                        use_cache=use_cache, verbose=verbose)

SIORG

siorg

SIORG API functions (federal organizational structure).

API docs: https://api.siorg.economia.gov.br/ Base URL: https://estruturaorganizacional.dados.gov.br

SIORG codes are used as the organizacao_n1/n2/n3 parameters in the CUSTOS API. The API returns identifiers as URIs (e.g. https://.../id/unidade-organizacional/46); the numeric tail is extracted for ease of use.

get_siorg_orgaos

get_siorg_orgaos(
    codigo_poder=None,
    codigo_esfera=None,
    use_cache=True,
    verbose=False,
)

Get federal organizations (organs and entities) from SIORG.

codigo_poder: 1 Executive, 2 Legislative, 3 Judiciary. codigo_esfera: 1 Federal, 2 State/District, 3 Municipal. Use the returned codigo_unidade as organizacao_n1 in CUSTOS.

Source code in src/tesouropy/siorg.py
def get_siorg_orgaos(codigo_poder=None, codigo_esfera=None, use_cache=True,
                     verbose=False):
    """Get federal organizations (organs and entities) from SIORG.

    ``codigo_poder``: ``1`` Executive, ``2`` Legislative, ``3`` Judiciary.
    ``codigo_esfera``: ``1`` Federal, ``2`` State/District, ``3`` Municipal.
    Use the returned ``codigo_unidade`` as ``organizacao_n1`` in CUSTOS.
    """
    params = {"codigoPoder": codigo_poder, "codigoEsfera": codigo_esfera}
    body = _siorg_fetch("/doc/orgao-entidade/resumida", params,
                        use_cache=use_cache, verbose=verbose)
    result = _parse_unidades(body)
    if result.height == 0:
        log.warning("No organizations returned from SIORG.")
        return pl.DataFrame()
    log.info("Done: %s organizations.", result.height)
    return result

get_siorg_organizations

get_siorg_organizations(
    power_code=None,
    sphere_code=None,
    use_cache=True,
    verbose=False,
)

English alias for :func:get_siorg_orgaos.

Source code in src/tesouropy/siorg.py
def get_siorg_organizations(power_code=None, sphere_code=None, use_cache=True,
                            verbose=False):
    """English alias for :func:`get_siorg_orgaos`."""
    return get_siorg_orgaos(codigo_poder=power_code, codigo_esfera=sphere_code,
                            use_cache=use_cache, verbose=verbose)

get_siorg_estrutura

get_siorg_estrutura(
    codigo_unidade,
    vinculados=None,
    use_cache=True,
    verbose=False,
)

Get the organizational structure tree for a SIORG unit (flat DataFrame).

Use the returned codes as organizacao_n2/organizacao_n3 in CUSTOS. vinculados is "SIM" or "NAO".

Source code in src/tesouropy/siorg.py
def get_siorg_estrutura(codigo_unidade, vinculados=None, use_cache=True,
                        verbose=False):
    """Get the organizational structure tree for a SIORG unit (flat DataFrame).

    Use the returned codes as ``organizacao_n2``/``organizacao_n3`` in CUSTOS.
    ``vinculados`` is ``"SIM"`` or ``"NAO"``.
    """
    check_required(codigo_unidade=codigo_unidade)
    params = {
        "codigoUnidade": codigo_unidade,
        "retornarOrgaoEntidadeVinculados": vinculados,
    }
    body = _siorg_fetch("/doc/estrutura-organizacional/resumida", params,
                        use_cache=use_cache, verbose=verbose)
    result = _parse_unidades(body)
    if result.height == 0:
        log.warning("No structure returned for unit %s.", codigo_unidade)
        return pl.DataFrame()
    log.info("Done: %s units in structure.", result.height)
    return result

get_siorg_structure

get_siorg_structure(
    unit_code,
    include_linked=None,
    use_cache=True,
    verbose=False,
)

English alias for :func:get_siorg_estrutura.

Source code in src/tesouropy/siorg.py
def get_siorg_structure(unit_code, include_linked=None, use_cache=True,
                        verbose=False):
    """English alias for :func:`get_siorg_estrutura`."""
    check_required(unit_code=unit_code)
    return get_siorg_estrutura(codigo_unidade=unit_code,
                               vinculados=include_linked, use_cache=use_cache,
                               verbose=verbose)

get_siorg_unidade

get_siorg_unidade(
    codigo_unidade, use_cache=True, verbose=False
)

Get details of a single SIORG unit by its code (single-row DataFrame).

Source code in src/tesouropy/siorg.py
def get_siorg_unidade(codigo_unidade, use_cache=True, verbose=False):
    """Get details of a single SIORG unit by its code (single-row DataFrame)."""
    check_required(codigo_unidade=codigo_unidade)
    path = f"/doc/unidade-organizacional/{codigo_unidade}/resumida"
    body = _siorg_fetch(path, use_cache=use_cache, verbose=verbose)

    unidade = body.get("unidade") if isinstance(body, Mapping) else None
    if not unidade:
        log.warning("No data returned for unit %s.", codigo_unidade)
        return pl.DataFrame()

    rec = {
        k: (None if v is None else str(v))
        for k, v in unidade.items()
        if v is not None
    }
    for col in _URI_COLS:
        if col in rec:
            rec[col] = _extract_siorg_code(rec[col])
    result = pl.from_dicts([rec], infer_schema_length=None)
    result = clean_names(result)
    log.info("Done: retrieved unit %s.", codigo_unidade)
    return result

get_siorg_unit

get_siorg_unit(unit_code, use_cache=True, verbose=False)

English alias for :func:get_siorg_unidade.

Source code in src/tesouropy/siorg.py
def get_siorg_unit(unit_code, use_cache=True, verbose=False):
    """English alias for :func:`get_siorg_unidade`."""
    check_required(unit_code=unit_code)
    return get_siorg_unidade(codigo_unidade=unit_code, use_cache=use_cache,
                             verbose=verbose)

SIOPE

siope

SIOPE API functions (education spending data, FNDE/MEC).

API docs: https://www.fnde.gov.br/olinda-ide/servico/DADOS_ABERTOS_SIOPE/versao/v1/aplicacao Base URL: https://www.fnde.gov.br/olinda-ide/servico/DADOS_ABERTOS_SIOPE/versao/v1/odata

Most endpoints share three required parameters: ano / year, periodo / period (bimester 1-6) and uf / state. get_siope_remuneracao additionally requires mes / month.

All functions accept OData filter, orderby and select to narrow results server-side. Column names in those options must use the original API names (uppercase), e.g. filter="NOM_MUNI eq 'Recife'".

get_siope_dados_gerais

get_siope_dados_gerais(
    ano,
    periodo,
    uf,
    use_cache=True,
    verbose=False,
    page_size=1000,
    max_rows=INF,
    filter=None,
    orderby=None,
    select=None,
)

Get SIOPE general data (demographics, GDP, revenues, expenses, metadata).

Source code in src/tesouropy/siope.py
def get_siope_dados_gerais(ano, periodo, uf, use_cache=True, verbose=False,
                           page_size=1000, max_rows=INF, filter=None,
                           orderby=None, select=None):
    """Get SIOPE general data (demographics, GDP, revenues, expenses, metadata)."""
    return _siope("Dados_Gerais_Siope", ano, periodo, uf, use_cache, verbose,
                  page_size, max_rows, filter, orderby, select)

get_siope_general_data

get_siope_general_data(
    year,
    period,
    state,
    use_cache=True,
    verbose=False,
    page_size=1000,
    max_rows=INF,
    filter=None,
    orderby=None,
    select=None,
)

English alias for :func:get_siope_dados_gerais.

Source code in src/tesouropy/siope.py
def get_siope_general_data(year, period, state, use_cache=True, verbose=False,
                           page_size=1000, max_rows=INF, filter=None,
                           orderby=None, select=None):
    """English alias for :func:`get_siope_dados_gerais`."""
    return get_siope_dados_gerais(ano=year, periodo=period, uf=state,
                                  use_cache=use_cache, verbose=verbose,
                                  page_size=page_size, max_rows=max_rows,
                                  filter=filter, orderby=orderby, select=select)

get_siope_responsaveis

get_siope_responsaveis(
    ano,
    periodo,
    uf,
    use_cache=True,
    verbose=False,
    page_size=1000,
    max_rows=INF,
    filter=None,
    orderby=None,
    select=None,
)

Get SIOPE officials/responsible persons data.

Source code in src/tesouropy/siope.py
def get_siope_responsaveis(ano, periodo, uf, use_cache=True, verbose=False,
                           page_size=1000, max_rows=INF, filter=None,
                           orderby=None, select=None):
    """Get SIOPE officials/responsible persons data."""
    return _siope("Dados_Gerais_Siope_Dados_Responsaveis", ano, periodo, uf,
                  use_cache, verbose, page_size, max_rows, filter, orderby,
                  select)

get_siope_officials

get_siope_officials(
    year,
    period,
    state,
    use_cache=True,
    verbose=False,
    page_size=1000,
    max_rows=INF,
    filter=None,
    orderby=None,
    select=None,
)

English alias for :func:get_siope_responsaveis.

Source code in src/tesouropy/siope.py
def get_siope_officials(year, period, state, use_cache=True, verbose=False,
                        page_size=1000, max_rows=INF, filter=None, orderby=None,
                        select=None):
    """English alias for :func:`get_siope_responsaveis`."""
    return get_siope_responsaveis(ano=year, periodo=period, uf=state,
                                  use_cache=use_cache, verbose=verbose,
                                  page_size=page_size, max_rows=max_rows,
                                  filter=filter, orderby=orderby, select=select)

get_siope_despesas

get_siope_despesas(
    ano,
    periodo,
    uf,
    use_cache=True,
    verbose=False,
    page_size=1000,
    max_rows=INF,
    filter=None,
    orderby=None,
    select=None,
)

Get SIOPE education expenses data broken down by category.

Source code in src/tesouropy/siope.py
def get_siope_despesas(ano, periodo, uf, use_cache=True, verbose=False,
                       page_size=1000, max_rows=INF, filter=None, orderby=None,
                       select=None):
    """Get SIOPE education expenses data broken down by category."""
    return _siope("Despesas_Siope", ano, periodo, uf, use_cache, verbose,
                  page_size, max_rows, filter, orderby, select)

get_siope_expenses

get_siope_expenses(
    year,
    period,
    state,
    use_cache=True,
    verbose=False,
    page_size=1000,
    max_rows=INF,
    filter=None,
    orderby=None,
    select=None,
)

English alias for :func:get_siope_despesas.

Source code in src/tesouropy/siope.py
def get_siope_expenses(year, period, state, use_cache=True, verbose=False,
                       page_size=1000, max_rows=INF, filter=None, orderby=None,
                       select=None):
    """English alias for :func:`get_siope_despesas`."""
    return get_siope_despesas(ano=year, periodo=period, uf=state,
                              use_cache=use_cache, verbose=verbose,
                              page_size=page_size, max_rows=max_rows,
                              filter=filter, orderby=orderby, select=select)

get_siope_despesas_funcao

get_siope_despesas_funcao(
    ano,
    periodo,
    uf,
    use_cache=True,
    verbose=False,
    page_size=1000,
    max_rows=INF,
    filter=None,
    orderby=None,
    select=None,
)

Get SIOPE expenses broken down by government function.

Source code in src/tesouropy/siope.py
def get_siope_despesas_funcao(ano, periodo, uf, use_cache=True, verbose=False,
                              page_size=1000, max_rows=INF, filter=None,
                              orderby=None, select=None):
    """Get SIOPE expenses broken down by government function."""
    return _siope("Despesas_Funcao_Educacao_Siope", ano, periodo, uf, use_cache,
                  verbose, page_size, max_rows, filter, orderby, select)

get_siope_expenses_by_function

get_siope_expenses_by_function(
    year,
    period,
    state,
    use_cache=True,
    verbose=False,
    page_size=1000,
    max_rows=INF,
    filter=None,
    orderby=None,
    select=None,
)

English alias for :func:get_siope_despesas_funcao.

Source code in src/tesouropy/siope.py
def get_siope_expenses_by_function(year, period, state, use_cache=True,
                                   verbose=False, page_size=1000, max_rows=INF,
                                   filter=None, orderby=None, select=None):
    """English alias for :func:`get_siope_despesas_funcao`."""
    return get_siope_despesas_funcao(ano=year, periodo=period, uf=state,
                                     use_cache=use_cache, verbose=verbose,
                                     page_size=page_size, max_rows=max_rows,
                                     filter=filter, orderby=orderby,
                                     select=select)

get_siope_indicadores

get_siope_indicadores(
    ano,
    periodo,
    uf,
    use_cache=True,
    verbose=False,
    page_size=1000,
    max_rows=INF,
    filter=None,
    orderby=None,
    select=None,
)

Get SIOPE education indicators (e.g. % of revenue applied to education).

Source code in src/tesouropy/siope.py
def get_siope_indicadores(ano, periodo, uf, use_cache=True, verbose=False,
                          page_size=1000, max_rows=INF, filter=None,
                          orderby=None, select=None):
    """Get SIOPE education indicators (e.g. % of revenue applied to education)."""
    return _siope("Indicadores_Siope", ano, periodo, uf, use_cache, verbose,
                  page_size, max_rows, filter, orderby, select)

get_siope_indicators

get_siope_indicators(
    year,
    period,
    state,
    use_cache=True,
    verbose=False,
    page_size=1000,
    max_rows=INF,
    filter=None,
    orderby=None,
    select=None,
)

English alias for :func:get_siope_indicadores.

Source code in src/tesouropy/siope.py
def get_siope_indicators(year, period, state, use_cache=True, verbose=False,
                         page_size=1000, max_rows=INF, filter=None, orderby=None,
                         select=None):
    """English alias for :func:`get_siope_indicadores`."""
    return get_siope_indicadores(ano=year, periodo=period, uf=state,
                                 use_cache=use_cache, verbose=verbose,
                                 page_size=page_size, max_rows=max_rows,
                                 filter=filter, orderby=orderby, select=select)

get_siope_info_complementares

get_siope_info_complementares(
    ano,
    periodo,
    uf,
    use_cache=True,
    verbose=False,
    page_size=1000,
    max_rows=INF,
    filter=None,
    orderby=None,
    select=None,
)

Get SIOPE supplementary information from declarations.

Source code in src/tesouropy/siope.py
def get_siope_info_complementares(ano, periodo, uf, use_cache=True,
                                  verbose=False, page_size=1000, max_rows=INF,
                                  filter=None, orderby=None, select=None):
    """Get SIOPE supplementary information from declarations."""
    return _siope("Informacoes_Complementares_Siope", ano, periodo, uf,
                  use_cache, verbose, page_size, max_rows, filter, orderby,
                  select)

get_siope_supplementary

get_siope_supplementary(
    year,
    period,
    state,
    use_cache=True,
    verbose=False,
    page_size=1000,
    max_rows=INF,
    filter=None,
    orderby=None,
    select=None,
)

English alias for :func:get_siope_info_complementares.

Source code in src/tesouropy/siope.py
def get_siope_supplementary(year, period, state, use_cache=True, verbose=False,
                            page_size=1000, max_rows=INF, filter=None,
                            orderby=None, select=None):
    """English alias for :func:`get_siope_info_complementares`."""
    return get_siope_info_complementares(ano=year, periodo=period, uf=state,
                                         use_cache=use_cache, verbose=verbose,
                                         page_size=page_size, max_rows=max_rows,
                                         filter=filter, orderby=orderby,
                                         select=select)

get_siope_receitas

get_siope_receitas(
    ano,
    periodo,
    uf,
    use_cache=True,
    verbose=False,
    page_size=1000,
    max_rows=INF,
    filter=None,
    orderby=None,
    select=None,
)

Get SIOPE education revenue data (tax revenues, transfers, FUNDEB).

Source code in src/tesouropy/siope.py
def get_siope_receitas(ano, periodo, uf, use_cache=True, verbose=False,
                       page_size=1000, max_rows=INF, filter=None, orderby=None,
                       select=None):
    """Get SIOPE education revenue data (tax revenues, transfers, FUNDEB)."""
    return _siope("Receita_Siope", ano, periodo, uf, use_cache, verbose,
                  page_size, max_rows, filter, orderby, select)

get_siope_revenues

get_siope_revenues(
    year,
    period,
    state,
    use_cache=True,
    verbose=False,
    page_size=1000,
    max_rows=INF,
    filter=None,
    orderby=None,
    select=None,
)

English alias for :func:get_siope_receitas.

Source code in src/tesouropy/siope.py
def get_siope_revenues(year, period, state, use_cache=True, verbose=False,
                       page_size=1000, max_rows=INF, filter=None, orderby=None,
                       select=None):
    """English alias for :func:`get_siope_receitas`."""
    return get_siope_receitas(ano=year, periodo=period, uf=state,
                              use_cache=use_cache, verbose=verbose,
                              page_size=page_size, max_rows=max_rows,
                              filter=filter, orderby=orderby, select=select)

get_siope_remuneracao

get_siope_remuneracao(
    ano,
    periodo,
    mes,
    uf,
    use_cache=True,
    verbose=False,
    page_size=1000,
    max_rows=INF,
    filter=None,
    orderby=None,
    select=None,
)

Get SIOPE staff compensation data. Requires an extra mes (month).

Source code in src/tesouropy/siope.py
def get_siope_remuneracao(ano, periodo, mes, uf, use_cache=True, verbose=False,
                          page_size=1000, max_rows=INF, filter=None,
                          orderby=None, select=None):
    """Get SIOPE staff compensation data. Requires an extra ``mes`` (month)."""
    check_required(ano=ano, periodo=periodo, mes=mes, uf=uf)
    params = {
        "Ano_Declaracao": ano,
        "Num_Peri": periodo,
        "Mes_Exercicio": mes,
        "Sig_UF": uf,
    }
    return siope_fetch("Remuneracao_Siope", params, use_cache=use_cache,
                       verbose=verbose, page_size=page_size, max_rows=max_rows,
                       filter=filter, orderby=orderby, select=select)

get_siope_compensation

get_siope_compensation(
    year,
    period,
    month,
    state,
    use_cache=True,
    verbose=False,
    page_size=1000,
    max_rows=INF,
    filter=None,
    orderby=None,
    select=None,
)

English alias for :func:get_siope_remuneracao.

Source code in src/tesouropy/siope.py
def get_siope_compensation(year, period, month, state, use_cache=True,
                           verbose=False, page_size=1000, max_rows=INF,
                           filter=None, orderby=None, select=None):
    """English alias for :func:`get_siope_remuneracao`."""
    return get_siope_remuneracao(ano=year, periodo=period, mes=month, uf=state,
                                 use_cache=use_cache, verbose=verbose,
                                 page_size=page_size, max_rows=max_rows,
                                 filter=filter, orderby=orderby, select=select)

RREO tidy layer

rreo_tidy

RREO tidy layer — handles SICONFI's drifting labels across years.

SICONFI's RREO appendix names, account labels, and column suffixes drift across fiscal years. The package ships a small reference table (data/rreo_layout.csv) mapping (topic, regime, year_range) to the correct appendix and account-matching key, and uses it to assemble layout-stable indicators across years.

rreo_layout

rreo_layout() -> pl.DataFrame

Return the bundled RREO layout reference table.

Columns: topic, regime, first_year, last_year, co_esfera, no_anexo, conta_match, indicador.

Source code in src/tesouropy/rreo_tidy.py
def rreo_layout() -> pl.DataFrame:
    """Return the bundled RREO layout reference table.

    Columns: ``topic``, ``regime``, ``first_year``, ``last_year``,
    ``co_esfera``, ``no_anexo``, ``conta_match``, ``indicador``.
    """
    return _load_rreo_layout()

rreo_normalize_columns

rreo_normalize_columns(data: DataFrame) -> pl.DataFrame

Normalize the coluna field of an RREO DataFrame across years.

Appends two columns:

  • coluna_padrao: the column label with any trailing / YYYY or EM YYYY suffix removed (whitespace squished).
  • coluna_ano: the year that appeared in the suffix (Int64), or null when no year was present.
Source code in src/tesouropy/rreo_tidy.py
def rreo_normalize_columns(data: pl.DataFrame) -> pl.DataFrame:
    """Normalize the ``coluna`` field of an RREO DataFrame across years.

    Appends two columns:

    * ``coluna_padrao``: the column label with any trailing ``/ YYYY`` or
      ``EM YYYY`` suffix removed (whitespace squished).
    * ``coluna_ano``: the year that appeared in the suffix (Int64), or null when
      no year was present.
    """
    if "coluna" not in data.columns:
        raise TesouroError("Input must have a `coluna` column.")

    colunas = data["coluna"].to_list()
    anos: list[int | None] = []
    padroes: list[str] = []
    for value in colunas:
        value = value if value is not None else ""
        if _YEAR_SUFFIX_RE.search(value):
            match = _TRAILING_YEAR_RE.search(value)
            anos.append(int(match.group(1)) if match else None)
        else:
            anos.append(None)
        padrao = _YEAR_SUFFIX_RE.sub("", value)
        padroes.append(re.sub(r"\s+", " ", padrao).strip())

    return data.with_columns(
        pl.Series("coluna_padrao", padroes),
        pl.Series("coluna_ano", anos, dtype=pl.Int64),
    )

tidy_rreo

tidy_rreo(
    data: DataFrame, topic: str, regime=None
) -> pl.DataFrame

Tidy an RREO DataFrame by topic, reconciling layout drift across years.

Filters data (typically from :func:tesouropy.get_rreo) to the rows matching a known indicator for topic (and optionally regime), using the rules in :func:rreo_layout. Accounts are matched on a year-stable, accent-folded key, so the same call returns a coherent series across years even when SICONFI relabelled the appendix or account.

Currently supported topics: "previdencia" (federal RGPS / RPPS civis / FCDF / militares inativos, União sphere).

Source code in src/tesouropy/rreo_tidy.py
def tidy_rreo(data: pl.DataFrame, topic: str, regime=None) -> pl.DataFrame:
    """Tidy an RREO DataFrame by topic, reconciling layout drift across years.

    Filters ``data`` (typically from :func:`tesouropy.get_rreo`) to the rows
    matching a known indicator for ``topic`` (and optionally ``regime``), using
    the rules in :func:`rreo_layout`. Accounts are matched on a year-stable,
    accent-folded key, so the same call returns a coherent series across years
    even when SICONFI relabelled the appendix or account.

    Currently supported topics: ``"previdencia"`` (federal RGPS / RPPS civis /
    FCDF / militares inativos, União sphere).
    """
    required = ("exercicio", "conta", "coluna", "valor")
    missing = [c for c in required if c not in data.columns]
    if missing:
        raise TesouroError(
            f"Input is missing required column(s): {', '.join(missing)}. "
            "Did you pass the raw output of get_rreo()?"
        )

    layout = _load_rreo_layout().filter(pl.col("topic") == topic)
    if regime is not None:
        regimes = [regime] if isinstance(regime, str) else list(regime)
        layout = layout.filter(pl.col("regime").is_in(regimes))
    if layout.height == 0:
        extra = "" if regime is None else f", regime={regime}"
        raise TesouroError(
            f"No layout entry for topic={topic!r}{extra}. Run rreo_layout() to "
            "inspect supported topics/regimes."
        )

    data = rreo_normalize_columns(data)
    data = data.with_columns(
        pl.col("conta")
        .map_elements(_clean_conta, return_dtype=pl.Utf8)
        .alias("_match_key"),
        pl.col("exercicio").cast(pl.Int64, strict=False).alias("_exercicio"),
    )

    matched = []
    for rule in layout.iter_rows(named=True):
        rows = data.filter(
            pl.col("_exercicio").is_not_null()
            & (pl.col("_exercicio") >= rule["first_year"])
            & (pl.col("_exercicio") <= rule["last_year"])
            & (pl.col("_match_key") == rule["conta_match"])
        )
        if rows.height:
            rows = rows.with_columns(
                pl.lit(rule["indicador"]).alias("indicador"),
                pl.lit(rule["regime"]).alias("regime"),
            )
            matched.append(rows)

    if not matched:
        # warn-and-return-empty, mirroring the R behaviour
        import logging

        logging.getLogger("tesouropy").warning(
            "No rows matched topic=%r in the supplied data.", topic
        )
        return pl.DataFrame()

    result = pl.concat(matched, how="diagonal_relaxed").drop(
        "_match_key", "_exercicio"
    )

    lead = ["indicador", "regime"]
    for col in ("exercicio", "instituicao", "cod_ibge", "uf"):
        if col in result.columns:
            lead.append(col)
    rest = [c for c in result.columns if c not in lead]
    return result.select(lead + rest)