Răsfoiți Sursa

buy: sum multiple deposits for same material

raylu 2 săptămâni în urmă
părinte
comite
18e6372721
1 a modificat fișierele cu 5 adăugiri și 3 ștergeri
  1. 5 3
      buy.py

+ 5 - 3
buy.py

@@ -66,10 +66,12 @@ def main() -> None:
 	}))
 
 	# deposits of current bids
-	orders.sort(key=lambda order: order['Limit'] * order['Amount'], reverse=True)
-	print('\ncurrent bid deposits:')
+	bid_deposits: dict[str, float] = collections.defaultdict(float)
 	for order in orders:
-		print(f"{order['MaterialTicker']:4} {order['Limit'] * order['Amount']:7,.0f}")
+		bid_deposits[order['MaterialTicker']] += order['Limit'] * order['Amount']
+	print('\ncurrent bid deposits:')
+	for mat, deposit in sorted(bid_deposits.items(), key=lambda kv: kv[1], reverse=True):
+		print(f"{mat:4} {deposit:7,.0f}")
 
 def get_raw_prices() -> typing.Mapping[str, market.RawPrice]:
 	return {p['MaterialTicker']: p