omdev 0.0.0.dev141__py3-none-any.whl → 0.0.0.dev143__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 omdev might be problematic. Click here for more details.
- omdev/.manifests.json +15 -15
- omdev/amalg/amalg.py +15 -4
- omdev/interp/pyenv.py +1 -0
- omdev/scripts/interp.py +14 -0
- omdev/scripts/pyproject.py +215 -129
- omdev/{json → tools/json}/__main__.py +1 -1
- {omdev-0.0.0.dev141.dist-info → omdev-0.0.0.dev143.dist-info}/METADATA +2 -2
- {omdev-0.0.0.dev141.dist-info → omdev-0.0.0.dev143.dist-info}/RECORD +19 -19
- /omdev/{json → tools/json}/__init__.py +0 -0
- /omdev/{json → tools/json}/cli.py +0 -0
- /omdev/{json → tools/json}/formats.py +0 -0
- /omdev/{json → tools/json}/io.py +0 -0
- /omdev/{json → tools/json}/parsing.py +0 -0
- /omdev/{json → tools/json}/processing.py +0 -0
- /omdev/{json → tools/json}/rendering.py +0 -0
- {omdev-0.0.0.dev141.dist-info → omdev-0.0.0.dev143.dist-info}/LICENSE +0 -0
- {omdev-0.0.0.dev141.dist-info → omdev-0.0.0.dev143.dist-info}/WHEEL +0 -0
- {omdev-0.0.0.dev141.dist-info → omdev-0.0.0.dev143.dist-info}/entry_points.txt +0 -0
- {omdev-0.0.0.dev141.dist-info → omdev-0.0.0.dev143.dist-info}/top_level.txt +0 -0
omdev/.manifests.json
CHANGED
|
@@ -95,21 +95,6 @@
|
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
|
-
{
|
|
99
|
-
"module": ".json.__main__",
|
|
100
|
-
"attr": "_CLI_MODULE",
|
|
101
|
-
"file": "omdev/json/__main__.py",
|
|
102
|
-
"line": 4,
|
|
103
|
-
"value": {
|
|
104
|
-
"$.cli.types.CliModule": {
|
|
105
|
-
"cmd_name": [
|
|
106
|
-
"json",
|
|
107
|
-
"j"
|
|
108
|
-
],
|
|
109
|
-
"mod_name": "omdev.json.__main__"
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
98
|
{
|
|
114
99
|
"module": ".magic.find",
|
|
115
100
|
"attr": "_CLI_MODULE",
|
|
@@ -290,6 +275,21 @@
|
|
|
290
275
|
}
|
|
291
276
|
}
|
|
292
277
|
},
|
|
278
|
+
{
|
|
279
|
+
"module": ".tools.json.__main__",
|
|
280
|
+
"attr": "_CLI_MODULE",
|
|
281
|
+
"file": "omdev/tools/json/__main__.py",
|
|
282
|
+
"line": 4,
|
|
283
|
+
"value": {
|
|
284
|
+
"$.cli.types.CliModule": {
|
|
285
|
+
"cmd_name": [
|
|
286
|
+
"json",
|
|
287
|
+
"j"
|
|
288
|
+
],
|
|
289
|
+
"mod_name": "omdev.tools.json.__main__"
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
},
|
|
293
293
|
{
|
|
294
294
|
"module": ".tools.mkrelimp",
|
|
295
295
|
"attr": "_CLI_MODULE",
|
omdev/amalg/amalg.py
CHANGED
|
@@ -366,11 +366,22 @@ def make_src_file(
|
|
|
366
366
|
])
|
|
367
367
|
|
|
368
368
|
elif is_root_level_if_type_checking_block(line):
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
369
|
+
def skip_block():
|
|
370
|
+
nonlocal i
|
|
371
|
+
while True:
|
|
372
|
+
nl = cls[i]
|
|
373
|
+
if nl and nl[0].name != 'INDENT':
|
|
374
|
+
return nl
|
|
375
|
+
i += 1
|
|
376
|
+
|
|
377
|
+
nl = skip_block()
|
|
378
|
+
|
|
379
|
+
if tks.match_toks(nl, [
|
|
380
|
+
('DEDENT', None),
|
|
381
|
+
('NAME', 'else'),
|
|
382
|
+
]):
|
|
373
383
|
i += 1
|
|
384
|
+
skip_block()
|
|
374
385
|
|
|
375
386
|
else:
|
|
376
387
|
ctls.append(line)
|
omdev/interp/pyenv.py
CHANGED
omdev/scripts/interp.py
CHANGED
|
@@ -63,6 +63,9 @@ UnparsedVersion = ta.Union['Version', str]
|
|
|
63
63
|
UnparsedVersionVar = ta.TypeVar('UnparsedVersionVar', bound=UnparsedVersion)
|
|
64
64
|
CallableVersionOperator = ta.Callable[['Version', str], bool]
|
|
65
65
|
|
|
66
|
+
# ../../omlish/lite/subprocesses.py
|
|
67
|
+
SubprocessChannelOption = ta.Literal['pipe', 'stdout', 'devnull']
|
|
68
|
+
|
|
66
69
|
|
|
67
70
|
########################################
|
|
68
71
|
# ../../packaging/versions.py
|
|
@@ -1659,6 +1662,16 @@ class Interp:
|
|
|
1659
1662
|
##
|
|
1660
1663
|
|
|
1661
1664
|
|
|
1665
|
+
SUBPROCESS_CHANNEL_OPTION_VALUES: ta.Mapping[SubprocessChannelOption, int] = {
|
|
1666
|
+
'pipe': subprocess.PIPE,
|
|
1667
|
+
'stdout': subprocess.STDOUT,
|
|
1668
|
+
'devnull': subprocess.DEVNULL,
|
|
1669
|
+
}
|
|
1670
|
+
|
|
1671
|
+
|
|
1672
|
+
##
|
|
1673
|
+
|
|
1674
|
+
|
|
1662
1675
|
_SUBPROCESS_SHELL_WRAP_EXECS = False
|
|
1663
1676
|
|
|
1664
1677
|
|
|
@@ -2048,6 +2061,7 @@ DEFAULT_PYENV_INSTALL_OPTS = PyenvInstallOpts(
|
|
|
2048
2061
|
'-k',
|
|
2049
2062
|
],
|
|
2050
2063
|
conf_opts=[
|
|
2064
|
+
# FIXME: breaks on mac for older py's
|
|
2051
2065
|
'--enable-loadable-sqlite-extensions',
|
|
2052
2066
|
|
|
2053
2067
|
# '--enable-shared',
|
omdev/scripts/pyproject.py
CHANGED
|
@@ -101,6 +101,9 @@ UnparsedVersion = ta.Union['Version', str]
|
|
|
101
101
|
UnparsedVersionVar = ta.TypeVar('UnparsedVersionVar', bound=UnparsedVersion)
|
|
102
102
|
CallableVersionOperator = ta.Callable[['Version', str], bool]
|
|
103
103
|
|
|
104
|
+
# ../../omlish/lite/subprocesses.py
|
|
105
|
+
SubprocessChannelOption = ta.Literal['pipe', 'stdout', 'devnull']
|
|
106
|
+
|
|
104
107
|
|
|
105
108
|
########################################
|
|
106
109
|
# ../../magic/magic.py
|
|
@@ -3081,21 +3084,26 @@ TODO:
|
|
|
3081
3084
|
##
|
|
3082
3085
|
|
|
3083
3086
|
|
|
3087
|
+
@dc.dataclass(frozen=True)
|
|
3088
|
+
class ObjMarshalOptions:
|
|
3089
|
+
raw_bytes: bool = False
|
|
3090
|
+
|
|
3091
|
+
|
|
3084
3092
|
class ObjMarshaler(abc.ABC):
|
|
3085
3093
|
@abc.abstractmethod
|
|
3086
|
-
def marshal(self, o: ta.Any) -> ta.Any:
|
|
3094
|
+
def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3087
3095
|
raise NotImplementedError
|
|
3088
3096
|
|
|
3089
3097
|
@abc.abstractmethod
|
|
3090
|
-
def unmarshal(self, o: ta.Any) -> ta.Any:
|
|
3098
|
+
def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3091
3099
|
raise NotImplementedError
|
|
3092
3100
|
|
|
3093
3101
|
|
|
3094
3102
|
class NopObjMarshaler(ObjMarshaler):
|
|
3095
|
-
def marshal(self, o: ta.Any) -> ta.Any:
|
|
3103
|
+
def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3096
3104
|
return o
|
|
3097
3105
|
|
|
3098
|
-
def unmarshal(self, o: ta.Any) -> ta.Any:
|
|
3106
|
+
def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3099
3107
|
return o
|
|
3100
3108
|
|
|
3101
3109
|
|
|
@@ -3103,29 +3111,29 @@ class NopObjMarshaler(ObjMarshaler):
|
|
|
3103
3111
|
class ProxyObjMarshaler(ObjMarshaler):
|
|
3104
3112
|
m: ta.Optional[ObjMarshaler] = None
|
|
3105
3113
|
|
|
3106
|
-
def marshal(self, o: ta.Any) -> ta.Any:
|
|
3107
|
-
return check_not_none(self.m).marshal(o)
|
|
3114
|
+
def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3115
|
+
return check_not_none(self.m).marshal(o, opts)
|
|
3108
3116
|
|
|
3109
|
-
def unmarshal(self, o: ta.Any) -> ta.Any:
|
|
3110
|
-
return check_not_none(self.m).unmarshal(o)
|
|
3117
|
+
def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3118
|
+
return check_not_none(self.m).unmarshal(o, opts)
|
|
3111
3119
|
|
|
3112
3120
|
|
|
3113
3121
|
@dc.dataclass(frozen=True)
|
|
3114
3122
|
class CastObjMarshaler(ObjMarshaler):
|
|
3115
3123
|
ty: type
|
|
3116
3124
|
|
|
3117
|
-
def marshal(self, o: ta.Any) -> ta.Any:
|
|
3125
|
+
def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3118
3126
|
return o
|
|
3119
3127
|
|
|
3120
|
-
def unmarshal(self, o: ta.Any) -> ta.Any:
|
|
3128
|
+
def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3121
3129
|
return self.ty(o)
|
|
3122
3130
|
|
|
3123
3131
|
|
|
3124
3132
|
class DynamicObjMarshaler(ObjMarshaler):
|
|
3125
|
-
def marshal(self, o: ta.Any) -> ta.Any:
|
|
3133
|
+
def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3126
3134
|
return marshal_obj(o)
|
|
3127
3135
|
|
|
3128
|
-
def unmarshal(self, o: ta.Any) -> ta.Any:
|
|
3136
|
+
def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3129
3137
|
return o
|
|
3130
3138
|
|
|
3131
3139
|
|
|
@@ -3133,21 +3141,36 @@ class DynamicObjMarshaler(ObjMarshaler):
|
|
|
3133
3141
|
class Base64ObjMarshaler(ObjMarshaler):
|
|
3134
3142
|
ty: type
|
|
3135
3143
|
|
|
3136
|
-
def marshal(self, o: ta.Any) -> ta.Any:
|
|
3144
|
+
def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3137
3145
|
return base64.b64encode(o).decode('ascii')
|
|
3138
3146
|
|
|
3139
|
-
def unmarshal(self, o: ta.Any) -> ta.Any:
|
|
3147
|
+
def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3140
3148
|
return self.ty(base64.b64decode(o))
|
|
3141
3149
|
|
|
3142
3150
|
|
|
3151
|
+
@dc.dataclass(frozen=True)
|
|
3152
|
+
class BytesSwitchedObjMarshaler(ObjMarshaler):
|
|
3153
|
+
m: ObjMarshaler
|
|
3154
|
+
|
|
3155
|
+
def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3156
|
+
if opts.raw_bytes:
|
|
3157
|
+
return o
|
|
3158
|
+
return self.m.marshal(o, opts)
|
|
3159
|
+
|
|
3160
|
+
def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3161
|
+
if opts.raw_bytes:
|
|
3162
|
+
return o
|
|
3163
|
+
return self.m.unmarshal(o, opts)
|
|
3164
|
+
|
|
3165
|
+
|
|
3143
3166
|
@dc.dataclass(frozen=True)
|
|
3144
3167
|
class EnumObjMarshaler(ObjMarshaler):
|
|
3145
3168
|
ty: type
|
|
3146
3169
|
|
|
3147
|
-
def marshal(self, o: ta.Any) -> ta.Any:
|
|
3170
|
+
def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3148
3171
|
return o.name
|
|
3149
3172
|
|
|
3150
|
-
def unmarshal(self, o: ta.Any) -> ta.Any:
|
|
3173
|
+
def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3151
3174
|
return self.ty.__members__[o] # type: ignore
|
|
3152
3175
|
|
|
3153
3176
|
|
|
@@ -3155,15 +3178,15 @@ class EnumObjMarshaler(ObjMarshaler):
|
|
|
3155
3178
|
class OptionalObjMarshaler(ObjMarshaler):
|
|
3156
3179
|
item: ObjMarshaler
|
|
3157
3180
|
|
|
3158
|
-
def marshal(self, o: ta.Any) -> ta.Any:
|
|
3181
|
+
def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3159
3182
|
if o is None:
|
|
3160
3183
|
return None
|
|
3161
|
-
return self.item.marshal(o)
|
|
3184
|
+
return self.item.marshal(o, opts)
|
|
3162
3185
|
|
|
3163
|
-
def unmarshal(self, o: ta.Any) -> ta.Any:
|
|
3186
|
+
def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3164
3187
|
if o is None:
|
|
3165
3188
|
return None
|
|
3166
|
-
return self.item.unmarshal(o)
|
|
3189
|
+
return self.item.unmarshal(o, opts)
|
|
3167
3190
|
|
|
3168
3191
|
|
|
3169
3192
|
@dc.dataclass(frozen=True)
|
|
@@ -3172,11 +3195,11 @@ class MappingObjMarshaler(ObjMarshaler):
|
|
|
3172
3195
|
km: ObjMarshaler
|
|
3173
3196
|
vm: ObjMarshaler
|
|
3174
3197
|
|
|
3175
|
-
def marshal(self, o: ta.Any) -> ta.Any:
|
|
3176
|
-
return {self.km.marshal(k): self.vm.marshal(v) for k, v in o.items()}
|
|
3198
|
+
def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3199
|
+
return {self.km.marshal(k, opts): self.vm.marshal(v, opts) for k, v in o.items()}
|
|
3177
3200
|
|
|
3178
|
-
def unmarshal(self, o: ta.Any) -> ta.Any:
|
|
3179
|
-
return self.ty((self.km.unmarshal(k), self.vm.unmarshal(v)) for k, v in o.items())
|
|
3201
|
+
def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3202
|
+
return self.ty((self.km.unmarshal(k, opts), self.vm.unmarshal(v, opts)) for k, v in o.items())
|
|
3180
3203
|
|
|
3181
3204
|
|
|
3182
3205
|
@dc.dataclass(frozen=True)
|
|
@@ -3184,11 +3207,11 @@ class IterableObjMarshaler(ObjMarshaler):
|
|
|
3184
3207
|
ty: type
|
|
3185
3208
|
item: ObjMarshaler
|
|
3186
3209
|
|
|
3187
|
-
def marshal(self, o: ta.Any) -> ta.Any:
|
|
3188
|
-
return [self.item.marshal(e) for e in o]
|
|
3210
|
+
def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3211
|
+
return [self.item.marshal(e, opts) for e in o]
|
|
3189
3212
|
|
|
3190
|
-
def unmarshal(self, o: ta.Any) -> ta.Any:
|
|
3191
|
-
return self.ty(self.item.unmarshal(e) for e in o)
|
|
3213
|
+
def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3214
|
+
return self.ty(self.item.unmarshal(e, opts) for e in o)
|
|
3192
3215
|
|
|
3193
3216
|
|
|
3194
3217
|
@dc.dataclass(frozen=True)
|
|
@@ -3197,11 +3220,11 @@ class DataclassObjMarshaler(ObjMarshaler):
|
|
|
3197
3220
|
fs: ta.Mapping[str, ObjMarshaler]
|
|
3198
3221
|
nonstrict: bool = False
|
|
3199
3222
|
|
|
3200
|
-
def marshal(self, o: ta.Any) -> ta.Any:
|
|
3201
|
-
return {k: m.marshal(getattr(o, k)) for k, m in self.fs.items()}
|
|
3223
|
+
def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3224
|
+
return {k: m.marshal(getattr(o, k), opts) for k, m in self.fs.items()}
|
|
3202
3225
|
|
|
3203
|
-
def unmarshal(self, o: ta.Any) -> ta.Any:
|
|
3204
|
-
return self.ty(**{k: self.fs[k].unmarshal(v) for k, v in o.items() if not self.nonstrict or k in self.fs})
|
|
3226
|
+
def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3227
|
+
return self.ty(**{k: self.fs[k].unmarshal(v, opts) for k, v in o.items() if not self.nonstrict or k in self.fs})
|
|
3205
3228
|
|
|
3206
3229
|
|
|
3207
3230
|
@dc.dataclass(frozen=True)
|
|
@@ -3221,50 +3244,50 @@ class PolymorphicObjMarshaler(ObjMarshaler):
|
|
|
3221
3244
|
{i.tag: i for i in impls},
|
|
3222
3245
|
)
|
|
3223
3246
|
|
|
3224
|
-
def marshal(self, o: ta.Any) -> ta.Any:
|
|
3247
|
+
def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3225
3248
|
impl = self.impls_by_ty[type(o)]
|
|
3226
|
-
return {impl.tag: impl.m.marshal(o)}
|
|
3249
|
+
return {impl.tag: impl.m.marshal(o, opts)}
|
|
3227
3250
|
|
|
3228
|
-
def unmarshal(self, o: ta.Any) -> ta.Any:
|
|
3251
|
+
def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3229
3252
|
[(t, v)] = o.items()
|
|
3230
3253
|
impl = self.impls_by_tag[t]
|
|
3231
|
-
return impl.m.unmarshal(v)
|
|
3254
|
+
return impl.m.unmarshal(v, opts)
|
|
3232
3255
|
|
|
3233
3256
|
|
|
3234
3257
|
@dc.dataclass(frozen=True)
|
|
3235
3258
|
class DatetimeObjMarshaler(ObjMarshaler):
|
|
3236
3259
|
ty: type
|
|
3237
3260
|
|
|
3238
|
-
def marshal(self, o: ta.Any) -> ta.Any:
|
|
3261
|
+
def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3239
3262
|
return o.isoformat()
|
|
3240
3263
|
|
|
3241
|
-
def unmarshal(self, o: ta.Any) -> ta.Any:
|
|
3264
|
+
def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3242
3265
|
return self.ty.fromisoformat(o) # type: ignore
|
|
3243
3266
|
|
|
3244
3267
|
|
|
3245
3268
|
class DecimalObjMarshaler(ObjMarshaler):
|
|
3246
|
-
def marshal(self, o: ta.Any) -> ta.Any:
|
|
3269
|
+
def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3247
3270
|
return str(check_isinstance(o, decimal.Decimal))
|
|
3248
3271
|
|
|
3249
|
-
def unmarshal(self, v: ta.Any) -> ta.Any:
|
|
3272
|
+
def unmarshal(self, v: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3250
3273
|
return decimal.Decimal(check_isinstance(v, str))
|
|
3251
3274
|
|
|
3252
3275
|
|
|
3253
3276
|
class FractionObjMarshaler(ObjMarshaler):
|
|
3254
|
-
def marshal(self, o: ta.Any) -> ta.Any:
|
|
3277
|
+
def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3255
3278
|
fr = check_isinstance(o, fractions.Fraction)
|
|
3256
3279
|
return [fr.numerator, fr.denominator]
|
|
3257
3280
|
|
|
3258
|
-
def unmarshal(self, v: ta.Any) -> ta.Any:
|
|
3281
|
+
def unmarshal(self, v: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3259
3282
|
num, denom = check_isinstance(v, list)
|
|
3260
3283
|
return fractions.Fraction(num, denom)
|
|
3261
3284
|
|
|
3262
3285
|
|
|
3263
3286
|
class UuidObjMarshaler(ObjMarshaler):
|
|
3264
|
-
def marshal(self, o: ta.Any) -> ta.Any:
|
|
3287
|
+
def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3265
3288
|
return str(o)
|
|
3266
3289
|
|
|
3267
|
-
def unmarshal(self, o: ta.Any) -> ta.Any:
|
|
3290
|
+
def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
|
|
3268
3291
|
return uuid.UUID(o)
|
|
3269
3292
|
|
|
3270
3293
|
|
|
@@ -3274,7 +3297,7 @@ class UuidObjMarshaler(ObjMarshaler):
|
|
|
3274
3297
|
_DEFAULT_OBJ_MARSHALERS: ta.Dict[ta.Any, ObjMarshaler] = {
|
|
3275
3298
|
**{t: NopObjMarshaler() for t in (type(None),)},
|
|
3276
3299
|
**{t: CastObjMarshaler(t) for t in (int, float, str, bool)},
|
|
3277
|
-
**{t: Base64ObjMarshaler(t) for t in (bytes, bytearray)},
|
|
3300
|
+
**{t: BytesSwitchedObjMarshaler(Base64ObjMarshaler(t)) for t in (bytes, bytearray)},
|
|
3278
3301
|
**{t: IterableObjMarshaler(t, DynamicObjMarshaler()) for t in (list, tuple, set, frozenset)},
|
|
3279
3302
|
**{t: MappingObjMarshaler(t, DynamicObjMarshaler(), DynamicObjMarshaler()) for t in (dict,)},
|
|
3280
3303
|
|
|
@@ -3300,120 +3323,172 @@ _OBJ_MARSHALER_GENERIC_ITERABLE_TYPES: ta.Dict[ta.Any, type] = {
|
|
|
3300
3323
|
}
|
|
3301
3324
|
|
|
3302
3325
|
|
|
3303
|
-
|
|
3304
|
-
ty: ta.Any,
|
|
3305
|
-
rec: ta.Callable[[ta.Any], ObjMarshaler],
|
|
3306
|
-
*,
|
|
3307
|
-
nonstrict_dataclasses: bool = False,
|
|
3308
|
-
) -> ObjMarshaler:
|
|
3309
|
-
if isinstance(ty, type):
|
|
3310
|
-
if abc.ABC in ty.__bases__:
|
|
3311
|
-
return PolymorphicObjMarshaler.of([ # type: ignore
|
|
3312
|
-
PolymorphicObjMarshaler.Impl(
|
|
3313
|
-
ity,
|
|
3314
|
-
ity.__qualname__,
|
|
3315
|
-
rec(ity),
|
|
3316
|
-
)
|
|
3317
|
-
for ity in deep_subclasses(ty)
|
|
3318
|
-
if abc.ABC not in ity.__bases__
|
|
3319
|
-
])
|
|
3326
|
+
##
|
|
3320
3327
|
|
|
3321
|
-
if issubclass(ty, enum.Enum):
|
|
3322
|
-
return EnumObjMarshaler(ty)
|
|
3323
3328
|
|
|
3324
|
-
|
|
3325
|
-
|
|
3326
|
-
|
|
3327
|
-
|
|
3328
|
-
|
|
3329
|
-
)
|
|
3329
|
+
class ObjMarshalerManager:
|
|
3330
|
+
def __init__(
|
|
3331
|
+
self,
|
|
3332
|
+
*,
|
|
3333
|
+
default_options: ObjMarshalOptions = ObjMarshalOptions(),
|
|
3330
3334
|
|
|
3331
|
-
|
|
3332
|
-
|
|
3333
|
-
|
|
3334
|
-
|
|
3335
|
-
|
|
3336
|
-
else:
|
|
3337
|
-
k, v = ta.get_args(ty)
|
|
3338
|
-
return MappingObjMarshaler(mt, rec(k), rec(v))
|
|
3335
|
+
default_obj_marshalers: ta.Dict[ta.Any, ObjMarshaler] = _DEFAULT_OBJ_MARSHALERS, # noqa
|
|
3336
|
+
generic_mapping_types: ta.Dict[ta.Any, type] = _OBJ_MARSHALER_GENERIC_MAPPING_TYPES, # noqa
|
|
3337
|
+
generic_iterable_types: ta.Dict[ta.Any, type] = _OBJ_MARSHALER_GENERIC_ITERABLE_TYPES, # noqa
|
|
3338
|
+
) -> None:
|
|
3339
|
+
super().__init__()
|
|
3339
3340
|
|
|
3340
|
-
|
|
3341
|
-
st = _OBJ_MARSHALER_GENERIC_ITERABLE_TYPES[ta.get_origin(ty)]
|
|
3342
|
-
except KeyError:
|
|
3343
|
-
pass
|
|
3344
|
-
else:
|
|
3345
|
-
[e] = ta.get_args(ty)
|
|
3346
|
-
return IterableObjMarshaler(st, rec(e))
|
|
3341
|
+
self._default_options = default_options
|
|
3347
3342
|
|
|
3348
|
-
|
|
3349
|
-
|
|
3343
|
+
self._obj_marshalers = dict(default_obj_marshalers)
|
|
3344
|
+
self._generic_mapping_types = generic_mapping_types
|
|
3345
|
+
self._generic_iterable_types = generic_iterable_types
|
|
3350
3346
|
|
|
3351
|
-
|
|
3347
|
+
self._lock = threading.RLock()
|
|
3348
|
+
self._marshalers: ta.Dict[ta.Any, ObjMarshaler] = dict(_DEFAULT_OBJ_MARSHALERS)
|
|
3349
|
+
self._proxies: ta.Dict[ta.Any, ProxyObjMarshaler] = {}
|
|
3352
3350
|
|
|
3351
|
+
#
|
|
3353
3352
|
|
|
3354
|
-
|
|
3353
|
+
def make_obj_marshaler(
|
|
3354
|
+
self,
|
|
3355
|
+
ty: ta.Any,
|
|
3356
|
+
rec: ta.Callable[[ta.Any], ObjMarshaler],
|
|
3357
|
+
*,
|
|
3358
|
+
nonstrict_dataclasses: bool = False,
|
|
3359
|
+
) -> ObjMarshaler:
|
|
3360
|
+
if isinstance(ty, type):
|
|
3361
|
+
if abc.ABC in ty.__bases__:
|
|
3362
|
+
return PolymorphicObjMarshaler.of([ # type: ignore
|
|
3363
|
+
PolymorphicObjMarshaler.Impl(
|
|
3364
|
+
ity,
|
|
3365
|
+
ity.__qualname__,
|
|
3366
|
+
rec(ity),
|
|
3367
|
+
)
|
|
3368
|
+
for ity in deep_subclasses(ty)
|
|
3369
|
+
if abc.ABC not in ity.__bases__
|
|
3370
|
+
])
|
|
3371
|
+
|
|
3372
|
+
if issubclass(ty, enum.Enum):
|
|
3373
|
+
return EnumObjMarshaler(ty)
|
|
3374
|
+
|
|
3375
|
+
if dc.is_dataclass(ty):
|
|
3376
|
+
return DataclassObjMarshaler(
|
|
3377
|
+
ty,
|
|
3378
|
+
{f.name: rec(f.type) for f in dc.fields(ty)},
|
|
3379
|
+
nonstrict=nonstrict_dataclasses,
|
|
3380
|
+
)
|
|
3355
3381
|
|
|
3382
|
+
if is_generic_alias(ty):
|
|
3383
|
+
try:
|
|
3384
|
+
mt = self._generic_mapping_types[ta.get_origin(ty)]
|
|
3385
|
+
except KeyError:
|
|
3386
|
+
pass
|
|
3387
|
+
else:
|
|
3388
|
+
k, v = ta.get_args(ty)
|
|
3389
|
+
return MappingObjMarshaler(mt, rec(k), rec(v))
|
|
3356
3390
|
|
|
3357
|
-
|
|
3391
|
+
try:
|
|
3392
|
+
st = self._generic_iterable_types[ta.get_origin(ty)]
|
|
3393
|
+
except KeyError:
|
|
3394
|
+
pass
|
|
3395
|
+
else:
|
|
3396
|
+
[e] = ta.get_args(ty)
|
|
3397
|
+
return IterableObjMarshaler(st, rec(e))
|
|
3358
3398
|
|
|
3359
|
-
|
|
3399
|
+
if is_union_alias(ty):
|
|
3400
|
+
return OptionalObjMarshaler(rec(get_optional_alias_arg(ty)))
|
|
3360
3401
|
|
|
3361
|
-
|
|
3402
|
+
raise TypeError(ty)
|
|
3362
3403
|
|
|
3404
|
+
#
|
|
3363
3405
|
|
|
3364
|
-
def register_opj_marshaler(ty: ta.Any, m: ObjMarshaler) -> None:
|
|
3365
|
-
|
|
3366
|
-
|
|
3367
|
-
|
|
3368
|
-
|
|
3406
|
+
def register_opj_marshaler(self, ty: ta.Any, m: ObjMarshaler) -> None:
|
|
3407
|
+
with self._lock:
|
|
3408
|
+
if ty in self._obj_marshalers:
|
|
3409
|
+
raise KeyError(ty)
|
|
3410
|
+
self._obj_marshalers[ty] = m
|
|
3369
3411
|
|
|
3412
|
+
def get_obj_marshaler(
|
|
3413
|
+
self,
|
|
3414
|
+
ty: ta.Any,
|
|
3415
|
+
*,
|
|
3416
|
+
no_cache: bool = False,
|
|
3417
|
+
**kwargs: ta.Any,
|
|
3418
|
+
) -> ObjMarshaler:
|
|
3419
|
+
with self._lock:
|
|
3420
|
+
if not no_cache:
|
|
3421
|
+
try:
|
|
3422
|
+
return self._obj_marshalers[ty]
|
|
3423
|
+
except KeyError:
|
|
3424
|
+
pass
|
|
3370
3425
|
|
|
3371
|
-
def get_obj_marshaler(
|
|
3372
|
-
ty: ta.Any,
|
|
3373
|
-
*,
|
|
3374
|
-
no_cache: bool = False,
|
|
3375
|
-
**kwargs: ta.Any,
|
|
3376
|
-
) -> ObjMarshaler:
|
|
3377
|
-
with _OBJ_MARSHALERS_LOCK:
|
|
3378
|
-
if not no_cache:
|
|
3379
3426
|
try:
|
|
3380
|
-
return
|
|
3427
|
+
return self._proxies[ty]
|
|
3381
3428
|
except KeyError:
|
|
3382
3429
|
pass
|
|
3383
3430
|
|
|
3384
|
-
|
|
3385
|
-
|
|
3386
|
-
|
|
3387
|
-
|
|
3431
|
+
rec = functools.partial(
|
|
3432
|
+
self.get_obj_marshaler,
|
|
3433
|
+
no_cache=no_cache,
|
|
3434
|
+
**kwargs,
|
|
3435
|
+
)
|
|
3388
3436
|
|
|
3389
|
-
|
|
3390
|
-
|
|
3391
|
-
|
|
3392
|
-
|
|
3393
|
-
|
|
3437
|
+
p = ProxyObjMarshaler()
|
|
3438
|
+
self._proxies[ty] = p
|
|
3439
|
+
try:
|
|
3440
|
+
m = self.make_obj_marshaler(ty, rec, **kwargs)
|
|
3441
|
+
finally:
|
|
3442
|
+
del self._proxies[ty]
|
|
3443
|
+
p.m = m
|
|
3394
3444
|
|
|
3395
|
-
|
|
3396
|
-
|
|
3397
|
-
|
|
3398
|
-
|
|
3399
|
-
|
|
3400
|
-
del _OBJ_MARSHALER_PROXIES[ty]
|
|
3401
|
-
p.m = m
|
|
3445
|
+
if not no_cache:
|
|
3446
|
+
self._obj_marshalers[ty] = m
|
|
3447
|
+
return m
|
|
3448
|
+
|
|
3449
|
+
#
|
|
3402
3450
|
|
|
3403
|
-
|
|
3404
|
-
|
|
3405
|
-
|
|
3451
|
+
def marshal_obj(
|
|
3452
|
+
self,
|
|
3453
|
+
o: ta.Any,
|
|
3454
|
+
ty: ta.Any = None,
|
|
3455
|
+
opts: ta.Optional[ObjMarshalOptions] = None,
|
|
3456
|
+
) -> ta.Any:
|
|
3457
|
+
m = self.get_obj_marshaler(ty if ty is not None else type(o))
|
|
3458
|
+
return m.marshal(o, opts or self._default_options)
|
|
3459
|
+
|
|
3460
|
+
def unmarshal_obj(
|
|
3461
|
+
self,
|
|
3462
|
+
o: ta.Any,
|
|
3463
|
+
ty: ta.Union[ta.Type[T], ta.Any],
|
|
3464
|
+
opts: ta.Optional[ObjMarshalOptions] = None,
|
|
3465
|
+
) -> T:
|
|
3466
|
+
m = self.get_obj_marshaler(ty)
|
|
3467
|
+
return m.unmarshal(o, opts or self._default_options)
|
|
3468
|
+
|
|
3469
|
+
def roundtrip_obj(
|
|
3470
|
+
self,
|
|
3471
|
+
o: ta.Any,
|
|
3472
|
+
ty: ta.Any = None,
|
|
3473
|
+
opts: ta.Optional[ObjMarshalOptions] = None,
|
|
3474
|
+
) -> ta.Any:
|
|
3475
|
+
if ty is None:
|
|
3476
|
+
ty = type(o)
|
|
3477
|
+
m: ta.Any = self.marshal_obj(o, ty, opts)
|
|
3478
|
+
u: ta.Any = self.unmarshal_obj(m, ty, opts)
|
|
3479
|
+
return u
|
|
3406
3480
|
|
|
3407
3481
|
|
|
3408
3482
|
##
|
|
3409
3483
|
|
|
3410
3484
|
|
|
3411
|
-
|
|
3412
|
-
return get_obj_marshaler(ty if ty is not None else type(o)).marshal(o)
|
|
3485
|
+
OBJ_MARSHALER_MANAGER = ObjMarshalerManager()
|
|
3413
3486
|
|
|
3487
|
+
register_opj_marshaler = OBJ_MARSHALER_MANAGER.register_opj_marshaler
|
|
3488
|
+
get_obj_marshaler = OBJ_MARSHALER_MANAGER.get_obj_marshaler
|
|
3414
3489
|
|
|
3415
|
-
|
|
3416
|
-
|
|
3490
|
+
marshal_obj = OBJ_MARSHALER_MANAGER.marshal_obj
|
|
3491
|
+
unmarshal_obj = OBJ_MARSHALER_MANAGER.unmarshal_obj
|
|
3417
3492
|
|
|
3418
3493
|
|
|
3419
3494
|
########################################
|
|
@@ -3706,6 +3781,16 @@ class RequirementsRewriter:
|
|
|
3706
3781
|
##
|
|
3707
3782
|
|
|
3708
3783
|
|
|
3784
|
+
SUBPROCESS_CHANNEL_OPTION_VALUES: ta.Mapping[SubprocessChannelOption, int] = {
|
|
3785
|
+
'pipe': subprocess.PIPE,
|
|
3786
|
+
'stdout': subprocess.STDOUT,
|
|
3787
|
+
'devnull': subprocess.DEVNULL,
|
|
3788
|
+
}
|
|
3789
|
+
|
|
3790
|
+
|
|
3791
|
+
##
|
|
3792
|
+
|
|
3793
|
+
|
|
3709
3794
|
_SUBPROCESS_SHELL_WRAP_EXECS = False
|
|
3710
3795
|
|
|
3711
3796
|
|
|
@@ -4616,6 +4701,7 @@ DEFAULT_PYENV_INSTALL_OPTS = PyenvInstallOpts(
|
|
|
4616
4701
|
'-k',
|
|
4617
4702
|
],
|
|
4618
4703
|
conf_opts=[
|
|
4704
|
+
# FIXME: breaks on mac for older py's
|
|
4619
4705
|
'--enable-loadable-sqlite-extensions',
|
|
4620
4706
|
|
|
4621
4707
|
# '--enable-shared',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: omdev
|
|
3
|
-
Version: 0.0.0.
|
|
3
|
+
Version: 0.0.0.dev143
|
|
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.12
|
|
14
14
|
License-File: LICENSE
|
|
15
|
-
Requires-Dist: omlish==0.0.0.
|
|
15
|
+
Requires-Dist: omlish==0.0.0.dev143
|
|
16
16
|
Provides-Extra: all
|
|
17
17
|
Requires-Dist: black~=24.10; extra == "all"
|
|
18
18
|
Requires-Dist: pycparser~=2.22; extra == "all"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
omdev/.manifests.json,sha256=
|
|
1
|
+
omdev/.manifests.json,sha256=Uq3VB0ovogq663SM_1fuRBjqbod7kE30wNxBByQI2zo,8033
|
|
2
2
|
omdev/__about__.py,sha256=n5x-SO70OgbDQFzQ1d7sZDVMsnkQc4PxQZPFaIQFa0E,1281
|
|
3
3
|
omdev/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
4
|
omdev/bracepy.py,sha256=I8EdqtDvxzAi3I8TuMEW-RBfwXfqKbwp06CfOdj3L1o,2743
|
|
@@ -14,7 +14,7 @@ omdev/tokens.py,sha256=eCppK7BtlgAK_AmfO-Or_B-x85tqmu0HVla8d2gvB3I,1333
|
|
|
14
14
|
omdev/wheelfile.py,sha256=yfupGcGkbFlmzGzKU64k_vmOKpaKnUlDWxeGn2KdekU,10005
|
|
15
15
|
omdev/amalg/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
16
|
omdev/amalg/__main__.py,sha256=h94M-VqZ3AFBU2a8zOsjeKK7RF6uINhTHl6OiGbVMgw,163
|
|
17
|
-
omdev/amalg/amalg.py,sha256=
|
|
17
|
+
omdev/amalg/amalg.py,sha256=AEhgXmc9y3zfvMpAdJUuTwlhYZ5bCAUrVf1WHsgV5PI,16084
|
|
18
18
|
omdev/antlr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
19
19
|
omdev/antlr/consts.py,sha256=8pR6r0m0P3hAiyiAoJZ-nptd2GYbZ98mxwPL9cpaRuw,279
|
|
20
20
|
omdev/antlr/gen.py,sha256=QnPyVWUrJYqHoOc3XsXA8fJdoiwAj6pyUwdG-DVrIeA,2953
|
|
@@ -74,19 +74,11 @@ omdev/interp/__main__.py,sha256=GMCqeGYltgt5dlJzHxY9gqisa8cRkrPfmZYuZnjg4WI,162
|
|
|
74
74
|
omdev/interp/cli.py,sha256=sh7PZQoLletUViw1Y9OXNr9ekyNZ6YyxYuOQ_n9hyqU,2072
|
|
75
75
|
omdev/interp/inspect.py,sha256=55_il4ehoW6Q468YE57w5CyZxHLNsndkRIH4W80OplM,2848
|
|
76
76
|
omdev/interp/providers.py,sha256=PFEjozW0c33eqg8sno-GHMKbhVUzQF9jrAx-M0uQimk,1787
|
|
77
|
-
omdev/interp/pyenv.py,sha256=
|
|
77
|
+
omdev/interp/pyenv.py,sha256=rHps4saqLxp-udbZp-5RpFxNhZNQc6plqIvaCQpNBHo,13837
|
|
78
78
|
omdev/interp/resolvers.py,sha256=tpzlmqGp1C4QKdA6TfcPmtmaygu7mb6WK2RPSbyNQ6s,3022
|
|
79
79
|
omdev/interp/standalone.py,sha256=XcltiL7ypcfV89C82_3knQ3Kx7aW4wnnxf2056ZXC3A,7731
|
|
80
80
|
omdev/interp/system.py,sha256=bI-JhX4GVJqW7wMxnIa-DGJWnCLmFcIsnl9pc1RGY2g,3513
|
|
81
81
|
omdev/interp/types.py,sha256=EMN3StEMkFoQAMUIZd7JYL4uUWqzFGY-2hTL8EBznYM,2437
|
|
82
|
-
omdev/json/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
83
|
-
omdev/json/__main__.py,sha256=A2NlzsXebLuA0Zw6sikwM_tXZsyBYf33Q8qpNhtaY5o,167
|
|
84
|
-
omdev/json/cli.py,sha256=EubIMT-n2XsjWBZjSy2fWXqijlwrIhLsfbkg3SZzi28,9586
|
|
85
|
-
omdev/json/formats.py,sha256=XHabWAQnAQ9uNS7fHu3mdgxoptWw00RVLq08uadD6kk,1753
|
|
86
|
-
omdev/json/io.py,sha256=IoJ5asjS_gUan5TcrGgS0KpJaiSE5YQgEGljFMCcDto,1427
|
|
87
|
-
omdev/json/parsing.py,sha256=QLsdYv-fRFNIWwy8KLr19fQ5RodiQEX2hIw4jndnEXM,2180
|
|
88
|
-
omdev/json/processing.py,sha256=iFm5VqaxJ97WHaun2ed7NEjMxhFeJqf28bLNfoDJft0,1209
|
|
89
|
-
omdev/json/rendering.py,sha256=jNShMfCpFR9-Kcn6cUFuOChXHjg71diuTC4x7Ofmz-o,2240
|
|
90
82
|
omdev/magic/__init__.py,sha256=CBzRB71RLyylkrj8dph6JUEddA8KSMJvDgriHqFfJGU,478
|
|
91
83
|
omdev/magic/find.py,sha256=tTmpWXAleaXG3_kNOsRF7s8D0CpYMXbdz6-HbCNBW90,7070
|
|
92
84
|
omdev/magic/magic.py,sha256=h1nxoW6CV1MRCiHjDt3sO4kmG0qTtTRbkDNiPLGo2BE,224
|
|
@@ -130,8 +122,8 @@ omdev/scripts/bumpversion.py,sha256=Kn7fo73Hs8uJh3Hi3EIyLOlzLPWAC6dwuD_lZ3cIzuY,
|
|
|
130
122
|
omdev/scripts/execrss.py,sha256=mR0G0wERBYtQmVIn63lCIIFb5zkCM6X_XOENDFYDBKc,651
|
|
131
123
|
omdev/scripts/exectime.py,sha256=sFb376GflU6s9gNX-2-we8hgH6w5MuQNS9g6i4SqJIo,610
|
|
132
124
|
omdev/scripts/importtrace.py,sha256=oa7CtcWJVMNDbyIEiRHej6ICfABfErMeo4_haIqe18Q,14041
|
|
133
|
-
omdev/scripts/interp.py,sha256=
|
|
134
|
-
omdev/scripts/pyproject.py,sha256=
|
|
125
|
+
omdev/scripts/interp.py,sha256=Xzki1bTvF2uahDrK65_A-lbN29W67jE4t7v8SY__F44,74287
|
|
126
|
+
omdev/scripts/pyproject.py,sha256=rxjEsErhrVmoOhX8RYZ0i77D13VKaE7uGFveu--bGtk,179110
|
|
135
127
|
omdev/scripts/slowcat.py,sha256=lssv4yrgJHiWfOiHkUut2p8E8Tq32zB-ujXESQxFFHY,2728
|
|
136
128
|
omdev/scripts/tmpexec.py,sha256=WTYcf56Tj2qjYV14AWmV8SfT0u6Y8eIU6cKgQRvEK3c,1442
|
|
137
129
|
omdev/toml/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
|
|
@@ -149,12 +141,20 @@ omdev/tools/pip.py,sha256=cRYKRCjuMI9SR1CBORBbOCePyildLiCIMCECvBDY61E,3471
|
|
|
149
141
|
omdev/tools/prof.py,sha256=KmnPInf8JYXtkXyCl2CucTPfxzCUoM605SA8NLHrWrY,1467
|
|
150
142
|
omdev/tools/qr.py,sha256=tm68lPwEAkEwIL2sUKPKBYfwwPtjVWG1DBZwur8_jY8,1737
|
|
151
143
|
omdev/tools/sqlrepl.py,sha256=tmFZh80-xsGM62dyQ7_UGLebChrj7IHbIPYBWDJMgVk,5741
|
|
144
|
+
omdev/tools/json/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
145
|
+
omdev/tools/json/__main__.py,sha256=wqpkN_NsQyNwKW4qjVj8ADJ4_C98KhrFBtE-Z1UamfU,168
|
|
146
|
+
omdev/tools/json/cli.py,sha256=EubIMT-n2XsjWBZjSy2fWXqijlwrIhLsfbkg3SZzi28,9586
|
|
147
|
+
omdev/tools/json/formats.py,sha256=XHabWAQnAQ9uNS7fHu3mdgxoptWw00RVLq08uadD6kk,1753
|
|
148
|
+
omdev/tools/json/io.py,sha256=IoJ5asjS_gUan5TcrGgS0KpJaiSE5YQgEGljFMCcDto,1427
|
|
149
|
+
omdev/tools/json/parsing.py,sha256=QLsdYv-fRFNIWwy8KLr19fQ5RodiQEX2hIw4jndnEXM,2180
|
|
150
|
+
omdev/tools/json/processing.py,sha256=iFm5VqaxJ97WHaun2ed7NEjMxhFeJqf28bLNfoDJft0,1209
|
|
151
|
+
omdev/tools/json/rendering.py,sha256=jNShMfCpFR9-Kcn6cUFuOChXHjg71diuTC4x7Ofmz-o,2240
|
|
152
152
|
omdev/tools/pawk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
153
153
|
omdev/tools/pawk/__main__.py,sha256=VCqeRVnqT1RPEoIrqHFSu4PXVMg4YEgF4qCQm90-eRI,66
|
|
154
154
|
omdev/tools/pawk/pawk.py,sha256=Eckymn22GfychCQcQi96BFqRo_LmiJ-EPhC8TTUJdB4,11446
|
|
155
|
-
omdev-0.0.0.
|
|
156
|
-
omdev-0.0.0.
|
|
157
|
-
omdev-0.0.0.
|
|
158
|
-
omdev-0.0.0.
|
|
159
|
-
omdev-0.0.0.
|
|
160
|
-
omdev-0.0.0.
|
|
155
|
+
omdev-0.0.0.dev143.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
|
156
|
+
omdev-0.0.0.dev143.dist-info/METADATA,sha256=HJIwPryCdCZ5UD9KXomKAnnSDmjDIb3fiL2ytP2hEZU,1760
|
|
157
|
+
omdev-0.0.0.dev143.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
|
158
|
+
omdev-0.0.0.dev143.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
|
|
159
|
+
omdev-0.0.0.dev143.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
|
|
160
|
+
omdev-0.0.0.dev143.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/omdev/{json → tools/json}/io.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|