def serialize_orders(doc_dict, region_data): """ Serializes a GetOrders cache file's contents. :param dict doc_dict: The parsed cache document in dict form. :rtype: str :returns: The UUDIF serialized JSON message. """ order_list = MarketOrderList( order_generator=ORDER_GENERATOR, upload_keys=UPLOAD_KEYS, ) # timezone-aware datetime. generated_at = now_dtime_in_utc() region_id = region_data[2] type_id = region_data[3] for order_item in doc_dict['lret']: #print order_item for entry in order_item: #print entry order = MarketOrder( order_id=entry['orderID'], is_bid=entry['bid'], region_id=entry['regionID'], solar_system_id=entry['solarSystemID'], station_id=entry['stationID'], type_id=entry['typeID'], price=entry['price'], volume_entered=entry['volEntered'], volume_remaining=entry['volRemaining'], minimum_volume=entry['minVolume'], order_issue_date=wintime_to_datetime(entry['issueDate']), order_duration=entry['duration'], order_range=entry['range'], generated_at=generated_at, ) order_list.add_order(order) if len(order_list) is 0: # There were no orders for this item+region combo. order_list.set_empty_region(region_id, type_id, generated_at) return encode_to_json(order_list)
def serialize_orders(doc_dict, region_data): """ Serializes a GetOrders cache file's contents. :param dict doc_dict: The parsed cache document in dict form. :rtype: str :returns: The UUDIF serialized JSON message. """ order_list = MarketOrderList( order_generator=ORDER_GENERATOR, upload_keys=UPLOAD_KEYS, ) # timezone-aware datetime. generated_at = now_dtime_in_utc() region_id = region_data[2] type_id = region_data[3] for order_item in doc_dict['lret']: #print order_item for entry in order_item: #print entry order = MarketOrder( order_id=entry['orderID'], is_bid=entry['bid'], region_id=entry['regionID'], solar_system_id=entry['solarSystemID'], station_id=entry['stationID'], type_id=entry['typeID'], price=entry['price'], volume_entered=entry['volEntered'], volume_remaining=entry['volRemaining'], minimum_volume=entry['minVolume'], order_issue_date=wintime_to_datetime(entry['issueDate']), order_duration=entry['duration'], order_range=entry['range'], generated_at=generated_at, ) order_list.add_order(order) if len(order_list) is 0: # There were no orders for this item+region combo. order_list.set_empty_region(region_id, type_id, generated_at) return encode_to_json(order_list)
def parse_from_dict(json_dict): """ Given a Unified Uploader message, parse the contents and return a MarketOrderList. :param dict json_dict: A Unified Uploader message as a JSON dict. :rtype: MarketOrderList :returns: An instance of MarketOrderList, containing the orders within. """ order_columns = json_dict['columns'] order_list = MarketOrderList( upload_keys=json_dict['uploadKeys'], order_generator=json_dict['generator'], ) for rowset in json_dict['rowsets']: generated_at = parse_datetime(rowset['generatedAt']) region_id = rowset['regionID'] type_id = rowset['typeID'] order_list.set_empty_region(region_id, type_id, generated_at) for row in rowset['rows']: order_kwargs = _columns_to_kwargs(SPEC_TO_KWARG_CONVERSION, order_columns, row) order_kwargs.update({ 'region_id': region_id, 'type_id': type_id, 'generated_at': generated_at, }) order_kwargs['order_issue_date'] = parse_datetime( order_kwargs['order_issue_date']) order_list.add_order(MarketOrder(**order_kwargs)) return order_list
def parse_from_dict(json_dict): """ Given a Unified Uploader message, parse the contents and return a MarketOrderList. :param dict json_dict: A Unified Uploader message as a JSON dict. :rtype: MarketOrderList :returns: An instance of MarketOrderList, containing the orders within. """ order_columns = json_dict['columns'] order_list = MarketOrderList( upload_keys=json_dict['uploadKeys'], order_generator=json_dict['generator'], ) for rowset in json_dict['rowsets']: generated_at = parse_datetime(rowset['generatedAt']) region_id = rowset['regionID'] type_id = rowset['typeID'] order_list.set_empty_region(region_id, type_id, generated_at) for row in rowset['rows']: order_kwargs = _columns_to_kwargs( SPEC_TO_KWARG_CONVERSION, order_columns, row) order_kwargs.update({ 'region_id': region_id, 'type_id': type_id, 'generated_at': generated_at, }) order_kwargs['order_issue_date'] = parse_datetime(order_kwargs['order_issue_date']) order_list.add_order(MarketOrder(**order_kwargs)) return order_list