Replaced NamedTuples with dataclasses.
This commit is contained in:
parent
c9db50d07a
commit
ced9d209d8
|
@ -13,15 +13,15 @@
|
|||
# [Github](https://github.com/blockworks-foundation)
|
||||
# [Email](mailto:hello@blockworks.foundation)
|
||||
|
||||
import typing
|
||||
|
||||
from dataclasses import dataclass
|
||||
from decimal import Decimal
|
||||
|
||||
from ..instrumentvalue import InstrumentValue
|
||||
from ..token import Token
|
||||
|
||||
|
||||
class UnsettledFundingParams(typing.NamedTuple):
|
||||
@dataclass
|
||||
class UnsettledFundingParams:
|
||||
quote_token: Token
|
||||
base_position: InstrumentValue
|
||||
long_funding: Decimal
|
||||
|
|
|
@ -20,6 +20,7 @@ import json
|
|||
import os.path
|
||||
import typing
|
||||
|
||||
from dataclasses import dataclass
|
||||
from solana.publickey import PublicKey
|
||||
|
||||
|
||||
|
@ -135,7 +136,8 @@ with open(os.path.join(DATA_PATH, "ids.json")) as json_file:
|
|||
#
|
||||
# Runtime details of the current version of mango-explorer.
|
||||
#
|
||||
class PackageVersion(typing.NamedTuple):
|
||||
@dataclass
|
||||
class PackageVersion:
|
||||
version: str
|
||||
last_commit: str
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@ import pandas
|
|||
import pyserum.enums
|
||||
import typing
|
||||
|
||||
from dataclasses import dataclass
|
||||
from decimal import Decimal
|
||||
from pyserum.market.types import Order as PySerumOrder
|
||||
from solana.publickey import PublicKey
|
||||
|
@ -139,7 +140,8 @@ class OrderType(enum.Enum):
|
|||
#
|
||||
# A package that encapsulates common information about an order.
|
||||
#
|
||||
class Order(typing.NamedTuple):
|
||||
@dataclass
|
||||
class Order:
|
||||
id: int
|
||||
client_id: int
|
||||
owner: PublicKey
|
||||
|
|
|
@ -44,7 +44,7 @@ class OutputFormattter:
|
|||
format: OutputFormat
|
||||
|
||||
def out(self, *obj: typing.Any) -> None:
|
||||
if len(obj) == 1 and isinstance(obj[0], collections.abc.Sequence) and not isinstance(obj, str):
|
||||
if len(obj) == 1 and isinstance(obj[0], collections.abc.Sequence) and not isinstance(obj[0], str):
|
||||
for item in obj[0]:
|
||||
self.single_out(item)
|
||||
else:
|
||||
|
|
|
@ -19,6 +19,7 @@ import rx.subject
|
|||
import rx.operators as ops
|
||||
import typing
|
||||
|
||||
from dataclasses import dataclass
|
||||
from datetime import datetime
|
||||
from dateutil import parser
|
||||
from decimal import Decimal
|
||||
|
@ -42,7 +43,8 @@ from .token import Instrument, Token
|
|||
#
|
||||
# A simple way to package details of a funding rate in a single object.
|
||||
#
|
||||
class FundingRate(typing.NamedTuple):
|
||||
@dataclass
|
||||
class FundingRate:
|
||||
symbol: str
|
||||
rate: Decimal
|
||||
oracle_price: Decimal
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
import typing
|
||||
|
||||
from dataclasses import dataclass
|
||||
from decimal import Decimal
|
||||
|
||||
from .orders import Side
|
||||
|
@ -29,7 +30,8 @@ from .orders import Side
|
|||
# The information is usually split across 3 collections - 'is bid', 'orders' and 'client ID's. That can be a
|
||||
# little awkward to use, so this tuple packages it all together, per order.
|
||||
#
|
||||
class PlacedOrder(typing.NamedTuple):
|
||||
@dataclass
|
||||
class PlacedOrder:
|
||||
id: int
|
||||
client_id: int
|
||||
side: Side
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
import logging
|
||||
import typing
|
||||
|
||||
from dataclasses import dataclass
|
||||
from datetime import datetime
|
||||
from decimal import Decimal
|
||||
from solana.publickey import PublicKey
|
||||
|
@ -35,7 +36,8 @@ from .version import Version
|
|||
#
|
||||
# A simple way to package borrow and deposit rates together in a single object.
|
||||
#
|
||||
class InterestRates(typing.NamedTuple):
|
||||
@dataclass
|
||||
class InterestRates:
|
||||
deposit: Decimal
|
||||
borrow: Decimal
|
||||
|
||||
|
@ -50,7 +52,8 @@ class InterestRates(typing.NamedTuple):
|
|||
#
|
||||
# A simple way to package borrow and deposit balances together in a single object.
|
||||
#
|
||||
class BankBalances(typing.NamedTuple):
|
||||
@dataclass
|
||||
class BankBalances:
|
||||
deposits: Decimal
|
||||
borrows: Decimal
|
||||
|
||||
|
|
|
@ -4,12 +4,14 @@ import typing
|
|||
from ...context import mango
|
||||
from ...fakes import fake_context, fake_model_state, fake_order, fake_price, fake_inventory
|
||||
|
||||
from dataclasses import dataclass
|
||||
from decimal import Decimal
|
||||
|
||||
from mango.marketmaking.orderchain.biasquantityonpositionelement import BiasQuantityOnPositionElement
|
||||
|
||||
|
||||
class BQOPInput(typing.NamedTuple):
|
||||
@dataclass()
|
||||
class BQOPInput:
|
||||
buy: mango.Order
|
||||
sell: mango.Order
|
||||
current: Decimal
|
||||
|
|
Loading…
Reference in New Issue