pydisseqt 0.1.14__cp313-cp313-macosx_11_0_arm64.whl
Sign up to get free protection for your applications and to get access to all the features.
- pydisseqt/__init__.py +5 -0
- pydisseqt/__init__.pyi +121 -0
- pydisseqt/py.typed +0 -0
- pydisseqt/pydisseqt.cpython-313-darwin.so +0 -0
- pydisseqt-0.1.14.dist-info/METADATA +41 -0
- pydisseqt-0.1.14.dist-info/RECORD +8 -0
- pydisseqt-0.1.14.dist-info/WHEEL +4 -0
- pydisseqt-0.1.14.dist-info/licenses/LICENSE +21 -0
pydisseqt/__init__.py
ADDED
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=22dYWnAL5_3nADKeaQCp5vnAuFuCGZt6oQ6-wg6-e48,1379
|
2
|
+
pydisseqt-0.1.14.dist-info/WHEEL,sha256=6CvOkHaxvIQp6TXVBK7UO1H_j2Axyc2hzSTcMwKzQ4E,104
|
3
|
+
pydisseqt-0.1.14.dist-info/licenses/LICENSE,sha256=1shpP5b6mRn1STjctDxMZ3HMCLfJCrkdH0lzSMBkZj4,1072
|
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.cpython-313-darwin.so,sha256=sLdGxT7-DdNBVUcJlFpjExobKtfB1tEkuaUUF5LuNHg,1062240
|
8
|
+
pydisseqt-0.1.14.dist-info/RECORD,,
|
@@ -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.
|