omdev 0.0.0.dev368__py3-none-any.whl → 0.0.0.dev370__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.
@@ -8,7 +8,7 @@ import threading
8
8
  import typing as ta
9
9
 
10
10
  from omlish.docker.ports import DockerPortRelay
11
- from omlish.http.coro.simple import make_simple_http_server
11
+ from omlish.http.coro.server.simple import make_simple_http_server
12
12
  from omlish.http.handlers import HttpHandler
13
13
  from omlish.http.handlers import LoggingHttpHandler
14
14
  from omlish.lite.cached import cached_nullary
omdev/scripts/ci.py CHANGED
@@ -150,7 +150,7 @@ SocketServerHandler = ta.Callable[['SocketAndAddress'], None] # ta.TypeAlias
150
150
  # ../dataserver/handlers.py
151
151
  DataServerTargetT = ta.TypeVar('DataServerTargetT', bound='DataServerTarget')
152
152
 
153
- # ../../omlish/http/coro/server.py
153
+ # ../../omlish/http/coro/server/server.py
154
154
  CoroHttpServerFactory = ta.Callable[[SocketAddress], 'CoroHttpServer']
155
155
 
156
156
  # ../../omlish/subprocesses/base.py
@@ -1112,6 +1112,72 @@ def dataclass_repr_omit_falsey(obj: ta.Any) -> str:
1112
1112
  return dataclass_repr_filtered(obj, lambda o, f, v: bool(v))
1113
1113
 
1114
1114
 
1115
+ ##
1116
+
1117
+
1118
+ def dataclass_kw_only_init():
1119
+ def inner(cls):
1120
+ if not isinstance(cls, type) and dc.is_dataclass(cls):
1121
+ raise TypeError(cls)
1122
+
1123
+ real_init = cls.__init__ # type: ignore[misc]
1124
+
1125
+ flds = dc.fields(cls) # noqa
1126
+
1127
+ if any(f.name == 'self' for f in flds):
1128
+ self_name = '__dataclass_self__'
1129
+ else:
1130
+ self_name = 'self'
1131
+
1132
+ src = '\n'.join([
1133
+ 'def __init__(',
1134
+ f' {self_name},',
1135
+ ' *,',
1136
+ *[
1137
+ ''.join([
1138
+ f' {f.name}: __dataclass_type_{f.name}__',
1139
+ f' = __dataclass_default_{f.name}__' if f.default is not dc.MISSING else '',
1140
+ ',',
1141
+ ])
1142
+ for f in flds
1143
+ ],
1144
+ ') -> __dataclass_None__:',
1145
+ ' __dataclass_real_init__(',
1146
+ f' {self_name},',
1147
+ *[
1148
+ f' {f.name}={f.name},'
1149
+ for f in flds
1150
+ ],
1151
+ ' )',
1152
+ ])
1153
+
1154
+ ns: dict = {
1155
+ '__dataclass_None__': None,
1156
+ '__dataclass_real_init__': real_init,
1157
+ **{
1158
+ f'__dataclass_type_{f.name}__': f.type
1159
+ for f in flds
1160
+ },
1161
+ **{
1162
+ f'__dataclass_default_{f.name}__': f.default
1163
+ for f in flds
1164
+ if f.default is not dc.MISSING
1165
+ },
1166
+ }
1167
+
1168
+ exec(src, ns)
1169
+
1170
+ kw_only_init = ns['__init__']
1171
+
1172
+ functools.update_wrapper(kw_only_init, real_init)
1173
+
1174
+ cls.__init__ = kw_only_init # type: ignore[misc]
1175
+
1176
+ return cls
1177
+
1178
+ return inner
1179
+
1180
+
1115
1181
  ########################################
1116
1182
  # ../../../omlish/lite/json.py
1117
1183
 
@@ -9107,7 +9173,7 @@ class OciLayerPacker(ExitStacked):
9107
9173
 
9108
9174
 
9109
9175
  ########################################
9110
- # ../../../omlish/http/coro/server.py
9176
+ # ../../../omlish/http/coro/server/server.py
9111
9177
  # PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
9112
9178
  # --------------------------------------------
9113
9179
  #
@@ -10862,7 +10928,7 @@ def read_oci_repository_root_index(
10862
10928
 
10863
10929
 
10864
10930
  ########################################
10865
- # ../../../omlish/http/coro/sockets.py
10931
+ # ../../../omlish/http/coro/server/sockets.py
10866
10932
 
10867
10933
 
10868
10934
  ##
@@ -11729,7 +11795,7 @@ asyncio_subprocesses = AsyncioSubprocesses()
11729
11795
 
11730
11796
 
11731
11797
  ########################################
11732
- # ../../../omlish/http/coro/simple.py
11798
+ # ../../../omlish/http/coro/server/simple.py
11733
11799
  """
11734
11800
  TODO:
11735
11801
  - logging
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omdev
3
- Version: 0.0.0.dev368
3
+ Version: 0.0.0.dev370
4
4
  Summary: omdev
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -12,7 +12,7 @@ Classifier: Operating System :: OS Independent
12
12
  Classifier: Operating System :: POSIX
13
13
  Requires-Python: >=3.13
14
14
  License-File: LICENSE
15
- Requires-Dist: omlish==0.0.0.dev368
15
+ Requires-Dist: omlish==0.0.0.dev370
16
16
  Provides-Extra: all
17
17
  Requires-Dist: black~=25.1; extra == "all"
18
18
  Requires-Dist: pycparser~=2.22; extra == "all"
@@ -76,7 +76,7 @@ omdev/ci/docker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
76
  omdev/ci/docker/buildcaching.py,sha256=ge6TOKkffqVJMHMPJJl4sWy7hOkUeXgjmfq2cVJEsus,1839
77
77
  omdev/ci/docker/cache.py,sha256=Psk9EX9iDJ2Fk-tDGzbBa4TD8xgucroGoY_AErjgzDo,2120
78
78
  omdev/ci/docker/cmds.py,sha256=1aSLQqbMJpdAMskxfeGI-he5Amb910RWvo2DE6ZgID8,3067
79
- omdev/ci/docker/dataserver.py,sha256=3nDQhSJsEui3GG5vUqCND-n21EJJcMFKa7NO1Gkh_Go,5873
79
+ omdev/ci/docker/dataserver.py,sha256=v5q5z0HaGMMSbDhh7xsGePwBfmkn-dL8b2JVotbMVRs,5880
80
80
  omdev/ci/docker/imagepulling.py,sha256=6N8PkvZUlvd20kQ5zF0_7fInP6TYgZYFM9WsH9J7uIc,1832
81
81
  omdev/ci/docker/inject.py,sha256=vlWoIJHx2hzCai4wWspIcWnR3WhZ2bsOjq7fqq0qozE,2006
82
82
  omdev/ci/docker/packing.py,sha256=IayecomyP6AdaiKP1-Ki1wcb2ayfZz2mDqHWbPD8y50,2022
@@ -252,7 +252,7 @@ omdev/pyproject/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
252
252
  omdev/pyproject/resources/docker-dev.sh,sha256=DHkz5D18jok_oDolfg2mqrvGRWFoCe9GQo04dR1czcc,838
253
253
  omdev/pyproject/resources/python.sh,sha256=rFaN4SiJ9hdLDXXsDTwugI6zsw6EPkgYMmtacZeTbvw,749
254
254
  omdev/scripts/__init__.py,sha256=MKCvUAEQwsIvwLixwtPlpBqmkMXLCnjjXyAXvVpDwVk,91
255
- omdev/scripts/ci.py,sha256=eaxyndzJcHoXh1jbsP67QbtMgVzOgr2RvN0ysAoAOyI,358433
255
+ omdev/scripts/ci.py,sha256=tzVEK-JKZ4WNDGAziUbXpw_HEuYGQiMhsxUmM-usvu0,360136
256
256
  omdev/scripts/interp.py,sha256=T8EdNxuncwqCXfIBfCLoUcsYNqEhOrOE8V1hC9vTzqI,158095
257
257
  omdev/scripts/pyproject.py,sha256=qBBXmbdKMYzqxnb0zEWYhCOg9Cy0pWno3wjulICFj_o,267626
258
258
  omdev/scripts/slowcat.py,sha256=lssv4yrgJHiWfOiHkUut2p8E8Tq32zB-ujXESQxFFHY,2728
@@ -303,9 +303,9 @@ omdev/tools/jsonview/resources/jsonview.js,sha256=faDvXDOXKvEvjOuIlz4D3F2ReQXb_b
303
303
  omdev/tools/pawk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
304
304
  omdev/tools/pawk/__main__.py,sha256=VCqeRVnqT1RPEoIrqHFSu4PXVMg4YEgF4qCQm90-eRI,66
305
305
  omdev/tools/pawk/pawk.py,sha256=ao5mdrpiSU4AZ8mBozoEaV3UVlmVTnRG9wD9XP70MZE,11429
306
- omdev-0.0.0.dev368.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
307
- omdev-0.0.0.dev368.dist-info/METADATA,sha256=Et7g47mf60XLuOV6266OPeIDZ0ggvjz_CctyQEl8bqU,1674
308
- omdev-0.0.0.dev368.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
309
- omdev-0.0.0.dev368.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
310
- omdev-0.0.0.dev368.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
311
- omdev-0.0.0.dev368.dist-info/RECORD,,
306
+ omdev-0.0.0.dev370.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
307
+ omdev-0.0.0.dev370.dist-info/METADATA,sha256=UjeIHRSOXiCxWy2H7h6dN8UboN0247bGKM8y4by7gyc,1674
308
+ omdev-0.0.0.dev370.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
309
+ omdev-0.0.0.dev370.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
310
+ omdev-0.0.0.dev370.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
311
+ omdev-0.0.0.dev370.dist-info/RECORD,,