fmtr.tools 1.1.14__tar.gz → 1.1.16__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 (76) hide show
  1. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/PKG-INFO +41 -37
  2. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/README.md +2 -1
  3. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/ai_tools/inference_tools.py +2 -1
  4. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/logging_tools.py +11 -3
  5. fmtr_tools-1.1.16/fmtr/tools/path_tools/__init__.py +12 -0
  6. fmtr_tools-1.1.14/fmtr/tools/path_tools/base.py → fmtr_tools-1.1.16/fmtr/tools/path_tools/path_tools.py +16 -3
  7. fmtr_tools-1.1.16/fmtr/tools/path_tools/type_path_tools.py +3 -0
  8. fmtr_tools-1.1.16/fmtr/tools/version +1 -0
  9. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr.tools.egg-info/PKG-INFO +41 -37
  10. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr.tools.egg-info/SOURCES.txt +3 -2
  11. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr.tools.egg-info/requires.txt +39 -35
  12. fmtr_tools-1.1.14/fmtr/tools/path_tools/__init__.py +0 -7
  13. fmtr_tools-1.1.14/fmtr/tools/version +0 -1
  14. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/LICENSE +0 -0
  15. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/__init__.py +0 -0
  16. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/ai_tools/__init__.py +0 -0
  17. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/ai_tools/agentic_tools.py +0 -0
  18. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/api_tools.py +0 -0
  19. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/async_tools.py +0 -0
  20. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/augmentation_tools.py +0 -0
  21. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/caching_tools.py +0 -0
  22. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/console_script_tools.py +0 -0
  23. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/constants.py +0 -0
  24. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/data_modelling_tools.py +0 -0
  25. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/dataclass_tools.py +0 -0
  26. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/datatype_tools.py +0 -0
  27. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/debugging_tools.py +0 -0
  28. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/docker_tools.py +0 -0
  29. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/environment_tools.py +0 -0
  30. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/function_tools.py +0 -0
  31. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/google_api_tools.py +0 -0
  32. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/hash_tools.py +0 -0
  33. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/hfh_tools.py +0 -0
  34. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/html_tools.py +0 -0
  35. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/import_tools.py +0 -0
  36. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/inspection_tools.py +0 -0
  37. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/interface_tools.py +0 -0
  38. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/iterator_tools.py +0 -0
  39. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/json_fix_tools.py +0 -0
  40. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/json_tools.py +0 -0
  41. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/merging_tools.py +0 -0
  42. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/metric_tools.py +0 -0
  43. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/name_tools.py +0 -0
  44. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/netrc_tools.py +0 -0
  45. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/openai_tools.py +0 -0
  46. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/packaging_tools.py +0 -0
  47. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/parallel_tools.py +0 -0
  48. /fmtr_tools-1.1.14/fmtr/tools/path_tools/app.py → /fmtr_tools-1.1.16/fmtr/tools/path_tools/app_path_tools.py +0 -0
  49. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/pdf_tools.py +0 -0
  50. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/platform_tools.py +0 -0
  51. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/process_tools.py +0 -0
  52. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/profiling_tools.py +0 -0
  53. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/random_tools.py +0 -0
  54. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/semantic_tools.py +0 -0
  55. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/settings_tools.py +0 -0
  56. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/spaces_tools.py +0 -0
  57. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/string_tools.py +0 -0
  58. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/tabular_tools.py +0 -0
  59. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/tests/__init__.py +0 -0
  60. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/tests/conftest.py +0 -0
  61. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/tests/helpers.py +0 -0
  62. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/tests/test_datatype.py +0 -0
  63. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/tests/test_environment.py +0 -0
  64. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/tests/test_json.py +0 -0
  65. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/tests/test_path.py +0 -0
  66. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/tests/test_yaml.py +0 -0
  67. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/tokenization_tools.py +0 -0
  68. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/tools.py +0 -0
  69. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/unicode_tools.py +0 -0
  70. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/version_tools.py +0 -0
  71. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr/tools/yaml_tools.py +0 -0
  72. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr.tools.egg-info/dependency_links.txt +0 -0
  73. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr.tools.egg-info/entry_points.txt +0 -0
  74. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/fmtr.tools.egg-info/top_level.txt +0 -0
  75. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/setup.cfg +0 -0
  76. {fmtr_tools-1.1.14 → fmtr_tools-1.1.16}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.1.14
3
+ Version: 1.1.16
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,52 +9,53 @@ 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: json_repair; extra == "test"
13
- Requires-Dist: deepmerge; extra == "test"
14
- Requires-Dist: contexttimer; extra == "test"
15
- Requires-Dist: google-api-python-client; extra == "test"
16
- Requires-Dist: docker; extra == "test"
17
- Requires-Dist: pydantic; extra == "test"
18
- Requires-Dist: logfire; extra == "test"
19
- Requires-Dist: pyyaml; extra == "test"
20
- Requires-Dist: pydevd-pycharm; extra == "test"
21
- Requires-Dist: appdirs; extra == "test"
22
- Requires-Dist: dask[bag]; extra == "test"
23
- Requires-Dist: pymupdf4llm; extra == "test"
24
- Requires-Dist: pytest-cov; extra == "test"
25
- Requires-Dist: flet[all]; extra == "test"
26
- Requires-Dist: html2text; extra == "test"
27
12
  Requires-Dist: distributed; extra == "test"
28
- Requires-Dist: ollama; extra == "test"
29
- Requires-Dist: google-auth-oauthlib; extra == "test"
30
- Requires-Dist: pandas; extra == "test"
31
- Requires-Dist: tabulate; extra == "test"
32
- Requires-Dist: google-auth; extra == "test"
33
- Requires-Dist: sre_yield; extra == "test"
34
13
  Requires-Dist: uvicorn[standard]; extra == "test"
14
+ Requires-Dist: google-auth; extra == "test"
35
15
  Requires-Dist: tokenizers; extra == "test"
36
16
  Requires-Dist: torchaudio; extra == "test"
37
- Requires-Dist: fastapi; extra == "test"
17
+ Requires-Dist: pymupdf; extra == "test"
18
+ Requires-Dist: appdirs; extra == "test"
19
+ Requires-Dist: huggingface_hub; extra == "test"
20
+ Requires-Dist: tabulate; extra == "test"
21
+ Requires-Dist: pydantic; extra == "test"
22
+ Requires-Dist: html2text; extra == "test"
23
+ Requires-Dist: docker; extra == "test"
24
+ Requires-Dist: logfire[fastapi]; extra == "test"
25
+ Requires-Dist: filetype; extra == "test"
26
+ Requires-Dist: Unidecode; extra == "test"
38
27
  Requires-Dist: sentence_transformers; extra == "test"
39
- Requires-Dist: torchvision; extra == "test"
28
+ Requires-Dist: fastapi; extra == "test"
29
+ Requires-Dist: flet-webview; extra == "test"
30
+ Requires-Dist: pydantic-settings; extra == "test"
31
+ Requires-Dist: contexttimer; extra == "test"
40
32
  Requires-Dist: diskcache; extra == "test"
41
- Requires-Dist: peft; extra == "test"
33
+ Requires-Dist: ollama; extra == "test"
34
+ Requires-Dist: logfire; extra == "test"
42
35
  Requires-Dist: openai; extra == "test"
43
- Requires-Dist: bokeh; extra == "test"
36
+ Requires-Dist: pydevd-pycharm; extra == "test"
37
+ Requires-Dist: pandas; extra == "test"
44
38
  Requires-Dist: flet-video; extra == "test"
45
- Requires-Dist: google-auth-httplib2; extra == "test"
46
- Requires-Dist: tinynetrc; extra == "test"
47
- Requires-Dist: semver; extra == "test"
48
39
  Requires-Dist: yamlscript; extra == "test"
49
- Requires-Dist: pymupdf; extra == "test"
50
- Requires-Dist: logfire[fastapi]; extra == "test"
51
- Requires-Dist: huggingface_hub; extra == "test"
52
- Requires-Dist: pydantic-settings; extra == "test"
53
- Requires-Dist: openpyxl; extra == "test"
54
- Requires-Dist: Unidecode; extra == "test"
40
+ Requires-Dist: sre_yield; extra == "test"
41
+ Requires-Dist: google-auth-httplib2; extra == "test"
42
+ Requires-Dist: google-api-python-client; extra == "test"
43
+ Requires-Dist: dask[bag]; extra == "test"
55
44
  Requires-Dist: pydantic-ai[logfire,openai]; extra == "test"
45
+ Requires-Dist: torchvision; extra == "test"
46
+ Requires-Dist: openpyxl; extra == "test"
47
+ Requires-Dist: flet[all]; extra == "test"
48
+ Requires-Dist: bokeh; extra == "test"
49
+ Requires-Dist: pyyaml; extra == "test"
50
+ Requires-Dist: json_repair; extra == "test"
51
+ Requires-Dist: pymupdf4llm; extra == "test"
52
+ Requires-Dist: peft; extra == "test"
53
+ Requires-Dist: deepmerge; extra == "test"
54
+ Requires-Dist: pytest-cov; extra == "test"
56
55
  Requires-Dist: faker; extra == "test"
57
- Requires-Dist: flet-webview; extra == "test"
56
+ Requires-Dist: tinynetrc; extra == "test"
57
+ Requires-Dist: google-auth-oauthlib; extra == "test"
58
+ Requires-Dist: semver; extra == "test"
58
59
  Requires-Dist: transformers[sentencepiece]; extra == "test"
59
60
  Provides-Extra: yaml
60
61
  Requires-Dist: yamlscript; extra == "yaml"
@@ -154,6 +155,8 @@ Requires-Dist: pydantic-settings; extra == "sets"
154
155
  Requires-Dist: pydantic; extra == "sets"
155
156
  Provides-Extra: path-app
156
157
  Requires-Dist: appdirs; extra == "path-app"
158
+ Provides-Extra: path-type
159
+ Requires-Dist: filetype; extra == "path-type"
157
160
  Dynamic: author
158
161
  Dynamic: author-email
159
162
  Dynamic: description
@@ -288,9 +291,10 @@ The included modules, plus any extra requirements, are as follows:
288
291
  - `tools.Path`: Enhanced
289
292
  `pathlib.Path` object with additional functionality for Windows-to-Unix path conversion in WSL environments, reading/writing JSON and YAML files with proper encoding.
290
293
  - Extras: None
294
+ -
291
295
  `tools.PackagePaths` class for managing canonical package paths, like settings files, artifact directories, version files.
292
296
  - Extras: None
293
- `tools.AppPaths` Wrapper around `appdirs` for application paths.
297
+ - `tools.AppPaths` Wrapper around `appdirs` for application paths.
294
298
  - Extras: `paths.app`
295
299
  - `tools.platform`: Detecting if host is WSL, Docker etc.
296
300
  - Extras: None
@@ -122,9 +122,10 @@ The included modules, plus any extra requirements, are as follows:
122
122
  - `tools.Path`: Enhanced
123
123
  `pathlib.Path` object with additional functionality for Windows-to-Unix path conversion in WSL environments, reading/writing JSON and YAML files with proper encoding.
124
124
  - Extras: None
125
+ -
125
126
  `tools.PackagePaths` class for managing canonical package paths, like settings files, artifact directories, version files.
126
127
  - Extras: None
127
- `tools.AppPaths` Wrapper around `appdirs` for application paths.
128
+ - `tools.AppPaths` Wrapper around `appdirs` for application paths.
128
129
  - Extras: `paths.app`
129
130
  - `tools.platform`: Detecting if host is WSL, Docker etc.
130
131
  - Extras: None
@@ -266,6 +266,7 @@ class BulkInferenceManager:
266
266
  yield ids_output
267
267
 
268
268
  except RuntimeError as exception:
269
+ # Instability causes CUBLAS_STATUS in str(exception) too
269
270
  if "CUDA out of memory" in str(exception):
270
271
  logger.warning(f"Ran out of memory. Reducing batch size: {repr(exception)}")
271
272
  batcher.reduce()
@@ -412,5 +413,5 @@ def tst_tool():
412
413
 
413
414
 
414
415
  if __name__ == '__main__':
415
- texts = tst_tool()
416
+ texts = tst()
416
417
  texts
@@ -43,16 +43,23 @@ def get_logger(name, version=None, host=Constants.FMTR_OBS_HOST, key=None, org=C
43
43
  from fmtr.tools import version_tools
44
44
  version = version_tools.read()
45
45
 
46
+ # Rigmarole to translate native levels to logfire/otel ones.
47
+ lev_num_otel = logfire._internal.constants.LOGGING_TO_OTEL_LEVEL_NUMBERS[level]
48
+ lev_name_otel = logfire._internal.constants.NUMBER_TO_LEVEL[lev_num_otel]
49
+
50
+ console_opts = logfire.ConsoleOptions(
51
+ colors='always' if environment_tools.IS_DEBUG else 'auto',
52
+ min_log_level=lev_name_otel,
53
+ )
54
+
46
55
  logfire.configure(
47
56
  service_name=name,
48
57
  service_version=version,
49
58
  environment=environment,
50
59
  send_to_logfire=False,
51
- console=logfire.ConsoleOptions(colors='always' if environment_tools.IS_DEBUG else 'auto')
60
+ console=console_opts
52
61
  )
53
62
 
54
- logging.getLogger(name).setLevel(level)
55
-
56
63
  logger = logfire
57
64
  return logger
58
65
 
@@ -63,3 +70,4 @@ if __name__ == '__main__':
63
70
  logger.info('Hello World')
64
71
  logger.warning('test warning')
65
72
  logger.debug('Hello World')
73
+ logger
@@ -0,0 +1,12 @@
1
+ from fmtr.tools.import_tools import MissingExtraMockModule
2
+ from fmtr.tools.path_tools.path_tools import Path, PackagePaths
3
+
4
+ try:
5
+ from fmtr.tools.path_tools.app_path_tools import AppPaths
6
+ except ImportError as exception:
7
+ AppPaths = MissingExtraMockModule('path.app', exception)
8
+
9
+ try:
10
+ from fmtr.tools.path_tools.type_path_tools import guess
11
+ except ImportError as exception:
12
+ guess = MissingExtraMockModule('path.type', exception)
@@ -164,6 +164,19 @@ class Path(type(Path())):
164
164
  from fmtr.tools import path
165
165
  return path.AppPaths()
166
166
 
167
+ @property
168
+ def type(self):
169
+ """
170
+
171
+ Infer file type, extension, etc.
172
+
173
+ """
174
+ if not self.exists():
175
+ return None
176
+ from fmtr.tools import path
177
+ kind = path.guess(str(self.absolute()))
178
+ return kind
179
+
167
180
  class PackagePaths:
168
181
  """
169
182
 
@@ -324,6 +337,6 @@ class PackagePaths:
324
337
 
325
338
 
326
339
  if __name__ == "__main__":
327
- path = Path()
328
- path.app.user_log_dir()
329
- path
340
+ path = Path('/usr/bin/bash').absolute()
341
+ path.type
342
+ path
@@ -0,0 +1,3 @@
1
+ import filetype
2
+
3
+ guess = filetype.guess
@@ -0,0 +1 @@
1
+ 1.1.16
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.1.14
3
+ Version: 1.1.16
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,52 +9,53 @@ 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: json_repair; extra == "test"
13
- Requires-Dist: deepmerge; extra == "test"
14
- Requires-Dist: contexttimer; extra == "test"
15
- Requires-Dist: google-api-python-client; extra == "test"
16
- Requires-Dist: docker; extra == "test"
17
- Requires-Dist: pydantic; extra == "test"
18
- Requires-Dist: logfire; extra == "test"
19
- Requires-Dist: pyyaml; extra == "test"
20
- Requires-Dist: pydevd-pycharm; extra == "test"
21
- Requires-Dist: appdirs; extra == "test"
22
- Requires-Dist: dask[bag]; extra == "test"
23
- Requires-Dist: pymupdf4llm; extra == "test"
24
- Requires-Dist: pytest-cov; extra == "test"
25
- Requires-Dist: flet[all]; extra == "test"
26
- Requires-Dist: html2text; extra == "test"
27
12
  Requires-Dist: distributed; extra == "test"
28
- Requires-Dist: ollama; extra == "test"
29
- Requires-Dist: google-auth-oauthlib; extra == "test"
30
- Requires-Dist: pandas; extra == "test"
31
- Requires-Dist: tabulate; extra == "test"
32
- Requires-Dist: google-auth; extra == "test"
33
- Requires-Dist: sre_yield; extra == "test"
34
13
  Requires-Dist: uvicorn[standard]; extra == "test"
14
+ Requires-Dist: google-auth; extra == "test"
35
15
  Requires-Dist: tokenizers; extra == "test"
36
16
  Requires-Dist: torchaudio; extra == "test"
37
- Requires-Dist: fastapi; extra == "test"
17
+ Requires-Dist: pymupdf; extra == "test"
18
+ Requires-Dist: appdirs; extra == "test"
19
+ Requires-Dist: huggingface_hub; extra == "test"
20
+ Requires-Dist: tabulate; extra == "test"
21
+ Requires-Dist: pydantic; extra == "test"
22
+ Requires-Dist: html2text; extra == "test"
23
+ Requires-Dist: docker; extra == "test"
24
+ Requires-Dist: logfire[fastapi]; extra == "test"
25
+ Requires-Dist: filetype; extra == "test"
26
+ Requires-Dist: Unidecode; extra == "test"
38
27
  Requires-Dist: sentence_transformers; extra == "test"
39
- Requires-Dist: torchvision; extra == "test"
28
+ Requires-Dist: fastapi; extra == "test"
29
+ Requires-Dist: flet-webview; extra == "test"
30
+ Requires-Dist: pydantic-settings; extra == "test"
31
+ Requires-Dist: contexttimer; extra == "test"
40
32
  Requires-Dist: diskcache; extra == "test"
41
- Requires-Dist: peft; extra == "test"
33
+ Requires-Dist: ollama; extra == "test"
34
+ Requires-Dist: logfire; extra == "test"
42
35
  Requires-Dist: openai; extra == "test"
43
- Requires-Dist: bokeh; extra == "test"
36
+ Requires-Dist: pydevd-pycharm; extra == "test"
37
+ Requires-Dist: pandas; extra == "test"
44
38
  Requires-Dist: flet-video; extra == "test"
45
- Requires-Dist: google-auth-httplib2; extra == "test"
46
- Requires-Dist: tinynetrc; extra == "test"
47
- Requires-Dist: semver; extra == "test"
48
39
  Requires-Dist: yamlscript; extra == "test"
49
- Requires-Dist: pymupdf; extra == "test"
50
- Requires-Dist: logfire[fastapi]; extra == "test"
51
- Requires-Dist: huggingface_hub; extra == "test"
52
- Requires-Dist: pydantic-settings; extra == "test"
53
- Requires-Dist: openpyxl; extra == "test"
54
- Requires-Dist: Unidecode; extra == "test"
40
+ Requires-Dist: sre_yield; extra == "test"
41
+ Requires-Dist: google-auth-httplib2; extra == "test"
42
+ Requires-Dist: google-api-python-client; extra == "test"
43
+ Requires-Dist: dask[bag]; extra == "test"
55
44
  Requires-Dist: pydantic-ai[logfire,openai]; extra == "test"
45
+ Requires-Dist: torchvision; extra == "test"
46
+ Requires-Dist: openpyxl; extra == "test"
47
+ Requires-Dist: flet[all]; extra == "test"
48
+ Requires-Dist: bokeh; extra == "test"
49
+ Requires-Dist: pyyaml; extra == "test"
50
+ Requires-Dist: json_repair; extra == "test"
51
+ Requires-Dist: pymupdf4llm; extra == "test"
52
+ Requires-Dist: peft; extra == "test"
53
+ Requires-Dist: deepmerge; extra == "test"
54
+ Requires-Dist: pytest-cov; extra == "test"
56
55
  Requires-Dist: faker; extra == "test"
57
- Requires-Dist: flet-webview; extra == "test"
56
+ Requires-Dist: tinynetrc; extra == "test"
57
+ Requires-Dist: google-auth-oauthlib; extra == "test"
58
+ Requires-Dist: semver; extra == "test"
58
59
  Requires-Dist: transformers[sentencepiece]; extra == "test"
59
60
  Provides-Extra: yaml
60
61
  Requires-Dist: yamlscript; extra == "yaml"
@@ -154,6 +155,8 @@ Requires-Dist: pydantic-settings; extra == "sets"
154
155
  Requires-Dist: pydantic; extra == "sets"
155
156
  Provides-Extra: path-app
156
157
  Requires-Dist: appdirs; extra == "path-app"
158
+ Provides-Extra: path-type
159
+ Requires-Dist: filetype; extra == "path-type"
157
160
  Dynamic: author
158
161
  Dynamic: author-email
159
162
  Dynamic: description
@@ -288,9 +291,10 @@ The included modules, plus any extra requirements, are as follows:
288
291
  - `tools.Path`: Enhanced
289
292
  `pathlib.Path` object with additional functionality for Windows-to-Unix path conversion in WSL environments, reading/writing JSON and YAML files with proper encoding.
290
293
  - Extras: None
294
+ -
291
295
  `tools.PackagePaths` class for managing canonical package paths, like settings files, artifact directories, version files.
292
296
  - Extras: None
293
- `tools.AppPaths` Wrapper around `appdirs` for application paths.
297
+ - `tools.AppPaths` Wrapper around `appdirs` for application paths.
294
298
  - Extras: `paths.app`
295
299
  - `tools.platform`: Detecting if host is WSL, Docker etc.
296
300
  - Extras: None
@@ -53,8 +53,9 @@ setup.py
53
53
  ./fmtr/tools/ai_tools/agentic_tools.py
54
54
  ./fmtr/tools/ai_tools/inference_tools.py
55
55
  ./fmtr/tools/path_tools/__init__.py
56
- ./fmtr/tools/path_tools/app.py
57
- ./fmtr/tools/path_tools/base.py
56
+ ./fmtr/tools/path_tools/app_path_tools.py
57
+ ./fmtr/tools/path_tools/path_tools.py
58
+ ./fmtr/tools/path_tools/type_path_tools.py
58
59
  ./fmtr/tools/tests/__init__.py
59
60
  ./fmtr/tools/tests/conftest.py
60
61
  ./fmtr/tools/tests/helpers.py
@@ -85,6 +85,9 @@ bokeh
85
85
  [path.app]
86
86
  appdirs
87
87
 
88
+ [path.type]
89
+ filetype
90
+
88
91
  [pdf]
89
92
  pymupdf
90
93
  pydantic
@@ -116,52 +119,53 @@ tabulate
116
119
  openpyxl
117
120
 
118
121
  [test]
119
- json_repair
120
- deepmerge
121
- contexttimer
122
- google-api-python-client
123
- docker
124
- pydantic
125
- logfire
126
- pyyaml
127
- pydevd-pycharm
128
- appdirs
129
- dask[bag]
130
- pymupdf4llm
131
- pytest-cov
132
- flet[all]
133
- html2text
134
122
  distributed
135
- ollama
136
- google-auth-oauthlib
137
- pandas
138
- tabulate
139
- google-auth
140
- sre_yield
141
123
  uvicorn[standard]
124
+ google-auth
142
125
  tokenizers
143
126
  torchaudio
144
- fastapi
127
+ pymupdf
128
+ appdirs
129
+ huggingface_hub
130
+ tabulate
131
+ pydantic
132
+ html2text
133
+ docker
134
+ logfire[fastapi]
135
+ filetype
136
+ Unidecode
145
137
  sentence_transformers
146
- torchvision
138
+ fastapi
139
+ flet-webview
140
+ pydantic-settings
141
+ contexttimer
147
142
  diskcache
148
- peft
143
+ ollama
144
+ logfire
149
145
  openai
150
- bokeh
146
+ pydevd-pycharm
147
+ pandas
151
148
  flet-video
152
- google-auth-httplib2
153
- tinynetrc
154
- semver
155
149
  yamlscript
156
- pymupdf
157
- logfire[fastapi]
158
- huggingface_hub
159
- pydantic-settings
160
- openpyxl
161
- Unidecode
150
+ sre_yield
151
+ google-auth-httplib2
152
+ google-api-python-client
153
+ dask[bag]
162
154
  pydantic-ai[logfire,openai]
155
+ torchvision
156
+ openpyxl
157
+ flet[all]
158
+ bokeh
159
+ pyyaml
160
+ json_repair
161
+ pymupdf4llm
162
+ peft
163
+ deepmerge
164
+ pytest-cov
163
165
  faker
164
- flet-webview
166
+ tinynetrc
167
+ google-auth-oauthlib
168
+ semver
165
169
  transformers[sentencepiece]
166
170
 
167
171
  [tokenization]
@@ -1,7 +0,0 @@
1
- from fmtr.tools.import_tools import MissingExtraMockModule
2
- from fmtr.tools.path_tools.base import Path, PackagePaths
3
-
4
- try:
5
- from fmtr.tools.path_tools.app import AppPaths
6
- except ImportError as exception:
7
- AppPaths = MissingExtraMockModule('path.app', exception)
@@ -1 +0,0 @@
1
- 1.1.14
File without changes
File without changes
File without changes