from dataclasses import dataclass
from datetime import datetime
from py_alpaca_api.models.model_utils import KEY_PROCESSORS, extract_class_data
@dataclass
############################################
# Data Class Order Conversion Functions
############################################
[docs]
def process_legs(legs: list[dict]) -> list[OrderModel]:
"""Process the legs and create a list of OrderModel objects based on the provided data.
Args:
legs (List[Dict]): A list of dictionaries representing the legs.
Returns:
List[OrderModel]: A list of OrderModel objects generated from the leg data.
Note:
If the legs parameter is empty, an empty list will be returned.
"""
if not legs:
return []
return (
[
OrderModel(**extract_class_data(leg, KEY_PROCESSORS, OrderModel))
for leg in legs
]
if legs
else []
)
[docs]
def order_class_from_dict(data_dict: dict) -> OrderModel:
"""Creates an instance of `OrderModel` using the provided dictionary data.
Args:
data_dict (Dict): A dictionary containing the data used to create the `OrderModel` instance.
Returns:
OrderModel: An instance of `OrderModel` created using the provided data.
Raises:
None
"""
order_data = extract_class_data(data_dict, KEY_PROCESSORS, OrderModel)
order_data["legs"] = process_legs(data_dict.get("legs", []))
return OrderModel(**order_data)