junifer 0.0.6.dev317__py3-none-any.whl → 0.0.6.dev324__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.
junifer/_version.py CHANGED
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.0.6.dev317'
16
- __version_tuple__ = version_tuple = (0, 0, 6, 'dev317')
15
+ __version__ = version = '0.0.6.dev324'
16
+ __version_tuple__ = version_tuple = (0, 0, 6, 'dev324')
@@ -50,7 +50,7 @@ class AFNIALFF(metaclass=Singleton):
50
50
  @lru_cache(maxsize=None, typed=True)
51
51
  def compute(
52
52
  self,
53
- data: "Nifti1Image",
53
+ input_path: Path,
54
54
  highpass: float,
55
55
  lowpass: float,
56
56
  tr: Optional[float],
@@ -59,8 +59,8 @@ class AFNIALFF(metaclass=Singleton):
59
59
 
60
60
  Parameters
61
61
  ----------
62
- data : 4D Niimg-like object
63
- Images to process.
62
+ input_path : pathlib.Path
63
+ Path to the input data.
64
64
  highpass : positive float
65
65
  Highpass cutoff frequency.
66
66
  lowpass : positive float
@@ -82,19 +82,17 @@ class AFNIALFF(metaclass=Singleton):
82
82
  """
83
83
  logger.debug("Creating cache for ALFF computation via AFNI")
84
84
 
85
- # Create component-scoped tempdir
86
- tempdir = WorkDirManager().get_tempdir(prefix="afni_alff+falff")
87
-
88
- # Save target data to a component-scoped tempfile
89
- nifti_in_file_path = tempdir / "input.nii" # needs to be .nii
90
- nib.save(data, nifti_in_file_path)
85
+ # Create element-scoped tempdir
86
+ element_tempdir = WorkDirManager().get_element_tempdir(
87
+ prefix="afni_lff"
88
+ )
91
89
 
92
90
  # Set 3dRSFC command
93
- alff_falff_out_path_prefix = tempdir / "alff_falff"
91
+ lff_out_path_prefix = element_tempdir / "output"
94
92
  bp_cmd = [
95
93
  "3dRSFC",
96
- f"-prefix {alff_falff_out_path_prefix.resolve()}",
97
- f"-input {nifti_in_file_path.resolve()}",
94
+ f"-prefix {lff_out_path_prefix.resolve()}",
95
+ f"-input {input_path.resolve()}",
98
96
  f"-band {highpass} {lowpass}",
99
97
  "-no_rsfa -nosat -nodetrend",
100
98
  ]
@@ -104,49 +102,48 @@ class AFNIALFF(metaclass=Singleton):
104
102
  # Call 3dRSFC
105
103
  run_ext_cmd(name="3dRSFC", cmd=bp_cmd)
106
104
 
107
- # Create element-scoped tempdir so that the ALFF and fALFF maps are
108
- # available later as nibabel stores file path reference for
109
- # loading on computation
110
- element_tempdir = WorkDirManager().get_element_tempdir(
111
- prefix="afni_alff_falff"
112
- )
113
-
105
+ # Read header to get output suffix
106
+ niimg = nib.load(input_path)
107
+ header = niimg.header
108
+ sform_code = header.get_sform(coded=True)[1]
109
+ if sform_code == 4:
110
+ output_suffix = "tlrc"
111
+ else:
112
+ output_suffix = "orig"
113
+ # Set params suffix
114
114
  params_suffix = f"_{highpass}_{lowpass}_{tr}"
115
115
 
116
116
  # Convert alff afni to nifti
117
- alff_afni_to_nifti_out_path = (
118
- element_tempdir / f"alff{params_suffix}_output.nii"
117
+ alff_nifti_out_path = (
118
+ element_tempdir / f"output_alff{params_suffix}.nii"
119
119
  ) # needs to be .nii
120
120
  convert_alff_cmd = [
121
121
  "3dAFNItoNIFTI",
122
- f"-prefix {alff_afni_to_nifti_out_path.resolve()}",
123
- f"{alff_falff_out_path_prefix}_ALFF+orig.BRIK",
122
+ f"-prefix {alff_nifti_out_path.resolve()}",
123
+ f"{lff_out_path_prefix}_ALFF+{output_suffix}.BRIK",
124
124
  ]
125
125
  # Call 3dAFNItoNIFTI
126
126
  run_ext_cmd(name="3dAFNItoNIFTI", cmd=convert_alff_cmd)
127
127
 
128
128
  # Convert falff afni to nifti
129
- falff_afni_to_nifti_out_path = (
130
- element_tempdir / f"falff{params_suffix}_output.nii"
129
+ falff_nifti_out_path = (
130
+ element_tempdir / f"output_falff{params_suffix}.nii"
131
131
  ) # needs to be .nii
132
132
  convert_falff_cmd = [
133
133
  "3dAFNItoNIFTI",
134
- f"-prefix {falff_afni_to_nifti_out_path.resolve()}",
135
- f"{alff_falff_out_path_prefix}_fALFF+orig.BRIK",
134
+ f"-prefix {falff_nifti_out_path.resolve()}",
135
+ f"{lff_out_path_prefix}_fALFF+{output_suffix}.BRIK",
136
136
  ]
137
137
  # Call 3dAFNItoNIFTI
138
138
  run_ext_cmd(name="3dAFNItoNIFTI", cmd=convert_falff_cmd)
139
139
 
140
140
  # Load nifti
141
- alff_data = nib.load(alff_afni_to_nifti_out_path)
142
- falff_data = nib.load(falff_afni_to_nifti_out_path)
143
-
144
- # Delete tempdir
145
- WorkDirManager().delete_tempdir(tempdir)
141
+ alff_data = nib.load(alff_nifti_out_path)
142
+ falff_data = nib.load(falff_nifti_out_path)
146
143
 
147
144
  return (
148
145
  alff_data,
149
146
  falff_data,
150
- alff_afni_to_nifti_out_path,
151
- falff_afni_to_nifti_out_path,
152
- ) # type: ignore
147
+ alff_nifti_out_path,
148
+ falff_nifti_out_path,
149
+ )
@@ -47,7 +47,7 @@ class JuniferALFF(metaclass=Singleton):
47
47
  @lru_cache(maxsize=None, typed=True)
48
48
  def compute(
49
49
  self,
50
- data: "Nifti1Image",
50
+ input_path: Path,
51
51
  highpass: float,
52
52
  lowpass: float,
53
53
  tr: Optional[float],
@@ -56,8 +56,8 @@ class JuniferALFF(metaclass=Singleton):
56
56
 
57
57
  Parameters
58
58
  ----------
59
- data : 4D Niimg-like object
60
- Images to process.
59
+ input_path : pathlib.Path
60
+ Path to the input data.
61
61
  highpass : positive float
62
62
  Highpass cutoff frequency.
63
63
  lowpass : positive float
@@ -80,9 +80,10 @@ class JuniferALFF(metaclass=Singleton):
80
80
  logger.debug("Creating cache for ALFF computation via junifer")
81
81
 
82
82
  # Get scan data
83
- niimg_data = data.get_fdata().copy()
83
+ niimg = nib.load(input_path)
84
+ niimg_data = niimg.get_fdata().copy()
84
85
  if tr is None:
85
- tr = float(data.header["pixdim"][4]) # type: ignore
86
+ tr = float(niimg.header["pixdim"][4]) # type: ignore
86
87
  logger.info(f"`tr` not provided, using `tr` from header: {tr}")
87
88
 
88
89
  # Bandpass the data within the lowpass and highpass cutoff freqs
@@ -120,19 +121,17 @@ class JuniferALFF(metaclass=Singleton):
120
121
  # Calculate ALFF
121
122
  alff = numerator / np.sqrt(niimg_data.shape[-1])
122
123
  alff_data = nimg.new_img_like(
123
- ref_niimg=data,
124
+ ref_niimg=niimg,
124
125
  data=alff,
125
126
  )
126
127
  falff_data = nimg.new_img_like(
127
- ref_niimg=data,
128
+ ref_niimg=niimg,
128
129
  data=falff,
129
130
  )
130
131
 
131
- # Create element-scoped tempdir so that the ALFF and fALFF maps are
132
- # available later as nibabel stores file path reference for
133
- # loading on computation
132
+ # Create element-scoped tempdir
134
133
  element_tempdir = WorkDirManager().get_element_tempdir(
135
- prefix="junifer_alff+falff"
134
+ prefix="junifer_lff"
136
135
  )
137
136
  output_alff_path = element_tempdir / "output_alff.nii.gz"
138
137
  output_falff_path = element_tempdir / "output_falff.nii.gz"
@@ -146,7 +146,7 @@ class ALFFBase(BaseMarker):
146
146
  estimator = JuniferALFF()
147
147
  # Compute ALFF + fALFF
148
148
  alff, falff, alff_path, falff_path = estimator.compute( # type: ignore
149
- data=input_data["data"],
149
+ input_path=input_data["path"],
150
150
  highpass=self.highpass,
151
151
  lowpass=self.lowpass,
152
152
  tr=self.tr,
@@ -69,7 +69,9 @@ def test_ALFFSpheres(caplog: pytest.LogCaptureFixture, tmp_path: Path) -> None:
69
69
  # Fit transform marker on data
70
70
  output = marker.fit_transform(element_data)
71
71
 
72
- assert "Creating cache" in caplog.text
72
+ # Tests for ALFFParcels run before this with the same data and that
73
+ # should create the cache
74
+ assert "Calculating ALFF and fALFF" in caplog.text
73
75
 
74
76
  # Get BOLD output
75
77
  assert "BOLD" in output
@@ -50,7 +50,7 @@ class AFNIReHo(metaclass=Singleton):
50
50
  @lru_cache(maxsize=None, typed=True)
51
51
  def compute(
52
52
  self,
53
- data: "Nifti1Image",
53
+ input_path: Path,
54
54
  nneigh: int = 27,
55
55
  neigh_rad: Optional[float] = None,
56
56
  neigh_x: Optional[float] = None,
@@ -65,8 +65,8 @@ class AFNIReHo(metaclass=Singleton):
65
65
 
66
66
  Parameters
67
67
  ----------
68
- data : 4D Niimg-like object
69
- Images to process.
68
+ input_path : pathlib.Path
69
+ Path to the input data.
70
70
  nneigh : {7, 19, 27}, optional
71
71
  Number of voxels in the neighbourhood, inclusive. Can be:
72
72
 
@@ -128,19 +128,17 @@ class AFNIReHo(metaclass=Singleton):
128
128
  """
129
129
  logger.debug("Creating cache for ReHo computation via AFNI")
130
130
 
131
- # Create component-scoped tempdir
132
- tempdir = WorkDirManager().get_tempdir(prefix="afni_reho")
133
-
134
- # Save target data to a component-scoped tempfile
135
- nifti_in_file_path = tempdir / "input.nii" # needs to be .nii
136
- nib.save(data, nifti_in_file_path)
131
+ # Create element-scoped tempdir
132
+ element_tempdir = WorkDirManager().get_element_tempdir(
133
+ prefix="afni_reho"
134
+ )
137
135
 
138
136
  # Set 3dReHo command
139
- reho_out_path_prefix = tempdir / "reho"
137
+ reho_out_path_prefix = element_tempdir / "output"
140
138
  reho_cmd = [
141
139
  "3dReHo",
142
140
  f"-prefix {reho_out_path_prefix.resolve()}",
143
- f"-inset {nifti_in_file_path.resolve()}",
141
+ f"-inset {input_path.resolve()}",
144
142
  ]
145
143
  # Check ellipsoidal / cuboidal volume arguments
146
144
  if neigh_rad:
@@ -164,28 +162,28 @@ class AFNIReHo(metaclass=Singleton):
164
162
  # Call 3dReHo
165
163
  run_ext_cmd(name="3dReHo", cmd=reho_cmd)
166
164
 
167
- # Create element-scoped tempdir so that the ReHo map is
168
- # available later as nibabel stores file path reference for
169
- # loading on computation
170
- element_tempdir = WorkDirManager().get_element_tempdir(
171
- prefix="afni_reho"
172
- )
165
+ # Read header to get output suffix
166
+ niimg = nib.load(input_path)
167
+ header = niimg.header
168
+ sform_code = header.get_sform(coded=True)[1]
169
+ if sform_code == 4:
170
+ output_suffix = "tlrc"
171
+ else:
172
+ output_suffix = "orig"
173
+
173
174
  # Convert afni to nifti
174
- reho_afni_to_nifti_out_path = (
175
+ reho_nifti_out_path = (
175
176
  element_tempdir / "output.nii" # needs to be .nii
176
177
  )
177
178
  convert_cmd = [
178
179
  "3dAFNItoNIFTI",
179
- f"-prefix {reho_afni_to_nifti_out_path.resolve()}",
180
- f"{reho_out_path_prefix}+orig.BRIK",
180
+ f"-prefix {reho_nifti_out_path.resolve()}",
181
+ f"{reho_out_path_prefix}+{output_suffix}.BRIK",
181
182
  ]
182
183
  # Call 3dAFNItoNIFTI
183
184
  run_ext_cmd(name="3dAFNItoNIFTI", cmd=convert_cmd)
184
185
 
185
186
  # Load nifti
186
- output_data = nib.load(reho_afni_to_nifti_out_path)
187
-
188
- # Delete tempdir
189
- WorkDirManager().delete_tempdir(tempdir)
187
+ output_data = nib.load(reho_nifti_out_path)
190
188
 
191
- return output_data, reho_afni_to_nifti_out_path # type: ignore
189
+ return output_data, reho_nifti_out_path
@@ -48,15 +48,15 @@ class JuniferReHo(metaclass=Singleton):
48
48
  @lru_cache(maxsize=None, typed=True)
49
49
  def compute(
50
50
  self,
51
- data: "Nifti1Image",
51
+ input_path: Path,
52
52
  nneigh: int = 27,
53
53
  ) -> tuple["Nifti1Image", Path]:
54
54
  """Compute ReHo map.
55
55
 
56
56
  Parameters
57
57
  ----------
58
- data : 4D Niimg-like object
59
- Images to process.
58
+ input_path : pathlib.Path
59
+ Path to the input data.
60
60
  nneigh : {7, 19, 27, 125}, optional
61
61
  Number of voxels in the neighbourhood, inclusive. Can be:
62
62
 
@@ -89,7 +89,8 @@ class JuniferReHo(metaclass=Singleton):
89
89
  logger.debug("Creating cache for ReHo computation via junifer")
90
90
 
91
91
  # Get scan data
92
- niimg_data = data.get_fdata()
92
+ niimg = nib.load(input_path)
93
+ niimg_data = niimg.get_fdata().copy()
93
94
  # Get scan dimensions
94
95
  n_x, n_y, n_z, _ = niimg_data.shape
95
96
 
@@ -119,7 +120,7 @@ class JuniferReHo(metaclass=Singleton):
119
120
  # after #299 is merged
120
121
  # Calculate whole brain mask
121
122
  mni152_whole_brain_mask = nmask.compute_brain_mask(
122
- target_img=data,
123
+ target_img=niimg,
123
124
  threshold=0.5,
124
125
  mask_type="whole-brain",
125
126
  )
@@ -227,7 +228,7 @@ class JuniferReHo(metaclass=Singleton):
227
228
 
228
229
  # Create new image like target image
229
230
  output_data = nimg.new_img_like(
230
- ref_niimg=data,
231
+ ref_niimg=niimg,
231
232
  data=reho_map,
232
233
  copy_header=False,
233
234
  )
@@ -125,7 +125,7 @@ class ReHoBase(BaseMarker):
125
125
  estimator = JuniferReHo()
126
126
  # Compute reho
127
127
  reho_map, reho_map_path = estimator.compute( # type: ignore
128
- data=input_data["data"],
128
+ input_path=input_data["path"],
129
129
  **reho_params,
130
130
  )
131
131
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: junifer
3
- Version: 0.0.6.dev317
3
+ Version: 0.0.6.dev324
4
4
  Summary: JUelich NeuroImaging FEature extractoR
5
5
  Author-email: Fede Raimondo <f.raimondo@fz-juelich.de>, Synchon Mandal <s.mandal@fz-juelich.de>
6
6
  Maintainer-email: Fede Raimondo <f.raimondo@fz-juelich.de>, Synchon Mandal <s.mandal@fz-juelich.de>
@@ -1,6 +1,6 @@
1
1
  junifer/__init__.py,sha256=2McgH1yNue6Z1V26-uN_mfMjbTcx4CLhym-DMBl5xA4,266
2
2
  junifer/__init__.pyi,sha256=SsTvgq2Dod6UqJN96GH1lCphH6hJQQurEJHGNhHjGUI,508
3
- junifer/_version.py,sha256=ysdlII3ZUlFBiHIzSCvasFtc1CMEpYMsiJEwLoFxjKQ,428
3
+ junifer/_version.py,sha256=Mek99XWm9XI8ealUwe-651JH0dQXcrlgJtYJdIejdA4,428
4
4
  junifer/conftest.py,sha256=PWYkkRDU8ly2lYwv7VBKMHje4et6HX7Yey3Md_I2KbA,613
5
5
  junifer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  junifer/stats.py,sha256=e9aaagMGtgpRfW3Wdpz9ocpnYld1IWylCDcjFUgX9Mk,6225
@@ -208,14 +208,14 @@ junifer/markers/complexity/tests/test_sample_entropy.py,sha256=rfbiguVq7CUwYIvYB
208
208
  junifer/markers/complexity/tests/test_weighted_perm_entropy.py,sha256=yDWKEaUbxrnrG6J2NlktLfwSBre5OuXd63kEof7t8PM,2373
209
209
  junifer/markers/falff/__init__.py,sha256=qxdx_3FsVrn7h3gtbocK0ZmvqZwPQZGKuVkPm31ejNM,217
210
210
  junifer/markers/falff/__init__.pyi,sha256=X-q2zBjUX0imQ37yN2Cg5gKfDvq8sh_9y2hRH4g5ufY,120
211
- junifer/markers/falff/_afni_falff.py,sha256=D_hhT-rfWXeIe-Pwh4pK2O7N9Q07VyMOUHeAz6Ooudo,4518
212
- junifer/markers/falff/_junifer_falff.py,sha256=TnZ6T8u0f0YitJ7KRk4gMcC1tv6UW8m4VVcvcjGRsL0,4450
213
- junifer/markers/falff/falff_base.py,sha256=XZcBfXA74tWrW--uCALkRLl1tB7toR3_HfzPJUblz8g,4909
211
+ junifer/markers/falff/_afni_falff.py,sha256=PYkSOFMyaHoGYDvmBjKLW1ALyWBe7yI36JBqZ71ji2c,4223
212
+ junifer/markers/falff/_junifer_falff.py,sha256=1PsavcopVjPtfmPZsnNi5ynl2GTfnCx9qjuKDb7YejE,4347
213
+ junifer/markers/falff/falff_base.py,sha256=WtJTMRn_Vmv9RZaaeLeyZpCsQc8QgB3UqIPWsUI3Lh4,4915
214
214
  junifer/markers/falff/falff_parcels.py,sha256=sSb6QLaJKpL0GCTRWW3RnpOZCoy1f9lDLgJ0I_W_LlM,6017
215
215
  junifer/markers/falff/falff_spheres.py,sha256=GrakJYPB01y9BNBXM8WzWaae0mC-S06txiycvfBGcj0,6656
216
216
  junifer/markers/falff/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
217
217
  junifer/markers/falff/tests/test_falff_parcels.py,sha256=Z3n1i8dkYbdXgouUjfIif9yLv5MubBEdrtAA-a6kRcc,4349
218
- junifer/markers/falff/tests/test_falff_spheres.py,sha256=-VLEvFaF8CMCN_7FLYCSfP7MMjy-gm1Zgu13je5Pku8,4373
218
+ junifer/markers/falff/tests/test_falff_spheres.py,sha256=PGsxFjMxsH8HxIHVtdcQcX8suFa18ma_12Almknzn88,4503
219
219
  junifer/markers/functional_connectivity/__init__.py,sha256=dGTn69eS7a3rylMQh_wKlO28UmYGjsoDEGu4q5sgQFA,230
220
220
  junifer/markers/functional_connectivity/__init__.pyi,sha256=qfw6WVyE65u-5NZNi0xPa8zZVtkRfFvwyl4jHH2Xl00,539
221
221
  junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py,sha256=uLdVGywmL7qrzloh1YBL4g4tPiamA47MgHF2DQH0JTU,5733
@@ -233,10 +233,10 @@ junifer/markers/functional_connectivity/tests/test_functional_connectivity_parce
233
233
  junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py,sha256=A9OtFdndiSGOcPHH-QLPh6qoiD03A6KjM_emwxAlPg0,4145
234
234
  junifer/markers/reho/__init__.py,sha256=WZf4A0XaRThjl8SlFOhvTLUfhTHp5koLxZgowsgTSAE,211
235
235
  junifer/markers/reho/__init__.pyi,sha256=_aFb-Ry_EP2OMU6xRL4GlfuDpSl_egHllL-fz7vXjcE,118
236
- junifer/markers/reho/_afni_reho.py,sha256=YBqNYipZO8EFM4Jmek_A36zr9n4nTR0RVDPpxjJKLxM,6466
237
- junifer/markers/reho/_junifer_reho.py,sha256=86oBH8UtWsHJJGz2-uRXAjdGNHvaSV6Xu1v7-9AJqLs,9340
236
+ junifer/markers/reho/_afni_reho.py,sha256=SOWR5y9AYKfw1wj2Z4Wy7ckMUVTmeS378bayvPPVqqo,6225
237
+ junifer/markers/reho/_junifer_reho.py,sha256=14ObaRa2-0JzcoYLJyhnx4bgPCpTdciDXmrn9-gPv20,9387
238
238
  junifer/markers/reho/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
239
- junifer/markers/reho/reho_base.py,sha256=Amji7hNtkT9D-teJ2tTzDsVHKRXETDwhICDKa8ZGehY,4071
239
+ junifer/markers/reho/reho_base.py,sha256=Q88TbhIM4rQWdeQPLwwxwZ9DrR8l09orD1rdTkSYDtc,4077
240
240
  junifer/markers/reho/reho_parcels.py,sha256=UE1ia3uqbmTcZMc_FI625xVPLxBYvwpfrcvhekopbkI,6392
241
241
  junifer/markers/reho/reho_spheres.py,sha256=FCC2qncC85Kd82hg-MOu4T7NAKEkXHUaCcwC9taau9Y,6996
242
242
  junifer/markers/reho/tests/test_reho_parcels.py,sha256=bRtDi91qRcRYaRqqQjuSU6NuNz-KwLVCoTYo-e5VmsI,4075
@@ -341,10 +341,10 @@ junifer/utils/tests/test_config.py,sha256=7ltIXuwb_W4Mv_1dxQWyiyM10XgUAfsWKV6D_i
341
341
  junifer/utils/tests/test_fs.py,sha256=WQS7cKlKEZ742CIuiOYYpueeAhY9PqlastfDVpVVtvE,923
342
342
  junifer/utils/tests/test_helpers.py,sha256=k5qqfxK8dFyuewTJyR1Qn6-nFaYNuVr0ysc18bfPjyU,929
343
343
  junifer/utils/tests/test_logging.py,sha256=duO4ou365hxwa_kwihFtKPLaL6LC5XHiyhOijrrngbA,8009
344
- junifer-0.0.6.dev317.dist-info/AUTHORS.rst,sha256=rmULKpchpSol4ExWFdm-qu4fkpSZPYqIESVJBZtGb6E,163
345
- junifer-0.0.6.dev317.dist-info/LICENSE.md,sha256=MqCnOBu8uXsEOzRZWh9EBVfVz-kE9NkXcLCrtGXo2yU,34354
346
- junifer-0.0.6.dev317.dist-info/METADATA,sha256=aQiIDdr_Ov-v0da-VOALNQiJe1FIGM-Xz32tTTqlW00,8429
347
- junifer-0.0.6.dev317.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
348
- junifer-0.0.6.dev317.dist-info/entry_points.txt,sha256=6O8ru0BP-SP7YMUZiizFNoaZ2HvJpadO2G7nKk4PwjI,48
349
- junifer-0.0.6.dev317.dist-info/top_level.txt,sha256=4bAq1R2QFQ4b3hohjys2JBvxrl0GKk5LNFzYvz9VGcA,8
350
- junifer-0.0.6.dev317.dist-info/RECORD,,
344
+ junifer-0.0.6.dev324.dist-info/AUTHORS.rst,sha256=rmULKpchpSol4ExWFdm-qu4fkpSZPYqIESVJBZtGb6E,163
345
+ junifer-0.0.6.dev324.dist-info/LICENSE.md,sha256=MqCnOBu8uXsEOzRZWh9EBVfVz-kE9NkXcLCrtGXo2yU,34354
346
+ junifer-0.0.6.dev324.dist-info/METADATA,sha256=a_1zgab7_sp4jn5_jM6ZrKnJXL1InFZpK9zj39EUtVY,8429
347
+ junifer-0.0.6.dev324.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
348
+ junifer-0.0.6.dev324.dist-info/entry_points.txt,sha256=6O8ru0BP-SP7YMUZiizFNoaZ2HvJpadO2G7nKk4PwjI,48
349
+ junifer-0.0.6.dev324.dist-info/top_level.txt,sha256=4bAq1R2QFQ4b3hohjys2JBvxrl0GKk5LNFzYvz9VGcA,8
350
+ junifer-0.0.6.dev324.dist-info/RECORD,,