luxorasap 0.0.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.
- luxorasap-0.0.1/PKG-INFO +70 -0
- luxorasap-0.0.1/README.md +35 -0
- luxorasap-0.0.1/pyproject.toml +90 -0
- luxorasap-0.0.1/setup.cfg +4 -0
- luxorasap-0.0.1/src/luxorasap/__init__.py +20 -0
- luxorasap-0.0.1/src/luxorasap/datareader/__init__.py +7 -0
- luxorasap-0.0.1/src/luxorasap/datareader/core.py +2996 -0
- luxorasap-0.0.1/src/luxorasap.egg-info/PKG-INFO +70 -0
- luxorasap-0.0.1/src/luxorasap.egg-info/SOURCES.txt +12 -0
- luxorasap-0.0.1/src/luxorasap.egg-info/dependency_links.txt +1 -0
- luxorasap-0.0.1/src/luxorasap.egg-info/entry_points.txt +2 -0
- luxorasap-0.0.1/src/luxorasap.egg-info/requires.txt +27 -0
- luxorasap-0.0.1/src/luxorasap.egg-info/top_level.txt +1 -0
- luxorasap-0.0.1/tests/test_datareader.py +56 -0
luxorasap-0.0.1/PKG-INFO
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: luxorasap
|
|
3
|
+
Version: 0.0.1
|
|
4
|
+
Summary: Luxor’s unified toolbox for data ingestion, querying and analytics.
|
|
5
|
+
Author-email: Luxor Group <backoffice@luxor.com.br>
|
|
6
|
+
License: Proprietary – All rights reserved
|
|
7
|
+
Classifier: Programming Language :: Python :: 3
|
|
8
|
+
Classifier: License :: Other/Proprietary License
|
|
9
|
+
Classifier: Operating System :: OS Independent
|
|
10
|
+
Requires-Python: >=3.9
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
Requires-Dist: pandas>=2.2
|
|
13
|
+
Requires-Dist: numpy>=1.25
|
|
14
|
+
Requires-Dist: loguru>=0.7
|
|
15
|
+
Requires-Dist: python-dotenv>=1.0
|
|
16
|
+
Requires-Dist: azure-storage-blob>=12.19
|
|
17
|
+
Requires-Dist: pyarrow>=15.0
|
|
18
|
+
Requires-Dist: requests>=2.32
|
|
19
|
+
Requires-Dist: pydantic>=2.7
|
|
20
|
+
Requires-Dist: scipy>=1.13
|
|
21
|
+
Provides-Extra: datareader
|
|
22
|
+
Requires-Dist: pyarrow>=15.0; extra == "datareader"
|
|
23
|
+
Provides-Extra: ingest
|
|
24
|
+
Requires-Dist: pandera>=0.18; extra == "ingest"
|
|
25
|
+
Provides-Extra: btgapi
|
|
26
|
+
Requires-Dist: requests>=2.32; extra == "btgapi"
|
|
27
|
+
Requires-Dist: pydantic>=2.7; extra == "btgapi"
|
|
28
|
+
Provides-Extra: dev
|
|
29
|
+
Requires-Dist: pytest>=8.2; extra == "dev"
|
|
30
|
+
Requires-Dist: black>=24.4.0; extra == "dev"
|
|
31
|
+
Requires-Dist: isort>=5.13; extra == "dev"
|
|
32
|
+
Requires-Dist: bumpver>=2024.3; extra == "dev"
|
|
33
|
+
Requires-Dist: pre-commit>=3.7; extra == "dev"
|
|
34
|
+
Requires-Dist: build>=1.2; extra == "dev"
|
|
35
|
+
|
|
36
|
+
# LuxorASAP
|
|
37
|
+
|
|
38
|
+
**LuxorASAP** é o pacote-guarda-chuva que concentra as ferramentas internas de dados da Luxor Group:
|
|
39
|
+
consulta estruturada ao data lake, cargas padronizadas para ADLS, wrappers de API, utilitários e muito mais.
|
|
40
|
+
|
|
41
|
+
[](https://pypi.org/project/luxorasap/)
|
|
42
|
+

|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Instalação
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# pacote base
|
|
50
|
+
pip install luxorasap
|
|
51
|
+
|
|
52
|
+
# com o submódulo datareader
|
|
53
|
+
pip install "luxorasap[datareader]"
|
|
54
|
+
```
|
|
55
|
+
## Uso rápido
|
|
56
|
+
```python
|
|
57
|
+
from luxorasap.datareader import LuxorQuery
|
|
58
|
+
|
|
59
|
+
lq = LuxorQuery(blob_directory="enriched/parquet")
|
|
60
|
+
prices = lq.get_prices("aapl us equity", "2024-01-01", "2024-12-31")
|
|
61
|
+
print(prices.head())
|
|
62
|
+
```
|
|
63
|
+
## Submódulos
|
|
64
|
+
| Módulo | Descrição rápida | Extras |
|
|
65
|
+
| ---------------------- | ---------------------------------------- | ------------------------------------- |
|
|
66
|
+
| `luxorasap.datareader` | Leitura de tabelas e séries no data lake | `pip install "luxorasap[datareader]"` |
|
|
67
|
+
| `luxorasap.ingest` | Funções de carga padronizada para ADLS | `"luxorasap[ingest]"` |
|
|
68
|
+
| `luxorasap.btgapi` | Wrapper REST para dados BTG | `"luxorasap[btgapi]"` |
|
|
69
|
+
|
|
70
|
+
© Luxor Group – uso interno. Todos os direitos reservados.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# LuxorASAP
|
|
2
|
+
|
|
3
|
+
**LuxorASAP** é o pacote-guarda-chuva que concentra as ferramentas internas de dados da Luxor Group:
|
|
4
|
+
consulta estruturada ao data lake, cargas padronizadas para ADLS, wrappers de API, utilitários e muito mais.
|
|
5
|
+
|
|
6
|
+
[](https://pypi.org/project/luxorasap/)
|
|
7
|
+

|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Instalação
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# pacote base
|
|
15
|
+
pip install luxorasap
|
|
16
|
+
|
|
17
|
+
# com o submódulo datareader
|
|
18
|
+
pip install "luxorasap[datareader]"
|
|
19
|
+
```
|
|
20
|
+
## Uso rápido
|
|
21
|
+
```python
|
|
22
|
+
from luxorasap.datareader import LuxorQuery
|
|
23
|
+
|
|
24
|
+
lq = LuxorQuery(blob_directory="enriched/parquet")
|
|
25
|
+
prices = lq.get_prices("aapl us equity", "2024-01-01", "2024-12-31")
|
|
26
|
+
print(prices.head())
|
|
27
|
+
```
|
|
28
|
+
## Submódulos
|
|
29
|
+
| Módulo | Descrição rápida | Extras |
|
|
30
|
+
| ---------------------- | ---------------------------------------- | ------------------------------------- |
|
|
31
|
+
| `luxorasap.datareader` | Leitura de tabelas e séries no data lake | `pip install "luxorasap[datareader]"` |
|
|
32
|
+
| `luxorasap.ingest` | Funções de carga padronizada para ADLS | `"luxorasap[ingest]"` |
|
|
33
|
+
| `luxorasap.btgapi` | Wrapper REST para dados BTG | `"luxorasap[btgapi]"` |
|
|
34
|
+
|
|
35
|
+
© Luxor Group – uso interno. Todos os direitos reservados.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
#############################
|
|
2
|
+
# Build & packaging metadata
|
|
3
|
+
#############################
|
|
4
|
+
[build-system]
|
|
5
|
+
requires = ["setuptools>=69", "wheel"]
|
|
6
|
+
build-backend = "setuptools.build_meta"
|
|
7
|
+
|
|
8
|
+
#############################
|
|
9
|
+
# Core project metadata
|
|
10
|
+
#############################
|
|
11
|
+
[project]
|
|
12
|
+
name = "luxorasap"
|
|
13
|
+
version = "0.0.1" # altere apenas via bumpver!
|
|
14
|
+
description = "Luxor’s unified toolbox for data ingestion, querying and analytics."
|
|
15
|
+
readme = "README.md"
|
|
16
|
+
requires-python = ">=3.9"
|
|
17
|
+
authors = [{ name = "Luxor Group", email = "backoffice@luxor.com.br" }]
|
|
18
|
+
license = { text = "Proprietary – All rights reserved" }
|
|
19
|
+
classifiers = [
|
|
20
|
+
"Programming Language :: Python :: 3",
|
|
21
|
+
"License :: Other/Proprietary License",
|
|
22
|
+
"Operating System :: OS Independent",
|
|
23
|
+
]
|
|
24
|
+
|
|
25
|
+
#############################
|
|
26
|
+
# Runtime dependencies
|
|
27
|
+
#############################
|
|
28
|
+
dependencies = [
|
|
29
|
+
# core
|
|
30
|
+
"pandas>=2.2",
|
|
31
|
+
"numpy>=1.25",
|
|
32
|
+
"loguru>=0.7",
|
|
33
|
+
"python-dotenv>=1.0",
|
|
34
|
+
"azure-storage-blob>=12.19",
|
|
35
|
+
"pyarrow>=15.0", # usado por datareader/ingest
|
|
36
|
+
"requests>=2.32", # usado por btgapi
|
|
37
|
+
"pydantic>=2.7", # usado por btgapi
|
|
38
|
+
"scipy>=1.13",
|
|
39
|
+
]
|
|
40
|
+
|
|
41
|
+
[project.optional-dependencies]
|
|
42
|
+
# mantém para uso futuro ou para quem queira instalação granular
|
|
43
|
+
datareader = ["pyarrow>=15.0"]
|
|
44
|
+
ingest = ["pandera>=0.18"]
|
|
45
|
+
btgapi = ["requests>=2.32", "pydantic>=2.7"]
|
|
46
|
+
dev = [
|
|
47
|
+
"pytest>=8.2",
|
|
48
|
+
"black>=24.4.0",
|
|
49
|
+
"isort>=5.13",
|
|
50
|
+
"bumpver>=2024.3",
|
|
51
|
+
"pre-commit>=3.7",
|
|
52
|
+
"build>=1.2"
|
|
53
|
+
]
|
|
54
|
+
|
|
55
|
+
#############################
|
|
56
|
+
# Console scripts (opcional)
|
|
57
|
+
#############################
|
|
58
|
+
[project.scripts]
|
|
59
|
+
# habilita: $ luxor-report --help
|
|
60
|
+
luxor-report = "luxorasap.cli:main"
|
|
61
|
+
|
|
62
|
+
#############################
|
|
63
|
+
# setuptools discovery
|
|
64
|
+
#############################
|
|
65
|
+
[tool.setuptools.packages.find]
|
|
66
|
+
where = ["src"]
|
|
67
|
+
exclude = ["tests*"]
|
|
68
|
+
|
|
69
|
+
#############################
|
|
70
|
+
# bumpver (sem-ver)
|
|
71
|
+
#############################
|
|
72
|
+
[tool.bumpver]
|
|
73
|
+
current_version = "0.0.1"
|
|
74
|
+
version_pattern = "MAJOR.MINOR.PATCH"
|
|
75
|
+
commit_message = "release: {old_version} → {new_version}"
|
|
76
|
+
tag_message = "v{new_version}"
|
|
77
|
+
tag = true
|
|
78
|
+
push = false # evita push automático; mude se desejar
|
|
79
|
+
|
|
80
|
+
#############################
|
|
81
|
+
# Tooling (black / isort)
|
|
82
|
+
#############################
|
|
83
|
+
[tool.black]
|
|
84
|
+
line-length = 88
|
|
85
|
+
target-version = ["py311"]
|
|
86
|
+
|
|
87
|
+
[tool.isort]
|
|
88
|
+
profile = "black"
|
|
89
|
+
line_length = 88
|
|
90
|
+
src_paths = ["src", "tests"]
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"""
|
|
2
|
+
LuxorASAP – pacote principal.
|
|
3
|
+
|
|
4
|
+
Carrega subpacotes e expõe um ponto único de versão.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from importlib.metadata import PackageNotFoundError, version as _pkg_version
|
|
8
|
+
|
|
9
|
+
try:
|
|
10
|
+
__version__: str = _pkg_version(__name__)
|
|
11
|
+
except PackageNotFoundError: # pacote ainda não instalado (editable during dev)
|
|
12
|
+
__version__ = "0.0.0"
|
|
13
|
+
|
|
14
|
+
# Reexporta submódulos principais
|
|
15
|
+
from . import datareader, ingest, utils # noqa: F401
|
|
16
|
+
|
|
17
|
+
# Conveniência opcional – permite: from luxorasap import LuxorQuery
|
|
18
|
+
#from .datareader import LuxorQuery # noqa: F401
|
|
19
|
+
|
|
20
|
+
__all__ = ["__version__", "datareader", "ingest", "utils", "LuxorQuery"]
|