piker/piker/accounting
Gud Boi 70e8d60326 Fix `pytest` config-dir isolation in subactors
The old (commented-out) `get_app_dir()` override gated on
`'pytest' in sys.modules` which can NEVER work in spawned
subactors (fresh procs, no pytest import); as a result test
`paperboi`/daemon actors were writing into the user's REAL
`~/.config/piker/accounting/` files.. friggin yikes.

Deats,
- add `config._maybe_use_test_dir()` which lazily (at
  conf-path access time, NOT import time) reads the
  `piker_test_dir` entry from
  `tractor.runtime._state._runtime_vars['piker_vars']` as
  pre-loaded by `open_piker_runtime()` from the
  `tests.conftest._open_test_pikerd()` overrides.
- hook it in `get_conf_dir()` and route `get_conf_path()`
  + `load()`'s mkdir through `get_conf_dir()`.
- route `.accounting._ledger` / `._pos` dir derivation
  through `config.get_conf_dir()` (was reading the
  `_config_dir` global directly, bypassing the override);
  also `mkdir(parents=True, exist_ok=True)` for nested
  tmp-dir creation.

(this patch was generated in some part by [`claude-code`][claude-code-gh])
[claude-code-gh]: https://github.com/anthropics/claude-code

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

Prompt-IO: ai/prompt-io/claude/20260610T170859Z_75cefe10_prompt_io.md
2026-10-07 03:10:41 -04:00
..
README.rst Officially drop `Position.size` 2023-08-03 16:57:02 -04:00
__init__.py Enable console logging in `.accounting` on import 2026-02-23 12:22:48 -05:00
_allocate.py Bleh, move `.data.types` back up to top level pkg 2023-08-05 15:57:10 -04:00
_ledger.py Fix `pytest` config-dir isolation in subactors 2026-10-07 03:10:41 -04:00
_mktinfo.py Finally drop `Symbol` 2026-01-02 16:49:16 -05:00
_pos.py Fix `pytest` config-dir isolation in subactors 2026-10-07 03:10:41 -04:00
calc.py accounting.calc: `.error()` on bad txn-time fields.. 2026-01-07 14:05:23 -05:00
cli.py Enable console logging in `.accounting` on import 2026-02-23 12:22:48 -05:00

README.rst

.accounting

A subsystem for transaction processing, storage and historical measurement.

.pnl

BEP, the break even price: the price at which liquidating a remaining position results in a zero PnL since the position was "opened" in the destination asset.

PPU: price-per-unit: the "average cost" (in cumulative mean terms) of the "entry" transactions which "make a position larger"; taking a profit relative to this price means that you will "make more profit then made prior" since the position was opened.