fmtr.tools 1.1.25__tar.gz → 1.1.27__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 (80) hide show
  1. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/PKG-INFO +45 -45
  2. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/__init__.py +6 -0
  3. fmtr_tools-1.1.27/fmtr/tools/http_tools.py +26 -0
  4. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/pattern_tools.py +7 -72
  5. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/setup_tools/setup_tools.py +2 -2
  6. fmtr_tools-1.1.27/fmtr/tools/version +1 -0
  7. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr.tools.egg-info/PKG-INFO +45 -45
  8. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr.tools.egg-info/SOURCES.txt +1 -0
  9. fmtr_tools-1.1.25/fmtr/tools/version +0 -1
  10. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/LICENSE +0 -0
  11. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/README.md +0 -0
  12. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/ai_tools/__init__.py +0 -0
  13. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/ai_tools/agentic_tools.py +0 -0
  14. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/ai_tools/inference_tools.py +0 -0
  15. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/api_tools.py +0 -0
  16. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/async_tools.py +0 -0
  17. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/augmentation_tools.py +0 -0
  18. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/caching_tools.py +0 -0
  19. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/console_script_tools.py +0 -0
  20. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/constants.py +0 -0
  21. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/data_modelling_tools.py +0 -0
  22. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/dataclass_tools.py +0 -0
  23. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/datatype_tools.py +0 -0
  24. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/debugging_tools.py +0 -0
  25. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/dns_tools.py +0 -0
  26. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/docker_tools.py +0 -0
  27. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/environment_tools.py +0 -0
  28. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/function_tools.py +0 -0
  29. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/google_api_tools.py +0 -0
  30. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/hash_tools.py +0 -0
  31. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/hfh_tools.py +0 -0
  32. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/html_tools.py +0 -0
  33. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/import_tools.py +0 -0
  34. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/inspection_tools.py +0 -0
  35. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/interface_tools.py +0 -0
  36. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/iterator_tools.py +0 -0
  37. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/json_fix_tools.py +0 -0
  38. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/json_tools.py +0 -0
  39. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/logging_tools.py +0 -0
  40. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/merging_tools.py +0 -0
  41. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/metric_tools.py +0 -0
  42. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/name_tools.py +0 -0
  43. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/netrc_tools.py +0 -0
  44. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/openai_tools.py +0 -0
  45. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/packaging_tools.py +0 -0
  46. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/parallel_tools.py +0 -0
  47. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/path_tools/__init__.py +0 -0
  48. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/path_tools/app_path_tools.py +0 -0
  49. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/path_tools/path_tools.py +0 -0
  50. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/path_tools/type_path_tools.py +0 -0
  51. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/pdf_tools.py +0 -0
  52. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/platform_tools.py +0 -0
  53. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/process_tools.py +0 -0
  54. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/profiling_tools.py +0 -0
  55. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/random_tools.py +0 -0
  56. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/semantic_tools.py +0 -0
  57. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/settings_tools.py +0 -0
  58. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/setup_tools/__init__.py +0 -0
  59. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/spaces_tools.py +0 -0
  60. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/string_tools.py +0 -0
  61. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/tabular_tools.py +0 -0
  62. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/tests/__init__.py +0 -0
  63. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/tests/conftest.py +0 -0
  64. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/tests/helpers.py +0 -0
  65. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/tests/test_datatype.py +0 -0
  66. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/tests/test_environment.py +0 -0
  67. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/tests/test_json.py +0 -0
  68. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/tests/test_path.py +0 -0
  69. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/tests/test_yaml.py +0 -0
  70. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/tokenization_tools.py +0 -0
  71. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/tools.py +0 -0
  72. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/unicode_tools.py +0 -0
  73. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/version_tools.py +0 -0
  74. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr/tools/yaml_tools.py +0 -0
  75. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr.tools.egg-info/dependency_links.txt +0 -0
  76. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr.tools.egg-info/entry_points.txt +0 -0
  77. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr.tools.egg-info/requires.txt +44 -44
  78. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/fmtr.tools.egg-info/top_level.txt +0 -0
  79. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/setup.cfg +0 -0
  80. {fmtr_tools-1.1.25 → fmtr_tools-1.1.27}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.1.25
3
+ Version: 1.1.27
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,60 +9,60 @@ 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: google-auth; extra == "test"
13
- Requires-Dist: pandas; extra == "test"
14
- Requires-Dist: sre_yield; extra == "test"
15
- Requires-Dist: semver; extra == "test"
16
- Requires-Dist: dask[bag]; extra == "test"
17
- Requires-Dist: torchaudio; extra == "test"
18
- Requires-Dist: ollama; extra == "test"
19
- Requires-Dist: sentence_transformers; extra == "test"
20
- Requires-Dist: fastapi; extra == "test"
21
- Requires-Dist: faker; extra == "test"
22
- Requires-Dist: html2text; extra == "test"
23
- Requires-Dist: pymupdf; extra == "test"
12
+ Requires-Dist: flet[all]; extra == "test"
13
+ Requires-Dist: distributed; extra == "test"
14
+ Requires-Dist: appdirs; extra == "test"
24
15
  Requires-Dist: pydantic-ai[logfire,openai]; extra == "test"
25
- Requires-Dist: uvicorn[standard]; extra == "test"
26
- Requires-Dist: regex; extra == "test"
27
16
  Requires-Dist: docker; extra == "test"
28
- Requires-Dist: logfire[httpx]; extra == "test"
29
- Requires-Dist: transformers[sentencepiece]; extra == "test"
30
17
  Requires-Dist: bokeh; extra == "test"
31
- Requires-Dist: tokenizers; extra == "test"
32
- Requires-Dist: httpx_retries; extra == "test"
33
- Requires-Dist: huggingface_hub; extra == "test"
34
- Requires-Dist: pydantic-settings; extra == "test"
35
- Requires-Dist: google-auth-oauthlib; extra == "test"
36
- Requires-Dist: google-api-python-client; extra == "test"
37
- Requires-Dist: pydantic; extra == "test"
18
+ Requires-Dist: openpyxl; extra == "test"
38
19
  Requires-Dist: tabulate; extra == "test"
39
- Requires-Dist: distributed; extra == "test"
40
- Requires-Dist: logfire; extra == "test"
41
- Requires-Dist: flet-webview; extra == "test"
42
- Requires-Dist: tinynetrc; extra == "test"
43
- Requires-Dist: deepmerge; extra == "test"
20
+ Requires-Dist: ollama; extra == "test"
21
+ Requires-Dist: pydevd-pycharm; extra == "test"
22
+ Requires-Dist: openai; extra == "test"
44
23
  Requires-Dist: pyyaml; extra == "test"
45
- Requires-Dist: contexttimer; extra == "test"
24
+ Requires-Dist: huggingface_hub; extra == "test"
46
25
  Requires-Dist: pytest-cov; extra == "test"
47
- Requires-Dist: filetype; extra == "test"
48
- Requires-Dist: setuptools; extra == "test"
49
- Requires-Dist: flet[all]; extra == "test"
50
- Requires-Dist: diskcache; extra == "test"
51
- Requires-Dist: openpyxl; extra == "test"
52
- Requires-Dist: dnspython[doh]; extra == "test"
53
- Requires-Dist: openai; extra == "test"
54
- Requires-Dist: logfire[fastapi]; extra == "test"
55
- Requires-Dist: httpx; extra == "test"
26
+ Requires-Dist: pydantic-settings; extra == "test"
27
+ Requires-Dist: pymupdf; extra == "test"
28
+ Requires-Dist: sentence_transformers; extra == "test"
29
+ Requires-Dist: pymupdf4llm; extra == "test"
56
30
  Requires-Dist: yamlscript; extra == "test"
57
- Requires-Dist: pydevd-pycharm; extra == "test"
58
- Requires-Dist: google-auth-httplib2; extra == "test"
59
- Requires-Dist: appdirs; extra == "test"
31
+ Requires-Dist: html2text; extra == "test"
32
+ Requires-Dist: deepmerge; extra == "test"
33
+ Requires-Dist: regex; extra == "test"
34
+ Requires-Dist: fastapi; extra == "test"
35
+ Requires-Dist: httpx; extra == "test"
36
+ Requires-Dist: pandas; extra == "test"
37
+ Requires-Dist: dnspython[doh]; extra == "test"
38
+ Requires-Dist: diskcache; extra == "test"
39
+ Requires-Dist: torchvision; extra == "test"
40
+ Requires-Dist: google-auth; extra == "test"
41
+ Requires-Dist: dask[bag]; extra == "test"
42
+ Requires-Dist: uvicorn[standard]; extra == "test"
60
43
  Requires-Dist: Unidecode; extra == "test"
44
+ Requires-Dist: pydantic; extra == "test"
45
+ Requires-Dist: faker; extra == "test"
46
+ Requires-Dist: setuptools; extra == "test"
47
+ Requires-Dist: tokenizers; extra == "test"
61
48
  Requires-Dist: flet-video; extra == "test"
62
- Requires-Dist: pymupdf4llm; extra == "test"
63
- Requires-Dist: json_repair; extra == "test"
64
- Requires-Dist: torchvision; extra == "test"
49
+ Requires-Dist: google-auth-httplib2; extra == "test"
50
+ Requires-Dist: transformers[sentencepiece]; extra == "test"
51
+ Requires-Dist: contexttimer; extra == "test"
52
+ Requires-Dist: logfire[fastapi]; extra == "test"
53
+ Requires-Dist: httpx_retries; extra == "test"
54
+ Requires-Dist: sre_yield; extra == "test"
65
55
  Requires-Dist: peft; extra == "test"
56
+ Requires-Dist: torchaudio; extra == "test"
57
+ Requires-Dist: filetype; extra == "test"
58
+ Requires-Dist: semver; extra == "test"
59
+ Requires-Dist: tinynetrc; extra == "test"
60
+ Requires-Dist: json_repair; extra == "test"
61
+ Requires-Dist: google-api-python-client; extra == "test"
62
+ Requires-Dist: flet-webview; extra == "test"
63
+ Requires-Dist: logfire; extra == "test"
64
+ Requires-Dist: logfire[httpx]; extra == "test"
65
+ Requires-Dist: google-auth-oauthlib; extra == "test"
66
66
  Provides-Extra: yaml
67
67
  Requires-Dist: yamlscript; extra == "yaml"
68
68
  Requires-Dist: pyyaml; extra == "yaml"
@@ -176,3 +176,9 @@ try:
176
176
  from fmtr.tools import dns_tools as dns
177
177
  except ImportError as exception:
178
178
  dns = MissingExtraMockModule('dns', exception)
179
+
180
+ try:
181
+ from fmtr.tools import http_tools as http
182
+ from fmtr.tools.http_tools import Client
183
+ except ImportError as exception:
184
+ http = Client = MissingExtraMockModule('http', exception)
@@ -0,0 +1,26 @@
1
+ import httpx
2
+ from httpx_retries import RetryTransport
3
+
4
+ from fmtr.tools import logging_tools
5
+
6
+ logging_tools.logger.instrument_httpx()
7
+
8
+
9
+ class Client(httpx.Client):
10
+ """
11
+
12
+ Instrumented client base
13
+
14
+ """
15
+
16
+ TRANSPORT = RetryTransport()
17
+
18
+ def __init__(self, *args, **kwargs):
19
+ super().__init__(*args, transport=self.TRANSPORT, **kwargs)
20
+
21
+
22
+ client = Client()
23
+
24
+ if __name__ == '__main__':
25
+ resp = client.get('http://httpbin.org/delay/10')
26
+ resp
@@ -1,8 +1,9 @@
1
- import regex as re
2
1
  from dataclasses import dataclass
3
2
  from functools import cached_property
4
3
  from typing import List
5
4
 
5
+ import regex as re
6
+
6
7
  from fmtr.tools.logging_tools import logger
7
8
 
8
9
 
@@ -15,7 +16,7 @@ class RewriteCircularLoopError(Exception):
15
16
 
16
17
 
17
18
  @dataclass
18
- class Rule:
19
+ class Rewrite:
19
20
  """
20
21
  Represents a single rule for pattern matching and target string replacement.
21
22
 
@@ -66,7 +67,7 @@ class Rewriter:
66
67
  recursive rewriting until a stable state is reached.
67
68
 
68
69
  """
69
- rules: List[Rule]
70
+ rules: List[Rewrite]
70
71
 
71
72
  @cached_property
72
73
  def pattern(self):
@@ -106,7 +107,7 @@ class Rewriter:
106
107
 
107
108
  """
108
109
 
109
- match = self.rx.match(source)
110
+ match = self.rx.fullmatch(source)
110
111
 
111
112
  if not match:
112
113
  return source
@@ -163,75 +164,9 @@ class Rewriter:
163
164
 
164
165
  @classmethod
165
166
  def from_data(cls, data):
166
- rules = [Rule(*pair) for pair in data.items()]
167
+ rules = [Rewrite(*pair) for pair in data.items()]
167
168
  self = cls(rules=rules)
168
169
  return self
169
170
 
170
171
 
171
- if __name__ == '__main__':
172
- data = {
173
-
174
- r'(?P<name>[a-z]+)\.dev\.example\.com': '{name}.test.example.com',
175
- r'img\d+\.static\.cdn\.example\.com': 'images.cdn.example.com',
176
- r'service\.(?P<env>dev|staging|prod)\.example\.org': '{env}-service.example.org',
177
- r'legacy\.(?P<region>[a-z]+)\.oldsite\.com': '{region}.newsitenow.com',
178
- r'shop\.(?P<country_code>[a-z]{2})\.example\.net': 'store.{country_code}.example.net',
179
- r'(?P<user>[a-z]+)\.mail\.example\.com': '{user}.email.example.com',
180
- r'app1\.cluster(?P<num>[0-9]+)\.example\.cloud': 'service{num}.example.cloud',
181
- r'(?P<project>[a-z]+)\.research\.corp\.com': '{project}.lab.corp.com',
182
- r'cdn\.(?P<version>v[0-9]+)\.content\.net': 'static.{version}.content.net',
183
- # Literal rule without named group
184
- r'corp\.secureaccess\.com': 'access.corp.com',
185
- # Literal rule without named group
186
- r'redirect\.oldsite\.org': 'homepage.newsite.org',
187
- # # Recursive rules
188
-
189
- r'archive\.(?P<year>\d{4})\.oldsite\.net': 'legacy.{year}.oldsite.net', # Recursive matching
190
- r'legacy\.(?P<year>\d{4})\.oldsite\.net': 'archive-backup.{year}.net', # Continuation
191
-
192
- # r'(?P<subd>[a-zA-Z]+)\.vpn': '{subd}.loop.ts.net',
193
- # r'(?P<subd>[a-zA-Z]+)\.loop\.ts\.net': '{subd}.vpn', # Recursive loop back to .vpn
194
- }
195
-
196
- rewriter = Rewriter.from_data(data)
197
-
198
- tests = [
199
- "sales.vpn",
200
- "marketing.dev.example.com",
201
- "img01.static.cdn.example.com",
202
- "service.dev.example.org",
203
- "legacy.eu.oldsite.com",
204
- "shop.us.example.net",
205
- "alice.mail.example.com",
206
- "app1.cluster1.example.cloud",
207
- "genetics.research.corp.com",
208
- "cdn.v2.content.net",
209
- "corp.secureaccess.com",
210
- "redirect.oldsite.org",
211
- "support.bbb.ts.net",
212
- "support.ccc.ts.net",
213
- "archive.2022.oldsite.net",
214
- "legacy.2022.oldsite.net",
215
- "finance.vpn",
216
- "engineering.dev.example.com",
217
- "img02.static.cdn.example.com",
218
- "service.staging.example.org",
219
- "legacy.apac.oldsite.com",
220
- "shop.uk.example.net",
221
- "bob.mail.example.com",
222
- "app1.cluster2.example.cloud",
223
- "astrophysics.research.corp.com",
224
- "cdn.v3.content.net",
225
- "archive.2021.oldsite.net",
226
- "legacy.2021.oldsite.net",
227
- "quality.bbb.ts.net",
228
- "quality.ccc.ts.net"
229
- ]
230
-
231
- logger.warning('hello?')
232
- for test in tests:
233
- print(test)
234
- text = rewriter.rewrite(test)
235
- text
236
-
237
- tests
172
+
@@ -144,7 +144,7 @@ class Setup(FromCallerMixin):
144
144
  @property
145
145
  def name(self):
146
146
  if self.paths.is_namespace:
147
- return f'{self.paths.org}.{self.paths.name}'
147
+ return f'{self.paths.org_name}.{self.paths.name}'
148
148
  return self.paths.name
149
149
 
150
150
  @property
@@ -199,7 +199,7 @@ class Setup(FromCallerMixin):
199
199
 
200
200
  @property
201
201
  def url(self):
202
- return f'https://github.com/{self.paths.org}/{self.paths.name}'
202
+ return f'https://github.com/{self.org}/{self.paths.name}'
203
203
 
204
204
  @property
205
205
  def data(self):
@@ -0,0 +1 @@
1
+ 1.1.27
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.1.25
3
+ Version: 1.1.27
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,60 +9,60 @@ 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: google-auth; extra == "test"
13
- Requires-Dist: pandas; extra == "test"
14
- Requires-Dist: sre_yield; extra == "test"
15
- Requires-Dist: semver; extra == "test"
16
- Requires-Dist: dask[bag]; extra == "test"
17
- Requires-Dist: torchaudio; extra == "test"
18
- Requires-Dist: ollama; extra == "test"
19
- Requires-Dist: sentence_transformers; extra == "test"
20
- Requires-Dist: fastapi; extra == "test"
21
- Requires-Dist: faker; extra == "test"
22
- Requires-Dist: html2text; extra == "test"
23
- Requires-Dist: pymupdf; extra == "test"
12
+ Requires-Dist: flet[all]; extra == "test"
13
+ Requires-Dist: distributed; extra == "test"
14
+ Requires-Dist: appdirs; extra == "test"
24
15
  Requires-Dist: pydantic-ai[logfire,openai]; extra == "test"
25
- Requires-Dist: uvicorn[standard]; extra == "test"
26
- Requires-Dist: regex; extra == "test"
27
16
  Requires-Dist: docker; extra == "test"
28
- Requires-Dist: logfire[httpx]; extra == "test"
29
- Requires-Dist: transformers[sentencepiece]; extra == "test"
30
17
  Requires-Dist: bokeh; extra == "test"
31
- Requires-Dist: tokenizers; extra == "test"
32
- Requires-Dist: httpx_retries; extra == "test"
33
- Requires-Dist: huggingface_hub; extra == "test"
34
- Requires-Dist: pydantic-settings; extra == "test"
35
- Requires-Dist: google-auth-oauthlib; extra == "test"
36
- Requires-Dist: google-api-python-client; extra == "test"
37
- Requires-Dist: pydantic; extra == "test"
18
+ Requires-Dist: openpyxl; extra == "test"
38
19
  Requires-Dist: tabulate; extra == "test"
39
- Requires-Dist: distributed; extra == "test"
40
- Requires-Dist: logfire; extra == "test"
41
- Requires-Dist: flet-webview; extra == "test"
42
- Requires-Dist: tinynetrc; extra == "test"
43
- Requires-Dist: deepmerge; extra == "test"
20
+ Requires-Dist: ollama; extra == "test"
21
+ Requires-Dist: pydevd-pycharm; extra == "test"
22
+ Requires-Dist: openai; extra == "test"
44
23
  Requires-Dist: pyyaml; extra == "test"
45
- Requires-Dist: contexttimer; extra == "test"
24
+ Requires-Dist: huggingface_hub; extra == "test"
46
25
  Requires-Dist: pytest-cov; extra == "test"
47
- Requires-Dist: filetype; extra == "test"
48
- Requires-Dist: setuptools; extra == "test"
49
- Requires-Dist: flet[all]; extra == "test"
50
- Requires-Dist: diskcache; extra == "test"
51
- Requires-Dist: openpyxl; extra == "test"
52
- Requires-Dist: dnspython[doh]; extra == "test"
53
- Requires-Dist: openai; extra == "test"
54
- Requires-Dist: logfire[fastapi]; extra == "test"
55
- Requires-Dist: httpx; extra == "test"
26
+ Requires-Dist: pydantic-settings; extra == "test"
27
+ Requires-Dist: pymupdf; extra == "test"
28
+ Requires-Dist: sentence_transformers; extra == "test"
29
+ Requires-Dist: pymupdf4llm; extra == "test"
56
30
  Requires-Dist: yamlscript; extra == "test"
57
- Requires-Dist: pydevd-pycharm; extra == "test"
58
- Requires-Dist: google-auth-httplib2; extra == "test"
59
- Requires-Dist: appdirs; extra == "test"
31
+ Requires-Dist: html2text; extra == "test"
32
+ Requires-Dist: deepmerge; extra == "test"
33
+ Requires-Dist: regex; extra == "test"
34
+ Requires-Dist: fastapi; extra == "test"
35
+ Requires-Dist: httpx; extra == "test"
36
+ Requires-Dist: pandas; extra == "test"
37
+ Requires-Dist: dnspython[doh]; extra == "test"
38
+ Requires-Dist: diskcache; extra == "test"
39
+ Requires-Dist: torchvision; extra == "test"
40
+ Requires-Dist: google-auth; extra == "test"
41
+ Requires-Dist: dask[bag]; extra == "test"
42
+ Requires-Dist: uvicorn[standard]; extra == "test"
60
43
  Requires-Dist: Unidecode; extra == "test"
44
+ Requires-Dist: pydantic; extra == "test"
45
+ Requires-Dist: faker; extra == "test"
46
+ Requires-Dist: setuptools; extra == "test"
47
+ Requires-Dist: tokenizers; extra == "test"
61
48
  Requires-Dist: flet-video; extra == "test"
62
- Requires-Dist: pymupdf4llm; extra == "test"
63
- Requires-Dist: json_repair; extra == "test"
64
- Requires-Dist: torchvision; extra == "test"
49
+ Requires-Dist: google-auth-httplib2; extra == "test"
50
+ Requires-Dist: transformers[sentencepiece]; extra == "test"
51
+ Requires-Dist: contexttimer; extra == "test"
52
+ Requires-Dist: logfire[fastapi]; extra == "test"
53
+ Requires-Dist: httpx_retries; extra == "test"
54
+ Requires-Dist: sre_yield; extra == "test"
65
55
  Requires-Dist: peft; extra == "test"
56
+ Requires-Dist: torchaudio; extra == "test"
57
+ Requires-Dist: filetype; extra == "test"
58
+ Requires-Dist: semver; extra == "test"
59
+ Requires-Dist: tinynetrc; extra == "test"
60
+ Requires-Dist: json_repair; extra == "test"
61
+ Requires-Dist: google-api-python-client; extra == "test"
62
+ Requires-Dist: flet-webview; extra == "test"
63
+ Requires-Dist: logfire; extra == "test"
64
+ Requires-Dist: logfire[httpx]; extra == "test"
65
+ Requires-Dist: google-auth-oauthlib; extra == "test"
66
66
  Provides-Extra: yaml
67
67
  Requires-Dist: yamlscript; extra == "yaml"
68
68
  Requires-Dist: pyyaml; extra == "yaml"
@@ -20,6 +20,7 @@ setup.py
20
20
  ./fmtr/tools/hash_tools.py
21
21
  ./fmtr/tools/hfh_tools.py
22
22
  ./fmtr/tools/html_tools.py
23
+ ./fmtr/tools/http_tools.py
23
24
  ./fmtr/tools/import_tools.py
24
25
  ./fmtr/tools/inspection_tools.py
25
26
  ./fmtr/tools/interface_tools.py
@@ -1 +0,0 @@
1
- 1.1.25
File without changes
File without changes
@@ -135,60 +135,60 @@ tabulate
135
135
  openpyxl
136
136
 
137
137
  [test]
138
- google-auth
139
- pandas
140
- sre_yield
141
- semver
142
- dask[bag]
143
- torchaudio
144
- ollama
145
- sentence_transformers
146
- fastapi
147
- faker
148
- html2text
149
- pymupdf
138
+ flet[all]
139
+ distributed
140
+ appdirs
150
141
  pydantic-ai[logfire,openai]
151
- uvicorn[standard]
152
- regex
153
142
  docker
154
- logfire[httpx]
155
- transformers[sentencepiece]
156
143
  bokeh
157
- tokenizers
158
- httpx_retries
159
- huggingface_hub
160
- pydantic-settings
161
- google-auth-oauthlib
162
- google-api-python-client
163
- pydantic
144
+ openpyxl
164
145
  tabulate
165
- distributed
166
- logfire
167
- flet-webview
168
- tinynetrc
169
- deepmerge
146
+ ollama
147
+ pydevd-pycharm
148
+ openai
170
149
  pyyaml
171
- contexttimer
150
+ huggingface_hub
172
151
  pytest-cov
173
- filetype
174
- setuptools
175
- flet[all]
176
- diskcache
177
- openpyxl
178
- dnspython[doh]
179
- openai
180
- logfire[fastapi]
181
- httpx
152
+ pydantic-settings
153
+ pymupdf
154
+ sentence_transformers
155
+ pymupdf4llm
182
156
  yamlscript
183
- pydevd-pycharm
184
- google-auth-httplib2
185
- appdirs
157
+ html2text
158
+ deepmerge
159
+ regex
160
+ fastapi
161
+ httpx
162
+ pandas
163
+ dnspython[doh]
164
+ diskcache
165
+ torchvision
166
+ google-auth
167
+ dask[bag]
168
+ uvicorn[standard]
186
169
  Unidecode
170
+ pydantic
171
+ faker
172
+ setuptools
173
+ tokenizers
187
174
  flet-video
188
- pymupdf4llm
189
- json_repair
190
- torchvision
175
+ google-auth-httplib2
176
+ transformers[sentencepiece]
177
+ contexttimer
178
+ logfire[fastapi]
179
+ httpx_retries
180
+ sre_yield
191
181
  peft
182
+ torchaudio
183
+ filetype
184
+ semver
185
+ tinynetrc
186
+ json_repair
187
+ google-api-python-client
188
+ flet-webview
189
+ logfire
190
+ logfire[httpx]
191
+ google-auth-oauthlib
192
192
 
193
193
  [tokenization]
194
194
  tokenizers
File without changes
File without changes