foamlib 0.6.11__py3-none-any.whl → 0.6.13__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.
- foamlib/__init__.py +1 -1
- foamlib/_cases/_async.py +23 -23
- foamlib/_cases/_base.py +25 -26
- foamlib/_cases/_run.py +52 -58
- foamlib/_cases/_slurm.py +7 -5
- foamlib/_cases/_subprocess.py +15 -13
- foamlib/_cases/_sync.py +25 -27
- foamlib/_cases/_util.py +13 -10
- foamlib/_files/_base.py +5 -3
- foamlib/_files/_files.py +139 -103
- foamlib/_files/_io.py +9 -10
- foamlib/_files/_parsing.py +96 -51
- foamlib/_files/_serialization.py +121 -28
- foamlib/_files/_util.py +8 -3
- {foamlib-0.6.11.dist-info → foamlib-0.6.13.dist-info}/METADATA +1 -1
- foamlib-0.6.13.dist-info/RECORD +22 -0
- foamlib-0.6.11.dist-info/RECORD +0 -22
- {foamlib-0.6.11.dist-info → foamlib-0.6.13.dist-info}/LICENSE.txt +0 -0
- {foamlib-0.6.11.dist-info → foamlib-0.6.13.dist-info}/WHEEL +0 -0
- {foamlib-0.6.11.dist-info → foamlib-0.6.13.dist-info}/top_level.txt +0 -0
foamlib/_files/_parsing.py
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
1
3
|
import array
|
2
4
|
import sys
|
3
5
|
from typing import Tuple, Union, cast
|
@@ -80,19 +82,21 @@ def _keyword_entry_of(
|
|
80
82
|
|
81
83
|
def _unpack_binary_field(
|
82
84
|
tks: ParseResults,
|
83
|
-
|
84
|
-
elsize =
|
85
|
+
*,
|
86
|
+
elsize: int = 1,
|
87
|
+
) -> Sequence[Sequence[float] | Sequence[Sequence[float]]]:
|
88
|
+
float_size = len(tks[0]) // elsize
|
85
89
|
|
86
|
-
arr = array.array("d", "".join(tks).encode("latin-1"))
|
90
|
+
arr = array.array("f" if float_size == 4 else "d", "".join(tks).encode("latin-1"))
|
87
91
|
|
88
|
-
|
92
|
+
values: Sequence[float] | Sequence[Sequence[float]]
|
89
93
|
|
90
94
|
if elsize != 1:
|
91
|
-
|
95
|
+
values = [arr[i : i + elsize].tolist() for i in range(0, len(arr), elsize)]
|
92
96
|
else:
|
93
|
-
|
97
|
+
values = arr.tolist()
|
94
98
|
|
95
|
-
return [
|
99
|
+
return [values]
|
96
100
|
|
97
101
|
|
98
102
|
_IDENTCHARS = identchars + "$"
|
@@ -128,45 +132,92 @@ _IDENTIFIER = Combine(
|
|
128
132
|
_DIMENSIONED = (Opt(_IDENTIFIER) + _DIMENSIONS + _TENSOR).set_parse_action(
|
129
133
|
lambda tks: FoamFileBase.Dimensioned(*reversed(tks.as_list()))
|
130
134
|
)
|
131
|
-
_FIELD = (Keyword("uniform").suppress() + _TENSOR) | (
|
132
|
-
Keyword("nonuniform").suppress()
|
135
|
+
_FIELD = (Keyword("uniform", _IDENTBODYCHARS).suppress() + _TENSOR) | (
|
136
|
+
Keyword("nonuniform", _IDENTBODYCHARS).suppress()
|
133
137
|
+ (
|
134
138
|
_list_of(_TENSOR)
|
135
139
|
| (
|
136
140
|
Literal("List").suppress()
|
137
141
|
+ Literal("<").suppress()
|
138
142
|
+ (
|
139
|
-
|
140
|
-
CharsNotIn(exact=8),
|
143
|
+
(
|
141
144
|
Literal("scalar").suppress()
|
142
145
|
+ Literal(">").suppress()
|
143
|
-
+
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
146
|
+
+ (
|
147
|
+
(
|
148
|
+
counted_array(
|
149
|
+
CharsNotIn(exact=8),
|
150
|
+
common.integer + Literal("(").suppress(),
|
151
|
+
)
|
152
|
+
)
|
153
|
+
| (
|
154
|
+
counted_array(
|
155
|
+
CharsNotIn(exact=4),
|
156
|
+
common.integer + Literal("(").suppress(),
|
157
|
+
)
|
158
|
+
)
|
159
|
+
)
|
160
|
+
+ Literal(")").suppress()
|
161
|
+
).set_parse_action(_unpack_binary_field)
|
162
|
+
| (
|
148
163
|
Literal("vector").suppress()
|
149
164
|
+ Literal(">").suppress()
|
150
|
-
+
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
165
|
+
+ (
|
166
|
+
(
|
167
|
+
counted_array(
|
168
|
+
CharsNotIn(exact=8 * 3),
|
169
|
+
common.integer + Literal("(").suppress(),
|
170
|
+
)
|
171
|
+
)
|
172
|
+
| (
|
173
|
+
counted_array(
|
174
|
+
CharsNotIn(exact=4 * 3),
|
175
|
+
common.integer + Literal("(").suppress(),
|
176
|
+
)
|
177
|
+
)
|
178
|
+
)
|
179
|
+
+ Literal(")").suppress()
|
180
|
+
).set_parse_action(lambda tks: _unpack_binary_field(tks, elsize=3))
|
181
|
+
| (
|
155
182
|
Literal("symmTensor").suppress()
|
156
183
|
+ Literal(">").suppress()
|
157
|
-
+
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
184
|
+
+ (
|
185
|
+
(
|
186
|
+
counted_array(
|
187
|
+
CharsNotIn(exact=8 * 6),
|
188
|
+
common.integer + Literal("(").suppress(),
|
189
|
+
)
|
190
|
+
)
|
191
|
+
| (
|
192
|
+
counted_array(
|
193
|
+
CharsNotIn(exact=4 * 6),
|
194
|
+
common.integer + Literal("(").suppress(),
|
195
|
+
)
|
196
|
+
)
|
197
|
+
)
|
198
|
+
+ Literal(")").suppress()
|
199
|
+
).set_parse_action(lambda tks: _unpack_binary_field(tks, elsize=6))
|
200
|
+
| (
|
162
201
|
Literal("tensor").suppress()
|
163
202
|
+ Literal(">").suppress()
|
164
|
-
+
|
165
|
-
|
166
|
-
|
203
|
+
+ (
|
204
|
+
(
|
205
|
+
counted_array(
|
206
|
+
CharsNotIn(exact=8 * 9),
|
207
|
+
common.integer + Literal("(").suppress(),
|
208
|
+
)
|
209
|
+
)
|
210
|
+
| (
|
211
|
+
counted_array(
|
212
|
+
CharsNotIn(exact=4 * 9),
|
213
|
+
common.integer + Literal("(").suppress(),
|
214
|
+
)
|
215
|
+
)
|
216
|
+
)
|
217
|
+
+ Literal(")").suppress()
|
218
|
+
).set_parse_action(lambda tks: _unpack_binary_field(tks, elsize=9))
|
167
219
|
)
|
168
|
-
|
169
|
-
).set_parse_action(_unpack_binary_field)
|
220
|
+
)
|
170
221
|
)
|
171
222
|
)
|
172
223
|
_TOKEN = QuotedString('"', unquote_results=False) | _IDENTIFIER
|
@@ -210,8 +261,8 @@ _FILE = (
|
|
210
261
|
class Parsed(Mapping[Tuple[str, ...], Union[FoamFileBase._DataEntry, EllipsisType]]):
|
211
262
|
def __init__(self, contents: bytes) -> None:
|
212
263
|
self._parsed: MutableMapping[
|
213
|
-
|
214
|
-
|
264
|
+
tuple[str, ...],
|
265
|
+
tuple[int, FoamFileBase._DataEntry | EllipsisType, int],
|
215
266
|
] = {}
|
216
267
|
for parse_result in _FILE.parse_string(
|
217
268
|
contents.decode("latin-1"), parse_all=True
|
@@ -223,13 +274,13 @@ class Parsed(Mapping[Tuple[str, ...], Union[FoamFileBase._DataEntry, EllipsisTyp
|
|
223
274
|
|
224
275
|
@staticmethod
|
225
276
|
def _flatten_result(
|
226
|
-
parse_result: ParseResults, *, _keywords:
|
277
|
+
parse_result: ParseResults, *, _keywords: tuple[str, ...] = ()
|
227
278
|
) -> Mapping[
|
228
|
-
|
279
|
+
tuple[str, ...], tuple[int, FoamFileBase._DataEntry | EllipsisType, int]
|
229
280
|
]:
|
230
281
|
ret: MutableMapping[
|
231
|
-
|
232
|
-
|
282
|
+
tuple[str, ...],
|
283
|
+
tuple[int, FoamFileBase._DataEntry | EllipsisType, int],
|
233
284
|
] = {}
|
234
285
|
start = parse_result.locn_start
|
235
286
|
assert isinstance(start, int)
|
@@ -256,18 +307,15 @@ class Parsed(Mapping[Tuple[str, ...], Union[FoamFileBase._DataEntry, EllipsisTyp
|
|
256
307
|
return ret
|
257
308
|
|
258
309
|
def __getitem__(
|
259
|
-
self, keywords:
|
260
|
-
) ->
|
261
|
-
if isinstance(keywords, str):
|
262
|
-
keywords = (keywords,)
|
263
|
-
|
310
|
+
self, keywords: tuple[str, ...]
|
311
|
+
) -> FoamFileBase._DataEntry | EllipsisType:
|
264
312
|
_, data, _ = self._parsed[keywords]
|
265
313
|
return data
|
266
314
|
|
267
315
|
def put(
|
268
316
|
self,
|
269
|
-
keywords:
|
270
|
-
data:
|
317
|
+
keywords: tuple[str, ...],
|
318
|
+
data: FoamFileBase._DataEntry | EllipsisType,
|
271
319
|
content: bytes,
|
272
320
|
) -> None:
|
273
321
|
start, end = self.entry_location(keywords, missing_ok=True)
|
@@ -288,10 +336,7 @@ class Parsed(Mapping[Tuple[str, ...], Union[FoamFileBase._DataEntry, EllipsisTyp
|
|
288
336
|
if keywords != k and keywords == k[: len(keywords)]:
|
289
337
|
del self._parsed[k]
|
290
338
|
|
291
|
-
def __delitem__(self, keywords:
|
292
|
-
if isinstance(keywords, str):
|
293
|
-
keywords = (keywords,)
|
294
|
-
|
339
|
+
def __delitem__(self, keywords: tuple[str, ...]) -> None:
|
295
340
|
start, end = self.entry_location(keywords)
|
296
341
|
del self._parsed[keywords]
|
297
342
|
|
@@ -312,15 +357,15 @@ class Parsed(Mapping[Tuple[str, ...], Union[FoamFileBase._DataEntry, EllipsisTyp
|
|
312
357
|
def __contains__(self, keywords: object) -> bool:
|
313
358
|
return keywords in self._parsed
|
314
359
|
|
315
|
-
def __iter__(self) -> Iterator[
|
360
|
+
def __iter__(self) -> Iterator[tuple[str, ...]]:
|
316
361
|
return iter(self._parsed)
|
317
362
|
|
318
363
|
def __len__(self) -> int:
|
319
364
|
return len(self._parsed)
|
320
365
|
|
321
366
|
def entry_location(
|
322
|
-
self, keywords:
|
323
|
-
) ->
|
367
|
+
self, keywords: tuple[str, ...], *, missing_ok: bool = False
|
368
|
+
) -> tuple[int, int]:
|
324
369
|
try:
|
325
370
|
start, _, end = self._parsed[keywords]
|
326
371
|
except KeyError:
|
foamlib/_files/_serialization.py
CHANGED
@@ -1,12 +1,17 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
1
3
|
import array
|
4
|
+
import contextlib
|
2
5
|
import itertools
|
6
|
+
import re
|
3
7
|
import sys
|
4
8
|
from enum import Enum, auto
|
9
|
+
from typing import cast, overload
|
5
10
|
|
6
11
|
if sys.version_info >= (3, 9):
|
7
|
-
from collections.abc import Mapping
|
12
|
+
from collections.abc import Mapping, Sequence
|
8
13
|
else:
|
9
|
-
from typing import Mapping
|
14
|
+
from typing import Mapping, Sequence
|
10
15
|
|
11
16
|
from ._base import FoamFileBase
|
12
17
|
from ._util import is_sequence
|
@@ -22,38 +27,111 @@ except ModuleNotFoundError:
|
|
22
27
|
class Kind(Enum):
|
23
28
|
DEFAULT = auto()
|
24
29
|
SINGLE_ENTRY = auto()
|
25
|
-
|
26
|
-
|
30
|
+
ASCII_FIELD = auto()
|
31
|
+
DOUBLE_PRECISION_BINARY_FIELD = auto()
|
32
|
+
SINGLE_PRECISION_BINARY_FIELD = auto()
|
27
33
|
DIMENSIONS = auto()
|
28
34
|
|
29
35
|
|
36
|
+
_TOKENS = re.compile(r'(?:[^\s"]|"(?:[^"])*")+')
|
37
|
+
|
38
|
+
|
39
|
+
@overload
|
40
|
+
def normalize(
|
41
|
+
data: FoamFileBase._DataEntry, *, kind: Kind = Kind.DEFAULT
|
42
|
+
) -> FoamFileBase._DataEntry: ...
|
43
|
+
|
44
|
+
|
45
|
+
@overload
|
46
|
+
def normalize(
|
47
|
+
data: FoamFileBase.Data, *, kind: Kind = Kind.DEFAULT
|
48
|
+
) -> FoamFileBase.Data: ...
|
49
|
+
|
50
|
+
|
51
|
+
def normalize(
|
52
|
+
data: FoamFileBase.Data, *, kind: Kind = Kind.DEFAULT
|
53
|
+
) -> FoamFileBase.Data:
|
54
|
+
if numpy and isinstance(data, np.ndarray):
|
55
|
+
ret = data.tolist()
|
56
|
+
assert isinstance(ret, list)
|
57
|
+
return ret
|
58
|
+
|
59
|
+
if kind == Kind.SINGLE_ENTRY and isinstance(data, tuple):
|
60
|
+
ret = normalize(list(data))
|
61
|
+
assert isinstance(ret, list)
|
62
|
+
return ret
|
63
|
+
|
64
|
+
if isinstance(data, Mapping):
|
65
|
+
return {k: normalize(v, kind=kind) for k, v in data.items()}
|
66
|
+
|
67
|
+
if (
|
68
|
+
kind == Kind.DIMENSIONS
|
69
|
+
and is_sequence(data)
|
70
|
+
and len(data) <= 7
|
71
|
+
and all(isinstance(d, (int, float)) for d in data)
|
72
|
+
):
|
73
|
+
data = cast(Sequence[float], data)
|
74
|
+
return FoamFileBase.DimensionSet(*data)
|
75
|
+
|
76
|
+
if is_sequence(data) and not isinstance(data, tuple):
|
77
|
+
return [normalize(d, kind=Kind.SINGLE_ENTRY) for d in data]
|
78
|
+
|
79
|
+
if isinstance(data, str):
|
80
|
+
with contextlib.suppress(ValueError):
|
81
|
+
return int(data)
|
82
|
+
|
83
|
+
with contextlib.suppress(ValueError):
|
84
|
+
return float(data)
|
85
|
+
|
86
|
+
tokens: list[str] = re.findall(_TOKENS, data)
|
87
|
+
|
88
|
+
if len(tokens) == 1:
|
89
|
+
return tokens[0]
|
90
|
+
|
91
|
+
return tuple(tokens) if kind != Kind.SINGLE_ENTRY else " ".join(tokens)
|
92
|
+
|
93
|
+
if isinstance(data, FoamFileBase.Dimensioned):
|
94
|
+
value = normalize(data.value, kind=Kind.SINGLE_ENTRY)
|
95
|
+
assert isinstance(value, (int, float, list))
|
96
|
+
return FoamFileBase.Dimensioned(value, data.dimensions, data.name)
|
97
|
+
|
98
|
+
if isinstance(
|
99
|
+
data,
|
100
|
+
(int, float, bool, tuple, FoamFileBase.DimensionSet),
|
101
|
+
):
|
102
|
+
return data
|
103
|
+
|
104
|
+
msg = f"Unsupported data type: {type(data)}"
|
105
|
+
raise TypeError(msg)
|
106
|
+
|
107
|
+
|
30
108
|
def dumps(
|
31
109
|
data: FoamFileBase.Data,
|
32
110
|
*,
|
33
111
|
kind: Kind = Kind.DEFAULT,
|
34
112
|
) -> bytes:
|
35
|
-
|
36
|
-
return dumps(data.tolist(), kind=kind)
|
113
|
+
data = normalize(data, kind=kind)
|
37
114
|
|
38
115
|
if isinstance(data, Mapping):
|
39
116
|
entries = []
|
40
117
|
for k, v in data.items():
|
41
|
-
b = dumps(v, kind=kind)
|
42
118
|
if isinstance(v, Mapping):
|
43
|
-
entries.append(dumps(k) + b" {" +
|
44
|
-
elif not
|
119
|
+
entries.append(dumps(k) + b" {" + dumps(v) + b"}")
|
120
|
+
elif not v:
|
45
121
|
entries.append(dumps(k) + b";")
|
46
122
|
else:
|
47
|
-
entries.append(dumps(k) + b" " +
|
123
|
+
entries.append(dumps(k) + b" " + dumps(v) + b";")
|
48
124
|
|
49
125
|
return b" ".join(entries)
|
50
126
|
|
51
|
-
if isinstance(data, FoamFileBase.DimensionSet)
|
52
|
-
kind == Kind.DIMENSIONS and is_sequence(data) and len(data) == 7
|
53
|
-
):
|
127
|
+
if isinstance(data, FoamFileBase.DimensionSet):
|
54
128
|
return b"[" + b" ".join(dumps(v) for v in data) + b"]"
|
55
129
|
|
56
|
-
if
|
130
|
+
if kind in (
|
131
|
+
Kind.ASCII_FIELD,
|
132
|
+
Kind.DOUBLE_PRECISION_BINARY_FIELD,
|
133
|
+
Kind.SINGLE_PRECISION_BINARY_FIELD,
|
134
|
+
) and (
|
57
135
|
isinstance(data, (int, float))
|
58
136
|
or is_sequence(data)
|
59
137
|
and data
|
@@ -62,25 +140,40 @@ def dumps(
|
|
62
140
|
):
|
63
141
|
return b"uniform " + dumps(data, kind=Kind.SINGLE_ENTRY)
|
64
142
|
|
65
|
-
if
|
66
|
-
|
143
|
+
if kind in (
|
144
|
+
Kind.ASCII_FIELD,
|
145
|
+
Kind.DOUBLE_PRECISION_BINARY_FIELD,
|
146
|
+
Kind.SINGLE_PRECISION_BINARY_FIELD,
|
147
|
+
) and is_sequence(data):
|
148
|
+
if data and isinstance(data[0], (int, float)):
|
67
149
|
tensor_kind = b"scalar"
|
68
|
-
elif
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
150
|
+
elif is_sequence(data[0]) and data[0] and isinstance(data[0][0], (int, float)):
|
151
|
+
if len(data[0]) == 3:
|
152
|
+
tensor_kind = b"vector"
|
153
|
+
elif len(data[0]) == 6:
|
154
|
+
tensor_kind = b"symmTensor"
|
155
|
+
elif len(data[0]) == 9:
|
156
|
+
tensor_kind = b"tensor"
|
157
|
+
else:
|
158
|
+
return dumps(data)
|
74
159
|
else:
|
75
160
|
return dumps(data)
|
76
161
|
|
77
|
-
if kind
|
162
|
+
if kind in (
|
163
|
+
Kind.DOUBLE_PRECISION_BINARY_FIELD,
|
164
|
+
Kind.SINGLE_PRECISION_BINARY_FIELD,
|
165
|
+
):
|
166
|
+
typecode = "f" if kind == Kind.SINGLE_PRECISION_BINARY_FIELD else "d"
|
78
167
|
if tensor_kind == b"scalar":
|
79
|
-
|
168
|
+
data = cast(Sequence[float], data)
|
169
|
+
contents = b"(" + array.array(typecode, data).tobytes() + b")"
|
80
170
|
else:
|
171
|
+
data = cast(Sequence[Sequence[float]], data)
|
81
172
|
contents = (
|
82
173
|
b"("
|
83
|
-
+ array.array(
|
174
|
+
+ array.array(
|
175
|
+
typecode, itertools.chain.from_iterable(data)
|
176
|
+
).tobytes()
|
84
177
|
+ b")"
|
85
178
|
)
|
86
179
|
else:
|
@@ -88,9 +181,6 @@ def dumps(
|
|
88
181
|
|
89
182
|
return b"nonuniform List<" + tensor_kind + b"> " + dumps(len(data)) + contents
|
90
183
|
|
91
|
-
if kind != Kind.SINGLE_ENTRY and isinstance(data, tuple):
|
92
|
-
return b" ".join(dumps(v) for v in data)
|
93
|
-
|
94
184
|
if isinstance(data, FoamFileBase.Dimensioned):
|
95
185
|
if data.name is not None:
|
96
186
|
return (
|
@@ -106,6 +196,9 @@ def dumps(
|
|
106
196
|
+ dumps(data.value, kind=Kind.SINGLE_ENTRY)
|
107
197
|
)
|
108
198
|
|
199
|
+
if isinstance(data, tuple):
|
200
|
+
return b" ".join(dumps(v) for v in data)
|
201
|
+
|
109
202
|
if is_sequence(data):
|
110
203
|
return b"(" + b" ".join(dumps(v, kind=Kind.SINGLE_ENTRY) for v in data) + b")"
|
111
204
|
|
foamlib/_files/_util.py
CHANGED
@@ -1,5 +1,7 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
1
3
|
import sys
|
2
|
-
from typing import
|
4
|
+
from typing import TYPE_CHECKING
|
3
5
|
|
4
6
|
if sys.version_info >= (3, 9):
|
5
7
|
from collections.abc import Sequence
|
@@ -11,8 +13,11 @@ if sys.version_info >= (3, 10):
|
|
11
13
|
else:
|
12
14
|
from typing_extensions import TypeGuard
|
13
15
|
|
16
|
+
if TYPE_CHECKING:
|
17
|
+
from ._base import FoamFileBase
|
18
|
+
|
14
19
|
|
15
20
|
def is_sequence(
|
16
|
-
value:
|
17
|
-
) -> TypeGuard[Sequence[
|
21
|
+
value: FoamFileBase.Data,
|
22
|
+
) -> TypeGuard[Sequence[FoamFileBase.Data]]:
|
18
23
|
return isinstance(value, Sequence) and not isinstance(value, str)
|
@@ -0,0 +1,22 @@
|
|
1
|
+
foamlib/__init__.py,sha256=QdspvCoifzrxd6lYysyhLGr4QIan-fYuWBPYDol5YgI,487
|
2
|
+
foamlib/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
|
+
foamlib/_cases/__init__.py,sha256=wTUHcUgU1CBgpu0cUMtksQ5VKG6B8CFu9xc3dWwsQuo,358
|
4
|
+
foamlib/_cases/_async.py,sha256=i6g4EBHqvI-1PkdrxsRto2ynW7sxsOga2bSYk1XVG1U,7795
|
5
|
+
foamlib/_cases/_base.py,sha256=FKfZxP7HspWfSswQ6yZ5bGJRdZUlupQxj2tDqngXPmc,6785
|
6
|
+
foamlib/_cases/_run.py,sha256=lveqKZium_qK_eTxYE8jOjwx0eiIoolCBbi56-zLw1o,14420
|
7
|
+
foamlib/_cases/_slurm.py,sha256=kj4wqgr3foMyAoUkoHOZODRBmVqH1B9KqAIEEjM8ZBg,2328
|
8
|
+
foamlib/_cases/_subprocess.py,sha256=6BlBRxknj2-BFcGkx7oVcuL63_utSaY1Axmsc1qV9j8,3887
|
9
|
+
foamlib/_cases/_sync.py,sha256=2BJXB7Nzldb4OgPukqupgYqdceUGkI2mYhhtGPWEBrc,5901
|
10
|
+
foamlib/_cases/_util.py,sha256=lhVca3ERY0zwYjDam6W2QMROt0yX5vAF-9_DS5RuMbM,1547
|
11
|
+
foamlib/_files/__init__.py,sha256=-UqB9YTH6mrJfXCX00kPTAAY20XG64u1MGPw_1ewLVs,148
|
12
|
+
foamlib/_files/_base.py,sha256=ZY_6Zxr3LZHVzJEex6SUTi9Pgo7Oi7i3Jo-wre9G3yE,1968
|
13
|
+
foamlib/_files/_files.py,sha256=oYRlMfCUH9oNeu-yf2HAPmLxLHteIe7gHhsWXdn7wU0,15767
|
14
|
+
foamlib/_files/_io.py,sha256=IQLqoqnA1TpHf21NbUho2wsYWevyqC6MKo-wfpaObUU,2226
|
15
|
+
foamlib/_files/_parsing.py,sha256=vFOKf2Rf3Z8Vr7TtDXOUq-dLxWAQzMeKVyYQcl91P2s,12991
|
16
|
+
foamlib/_files/_serialization.py,sha256=p2yRpyyOAOKP7P6T7BLEgRVvORuzQEcv_P6dEsOZ9_8,5981
|
17
|
+
foamlib/_files/_util.py,sha256=VXUTD0B3NbnlaE_KCqWzrFcWvBz_2JfnIWpNp3snX3Y,526
|
18
|
+
foamlib-0.6.13.dist-info/LICENSE.txt,sha256=5Dte9TUnLZzPRs4NQzl-Jc2-Ljd-t_v0ZR5Ng5r0UsY,35131
|
19
|
+
foamlib-0.6.13.dist-info/METADATA,sha256=iWdp-dZBC-MJYEufP-ouDdsp3fy8CMfbXQWXM_EsWYo,7742
|
20
|
+
foamlib-0.6.13.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
21
|
+
foamlib-0.6.13.dist-info/top_level.txt,sha256=ZdVYtetXGwPwyfL-WhlhbTFQGAwKX5P_gXxtH9JYFPI,8
|
22
|
+
foamlib-0.6.13.dist-info/RECORD,,
|
foamlib-0.6.11.dist-info/RECORD
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
foamlib/__init__.py,sha256=tS4b8eyl8WWPCCt7EmgXM2lcx8V1Zead47kwB3zJlNY,487
|
2
|
-
foamlib/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
|
-
foamlib/_cases/__init__.py,sha256=wTUHcUgU1CBgpu0cUMtksQ5VKG6B8CFu9xc3dWwsQuo,358
|
4
|
-
foamlib/_cases/_async.py,sha256=oQ2XnD9sansJLJDuUl3_vHaUM4L9hq2G97IcRjQAOPY,7920
|
5
|
-
foamlib/_cases/_base.py,sha256=HV7ifv60pAhgZdC3s5IxvdrDQ2vvlhzPwyB-80QQLe8,6733
|
6
|
-
foamlib/_cases/_run.py,sha256=XFDBr5G1hJo0402RcZClLL_rv0d5jVgq2be25FgZcyQ,14725
|
7
|
-
foamlib/_cases/_slurm.py,sha256=pUXcFSrwOK5URsoooiUOJg61X0WLLNHyv7bhUxIb7Bs,2346
|
8
|
-
foamlib/_cases/_subprocess.py,sha256=tzsBGe44EnQw3GWqRW1ktEZ4sNQ1sSHdJ_89zIfF5L0,3952
|
9
|
-
foamlib/_cases/_sync.py,sha256=ENvn8zseRh6YOjAgqXHzmKhKFYXdzGIW5NoMHS_NKPY,6049
|
10
|
-
foamlib/_cases/_util.py,sha256=GNndpqw3Jg_S-Hxzl5vwRgD0czcTNb9NYHMhcfBoMBg,1493
|
11
|
-
foamlib/_files/__init__.py,sha256=-UqB9YTH6mrJfXCX00kPTAAY20XG64u1MGPw_1ewLVs,148
|
12
|
-
foamlib/_files/_base.py,sha256=A8084rU92w9Hh2BZAEIdE31qvm15fto1qOyQJhrP5DI,1945
|
13
|
-
foamlib/_files/_files.py,sha256=rvhb9mZFg1z6JSpb02E_8B2YD7Zmt5hh2v7rq19qC_c,14712
|
14
|
-
foamlib/_files/_io.py,sha256=07gaGhoJuXDB9i4AxvnIT_Np71RAU2ut2G5Lcyx8TaU,2244
|
15
|
-
foamlib/_files/_parsing.py,sha256=pqwWzlZwCTe7PxncYywO3OWd9Ppl9Oq8JYVpofxKJsY,11046
|
16
|
-
foamlib/_files/_serialization.py,sha256=Gy9v3iZGD-RF3pS7rauft7fpT33UIzRuOm0XH4rFHvA,3337
|
17
|
-
foamlib/_files/_util.py,sha256=UMzXmTFgvbp46w6k3oEZJoYC98pFgEK6LN5uLOwrlCg,397
|
18
|
-
foamlib-0.6.11.dist-info/LICENSE.txt,sha256=5Dte9TUnLZzPRs4NQzl-Jc2-Ljd-t_v0ZR5Ng5r0UsY,35131
|
19
|
-
foamlib-0.6.11.dist-info/METADATA,sha256=VGwnlinUiBszBq9RzNnRWvWx0hkO9ziOY4jaKNmoJwc,7742
|
20
|
-
foamlib-0.6.11.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
21
|
-
foamlib-0.6.11.dist-info/top_level.txt,sha256=ZdVYtetXGwPwyfL-WhlhbTFQGAwKX5P_gXxtH9JYFPI,8
|
22
|
-
foamlib-0.6.11.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|