fmtr.tools 1.0.23__tar.gz → 1.0.24__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 (67) hide show
  1. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/PKG-INFO +3 -3
  2. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/README.md +2 -2
  3. fmtr.tools-1.0.24/fmtr/tools/logging_tools.py +35 -0
  4. fmtr.tools-1.0.24/fmtr/tools/version +1 -0
  5. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr.tools.egg-info/PKG-INFO +3 -3
  6. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr.tools.egg-info/requires.txt +4 -4
  7. fmtr.tools-1.0.23/fmtr/tools/logging_tools.py +0 -71
  8. fmtr.tools-1.0.23/fmtr/tools/version +0 -1
  9. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/LICENSE +0 -0
  10. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/__init__.py +0 -0
  11. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/ai_tools.py +0 -0
  12. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/api_tools.py +0 -0
  13. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/async_tools.py +0 -0
  14. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/augmentation_tools.py +0 -0
  15. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/caching_tools.py +0 -0
  16. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/config.py +0 -0
  17. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/config_tools.py +0 -0
  18. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/console_script_tools.py +0 -0
  19. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/data_modelling_tools.py +0 -0
  20. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/dataclass_tools.py +0 -0
  21. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/datatype_tools.py +0 -0
  22. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/docker_tools.py +0 -0
  23. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/environment_tools.py +0 -0
  24. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/function_tools.py +0 -0
  25. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/google_api_tools.py +0 -0
  26. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/hash_tools.py +0 -0
  27. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/hfh_tools.py +0 -0
  28. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/html_tools.py +0 -0
  29. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/import_tools.py +0 -0
  30. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/inspection_tools.py +0 -0
  31. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/interface_tools.py +0 -0
  32. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/iterator_tools.py +0 -0
  33. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/json_fix_tools.py +0 -0
  34. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/json_tools.py +0 -0
  35. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/merging_tools.py +0 -0
  36. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/metric_tools.py +0 -0
  37. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/name_tools.py +0 -0
  38. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/netrc_tools.py +0 -0
  39. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/openai_tools.py +0 -0
  40. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/parallel_tools.py +0 -0
  41. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/path_tools.py +0 -0
  42. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/platform_tools.py +0 -0
  43. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/process_tools.py +0 -0
  44. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/profiling_tools.py +0 -0
  45. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/random_tools.py +0 -0
  46. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/semantic_tools.py +0 -0
  47. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/spaces_tools.py +0 -0
  48. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/string_tools.py +0 -0
  49. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/tests/__init__.py +0 -0
  50. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/tests/conftest.py +0 -0
  51. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/tests/helpers.py +0 -0
  52. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/tests/test_datatype.py +0 -0
  53. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/tests/test_environment.py +0 -0
  54. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/tests/test_json.py +0 -0
  55. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/tests/test_path.py +0 -0
  56. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/tests/test_yaml.py +0 -0
  57. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/tokenization_tools.py +0 -0
  58. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/tools.py +0 -0
  59. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/unicode_tools.py +0 -0
  60. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/version_tools.py +0 -0
  61. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/yaml_tools.py +0 -0
  62. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr.tools.egg-info/SOURCES.txt +0 -0
  63. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr.tools.egg-info/dependency_links.txt +0 -0
  64. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr.tools.egg-info/entry_points.txt +0 -0
  65. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr.tools.egg-info/top_level.txt +0 -0
  66. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/setup.cfg +0 -0
  67. {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fmtr.tools
3
- Version: 1.0.23
3
+ Version: 1.0.24
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
@@ -164,9 +164,9 @@ The included modules, plus any extra requirements, are as follows:
164
164
  - Extras: `semantic`
165
165
  - `tools.string`: Provides utilities for handling string formatting.
166
166
  - Extras: None
167
- - `tools.logging`: Configures and initializes a logger using the Loguru library. Provides customizable logging formats for time, level, file, function, and message components.
167
+ - `tools.logging`: Configures and initializes a logger using the Logfire library to log to an OpenTelemetry consumer.
168
168
  - Extras: `logging`
169
- - `tools.logger`: Prefabricated `logger` object, suitable for most projects, timestamped, color-coded, etc.
169
+ - `tools.logger`: Prefabricated `logger` object, suitable for most projects: service name, timestamped, etc.
170
170
  - Extras: `logging`
171
171
  - `tools.augmentation`: Data augmentation stub.
172
172
  - Extras: `augmentation`
@@ -126,9 +126,9 @@ The included modules, plus any extra requirements, are as follows:
126
126
  - Extras: `semantic`
127
127
  - `tools.string`: Provides utilities for handling string formatting.
128
128
  - Extras: None
129
- - `tools.logging`: Configures and initializes a logger using the Loguru library. Provides customizable logging formats for time, level, file, function, and message components.
129
+ - `tools.logging`: Configures and initializes a logger using the Logfire library to log to an OpenTelemetry consumer.
130
130
  - Extras: `logging`
131
- - `tools.logger`: Prefabricated `logger` object, suitable for most projects, timestamped, color-coded, etc.
131
+ - `tools.logger`: Prefabricated `logger` object, suitable for most projects: service name, timestamped, etc.
132
132
  - Extras: `logging`
133
133
  - `tools.augmentation`: Data augmentation stub.
134
134
  - Extras: `augmentation`
@@ -0,0 +1,35 @@
1
+ import logging
2
+
3
+
4
+ def get_logger(name, version, level, environment):
5
+ """
6
+
7
+ Get a pre-configured loguru logger, if dependency is present, otherwise default to native logger.
8
+
9
+ """
10
+
11
+ try:
12
+ import logfire
13
+ except ImportError:
14
+ logger = logging.getLogger(None)
15
+ logger.setLevel(level)
16
+ logger.warning(f'Logging dependencies not installed. Using native logger.')
17
+
18
+ return logger
19
+
20
+ logfire.configure(
21
+ service_name=name,
22
+ service_version=version,
23
+ environment=environment,
24
+ send_to_logfire=False
25
+
26
+ )
27
+
28
+ logging.getLogger(name).setLevel(level)
29
+
30
+ return logfire
31
+
32
+
33
+ logger = get_logger(name='fmtr.tools', version='0.0.0', level=logging.DEBUG, environment='dev')
34
+
35
+ logger = get_logger()
@@ -0,0 +1 @@
1
+ 1.0.24
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fmtr.tools
3
- Version: 1.0.23
3
+ Version: 1.0.24
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
@@ -164,9 +164,9 @@ The included modules, plus any extra requirements, are as follows:
164
164
  - Extras: `semantic`
165
165
  - `tools.string`: Provides utilities for handling string formatting.
166
166
  - Extras: None
167
- - `tools.logging`: Configures and initializes a logger using the Loguru library. Provides customizable logging formats for time, level, file, function, and message components.
167
+ - `tools.logging`: Configures and initializes a logger using the Logfire library to log to an OpenTelemetry consumer.
168
168
  - Extras: `logging`
169
- - `tools.logger`: Prefabricated `logger` object, suitable for most projects, timestamped, color-coded, etc.
169
+ - `tools.logger`: Prefabricated `logger` object, suitable for most projects: service name, timestamped, etc.
170
170
  - Extras: `logging`
171
171
  - `tools.augmentation`: Data augmentation stub.
172
172
  - Extras: `augmentation`
@@ -14,7 +14,7 @@ pydantic-ai[openai]
14
14
 
15
15
  [api]
16
16
  fastapi
17
- loguru
17
+ logfire
18
18
  pydantic
19
19
  uvicorn
20
20
 
@@ -51,7 +51,7 @@ streamlit
51
51
  json_repair
52
52
 
53
53
  [logging]
54
- loguru
54
+ logfire
55
55
 
56
56
  [merging]
57
57
  deepmerge
@@ -71,7 +71,7 @@ dask[bag]
71
71
  distributed
72
72
 
73
73
  [process]
74
- loguru
74
+ logfire
75
75
 
76
76
  [profiling]
77
77
  contexttimer
@@ -101,7 +101,7 @@ google-auth-oauthlib
101
101
  html2text
102
102
  huggingface_hub
103
103
  json_repair
104
- loguru
104
+ logfire
105
105
  ollama
106
106
  openai
107
107
  pandas
@@ -1,71 +0,0 @@
1
- import sys
2
-
3
- from fmtr.tools.config import ToolsConfig
4
- from fmtr.tools.config_tools import ConfigClass
5
- from fmtr.tools.environment_tools import get
6
- from fmtr.tools.path_tools import Path
7
-
8
-
9
- class LoggingConfig(ConfigClass):
10
- SEP = ' '
11
- TIME = '<bold><green>{time:' + ToolsConfig.DATETIME_FILENAME_FORMAT + '}</green></bold>'
12
- ICON = '<level>{level.icon}</level>'
13
- LEVEL = '<level>{level:<8}</level>'
14
- FILE = '{file}:{line}'
15
- FUNCTION = '{function}(…)'
16
- MESSAGE = '{message}'
17
- DEFAULT_LEVEL_KEY = 'FMTR_LOG_LEVEL'
18
- DEFAULT_LEVEL = get(DEFAULT_LEVEL_KEY, 'INFO')
19
-
20
- FILENAME = f'log-{ToolsConfig.DATETIME_NOW_STR}.log'
21
-
22
-
23
- def default_filter(record):
24
- return True
25
-
26
-
27
- def default_patch(record):
28
- return record
29
-
30
-
31
- def get_logger(terminal=True, level=LoggingConfig.DEFAULT_LEVEL, time_format=LoggingConfig.TIME,
32
- icon_format=LoggingConfig.ICON,
33
- level_format=LoggingConfig.LEVEL, file_format=LoggingConfig.FILE, function_format=LoggingConfig.FUNCTION,
34
- message_format=LoggingConfig.MESSAGE,
35
- logfile=False, logfile_dir=None):
36
- """
37
-
38
- Get a pre-configured loguru logger, if dependency is present, otherwise default to native logger.
39
-
40
- """
41
-
42
- try:
43
- from loguru import logger as logger_loguru
44
- logger = logger_loguru
45
- except ImportError:
46
- import logging
47
-
48
- logger = logging.getLogger(None)
49
- logger.setLevel(level)
50
-
51
- return logger
52
-
53
-
54
-
55
- components = [time_format, icon_format, level_format, file_format, function_format, message_format]
56
- format = LoggingConfig.SEP.join([component for component in components if component])
57
- logger.remove()
58
-
59
- if terminal:
60
- logger.add(sys.stderr, format=format, level=level, filter=default_filter)
61
- logger = logger.patch(default_patch)
62
-
63
- if logfile:
64
- logfile_dir = Path(logfile_dir or '.')
65
- logfile_path = logfile_dir / LoggingConfig.FILENAME
66
- logger.add(logfile_path, format=format)
67
-
68
- return logger
69
-
70
-
71
- logger = get_logger()
@@ -1 +0,0 @@
1
- 1.0.23
File without changes
File without changes
File without changes