growing.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import collections
  2. import httpx
  3. def main():
  4. corps = httpx.get('https://prun.raylu.net/stats/data/parentCorps.json').json()
  5. companies = httpx.get('https://prun.raylu.net/stats/data/knownCompanies.json').json()
  6. volume_delta(corps, companies)
  7. def volume_delta(corps, companies):
  8. co_totals = httpx.get('https://prun.raylu.net/stats/data/company-data-jul26.json').json()['totals']
  9. jul_volume = month_volume(corps, companies, co_totals)
  10. co_totals = httpx.get('https://prun.raylu.net/stats/data/company-data-aug26.json').json()['totals']
  11. aug_volume = month_volume(corps, companies, co_totals)
  12. for corp, volume in aug_volume.items():
  13. print(corp, volume - jul_volume.get(corp, 0))
  14. def month_volume(corps, companies, co_totals) -> dict:
  15. volumes = collections.defaultdict(int)
  16. for coid, pd in co_totals.items():
  17. co = companies.get(coid)
  18. if co is None: continue
  19. corp = co.get('Corporation')
  20. if corp is None: continue
  21. corp = corps.get(corp, corp)
  22. volumes[corp] += pd['volume']
  23. return volumes
  24. def base_delta(corps, companies):
  25. base_data = httpx.get('https://prun.raylu.net/stats/data/base-data-jul26.json').json()
  26. jul_bases = month_bases(corps, companies, base_data)
  27. base_data = httpx.get('https://prun.raylu.net/stats/data/base-data-aug26.json').json()
  28. aug_bases = month_bases(corps, companies, base_data)
  29. for corp, base_count in aug_bases.items():
  30. print(corp, base_count - jul_bases.get(corp, 0))
  31. def month_bases(corps, companies, base_data) -> dict:
  32. base_counts = collections.defaultdict(int)
  33. for coid, bd in base_data.items():
  34. co = companies.get(coid)
  35. if co is None: continue
  36. corp = co.get('Corporation')
  37. if corp is None: continue
  38. corp = corps.get(corp, corp)
  39. base_counts[corp] += bd['bases']
  40. return base_counts
  41. if __name__ == '__main__':
  42. main()