pydisseqt 0.1.14__cp38-cp38-win32.whl

Sign up to get free protection for your applications and to get access to all the features.
pydisseqt/__init__.py ADDED
@@ -0,0 +1,5 @@
1
+ from .pydisseqt import *
2
+
3
+ __doc__ = pydisseqt.__doc__
4
+ if hasattr(pydisseqt, "__all__"):
5
+ __all__ = pydisseqt.__all__
pydisseqt/__init__.pyi ADDED
@@ -0,0 +1,121 @@
1
+ from typing import Literal
2
+ import math
3
+ import sys
4
+
5
+ # TODO: Documentation - pydisseqt and disseqt should be identical
6
+
7
+ # This file might be generated automatically in the future:
8
+ # https://github.com/PyO3/pyo3/issues/2454
9
+
10
+
11
+ class RfPulseSample:
12
+ def __init__(self) -> None:
13
+ self.amplitude: float = ...
14
+ self.phase: float = ...
15
+ self.frequency: float = ...
16
+ self.shim: list[tuple[float, float]] | None = ...
17
+
18
+
19
+ class RfPulseSampleVec:
20
+ def __init__(self) -> None:
21
+ self.amplitude: list[float] = ...
22
+ self.phase: list[float] = ...
23
+ self.frequency: list[float] = ...
24
+ self.shim: list[list[tuple[float, float]] | None] = ...
25
+
26
+
27
+ class GradientSample:
28
+ def __init__(self) -> None:
29
+ self.x: float = ...
30
+ self.y: float = ...
31
+ self.z: float = ...
32
+
33
+
34
+ class GradientSampleVec:
35
+ def __init__(self) -> None:
36
+ self.x: list[float] = ...
37
+ self.y: list[float] = ...
38
+ self.z: list[float] = ...
39
+
40
+
41
+ class AdcBlockSample:
42
+ def __init__(self) -> None:
43
+ self.active: bool = ...
44
+ self.phase: float = ...
45
+ self.frequency: float = ...
46
+
47
+
48
+ class AdcBlockSampleVec:
49
+ def __init__(self) -> None:
50
+ self.active: list[bool] = ...
51
+ self.phase: list[float] = ...
52
+ self.frequency: list[float] = ...
53
+
54
+
55
+ class Sample:
56
+ def __init__(self) -> None:
57
+ self.pulse: RfPulseSample = ...
58
+ self.gradient: GradientSample = ...
59
+ self.adc: AdcBlockSample = ...
60
+
61
+
62
+ class SampleVec:
63
+ def __init__(self) -> None:
64
+ self.pulse: RfPulseSampleVec = ...
65
+ self.gradient: GradientSampleVec = ...
66
+ self.adc: AdcBlockSampleVec = ...
67
+
68
+
69
+ class RfPulseMoment:
70
+ def __init__(self) -> None:
71
+ self.angle: float = ...
72
+ self.phase: float = ...
73
+
74
+
75
+ class RfPulseMomentVec:
76
+ def __init__(self) -> None:
77
+ self.angle: list[float] = ...
78
+ self.phase: list[float] = ...
79
+
80
+
81
+ class GradientMoment:
82
+ def __init__(self) -> None:
83
+ self.x: float = ...
84
+ self.y: float = ...
85
+ self.z: float = ...
86
+
87
+
88
+ class GradientMomentVec:
89
+ def __init__(self) -> None:
90
+ self.x: list[float] = ...
91
+ self.y: list[float] = ...
92
+ self.z: list[float] = ...
93
+
94
+
95
+ class Moment:
96
+ def __init__(self) -> None:
97
+ self.pulse: RfPulseMoment = ...
98
+ self.gradient: GradientMoment = ...
99
+
100
+
101
+ class MomentVec:
102
+ def __init__(self) -> None:
103
+ self.pulse: RfPulseMomentVec = ...
104
+ self.gradient: GradientMomentVec = ...
105
+
106
+
107
+ class Sequence:
108
+ def fov(self) -> tuple[float, float, float] | None: ...
109
+ def duration(self) -> float: ...
110
+ def encounter(self, ty: Literal["rf", "adc", "grad x", "grad y", "grad z"], t_start: float) -> tuple[float, float] | None: ...
111
+ def events(self, ty: Literal["rf", "adc", "grad x", "grad y", "grad z"], t_start: float = -math.inf, t_end: float = math.inf, max_count: int = sys.maxsize) -> list[float]: ...
112
+ def next_event(self, ty: Literal["rf", "adc", "grad x", "grad y", "grad z"], t_start: float) -> float | None: ...
113
+ def integrate(self, time: list[float]) -> MomentVec: ...
114
+ def integrate_one(self, t_start: float, t_end: float) -> Moment: ...
115
+ def sample(self, time: list[float]) -> SampleVec: ...
116
+ def sample_one(self, t: float) -> Sample: ...
117
+
118
+
119
+ def load_pulseq(path: str) -> Sequence: ...
120
+
121
+ def load_dsv(path: str, ref_voltage: float, resolution: int | None) -> Sequence: ...
pydisseqt/py.typed ADDED
File without changes
Binary file
@@ -0,0 +1,41 @@
1
+ Metadata-Version: 2.4
2
+ Name: pydisseqt
3
+ Version: 0.1.14
4
+ Classifier: Programming Language :: Rust
5
+ Classifier: Programming Language :: Python :: Implementation :: CPython
6
+ Classifier: Programming Language :: Python :: Implementation :: PyPy
7
+ License-File: LICENSE
8
+ Requires-Python: >=3.8
9
+ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
10
+
11
+ Python wrapper around [disseqt](https://github.com/pulseq-frame/disseqt) built using https://github.com/PyO3/maturin
12
+
13
+ # Changelog:
14
+
15
+ - 0.1.14
16
+ - Updated disseqt to support fixed ADC resolution that does not align to grid
17
+ - 0.1.13
18
+ - Updated pulseq-rs for support of shim shape 0
19
+ - 0.1.12
20
+ - Updated typing info
21
+ - 0.1.11
22
+ - Implemented pTx extension to correctly forward through pydisseqt
23
+ - 0.1.10
24
+ - Updated pulseq-rs: can now load .seq files using the rfshim pTx extension
25
+ - 0.1.9
26
+ - Updated disseqt: Now respects ref_voltage for correct units on .dsv import
27
+ - 0.1.8
28
+ - Updated disseqt: Make pulse phase (RFP) file optional as it is not always provided
29
+ - 0.1.5
30
+ - Switched to WIP disseqt that includes a .dsv backend
31
+ - 0.1.4
32
+ - Updated disseqt: allow backwards integration in integrate and integrate_one (t_start >= t_end)
33
+ - 0.1.3
34
+ - Updated disseqt, fixed trap integration bug
35
+ - 0.1.2
36
+ - Updated pulseq-rs: allow empty .seq file sections
37
+ - 0.1.1
38
+ - Updated disseqt, use double precision floats
39
+ - 0.1.0
40
+ - Baseline
41
+
@@ -0,0 +1,8 @@
1
+ pydisseqt-0.1.14.dist-info/METADATA,sha256=6h5xZaZimuAM1EXcIq1SeNrDELPpFsTsBN1ceWPG4mE,1409
2
+ pydisseqt-0.1.14.dist-info/WHEEL,sha256=0AtjzMj70ur41AHwv959NTO6xQ_tmU9nx1wJq4aiRvE,90
3
+ pydisseqt-0.1.14.dist-info/licenses/LICENSE,sha256=xpf9WI1Tl_NX5DkGnz0yrq24MaG0RxpAz_lHaa4E6qE,1093
4
+ pydisseqt/__init__.py,sha256=vPtTfcEL0sG0uHstfYvhLRm1_eYmLNM57olRJPziqc4,119
5
+ pydisseqt/__init__.pyi,sha256=KdxtrmmCSeW_P6GMCtQGjJwR7zX8hML9ECY-sLIHcCA,3536
6
+ pydisseqt/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ pydisseqt/pydisseqt.cp38-win32.pyd,sha256=UIMjzo4bB26jwBUWwyCbOymBsJdJgIqeATN7rPwOL74,644096
8
+ pydisseqt-0.1.14.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: maturin (1.8.1)
3
+ Root-Is-Purelib: false
4
+ Tag: cp38-cp38-win32
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Jonathan Endres
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.