fmtr.tools 1.3.3__py3-none-any.whl → 1.3.4__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.

@@ -2,6 +2,7 @@ import socket
2
2
  from dataclasses import dataclass
3
3
 
4
4
  from fmtr.tools.dns_tools.dm import Exchange
5
+ from fmtr.tools.logging_tools import logger
5
6
 
6
7
 
7
8
  @dataclass
@@ -30,7 +31,7 @@ class Plain:
30
31
  """
31
32
  sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
32
33
  sock.bind((self.host, self.port))
33
- print(f"Listening on {self.host}:{self.port}")
34
+ logger.info(f'Listening on {self.host}:{self.port}')
34
35
  while True:
35
36
  data, (ip, port) = sock.recvfrom(512)
36
37
  exchange = Exchange.from_wire(data, ip=ip, port=port)
@@ -108,6 +108,11 @@ class Transformer:
108
108
  default: Any = None
109
109
  is_recursive: bool = False
110
110
 
111
+ def __post_init__(self):
112
+ with logger.span(f'Compiling expression {len(self.items)=}'):
113
+ rx = self.rx
114
+ logger.debug(f'Compiled successfully {rx.groups=}')
115
+
111
116
  @cached_property
112
117
  def pattern(self) -> str:
113
118
  """
@@ -132,6 +137,11 @@ class Transformer:
132
137
  return re.compile(self.pattern)
133
138
 
134
139
  def get_default(self, key: Key) -> Any:
140
+ """
141
+
142
+ Define what to return in case of no match
143
+
144
+ """
135
145
  if self.is_recursive:
136
146
  return key
137
147
  else:
@@ -162,7 +172,7 @@ class Transformer:
162
172
 
163
173
  if not match:
164
174
  value = self.get_default(key)
165
- logger.debug(f'No match for {key=}. Returning {self.default=}')
175
+ logger.debug(f'No match for {key=}. Returning {self.get_default(key)=}')
166
176
  else:
167
177
 
168
178
  match_ids = {name: v for name, v in match.groupdict().items() if v}
fmtr/tools/version CHANGED
@@ -1 +1 @@
1
- 1.3.3
1
+ 1.3.4
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fmtr.tools
3
- Version: 1.3.3
3
+ Version: 1.3.4
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
@@ -102,7 +102,7 @@ Requires-Dist: pymupdf; extra == "pdf"
102
102
  Requires-Dist: pydantic; extra == "pdf"
103
103
  Requires-Dist: pymupdf4llm; extra == "pdf"
104
104
  Provides-Extra: debug
105
- Requires-Dist: pydevd-pycharm; extra == "debug"
105
+ Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "debug"
106
106
  Provides-Extra: sets
107
107
  Requires-Dist: pydantic-settings; extra == "sets"
108
108
  Requires-Dist: pydantic; extra == "sets"
@@ -131,59 +131,59 @@ Provides-Extra: setup
131
131
  Requires-Dist: setuptools; extra == "setup"
132
132
  Provides-Extra: all
133
133
  Requires-Dist: appdirs; extra == "all"
134
- Requires-Dist: diskcache; extra == "all"
135
- Requires-Dist: html2text; extra == "all"
136
- Requires-Dist: semver; extra == "all"
137
- Requires-Dist: transformers[sentencepiece]; extra == "all"
138
- Requires-Dist: json_repair; extra == "all"
139
- Requires-Dist: sre_yield; extra == "all"
140
- Requires-Dist: torchvision; extra == "all"
141
- Requires-Dist: pymupdf; extra == "all"
142
- Requires-Dist: Unidecode; extra == "all"
143
- Requires-Dist: ollama; extra == "all"
144
- Requires-Dist: peft; extra == "all"
145
- Requires-Dist: google-auth-oauthlib; extra == "all"
146
- Requires-Dist: pandas; extra == "all"
134
+ Requires-Dist: flet-video; extra == "all"
135
+ Requires-Dist: openai; extra == "all"
147
136
  Requires-Dist: pydantic; extra == "all"
148
- Requires-Dist: yamlscript; extra == "all"
149
- Requires-Dist: pyyaml; extra == "all"
150
- Requires-Dist: pymupdf4llm; extra == "all"
151
- Requires-Dist: docker; extra == "all"
137
+ Requires-Dist: fastapi; extra == "all"
152
138
  Requires-Dist: faker; extra == "all"
153
- Requires-Dist: distributed; extra == "all"
139
+ Requires-Dist: regex; extra == "all"
140
+ Requires-Dist: google-auth-httplib2; extra == "all"
141
+ Requires-Dist: tokenizers; extra == "all"
142
+ Requires-Dist: sre_yield; extra == "all"
143
+ Requires-Dist: peft; extra == "all"
144
+ Requires-Dist: pydantic-settings; extra == "all"
154
145
  Requires-Dist: flet[all]; extra == "all"
155
- Requires-Dist: pytest-cov; extra == "all"
156
- Requires-Dist: dnspython[doh]; extra == "all"
157
- Requires-Dist: tinynetrc; extra == "all"
158
- Requires-Dist: flet-video; extra == "all"
159
- Requires-Dist: dask[bag]; extra == "all"
146
+ Requires-Dist: torchaudio; extra == "all"
147
+ Requires-Dist: google-api-python-client; extra == "all"
160
148
  Requires-Dist: bokeh; extra == "all"
149
+ Requires-Dist: huggingface_hub; extra == "all"
150
+ Requires-Dist: pymupdf; extra == "all"
161
151
  Requires-Dist: httpx; extra == "all"
162
- Requires-Dist: logfire; extra == "all"
163
- Requires-Dist: contexttimer; extra == "all"
152
+ Requires-Dist: pyyaml; extra == "all"
153
+ Requires-Dist: ollama; extra == "all"
154
+ Requires-Dist: openpyxl; extra == "all"
155
+ Requires-Dist: tinynetrc; extra == "all"
156
+ Requires-Dist: logfire[fastapi]; extra == "all"
164
157
  Requires-Dist: httpx_retries; extra == "all"
165
- Requires-Dist: google-auth; extra == "all"
166
- Requires-Dist: deepmerge; extra == "all"
167
- Requires-Dist: torchaudio; extra == "all"
168
- Requires-Dist: regex; extra == "all"
169
- Requires-Dist: sentence_transformers; extra == "all"
170
- Requires-Dist: tokenizers; extra == "all"
171
- Requires-Dist: huggingface_hub; extra == "all"
158
+ Requires-Dist: docker; extra == "all"
159
+ Requires-Dist: json_repair; extra == "all"
172
160
  Requires-Dist: tabulate; extra == "all"
173
- Requires-Dist: logfire[fastapi]; extra == "all"
174
161
  Requires-Dist: pydantic-ai[logfire,openai]; extra == "all"
175
- Requires-Dist: flet-webview; extra == "all"
176
- Requires-Dist: pydantic-settings; extra == "all"
177
162
  Requires-Dist: uvicorn[standard]; extra == "all"
178
- Requires-Dist: openai; extra == "all"
179
- Requires-Dist: pydevd-pycharm; extra == "all"
180
- Requires-Dist: google-api-python-client; extra == "all"
181
- Requires-Dist: fastapi; extra == "all"
182
- Requires-Dist: logfire[httpx]; extra == "all"
183
- Requires-Dist: google-auth-httplib2; extra == "all"
184
163
  Requires-Dist: filetype; extra == "all"
185
- Requires-Dist: openpyxl; extra == "all"
164
+ Requires-Dist: flet-webview; extra == "all"
165
+ Requires-Dist: pymupdf4llm; extra == "all"
166
+ Requires-Dist: html2text; extra == "all"
167
+ Requires-Dist: transformers[sentencepiece]; extra == "all"
186
168
  Requires-Dist: setuptools; extra == "all"
169
+ Requires-Dist: pandas; extra == "all"
170
+ Requires-Dist: dnspython[doh]; extra == "all"
171
+ Requires-Dist: google-auth; extra == "all"
172
+ Requires-Dist: logfire; extra == "all"
173
+ Requires-Dist: pytest-cov; extra == "all"
174
+ Requires-Dist: distributed; extra == "all"
175
+ Requires-Dist: sentence_transformers; extra == "all"
176
+ Requires-Dist: google-auth-oauthlib; extra == "all"
177
+ Requires-Dist: diskcache; extra == "all"
178
+ Requires-Dist: pydevd-pycharm~=251.25410.159; extra == "all"
179
+ Requires-Dist: yamlscript; extra == "all"
180
+ Requires-Dist: torchvision; extra == "all"
181
+ Requires-Dist: Unidecode; extra == "all"
182
+ Requires-Dist: contexttimer; extra == "all"
183
+ Requires-Dist: dask[bag]; extra == "all"
184
+ Requires-Dist: semver; extra == "all"
185
+ Requires-Dist: deepmerge; extra == "all"
186
+ Requires-Dist: logfire[httpx]; extra == "all"
187
187
  Dynamic: author
188
188
  Dynamic: author-email
189
189
  Dynamic: description
@@ -30,7 +30,7 @@ fmtr/tools/netrc_tools.py,sha256=PpNpz_mWlQi6VHGromKwFfTyLpHUXsd4LY6-OKLCbeI,376
30
30
  fmtr/tools/openai_tools.py,sha256=6SUgejgzUzmlKKct2_ePXntvMegu3FJgfk9x7aqtqYc,742
31
31
  fmtr/tools/packaging_tools.py,sha256=FlgOTnDRHZWQL2iR-wucTsyGEHRE-MlddKL30MPmUqE,253
32
32
  fmtr/tools/parallel_tools.py,sha256=QEb_gN1StkxsqYaH4HSjiJX8Y3gpb2uKNsOzG4uFpaM,3071
33
- fmtr/tools/pattern_tools.py,sha256=qlyMVpkkzsoxV-TRhaevsNvLekFotqUsgf2DA8L0sGk,5689
33
+ fmtr/tools/pattern_tools.py,sha256=EYKtBPnoBwTpvTPZWLYGrRFIGnSg2R6Tv2VmxvoJDog,5959
34
34
  fmtr/tools/pdf_tools.py,sha256=xvv9B84uAF81rFJRnXhSsxYuP42vY9ZdPVFrSMVe8G8,4069
35
35
  fmtr/tools/platform_tools.py,sha256=7p69CmAHe_sF68Fx9uVhns1k5EewTHTWgUYzkl6ZQKA,308
36
36
  fmtr/tools/process_tools.py,sha256=Ysh5Dk2QFBhXQerArjKdt7xZd3JrN5Ho02AaOjH0Nnw,1425
@@ -44,7 +44,7 @@ fmtr/tools/tabular_tools.py,sha256=tpIpZzYku1HcJrHZJL6BC39LmN3WUWVhFbK2N7nDVmE,1
44
44
  fmtr/tools/tokenization_tools.py,sha256=me-IBzSLyNYejLybwjO9CNB6Mj2NYfKPaOVThXyaGNg,4268
45
45
  fmtr/tools/tools.py,sha256=CAsApa1YwVdNE6H66Vjivs_mXYvOas3rh7fPELAnTpk,795
46
46
  fmtr/tools/unicode_tools.py,sha256=yS_9wpu8ogNoiIL7s1G_8bETFFO_YQlo4LNPv1NLDeY,52
47
- fmtr/tools/version,sha256=pbg4E5bSWOYbKrcebHaTPc25w2I4kZ1HI9h4zfIedp8,5
47
+ fmtr/tools/version,sha256=2Nc8Vw6HAjDWCtPBpzMVxh4-YdAUne_NZiu-z5HiatM,5
48
48
  fmtr/tools/version_tools.py,sha256=yNs_CGqWpqE4jbK9wsPIi14peJVXYbhIcMqHAFOw3yE,1480
49
49
  fmtr/tools/yaml_tools.py,sha256=9kuYChqJelWQIjGlSnK4iDdOWWH06P0gp9jIcRrC3UI,1903
50
50
  fmtr/tools/ai_tools/__init__.py,sha256=JZrLuOFNV1A3wvJgonxOgz_4WS-7MfCuowGWA5uYCjs,372
@@ -54,7 +54,7 @@ fmtr/tools/dns_tools/__init__.py,sha256=PjD3Og6D5yvDVpKmsUsrnSpz_rjXpl4zBtvMqm8x
54
54
  fmtr/tools/dns_tools/client.py,sha256=c2vzWBDZSxijwL1KvWUoDGc8wqk_KTAFxCr0P1rNjy8,2367
55
55
  fmtr/tools/dns_tools/dm.py,sha256=KWQeeZhsDyrKoXzAD5zEOoHH3aiD4uKRqwnD8fFP1nI,3725
56
56
  fmtr/tools/dns_tools/proxy.py,sha256=L0utKw8D1JXtAW9IfXcBdNMb-AyPFgW5XGiPnWuk7D8,1878
57
- fmtr/tools/dns_tools/server.py,sha256=0RLsyVH8C-15PAJgqMNqxbHTPbTWkq_thh8nnS1clAg,892
57
+ fmtr/tools/dns_tools/server.py,sha256=t38TmSpra3FRoMk351eHzOOPlSuaCyjxbvPwX9o15ak,942
58
58
  fmtr/tools/entrypoints/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
59
  fmtr/tools/entrypoints/cache_hfh.py,sha256=fQNs4J9twQuZH_Yj98-oOvEX7-LrSUP3kO8nzw2HrHs,60
60
60
  fmtr/tools/entrypoints/ep_test.py,sha256=B8HfWISfSgw_xVX475CbJGh_QnpOe9MH65H8qGjTWbY,46
@@ -74,9 +74,9 @@ fmtr/tools/tests/test_environment.py,sha256=iHaiMQfECYZPkPKwfuIZV9uHuWe3aE-p_dN_
74
74
  fmtr/tools/tests/test_json.py,sha256=IeSP4ziPvRcmS8kq7k9tHonC9rN5YYq9GSNT2ul6Msk,287
75
75
  fmtr/tools/tests/test_path.py,sha256=AkZQa6_8BQ-VaCyL_J-iKmdf2ZaM-xFYR37Kun3k4_g,2188
76
76
  fmtr/tools/tests/test_yaml.py,sha256=jc0TwwKu9eC0LvFGNMERdgBue591xwLxYXFbtsRwXVM,287
77
- fmtr_tools-1.3.3.dist-info/licenses/LICENSE,sha256=FW9aa6vVN5IjRQWLT43hs4_koYSmpcbIovlKeAJ0_cI,10757
78
- fmtr_tools-1.3.3.dist-info/METADATA,sha256=mqGPV0sovCZznll14sPWlH6fr1oa1WdyPit9_WiOu0I,16030
79
- fmtr_tools-1.3.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
80
- fmtr_tools-1.3.3.dist-info/entry_points.txt,sha256=fSQrDGNctdQXbUxpMWYVfVQ0mhZMDyaEDG3D3a0zOSc,278
81
- fmtr_tools-1.3.3.dist-info/top_level.txt,sha256=LXem9xCgNOD72tE2gRKESdiQTL902mfFkwWb6-dlwEE,5
82
- fmtr_tools-1.3.3.dist-info/RECORD,,
77
+ fmtr_tools-1.3.4.dist-info/licenses/LICENSE,sha256=FW9aa6vVN5IjRQWLT43hs4_koYSmpcbIovlKeAJ0_cI,10757
78
+ fmtr_tools-1.3.4.dist-info/METADATA,sha256=TywtfCfmbCtpH1vG7v7cyJ6V07_sXNfNuUu14uIrTHE,16060
79
+ fmtr_tools-1.3.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
80
+ fmtr_tools-1.3.4.dist-info/entry_points.txt,sha256=fSQrDGNctdQXbUxpMWYVfVQ0mhZMDyaEDG3D3a0zOSc,278
81
+ fmtr_tools-1.3.4.dist-info/top_level.txt,sha256=LXem9xCgNOD72tE2gRKESdiQTL902mfFkwWb6-dlwEE,5
82
+ fmtr_tools-1.3.4.dist-info/RECORD,,