Skip to content

Commit 397634d

Browse files
committed
chore(transform-io): add generated python
1 parent d47d1e0 commit 397634d

File tree

95 files changed

+3111
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+3111
-1
lines changed

packages/transform-io/.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
test/
22
emscripten-build/
3-
python/
43
wasi-build/
54
typescript/dist
65
typescript/src/version.ts
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# itkwasm-transform-io-emscripten
2+
3+
[![PyPI version](https://badge.fury.io/py/itkwasm-transform-io-emscripten.svg)](https://badge.fury.io/py/itkwasm-transform-io-emscripten)
4+
5+
Input and output for scientific and medical coordinate transform file formats. Emscripten implementation.
6+
7+
This package provides the Emscripten WebAssembly implementation. It is usually not called directly. Please use the [`itkwasm-transform-io`](https://pypi.org/project/itkwasm-transform-io/) instead.
8+
9+
10+
## Installation
11+
12+
```sh
13+
import micropip
14+
await micropip.install('itkwasm-transform-io-emscripten')
15+
```
16+
17+
## Development
18+
19+
```sh
20+
pip install hatch
21+
hatch run download-pyodide
22+
hatch run test
23+
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Generated file. To retain edits, remove this comment.
2+
3+
"""itkwasm-transform-io-emscripten: Input and output for scientific and medical coordinate transform file formats. Emscripten implementation."""
4+
5+
from .hdf5_read_transform_async import hdf5_read_transform_async
6+
from .hdf5_write_transform_async import hdf5_write_transform_async
7+
from .mat_read_transform_async import mat_read_transform_async
8+
from .mat_write_transform_async import mat_write_transform_async
9+
from .mnc_read_transform_async import mnc_read_transform_async
10+
from .mnc_write_transform_async import mnc_write_transform_async
11+
from .txt_read_transform_async import txt_read_transform_async
12+
from .txt_write_transform_async import txt_write_transform_async
13+
from .wasm_read_transform_async import wasm_read_transform_async
14+
from .wasm_write_transform_async import wasm_write_transform_async
15+
from .wasm_zstd_read_transform_async import wasm_zstd_read_transform_async
16+
from .wasm_zstd_write_transform_async import wasm_zstd_write_transform_async
17+
18+
from ._version import __version__
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
__version__ = "0.1.0"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Generated file. To retain edits, remove this comment.
2+
3+
from pathlib import Path
4+
import os
5+
from typing import Dict, Tuple, Optional, List, Any
6+
7+
from .js_package import js_package
8+
9+
from itkwasm.pyodide import (
10+
to_js,
11+
to_py,
12+
js_resources
13+
)
14+
from itkwasm import (
15+
InterfaceTypes,
16+
BinaryFile,
17+
Transform,
18+
)
19+
20+
async def hdf5_read_transform_async(
21+
serialized_transform: os.PathLike,
22+
float_parameters: bool = False,
23+
) -> Tuple[Any, Transform]:
24+
"""Read an transform file format and convert it to the ITK-Wasm transform file format
25+
26+
:param serialized_transform: Input transform serialized in the file format
27+
:type serialized_transform: os.PathLike
28+
29+
:param float_parameters: Use float for the parameter value type. The default is double.
30+
:type float_parameters: bool
31+
32+
:return: Whether the input could be read. If false, the output transform is not valid.
33+
:rtype: Any
34+
35+
:return: Output transform
36+
:rtype: Transform
37+
"""
38+
js_module = await js_package.js_module
39+
web_worker = js_resources.web_worker
40+
41+
kwargs = {}
42+
if float_parameters:
43+
kwargs["floatParameters"] = to_js(float_parameters)
44+
45+
outputs = await js_module.hdf5ReadTransform(to_js(BinaryFile(serialized_transform)), webWorker=web_worker, noCopy=True, **kwargs)
46+
47+
output_web_worker = None
48+
output_list = []
49+
outputs_object_map = outputs.as_object_map()
50+
for output_name in outputs.object_keys():
51+
if output_name == 'webWorker':
52+
output_web_worker = outputs_object_map[output_name]
53+
else:
54+
output_list.append(to_py(outputs_object_map[output_name]))
55+
56+
js_resources.web_worker = output_web_worker
57+
58+
if len(output_list) == 1:
59+
return output_list[0]
60+
return tuple(output_list)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# Generated file. To retain edits, remove this comment.
2+
3+
from pathlib import Path
4+
import os
5+
from typing import Dict, Tuple, Optional, List, Any
6+
7+
from .js_package import js_package
8+
9+
from itkwasm.pyodide import (
10+
to_js,
11+
to_py,
12+
js_resources
13+
)
14+
from itkwasm import (
15+
InterfaceTypes,
16+
Transform,
17+
BinaryFile,
18+
)
19+
20+
async def hdf5_write_transform_async(
21+
transform: Transform,
22+
serialized_transform: str,
23+
float_parameters: bool = False,
24+
use_compression: bool = False,
25+
) -> Tuple[Any]:
26+
"""Write an ITK-Wasm transform file format converted to a transform file format
27+
28+
:param transform: Input transform
29+
:type transform: Transform
30+
31+
:param serialized_transform: Output transform serialized in the file format.
32+
:type serialized_transform: str
33+
34+
:param float_parameters: Use float for the parameter value type. The default is double.
35+
:type float_parameters: bool
36+
37+
:param use_compression: Use compression in the written file
38+
:type use_compression: bool
39+
40+
:return: Whether the input could be written. If false, the output transform is not valid.
41+
:rtype: Any
42+
"""
43+
js_module = await js_package.js_module
44+
web_worker = js_resources.web_worker
45+
46+
kwargs = {}
47+
if float_parameters:
48+
kwargs["floatParameters"] = to_js(float_parameters)
49+
if use_compression:
50+
kwargs["useCompression"] = to_js(use_compression)
51+
52+
outputs = await js_module.hdf5WriteTransform(to_js(transform), to_js(serialized_transform), webWorker=web_worker, noCopy=True, **kwargs)
53+
54+
output_web_worker = None
55+
output_list = []
56+
outputs_object_map = outputs.as_object_map()
57+
for output_name in outputs.object_keys():
58+
if output_name == 'webWorker':
59+
output_web_worker = outputs_object_map[output_name]
60+
else:
61+
output_list.append(to_py(outputs_object_map[output_name]))
62+
63+
js_resources.web_worker = output_web_worker
64+
65+
if len(output_list) == 1:
66+
return output_list[0]
67+
return tuple(output_list)

packages/transform-io/python/itkwasm-transform-io-emscripten/itkwasm_transform_io_emscripten/js_package.py

Lines changed: 8 additions & 0 deletions
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Generated file. To retain edits, remove this comment.
2+
3+
from pathlib import Path
4+
import os
5+
from typing import Dict, Tuple, Optional, List, Any
6+
7+
from .js_package import js_package
8+
9+
from itkwasm.pyodide import (
10+
to_js,
11+
to_py,
12+
js_resources
13+
)
14+
from itkwasm import (
15+
InterfaceTypes,
16+
BinaryFile,
17+
Transform,
18+
)
19+
20+
async def mat_read_transform_async(
21+
serialized_transform: os.PathLike,
22+
float_parameters: bool = False,
23+
) -> Tuple[Any, Transform]:
24+
"""Read an transform file format and convert it to the ITK-Wasm transform file format
25+
26+
:param serialized_transform: Input transform serialized in the file format
27+
:type serialized_transform: os.PathLike
28+
29+
:param float_parameters: Use float for the parameter value type. The default is double.
30+
:type float_parameters: bool
31+
32+
:return: Whether the input could be read. If false, the output transform is not valid.
33+
:rtype: Any
34+
35+
:return: Output transform
36+
:rtype: Transform
37+
"""
38+
js_module = await js_package.js_module
39+
web_worker = js_resources.web_worker
40+
41+
kwargs = {}
42+
if float_parameters:
43+
kwargs["floatParameters"] = to_js(float_parameters)
44+
45+
outputs = await js_module.matReadTransform(to_js(BinaryFile(serialized_transform)), webWorker=web_worker, noCopy=True, **kwargs)
46+
47+
output_web_worker = None
48+
output_list = []
49+
outputs_object_map = outputs.as_object_map()
50+
for output_name in outputs.object_keys():
51+
if output_name == 'webWorker':
52+
output_web_worker = outputs_object_map[output_name]
53+
else:
54+
output_list.append(to_py(outputs_object_map[output_name]))
55+
56+
js_resources.web_worker = output_web_worker
57+
58+
if len(output_list) == 1:
59+
return output_list[0]
60+
return tuple(output_list)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# Generated file. To retain edits, remove this comment.
2+
3+
from pathlib import Path
4+
import os
5+
from typing import Dict, Tuple, Optional, List, Any
6+
7+
from .js_package import js_package
8+
9+
from itkwasm.pyodide import (
10+
to_js,
11+
to_py,
12+
js_resources
13+
)
14+
from itkwasm import (
15+
InterfaceTypes,
16+
Transform,
17+
BinaryFile,
18+
)
19+
20+
async def mat_write_transform_async(
21+
transform: Transform,
22+
serialized_transform: str,
23+
float_parameters: bool = False,
24+
use_compression: bool = False,
25+
) -> Tuple[Any]:
26+
"""Write an ITK-Wasm transform file format converted to a transform file format
27+
28+
:param transform: Input transform
29+
:type transform: Transform
30+
31+
:param serialized_transform: Output transform serialized in the file format.
32+
:type serialized_transform: str
33+
34+
:param float_parameters: Use float for the parameter value type. The default is double.
35+
:type float_parameters: bool
36+
37+
:param use_compression: Use compression in the written file
38+
:type use_compression: bool
39+
40+
:return: Whether the input could be written. If false, the output transform is not valid.
41+
:rtype: Any
42+
"""
43+
js_module = await js_package.js_module
44+
web_worker = js_resources.web_worker
45+
46+
kwargs = {}
47+
if float_parameters:
48+
kwargs["floatParameters"] = to_js(float_parameters)
49+
if use_compression:
50+
kwargs["useCompression"] = to_js(use_compression)
51+
52+
outputs = await js_module.matWriteTransform(to_js(transform), to_js(serialized_transform), webWorker=web_worker, noCopy=True, **kwargs)
53+
54+
output_web_worker = None
55+
output_list = []
56+
outputs_object_map = outputs.as_object_map()
57+
for output_name in outputs.object_keys():
58+
if output_name == 'webWorker':
59+
output_web_worker = outputs_object_map[output_name]
60+
else:
61+
output_list.append(to_py(outputs_object_map[output_name]))
62+
63+
js_resources.web_worker = output_web_worker
64+
65+
if len(output_list) == 1:
66+
return output_list[0]
67+
return tuple(output_list)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Generated file. To retain edits, remove this comment.
2+
3+
from pathlib import Path
4+
import os
5+
from typing import Dict, Tuple, Optional, List, Any
6+
7+
from .js_package import js_package
8+
9+
from itkwasm.pyodide import (
10+
to_js,
11+
to_py,
12+
js_resources
13+
)
14+
from itkwasm import (
15+
InterfaceTypes,
16+
BinaryFile,
17+
Transform,
18+
)
19+
20+
async def mnc_read_transform_async(
21+
serialized_transform: os.PathLike,
22+
float_parameters: bool = False,
23+
) -> Tuple[Any, Transform]:
24+
"""Read an transform file format and convert it to the ITK-Wasm transform file format
25+
26+
:param serialized_transform: Input transform serialized in the file format
27+
:type serialized_transform: os.PathLike
28+
29+
:param float_parameters: Use float for the parameter value type. The default is double.
30+
:type float_parameters: bool
31+
32+
:return: Whether the input could be read. If false, the output transform is not valid.
33+
:rtype: Any
34+
35+
:return: Output transform
36+
:rtype: Transform
37+
"""
38+
js_module = await js_package.js_module
39+
web_worker = js_resources.web_worker
40+
41+
kwargs = {}
42+
if float_parameters:
43+
kwargs["floatParameters"] = to_js(float_parameters)
44+
45+
outputs = await js_module.mncReadTransform(to_js(BinaryFile(serialized_transform)), webWorker=web_worker, noCopy=True, **kwargs)
46+
47+
output_web_worker = None
48+
output_list = []
49+
outputs_object_map = outputs.as_object_map()
50+
for output_name in outputs.object_keys():
51+
if output_name == 'webWorker':
52+
output_web_worker = outputs_object_map[output_name]
53+
else:
54+
output_list.append(to_py(outputs_object_map[output_name]))
55+
56+
js_resources.web_worker = output_web_worker
57+
58+
if len(output_list) == 1:
59+
return output_list[0]
60+
return tuple(output_list)

0 commit comments

Comments
 (0)