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.
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/.gitignore +3 -1
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/PKG-INFO +1 -1
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/pyproject.toml +13 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/__init__.py +3 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/artists/__init__.py +5 -7
- tesorotools_python-0.0.48/src/tesorotools/artists/_common.py +879 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/artists/barh_plot.py +3 -2
- tesorotools_python-0.0.48/src/tesorotools/artists/line_plot.py +441 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/artists/matrix.py +7 -2
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/artists/stacked.py +3 -2
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/artists/type_curve.py +2 -1
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/artists/vector_plot.py +2 -1
- tesorotools_python-0.0.48/src/tesorotools/artists/waterfall.py +326 -0
- tesorotools_python-0.0.48/src/tesorotools/assets/plots.yaml +113 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/assets/tesoro.mplstyle +2 -2
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/utils/matplotlib.py +19 -1
- tesorotools_python-0.0.46/src/tesorotools/artists/_common.py +0 -493
- tesorotools_python-0.0.46/src/tesorotools/artists/line_plot.py +0 -289
- tesorotools_python-0.0.46/src/tesorotools/assets/plots.yaml +0 -68
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/_build_context.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/_registry.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/assets/README.md +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/assets/fonts/CabinetGrotesk-Black.otf +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/assets/fonts/CabinetGrotesk-Bold.otf +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/assets/fonts/CabinetGrotesk-Extrabold.otf +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/assets/fonts/CabinetGrotesk-Extralight.otf +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/assets/fonts/CabinetGrotesk-Light.otf +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/assets/fonts/CabinetGrotesk-Medium.otf +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/assets/fonts/CabinetGrotesk-Regular.otf +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/assets/fonts/CabinetGrotesk-Thin.otf +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/assets/fonts/README.md +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/data_sources/__init__.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/data_sources/debug.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/database/__init__.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/database/local.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/database/push.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/database/shared.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/dependencies/__init__.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/dependencies/node.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/dependencies/resolution.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/driver.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/manifest.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/offsets/__init__.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/offsets/offsets.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/offsets/outliers.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/orchestration.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/pipeline/__init__.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/pipeline/diagnose.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/pipeline/engine.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/pipeline/rules.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/providers/__init__.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/providers/base.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/providers/bde.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/providers/ecb.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/providers/imf_irfcl.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/providers/lseg.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/py.typed +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/render/__init__.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/render/content/__init__.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/render/content/content.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/render/content/images.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/render/content/section.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/render/content/subtitle.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/render/content/table.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/render/content/text.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/render/content/title.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/render/report.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/testing/__init__.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/testing/compare.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/utils/__init__.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/utils/config.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/utils/format.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/utils/globals.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/utils/series.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/utils/shortcuts.py +0 -0
- {tesorotools_python-0.0.46 → tesorotools_python-0.0.48}/src/tesorotools/utils/template.py +0 -0
|
@@ -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
|
|
4
|
-
|
|
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.
|
|
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
|
]
|