tesorotools-python 0.0.47__tar.gz → 0.0.49__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.49/.gitignore +35 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/PKG-INFO +1 -1
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/pyproject.toml +21 -2
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/__init__.py +2 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/artists/__init__.py +3 -7
- tesorotools_python-0.0.49/src/tesorotools/artists/_common.py +1012 -0
- tesorotools_python-0.0.49/src/tesorotools/artists/barh_plot.py +926 -0
- tesorotools_python-0.0.49/src/tesorotools/artists/compact.py +66 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/artists/line_plot.py +132 -59
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/artists/matrix.py +7 -2
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/artists/stacked.py +51 -46
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/artists/type_curve.py +58 -18
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/artists/vector_plot.py +2 -1
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/artists/waterfall.py +15 -7
- tesorotools_python-0.0.49/src/tesorotools/assets/plots.yaml +130 -0
- tesorotools_python-0.0.49/src/tesorotools/assets/template.docx +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/render/__init__.py +2 -0
- tesorotools_python-0.0.49/src/tesorotools/render/document.py +32 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/render/report.py +7 -1
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/utils/globals.py +5 -0
- tesorotools_python-0.0.49/src/tesorotools/utils/matplotlib.py +63 -0
- tesorotools_python-0.0.47/.gitignore +0 -29
- tesorotools_python-0.0.47/src/tesorotools/artists/_common.py +0 -624
- tesorotools_python-0.0.47/src/tesorotools/artists/barh_plot.py +0 -578
- tesorotools_python-0.0.47/src/tesorotools/assets/plots.yaml +0 -95
- tesorotools_python-0.0.47/src/tesorotools/utils/matplotlib.py +0 -38
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/_build_context.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/_registry.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/assets/README.md +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/assets/fonts/CabinetGrotesk-Black.otf +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/assets/fonts/CabinetGrotesk-Bold.otf +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/assets/fonts/CabinetGrotesk-Extrabold.otf +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/assets/fonts/CabinetGrotesk-Extralight.otf +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/assets/fonts/CabinetGrotesk-Light.otf +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/assets/fonts/CabinetGrotesk-Medium.otf +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/assets/fonts/CabinetGrotesk-Regular.otf +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/assets/fonts/CabinetGrotesk-Thin.otf +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/assets/fonts/README.md +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/assets/tesoro.mplstyle +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/data_sources/__init__.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/data_sources/debug.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/database/__init__.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/database/local.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/database/push.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/database/shared.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/dependencies/__init__.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/dependencies/node.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/dependencies/resolution.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/driver.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/manifest.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/offsets/__init__.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/offsets/offsets.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/offsets/outliers.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/orchestration.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/pipeline/__init__.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/pipeline/diagnose.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/pipeline/engine.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/pipeline/rules.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/providers/__init__.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/providers/base.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/providers/bde.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/providers/ecb.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/providers/imf_irfcl.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/providers/lseg.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/py.typed +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/render/content/__init__.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/render/content/content.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/render/content/images.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/render/content/section.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/render/content/subtitle.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/render/content/table.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/render/content/text.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/render/content/title.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/testing/__init__.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/testing/compare.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/utils/__init__.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/utils/config.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/utils/format.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/utils/series.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/utils/shortcuts.py +0 -0
- {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/utils/template.py +0 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
.venv/
|
|
2
|
+
.build1/
|
|
3
|
+
|
|
4
|
+
__pycache__
|
|
5
|
+
|
|
6
|
+
.vscode/
|
|
7
|
+
|
|
8
|
+
data/
|
|
9
|
+
config/
|
|
10
|
+
debug/
|
|
11
|
+
tablas/
|
|
12
|
+
|
|
13
|
+
dist/
|
|
14
|
+
|
|
15
|
+
*.png
|
|
16
|
+
*.feather
|
|
17
|
+
*.csv
|
|
18
|
+
*.docx
|
|
19
|
+
*.docx#
|
|
20
|
+
# ...but the bundled base template must ship in the package/wheel.
|
|
21
|
+
!src/tesorotools/assets/template.docx
|
|
22
|
+
|
|
23
|
+
test/
|
|
24
|
+
|
|
25
|
+
# coverage
|
|
26
|
+
.coverage
|
|
27
|
+
|
|
28
|
+
# ruff
|
|
29
|
+
.ruff_cache/
|
|
30
|
+
|
|
31
|
+
# uv cache (CI restores it into the repo root)
|
|
32
|
+
.uv-cache/
|
|
33
|
+
|
|
34
|
+
demo_compacto/
|
|
35
|
+
demo/
|
|
@@ -48,18 +48,37 @@ source = "vcs"
|
|
|
48
48
|
|
|
49
49
|
[tool.hatch.build.targets.wheel]
|
|
50
50
|
packages = ["src/tesorotools"]
|
|
51
|
-
artifacts = [
|
|
51
|
+
artifacts = [
|
|
52
|
+
"src/tesorotools/assets/fonts/*.otf",
|
|
53
|
+
"src/tesorotools/assets/template.docx",
|
|
54
|
+
]
|
|
52
55
|
|
|
53
56
|
[tool.hatch.build.targets.sdist]
|
|
54
57
|
include = ["src/tesorotools"]
|
|
55
|
-
artifacts = [
|
|
58
|
+
artifacts = [
|
|
59
|
+
"src/tesorotools/assets/fonts/*.otf",
|
|
60
|
+
"src/tesorotools/assets/template.docx",
|
|
61
|
+
]
|
|
62
|
+
|
|
63
|
+
[tool.coverage.run]
|
|
64
|
+
source = ["tesorotools"]
|
|
65
|
+
# Único módulo excluido: el cliente LSEG/Refinitiv es un wrapper de un SDK
|
|
66
|
+
# externo propietario (`import lseg.data`) que necesita sesión y credenciales
|
|
67
|
+
# en vivo; cubrirlo al 100% exigiría mocks frágiles atados a la API del SDK.
|
|
68
|
+
# Todo lo demás (incluida la resolución de dependencias de series derivadas)
|
|
69
|
+
# se cubre con tests reales.
|
|
70
|
+
omit = ["*/providers/lseg.py"]
|
|
56
71
|
|
|
57
72
|
[tool.coverage.report]
|
|
58
73
|
exclude_lines = [
|
|
74
|
+
'pragma: no cover',
|
|
59
75
|
'if __name__ == "__main__"',
|
|
60
76
|
'^\s*\.\.\.$',
|
|
61
77
|
'if TYPE_CHECKING',
|
|
78
|
+
'raise NotImplementedError',
|
|
79
|
+
'@(abc\.)?abstractmethod',
|
|
62
80
|
]
|
|
81
|
+
fail_under = 100
|
|
63
82
|
|
|
64
83
|
[tool.ruff]
|
|
65
84
|
line-length = 80
|
|
@@ -72,6 +72,7 @@ from tesorotools.render import (
|
|
|
72
72
|
Table,
|
|
73
73
|
Text,
|
|
74
74
|
Title,
|
|
75
|
+
new_document,
|
|
75
76
|
)
|
|
76
77
|
|
|
77
78
|
|
|
@@ -141,6 +142,7 @@ __all__ = [
|
|
|
141
142
|
"iter_contexts",
|
|
142
143
|
"iter_providers",
|
|
143
144
|
"iter_tags",
|
|
145
|
+
"new_document",
|
|
144
146
|
"register_artist",
|
|
145
147
|
"register_artists",
|
|
146
148
|
"register_provider",
|
|
@@ -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
|
|
@@ -34,9 +33,6 @@ 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
35
|
from tesorotools.artists.waterfall import Waterfall
|
|
37
|
-
from tesorotools.utils.globals import STYLE_SHEET
|
|
38
|
-
|
|
39
|
-
matplotlib.style.use(STYLE_SHEET)
|
|
40
36
|
|
|
41
37
|
__all__ = [
|
|
42
38
|
"Artist",
|