Prep for dropping `Transaction.sym`
Instead let's name it `.sys` for "system", the thing we use to conduct the "transactions" .. Also rename `.bsuid` -> `.bs_mktid` for "backend system market id` which is more explicit, easier to remember and read.rekt_pps
parent
cf9442f4d5
commit
7b28c7a43f
piker/accounting
|
@ -38,6 +38,7 @@ from ..log import get_logger
|
||||||
from ._mktinfo import (
|
from ._mktinfo import (
|
||||||
Symbol, # legacy
|
Symbol, # legacy
|
||||||
MktPair,
|
MktPair,
|
||||||
|
Asset,
|
||||||
)
|
)
|
||||||
|
|
||||||
log = get_logger(__name__)
|
log = get_logger(__name__)
|
||||||
|
@ -98,7 +99,18 @@ class Transaction(Struct, frozen=True):
|
||||||
# once we have that as a required field,
|
# once we have that as a required field,
|
||||||
# we don't really need the fqsn any more..
|
# we don't really need the fqsn any more..
|
||||||
fqsn: str
|
fqsn: str
|
||||||
sym: Symbol | MktPair
|
|
||||||
|
# TODO: drop the Symbol type
|
||||||
|
|
||||||
|
# the underlying "transaction system", normally one of a ``MktPair``
|
||||||
|
# (a description of a tradable double auction) or a ledger-recorded
|
||||||
|
# ("ledger" in any sense as long as you can record transfers) of any
|
||||||
|
# sort) ``Asset``.
|
||||||
|
sym: MktPair | Asset | Symbol
|
||||||
|
|
||||||
|
@property
|
||||||
|
def sys(self) -> Symbol:
|
||||||
|
return self.sym
|
||||||
|
|
||||||
tid: Union[str, int] # unique transaction id
|
tid: Union[str, int] # unique transaction id
|
||||||
size: float
|
size: float
|
||||||
|
@ -107,35 +119,22 @@ class Transaction(Struct, frozen=True):
|
||||||
dt: datetime
|
dt: datetime
|
||||||
expiry: datetime | None = None
|
expiry: datetime | None = None
|
||||||
|
|
||||||
@property
|
|
||||||
def mktpair(self) -> MktPair:
|
|
||||||
sym = self.sym
|
|
||||||
|
|
||||||
if isinstance(sym, MktPair):
|
|
||||||
# presume it's already set as our desired
|
|
||||||
# ``MktPair`` type:
|
|
||||||
return sym
|
|
||||||
|
|
||||||
# cast to new type
|
|
||||||
return MktPair.from_fqme(
|
|
||||||
sym.fqme,
|
|
||||||
price_tick=digits_to_dec(
|
|
||||||
Decimal(str(sym.tick_size)),
|
|
||||||
),
|
|
||||||
size_tick=digits_to_dec(
|
|
||||||
Decimal(str(sym.lot_tick_size)),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
# remap for back-compat
|
# remap for back-compat
|
||||||
@property
|
@property
|
||||||
def fqme(self) -> str:
|
def fqme(self) -> str:
|
||||||
return self.fqsn
|
return self.fqsn
|
||||||
|
|
||||||
# optional key normally derived from the broker
|
# (optional) key-id defined by the broker-service backend which
|
||||||
# backend which ensures the instrument-symbol this record
|
# ensures the instrument-symbol market key for this record is unique
|
||||||
# is for is truly unique.
|
# in the "their backend/system" sense; i.e. this uid for the market
|
||||||
bsuid: Union[str, int] | None = None
|
# as defined (internally) in some namespace defined by the broker
|
||||||
|
# service.
|
||||||
|
bsuid: str | int | None = None
|
||||||
|
|
||||||
|
@property
|
||||||
|
def bs_mktid(self) -> str | int | None:
|
||||||
|
print(f'STOP USING .bsuid` for {self.fqme}')
|
||||||
|
return self.bs_mktid
|
||||||
|
|
||||||
# XXX NOTE: this will come from the `MktPair`
|
# XXX NOTE: this will come from the `MktPair`
|
||||||
# instead of defined here right?
|
# instead of defined here right?
|
||||||
|
|
Loading…
Reference in New Issue