Call `open_ledger_dfs()` for `disect` sub-cmd
Drop all the old `polars` (groupby + agg related) mangling to get a df per fqme by delegating to the new routine and add in the `.cumsum()`ing (per frame) as a first start on computing pps using dfs instead of python dicts + loops as in `ppu()`.account_tests
parent
8f1983fd8e
commit
3704e2ceac
|
@ -40,10 +40,8 @@ from ._ledger import (
|
||||||
# open_trade_ledger,
|
# open_trade_ledger,
|
||||||
# TransactionLedger,
|
# TransactionLedger,
|
||||||
)
|
)
|
||||||
from ._pos import (
|
from .calc import (
|
||||||
PpTable,
|
open_ledger_dfs,
|
||||||
load_pps_from_ledger,
|
|
||||||
# load_account,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -241,8 +239,10 @@ def disect(
|
||||||
# "fully_qualified_account_name"
|
# "fully_qualified_account_name"
|
||||||
fqan: str,
|
fqan: str,
|
||||||
fqme: str, # for ib
|
fqme: str, # for ib
|
||||||
pdb: bool = False,
|
|
||||||
|
|
||||||
|
# TODO: in tractor we should really have
|
||||||
|
# a debug_mode ctx for wrapping any kind of code no?
|
||||||
|
pdb: bool = False,
|
||||||
bs_mktid: str = typer.Option(
|
bs_mktid: str = typer.Option(
|
||||||
None,
|
None,
|
||||||
"-bid",
|
"-bid",
|
||||||
|
@ -252,34 +252,32 @@ def disect(
|
||||||
"-l",
|
"-l",
|
||||||
),
|
),
|
||||||
):
|
):
|
||||||
|
from piker.log import get_console_log
|
||||||
|
get_console_log(loglevel)
|
||||||
|
|
||||||
pair: tuple[str, str]
|
pair: tuple[str, str]
|
||||||
if not (pair := unpack_fqan(fqan)):
|
if not (pair := unpack_fqan(fqan)):
|
||||||
raise ValueError('{fqan} malformed!?')
|
raise ValueError('{fqan} malformed!?')
|
||||||
|
|
||||||
brokername, account = pair
|
brokername, account = pair
|
||||||
|
|
||||||
# ledger: TransactionLedger
|
# ledger dfs groupby-partitioned by fqme
|
||||||
# records: dict[str, dict]
|
dfs: dict[str, pl.DataFrame]
|
||||||
table: PpTable
|
with open_ledger_dfs(
|
||||||
df: pl.DataFrame # legder df
|
|
||||||
ppt: pl.DataFrame # piker position table
|
|
||||||
df, ppt, table = load_pps_from_ledger(
|
|
||||||
brokername,
|
brokername,
|
||||||
account,
|
account,
|
||||||
filter_by_ids={'fqme': [fqme]},
|
) as dfs:
|
||||||
)
|
|
||||||
# sers = [
|
for key in dfs:
|
||||||
# pl.Series(e['fqme'], e['cumsum'])
|
df = dfs[key]
|
||||||
# for e in ppt.to_dicts()
|
dfs[key] = df.with_columns([
|
||||||
# ]
|
pl.cumsum('size').alias('cumsum'),
|
||||||
# ppt_by_id: pl.DataFrame = ppt.filter(
|
])
|
||||||
# pl.col('fqme') == fqme,
|
|
||||||
# )
|
ppt = dfs[fqme]
|
||||||
assert not df.is_empty()
|
assert not df.is_empty()
|
||||||
|
assert not ppt.is_empty()
|
||||||
|
|
||||||
|
# TODO: we REALLY need a better console REPL for this
|
||||||
|
# kinda thing..
|
||||||
breakpoint()
|
breakpoint()
|
||||||
# with open_trade_ledger(
|
|
||||||
# brokername,
|
|
||||||
# account,
|
|
||||||
# ) as ledger:
|
|
||||||
# for tid, rec in ledger.items():
|
|
||||||
# bs_mktid: str = rec['bs_mktid']
|
|
||||||
|
|
Loading…
Reference in New Issue