python-fastllm 0.0.28__tar.gz → 0.0.29__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 (28) hide show
  1. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/PKG-INFO +1 -1
  2. python_fastllm-0.0.29/fastllm/__init__.py +1 -0
  3. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/fastllm/types.py +12 -6
  4. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/python_fastllm.egg-info/PKG-INFO +1 -1
  5. python_fastllm-0.0.28/fastllm/__init__.py +0 -1
  6. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/README.md +0 -0
  7. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/fastllm/_modidx.py +0 -0
  8. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/fastllm/acomplete.py +0 -0
  9. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/fastllm/anthropic.py +0 -0
  10. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/fastllm/chat.py +0 -0
  11. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/fastllm/codex.py +0 -0
  12. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/fastllm/gemini.py +0 -0
  13. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/fastllm/openai_chat.py +0 -0
  14. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/fastllm/openai_responses.py +0 -0
  15. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/fastllm/specs/anthropic.json +0 -0
  16. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/fastllm/specs/anthropic.yml +0 -0
  17. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/fastllm/specs/gemini.json +0 -0
  18. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/fastllm/specs/openai.with-code-samples.json +0 -0
  19. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/fastllm/specs/openai.with-code-samples.yml +0 -0
  20. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/fastllm/specs/spec_manifest.json +0 -0
  21. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/fastllm/streaming.py +0 -0
  22. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/pyproject.toml +0 -0
  23. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/python_fastllm.egg-info/SOURCES.txt +0 -0
  24. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/python_fastllm.egg-info/dependency_links.txt +0 -0
  25. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/python_fastllm.egg-info/entry_points.txt +0 -0
  26. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/python_fastllm.egg-info/requires.txt +0 -0
  27. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/python_fastllm.egg-info/top_level.txt +0 -0
  28. {python_fastllm-0.0.28 → python_fastllm-0.0.29}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-fastllm
3
- Version: 0.0.28
3
+ Version: 0.0.29
4
4
  Author-email: Kerem Turgutlu <keremturgutlu@gmail.com>
5
5
  License: Apache-2.0
6
6
  Project-URL: Repository, https://github.com/AnswerDotAI/fastllm
@@ -0,0 +1 @@
1
+ __version__ = "0.0.29"
@@ -5,11 +5,11 @@
5
5
  # %% auto #0
6
6
  __all__ = ['PartType', 'FinishReason', 'api_registry', 'model_prices_url', 'haik45', 'sonn45', 'sonn', 'sonn46', 'sonn5',
7
7
  'opus46', 'opus', 'gpt54', 'gpt54m', 'gpt55', 'codex54', 'codex54m', 'codex55', 'codex53spark',
8
- 'model_info_registry', 'modern_llm', 'deepseek_v4_common', 'mimo_v25_common', 'codex_pricing', 'Part', 'Msg',
9
- 'ToolCall', 'display_list', 'Usage', 'Completion', 'APIRegistry', 'mk_completion', 'mk_tool_res_msg',
10
- 'fn_schema', 'sys_text', 'part_txt', 'data_url', 'url_mime', 'payload_kwargs', 'get_api_key', 'resize_b64',
11
- 'model_prices_meta', 'infer_api_name', 'get_model_meta', 'register_model_info', 'get_model_info',
12
- 'get_model_pricing', 'approx_pricing', 'is_deepseek_peak_hour']
8
+ 'model_info_registry', 'modern_llm', 'deepseek_v4_common', 'mimo_v25_common', 'codex_pricing', 'sol',
9
+ 'terra', 'luna', 'gpt56s', 'Part', 'Msg', 'ToolCall', 'display_list', 'Usage', 'Completion', 'APIRegistry',
10
+ 'mk_completion', 'mk_tool_res_msg', 'fn_schema', 'sys_text', 'part_txt', 'data_url', 'url_mime',
11
+ 'payload_kwargs', 'get_api_key', 'resize_b64', 'model_prices_meta', 'infer_api_name', 'get_model_meta',
12
+ 'register_model_info', 'get_model_info', 'get_model_pricing', 'approx_pricing', 'is_deepseek_peak_hour']
13
13
 
14
14
  # %% ../nbs/00_types.ipynb #b4d047fd
15
15
  import httpx, base64, io
@@ -417,6 +417,12 @@ for model in (haik45, sonn45, sonn46, sonn5, opus46, opus):
417
417
  # %% ../nbs/00_types.ipynb #60630540
418
418
  register_model_info(sonn5, base=sonn5, max_input_tokens=760_000)
419
419
 
420
+ # %% ../nbs/00_types.ipynb #bb0c4c2a
421
+ sol,terra,luna = gpt56s = 'gpt-5.6-sol gpt-5.6-terra gpt-5.6-luna'.split()
422
+ for model in ['gpt-5.6']+gpt56s:
423
+ register_model_info(model, 'openai', base=model, base_vendor_name='openai', max_input_tokens=272_000)
424
+ register_model_info(model, 'codex', base=model, base_vendor_name='openai', max_input_tokens=272_000, **codex_pricing)
425
+
420
426
  # %% ../nbs/00_types.ipynb #24cc47ec
421
427
  def get_model_pricing(mn, vendor_name, million=True):
422
428
  return {k:round(v * (1e6 if million else 1), 6)
@@ -429,7 +435,7 @@ def approx_pricing(nm, vendor_name, out=10, cache=80, inp=10, markup=0):
429
435
  p = get_model_pricing(nm, vendor_name)
430
436
  ic = p.get('cache_creation_input_token_cost', p['input_cost_per_token'])
431
437
  res = (p['output_cost_per_token']*out + p['cache_read_input_token_cost']*cache + ic*inp) / (out+cache+inp)
432
- if nm in ('claude-opus-4-7','claude-opus-4-8','claude-fable-5'): res *= 1.5
438
+ if vendor_name=='anthropic': res *= 1.5
433
439
  return res*(1+markup)
434
440
 
435
441
  # %% ../nbs/00_types.ipynb #d2a310fb
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-fastllm
3
- Version: 0.0.28
3
+ Version: 0.0.29
4
4
  Author-email: Kerem Turgutlu <keremturgutlu@gmail.com>
5
5
  License: Apache-2.0
6
6
  Project-URL: Repository, https://github.com/AnswerDotAI/fastllm
@@ -1 +0,0 @@
1
- __version__ = "0.0.28"