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.
Files changed (81) hide show
  1. tesorotools_python-0.0.49/.gitignore +35 -0
  2. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/PKG-INFO +1 -1
  3. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/pyproject.toml +21 -2
  4. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/__init__.py +2 -0
  5. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/artists/__init__.py +3 -7
  6. tesorotools_python-0.0.49/src/tesorotools/artists/_common.py +1012 -0
  7. tesorotools_python-0.0.49/src/tesorotools/artists/barh_plot.py +926 -0
  8. tesorotools_python-0.0.49/src/tesorotools/artists/compact.py +66 -0
  9. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/artists/line_plot.py +132 -59
  10. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/artists/matrix.py +7 -2
  11. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/artists/stacked.py +51 -46
  12. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/artists/type_curve.py +58 -18
  13. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/artists/vector_plot.py +2 -1
  14. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/artists/waterfall.py +15 -7
  15. tesorotools_python-0.0.49/src/tesorotools/assets/plots.yaml +130 -0
  16. tesorotools_python-0.0.49/src/tesorotools/assets/template.docx +0 -0
  17. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/render/__init__.py +2 -0
  18. tesorotools_python-0.0.49/src/tesorotools/render/document.py +32 -0
  19. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/render/report.py +7 -1
  20. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/utils/globals.py +5 -0
  21. tesorotools_python-0.0.49/src/tesorotools/utils/matplotlib.py +63 -0
  22. tesorotools_python-0.0.47/.gitignore +0 -29
  23. tesorotools_python-0.0.47/src/tesorotools/artists/_common.py +0 -624
  24. tesorotools_python-0.0.47/src/tesorotools/artists/barh_plot.py +0 -578
  25. tesorotools_python-0.0.47/src/tesorotools/assets/plots.yaml +0 -95
  26. tesorotools_python-0.0.47/src/tesorotools/utils/matplotlib.py +0 -38
  27. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/_build_context.py +0 -0
  28. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/_registry.py +0 -0
  29. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/assets/README.md +0 -0
  30. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/assets/fonts/CabinetGrotesk-Black.otf +0 -0
  31. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/assets/fonts/CabinetGrotesk-Bold.otf +0 -0
  32. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/assets/fonts/CabinetGrotesk-Extrabold.otf +0 -0
  33. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/assets/fonts/CabinetGrotesk-Extralight.otf +0 -0
  34. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/assets/fonts/CabinetGrotesk-Light.otf +0 -0
  35. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/assets/fonts/CabinetGrotesk-Medium.otf +0 -0
  36. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/assets/fonts/CabinetGrotesk-Regular.otf +0 -0
  37. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/assets/fonts/CabinetGrotesk-Thin.otf +0 -0
  38. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/assets/fonts/README.md +0 -0
  39. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/assets/tesoro.mplstyle +0 -0
  40. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/data_sources/__init__.py +0 -0
  41. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/data_sources/debug.py +0 -0
  42. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/database/__init__.py +0 -0
  43. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/database/local.py +0 -0
  44. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/database/push.py +0 -0
  45. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/database/shared.py +0 -0
  46. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/dependencies/__init__.py +0 -0
  47. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/dependencies/node.py +0 -0
  48. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/dependencies/resolution.py +0 -0
  49. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/driver.py +0 -0
  50. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/manifest.py +0 -0
  51. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/offsets/__init__.py +0 -0
  52. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/offsets/offsets.py +0 -0
  53. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/offsets/outliers.py +0 -0
  54. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/orchestration.py +0 -0
  55. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/pipeline/__init__.py +0 -0
  56. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/pipeline/diagnose.py +0 -0
  57. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/pipeline/engine.py +0 -0
  58. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/pipeline/rules.py +0 -0
  59. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/providers/__init__.py +0 -0
  60. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/providers/base.py +0 -0
  61. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/providers/bde.py +0 -0
  62. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/providers/ecb.py +0 -0
  63. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/providers/imf_irfcl.py +0 -0
  64. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/providers/lseg.py +0 -0
  65. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/py.typed +0 -0
  66. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/render/content/__init__.py +0 -0
  67. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/render/content/content.py +0 -0
  68. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/render/content/images.py +0 -0
  69. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/render/content/section.py +0 -0
  70. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/render/content/subtitle.py +0 -0
  71. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/render/content/table.py +0 -0
  72. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/render/content/text.py +0 -0
  73. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/render/content/title.py +0 -0
  74. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/testing/__init__.py +0 -0
  75. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/testing/compare.py +0 -0
  76. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/utils/__init__.py +0 -0
  77. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/utils/config.py +0 -0
  78. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/utils/format.py +0 -0
  79. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/utils/series.py +0 -0
  80. {tesorotools_python-0.0.47 → tesorotools_python-0.0.49}/src/tesorotools/utils/shortcuts.py +0 -0
  81. {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/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tesorotools-python
3
- Version: 0.0.47
3
+ Version: 0.0.49
4
4
  Requires-Python: >=3.13
5
5
  Requires-Dist: babel>=2.17
6
6
  Requires-Dist: matplotlib>=3.10
@@ -48,18 +48,37 @@ source = "vcs"
48
48
 
49
49
  [tool.hatch.build.targets.wheel]
50
50
  packages = ["src/tesorotools"]
51
- artifacts = ["src/tesorotools/assets/fonts/*.otf"]
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 = ["src/tesorotools/assets/fonts/*.otf"]
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, 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
@@ -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",