metergraph-core 0.2.58__tar.gz → 0.2.59__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 (18) hide show
  1. {metergraph_core-0.2.58/src/metergraph_core.egg-info → metergraph_core-0.2.59}/PKG-INFO +1 -1
  2. {metergraph_core-0.2.58 → metergraph_core-0.2.59}/pyproject.toml +1 -1
  3. {metergraph_core-0.2.58 → metergraph_core-0.2.59}/src/metergraph_core/catalog.py +11 -2
  4. {metergraph_core-0.2.58 → metergraph_core-0.2.59}/src/metergraph_core/data/models.yaml +88 -4
  5. {metergraph_core-0.2.58 → metergraph_core-0.2.59}/src/metergraph_core/data/prices.yaml +175 -3
  6. {metergraph_core-0.2.58 → metergraph_core-0.2.59/src/metergraph_core.egg-info}/PKG-INFO +1 -1
  7. {metergraph_core-0.2.58 → metergraph_core-0.2.59}/MANIFEST.in +0 -0
  8. {metergraph_core-0.2.58 → metergraph_core-0.2.59}/README.md +0 -0
  9. {metergraph_core-0.2.58 → metergraph_core-0.2.59}/setup.cfg +0 -0
  10. {metergraph_core-0.2.58 → metergraph_core-0.2.59}/src/metergraph_core/__init__.py +0 -0
  11. {metergraph_core-0.2.58 → metergraph_core-0.2.59}/src/metergraph_core/billing.py +0 -0
  12. {metergraph_core-0.2.58 → metergraph_core-0.2.59}/src/metergraph_core/loader.py +0 -0
  13. {metergraph_core-0.2.58 → metergraph_core-0.2.59}/src/metergraph_core/models.py +0 -0
  14. {metergraph_core-0.2.58 → metergraph_core-0.2.59}/src/metergraph_core/retrieval.py +0 -0
  15. {metergraph_core-0.2.58 → metergraph_core-0.2.59}/src/metergraph_core.egg-info/SOURCES.txt +0 -0
  16. {metergraph_core-0.2.58 → metergraph_core-0.2.59}/src/metergraph_core.egg-info/dependency_links.txt +0 -0
  17. {metergraph_core-0.2.58 → metergraph_core-0.2.59}/src/metergraph_core.egg-info/requires.txt +0 -0
  18. {metergraph_core-0.2.58 → metergraph_core-0.2.59}/src/metergraph_core.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: metergraph-core
3
- Version: 0.2.58
3
+ Version: 0.2.59
4
4
  Summary: Reusable MeterGraph catalog and deterministic billing engine
5
5
  License-Expression: Apache-2.0
6
6
  Requires-Python: >=3.10
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "metergraph-core"
3
- version = "0.2.58"
3
+ version = "0.2.59"
4
4
  description = "Reusable MeterGraph catalog and deterministic billing engine"
5
5
  readme = "README.md"
6
6
  license = "Apache-2.0"
@@ -380,7 +380,10 @@ def _price_tokens(
380
380
 
381
381
  billable_input = input_count
382
382
  deducted_input = 0
383
- if counts_cache_read_in_input(price.publisher, price.pricing_channel, rules):
383
+ input_includes_cache_read = counts_cache_read_in_input(
384
+ price.publisher, price.pricing_channel, rules
385
+ )
386
+ if input_includes_cache_read:
384
387
  if cache_read_count > input_count:
385
388
  reasons.append("cache_read_exceeds_input")
386
389
  deducted_input = input_count
@@ -407,7 +410,13 @@ def _price_tokens(
407
410
  output_multiplier = Decimal("1")
408
411
  long_context = rules.get("long_context") or {}
409
412
  threshold = _tokens(long_context.get("threshold"))
410
- if threshold is not None and input_count > threshold:
413
+ prompt_count = input_count
414
+ if long_context.get("threshold_counts_cached_tokens"):
415
+ if not input_includes_cache_read:
416
+ prompt_count += cache_read_count
417
+ if not rules.get("input_includes_cache_write"):
418
+ prompt_count += cache_write_count
419
+ if threshold is not None and prompt_count > threshold:
411
420
  input_multiplier = _decimal(long_context.get("input_multiplier")) or Decimal("1")
412
421
  output_multiplier = _decimal(
413
422
  long_context.get("output_multiplier")
@@ -1,4 +1,4 @@
1
- version: '2026-10-09'
1
+ version: '2026-10-13'
2
2
  models:
3
3
  - canonical_id: openai/gpt-5.6-sol
4
4
  display_name: GPT-5.6 Sol
@@ -648,10 +648,38 @@ models:
648
648
  pricing_channel: vercel-ai-gateway
649
649
  execution_profiles:
650
650
  - default
651
+ - key: default:anthropic:claude-sonnet-5-5
652
+ id: anthropic:claude-sonnet-5-5
653
+ provider: anthropic
654
+ model_id: claude-sonnet-5-5
655
+ pricing_channel: anthropic-api
656
+ execution_profiles:
657
+ - default
658
+ display_name: Claude Sonnet 5.5 (direct)
659
+ - canonical_id: anthropic/claude-haiku-5.5
660
+ display_name: Claude Haiku 5.5
661
+ publisher: anthropic
662
+ released: '2026-10-07' # https://www.anthropic.com/claude-haiku-5-5
663
+ routes:
664
+ - key: default:anthropic/claude-haiku-5.5
665
+ id: anthropic/claude-haiku-5.5
666
+ provider: vercel
667
+ model_id: anthropic/claude-haiku-5.5
668
+ pricing_channel: vercel-ai-gateway
669
+ execution_profiles:
670
+ - default
671
+ - key: default:anthropic:claude-haiku-5-5
672
+ id: anthropic:claude-haiku-5-5
673
+ provider: anthropic
674
+ model_id: claude-haiku-5-5
675
+ pricing_channel: anthropic-api
676
+ execution_profiles:
677
+ - default
678
+ display_name: Claude Haiku 5.5 (direct)
651
679
  - canonical_id: openai/gpt-6.1-sol
652
680
  display_name: GPT-6.1 Sol
653
681
  publisher: openai
654
- released: '2026-09-29' # https://www.sitepoint.com/gpt-6-1-sol-developers-pricing-quickstart/
682
+ released: '2026-09-29' # https://developers.openai.com/api/docs/models/gpt-6.1-sol
655
683
  routes:
656
684
  - key: default:openai/gpt-6.1-sol
657
685
  id: openai/gpt-6.1-sol
@@ -660,6 +688,50 @@ models:
660
688
  pricing_channel: vercel-ai-gateway
661
689
  execution_profiles:
662
690
  - default
691
+ - key: default:openai:gpt-6.1-sol
692
+ id: openai:gpt-6.1-sol
693
+ provider: openai
694
+ model_id: gpt-6.1-sol
695
+ pricing_channel: openai-api
696
+ execution_profiles:
697
+ - default
698
+ display_name: GPT-6.1 Sol (direct)
699
+ - canonical_id: google/gemini-4-argon
700
+ display_name: Gemini 4 Argon
701
+ publisher: google
702
+ released: '2026-10-13' # https://ai.google.dev/gemini-api/docs/generate-content/latest-model
703
+ routes:
704
+ - key: default:google/gemini-4-argon
705
+ id: google/gemini-4-argon
706
+ provider: vercel
707
+ model_id: google/gemini-4-argon
708
+ pricing_channel: vercel-ai-gateway
709
+ execution_profiles:
710
+ - default
711
+ - canonical_id: mistral/mistral-large-4
712
+ display_name: Mistral Large 4
713
+ publisher: mistral
714
+ released: '2026-10-06' # https://docs.mistral.ai/models/mistral-large
715
+ routes:
716
+ - key: default:mistral/mistral-large-4
717
+ id: mistral/mistral-large-4
718
+ provider: vercel
719
+ model_id: mistral/mistral-large-4
720
+ pricing_channel: vercel-ai-gateway
721
+ execution_profiles:
722
+ - default
723
+ - canonical_id: meta/muse-wonder-1.0
724
+ display_name: Muse Wonder 1.0
725
+ publisher: meta
726
+ released: '2026-10-12' # https://about.fb.com/news/2026/10/introducing-muse-wonder-models/
727
+ routes:
728
+ - key: default:meta/muse-wonder-1.0
729
+ id: meta/muse-wonder-1.0
730
+ provider: vercel
731
+ model_id: meta/muse-wonder-1.0
732
+ pricing_channel: vercel-ai-gateway
733
+ execution_profiles:
734
+ - default
663
735
  - canonical_id: xai/grok-4.7
664
736
  display_name: Grok 4.7
665
737
  publisher: xai
@@ -780,6 +852,13 @@ execution_profiles:
780
852
  - default:anthropic:claude-haiku-4-5
781
853
  - default:anthropic/claude-sonnet-4.6
782
854
  - default:xai/grok-4.3
855
+ - default:anthropic/claude-haiku-5.5
856
+ - default:google/gemini-4-argon
857
+ - default:mistral/mistral-large-4
858
+ - default:meta/muse-wonder-1.0
859
+ - default:openai:gpt-6.1-sol
860
+ - default:anthropic:claude-sonnet-5-5
861
+ - default:anthropic:claude-haiku-5-5
783
862
  - id: bedrock
784
863
  routes:
785
864
  - bedrock:anthropic/claude-sonnet-5
@@ -816,8 +895,6 @@ offer_groups:
816
895
  - default:anthropic/claude-fable-5
817
896
  - default:anthropic/claude-fable-5.1
818
897
  - default:google/gemini-3.8-flash
819
- - default:google/gemini-3.7-flash
820
- - default:google/gemini-3.5-flash
821
898
  - default:google/gemini-3.5-flash-lite
822
899
  - default:google/gemini-3.1-flash-lite
823
900
  - default:google/gemma-4-31b-it
@@ -839,6 +916,10 @@ offer_groups:
839
916
  - default:zai/glm-5.3
840
917
  - default:anthropic/claude-sonnet-4.6
841
918
  - default:xai/grok-4.3
919
+ - default:anthropic/claude-haiku-5.5
920
+ - default:google/gemini-4-argon
921
+ - default:mistral/mistral-large-4
922
+ - default:meta/muse-wonder-1.0
842
923
  - id: fireworks
843
924
  credential: FIREWORKS_API_KEY
844
925
  routes:
@@ -853,6 +934,7 @@ offer_groups:
853
934
  - default:openai:gpt-5.4
854
935
  - default:openai:gpt-5.4-mini
855
936
  - default:openai:gpt-5.4-nano
937
+ - default:openai:gpt-6.1-sol
856
938
  - id: anthropic-direct
857
939
  credential: ANTHROPIC_API_KEY
858
940
  routes:
@@ -860,6 +942,8 @@ offer_groups:
860
942
  - default:anthropic:claude-opus-4-8
861
943
  - default:anthropic:claude-sonnet-5
862
944
  - default:anthropic:claude-haiku-4-5
945
+ - default:anthropic:claude-sonnet-5-5
946
+ - default:anthropic:claude-haiku-5-5
863
947
  - id: bedrock
864
948
  credential: null
865
949
  routes:
@@ -6,9 +6,9 @@
6
6
  #
7
7
  # Community updates welcome: add an alias or price entry with its provider
8
8
  # source_url and open a PR. CI validates structure and date overlaps.
9
- version: "2026-10-07"
9
+ version: "2026-10-13"
10
10
  currency: USD
11
- pricing_verified_at: "2026-10-07"
11
+ pricing_verified_at: "2026-10-13"
12
12
  models:
13
13
  - canonical_id: openai/gpt-6-sol
14
14
  publisher: openai
@@ -233,6 +233,9 @@ models:
233
233
  - canonical_id: openai/gpt-6.1-sol
234
234
  publisher: openai
235
235
  aliases:
236
+ - {provider: openai, alias: gpt-6.1-sol, channel: openai-api}
237
+ - {provider: litellm, alias: gpt-6.1-sol, channel: openai-api}
238
+ - {provider: unknown, alias: gpt-6.1-sol, channel: openai-api}
236
239
  # No global inference profile is available.
237
240
  - {provider: bedrock, alias: us.openai.gpt-6.1-sol, channel: aws-bedrock-geo, price_region: global}
238
241
  - {provider: bedrock, alias: openai.gpt-6.1-sol, channel: aws-bedrock, price_region: us-east-1}
@@ -243,6 +246,18 @@ models:
243
246
  effective_from: "2026-10-02"
244
247
  source_url: https://ai-gateway.vercel.sh/v1/models
245
248
  prices:
249
+ - channel: openai-api
250
+ region: global
251
+ effective_from: "2026-09-29"
252
+ input_per_mtok: 2.00
253
+ output_per_mtok: 10.00
254
+ cache_read_per_mtok: 0.10
255
+ cache_write_5m_per_mtok: 2.50
256
+ batch_input_per_mtok: 1.00
257
+ batch_output_per_mtok: 5.00
258
+ rules:
259
+ long_context: {threshold: 272000, input_multiplier: 2, output_multiplier: 1.5}
260
+ source_url: https://developers.openai.com/api/docs/models/gpt-6.1-sol
246
261
  # The 5m field stores AWS's unsplit cache-write rate.
247
262
  - channel: aws-bedrock-geo
248
263
  region: global
@@ -1123,6 +1138,7 @@ models:
1123
1138
  - channel: anthropic-api
1124
1139
  region: global
1125
1140
  effective_from: "2026-09-28"
1141
+ effective_to: "2026-10-07"
1126
1142
  input_per_mtok: 2.00
1127
1143
  output_per_mtok: 10.00
1128
1144
  cache_read_per_mtok: 0.20
@@ -1134,11 +1150,67 @@ models:
1134
1150
  - channel: vercel-ai-gateway
1135
1151
  region: global
1136
1152
  effective_from: "2026-09-28"
1153
+ effective_to: "2026-10-07"
1137
1154
  input_per_mtok: 2.00
1138
1155
  output_per_mtok: 10.00
1139
1156
  cache_read_per_mtok: 0.20
1140
1157
  cache_write_5m_per_mtok: 2.50
1141
1158
  source_url: https://ai-gateway.vercel.sh/v1/models
1159
+ - channel: anthropic-api
1160
+ region: global
1161
+ effective_from: "2026-10-07"
1162
+ input_per_mtok: 2.00
1163
+ output_per_mtok: 10.00
1164
+ cache_read_per_mtok: 0.10
1165
+ cache_write_5m_per_mtok: 2.50
1166
+ cache_write_1h_per_mtok: 4.00
1167
+ batch_input_per_mtok: 1.00
1168
+ batch_output_per_mtok: 5.00
1169
+ source_url: https://www.anthropic.com/claude-haiku-5-5
1170
+ - channel: vercel-ai-gateway
1171
+ region: global
1172
+ effective_from: "2026-10-07"
1173
+ input_per_mtok: 2.00
1174
+ output_per_mtok: 10.00
1175
+ cache_read_per_mtok: 0.10
1176
+ cache_write_5m_per_mtok: 2.50
1177
+ source_url: https://vercel.com/ai-gateway/models/claude-sonnet-5.5
1178
+
1179
+ - canonical_id: anthropic/claude-haiku-5.5
1180
+ publisher: anthropic
1181
+ aliases:
1182
+ - {provider: anthropic, alias: claude-haiku-5-5, channel: anthropic-api}
1183
+ - {provider: anthropic, alias: anthropic/claude-haiku-5-5, channel: anthropic-api}
1184
+ - {provider: litellm, alias: claude-haiku-5-5, channel: anthropic-api}
1185
+ - {provider: unknown, alias: claude-haiku-5-5, channel: anthropic-api}
1186
+ - provider: anthropic
1187
+ alias: anthropic/claude-haiku-5.5
1188
+ channel: vercel-ai-gateway
1189
+ rules: {input_includes_cache_read: true, input_includes_cache_write: true}
1190
+ prices:
1191
+ - channel: anthropic-api
1192
+ region: global
1193
+ effective_from: "2026-10-07"
1194
+ input_per_mtok: 0.10
1195
+ output_per_mtok: 0.50
1196
+ cache_read_per_mtok: 0.01
1197
+ cache_write_5m_per_mtok: 0.125
1198
+ cache_write_1h_per_mtok: 0.20
1199
+ batch_input_per_mtok: 0.05
1200
+ batch_output_per_mtok: 0.25
1201
+ rules:
1202
+ long_context: {threshold: 100000, input_multiplier: 5, output_multiplier: 5, threshold_counts_cached_tokens: true}
1203
+ source_url: https://www.anthropic.com/claude-haiku-5-5
1204
+ - channel: vercel-ai-gateway
1205
+ region: global
1206
+ effective_from: "2026-10-07"
1207
+ input_per_mtok: 0.10
1208
+ output_per_mtok: 0.50
1209
+ cache_read_per_mtok: 0.01
1210
+ cache_write_5m_per_mtok: 0.125
1211
+ rules:
1212
+ long_context: {threshold: 100000, input_multiplier: 5, output_multiplier: 5, threshold_counts_cached_tokens: true}
1213
+ source_url: https://vercel.com/ai-gateway/models/claude-haiku-5.5
1142
1214
 
1143
1215
  - canonical_id: anthropic/claude-sonnet-5
1144
1216
  publisher: anthropic
@@ -1445,6 +1517,51 @@ models:
1445
1517
  long_context: {threshold: 200000, input_multiplier: 2, output_multiplier: 1.5}
1446
1518
  source_url: https://vercel.com/ai-gateway/models/gemini-3.1-pro-preview
1447
1519
 
1520
+ - canonical_id: google/gemini-4-argon
1521
+ publisher: google
1522
+ aliases:
1523
+ - {provider: google, alias: gemini-4-argon, channel: google-api}
1524
+ - {provider: google, alias: models/gemini-4-argon, channel: google-api}
1525
+ - {provider: litellm, alias: gemini-4-argon, channel: google-api}
1526
+ - {provider: litellm, alias: models/gemini-4-argon, channel: google-api}
1527
+ - {provider: unknown, alias: gemini-4-argon, channel: google-api}
1528
+ - {provider: unknown, alias: models/gemini-4-argon, channel: google-api}
1529
+ - provider: google
1530
+ alias: google/gemini-4-argon
1531
+ channel: vercel-ai-gateway
1532
+ rules: {input_includes_cache_read: true}
1533
+ prices:
1534
+ - channel: google-api
1535
+ region: global
1536
+ effective_from: "2026-10-13"
1537
+ effective_to: "2026-12-01"
1538
+ input_per_mtok: 2.00
1539
+ output_per_mtok: 10.00
1540
+ cache_read_per_mtok: 0.10
1541
+ source_url: https://ai.google.dev/gemini-api/docs/generate-content/latest-model
1542
+ - channel: google-api
1543
+ region: global
1544
+ effective_from: "2026-12-01"
1545
+ input_per_mtok: 4.00
1546
+ output_per_mtok: 20.00
1547
+ cache_read_per_mtok: 0.20
1548
+ source_url: https://ai.google.dev/gemini-api/docs/generate-content/latest-model
1549
+ - channel: vercel-ai-gateway
1550
+ region: global
1551
+ effective_from: "2026-10-13"
1552
+ effective_to: "2026-12-01"
1553
+ input_per_mtok: 2.00
1554
+ output_per_mtok: 10.00
1555
+ cache_read_per_mtok: 0.10
1556
+ source_url: https://vercel.com/ai-gateway/models/gemini-4-argon
1557
+ - channel: vercel-ai-gateway
1558
+ region: global
1559
+ effective_from: "2026-12-01"
1560
+ input_per_mtok: 4.00
1561
+ output_per_mtok: 20.00
1562
+ cache_read_per_mtok: 0.20
1563
+ source_url: https://vercel.com/ai-gateway/models/gemini-4-argon
1564
+
1448
1565
  - canonical_id: google/gemini-3.5-flash
1449
1566
  publisher: google
1450
1567
  aliases:
@@ -1708,6 +1825,32 @@ models:
1708
1825
  output_per_mtok: 0.65
1709
1826
  source_url: https://ai-gateway.vercel.sh/v1/models
1710
1827
 
1828
+ - canonical_id: meta/muse-wonder-1.0
1829
+ publisher: meta
1830
+ aliases:
1831
+ - {provider: meta, alias: muse-wonder-1.0, channel: meta-api, rules: {input_includes_cache_read: true}}
1832
+ - {provider: litellm, alias: muse-wonder-1.0, channel: meta-api, rules: {input_includes_cache_read: true}}
1833
+ - {provider: unknown, alias: muse-wonder-1.0, channel: meta-api, rules: {input_includes_cache_read: true}}
1834
+ - provider: meta
1835
+ alias: meta/muse-wonder-1.0
1836
+ channel: vercel-ai-gateway
1837
+ rules: {input_includes_cache_read: true}
1838
+ prices:
1839
+ - channel: meta-api
1840
+ region: global
1841
+ effective_from: "2026-10-12"
1842
+ input_per_mtok: 4.00
1843
+ output_per_mtok: 20.00
1844
+ cache_read_per_mtok: 0.20
1845
+ source_url: https://dev.meta.ai/resources/blog/build-with-muse-wonder
1846
+ - channel: vercel-ai-gateway
1847
+ region: global
1848
+ effective_from: "2026-10-12"
1849
+ input_per_mtok: 4.00
1850
+ output_per_mtok: 20.00
1851
+ cache_read_per_mtok: 0.20
1852
+ source_url: https://vercel.com/ai-gateway/models/muse-wonder-1.0
1853
+
1711
1854
  - canonical_id: meta/muse-spark-1.1
1712
1855
  publisher: meta
1713
1856
  aliases:
@@ -1734,12 +1877,41 @@ models:
1734
1877
  output_per_mtok: 4.25
1735
1878
  cache_read_per_mtok: 0.15
1736
1879
  source_url: https://dev.meta.ai/docs/pricing-rate-limits
1880
+ - canonical_id: mistral/mistral-large-4
1881
+ publisher: mistral
1882
+ aliases:
1883
+ - {provider: mistral, alias: mistral-large-4, channel: mistral-api}
1884
+ - {provider: mistral, alias: mistral-large-latest, channel: mistral-api, effective_from: "2026-10-06", source_url: https://docs.mistral.ai/resources/changelogs}
1885
+ - {provider: litellm, alias: mistral-large-4, channel: mistral-api}
1886
+ - {provider: unknown, alias: mistral-large-4, channel: mistral-api}
1887
+ - provider: mistral
1888
+ alias: mistral/mistral-large-4
1889
+ channel: vercel-ai-gateway
1890
+ rules: {input_includes_cache_read: true}
1891
+ prices:
1892
+ - channel: mistral-api
1893
+ region: global
1894
+ effective_from: "2026-10-06"
1895
+ input_per_mtok: 1.36
1896
+ output_per_mtok: 4.18
1897
+ cache_read_per_mtok: 0.14
1898
+ batch_input_per_mtok: 0.68
1899
+ batch_output_per_mtok: 2.09
1900
+ source_url: https://docs.mistral.ai/models/mistral-large
1901
+ - channel: vercel-ai-gateway
1902
+ region: global
1903
+ effective_from: "2026-10-06"
1904
+ input_per_mtok: 0.68
1905
+ output_per_mtok: 2.09
1906
+ cache_read_per_mtok: 0.07
1907
+ source_url: https://vercel.com/ai-gateway/models/mistral-large-4
1908
+
1737
1909
  - canonical_id: mistral/mistral-large-3
1738
1910
  publisher: mistral
1739
1911
  aliases:
1740
1912
  - {provider: bedrock, alias: mistral.mistral-large-3-675b-instruct, channel: aws-bedrock}
1741
1913
  - {provider: litellm, alias: mistral-large-3, channel: mistral-api}
1742
- - {provider: mistral, alias: mistral-large-latest, channel: mistral-api, effective_from: "2025-12-02", source_url: https://docs.mistral.ai/resources/changelogs}
1914
+ - {provider: mistral, alias: mistral-large-latest, channel: mistral-api, effective_from: "2025-12-02", effective_to: "2026-10-06", source_url: https://docs.mistral.ai/resources/changelogs}
1743
1915
  - {provider: mistral, alias: mistral/mistral-large-3, channel: vercel-ai-gateway, rules: {"input_includes_cache_read": true, "input_includes_cache_write": true}}
1744
1916
  - {provider: mistral, alias: mistral-large-3, channel: mistral-api}
1745
1917
  - {provider: unknown, alias: mistral-large-3, channel: mistral-api}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: metergraph-core
3
- Version: 0.2.58
3
+ Version: 0.2.59
4
4
  Summary: Reusable MeterGraph catalog and deterministic billing engine
5
5
  License-Expression: Apache-2.0
6
6
  Requires-Python: >=3.10