greenpick 0.7.0__tar.gz → 0.8.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. {greenpick-0.7.0/src/greenpick.egg-info → greenpick-0.8.0}/PKG-INFO +11 -7
  2. {greenpick-0.7.0 → greenpick-0.8.0}/README.md +342 -338
  3. {greenpick-0.7.0 → greenpick-0.8.0}/pyproject.toml +59 -59
  4. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/__init__.py +15 -15
  5. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/data/auto_repository.py +55 -50
  6. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/data/emission_factors.json +48 -40
  7. greenpick-0.8.0/src/greenpick/data/japan_repository.py +177 -0
  8. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/data/regions.json +35 -35
  9. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/data/typical.json +1106 -2
  10. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/data/typical_repository.py +120 -120
  11. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/server.py +571 -570
  12. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/services/data_hint.py +191 -189
  13. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/services/sources.py +131 -109
  14. {greenpick-0.7.0 → greenpick-0.8.0/src/greenpick.egg-info}/PKG-INFO +11 -7
  15. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick.egg-info/SOURCES.txt +1 -0
  16. {greenpick-0.7.0 → greenpick-0.8.0}/tests/test_services.py +2233 -2158
  17. {greenpick-0.7.0 → greenpick-0.8.0}/LICENSE +0 -0
  18. {greenpick-0.7.0 → greenpick-0.8.0}/setup.cfg +0 -0
  19. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/__main__.py +0 -0
  20. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/config.py +0 -0
  21. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/data/__init__.py +0 -0
  22. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/data/_net.py +0 -0
  23. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/data/annual.json +0 -0
  24. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/data/canada_repository.py +0 -0
  25. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/data/eia_repository.py +0 -0
  26. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/data/electricitymaps_repository.py +0 -0
  27. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/data/entsoe_repository.py +0 -0
  28. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/data/gpu_power.json +0 -0
  29. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/data/inference_energy.json +0 -0
  30. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/data/instance_families.json +0 -0
  31. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/data/mock_repository.py +0 -0
  32. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/data/network.json +0 -0
  33. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/data/power.json +0 -0
  34. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/data/pricing.json +0 -0
  35. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/data/repository.py +0 -0
  36. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/data/static_data.py +0 -0
  37. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/models.py +0 -0
  38. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/services/__init__.py +0 -0
  39. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/services/carbon_service.py +0 -0
  40. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/services/cost_service.py +0 -0
  41. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/services/forecast_service.py +0 -0
  42. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/services/inference_service.py +0 -0
  43. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/services/instance_service.py +0 -0
  44. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/services/justification_service.py +0 -0
  45. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/services/latency_service.py +0 -0
  46. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/services/locality_service.py +0 -0
  47. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/services/metric_scaffold_service.py +0 -0
  48. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/services/migration_service.py +0 -0
  49. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/services/offhours_service.py +0 -0
  50. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/services/recommender.py +0 -0
  51. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/services/residency_service.py +0 -0
  52. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/services/rightsizing_service.py +0 -0
  53. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/services/scheduling_service.py +0 -0
  54. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/services/serverless_service.py +0 -0
  55. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/services/serving_service.py +0 -0
  56. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/services/training_service.py +0 -0
  57. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick/services/typical_ranking_service.py +0 -0
  58. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick.egg-info/dependency_links.txt +0 -0
  59. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick.egg-info/entry_points.txt +0 -0
  60. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick.egg-info/requires.txt +0 -0
  61. {greenpick-0.7.0 → greenpick-0.8.0}/src/greenpick.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: greenpick
3
- Version: 0.7.0
3
+ Version: 0.8.0
4
4
  Summary: Design-time sustainability co-pilot (MCP server): greener, cheaper cloud infrastructure decisions with carbon + cost + latency tradeoffs.
5
5
  Author-email: "Data Science Advisers, LLC" <info@datascienceadvisers.com>
6
6
  License-Expression: MIT
@@ -52,8 +52,8 @@ environment (Cursor / Claude Code / Kiro). Ask it where to deploy, when to run a
52
52
  right-size — and it answers with an honest **carbon + cost + latency** tradeoff, in-editor, in
53
53
  seconds. (It responds when you ask; auto-nudging on infra-code changes is on the roadmap.)
54
54
 
55
- > **Status: working — 20 tools.** Live carbon for US (EIA-930), EU (ENTSO-E) and Canada (Hydro-Québec,
56
- > IESO — no key needed), cross-cloud cost
55
+ > **Status: working — 20 tools.** Live carbon for US (EIA-930), EU (ENTSO-E), Canada (Hydro-Québec,
56
+ > IESO — no key needed) and Tokyo (TEPCO — no key needed), cross-cloud cost
57
57
  > parity (Vantage-refreshed), per-axis R/Y/G ratings, carbon-aware scheduling + day-ahead forecast,
58
58
  > GPU-training **and LLM-inference** carbon, right-sizing, serving-pattern and data-locality/residency
59
59
  > checks — all shipped. Offline or without API keys, falls back to clearly-labelled *typical* values:
@@ -139,7 +139,7 @@ backfire guards** — is the part nothing else puts together.
139
139
  - **Free data only.** No flow-traced consumption accounting; carbon forecast is relative, not absolute.
140
140
 
141
141
  Roadmap: data-format/engine efficiency advice, sub-national grid zones, CI/CD integration.
142
- See `docs/user-questions-backlog.md`.
142
+ See `CHANGELOG.md` for what has shipped in each version.
143
143
 
144
144
  ## MCP tools
145
145
 
@@ -197,11 +197,15 @@ See `docs/user-questions-backlog.md`.
197
197
  - **Hydro-Québec** (Montreal / Québec City regions) and **IESO** (Toronto regions) — live hourly
198
198
  generation by source, public, **no key needed**. Hydro-Québec figures arrive 1.5–6 h late, so the
199
199
  latest complete hour is used and its timestamp shown.
200
+ - **Tokyo** (the three Tokyo regions) — the Tokyo area's half-hourly generation by source, about an
201
+ hour behind, **no key needed**. Source: [Tokyo Electric Power Company Holdings, Inc.](https://www.tepco.co.jp/forecast/html/area_data-j.html). Used with TEPCO's
202
+ permission; GreenPick shows only the carbon intensity it calculates from the mix (never TEPCO's own
203
+ figures), credits TEPCO on every Tokyo result, and fetches at most once every 30 minutes.
200
204
  - **Typical** — the offline default and fallback: for each region, this calendar month's average
201
- intensity and average hour-of-day profile (UTC), computed from 12 months of real hourly EIA-930 /
202
- ENTSO-E data (`data/typical.json`, refreshed by `scripts/refresh_typical.py`). Labelled
205
+ intensity and average hour-of-day profile (UTC), computed from 12 months of real hourly data from
206
+ the live sources above (`data/typical.json`, refreshed by `scripts/refresh_typical.py`). Labelled
203
207
  `quality: "typical"` — a realistic norm, never presented as a current reading.
204
- - **Annual** — for Singapore, Tokyo, Mumbai/Pune and Sydney, where no free hourly data exists: the country's
208
+ - **Annual** — for Singapore, Mumbai/Pune and Sydney, where no free hourly data exists: the country's
205
209
  yearly lifecycle grid intensity from [Ember](https://ember-energy.org/) (via Our World in Data,
206
210
  CC BY 4.0), with source and year (`data/annual.json`). Labelled `quality: "annual_average"`; fine for
207
211
  comparing regions, but carries no timing signal.