fmtr.tools 1.1.2__tar.gz → 1.1.4__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.

Potentially problematic release.


This version of fmtr.tools might be problematic. Click here for more details.

Files changed (71) hide show
  1. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/PKG-INFO +40 -38
  2. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/ai_tools/agentic_tools.py +50 -23
  3. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/api_tools.py +1 -0
  4. fmtr_tools-1.1.4/fmtr/tools/version +1 -0
  5. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr.tools.egg-info/PKG-INFO +40 -38
  6. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr.tools.egg-info/requires.txt +39 -37
  7. fmtr_tools-1.1.2/fmtr/tools/version +0 -1
  8. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/LICENSE +0 -0
  9. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/README.md +0 -0
  10. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/__init__.py +0 -0
  11. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/ai_tools/__init__.py +0 -0
  12. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/ai_tools/inference_tools.py +0 -0
  13. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/async_tools.py +0 -0
  14. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/augmentation_tools.py +0 -0
  15. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/caching_tools.py +0 -0
  16. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/console_script_tools.py +0 -0
  17. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/constants.py +0 -0
  18. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/data_modelling_tools.py +0 -0
  19. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/dataclass_tools.py +0 -0
  20. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/datatype_tools.py +0 -0
  21. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/debugging_tools.py +0 -0
  22. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/docker_tools.py +0 -0
  23. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/environment_tools.py +0 -0
  24. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/function_tools.py +0 -0
  25. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/google_api_tools.py +0 -0
  26. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/hash_tools.py +0 -0
  27. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/hfh_tools.py +0 -0
  28. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/html_tools.py +0 -0
  29. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/import_tools.py +0 -0
  30. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/inspection_tools.py +0 -0
  31. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/interface_tools.py +0 -0
  32. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/iterator_tools.py +0 -0
  33. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/json_fix_tools.py +0 -0
  34. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/json_tools.py +0 -0
  35. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/logging_tools.py +0 -0
  36. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/merging_tools.py +0 -0
  37. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/metric_tools.py +0 -0
  38. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/name_tools.py +0 -0
  39. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/netrc_tools.py +0 -0
  40. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/openai_tools.py +0 -0
  41. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/parallel_tools.py +0 -0
  42. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/path_tools.py +0 -0
  43. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/pdf_tools.py +0 -0
  44. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/platform_tools.py +0 -0
  45. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/process_tools.py +0 -0
  46. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/profiling_tools.py +0 -0
  47. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/random_tools.py +0 -0
  48. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/semantic_tools.py +0 -0
  49. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/settings_tools.py +0 -0
  50. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/spaces_tools.py +0 -0
  51. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/string_tools.py +0 -0
  52. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/tabular_tools.py +0 -0
  53. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/tests/__init__.py +0 -0
  54. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/tests/conftest.py +0 -0
  55. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/tests/helpers.py +0 -0
  56. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/tests/test_datatype.py +0 -0
  57. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/tests/test_environment.py +0 -0
  58. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/tests/test_json.py +0 -0
  59. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/tests/test_path.py +0 -0
  60. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/tests/test_yaml.py +0 -0
  61. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/tokenization_tools.py +0 -0
  62. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/tools.py +0 -0
  63. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/unicode_tools.py +0 -0
  64. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/version_tools.py +0 -0
  65. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr/tools/yaml_tools.py +0 -0
  66. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr.tools.egg-info/SOURCES.txt +0 -0
  67. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr.tools.egg-info/dependency_links.txt +0 -0
  68. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr.tools.egg-info/entry_points.txt +0 -0
  69. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/fmtr.tools.egg-info/top_level.txt +0 -0
  70. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/setup.cfg +0 -0
  71. {fmtr_tools-1.1.2 → fmtr_tools-1.1.4}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.1.2
3
+ Version: 1.1.4
4
4
  Summary: Collection of high-level tools to simplify everyday development tasks, with a focus on AI/ML
5
5
  Home-page: https://github.com/fmtr/fmtr.tools
6
6
  Author: Frontmatter
@@ -9,50 +9,51 @@ License: Copyright © 2025 Frontmatter. All rights reserved.
9
9
  Description-Content-Type: text/markdown
10
10
  License-File: LICENSE
11
11
  Provides-Extra: test
12
- Requires-Dist: flet[all]; extra == "test"
13
- Requires-Dist: semver; extra == "test"
14
- Requires-Dist: pandas; extra == "test"
15
- Requires-Dist: pydantic-settings; extra == "test"
16
- Requires-Dist: pydantic-ai[logfire,openai]; extra == "test"
17
- Requires-Dist: tinynetrc; extra == "test"
18
- Requires-Dist: deepmerge; extra == "test"
19
- Requires-Dist: pytest-cov; extra == "test"
20
- Requires-Dist: torchaudio; extra == "test"
21
- Requires-Dist: peft; extra == "test"
22
- Requires-Dist: google-auth-oauthlib; extra == "test"
23
- Requires-Dist: huggingface_hub; extra == "test"
24
- Requires-Dist: uvicorn; extra == "test"
25
- Requires-Dist: ollama; extra == "test"
26
- Requires-Dist: sre_yield; extra == "test"
27
- Requires-Dist: torchvision; extra == "test"
28
- Requires-Dist: json_repair; extra == "test"
29
- Requires-Dist: flet-video; extra == "test"
30
- Requires-Dist: sentence_transformers; extra == "test"
31
- Requires-Dist: logfire; extra == "test"
32
- Requires-Dist: google-auth; extra == "test"
12
+ Requires-Dist: tokenizers; extra == "test"
13
+ Requires-Dist: faker; extra == "test"
33
14
  Requires-Dist: pydantic; extra == "test"
15
+ Requires-Dist: logfire; extra == "test"
16
+ Requires-Dist: tabulate; extra == "test"
34
17
  Requires-Dist: diskcache; extra == "test"
18
+ Requires-Dist: sre_yield; extra == "test"
19
+ Requires-Dist: distributed; extra == "test"
20
+ Requires-Dist: bokeh; extra == "test"
21
+ Requires-Dist: flet[all]; extra == "test"
35
22
  Requires-Dist: fastapi; extra == "test"
36
- Requires-Dist: pydevd-pycharm; extra == "test"
23
+ Requires-Dist: uvicorn[standard]; extra == "test"
24
+ Requires-Dist: google-auth; extra == "test"
25
+ Requires-Dist: logfire[fastapi]; extra == "test"
26
+ Requires-Dist: contexttimer; extra == "test"
37
27
  Requires-Dist: pyyaml; extra == "test"
28
+ Requires-Dist: flet-webview; extra == "test"
29
+ Requires-Dist: transformers[sentencepiece]; extra == "test"
30
+ Requires-Dist: sentence_transformers; extra == "test"
31
+ Requires-Dist: pandas; extra == "test"
32
+ Requires-Dist: dask[bag]; extra == "test"
33
+ Requires-Dist: pydevd-pycharm; extra == "test"
38
34
  Requires-Dist: openai; extra == "test"
39
- Requires-Dist: pymupdf; extra == "test"
40
- Requires-Dist: distributed; extra == "test"
35
+ Requires-Dist: peft; extra == "test"
36
+ Requires-Dist: tinynetrc; extra == "test"
37
+ Requires-Dist: semver; extra == "test"
38
+ Requires-Dist: pytest-cov; extra == "test"
39
+ Requires-Dist: pymupdf4llm; extra == "test"
40
+ Requires-Dist: pydantic-ai[logfire,openai]; extra == "test"
41
+ Requires-Dist: google-api-python-client; extra == "test"
41
42
  Requires-Dist: html2text; extra == "test"
42
- Requires-Dist: faker; extra == "test"
43
- Requires-Dist: tabulate; extra == "test"
44
- Requires-Dist: docker; extra == "test"
43
+ Requires-Dist: huggingface_hub; extra == "test"
44
+ Requires-Dist: torchaudio; extra == "test"
45
+ Requires-Dist: deepmerge; extra == "test"
46
+ Requires-Dist: torchvision; extra == "test"
47
+ Requires-Dist: google-auth-httplib2; extra == "test"
48
+ Requires-Dist: pydantic-settings; extra == "test"
49
+ Requires-Dist: google-auth-oauthlib; extra == "test"
45
50
  Requires-Dist: openpyxl; extra == "test"
46
- Requires-Dist: dask[bag]; extra == "test"
47
- Requires-Dist: contexttimer; extra == "test"
48
- Requires-Dist: pymupdf4llm; extra == "test"
49
- Requires-Dist: transformers[sentencepiece]; extra == "test"
50
- Requires-Dist: tokenizers; extra == "test"
51
- Requires-Dist: bokeh; extra == "test"
51
+ Requires-Dist: pymupdf; extra == "test"
52
52
  Requires-Dist: Unidecode; extra == "test"
53
- Requires-Dist: flet-webview; extra == "test"
54
- Requires-Dist: google-auth-httplib2; extra == "test"
55
- Requires-Dist: google-api-python-client; extra == "test"
53
+ Requires-Dist: flet-video; extra == "test"
54
+ Requires-Dist: ollama; extra == "test"
55
+ Requires-Dist: docker; extra == "test"
56
+ Requires-Dist: json_repair; extra == "test"
56
57
  Provides-Extra: yaml
57
58
  Requires-Dist: pyyaml; extra == "yaml"
58
59
  Provides-Extra: logging
@@ -88,10 +89,11 @@ Provides-Extra: merging
88
89
  Requires-Dist: deepmerge; extra == "merging"
89
90
  Provides-Extra: api
90
91
  Requires-Dist: fastapi; extra == "api"
91
- Requires-Dist: uvicorn; extra == "api"
92
+ Requires-Dist: uvicorn[standard]; extra == "api"
92
93
  Requires-Dist: logfire; extra == "api"
93
94
  Requires-Dist: semver; extra == "api"
94
95
  Requires-Dist: pydantic; extra == "api"
96
+ Requires-Dist: logfire[fastapi]; extra == "api"
95
97
  Provides-Extra: ai
96
98
  Requires-Dist: peft; extra == "ai"
97
99
  Requires-Dist: transformers[sentencepiece]; extra == "ai"
@@ -1,9 +1,9 @@
1
1
  import pydantic_ai
2
2
  from pydantic_ai import RunContext
3
3
  from pydantic_ai.agent import AgentRunResult, Agent
4
- from pydantic_ai.messages import ModelRequest, RetryPromptPart
5
4
  from pydantic_ai.models.openai import OpenAIModel
6
5
  from pydantic_ai.providers.openai import OpenAIProvider
6
+ from typing import List, Optional
7
7
 
8
8
  from fmtr.tools import environment_tools as env
9
9
  from fmtr.tools.constants import Constants
@@ -25,7 +25,7 @@ class Task:
25
25
 
26
26
  MODEL_ID = 'gpt-4o'
27
27
  MODEL_ID_FMTR = 'qwen2.5-coder:14b'
28
- SYSTEM_PROMPT = None
28
+ SYSTEM_PROMPT_STATIC = None
29
29
  DEPS_TYPE = str
30
30
  RESULT_TYPE = str
31
31
  RESULT_RETRIES = 5
@@ -41,7 +41,7 @@ class Task:
41
41
  self.agent = Agent(
42
42
  *args,
43
43
  model=self.model,
44
- system_prompt=self.SYSTEM_PROMPT or [],
44
+ system_prompt=self.SYSTEM_PROMPT_STATIC or [],
45
45
  deps_type=self.DEPS_TYPE,
46
46
  result_type=self.RESULT_TYPE,
47
47
  result_retries=self.RESULT_RETRIES,
@@ -49,58 +49,85 @@ class Task:
49
49
  )
50
50
 
51
51
  self.agent.output_validator(self.validate)
52
+ self.agent.system_prompt(self.add_system_prompt)
52
53
  self.history = []
53
54
 
54
- async def run(self, *args, **kwargs) -> AgentRunResult[RESULT_TYPE]:
55
+ @property
56
+ def sync_runner(self):
55
57
  """
56
58
 
57
- Run Agent storing history
59
+ Convenience/debug function to run without async.
58
60
 
59
61
  """
62
+ import asyncio
63
+ return asyncio.run
60
64
 
61
- result = await self.agent.run(*args, message_history=self.history, **kwargs)
65
+ async def run(self, *args, deps=None, **kwargs) -> AgentRunResult[RESULT_TYPE]:
66
+ """
67
+
68
+ Run Agent with deps-relative user prompt and while storing history
69
+
70
+ """
71
+ result = await self.agent.run(*args, user_prompt=self.get_prompt(deps), deps=deps, message_history=self.history, **kwargs)
62
72
  self.history = result.all_messages()
63
73
  return result
64
74
 
65
- async def revert(self, msg, deps):
75
+ async def validate(self, ctx: RunContext[DEPS_TYPE], output: RESULT_TYPE) -> RESULT_TYPE:
66
76
  """
67
77
 
68
- Post-hoc, user-initiated tool retry.
78
+ Dummy validator
69
79
 
70
80
  """
71
- msg_final = self.history.pop(-1)
72
- tool_return_part = msg_final.parts[0]
81
+ return output
73
82
 
74
- retry_prompt = RetryPromptPart(content=msg, tool_name=tool_return_part.tool_name, tool_call_id=tool_return_part.tool_call_id, timestamp=tool_return_part.timestamp, part_kind='retry-prompt')
75
- retry_request = ModelRequest(parts=[retry_prompt], instructions=msg_final.instructions, kind='request')
83
+ def get_prompt(self, deps: Optional[DEPS_TYPE]) -> Optional[str]:
84
+ """
76
85
 
77
- self.history.append(retry_request)
86
+ Dummy prompt generator
78
87
 
79
- result = await Task.run(self, deps=deps)
80
- return result
88
+ """
89
+ return None
81
90
 
82
- async def validate(self, ctx: RunContext[DEPS_TYPE], output: RESULT_TYPE) -> RESULT_TYPE:
91
+ def add_system_prompt(self, ctx: RunContext[DEPS_TYPE]) -> str | List[str]:
83
92
  """
84
93
 
85
- Dummy validator
94
+ Dummy system prompt append
86
95
 
87
96
  """
88
- return output
97
+
98
+ return []
89
99
 
90
100
  if __name__ == '__main__':
91
101
  import asyncio
92
102
  from fmtr.tools import dm
93
103
 
94
104
 
95
- class TestOutput(dm.BaseModel):
105
+ class TestOutput(dm.Base):
96
106
  text: str
97
107
 
98
108
 
109
+ class TestDeps(dm.Base):
110
+ lang: str
111
+ subject: str
112
+
113
+
99
114
  class TaskTest(Task):
100
- PROVIDER = Task.PROVIDER_FMTR
101
- MODEL_ID = 'qwen2.5-coder:14b'
115
+ # PROVIDER = Task.PROVIDER_FMTR
116
+ # MODEL_ID = 'qwen2.5-coder:14b'
102
117
  RESULT_TYPE = TestOutput
118
+ SYSTEM_PROMPT_STATIC = 'Tell the user jokes.'
119
+
120
+ def add_system_prompt(self, ctx: RunContext[TestDeps]) -> str:
121
+ return f'The jokes must be in the {ctx.deps.lang} language.'
122
+
123
+ def get_prompt(self, deps: Optional[TestDeps]) -> str:
124
+ return f'Tell me one about {deps.subject}.'
103
125
 
104
126
  task = TaskTest()
105
- result = asyncio.run(task.run('Hello! What is your name?'))
106
- result
127
+ deps = TestDeps(lang='English', subject='eggs')
128
+ result1 = task.sync_runner(task.run(deps=deps))
129
+ result1
130
+
131
+ deps = TestDeps(lang='German', subject='sausages')
132
+ result2 = task.sync_runner(task.run(deps=deps))
133
+ result2
@@ -52,6 +52,7 @@ class ApiBase:
52
52
 
53
53
  def __init__(self):
54
54
  self.app = FastAPI(title=self.TITLE)
55
+ logger.instrument_fastapi(self.app)
55
56
 
56
57
  for endpoint in self.get_endpoints():
57
58
  self.add_endpoint(endpoint)
@@ -0,0 +1 @@
1
+ 1.1.4
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.1.2
3
+ Version: 1.1.4
4
4
  Summary: Collection of high-level tools to simplify everyday development tasks, with a focus on AI/ML
5
5
  Home-page: https://github.com/fmtr/fmtr.tools
6
6
  Author: Frontmatter
@@ -9,50 +9,51 @@ License: Copyright © 2025 Frontmatter. All rights reserved.
9
9
  Description-Content-Type: text/markdown
10
10
  License-File: LICENSE
11
11
  Provides-Extra: test
12
- Requires-Dist: flet[all]; extra == "test"
13
- Requires-Dist: semver; extra == "test"
14
- Requires-Dist: pandas; extra == "test"
15
- Requires-Dist: pydantic-settings; extra == "test"
16
- Requires-Dist: pydantic-ai[logfire,openai]; extra == "test"
17
- Requires-Dist: tinynetrc; extra == "test"
18
- Requires-Dist: deepmerge; extra == "test"
19
- Requires-Dist: pytest-cov; extra == "test"
20
- Requires-Dist: torchaudio; extra == "test"
21
- Requires-Dist: peft; extra == "test"
22
- Requires-Dist: google-auth-oauthlib; extra == "test"
23
- Requires-Dist: huggingface_hub; extra == "test"
24
- Requires-Dist: uvicorn; extra == "test"
25
- Requires-Dist: ollama; extra == "test"
26
- Requires-Dist: sre_yield; extra == "test"
27
- Requires-Dist: torchvision; extra == "test"
28
- Requires-Dist: json_repair; extra == "test"
29
- Requires-Dist: flet-video; extra == "test"
30
- Requires-Dist: sentence_transformers; extra == "test"
31
- Requires-Dist: logfire; extra == "test"
32
- Requires-Dist: google-auth; extra == "test"
12
+ Requires-Dist: tokenizers; extra == "test"
13
+ Requires-Dist: faker; extra == "test"
33
14
  Requires-Dist: pydantic; extra == "test"
15
+ Requires-Dist: logfire; extra == "test"
16
+ Requires-Dist: tabulate; extra == "test"
34
17
  Requires-Dist: diskcache; extra == "test"
18
+ Requires-Dist: sre_yield; extra == "test"
19
+ Requires-Dist: distributed; extra == "test"
20
+ Requires-Dist: bokeh; extra == "test"
21
+ Requires-Dist: flet[all]; extra == "test"
35
22
  Requires-Dist: fastapi; extra == "test"
36
- Requires-Dist: pydevd-pycharm; extra == "test"
23
+ Requires-Dist: uvicorn[standard]; extra == "test"
24
+ Requires-Dist: google-auth; extra == "test"
25
+ Requires-Dist: logfire[fastapi]; extra == "test"
26
+ Requires-Dist: contexttimer; extra == "test"
37
27
  Requires-Dist: pyyaml; extra == "test"
28
+ Requires-Dist: flet-webview; extra == "test"
29
+ Requires-Dist: transformers[sentencepiece]; extra == "test"
30
+ Requires-Dist: sentence_transformers; extra == "test"
31
+ Requires-Dist: pandas; extra == "test"
32
+ Requires-Dist: dask[bag]; extra == "test"
33
+ Requires-Dist: pydevd-pycharm; extra == "test"
38
34
  Requires-Dist: openai; extra == "test"
39
- Requires-Dist: pymupdf; extra == "test"
40
- Requires-Dist: distributed; extra == "test"
35
+ Requires-Dist: peft; extra == "test"
36
+ Requires-Dist: tinynetrc; extra == "test"
37
+ Requires-Dist: semver; extra == "test"
38
+ Requires-Dist: pytest-cov; extra == "test"
39
+ Requires-Dist: pymupdf4llm; extra == "test"
40
+ Requires-Dist: pydantic-ai[logfire,openai]; extra == "test"
41
+ Requires-Dist: google-api-python-client; extra == "test"
41
42
  Requires-Dist: html2text; extra == "test"
42
- Requires-Dist: faker; extra == "test"
43
- Requires-Dist: tabulate; extra == "test"
44
- Requires-Dist: docker; extra == "test"
43
+ Requires-Dist: huggingface_hub; extra == "test"
44
+ Requires-Dist: torchaudio; extra == "test"
45
+ Requires-Dist: deepmerge; extra == "test"
46
+ Requires-Dist: torchvision; extra == "test"
47
+ Requires-Dist: google-auth-httplib2; extra == "test"
48
+ Requires-Dist: pydantic-settings; extra == "test"
49
+ Requires-Dist: google-auth-oauthlib; extra == "test"
45
50
  Requires-Dist: openpyxl; extra == "test"
46
- Requires-Dist: dask[bag]; extra == "test"
47
- Requires-Dist: contexttimer; extra == "test"
48
- Requires-Dist: pymupdf4llm; extra == "test"
49
- Requires-Dist: transformers[sentencepiece]; extra == "test"
50
- Requires-Dist: tokenizers; extra == "test"
51
- Requires-Dist: bokeh; extra == "test"
51
+ Requires-Dist: pymupdf; extra == "test"
52
52
  Requires-Dist: Unidecode; extra == "test"
53
- Requires-Dist: flet-webview; extra == "test"
54
- Requires-Dist: google-auth-httplib2; extra == "test"
55
- Requires-Dist: google-api-python-client; extra == "test"
53
+ Requires-Dist: flet-video; extra == "test"
54
+ Requires-Dist: ollama; extra == "test"
55
+ Requires-Dist: docker; extra == "test"
56
+ Requires-Dist: json_repair; extra == "test"
56
57
  Provides-Extra: yaml
57
58
  Requires-Dist: pyyaml; extra == "yaml"
58
59
  Provides-Extra: logging
@@ -88,10 +89,11 @@ Provides-Extra: merging
88
89
  Requires-Dist: deepmerge; extra == "merging"
89
90
  Provides-Extra: api
90
91
  Requires-Dist: fastapi; extra == "api"
91
- Requires-Dist: uvicorn; extra == "api"
92
+ Requires-Dist: uvicorn[standard]; extra == "api"
92
93
  Requires-Dist: logfire; extra == "api"
93
94
  Requires-Dist: semver; extra == "api"
94
95
  Requires-Dist: pydantic; extra == "api"
96
+ Requires-Dist: logfire[fastapi]; extra == "api"
95
97
  Provides-Extra: ai
96
98
  Requires-Dist: peft; extra == "ai"
97
99
  Requires-Dist: transformers[sentencepiece]; extra == "ai"
@@ -16,10 +16,11 @@ ollama
16
16
 
17
17
  [api]
18
18
  fastapi
19
- uvicorn
19
+ uvicorn[standard]
20
20
  logfire
21
21
  semver
22
22
  pydantic
23
+ logfire[fastapi]
23
24
 
24
25
  [augmentation]
25
26
  faker
@@ -112,50 +113,51 @@ tabulate
112
113
  openpyxl
113
114
 
114
115
  [test]
115
- flet[all]
116
- semver
117
- pandas
118
- pydantic-settings
119
- pydantic-ai[logfire,openai]
120
- tinynetrc
121
- deepmerge
122
- pytest-cov
123
- torchaudio
124
- peft
125
- google-auth-oauthlib
126
- huggingface_hub
127
- uvicorn
128
- ollama
129
- sre_yield
130
- torchvision
131
- json_repair
132
- flet-video
133
- sentence_transformers
134
- logfire
135
- google-auth
116
+ tokenizers
117
+ faker
136
118
  pydantic
119
+ logfire
120
+ tabulate
137
121
  diskcache
122
+ sre_yield
123
+ distributed
124
+ bokeh
125
+ flet[all]
138
126
  fastapi
139
- pydevd-pycharm
127
+ uvicorn[standard]
128
+ google-auth
129
+ logfire[fastapi]
130
+ contexttimer
140
131
  pyyaml
132
+ flet-webview
133
+ transformers[sentencepiece]
134
+ sentence_transformers
135
+ pandas
136
+ dask[bag]
137
+ pydevd-pycharm
141
138
  openai
142
- pymupdf
143
- distributed
139
+ peft
140
+ tinynetrc
141
+ semver
142
+ pytest-cov
143
+ pymupdf4llm
144
+ pydantic-ai[logfire,openai]
145
+ google-api-python-client
144
146
  html2text
145
- faker
146
- tabulate
147
- docker
147
+ huggingface_hub
148
+ torchaudio
149
+ deepmerge
150
+ torchvision
151
+ google-auth-httplib2
152
+ pydantic-settings
153
+ google-auth-oauthlib
148
154
  openpyxl
149
- dask[bag]
150
- contexttimer
151
- pymupdf4llm
152
- transformers[sentencepiece]
153
- tokenizers
154
- bokeh
155
+ pymupdf
155
156
  Unidecode
156
- flet-webview
157
- google-auth-httplib2
158
- google-api-python-client
157
+ flet-video
158
+ ollama
159
+ docker
160
+ json_repair
159
161
 
160
162
  [tokenization]
161
163
  tokenizers
@@ -1 +0,0 @@
1
- 1.1.2
File without changes
File without changes
File without changes
File without changes