seppy 0.1.16__py3-none-any.whl → 0.1.18__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.
Potentially problematic release.
This version of seppy might be problematic. Click here for more details.
- seppy/loader/psp.py +2 -2
- seppy/loader/soho.py +4 -4
- seppy/loader/wind.py +16 -4
- seppy/tests/test_loader.py +14 -5
- seppy/tools/__init__.py +12 -13
- seppy/version.py +1 -1
- {seppy-0.1.16.dist-info → seppy-0.1.18.dist-info}/METADATA +6 -6
- {seppy-0.1.16.dist-info → seppy-0.1.18.dist-info}/RECORD +11 -11
- {seppy-0.1.16.dist-info → seppy-0.1.18.dist-info}/WHEEL +1 -1
- {seppy-0.1.16.dist-info → seppy-0.1.18.dist-info}/LICENSE.rst +0 -0
- {seppy-0.1.16.dist-info → seppy-0.1.18.dist-info}/top_level.txt +0 -0
seppy/loader/psp.py
CHANGED
|
@@ -410,8 +410,8 @@ def calc_av_en_flux_PSP_EPIHI(df, energies, en_channel, species, instrument, vie
|
|
|
410
410
|
flux_key = 'H_Flux'
|
|
411
411
|
en_str = energies[f'{species_str}_ENERGY_LABL']
|
|
412
412
|
if type(en_channel) == list:
|
|
413
|
-
energy_low = en_str[en_channel[0]][0].split('-')[0]
|
|
414
|
-
energy_up = en_str[en_channel[-1]][0].split('-')[-1]
|
|
413
|
+
energy_low = en_str[en_channel[0]].flat[0].split('-')[0]
|
|
414
|
+
energy_up = en_str[en_channel[-1]].flat[0].split('-')[-1]
|
|
415
415
|
en_channel_string = energy_low + '-' + energy_up
|
|
416
416
|
|
|
417
417
|
DE = energies[f'{species_str}_ENERGY_DELTAPLUS']+energies[f'{species_str}_ENERGY_DELTAMINUS']
|
seppy/loader/soho.py
CHANGED
|
@@ -39,13 +39,13 @@ def _get_metadata(dataset, path_to_cdf):
|
|
|
39
39
|
if dataset=='SOHO_ERNE-LED_L2-1MIN':
|
|
40
40
|
alpha = 'A'
|
|
41
41
|
m = 'L'
|
|
42
|
-
metadata = {'He_E_label': cdf.varget('He_E_label')
|
|
42
|
+
metadata = {'He_E_label': cdf.varget('He_E_label').flatten(),
|
|
43
43
|
'He_energy': cdf.varget('He_energy'),
|
|
44
44
|
'He_energy_delta': cdf.varget('He_energy_delta'),
|
|
45
45
|
f'{alpha}{m}_LABL': cdf.varattsget(f'{alpha}{m}')['LABLAXIS'],
|
|
46
46
|
f'{alpha}{m}_UNITS': cdf.varattsget(f'{alpha}{m}')['UNITS'],
|
|
47
47
|
f'{alpha}{m}_FILLVAL': cdf.varattsget(f'{alpha}{m}')['FILLVAL'],
|
|
48
|
-
'P_E_label': cdf.varget('P_E_label')
|
|
48
|
+
'P_E_label': cdf.varget('P_E_label').flatten(),
|
|
49
49
|
'P_energy': cdf.varget('P_energy'),
|
|
50
50
|
'P_energy_delta': cdf.varget('P_energy_delta'),
|
|
51
51
|
f'P{m}_LABL': cdf.varattsget(f'P{m}')['LABLAXIS'],
|
|
@@ -53,14 +53,14 @@ def _get_metadata(dataset, path_to_cdf):
|
|
|
53
53
|
f'P{m}_FILLVAL': cdf.varattsget(f'P{m}')['FILLVAL'],
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
channels_dict_df_He = pd.DataFrame(cdf.varget('He_E_label')
|
|
56
|
+
channels_dict_df_He = pd.DataFrame(cdf.varget('He_E_label').flatten(), columns=['ch_strings'])
|
|
57
57
|
channels_dict_df_He['lower_E'] = cdf.varget("He_energy")-cdf.varget("He_energy_delta")
|
|
58
58
|
channels_dict_df_He['upper_E'] = cdf.varget("He_energy")+cdf.varget("He_energy_delta")
|
|
59
59
|
channels_dict_df_He['DE'] = cdf.varget("He_energy_delta")
|
|
60
60
|
# channels_dict_df_He['mean_E'] = np.sqrt(channels_dict_df_He['upper_E'] * channels_dict_df_He['lower_E'])
|
|
61
61
|
channels_dict_df_He['mean_E'] = cdf.varget("He_energy")
|
|
62
62
|
|
|
63
|
-
channels_dict_df_p = pd.DataFrame(cdf.varget('P_E_label')
|
|
63
|
+
channels_dict_df_p = pd.DataFrame(cdf.varget('P_E_label').flatten(), columns=['ch_strings'])
|
|
64
64
|
channels_dict_df_p['lower_E'] = cdf.varget("P_energy")-cdf.varget("P_energy_delta")
|
|
65
65
|
channels_dict_df_p['upper_E'] = cdf.varget("P_energy")+cdf.varget("P_energy_delta")
|
|
66
66
|
channels_dict_df_p['DE'] = cdf.varget("P_energy_delta")
|
seppy/loader/wind.py
CHANGED
|
@@ -180,6 +180,9 @@ def wind3dp_download(dataset, startdate, enddate, path=None, **kwargs):
|
|
|
180
180
|
if not os.path.exists(f):
|
|
181
181
|
# downloaded_file = Fido.fetch(result[0][i], path=path, max_conn=max_conn)
|
|
182
182
|
downloaded_file = wind3dp_single_download(files[i], path=path)
|
|
183
|
+
if downloaded_file == []:
|
|
184
|
+
print('Trying download from CDAWeb...')
|
|
185
|
+
downloaded_file = Fido.fetch(result[0][i], path=path) #, max_conn=max_conn)
|
|
183
186
|
|
|
184
187
|
except (RuntimeError, IndexError):
|
|
185
188
|
print(f'Unable to obtain "{dataset}" data for {startdate}-{enddate}!')
|
|
@@ -279,22 +282,31 @@ def wind3dp_load(dataset, startdate, enddate, resample="1min", multi_index=True,
|
|
|
279
282
|
metacdf = cdflib.CDF(path_to_metafile)
|
|
280
283
|
|
|
281
284
|
e_mean = df.filter(like='ENERGY_').mean()
|
|
282
|
-
# ∼30% ΔE/E => ΔE = 0.3*E
|
|
283
285
|
# from Table 3 of Wilson et al. 2021, https://doi.org/10.1029/2020RG000714
|
|
284
|
-
|
|
286
|
+
# ∼30% ΔE/E => ΔE = 0.3*E
|
|
287
|
+
if dataset in ['WI_SFSP_3DP', 'WI_SFPD_3DP', 'WI_SOSP_3DP', 'WI_SOPD_3DP']:
|
|
288
|
+
delta_e = 0.3 * e_mean
|
|
289
|
+
# ∼20% ΔE/E => ΔE = 0.2*E
|
|
290
|
+
elif dataset in ['WI_ELSP_3DP', 'WI_ELPD_3DP', 'WI_EHSP_3DP', 'WI_EHPD_3DP']:
|
|
291
|
+
delta_e = 0.2 * e_mean
|
|
285
292
|
e_low = e_mean - delta_e
|
|
286
293
|
e_high = e_mean + delta_e
|
|
287
294
|
energies = pd.concat([e_mean, delta_e, e_low, e_high], axis=1, keys=['mean_E', 'DE', 'lower_E', 'upper_E'])
|
|
288
295
|
energies['Bins_Text']= np.around(e_low/1e3, 2).astype('string') +' - '+ np.around(e_high/1e3, 2).astype('string') + ' keV'
|
|
289
296
|
|
|
290
297
|
meta = {'channels_dict_df': energies,
|
|
291
|
-
'APPROX_ENERGY_LABELS': metacdf.varget('APPROX_ENERGY_LABELS'),
|
|
292
298
|
'ENERGY_UNITS': metacdf.varattsget('ENERGY')['UNITS'],
|
|
293
299
|
'FLUX_UNITS': metacdf.varattsget('FLUX')['UNITS'],
|
|
294
300
|
'FLUX_FILLVAL': metacdf.varattsget('FLUX')['FILLVAL'],
|
|
295
|
-
'FLUX_LABELS': metacdf.varget('FLUX_ENERGY_LABL'),
|
|
296
301
|
}
|
|
297
302
|
|
|
303
|
+
# for SFSP, SOSP, SFPD, SFSP:
|
|
304
|
+
try:
|
|
305
|
+
meta['APPROX_ENERGY_LABELS'] = metacdf.varget('APPROX_ENERGY_LABELS')
|
|
306
|
+
meta['FLUX_LABELS'] = metacdf.varget('FLUX_ENERGY_LABL')
|
|
307
|
+
except:
|
|
308
|
+
pass
|
|
309
|
+
|
|
298
310
|
# create multi-index data frame of flux
|
|
299
311
|
if multi_index:
|
|
300
312
|
if dataset == 'WI_SFPD_3DP' or dataset == 'WI_SOPD_3DP':
|
seppy/tests/test_loader.py
CHANGED
|
@@ -14,7 +14,7 @@ def test_psp_load_online():
|
|
|
14
14
|
enddate="2021/06/01", path=None, resample="1min")
|
|
15
15
|
assert isinstance(df, pd.DataFrame)
|
|
16
16
|
assert df.shape == (48, 136)
|
|
17
|
-
assert meta['H_ENERGY_LABL'][0]
|
|
17
|
+
assert meta['H_ENERGY_LABL'].flatten()[0] == ' 6.7 - 8.0 MeV'
|
|
18
18
|
# Check that fillvals are replaced by NaN
|
|
19
19
|
assert np.sum(np.isnan(df['B_H_Uncertainty_14'])) == 48
|
|
20
20
|
#
|
|
@@ -71,6 +71,15 @@ def test_soho_ephin_load_offline():
|
|
|
71
71
|
assert np.sum(np.isnan(df['E1300'])) == 444
|
|
72
72
|
|
|
73
73
|
|
|
74
|
+
def test_soho_erne_load_online():
|
|
75
|
+
df, meta = soho_load(dataset='SOHO_ERNE-HED_L2-1MIN', startdate="2021/04/16", enddate="2021/04/17",
|
|
76
|
+
path=None, resample="1min", pos_timestamp='center')
|
|
77
|
+
assert isinstance(df, pd.DataFrame)
|
|
78
|
+
assert df.shape == (1145, 41)
|
|
79
|
+
assert meta['channels_dict_df_p']['ch_strings'].iloc[9] == '100 - 130 MeV'
|
|
80
|
+
assert df['PHC_9'].sum() == 1295.0
|
|
81
|
+
|
|
82
|
+
|
|
74
83
|
def test_solo_mag_load_online():
|
|
75
84
|
df = mag_load("2021/07/12", "2021/07/13", level='l2', data_type='normal-1-minute', frame='rtn', path=None)
|
|
76
85
|
assert isinstance(df, pd.DataFrame)
|
|
@@ -93,7 +102,7 @@ def test_stereo_het_load_online():
|
|
|
93
102
|
path=None, resample="1min", pos_timestamp='center')
|
|
94
103
|
assert isinstance(df, pd.DataFrame)
|
|
95
104
|
assert df.shape == (1440, 28)
|
|
96
|
-
assert meta['Proton_Bins_Text'][0]
|
|
105
|
+
assert meta['Proton_Bins_Text'].flatten()[0] == '13.6 - 15.1 MeV '
|
|
97
106
|
assert np.sum(np.isnan(df['Electron_Flux_0'])) == 0
|
|
98
107
|
|
|
99
108
|
|
|
@@ -105,7 +114,7 @@ def test_stereo_het_load_offline():
|
|
|
105
114
|
path=path, resample="1min", pos_timestamp=None)
|
|
106
115
|
assert isinstance(df, pd.DataFrame)
|
|
107
116
|
assert df.shape == (1440, 28)
|
|
108
|
-
assert meta['Proton_Bins_Text'][0]
|
|
117
|
+
assert meta['Proton_Bins_Text'].flatten()[0] == '13.6 - 15.1 MeV '
|
|
109
118
|
assert np.sum(np.isnan(df['Electron_Flux_0'])) == 0
|
|
110
119
|
|
|
111
120
|
|
|
@@ -141,7 +150,7 @@ def test_wind3dp_load_online():
|
|
|
141
150
|
path=None)
|
|
142
151
|
assert isinstance(df, pd.DataFrame)
|
|
143
152
|
assert df.shape == (2880, 76)
|
|
144
|
-
assert meta['FLUX_LABELS'][0]
|
|
153
|
+
assert meta['FLUX_LABELS'].flatten()[0] == 'ElecNoFlux_Ch1_Often~27keV '
|
|
145
154
|
# Check that fillvals are replaced by NaN
|
|
146
155
|
assert np.sum(np.isnan(df['FLUX_E0', 'FLUX_E0_P0'])) == 169
|
|
147
156
|
|
|
@@ -158,6 +167,6 @@ def test_wind3dp_load_offline():
|
|
|
158
167
|
path=path)
|
|
159
168
|
assert isinstance(df, pd.DataFrame)
|
|
160
169
|
assert df.shape == (897, 15)
|
|
161
|
-
assert meta['FLUX_LABELS'][0]
|
|
170
|
+
assert meta['FLUX_LABELS'].flatten()[0] == 'ElecNoFlux_Ch1_Often~27keV '
|
|
162
171
|
# Check that fillvals are replaced by NaN
|
|
163
172
|
assert np.sum(np.isnan(df['FLUX_0'])) == 352
|
seppy/tools/__init__.py
CHANGED
|
@@ -675,9 +675,9 @@ class Event:
|
|
|
675
675
|
|
|
676
676
|
# An IndexError here is caused by invalid channel choice
|
|
677
677
|
try:
|
|
678
|
-
en_channel_string = en_str[en_channel[0]][0].split()[0] + ' - '\
|
|
679
|
-
+ en_str[en_channel[-1]][0].split()[2] + ' ' +\
|
|
680
|
-
en_str[en_channel[-1]][0].split()[3]
|
|
678
|
+
en_channel_string = en_str[en_channel[0]].flat[0].split()[0] + ' - '\
|
|
679
|
+
+ en_str[en_channel[-1]].flat[0].split()[2] + ' ' +\
|
|
680
|
+
en_str[en_channel[-1]].flat[0].split()[3]
|
|
681
681
|
|
|
682
682
|
except IndexError:
|
|
683
683
|
raise Exception(f"{en_channel} is an invalid channel or a combination of channels!")
|
|
@@ -781,9 +781,9 @@ class Event:
|
|
|
781
781
|
|
|
782
782
|
# An IndexError here is caused by invalid channel choice
|
|
783
783
|
try:
|
|
784
|
-
en_channel_string = en_str[en_channel[0]][0].split()[0] + ' - '\
|
|
785
|
-
+ en_str[en_channel[-1]][0].split()[2] + ' '\
|
|
786
|
-
+ en_str[en_channel[-1]][0].split()[3]
|
|
784
|
+
en_channel_string = en_str[en_channel[0]].flat[0].split()[0] + ' - '\
|
|
785
|
+
+ en_str[en_channel[-1]].flat[0].split()[2] + ' '\
|
|
786
|
+
+ en_str[en_channel[-1]].flat[0].split()[3]
|
|
787
787
|
|
|
788
788
|
except IndexError:
|
|
789
789
|
raise Exception(f"{en_channel} is an invalid channel or a combination of channels!")
|
|
@@ -2276,8 +2276,8 @@ class Event:
|
|
|
2276
2276
|
p_identifier = "Ion_Bins_Text" if self.sensor == "ept" else "H_Bins_Text" if self.sensor == "het" else "Bins_Text"
|
|
2277
2277
|
energy_ranges = energy_dict[p_identifier]
|
|
2278
2278
|
|
|
2279
|
-
# Each element in the list is also a list with len==1, so fix that
|
|
2280
|
-
energy_ranges =
|
|
2279
|
+
# Each element in the list is also a list with len==1 for cdflib < 1.3.3, so fix that
|
|
2280
|
+
energy_ranges = energy_ranges.flatten()
|
|
2281
2281
|
|
|
2282
2282
|
if self.spacecraft[:2] == "st":
|
|
2283
2283
|
|
|
@@ -2299,8 +2299,8 @@ class Event:
|
|
|
2299
2299
|
else:
|
|
2300
2300
|
energy_ranges = energy_dict["Proton_Bins_Text"]
|
|
2301
2301
|
|
|
2302
|
-
# Each element in the list is also a list with len==1, so fix that
|
|
2303
|
-
energy_ranges =
|
|
2302
|
+
# Each element in the list is also a list with len==1 for cdflib < 1.3.3, so fix that
|
|
2303
|
+
energy_ranges = energy_ranges.flatten()
|
|
2304
2304
|
|
|
2305
2305
|
if self.spacecraft == "soho":
|
|
2306
2306
|
if self.sensor.lower() == "erne":
|
|
@@ -2322,9 +2322,8 @@ class Event:
|
|
|
2322
2322
|
if self.species == 'p':
|
|
2323
2323
|
energy_ranges = energy_dict["H_ENERGY_LABL"]
|
|
2324
2324
|
|
|
2325
|
-
#
|
|
2326
|
-
|
|
2327
|
-
energy_ranges = [element[0] for element in energy_ranges]
|
|
2325
|
+
# Each element in the list is also a list with len==1 for cdflib < 1.3.3, so fix that
|
|
2326
|
+
energy_ranges = energy_ranges.flatten()
|
|
2328
2327
|
|
|
2329
2328
|
if self.sensor == "isois-epilo":
|
|
2330
2329
|
# The metadata of ISOIS-EPILO comes in a bit of complex form, so some handling is required
|
seppy/version.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: seppy
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.18
|
|
4
4
|
Summary: SEPpy
|
|
5
5
|
Home-page: https://github.com/serpentine-h2020/SEPpy
|
|
6
6
|
Author: Jan Gieseler
|
|
@@ -33,13 +33,13 @@ Requires-Dist: requests
|
|
|
33
33
|
Requires-Dist: solo-epd-loader
|
|
34
34
|
Requires-Dist: sunpy>=4.1.0
|
|
35
35
|
Provides-Extra: all
|
|
36
|
-
Provides-Extra: docs
|
|
37
|
-
Requires-Dist: sphinx; extra == "docs"
|
|
38
|
-
Requires-Dist: sphinx-automodapi; extra == "docs"
|
|
39
36
|
Provides-Extra: test
|
|
40
37
|
Requires-Dist: pytest; extra == "test"
|
|
41
38
|
Requires-Dist: pytest-doctestplus; extra == "test"
|
|
42
39
|
Requires-Dist: pytest-cov; extra == "test"
|
|
40
|
+
Provides-Extra: docs
|
|
41
|
+
Requires-Dist: sphinx; extra == "docs"
|
|
42
|
+
Requires-Dist: sphinx-automodapi; extra == "docs"
|
|
43
43
|
|
|
44
44
|
seppy
|
|
45
45
|
=====
|
|
@@ -51,7 +51,7 @@ seppy
|
|
|
51
51
|
.. |python version| image:: https://img.shields.io/pypi/pyversions/seppy?style=flat&logo=python
|
|
52
52
|
.. |zenodo doi| image:: https://zenodo.org/badge/451799504.svg
|
|
53
53
|
:target: https://zenodo.org/badge/latestdoi/451799504
|
|
54
|
-
.. |pytest| image:: https://github.com/serpentine-h2020/SEPpy/workflows/pytest/badge.svg
|
|
54
|
+
.. |pytest| image:: https://github.com/serpentine-h2020/SEPpy/actions/workflows/pytest.yml/badge.svg?branch=main
|
|
55
55
|
.. |codecov| image:: https://codecov.io/gh/serpentine-h2020/SEPpy/branch/main/graph/badge.svg?token=FYELM4Y7DF
|
|
56
56
|
:target: https://codecov.io/gh/serpentine-h2020/SEPpy
|
|
57
57
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
seppy/__init__.py,sha256=M8ZBbGj0r_XdNVLzaSXF38M4wyzAgUX32LXcSYh5O5A,254
|
|
2
|
-
seppy/version.py,sha256=
|
|
2
|
+
seppy/version.py,sha256=iEN0RD6JC3vSYLuRt3T4F3yoAV8psN9gc6NwhYUisdU,346
|
|
3
3
|
seppy/data/test/20230719_side0.csv,sha256=0htTQcdQydRc92bkO26lxK8tDRSeN6uov13VfsqmUFQ,72368
|
|
4
4
|
seppy/data/test/20230719_side1.csv,sha256=iHCfHmOIltJatncWpns_zq3ym_-2yRu0twmDvQDbmJw,72368
|
|
5
5
|
seppy/data/test/20230719_side2.csv,sha256=eYyEQX5fNDO4E57KwKN3bHs6u5-lHaAhIHt-3f20Urg,72368
|
|
@@ -10,20 +10,20 @@ seppy/data/test/solo_l2_mag-rtn-normal-1-minute_20210712_v01.cdf,sha256=Tc_-3YQM
|
|
|
10
10
|
seppy/data/test/sta_l1_het_20211028_v01.cdf,sha256=429TIPXSQI5heQVNqyRYLF7HUDZPByzk-xYf9IzSJ0U,215082
|
|
11
11
|
seppy/data/test/wi_sfsp_3dp_00000000_v01.cdf,sha256=ifAM0FiB2tepHmlpsqbotJMyQqSB3bwpPcKD6VhukFA,30939
|
|
12
12
|
seppy/data/test/wi_sfsp_3dp_20200213_v01.cdf,sha256=UiKcBPcWZkh3KIBigoZubTJ3Fw90E8p7XhbA9uW6VWk,67008
|
|
13
|
-
seppy/loader/psp.py,sha256=
|
|
14
|
-
seppy/loader/soho.py,sha256=
|
|
13
|
+
seppy/loader/psp.py,sha256=RDdagIW3ZnYAg3ra4wOKutxYuAJEI5S3UB7-v4e2rb0,31545
|
|
14
|
+
seppy/loader/soho.py,sha256=e6SzUD_WxUiaAMlWQcTGVvdER4Wv9rI-PtCCEoUHVRw,20290
|
|
15
15
|
seppy/loader/solo.py,sha256=Nst2ZJU2yH5NHsB6M_69ryVfzt978hbmqhxaHZJREVg,3054
|
|
16
16
|
seppy/loader/stereo.py,sha256=S0_IRIFbFxLH00bSIt1uZMflmuG5dAU5sKw0w9NL9oM,24583
|
|
17
|
-
seppy/loader/wind.py,sha256=
|
|
17
|
+
seppy/loader/wind.py,sha256=44zqFJsNn2fyLDi5SLkqTQO5iGCdVk5a8p7s28VVw6Y,18995
|
|
18
18
|
seppy/tests/__init__.py,sha256=1D-l3TVbwIZHY78A-sB7kc4ldldX8ZaEq-Ntph51WVw,108
|
|
19
|
-
seppy/tests/test_loader.py,sha256=
|
|
19
|
+
seppy/tests/test_loader.py,sha256=YAe0AnkmTQdVKvUvycClIrWrIVIRY_Ysu1AJTDyKR2U,8211
|
|
20
20
|
seppy/tests/test_tools.py,sha256=LQPekw-ddse88OYu-LWChFcJPT2SwGS7uEG1tKRLVok,31539
|
|
21
|
-
seppy/tools/__init__.py,sha256=
|
|
21
|
+
seppy/tools/__init__.py,sha256=g8trTp5SOthizu8iUz7jew5xN6q4Qn_j2rHU3kvDm8k,116074
|
|
22
22
|
seppy/tools/swaves.py,sha256=OcohPXLko0ik9FLyYMVkYxI75W4XzOKvQ2Ylnwi-wlQ,3139
|
|
23
23
|
seppy/tools/widgets.py,sha256=atQj9vvus0UgrUV6vlPcTdjpaidnERUevOp6FUmGLSI,6820
|
|
24
24
|
seppy/util/__init__.py,sha256=RMMeH37L75wwQPHb_-_-2Rk7lzlDtBC2K6lkWKtxAMg,15253
|
|
25
|
-
seppy-0.1.
|
|
26
|
-
seppy-0.1.
|
|
27
|
-
seppy-0.1.
|
|
28
|
-
seppy-0.1.
|
|
29
|
-
seppy-0.1.
|
|
25
|
+
seppy-0.1.18.dist-info/LICENSE.rst,sha256=SxptLPCIHKdfDjyguGdC7ai6Eze-Vz_t1jdqC8h19js,1473
|
|
26
|
+
seppy-0.1.18.dist-info/METADATA,sha256=PdfzrO7plNpS6UApUEeFtdM88Ut8GHN8J5CloJWrgGw,4398
|
|
27
|
+
seppy-0.1.18.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
28
|
+
seppy-0.1.18.dist-info/top_level.txt,sha256=G2Op1GREPmbCX81isNhYY_7ZZyLWLIm-MJC04J4Fgc4,6
|
|
29
|
+
seppy-0.1.18.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|