tesorotools-python 0.0.46__tar.gz → 0.0.48__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 (76) hide show
  1. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/.gitignore +3 -1
  2. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/PKG-INFO +1 -1
  3. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/pyproject.toml +13 -0
  4. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/__init__.py +3 -0
  5. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/artists/__init__.py +5 -7
  6. tesorotools_python-0.0.48/src/tesorotools/artists/_common.py +879 -0
  7. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/artists/barh_plot.py +3 -2
  8. tesorotools_python-0.0.48/src/tesorotools/artists/line_plot.py +441 -0
  9. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/artists/matrix.py +7 -2
  10. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/artists/stacked.py +3 -2
  11. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/artists/type_curve.py +2 -1
  12. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/artists/vector_plot.py +2 -1
  13. tesorotools_python-0.0.48/src/tesorotools/artists/waterfall.py +326 -0
  14. tesorotools_python-0.0.48/src/tesorotools/assets/plots.yaml +113 -0
  15. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/assets/tesoro.mplstyle +2 -2
  16. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/utils/matplotlib.py +19 -1
  17. tesorotools_python-0.0.46/src/tesorotools/artists/_common.py +0 -493
  18. tesorotools_python-0.0.46/src/tesorotools/artists/line_plot.py +0 -289
  19. tesorotools_python-0.0.46/src/tesorotools/assets/plots.yaml +0 -68
  20. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/_build_context.py +0 -0
  21. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/_registry.py +0 -0
  22. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/assets/README.md +0 -0
  23. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/assets/fonts/CabinetGrotesk-Black.otf +0 -0
  24. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/assets/fonts/CabinetGrotesk-Bold.otf +0 -0
  25. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/assets/fonts/CabinetGrotesk-Extrabold.otf +0 -0
  26. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/assets/fonts/CabinetGrotesk-Extralight.otf +0 -0
  27. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/assets/fonts/CabinetGrotesk-Light.otf +0 -0
  28. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/assets/fonts/CabinetGrotesk-Medium.otf +0 -0
  29. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/assets/fonts/CabinetGrotesk-Regular.otf +0 -0
  30. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/assets/fonts/CabinetGrotesk-Thin.otf +0 -0
  31. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/assets/fonts/README.md +0 -0
  32. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/data_sources/__init__.py +0 -0
  33. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/data_sources/debug.py +0 -0
  34. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/database/__init__.py +0 -0
  35. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/database/local.py +0 -0
  36. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/database/push.py +0 -0
  37. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/database/shared.py +0 -0
  38. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/dependencies/__init__.py +0 -0
  39. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/dependencies/node.py +0 -0
  40. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/dependencies/resolution.py +0 -0
  41. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/driver.py +0 -0
  42. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/manifest.py +0 -0
  43. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/offsets/__init__.py +0 -0
  44. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/offsets/offsets.py +0 -0
  45. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/offsets/outliers.py +0 -0
  46. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/orchestration.py +0 -0
  47. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/pipeline/__init__.py +0 -0
  48. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/pipeline/diagnose.py +0 -0
  49. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/pipeline/engine.py +0 -0
  50. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/pipeline/rules.py +0 -0
  51. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/providers/__init__.py +0 -0
  52. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/providers/base.py +0 -0
  53. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/providers/bde.py +0 -0
  54. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/providers/ecb.py +0 -0
  55. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/providers/imf_irfcl.py +0 -0
  56. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/providers/lseg.py +0 -0
  57. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/py.typed +0 -0
  58. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/render/__init__.py +0 -0
  59. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/render/content/__init__.py +0 -0
  60. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/render/content/content.py +0 -0
  61. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/render/content/images.py +0 -0
  62. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/render/content/section.py +0 -0
  63. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/render/content/subtitle.py +0 -0
  64. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/render/content/table.py +0 -0
  65. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/render/content/text.py +0 -0
  66. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/render/content/title.py +0 -0
  67. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/render/report.py +0 -0
  68. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/testing/__init__.py +0 -0
  69. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/testing/compare.py +0 -0
  70. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/utils/__init__.py +0 -0
  71. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/utils/config.py +0 -0
  72. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/utils/format.py +0 -0
  73. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/utils/globals.py +0 -0
  74. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/utils/series.py +0 -0
  75. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/utils/shortcuts.py +0 -0
  76. {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/utils/template.py +0 -0
@@ -24,4 +24,6 @@ test/
24
24
  .coverage
25
25
 
26
26
  # ruff
27
- .ruff_cache/
27
+ .ruff_cache/
28
+
29
+ demo_compacto/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tesorotools-python
3
- Version: 0.0.46
3
+ Version: 0.0.48
4
4
  Requires-Python: >=3.13
5
5
  Requires-Dist: babel>=2.17
6
6
  Requires-Dist: matplotlib>=3.10
@@ -54,12 +54,25 @@ artifacts = ["src/tesorotools/assets/fonts/*.otf"]
54
54
  include = ["src/tesorotools"]
55
55
  artifacts = ["src/tesorotools/assets/fonts/*.otf"]
56
56
 
57
+ [tool.coverage.run]
58
+ source = ["tesorotools"]
59
+ # Único módulo excluido: el cliente LSEG/Refinitiv es un wrapper de un SDK
60
+ # externo propietario (`import lseg.data`) que necesita sesión y credenciales
61
+ # en vivo; cubrirlo al 100% exigiría mocks frágiles atados a la API del SDK.
62
+ # Todo lo demás (incluida la resolución de dependencias de series derivadas)
63
+ # se cubre con tests reales.
64
+ omit = ["*/providers/lseg.py"]
65
+
57
66
  [tool.coverage.report]
58
67
  exclude_lines = [
68
+ 'pragma: no cover',
59
69
  'if __name__ == "__main__"',
60
70
  '^\s*\.\.\.$',
61
71
  'if TYPE_CHECKING',
72
+ 'raise NotImplementedError',
73
+ '@(abc\.)?abstractmethod',
62
74
  ]
75
+ fail_under = 100
63
76
 
64
77
  [tool.ruff]
65
78
  line-length = 80
@@ -54,6 +54,7 @@ from tesorotools.artists import (
54
54
  StackedBarPlot,
55
55
  TypeCurve,
56
56
  VectorPlot,
57
+ Waterfall,
57
58
  )
58
59
  from tesorotools.orchestration import CompositeRegistry, iter_contexts
59
60
  from tesorotools.providers.base import (
@@ -83,6 +84,7 @@ def _register_builtins() -> None:
83
84
  register_artist("type_curve", TypeCurve)
84
85
  register_artist("vector_plot", VectorPlot)
85
86
  register_artist("matrix", MatrixChart)
87
+ register_artist("waterfall", Waterfall)
86
88
 
87
89
  register_tag("format", Format)
88
90
  register_tag("legend", Legend)
@@ -127,6 +129,7 @@ __all__ = [
127
129
  "Title",
128
130
  "TypeCurve",
129
131
  "VectorPlot",
132
+ "Waterfall",
130
133
  "YamlConstructor",
131
134
  "all_artists",
132
135
  "all_providers",
@@ -1,7 +1,8 @@
1
1
  """Image artists.
2
2
 
3
- Five chart classes, one shared helpers module, one
4
- matplotlib stylesheet side effect on import.
3
+ Five chart classes and one shared helpers module. Importing
4
+ ``_common`` applies the house style (palette + fonts) as a side
5
+ effect, so the cycle is active no matter which artist is imported.
5
6
 
6
7
  Each class follows the same shape:
7
8
 
@@ -24,8 +25,6 @@ live under :mod:`tesorotools.render`; this package is
24
25
  strictly image output.
25
26
  """
26
27
 
27
- import matplotlib.style
28
-
29
28
  from tesorotools.artists._common import Artist, Format, Legend
30
29
  from tesorotools.artists.barh_plot import GroupedBarChart, HorizontalBarChart
31
30
  from tesorotools.artists.line_plot import LinePlot
@@ -33,9 +32,7 @@ from tesorotools.artists.matrix import MatrixChart
33
32
  from tesorotools.artists.stacked import StackedAreaPlot, StackedBarPlot
34
33
  from tesorotools.artists.type_curve import TypeCurve
35
34
  from tesorotools.artists.vector_plot import VectorPlot
36
- from tesorotools.utils.globals import STYLE_SHEET
37
-
38
- matplotlib.style.use(STYLE_SHEET)
35
+ from tesorotools.artists.waterfall import Waterfall
39
36
 
40
37
  __all__ = [
41
38
  "Artist",
@@ -49,4 +46,5 @@ __all__ = [
49
46
  "StackedBarPlot",
50
47
  "TypeCurve",
51
48
  "VectorPlot",
49
+ "Waterfall",
52
50
  ]