luxorasap 0.1.24__py3-none-any.whl → 0.1.26__py3-none-any.whl

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/__init__.py CHANGED
@@ -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.1.24"
16
+ __version__ = "0.1.26"
17
17
 
18
18
  # ─── Lazy loader ─────────────────────────────────────────────────
19
19
  def __getattr__(name: str) -> ModuleType:
@@ -289,8 +289,8 @@ class LuxorQuery:
289
289
  "Price" : "Last_Price"
290
290
  })[["Date","Asset","Last_Price"]]
291
291
  )
292
+
292
293
  if table_key == 'hist_vc_px_last':
293
-
294
294
  last_prices = table.groupby("Asset")["Last_Price"].last()
295
295
  last_date_df = pd.DataFrame({"Date": [dt.datetime.now()] * len(last_prices)})
296
296
  last_date_df["Asset"] = last_prices.index
@@ -299,8 +299,8 @@ class LuxorQuery:
299
299
  table = (pd.concat([table, last_date_df]).sort_values(by="Date")
300
300
  .set_index("Date").groupby("Asset")
301
301
  .apply(lambda g: g[~g.index.duplicated(keep="first")].resample("D").ffill(),
302
- include_groups=False).reset_index(level=0, drop=True)
303
- .reset_index())
302
+ include_groups=False).reset_index()
303
+ )
304
304
 
305
305
  self.price_tables_loaded[table_key] = table
306
306
 
@@ -1994,7 +1994,7 @@ class LuxorQuery:
1994
1994
  assets = assets.query("Luxor_Classification.isin(@classification_filters)")
1995
1995
  elif len(inner_classification_filters) > 0:
1996
1996
  inner_classification_filters = [x.lower() for x in inner_classification_filters]
1997
- assets = assets.query("Inner_Classification.isin(@inner_classification_filters)")
1997
+ assets = assets.query("Luxor_Inner_Classification.isin(@inner_classification_filters)")
1998
1998
  elif len(group_filters) > 0:
1999
1999
  group_filters = [x.lower() for x in group_filters]
2000
2000
  assets = assets.query("Group.isin(@group_filters)")
@@ -2038,8 +2038,6 @@ class LuxorQuery:
2038
2038
  # Juntando dfs novamente
2039
2039
  df = pd.concat([df, df_op_fix])
2040
2040
 
2041
-
2042
-
2043
2041
  # Precisamos consertar o open_price do FX. (Deve ser convertido pelo spot de fechamento sempre)
2044
2042
 
2045
2043
  # Podemos puxar o caixa aqui e concatenar para as proximas operacoes
@@ -2192,7 +2190,6 @@ class LuxorQuery:
2192
2190
 
2193
2191
  df = pd.concat([df, df_fees])
2194
2192
 
2195
-
2196
2193
  df["Daily_Pnl"] = df["Pnl_Unchanged"] + df["Pnl_Bought"] + df["Pnl_Sold"] + df["Dividends"]
2197
2194
 
2198
2195
  # Calculando PL Inicial Ajustado
@@ -2208,7 +2205,6 @@ class LuxorQuery:
2208
2205
 
2209
2206
  df["Daily_Attribution"] = np.where(df["Open_AUM_Adjusted"] == 0,0, df["Daily_Pnl"] / df["Open_AUM_Adjusted"])
2210
2207
  df["Daily_Return"] = df.reset_index().groupby("Today")["Daily_Attribution"].sum()
2211
-
2212
2208
 
2213
2209
  # ao retornar, filtrar port Daily_Pnl != 0 e not Daily_Pnl.isna()
2214
2210
  if ignore_small_pnl:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: luxorasap
3
- Version: 0.1.24
3
+ Version: 0.1.26
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
@@ -1,10 +1,10 @@
1
- luxorasap/__init__.py,sha256=VEekXrzcacztVXmHh5gFnrx51lQr95DJBMrPV9MF0dQ,1356
1
+ luxorasap/__init__.py,sha256=0CdN0DYQg1fsYpGr_uL9pWLMvXJc8uoMmv-7n_qY1gg,1356
2
2
  luxorasap/btgapi/__init__.py,sha256=QUlfb5oiBY6K1Q5x4-a-x2wECe1At5wc2962I5odOJk,620
3
3
  luxorasap/btgapi/auth.py,sha256=PvyCtbEyBO2B1CIeAlNXWugKW1OgiKfPcVzS6K5FBnQ,1872
4
4
  luxorasap/btgapi/reports.py,sha256=ZVEMLoJPXc0r3XjPJPMsKQN0zZd1Npd7umNpAj1bncs,8040
5
5
  luxorasap/btgapi/trades.py,sha256=956HZ9BvN9C_VQvKTyBLN0x6ZygwVqBZN11F7OnNbDI,5985
6
6
  luxorasap/datareader/__init__.py,sha256=41RAvbrQ4R6oj67S32CrKqolx0CJ2W8cbOF6g5Cqm2g,120
7
- luxorasap/datareader/core.py,sha256=NOADUV78Y-9CmtuKvYFxbaAmxYjVr7IRbcI6xVLiPuY,155805
7
+ luxorasap/datareader/core.py,sha256=uBO8XxFxm5103OwFZgKm20KHqjbni-JTN_A8G5vhp0U,155775
8
8
  luxorasap/ingest/__init__.py,sha256=XhxDTN2ar-u6UCPhnxNU_to-nWiit-SpQ6cA_N9eMSs,795
9
9
  luxorasap/ingest/cloud/__init__.py,sha256=azo4zLS-kmV2ZZjePFB4CsibL4obbzHChC-Rn3Jp2Bc,2168
10
10
  luxorasap/ingest/legacy_local/dataloader.py,sha256=zKPhuiBSFwkuWN6d8g2s60KkbVk1R_1cGMCtQM9j-0c,11908
@@ -14,8 +14,8 @@ luxorasap/utils/dataframe/reader.py,sha256=Vzjdw-AeS1lnWEHQ8RZNh0kK93NWTp0NWVi_B
14
14
  luxorasap/utils/dataframe/transforms.py,sha256=OIvlTTcjFX6bUhuQp_syEp7ssm4sLzwvgsag6n2Wl3k,2438
15
15
  luxorasap/utils/storage/__init__.py,sha256=U3XRq94yzRp3kgBSUcRzs2tQgJ4o8h8a1ZzwiscA5XM,67
16
16
  luxorasap/utils/storage/blob.py,sha256=0QnwrUP-9vWYK8ffa6NqE7rV_t6RdScRM8GQnMxY_4w,3184
17
- luxorasap-0.1.24.dist-info/METADATA,sha256=2WR0iqmZG83GSNvH0wk6MzzZ1Me1r0Qvld-erZV0M40,3804
18
- luxorasap-0.1.24.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
19
- luxorasap-0.1.24.dist-info/entry_points.txt,sha256=XFh-dOwUhlya9DmGvgookMI0ezyUJjcOvTIHDEYS44g,52
20
- luxorasap-0.1.24.dist-info/top_level.txt,sha256=9YOL6bUIpzY06XFBRkUW1e4rgB32Ds91fQPGwUEjxzU,10
21
- luxorasap-0.1.24.dist-info/RECORD,,
17
+ luxorasap-0.1.26.dist-info/METADATA,sha256=SvMgaLYEOkv8EDmoqaAJ5_YY5ZcepzxrLDw5XDoilJk,3804
18
+ luxorasap-0.1.26.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
19
+ luxorasap-0.1.26.dist-info/entry_points.txt,sha256=XFh-dOwUhlya9DmGvgookMI0ezyUJjcOvTIHDEYS44g,52
20
+ luxorasap-0.1.26.dist-info/top_level.txt,sha256=9YOL6bUIpzY06XFBRkUW1e4rgB32Ds91fQPGwUEjxzU,10
21
+ luxorasap-0.1.26.dist-info/RECORD,,