foxes 1.5__py3-none-any.whl → 1.5.1__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 foxes might be problematic. Click here for more details.
- examples/abl_states/run.py +58 -56
- examples/dyn_wakes/run.py +110 -118
- examples/field_data_nc/run.py +22 -20
- examples/multi_height/run.py +8 -6
- examples/scan_row/run.py +89 -87
- examples/sector_management/run.py +40 -38
- examples/states_lookup_table/run.py +6 -4
- examples/streamline_wakes/run.py +8 -6
- examples/timelines/run.py +100 -98
- examples/timeseries/run.py +71 -76
- examples/wind_rose/run.py +27 -25
- examples/yawed_wake/run.py +82 -80
- foxes/core/algorithm.py +1 -0
- foxes/engines/pool.py +1 -0
- foxes/utils/xarray_utils.py +20 -12
- {foxes-1.5.dist-info → foxes-1.5.1.dist-info}/METADATA +1 -1
- {foxes-1.5.dist-info → foxes-1.5.1.dist-info}/RECORD +21 -21
- {foxes-1.5.dist-info → foxes-1.5.1.dist-info}/WHEEL +0 -0
- {foxes-1.5.dist-info → foxes-1.5.1.dist-info}/entry_points.txt +0 -0
- {foxes-1.5.dist-info → foxes-1.5.1.dist-info}/licenses/LICENSE +0 -0
- {foxes-1.5.dist-info → foxes-1.5.1.dist-info}/top_level.txt +0 -0
examples/yawed_wake/run.py
CHANGED
|
@@ -114,93 +114,95 @@ if __name__ == "__main__":
|
|
|
114
114
|
wake_deflection=args.deflection,
|
|
115
115
|
partial_wakes=args.pwakes,
|
|
116
116
|
mbook=mbook,
|
|
117
|
-
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
with foxes.Engine.new(
|
|
120
|
+
engine_type=args.engine,
|
|
118
121
|
n_procs=args.n_cpus,
|
|
119
122
|
chunk_size_states=args.chunksize_states,
|
|
120
123
|
chunk_size_points=args.chunksize_points,
|
|
121
|
-
)
|
|
124
|
+
):
|
|
125
|
+
# calculate farm results
|
|
126
|
+
farm_results = algo.calc_farm()
|
|
127
|
+
print("\nResults data:\n", farm_results)
|
|
122
128
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
)
|
|
134
|
-
fig = next(g)
|
|
135
|
-
plt.show()
|
|
136
|
-
plt.close(fig)
|
|
129
|
+
if not args.nofig:
|
|
130
|
+
# xy horizontal flow plot
|
|
131
|
+
print("\nHorizontal flow figure output:")
|
|
132
|
+
o = foxes.output.FlowPlots2D(algo, farm_results)
|
|
133
|
+
g = o.gen_states_fig_xy(
|
|
134
|
+
args.var, resolution=10, xmin=-500, xmax=3000, rotor_color="red"
|
|
135
|
+
)
|
|
136
|
+
fig = next(g)
|
|
137
|
+
plt.show()
|
|
138
|
+
plt.close(fig)
|
|
137
139
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
140
|
+
# yz flow plot
|
|
141
|
+
print("\nVertical flow figure output:")
|
|
142
|
+
o = foxes.output.FlowPlots2D(algo, farm_results)
|
|
143
|
+
g = o.gen_states_fig_yz(
|
|
144
|
+
args.var,
|
|
145
|
+
resolution=5,
|
|
146
|
+
x=750,
|
|
147
|
+
ymin=-200,
|
|
148
|
+
ymax=200,
|
|
149
|
+
zmin=0,
|
|
150
|
+
zmax=250,
|
|
151
|
+
rotor_color="red",
|
|
152
|
+
verbosity=0,
|
|
153
|
+
)
|
|
154
|
+
fig = next(g)
|
|
155
|
+
plt.show()
|
|
156
|
+
plt.close(fig)
|
|
155
157
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
158
|
+
# add capacity and efficiency to farm results
|
|
159
|
+
o = foxes.output.FarmResultsEval(farm_results)
|
|
160
|
+
o.add_capacity(algo)
|
|
161
|
+
o.add_capacity(algo, ambient=True)
|
|
162
|
+
o.add_efficiency()
|
|
161
163
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
164
|
+
# state-turbine results
|
|
165
|
+
farm_df = farm_results.to_dataframe()
|
|
166
|
+
print("\nFarm results data:\n")
|
|
167
|
+
print(
|
|
168
|
+
farm_df[
|
|
169
|
+
[
|
|
170
|
+
FV.X,
|
|
171
|
+
FV.AMB_REWS,
|
|
172
|
+
FV.REWS,
|
|
173
|
+
FV.AMB_TI,
|
|
174
|
+
FV.TI,
|
|
175
|
+
FV.AMB_P,
|
|
176
|
+
FV.P,
|
|
177
|
+
FV.WD,
|
|
178
|
+
FV.YAW,
|
|
179
|
+
FV.YAWM,
|
|
180
|
+
]
|
|
178
181
|
]
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
print()
|
|
182
|
+
)
|
|
183
|
+
print()
|
|
182
184
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
185
|
+
# results by turbine
|
|
186
|
+
turbine_results = o.reduce_states(
|
|
187
|
+
{
|
|
188
|
+
FV.AMB_P: "weights",
|
|
189
|
+
FV.P: "weights",
|
|
190
|
+
FV.AMB_CAP: "weights",
|
|
191
|
+
FV.CAP: "weights",
|
|
192
|
+
}
|
|
193
|
+
)
|
|
194
|
+
turbine_results[FV.AMB_YLD] = o.calc_turbine_yield(
|
|
195
|
+
algo=algo, annual=True, ambient=True
|
|
196
|
+
)
|
|
197
|
+
turbine_results[FV.YLD] = o.calc_turbine_yield(algo=algo, annual=True)
|
|
198
|
+
turbine_results[FV.EFF] = turbine_results[FV.P] / turbine_results[FV.AMB_P]
|
|
199
|
+
print("\nResults by turbine:\n")
|
|
200
|
+
print(turbine_results)
|
|
199
201
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
202
|
+
# power results
|
|
203
|
+
P0 = o.calc_mean_farm_power(ambient=True)
|
|
204
|
+
P = o.calc_mean_farm_power()
|
|
205
|
+
print(f"\nFarm power : {P / 1000:.1f} MW")
|
|
206
|
+
print(f"Farm ambient power: {P0 / 1000:.1f} MW")
|
|
207
|
+
print(f"Farm efficiency : {o.calc_farm_efficiency() * 100:.2f} %")
|
|
208
|
+
print(f"Annual farm yield : {turbine_results[FV.YLD].sum():.2f} GWh.")
|
foxes/core/algorithm.py
CHANGED
foxes/engines/pool.py
CHANGED
foxes/utils/xarray_utils.py
CHANGED
|
@@ -31,24 +31,32 @@ def write_nc(
|
|
|
31
31
|
Additional parameters for xarray.to_netcdf
|
|
32
32
|
|
|
33
33
|
"""
|
|
34
|
+
|
|
35
|
+
def _round(x, v, d):
|
|
36
|
+
"""Helper function to round values"""
|
|
37
|
+
if d is not None:
|
|
38
|
+
if verbosity > 1:
|
|
39
|
+
print(f"File {fpath.name}: Rounding {v} to {d} decimals")
|
|
40
|
+
try:
|
|
41
|
+
x = x.astype(np.float32)
|
|
42
|
+
except ValueError:
|
|
43
|
+
pass
|
|
44
|
+
try:
|
|
45
|
+
return np.round(x, d)
|
|
46
|
+
except Exception:
|
|
47
|
+
pass
|
|
48
|
+
return x
|
|
49
|
+
|
|
34
50
|
fpath = Path(fpath)
|
|
35
51
|
if round is not None:
|
|
36
52
|
crds = {}
|
|
37
|
-
for v in ds.coords.
|
|
53
|
+
for v, x in ds.coords.items():
|
|
38
54
|
d = round.get(v, get_default_digits(v))
|
|
39
|
-
|
|
40
|
-
if verbosity > 1:
|
|
41
|
-
print(f"File {fpath.name}: Rounding {v} to {d} decimals")
|
|
42
|
-
crds[v] = np.round(ds[v].to_numpy(), d)
|
|
43
|
-
else:
|
|
44
|
-
crds[v] = ds[v].to_numpy()
|
|
55
|
+
crds[v] = _round(x.to_numpy(), v, d)
|
|
45
56
|
dvrs = {}
|
|
46
|
-
for v in ds.data_vars.
|
|
57
|
+
for v, x in ds.data_vars.items():
|
|
47
58
|
d = round.get(v, get_default_digits(v))
|
|
48
|
-
|
|
49
|
-
if verbosity > 1:
|
|
50
|
-
print(f"File {fpath.name}: Rounding {v} to {d} decimals")
|
|
51
|
-
dvrs[v] = (ds[v].dims, np.round(ds[v].to_numpy(), d))
|
|
59
|
+
dvrs[v] = (x.dims, _round(x.to_numpy(), v, d))
|
|
52
60
|
ds = Dataset(coords=crds, data_vars=dvrs)
|
|
53
61
|
|
|
54
62
|
enc = None
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
docs/source/conf.py,sha256=vJI7sGh52LTnDRfKhQFWOMxheU4Vnq7_lWqL7G4OQAM,12351
|
|
2
|
-
examples/abl_states/run.py,sha256=
|
|
2
|
+
examples/abl_states/run.py,sha256=DhFge87Sx6PK0n9BRU7vsGN-0F5V0I8ZqVTOWxwHyrM,4853
|
|
3
3
|
examples/compare_rotors_pwakes/run.py,sha256=yGvSGguLcgJmYNwTUGKJDRBxRRFFRYKF4v4VLUo9Wfw,6642
|
|
4
4
|
examples/compare_wakes/run.py,sha256=uS3svL5UYcttvtSW6jCUyS0_qW0-ArBkY-msYfvJSkE,7353
|
|
5
|
-
examples/dyn_wakes/run.py,sha256=
|
|
6
|
-
examples/field_data_nc/run.py,sha256=
|
|
5
|
+
examples/dyn_wakes/run.py,sha256=OdrRgR1MXeAfwKErhGLN7bCAtd6aCAVeSSQWltQYSJ0,9689
|
|
6
|
+
examples/field_data_nc/run.py,sha256=RIVoNtPM3ewhfCJLBFZ1m8F9sKbFAwS7m2JUf4sBQ1s,3671
|
|
7
7
|
examples/induction/run.py,sha256=Vqrjuw1_inqseihl-8_qgp4rq-7kc2NawsKa39Ux7V4,6340
|
|
8
|
-
examples/multi_height/run.py,sha256=
|
|
8
|
+
examples/multi_height/run.py,sha256=qnx2mAJZ1aY7N6wSmczjkSNcAsvQibzHh4e0Bf_mQ3o,3345
|
|
9
9
|
examples/power_mask/run.py,sha256=BXR0V_9y1aebzLnj2bXIFXMHQ1veaCMAPLRAH8EMOhY,7596
|
|
10
10
|
examples/quickstart/run.py,sha256=fo8A_oioPyUtNs4EiHZE1fCHH6DRuXFQzWJyHHd_oiI,427
|
|
11
11
|
examples/random_timeseries/run.py,sha256=ASpLTZkG9tLVbG34vyiBK1zJgvvAfl45EhA6r6jHDxM,6111
|
|
12
|
-
examples/scan_row/run.py,sha256=
|
|
13
|
-
examples/sector_management/run.py,sha256=
|
|
12
|
+
examples/scan_row/run.py,sha256=N9UX_Fb5ZGTLEzKZsv_paHt2Wk6RAanHKfEL6liuMj8,6197
|
|
13
|
+
examples/sector_management/run.py,sha256=aNT22eIsRlgOy0aN3TVWsVNc3wCfNa6keg7gfwD6hl8,4626
|
|
14
14
|
examples/sequential/run.py,sha256=pd7L3obYyqNZXzDxntRKsfhqunG0SIjZslbD42WcveI,6758
|
|
15
15
|
examples/single_state/run.py,sha256=VfZD5Ev4jLo6LQ7antKmZFU8SDfezeI9ERSf4ASvKsU,6162
|
|
16
|
-
examples/states_lookup_table/run.py,sha256=
|
|
17
|
-
examples/streamline_wakes/run.py,sha256=
|
|
16
|
+
examples/states_lookup_table/run.py,sha256=IJu6SJOq1S9VvJIv785hJVXn7zpjDRp41Cj-mN7ZQZ4,3965
|
|
17
|
+
examples/streamline_wakes/run.py,sha256=mzuxLGzajazIGfzWDCzDU2zRUODQmstYUlqzK46aA-U,4749
|
|
18
18
|
examples/tab_file/run.py,sha256=xe4VUwyl3eYMUGtyS7kuieGeoYo9mEq_ZvQ6E1rZ1uE,4370
|
|
19
|
-
examples/timelines/run.py,sha256=
|
|
20
|
-
examples/timeseries/run.py,sha256=
|
|
19
|
+
examples/timelines/run.py,sha256=Tc37gtvV9q5ALoCuT5p1N8m2X7J8UK0E7qXn0YZunpA,8688
|
|
20
|
+
examples/timeseries/run.py,sha256=3aAf_qC4IlEr_QhMUoZIV5A4K_jnnizy5H9-HBFTdjE,5571
|
|
21
21
|
examples/timeseries_slurm/run.py,sha256=4yHi4SXr7rff4tbJNQEUa9Dd7Dvli2XrJExu-xdE2Us,5587
|
|
22
|
-
examples/wind_rose/run.py,sha256=
|
|
23
|
-
examples/yawed_wake/run.py,sha256=
|
|
22
|
+
examples/wind_rose/run.py,sha256=CU7pzOSlWHifFvdtKl_t9gufaAKw2TkjwvklDZRaawM,4380
|
|
23
|
+
examples/yawed_wake/run.py,sha256=X-cxmhC0rCRHyB00kXrsnqQ9fufSY7L35lozls7Nxuw,6882
|
|
24
24
|
foxes/__init__.py,sha256=1RPU7w3WJ3jFb2aJdZKRy-6Fje9qAaH85WYcOCiDvwk,1375
|
|
25
25
|
foxes/constants.py,sha256=jQcyeU53V629Tf8qQWc2F4Xw1rV3ywtJiT-g1JWenNg,3842
|
|
26
26
|
foxes/variables.py,sha256=sK58u3HJRsWo-fbE7GPlQUhF0YUhY-qSg6Vl8Pv1Eo8,6144
|
|
@@ -48,7 +48,7 @@ foxes/algorithms/sequential/models/seq_state.py,sha256=al7XhLKLQSGhfUZw--Bz4RNNb
|
|
|
48
48
|
foxes/config/__init__.py,sha256=M2FrI1gO6SZUUPsQe1KL_-JNyUUt_Lk4nOw7cyNpHew,223
|
|
49
49
|
foxes/config/config.py,sha256=e3HhitD2Xleqm3utoXLGAu8Vg16app35Cpx4nBhnZm8,4318
|
|
50
50
|
foxes/core/__init__.py,sha256=iMuUuPsFERvjY2PQa7PCEsxrZYRJ8IORJs3k3OoerFw,1985
|
|
51
|
-
foxes/core/algorithm.py,sha256=
|
|
51
|
+
foxes/core/algorithm.py,sha256=EZPXOXAS-IjhWHatxZO-tvQch4yPMIPkdDHWtpATEmQ,27494
|
|
52
52
|
foxes/core/axial_induction_model.py,sha256=sGbTHFMjEYKiVjElLP_SCRulKatcK0wsEXf30zty2Vc,1023
|
|
53
53
|
foxes/core/data.py,sha256=sYkL-kZnWU9wdKkbSS85KS66BMUXToloCNkWGPE7C3s,25280
|
|
54
54
|
foxes/core/data_calc_model.py,sha256=c96fv7HrLK29WD5SRc4WFXjT24lNImnLflQJvIMACn8,1488
|
|
@@ -103,7 +103,7 @@ foxes/engines/futures.py,sha256=_VQXNLb0AxTtTouy96LhBnwPldHiG0xldHjpChKyNxs,1503
|
|
|
103
103
|
foxes/engines/mpi.py,sha256=XR9xFX6Spw8OKQ7x4qYOSeUlxcFWkwndNRiQ3IomkdM,650
|
|
104
104
|
foxes/engines/multiprocess.py,sha256=X4S-AnhnYuONpfZ3pKWi4VH9mm68ZMNm43ELPoeb-Ek,1328
|
|
105
105
|
foxes/engines/numpy.py,sha256=yljXIiVZgQjw97jmhpz_vKOh1TW3RxSI4SxN7rQnC4M,5806
|
|
106
|
-
foxes/engines/pool.py,sha256=
|
|
106
|
+
foxes/engines/pool.py,sha256=SxJCH45mqFSwvq9YtLDoamu_5AWnVPH-VDZkDI5Tfiw,8709
|
|
107
107
|
foxes/engines/ray.py,sha256=Otlc1ZfoTiNE6sq9rq1y212tVbaVDfxryqAl4T0AM_A,1622
|
|
108
108
|
foxes/engines/single.py,sha256=Z0tun1ZKQD-LMdSK291AUagBDJiHnexJL5ysrkP04tY,4725
|
|
109
109
|
foxes/input/__init__.py,sha256=JodEdc77y5I-CsgfT5HadMK7DH5EKcr9uGLEVcgM-wY,157
|
|
@@ -282,7 +282,7 @@ foxes/utils/two_circles.py,sha256=xkj-SA_x-VXY7KtmSU4lcV4gFdplyhU3sBAC9vTdkF4,28
|
|
|
282
282
|
foxes/utils/weibull.py,sha256=2fUWt-vZVMu55fFrXuo0M3B771xtoWeVVmqE7Nr5yXM,656
|
|
283
283
|
foxes/utils/wind_dir.py,sha256=6W0njWDvnIdOOjwqcMr64MW9ApjdtFA75blVUxirPMo,2823
|
|
284
284
|
foxes/utils/wrg_utils.py,sha256=QzaASvn50Pzegk2NoCJhC9WozO95KiQPIwiWGNMeA4w,3604
|
|
285
|
-
foxes/utils/xarray_utils.py,sha256=
|
|
285
|
+
foxes/utils/xarray_utils.py,sha256=ddnjrZ6HLMqIE1JpP_yCx4tKeSDjNRsSI6c5CL2neJo,1961
|
|
286
286
|
foxes/utils/abl/__init__.py,sha256=yDbyZodXZ_dsmIJ4QH981CZ7xvVQyLneGzjOgYB7ZNE,179
|
|
287
287
|
foxes/utils/abl/neutral.py,sha256=E4DEhvXvw74BPrYr1MjQjeIaoz6ZOTWVlqScKflm-0M,1358
|
|
288
288
|
foxes/utils/abl/sheared.py,sha256=nS6gxa5cR7B7XcZbEk3rwOvbF6m4cinXAIhhn9gGBBs,446
|
|
@@ -295,7 +295,7 @@ foxes/utils/geom2d/example_intersection.py,sha256=4e6sjpZEk_bNc462YvwKPzwxdV1B90
|
|
|
295
295
|
foxes/utils/geom2d/example_union.py,sha256=BKfLt1mtQcSto-qExeMQkq8tQ6kfFXVJ93Cc7DhOal8,1750
|
|
296
296
|
foxes/utils/geom2d/half_plane.py,sha256=kzZD6pkZxZ03MK9WAboWzXb5Ws5dWLQY9GIahD4D9mA,6167
|
|
297
297
|
foxes/utils/geom2d/polygon.py,sha256=Xj7triA5Pe4-48sNSAvGxEXlQGptV161LUpKKCf3YOY,5535
|
|
298
|
-
foxes-1.5.dist-info/licenses/LICENSE,sha256=bBCH6mYTPzSepk2s2UUZ3II_ZYXrn1bnSqB85-aZHxU,1071
|
|
298
|
+
foxes-1.5.1.dist-info/licenses/LICENSE,sha256=bBCH6mYTPzSepk2s2UUZ3II_ZYXrn1bnSqB85-aZHxU,1071
|
|
299
299
|
tests/0_consistency/iterative/test_iterative.py,sha256=lzagmJ1y241l6Szw4Cu80S8S1ATHIyD7ukr1vVBrusY,2637
|
|
300
300
|
tests/0_consistency/partial_wakes/test_partial_wakes.py,sha256=7rdg2lcUYUzxwCdGhue7A4QYCJQGrOO4E0bytgatYj4,2584
|
|
301
301
|
tests/1_verification/flappy_0_6/PCt_files/test_PCt_files.py,sha256=8tIqifsykvxMCd9eD-mZWxRwT56sKjIxrGf3hf8aCFA,2530
|
|
@@ -321,8 +321,8 @@ tests/1_verification/flappy_0_6_2/row_Bastankhah_Crespo/flappy/run.py,sha256=nwI
|
|
|
321
321
|
tests/1_verification/flappy_0_6_2/row_Bastankhah_linear_centre/test_row_Bastankhah_linear_centre.py,sha256=QUULW3AJJq8zvUIdIQHkXiNZpaysVYIALh5HOJ6-428,2595
|
|
322
322
|
tests/1_verification/flappy_0_6_2/row_Bastankhah_linear_centre/flappy/run.py,sha256=1paRjCe71AIM8igK4_f0FFH1xiIETvuBwnZAATiwWUU,2102
|
|
323
323
|
tests/3_examples/test_examples.py,sha256=9_PtvlYA6ELsQGHt-xAnsjCYdGj1ekX237ymWvEJaCk,732
|
|
324
|
-
foxes-1.5.dist-info/METADATA,sha256=
|
|
325
|
-
foxes-1.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
326
|
-
foxes-1.5.dist-info/entry_points.txt,sha256=KuS44FRH5NnMw201A8Btr76eNRKr2UOoKHjejAsqKwE,123
|
|
327
|
-
foxes-1.5.dist-info/top_level.txt,sha256=G7oHApEz5nc-iP__XsPcvjYe_NyXGmKMUMPHi3C3x6I,26
|
|
328
|
-
foxes-1.5.dist-info/RECORD,,
|
|
324
|
+
foxes-1.5.1.dist-info/METADATA,sha256=zRir9XRuTKME-eYx3K7yLKrD9wqWTah5-PTPWIKvEjw,8123
|
|
325
|
+
foxes-1.5.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
326
|
+
foxes-1.5.1.dist-info/entry_points.txt,sha256=KuS44FRH5NnMw201A8Btr76eNRKr2UOoKHjejAsqKwE,123
|
|
327
|
+
foxes-1.5.1.dist-info/top_level.txt,sha256=G7oHApEz5nc-iP__XsPcvjYe_NyXGmKMUMPHi3C3x6I,26
|
|
328
|
+
foxes-1.5.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|