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.
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/PKG-INFO +3 -3
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/README.md +2 -2
- fmtr.tools-1.0.24/fmtr/tools/logging_tools.py +35 -0
- fmtr.tools-1.0.24/fmtr/tools/version +1 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr.tools.egg-info/PKG-INFO +3 -3
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr.tools.egg-info/requires.txt +4 -4
- fmtr.tools-1.0.23/fmtr/tools/logging_tools.py +0 -71
- fmtr.tools-1.0.23/fmtr/tools/version +0 -1
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/LICENSE +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/__init__.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/ai_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/api_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/async_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/augmentation_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/caching_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/config.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/config_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/console_script_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/data_modelling_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/dataclass_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/datatype_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/docker_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/environment_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/function_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/google_api_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/hash_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/hfh_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/html_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/import_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/inspection_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/interface_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/iterator_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/json_fix_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/json_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/merging_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/metric_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/name_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/netrc_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/openai_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/parallel_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/path_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/platform_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/process_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/profiling_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/random_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/semantic_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/spaces_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/string_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/tests/__init__.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/tests/conftest.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/tests/helpers.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/tests/test_datatype.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/tests/test_environment.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/tests/test_json.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/tests/test_path.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/tests/test_yaml.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/tokenization_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/unicode_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/version_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr/tools/yaml_tools.py +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr.tools.egg-info/SOURCES.txt +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr.tools.egg-info/dependency_links.txt +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr.tools.egg-info/entry_points.txt +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/fmtr.tools.egg-info/top_level.txt +0 -0
- {fmtr.tools-1.0.23 → fmtr.tools-1.0.24}/setup.cfg +0 -0
- {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.
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
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.
|
|
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
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|