mirror of
https://github.com/aljazceru/bitfinex-api-py.git
synced 2025-12-24 01:04:22 +01:00
Remove skip parameter in _Serializer::parse, add flat argument in _Serializer::__init__. Add _Serializer::__flatten class method. Fix small bugs in bfxapi.rest.endpoints.rest_public_endpoints and bfxapi.rest.endpoints.rest_authenticated_endpoints.
This commit is contained in:
@@ -145,7 +145,7 @@ class RestAuthenticatedEndpoints(Middleware):
|
||||
endpoint = "auth/r/orders/hist"
|
||||
else: endpoint = f"auth/r/orders/{symbol}/hist"
|
||||
|
||||
body = {
|
||||
body = {
|
||||
"id": ids, "start": start, "end": end,
|
||||
"limit": limit
|
||||
}
|
||||
@@ -185,7 +185,7 @@ class RestAuthenticatedEndpoints(Middleware):
|
||||
start: Optional[str] = None,
|
||||
end: Optional[str] = None,
|
||||
limit: Optional[int] = None) -> List[Ledger]:
|
||||
body = {
|
||||
body = {
|
||||
"category": category, "start": start, "end": end,
|
||||
"limit": limit
|
||||
}
|
||||
@@ -199,11 +199,10 @@ class RestAuthenticatedEndpoints(Middleware):
|
||||
|
||||
def get_symbol_margin_info(self, symbol: str) -> SymbolMarginInfo:
|
||||
return serializers.SymbolMarginInfo \
|
||||
.parse(*(self._post(f"auth/r/info/margin/{symbol}")[2]), \
|
||||
skip=["symbol"])
|
||||
.parse(*self._post(f"auth/r/info/margin/{symbol}"))
|
||||
|
||||
def get_all_symbols_margin_info(self) -> List[SymbolMarginInfo]:
|
||||
return [ serializers.SymbolMarginInfo.parse(*([sub_data[1]] + sub_data[2])) \
|
||||
return [ serializers.SymbolMarginInfo.parse(*sub_data) \
|
||||
for sub_data in self._post("auth/r/info/margin/sym_all") ]
|
||||
|
||||
def get_positions(self) -> List[Position]:
|
||||
@@ -225,6 +224,13 @@ class RestAuthenticatedEndpoints(Middleware):
|
||||
.parse(*self._post("auth/w/position/increase", \
|
||||
body={ "symbol": symbol, "amount": amount }))
|
||||
|
||||
def get_increase_position_info(self,
|
||||
symbol: str,
|
||||
amount: Union[Decimal, float, str]) -> PositionIncreaseInfo:
|
||||
return serializers.PositionIncreaseInfo \
|
||||
.parse(*self._post("auth/r/position/increase/info", \
|
||||
body={ "symbol": symbol, "amount": amount }))
|
||||
|
||||
def get_positions_history(self,
|
||||
*,
|
||||
start: Optional[str] = None,
|
||||
@@ -249,7 +255,7 @@ class RestAuthenticatedEndpoints(Middleware):
|
||||
start: Optional[str] = None,
|
||||
end: Optional[str] = None,
|
||||
limit: Optional[int] = None) -> List[PositionAudit]:
|
||||
body = {
|
||||
body = {
|
||||
"ids": ids, "start": start, "end": end,
|
||||
"limit": limit
|
||||
}
|
||||
|
||||
@@ -49,10 +49,10 @@ class RestPublicEndpoints(Middleware):
|
||||
return cast(List[FundingCurrencyTicker], data)
|
||||
|
||||
def get_t_ticker(self, pair: str) -> TradingPairTicker:
|
||||
return serializers.TradingPairTicker.parse(*self._get(f"ticker/{pair}"), skip=["symbol"])
|
||||
return serializers.TradingPairTicker.parse(*([pair] + self._get(f"ticker/{pair}")))
|
||||
|
||||
def get_f_ticker(self, currency: str) -> FundingCurrencyTicker:
|
||||
return serializers.FundingCurrencyTicker.parse(*self._get(f"ticker/{currency}"), skip=["symbol"])
|
||||
return serializers.FundingCurrencyTicker.parse(*([currency] + self._get(f"ticker/{currency}")))
|
||||
|
||||
def get_tickers_history(self,
|
||||
symbols: List[str],
|
||||
@@ -183,7 +183,7 @@ class RestPublicEndpoints(Middleware):
|
||||
limit: Optional[int] = None) -> List[DerivativesStatus]:
|
||||
params = { "sort": sort, "start": start, "end": end, "limit": limit }
|
||||
data = self._get(f"status/{type}/{symbol}/hist", params=params)
|
||||
return [ serializers.DerivativesStatus.parse(*sub_data, skip=[ "key" ]) for sub_data in data ]
|
||||
return [ serializers.DerivativesStatus.parse(*([symbol] + sub_data)) for sub_data in data ]
|
||||
|
||||
def get_liquidations(self,
|
||||
*,
|
||||
|
||||
@@ -786,12 +786,15 @@ SymbolMarginInfo = generate_labeler_serializer(
|
||||
name="SymbolMarginInfo",
|
||||
klass=types.SymbolMarginInfo,
|
||||
labels=[
|
||||
"_PLACEHOLDER",
|
||||
"symbol",
|
||||
"tradable_balance",
|
||||
"gross_balance",
|
||||
"buy",
|
||||
"sell"
|
||||
]
|
||||
],
|
||||
|
||||
flat=True
|
||||
)
|
||||
|
||||
BaseMarginInfo = generate_labeler_serializer(
|
||||
@@ -849,11 +852,15 @@ PositionIncreaseInfo = generate_labeler_serializer(
|
||||
"_PLACEHOLDER",
|
||||
"_PLACEHOLDER",
|
||||
"funding_avail",
|
||||
"_PLACEHOLDER",
|
||||
"_PLACEHOLDER",
|
||||
"funding_value",
|
||||
"funding_required",
|
||||
"funding_value_currency",
|
||||
"funding_required_currency"
|
||||
]
|
||||
],
|
||||
|
||||
flat=True
|
||||
)
|
||||
|
||||
PositionIncrease = generate_labeler_serializer(
|
||||
|
||||
@@ -20,7 +20,7 @@ class PlatformStatus(_Type):
|
||||
|
||||
@dataclass
|
||||
class TradingPairTicker(_Type):
|
||||
symbol: Optional[str]
|
||||
symbol: str
|
||||
bid: float
|
||||
bid_size: float
|
||||
ask: float
|
||||
@@ -34,7 +34,7 @@ class TradingPairTicker(_Type):
|
||||
|
||||
@dataclass
|
||||
class FundingCurrencyTicker(_Type):
|
||||
symbol: Optional[str]
|
||||
symbol: str
|
||||
frr: float
|
||||
bid: float
|
||||
bid_period: int
|
||||
@@ -114,7 +114,7 @@ class Candle(_Type):
|
||||
|
||||
@dataclass
|
||||
class DerivativesStatus(_Type):
|
||||
key: Optional[str]
|
||||
key: str
|
||||
mts: int
|
||||
deriv_price: float
|
||||
spot_price: float
|
||||
@@ -466,7 +466,7 @@ class Movement(_Type):
|
||||
|
||||
@dataclass
|
||||
class SymbolMarginInfo(_Type):
|
||||
symbol: Optional[str]
|
||||
symbol: str
|
||||
tradable_balance: float
|
||||
gross_balance: float
|
||||
buy: float
|
||||
|
||||
Reference in New Issue
Block a user