fmtr.tools 1.0.26__py3-none-any.whl → 1.0.28__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/config.py CHANGED
@@ -5,7 +5,8 @@ from fmtr.tools.config_tools import ConfigClass
5
5
 
6
6
  class ToolsConfig(ConfigClass):
7
7
  ENCODING = 'UTF-8'
8
- LIBRARY_NAME = 'fmtr.tools'
8
+ ORG_NAME = 'fmtr'
9
+ LIBRARY_NAME = f'{ORG_NAME}.tools'
9
10
  DATE_FILENAME_FORMAT = '%Y-%m-%d'
10
11
  TIME_FILENAME_FORMAT = '%H-%M-%S'
11
12
 
@@ -16,3 +17,5 @@ class ToolsConfig(ConfigClass):
16
17
  SERIALIZATION_INDENT = 4
17
18
 
18
19
  FMTR_LOG_LEVEL_KEY = 'FMTR_LOG_LEVEL'
20
+ FMTR_OBS_API_KEY_KEY = 'FMTR_OBS_API_KEY'
21
+ FMTR_OBS_HOST = 'log.sv.fmtr.dev'
@@ -1,20 +1,19 @@
1
1
  import logging
2
2
  import os
3
- from logfire import ConsoleOptions
4
3
 
5
4
  from fmtr.tools import environment_tools
5
+ from fmtr.tools.config import ToolsConfig
6
6
 
7
7
  DEVELOPMENT = "development"
8
8
  PRODUCTION = "production"
9
- HOST_DEFAULT = "log.sv.fmtr.dev"
10
- ORG_DEFAULT = "fmtr"
11
9
  STREAM_DEFAULT = DEVELOPMENT
12
10
  ENVIRONMENT_DEFAULT = DEVELOPMENT
13
11
 
14
12
  LEVEL_DEFAULT = logging.DEBUG if environment_tools.IS_DEBUG else logging.INFO
15
13
 
16
14
 
17
- def get_logger(name, version, host=HOST_DEFAULT, org=ORG_DEFAULT, stream=STREAM_DEFAULT,
15
+ def get_logger(name, version=None, host=ToolsConfig.FMTR_OBS_HOST, key=None, org=ToolsConfig.ORG_NAME,
16
+ stream=STREAM_DEFAULT,
18
17
  environment=ENVIRONMENT_DEFAULT, level=LEVEL_DEFAULT):
19
18
  """
20
19
 
@@ -31,21 +30,25 @@ def get_logger(name, version, host=HOST_DEFAULT, org=ORG_DEFAULT, stream=STREAM_
31
30
 
32
31
  return logger
33
32
 
34
- key = environment_tools.get("FMTR_OBS_API_KEY")
35
- traces_endpoint = f"https://{host}/api/{org}/v1/traces"
33
+ if key is None:
34
+ key = environment_tools.get(ToolsConfig.FMTR_OBS_API_KEY_KEY)
35
+ url = f"https://{host}/api/{org}/v1/traces"
36
36
  headers = f"Authorization=Basic {key},stream-name={stream}"
37
37
 
38
- os.environ["OTEL_EXPORTER_OTLP_TRACES_ENDPOINT"] = traces_endpoint
38
+ os.environ["OTEL_EXPORTER_OTLP_TRACES_ENDPOINT"] = url
39
39
  os.environ["OTEL_EXPORTER_OTLP_HEADERS"] = headers
40
40
  os.environ["OTEL_EXPORTER_OTLP_INSECURE"] = str(False).lower()
41
41
 
42
+ if not version:
43
+ from fmtr.tools import version_tools
44
+ version = version_tools.read()
45
+
42
46
  logfire.configure(
43
47
  service_name=name,
44
48
  service_version=version,
45
49
  environment=environment,
46
50
  send_to_logfire=False,
47
- console=ConsoleOptions(colors='always' if environment_tools.IS_DEBUG else 'auto')
48
-
51
+ console=logfire.ConsoleOptions(colors='always' if environment_tools.IS_DEBUG else 'auto')
49
52
  )
50
53
 
51
54
  logging.getLogger(name).setLevel(level)
@@ -54,6 +57,9 @@ def get_logger(name, version, host=HOST_DEFAULT, org=ORG_DEFAULT, stream=STREAM_
54
57
  return logger
55
58
 
56
59
 
57
- logger = get_logger(name='fmtr.tools', version='0.0.0')
60
+ logger = get_logger(name=ToolsConfig.LIBRARY_NAME)
58
61
 
59
- logger = get_logger()
62
+ if __name__ == '__main__':
63
+ logger.info('Hello World')
64
+ logger.warning('test warning')
65
+ logger.debug('Hello World')
fmtr/tools/version CHANGED
@@ -1 +1 @@
1
- 1.0.26
1
+ 1.0.28
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fmtr.tools
3
- Version: 1.0.26
3
+ Version: 1.0.28
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
@@ -15,14 +15,17 @@ Requires-Dist: torchaudio ; extra == 'ai'
15
15
  Requires-Dist: torchvision ; extra == 'ai'
16
16
  Requires-Dist: transformers[sentencepiece] ; extra == 'ai'
17
17
  Provides-Extra: ai.client
18
+ Requires-Dist: logfire ; extra == 'ai.client'
18
19
  Requires-Dist: ollama ; extra == 'ai.client'
19
20
  Requires-Dist: openai ; extra == 'ai.client'
20
21
  Requires-Dist: pydantic ; extra == 'ai.client'
21
- Requires-Dist: pydantic-ai[openai] ; extra == 'ai.client'
22
+ Requires-Dist: pydantic-ai[logfire,openai] ; extra == 'ai.client'
23
+ Requires-Dist: semver ; extra == 'ai.client'
22
24
  Provides-Extra: api
23
25
  Requires-Dist: fastapi ; extra == 'api'
24
26
  Requires-Dist: logfire ; extra == 'api'
25
27
  Requires-Dist: pydantic ; extra == 'api'
28
+ Requires-Dist: semver ; extra == 'api'
26
29
  Requires-Dist: uvicorn ; extra == 'api'
27
30
  Provides-Extra: augmentation
28
31
  Requires-Dist: faker ; extra == 'augmentation'
@@ -49,6 +52,7 @@ Provides-Extra: json-fix
49
52
  Requires-Dist: json-repair ; extra == 'json-fix'
50
53
  Provides-Extra: logging
51
54
  Requires-Dist: logfire ; extra == 'logging'
55
+ Requires-Dist: semver ; extra == 'logging'
52
56
  Provides-Extra: merging
53
57
  Requires-Dist: deepmerge ; extra == 'merging'
54
58
  Provides-Extra: metric
@@ -63,6 +67,7 @@ Requires-Dist: dask[bag] ; extra == 'parallel'
63
67
  Requires-Dist: distributed ; extra == 'parallel'
64
68
  Provides-Extra: process
65
69
  Requires-Dist: logfire ; extra == 'process'
70
+ Requires-Dist: semver ; extra == 'process'
66
71
  Provides-Extra: profiling
67
72
  Requires-Dist: contexttimer ; extra == 'profiling'
68
73
  Provides-Extra: semantic
@@ -94,7 +99,7 @@ Requires-Dist: openai ; extra == 'test'
94
99
  Requires-Dist: pandas ; extra == 'test'
95
100
  Requires-Dist: peft ; extra == 'test'
96
101
  Requires-Dist: pydantic ; extra == 'test'
97
- Requires-Dist: pydantic-ai[openai] ; extra == 'test'
102
+ Requires-Dist: pydantic-ai[logfire,openai] ; extra == 'test'
98
103
  Requires-Dist: pytest-cov ; extra == 'test'
99
104
  Requires-Dist: pyyaml ; extra == 'test'
100
105
  Requires-Dist: semver ; extra == 'test'
@@ -4,7 +4,7 @@ fmtr/tools/api_tools.py,sha256=KU_qetI7WQRZijZ0l1nCKjPcRbseMMCWj0W8n_NTJCM,2027
4
4
  fmtr/tools/async_tools.py,sha256=ewz757WcveQJd-G5SVr2JDOQVbdLGecCgl-tsBGVZz4,284
5
5
  fmtr/tools/augmentation_tools.py,sha256=-6ESbO4CDlKqVOV1J1V6qBeoBMzbFIinkDHRHnCBej0,55
6
6
  fmtr/tools/caching_tools.py,sha256=UOCYUNvLQ-NofR_dhqBmZF96-HRPf4At5MmxVk3gAIk,2943
7
- fmtr/tools/config.py,sha256=YBnasdUeRnP9LpyXLAukx8K4-41CM3aNhZyxHb-wBXc,602
7
+ fmtr/tools/config.py,sha256=AUlNqXqJxB8muPwM7AQMDsET9B51BmMQaNr8YoROjNo,715
8
8
  fmtr/tools/config_tools.py,sha256=27PbPYj90ClIW4QcRoUoiFM3SbWeMIIZsZR32IPU4V8,805
9
9
  fmtr/tools/console_script_tools.py,sha256=T968S6fL--84G5ALaKwcTAzUOFyVhTU7Ts6qbk8oaeE,65
10
10
  fmtr/tools/data_modelling_tools.py,sha256=bggZ-INJWr4depWC00lfXhzBtoFUOdon7Xahrj76vrY,574
@@ -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=31zExdIo2hNplKHFc8vX30qXcTgpItvKSNtfVhJOSeY,1653
26
+ fmtr/tools/logging_tools.py,sha256=dqD0F6D0gx1zVR7t8TeHfitB6U4asPhfUMjwhKcuXc4,1882
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=7IhJvp28Xo4-0k6CetFL-o-uYHtMu0UaRn-KBLcLn8s,6
44
+ fmtr/tools/version,sha256=Iu_wasRiREN9L8dG_z5ysyPXts7Bf3dsjcHw4OlWOd4,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.26.dist-info/LICENSE,sha256=FW9aa6vVN5IjRQWLT43hs4_koYSmpcbIovlKeAJ0_cI,10757
56
- fmtr.tools-1.0.26.dist-info/METADATA,sha256=UvbXsSdI4ZH3xRSqVWhFJvizqghXHUztUX_y9q6bOc4,12817
57
- fmtr.tools-1.0.26.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
58
- fmtr.tools-1.0.26.dist-info/entry_points.txt,sha256=CEStVkwJ1mTFvhN1WV5RdW83SkNW1d5Syj-KZ6A19ng,72
59
- fmtr.tools-1.0.26.dist-info/top_level.txt,sha256=t5341a8ii3n4RFizwTeXGmcq_pf4GqL1h9ylE5LIWRk,12
60
- fmtr.tools-1.0.26.dist-info/RECORD,,
55
+ fmtr.tools-1.0.28.dist-info/LICENSE,sha256=FW9aa6vVN5IjRQWLT43hs4_koYSmpcbIovlKeAJ0_cI,10757
56
+ fmtr.tools-1.0.28.dist-info/METADATA,sha256=RKYOO4c1DwGFGHpHh031uBrScwLzhj6hZ02LYyT6slI,13049
57
+ fmtr.tools-1.0.28.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
58
+ fmtr.tools-1.0.28.dist-info/entry_points.txt,sha256=CEStVkwJ1mTFvhN1WV5RdW83SkNW1d5Syj-KZ6A19ng,72
59
+ fmtr.tools-1.0.28.dist-info/top_level.txt,sha256=t5341a8ii3n4RFizwTeXGmcq_pf4GqL1h9ylE5LIWRk,12
60
+ fmtr.tools-1.0.28.dist-info/RECORD,,