fmtr.tools 1.0.23__py3-none-any.whl → 1.0.24__py3-none-any.whl
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/logging_tools.py +13 -49
- fmtr/tools/version +1 -1
- {fmtr.tools-1.0.23.dist-info → fmtr.tools-1.0.24.dist-info}/METADATA +7 -7
- {fmtr.tools-1.0.23.dist-info → fmtr.tools-1.0.24.dist-info}/RECORD +8 -8
- {fmtr.tools-1.0.23.dist-info → fmtr.tools-1.0.24.dist-info}/LICENSE +0 -0
- {fmtr.tools-1.0.23.dist-info → fmtr.tools-1.0.24.dist-info}/WHEEL +0 -0
- {fmtr.tools-1.0.23.dist-info → fmtr.tools-1.0.24.dist-info}/entry_points.txt +0 -0
- {fmtr.tools-1.0.23.dist-info → fmtr.tools-1.0.24.dist-info}/top_level.txt +0 -0
fmtr/tools/logging_tools.py
CHANGED
|
@@ -1,38 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import logging
|
|
2
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
3
|
|
|
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):
|
|
4
|
+
def get_logger(name, version, level, environment):
|
|
36
5
|
"""
|
|
37
6
|
|
|
38
7
|
Get a pre-configured loguru logger, if dependency is present, otherwise default to native logger.
|
|
@@ -40,32 +9,27 @@ def get_logger(terminal=True, level=LoggingConfig.DEFAULT_LEVEL, time_format=Log
|
|
|
40
9
|
"""
|
|
41
10
|
|
|
42
11
|
try:
|
|
43
|
-
|
|
44
|
-
logger = logger_loguru
|
|
12
|
+
import logfire
|
|
45
13
|
except ImportError:
|
|
46
|
-
import logging
|
|
47
|
-
|
|
48
14
|
logger = logging.getLogger(None)
|
|
49
15
|
logger.setLevel(level)
|
|
16
|
+
logger.warning(f'Logging dependencies not installed. Using native logger.')
|
|
50
17
|
|
|
51
18
|
return logger
|
|
52
19
|
|
|
20
|
+
logfire.configure(
|
|
21
|
+
service_name=name,
|
|
22
|
+
service_version=version,
|
|
23
|
+
environment=environment,
|
|
24
|
+
send_to_logfire=False
|
|
53
25
|
|
|
26
|
+
)
|
|
54
27
|
|
|
55
|
-
|
|
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)
|
|
28
|
+
logging.getLogger(name).setLevel(level)
|
|
62
29
|
|
|
63
|
-
|
|
64
|
-
logfile_dir = Path(logfile_dir or '.')
|
|
65
|
-
logfile_path = logfile_dir / LoggingConfig.FILENAME
|
|
66
|
-
logger.add(logfile_path, format=format)
|
|
30
|
+
return logfire
|
|
67
31
|
|
|
68
|
-
return logger
|
|
69
32
|
|
|
33
|
+
logger = get_logger(name='fmtr.tools', version='0.0.0', level=logging.DEBUG, environment='dev')
|
|
70
34
|
|
|
71
35
|
logger = get_logger()
|
fmtr/tools/version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0.
|
|
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
|
|
@@ -21,7 +21,7 @@ Requires-Dist: pydantic ; extra == 'ai.client'
|
|
|
21
21
|
Requires-Dist: pydantic-ai[openai] ; extra == 'ai.client'
|
|
22
22
|
Provides-Extra: api
|
|
23
23
|
Requires-Dist: fastapi ; extra == 'api'
|
|
24
|
-
Requires-Dist:
|
|
24
|
+
Requires-Dist: logfire ; extra == 'api'
|
|
25
25
|
Requires-Dist: pydantic ; extra == 'api'
|
|
26
26
|
Requires-Dist: uvicorn ; extra == 'api'
|
|
27
27
|
Provides-Extra: augmentation
|
|
@@ -48,7 +48,7 @@ Requires-Dist: streamlit ; extra == 'interface'
|
|
|
48
48
|
Provides-Extra: json-fix
|
|
49
49
|
Requires-Dist: json-repair ; extra == 'json-fix'
|
|
50
50
|
Provides-Extra: logging
|
|
51
|
-
Requires-Dist:
|
|
51
|
+
Requires-Dist: logfire ; extra == 'logging'
|
|
52
52
|
Provides-Extra: merging
|
|
53
53
|
Requires-Dist: deepmerge ; extra == 'merging'
|
|
54
54
|
Provides-Extra: metric
|
|
@@ -62,7 +62,7 @@ Requires-Dist: bokeh ; extra == 'parallel'
|
|
|
62
62
|
Requires-Dist: dask[bag] ; extra == 'parallel'
|
|
63
63
|
Requires-Dist: distributed ; extra == 'parallel'
|
|
64
64
|
Provides-Extra: process
|
|
65
|
-
Requires-Dist:
|
|
65
|
+
Requires-Dist: logfire ; extra == 'process'
|
|
66
66
|
Provides-Extra: profiling
|
|
67
67
|
Requires-Dist: contexttimer ; extra == 'profiling'
|
|
68
68
|
Provides-Extra: semantic
|
|
@@ -88,7 +88,7 @@ Requires-Dist: google-auth-oauthlib ; extra == 'test'
|
|
|
88
88
|
Requires-Dist: html2text ; extra == 'test'
|
|
89
89
|
Requires-Dist: huggingface-hub ; extra == 'test'
|
|
90
90
|
Requires-Dist: json-repair ; extra == 'test'
|
|
91
|
-
Requires-Dist:
|
|
91
|
+
Requires-Dist: logfire ; extra == 'test'
|
|
92
92
|
Requires-Dist: ollama ; extra == 'test'
|
|
93
93
|
Requires-Dist: openai ; extra == 'test'
|
|
94
94
|
Requires-Dist: pandas ; extra == 'test'
|
|
@@ -244,9 +244,9 @@ The included modules, plus any extra requirements, are as follows:
|
|
|
244
244
|
- Extras: `semantic`
|
|
245
245
|
- `tools.string`: Provides utilities for handling string formatting.
|
|
246
246
|
- Extras: None
|
|
247
|
-
- `tools.logging`: Configures and initializes a logger using the
|
|
247
|
+
- `tools.logging`: Configures and initializes a logger using the Logfire library to log to an OpenTelemetry consumer.
|
|
248
248
|
- Extras: `logging`
|
|
249
|
-
- `tools.logger`: Prefabricated `logger` object, suitable for most projects, timestamped,
|
|
249
|
+
- `tools.logger`: Prefabricated `logger` object, suitable for most projects: service name, timestamped, etc.
|
|
250
250
|
- Extras: `logging`
|
|
251
251
|
- `tools.augmentation`: Data augmentation stub.
|
|
252
252
|
- Extras: `augmentation`
|
|
@@ -23,7 +23,7 @@ fmtr/tools/interface_tools.py,sha256=fi0KW0veB2NQCmVmCA9iJUL_03gz0MD-gJ4OK-QUBVA
|
|
|
23
23
|
fmtr/tools/iterator_tools.py,sha256=xj5f0c7LgLK53dddRRRJxBoLaBzlZoQS3_GfmpDPMoo,1311
|
|
24
24
|
fmtr/tools/json_fix_tools.py,sha256=vNSlswVQnujPmKEqDjFJcO901mjMyv59q3awsT7mlhs,477
|
|
25
25
|
fmtr/tools/json_tools.py,sha256=IKmrANhcftIz2msCZeItidJ1PcpY_tnbfxbRDnta-c0,349
|
|
26
|
-
fmtr/tools/logging_tools.py,sha256=
|
|
26
|
+
fmtr/tools/logging_tools.py,sha256=4kLmoRZ2dGlJQ2a9skjN-Dzoig2TTrQagTzOSHCC59E,764
|
|
27
27
|
fmtr/tools/merging_tools.py,sha256=KDxCEFJEQJEwGw1qGKAgR55uUE2X2S5NWLKcfHRmX_k,227
|
|
28
28
|
fmtr/tools/metric_tools.py,sha256=Lvia5CGFRIfrDFA8s37btIfTU5zHbo04cPJdAMtbndQ,272
|
|
29
29
|
fmtr/tools/name_tools.py,sha256=5CB_phqhHjl66iI8oLxOGPF2odC1apdul-M8Fv2xBhs,5514
|
|
@@ -41,7 +41,7 @@ fmtr/tools/string_tools.py,sha256=w0lw70bgzJ8tAHj_4lMrjtMyefE5kELgpCBgGzGcalo,31
|
|
|
41
41
|
fmtr/tools/tokenization_tools.py,sha256=9FP5vgPufWv0XA961eVKObFll0d_2mM0W3ut3rtZyeo,4329
|
|
42
42
|
fmtr/tools/tools.py,sha256=xnfUrOnrT4OxFYez6vV5tAhydzCICJFiGVnviiZDEQo,796
|
|
43
43
|
fmtr/tools/unicode_tools.py,sha256=yS_9wpu8ogNoiIL7s1G_8bETFFO_YQlo4LNPv1NLDeY,52
|
|
44
|
-
fmtr/tools/version,sha256
|
|
44
|
+
fmtr/tools/version,sha256=NKsrXXSR5CF_60j-qlDbIX61NAgRq7jQYxPyZdMX-dk,6
|
|
45
45
|
fmtr/tools/version_tools.py,sha256=pHxD425tc5JhGfMjE3-lRLnJOVPpf63Y5FGha5ntiVY,1112
|
|
46
46
|
fmtr/tools/yaml_tools.py,sha256=Ol43ZwbnSXGnn1K98Uxx61KPGSqfC4axE-X2q1LKMwk,349
|
|
47
47
|
fmtr/tools/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -52,9 +52,9 @@ fmtr/tools/tests/test_environment.py,sha256=iHaiMQfECYZPkPKwfuIZV9uHuWe3aE-p_dN_
|
|
|
52
52
|
fmtr/tools/tests/test_json.py,sha256=IeSP4ziPvRcmS8kq7k9tHonC9rN5YYq9GSNT2ul6Msk,287
|
|
53
53
|
fmtr/tools/tests/test_path.py,sha256=AkZQa6_8BQ-VaCyL_J-iKmdf2ZaM-xFYR37Kun3k4_g,2188
|
|
54
54
|
fmtr/tools/tests/test_yaml.py,sha256=jc0TwwKu9eC0LvFGNMERdgBue591xwLxYXFbtsRwXVM,287
|
|
55
|
-
fmtr.tools-1.0.
|
|
56
|
-
fmtr.tools-1.0.
|
|
57
|
-
fmtr.tools-1.0.
|
|
58
|
-
fmtr.tools-1.0.
|
|
59
|
-
fmtr.tools-1.0.
|
|
60
|
-
fmtr.tools-1.0.
|
|
55
|
+
fmtr.tools-1.0.24.dist-info/LICENSE,sha256=FW9aa6vVN5IjRQWLT43hs4_koYSmpcbIovlKeAJ0_cI,10757
|
|
56
|
+
fmtr.tools-1.0.24.dist-info/METADATA,sha256=Jzy_zKQS4nFe-JnldB4-bJB-QkD1dwQ7M264IrdPmnQ,12801
|
|
57
|
+
fmtr.tools-1.0.24.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
|
58
|
+
fmtr.tools-1.0.24.dist-info/entry_points.txt,sha256=CEStVkwJ1mTFvhN1WV5RdW83SkNW1d5Syj-KZ6A19ng,72
|
|
59
|
+
fmtr.tools-1.0.24.dist-info/top_level.txt,sha256=t5341a8ii3n4RFizwTeXGmcq_pf4GqL1h9ylE5LIWRk,12
|
|
60
|
+
fmtr.tools-1.0.24.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|