luxorasap 0.2.15__tar.gz → 0.2.17__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 (39) hide show
  1. {luxorasap-0.2.15 → luxorasap-0.2.17}/PKG-INFO +1 -1
  2. {luxorasap-0.2.15 → luxorasap-0.2.17}/pyproject.toml +2 -2
  3. {luxorasap-0.2.15 → luxorasap-0.2.17}/src/luxorasap/__init__.py +1 -1
  4. {luxorasap-0.2.15 → luxorasap-0.2.17}/src/luxorasap/datareader/core.py +3 -2
  5. {luxorasap-0.2.15 → luxorasap-0.2.17}/src/luxorasap/ingest/cloud/__init__.py +16 -16
  6. {luxorasap-0.2.15 → luxorasap-0.2.17}/src/luxorasap.egg-info/PKG-INFO +1 -1
  7. {luxorasap-0.2.15 → luxorasap-0.2.17}/README.md +0 -0
  8. {luxorasap-0.2.15 → luxorasap-0.2.17}/setup.cfg +0 -0
  9. {luxorasap-0.2.15 → luxorasap-0.2.17}/src/luxorasap/btgapi/__init__.py +0 -0
  10. {luxorasap-0.2.15 → luxorasap-0.2.17}/src/luxorasap/btgapi/auth.py +0 -0
  11. {luxorasap-0.2.15 → luxorasap-0.2.17}/src/luxorasap/btgapi/reports.py +0 -0
  12. {luxorasap-0.2.15 → luxorasap-0.2.17}/src/luxorasap/btgapi/trades.py +0 -0
  13. {luxorasap-0.2.15 → luxorasap-0.2.17}/src/luxorasap/datareader/__init__.py +0 -0
  14. {luxorasap-0.2.15 → luxorasap-0.2.17}/src/luxorasap/ingest/__init__.py +0 -0
  15. {luxorasap-0.2.15 → luxorasap-0.2.17}/src/luxorasap/ingest/legacy_local/dataloader.py +0 -0
  16. {luxorasap-0.2.15 → luxorasap-0.2.17}/src/luxorasap/utils/__init__.py +0 -0
  17. {luxorasap-0.2.15 → luxorasap-0.2.17}/src/luxorasap/utils/dataframe/__init__.py +0 -0
  18. {luxorasap-0.2.15 → luxorasap-0.2.17}/src/luxorasap/utils/dataframe/reader.py +0 -0
  19. {luxorasap-0.2.15 → luxorasap-0.2.17}/src/luxorasap/utils/dataframe/transforms.py +0 -0
  20. {luxorasap-0.2.15 → luxorasap-0.2.17}/src/luxorasap/utils/storage/__init__.py +0 -0
  21. {luxorasap-0.2.15 → luxorasap-0.2.17}/src/luxorasap/utils/storage/blob.py +0 -0
  22. {luxorasap-0.2.15 → luxorasap-0.2.17}/src/luxorasap/utils/storage/change_tracker.py +0 -0
  23. {luxorasap-0.2.15 → luxorasap-0.2.17}/src/luxorasap/utils/tools/__init__.py +0 -0
  24. {luxorasap-0.2.15 → luxorasap-0.2.17}/src/luxorasap/utils/tools/excel.py +0 -0
  25. {luxorasap-0.2.15 → luxorasap-0.2.17}/src/luxorasap.egg-info/SOURCES.txt +0 -0
  26. {luxorasap-0.2.15 → luxorasap-0.2.17}/src/luxorasap.egg-info/dependency_links.txt +0 -0
  27. {luxorasap-0.2.15 → luxorasap-0.2.17}/src/luxorasap.egg-info/entry_points.txt +0 -0
  28. {luxorasap-0.2.15 → luxorasap-0.2.17}/src/luxorasap.egg-info/requires.txt +0 -0
  29. {luxorasap-0.2.15 → luxorasap-0.2.17}/src/luxorasap.egg-info/top_level.txt +0 -0
  30. {luxorasap-0.2.15 → luxorasap-0.2.17}/tests/test_btgapi_auth.py +0 -0
  31. {luxorasap-0.2.15 → luxorasap-0.2.17}/tests/test_btgapi_reports.py +0 -0
  32. {luxorasap-0.2.15 → luxorasap-0.2.17}/tests/test_btgapi_trades.py +0 -0
  33. {luxorasap-0.2.15 → luxorasap-0.2.17}/tests/test_datareader.py +0 -0
  34. {luxorasap-0.2.15 → luxorasap-0.2.17}/tests/test_ingest_cloud.py +0 -0
  35. {luxorasap-0.2.15 → luxorasap-0.2.17}/tests/test_ingest_legacy_local.py +0 -0
  36. {luxorasap-0.2.15 → luxorasap-0.2.17}/tests/test_utils_change_tracker.py +0 -0
  37. {luxorasap-0.2.15 → luxorasap-0.2.17}/tests/test_utils_dataframe.py +0 -0
  38. {luxorasap-0.2.15 → luxorasap-0.2.17}/tests/test_utils_storage.py +0 -0
  39. {luxorasap-0.2.15 → luxorasap-0.2.17}/tests/tests_utils_pickle_excel.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: luxorasap
3
- Version: 0.2.15
3
+ Version: 0.2.17
4
4
  Summary: Toolbox da Luxor para ingestão, análise e automação de dados financeiros.
5
5
  Author-email: Luxor Group <backoffice@luxor.com.br>
6
6
  License: Proprietary – All rights reserved
@@ -10,7 +10,7 @@ build-backend = "setuptools.build_meta"
10
10
  #############################
11
11
  [project]
12
12
  name = "luxorasap"
13
- version = "0.2.15"
13
+ version = "0.2.17"
14
14
  description = "Toolbox da Luxor para ingestão, análise e automação de dados financeiros."
15
15
  readme = "README.md"
16
16
  requires-python = ">=3.9"
@@ -78,7 +78,7 @@ exclude = ["tests*"]
78
78
  # bumpver (sem-ver)
79
79
  #############################
80
80
  [tool.bumpver]
81
- current_version = "0.2.15"
81
+ current_version = "0.2.17"
82
82
  version_pattern = "MAJOR.MINOR.PATCH"
83
83
 
84
84
  # regex explícito – obrigatório no bumpver 2024+
@@ -13,7 +13,7 @@ from types import ModuleType
13
13
  try:
14
14
  __version__: str = metadata.version(__name__)
15
15
  except metadata.PackageNotFoundError: # editable install
16
- __version__ = "0.2.15"
16
+ __version__ = "0.2.17"
17
17
 
18
18
  # ─── Lazy loader ─────────────────────────────────────────────────
19
19
  def __getattr__(name: str) -> ModuleType:
@@ -235,7 +235,7 @@ class LuxorQuery:
235
235
  raise ValueError(f"Erro ao converter coluna {col} para bool na tabela '{table_name}'.")
236
236
 
237
237
  for col in table_columns.intersection(str_nan_format):
238
- table_data[col] = table_data[col].replace("nan", pd.NA).replace("", pd.NA)
238
+ table_data[col] = table_data[col].replace("<NA>", pd.NA).replace("nan", pd.NA).replace("", pd.NA)
239
239
 
240
240
 
241
241
 
@@ -1155,7 +1155,8 @@ class LuxorQuery:
1155
1155
  return df[["Date", "Benchmark"]].set_index("Date")
1156
1156
 
1157
1157
  def get_quota_adjusted_by_amortization(self, fund_name, quota, date):
1158
-
1158
+ """ Obtem cota ajudata pela amortização. Sendo usando para ajustar as cotas do Maratona
1159
+ """
1159
1160
  amortizations = { # Amortizacao Bruta / PL antes da amortizacao
1160
1161
  "maratona" : [{"event_date" : dt.date(2024,1,4), "amortization_ratio" : 2_517_404.21/24_165_260.40},
1161
1162
  {"event_date" : dt.date(2025,1,8), "amortization_ratio" : 950_000/27_633_373.46},
@@ -40,21 +40,23 @@ def save_table(
40
40
  format (str): Formato de saída ('parquet', 'excel', 'excel_multiple_sheets', 'pickle'). Defaults to 'parquet'.
41
41
  """
42
42
 
43
- if 'Last_Updated' not in df.columns:
44
- df['Last_Updated'] = dt.datetime.now()
45
- else:
46
- # usando numpy, vamos substituir NaN ou 'nan' pela data e hora de agora
47
- df["Last_Updated"] = np.where(((df["Last_Updated"].isna()) | (df["Last_Updated"] == 'nan')),
48
- dt.datetime.now(),
49
- df["Last_Updated"]
50
- )
43
+ # Se df for um pandas dataframe
44
+ if isinstance(df, pd.DataFrame):
45
+ if 'Last_Updated' not in df.columns:
46
+ df['Last_Updated'] = dt.datetime.now()
47
+ else:
48
+ # usando numpy, vamos substituir NaN ou 'nan' pela data e hora de agora
49
+ df["Last_Updated"] = np.where(((df["Last_Updated"].isna()) | (df["Last_Updated"] == 'nan')),
50
+ dt.datetime.now(),
51
+ df["Last_Updated"]
52
+ )
51
53
 
52
- if override == False:
53
- lq = LuxorQuery()
54
- if lq.table_exists(table_name):
55
- return
54
+ if override == False:
55
+ lq = LuxorQuery()
56
+ if lq.table_exists(table_name):
57
+ return
56
58
 
57
- df = prep_for_save(df, index=index, index_name=index_name, normalize=normalize_columns)
59
+ df = prep_for_save(df, index=index, index_name=index_name, normalize=normalize_columns)
58
60
 
59
61
  if format == 'parquet':
60
62
  #_client.write_df(df.astype(str), f"{directory}/{table_name}.parquet")
@@ -74,9 +76,7 @@ def save_table(
74
76
  _client_excel.write_excel_multiple_sheets(df, f"{directory}/{table_name}.xlsx")
75
77
 
76
78
  elif format == 'pickle':
77
- global _client_pickle
78
- if _client_pickle is None:
79
- _client_pickle = BlobPickleClient()
79
+ _client_pickle = BlobPickleClient()
80
80
  _client_pickle.write_pickle(df, f"{directory}/{table_name}.pkl")
81
81
 
82
82
  else:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: luxorasap
3
- Version: 0.2.15
3
+ Version: 0.2.17
4
4
  Summary: Toolbox da Luxor para ingestão, análise e automação de dados financeiros.
5
5
  Author-email: Luxor Group <backoffice@luxor.com.br>
6
6
  License: Proprietary – All rights reserved
File without changes
File without changes