pyield 0.55.2__tar.gz → 0.56.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. {pyield-0.55.2 → pyield-0.56.1}/PKG-INFO +26 -2
  2. {pyield-0.55.2 → pyield-0.56.1}/README.md +25 -1
  3. pyield-0.56.1/pyield/.DS_Store +0 -0
  4. {pyield-0.55.2 → pyield-0.56.1}/pyield/du/__init__.py +6 -0
  5. {pyield-0.55.2 → pyield-0.56.1}/pyield/du/core.py +288 -176
  6. pyield-0.56.1/pyield/du/feriados_br/__init__.py +27 -0
  7. pyield-0.55.2/pyield/du/feriados/feriados_antigos_br.txt → pyield-0.56.1/pyield/du/feriados_br/anteriores.txt +3 -3
  8. pyield-0.55.2/pyield/du/feriados/feriados_novos_br.txt → pyield-0.56.1/pyield/du/feriados_br/atuais.txt +4 -4
  9. {pyield-0.55.2 → pyield-0.56.1}/pyield/interpolador.py +5 -0
  10. pyield-0.55.2/pyield/tpf/titulos/_zero_td.py → pyield-0.56.1/pyield/tpf/titulos/_bootstrap_forwards.py +19 -5
  11. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/titulos/ntnb.py +10 -7
  12. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/titulos/ntnbp.py +2 -2
  13. {pyield-0.55.2 → pyield-0.56.1}/pyproject.toml +1 -1
  14. {pyield-0.55.2 → pyield-0.56.1}/pyproject.toml.orig +1 -1
  15. pyield-0.55.2/pyield/du/feriados/__init__.py +0 -3
  16. pyield-0.55.2/pyield/du/feriados/feriados_br.py +0 -72
  17. {pyield-0.55.2 → pyield-0.56.1}/LICENSE +0 -0
  18. {pyield-0.55.2 → pyield-0.56.1}/pyield/__init__.py +0 -0
  19. {pyield-0.55.2 → pyield-0.56.1}/pyield/_internal/__init__.py +0 -0
  20. {pyield-0.55.2 → pyield-0.56.1}/pyield/_internal/br_numbers.py +0 -0
  21. {pyield-0.55.2 → pyield-0.56.1}/pyield/_internal/cache.py +0 -0
  22. {pyield-0.55.2 → pyield-0.56.1}/pyield/_internal/converters.py +0 -0
  23. {pyield-0.55.2 → pyield-0.56.1}/pyield/_internal/data_cache.py +0 -0
  24. {pyield-0.55.2 → pyield-0.56.1}/pyield/_internal/excel.py +0 -0
  25. {pyield-0.55.2 → pyield-0.56.1}/pyield/_internal/numbers.py +0 -0
  26. {pyield-0.55.2 → pyield-0.56.1}/pyield/_internal/retry.py +0 -0
  27. {pyield-0.55.2 → pyield-0.56.1}/pyield/_internal/types.py +0 -0
  28. {pyield-0.55.2 → pyield-0.56.1}/pyield/anbima/__init__.py +0 -0
  29. {pyield-0.55.2 → pyield-0.56.1}/pyield/anbima/imaq.py +0 -0
  30. {pyield-0.55.2 → pyield-0.56.1}/pyield/anbima/taxas.py +0 -0
  31. {pyield-0.55.2 → pyield-0.56.1}/pyield/b3/__init__.py +0 -0
  32. {pyield-0.55.2 → pyield-0.56.1}/pyield/b3/_contratos.py +0 -0
  33. {pyield-0.55.2 → pyield-0.56.1}/pyield/b3/_validar_pregao.py +0 -0
  34. {pyield-0.55.2 → pyield-0.56.1}/pyield/b3/boletim.py +0 -0
  35. {pyield-0.55.2 → pyield-0.56.1}/pyield/b3/derivativos_intradia.py +0 -0
  36. {pyield-0.55.2 → pyield-0.56.1}/pyield/b3/di_over.py +0 -0
  37. {pyield-0.55.2 → pyield-0.56.1}/pyield/bc/__init__.py +0 -0
  38. {pyield-0.55.2 → pyield-0.56.1}/pyield/bc/_olinda.py +0 -0
  39. {pyield-0.55.2 → pyield-0.56.1}/pyield/bc/leiloes.py +0 -0
  40. {pyield-0.55.2 → pyield-0.56.1}/pyield/bc/lft.py +0 -0
  41. {pyield-0.55.2 → pyield-0.56.1}/pyield/bc/sgs.py +0 -0
  42. {pyield-0.55.2 → pyield-0.56.1}/pyield/futuro/__init__.py +0 -0
  43. {pyield-0.55.2 → pyield-0.56.1}/pyield/futuro/contratos.py +0 -0
  44. {pyield-0.55.2 → pyield-0.56.1}/pyield/futuro/di1.py +0 -0
  45. {pyield-0.55.2 → pyield-0.56.1}/pyield/futuro/historico.py +0 -0
  46. {pyield-0.55.2 → pyield-0.56.1}/pyield/futuro/intradia.py +0 -0
  47. {pyield-0.55.2 → pyield-0.56.1}/pyield/fwd.py +0 -0
  48. {pyield-0.55.2 → pyield-0.56.1}/pyield/ipca/__init__.py +0 -0
  49. {pyield-0.55.2 → pyield-0.56.1}/pyield/ipca/historico.py +0 -0
  50. {pyield-0.55.2 → pyield-0.56.1}/pyield/ipca/projetado.py +0 -0
  51. {pyield-0.55.2 → pyield-0.56.1}/pyield/py.typed +0 -0
  52. {pyield-0.55.2 → pyield-0.56.1}/pyield/relogio.py +0 -0
  53. {pyield-0.55.2 → pyield-0.56.1}/pyield/selic/__init__.py +0 -0
  54. {pyield-0.55.2 → pyield-0.56.1}/pyield/selic/compromissada.py +0 -0
  55. {pyield-0.55.2 → pyield-0.56.1}/pyield/selic/copom.py +0 -0
  56. {pyield-0.55.2 → pyield-0.56.1}/pyield/selic/cpm.py +0 -0
  57. {pyield-0.55.2 → pyield-0.56.1}/pyield/selic/probabilities.py +0 -0
  58. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/__init__.py +0 -0
  59. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/_taxas.py +0 -0
  60. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/benchmark.py +0 -0
  61. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/dealers.py +0 -0
  62. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/leiloes.py +0 -0
  63. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/rmd/__init__.py +0 -0
  64. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/rmd/_aba_1_3.py +0 -0
  65. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/rmd/_aba_2_1.py +0 -0
  66. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/rmd/_common.py +0 -0
  67. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/rmd/_download.py +0 -0
  68. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/secundario/__init__.py +0 -0
  69. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/secundario/_intradia.py +0 -0
  70. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/secundario/_mensal.py +0 -0
  71. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/titulos/__init__.py +0 -0
  72. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/titulos/_utils.py +0 -0
  73. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/titulos/lft.py +0 -0
  74. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/titulos/ltn.py +0 -0
  75. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/titulos/ntnb1.py +0 -0
  76. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/titulos/ntnc.py +0 -0
  77. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/titulos/ntnf.py +0 -0
  78. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/titulos/pre.py +0 -0
  79. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/vna/__init__.py +0 -0
  80. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/vna/_download.py +0 -0
  81. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/vna/calculo.py +0 -0
  82. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/vna/ntnb.py +0 -0
  83. {pyield-0.55.2 → pyield-0.56.1}/pyield/tpf/vna/ntnc.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyield
3
- Version: 0.55.2
3
+ Version: 0.56.1
4
4
  Summary: Polars-powered toolkit for Brazilian fixed income analysis
5
5
  Keywords: fixed-income,brazil,finance,analysis,bonds
6
6
  Author: Carlos Carvalho
@@ -142,6 +142,29 @@ du.gerar("22-12-2023", "02-01-2024")
142
142
  du.eh_dia_util("25-12-2023") # -> False (Natal)
143
143
  ```
144
144
 
145
+ Por padrão, `calendario="auto"` seleciona a lista de feriados com base na data de
146
+ referência de cada operação. Em entradas vetorizadas, a seleção ocorre por
147
+ elemento; em `du.gerar`, ela usa `inicio`. Use `calendario="anterior"` para
148
+ forçar o regime anterior a 26/12/2023 ou `calendario="atual"` para forçar a
149
+ lista vigente na versão instalada:
150
+
151
+ ```python
152
+ du.contar("20-11-2024", "21-11-2024", calendario="anterior") # -> 1
153
+ du.contar("20-11-2024", "21-11-2024", calendario="atual") # -> 0
154
+ ```
155
+
156
+ Os parâmetros opcionais usam termos em português. `ajuste` define como tratar uma
157
+ data inicial não útil, enquanto `limites_inclusivos` controla quais extremos de um
158
+ intervalo gerado são incluídos:
159
+
160
+ ```python
161
+ du.deslocar("23-12-2023", 0, ajuste="anterior")
162
+ # -> datetime.date(2023, 12, 22)
163
+
164
+ du.gerar("08-01-2024", "10-01-2024", limites_inclusivos="inicio").to_list()
165
+ # -> [datetime.date(2024, 1, 8), datetime.date(2024, 1, 9)]
166
+ ```
167
+
145
168
  As principais funções de cálculo (`contar`, `deslocar` e `eh_dia_util`)
146
169
  suportam operações vetorizadas com listas, Series ou arrays.
147
170
 
@@ -308,10 +331,11 @@ Documentação completa: [crdcj.github.io/PYield](https://crdcj.github.io/PYield
308
331
 
309
332
  ## Compatibilidade e mudanças da API
310
333
 
311
- A versão atual é `v0.55.0`. As mudanças abaixo exigem atualização de código:
334
+ A versão atual é `v0.56.0`. As mudanças abaixo podem exigir atualização de código:
312
335
 
313
336
  | Versão | Mudança principal |
314
337
  |---|---|
338
+ | `v0.56.0` | As funções de dias úteis adotaram `calendario="auto" \| "anterior" \| "atual"`. Em `du.gerar`, substitua `opcao_feriado` por `calendario`; `"inferir"`, `"antigo"` e `"novo"` correspondem agora a `"auto"`, `"anterior"` e `"atual"`. O parâmetro `rolagem` virou `ajuste`; `"forward"` e `"backward"` viraram `"seguinte"` e `"anterior"`. O parâmetro `fechamento` virou `limites_inclusivos`, com os valores `"ambos"`, `"inicio"`, `"fim"` e `"nenhum"`. O padrão de `calendario` passou a ser `"auto"`. `Interpolador` agora levanta `ValueError` quando a curva não contém vértices válidos. |
315
339
  | `v0.55.0` | Funções de PU, cotação e VNA dos títulos passaram a retornar `Decimal` com seis casas. Entradas numéricas aceitam `float` ou `Decimal`. |
316
340
  | `v0.54.5` | `fluxos_caixa` não aceita mais `ajustar_datas_pagamento`; os cronogramas usam datas contratuais. |
317
341
  | `v0.54.2` | `taxas_historicas` foi adicionada e `tpf.taxas(completo=True)` foi removida. |
@@ -117,6 +117,29 @@ du.gerar("22-12-2023", "02-01-2024")
117
117
  du.eh_dia_util("25-12-2023") # -> False (Natal)
118
118
  ```
119
119
 
120
+ Por padrão, `calendario="auto"` seleciona a lista de feriados com base na data de
121
+ referência de cada operação. Em entradas vetorizadas, a seleção ocorre por
122
+ elemento; em `du.gerar`, ela usa `inicio`. Use `calendario="anterior"` para
123
+ forçar o regime anterior a 26/12/2023 ou `calendario="atual"` para forçar a
124
+ lista vigente na versão instalada:
125
+
126
+ ```python
127
+ du.contar("20-11-2024", "21-11-2024", calendario="anterior") # -> 1
128
+ du.contar("20-11-2024", "21-11-2024", calendario="atual") # -> 0
129
+ ```
130
+
131
+ Os parâmetros opcionais usam termos em português. `ajuste` define como tratar uma
132
+ data inicial não útil, enquanto `limites_inclusivos` controla quais extremos de um
133
+ intervalo gerado são incluídos:
134
+
135
+ ```python
136
+ du.deslocar("23-12-2023", 0, ajuste="anterior")
137
+ # -> datetime.date(2023, 12, 22)
138
+
139
+ du.gerar("08-01-2024", "10-01-2024", limites_inclusivos="inicio").to_list()
140
+ # -> [datetime.date(2024, 1, 8), datetime.date(2024, 1, 9)]
141
+ ```
142
+
120
143
  As principais funções de cálculo (`contar`, `deslocar` e `eh_dia_util`)
121
144
  suportam operações vetorizadas com listas, Series ou arrays.
122
145
 
@@ -283,10 +306,11 @@ Documentação completa: [crdcj.github.io/PYield](https://crdcj.github.io/PYield
283
306
 
284
307
  ## Compatibilidade e mudanças da API
285
308
 
286
- A versão atual é `v0.55.0`. As mudanças abaixo exigem atualização de código:
309
+ A versão atual é `v0.56.0`. As mudanças abaixo podem exigir atualização de código:
287
310
 
288
311
  | Versão | Mudança principal |
289
312
  |---|---|
313
+ | `v0.56.0` | As funções de dias úteis adotaram `calendario="auto" \| "anterior" \| "atual"`. Em `du.gerar`, substitua `opcao_feriado` por `calendario`; `"inferir"`, `"antigo"` e `"novo"` correspondem agora a `"auto"`, `"anterior"` e `"atual"`. O parâmetro `rolagem` virou `ajuste`; `"forward"` e `"backward"` viraram `"seguinte"` e `"anterior"`. O parâmetro `fechamento` virou `limites_inclusivos`, com os valores `"ambos"`, `"inicio"`, `"fim"` e `"nenhum"`. O padrão de `calendario` passou a ser `"auto"`. `Interpolador` agora levanta `ValueError` quando a curva não contém vértices válidos. |
290
314
  | `v0.55.0` | Funções de PU, cotação e VNA dos títulos passaram a retornar `Decimal` com seis casas. Entradas numéricas aceitam `float` ou `Decimal`. |
291
315
  | `v0.54.5` | `fluxos_caixa` não aceita mais `ajustar_datas_pagamento`; os cronogramas usam datas contratuais. |
292
316
  | `v0.54.2` | `taxas_historicas` foi adicionada e `tpf.taxas(completo=True)` foi removida. |
Binary file
@@ -1,3 +1,9 @@
1
+ """Dias úteis e calendário brasileiro.
2
+
3
+ Expõe contagem, deslocamento, geração e verificação de dias úteis, além das
4
+ respectivas expressões Polars.
5
+ """
6
+
1
7
  from pyield.du.core import (
2
8
  contar,
3
9
  contar_expr,