emerge 1.0.7__py3-none-any.whl → 1.1.0__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 emerge might be problematic. Click here for more details.
- emerge/__init__.py +14 -3
- emerge/_emerge/geo/pcb.py +132 -59
- emerge/_emerge/geo/shapes.py +11 -7
- emerge/_emerge/geometry.py +23 -8
- emerge/_emerge/logsettings.py +26 -2
- emerge/_emerge/mesh3d.py +5 -5
- emerge/_emerge/mesher.py +40 -8
- emerge/_emerge/physics/microwave/adaptive_mesh.py +113 -22
- emerge/_emerge/physics/microwave/microwave_3d.py +131 -81
- emerge/_emerge/physics/microwave/microwave_bc.py +157 -8
- emerge/_emerge/plot/pyvista/display.py +26 -16
- emerge/_emerge/settings.py +124 -6
- emerge/_emerge/simmodel.py +220 -148
- emerge/_emerge/simstate.py +106 -0
- emerge/_emerge/simulation_data.py +11 -23
- emerge/_emerge/solve_interfaces/cudss_interface.py +20 -1
- emerge/_emerge/solver.py +1 -1
- {emerge-1.0.7.dist-info → emerge-1.1.0.dist-info}/METADATA +7 -3
- {emerge-1.0.7.dist-info → emerge-1.1.0.dist-info}/RECORD +22 -21
- {emerge-1.0.7.dist-info → emerge-1.1.0.dist-info}/WHEEL +0 -0
- {emerge-1.0.7.dist-info → emerge-1.1.0.dist-info}/entry_points.txt +0 -0
- {emerge-1.0.7.dist-info → emerge-1.1.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -131,8 +131,8 @@ def generate_ndim(
|
|
|
131
131
|
|
|
132
132
|
class DataEntry:
|
|
133
133
|
|
|
134
|
-
def __init__(self,
|
|
135
|
-
self.vars: dict[str, float] =
|
|
134
|
+
def __init__(self, variables: dict[str, float]):
|
|
135
|
+
self.vars: dict[str, float] = variables
|
|
136
136
|
self.data: dict[str, Any] = dict()
|
|
137
137
|
|
|
138
138
|
def print(self) -> None:
|
|
@@ -172,25 +172,23 @@ class DataContainer:
|
|
|
172
172
|
"""The DataContainer class is a generalized class to store data for a set of parameter sweeps"""
|
|
173
173
|
def __init__(self):
|
|
174
174
|
self.entries: list[DataEntry] = []
|
|
175
|
-
self.stock: DataEntry = DataEntry({})
|
|
176
175
|
|
|
177
176
|
|
|
178
177
|
def print(self) -> None:
|
|
179
178
|
""" Print an overview of all data in the DataContainer"""
|
|
180
|
-
self.stock.print()
|
|
181
179
|
for entry in self.entries:
|
|
182
180
|
entry.print()
|
|
183
181
|
|
|
184
|
-
def new(self, **
|
|
182
|
+
def new(self, **variables: float) -> DataEntry:
|
|
185
183
|
"""Create a new entry in the DataContainer for the given value setting"""
|
|
186
|
-
entry = DataEntry(
|
|
184
|
+
entry = DataEntry(variables)
|
|
187
185
|
self.entries.append(entry)
|
|
188
186
|
return entry
|
|
189
187
|
|
|
190
188
|
def iterate(self) -> Generator[tuple[dict[str, float], dict[str, Any]], None, None]:
|
|
191
189
|
for entry in self.entries:
|
|
192
190
|
yield entry.vars, entry.data
|
|
193
|
-
|
|
191
|
+
|
|
194
192
|
@property
|
|
195
193
|
def first(self) -> DataEntry:
|
|
196
194
|
"""Returns the first added entry"""
|
|
@@ -201,14 +199,6 @@ class DataContainer:
|
|
|
201
199
|
"""Returns the last added entry"""
|
|
202
200
|
return self.entries[-1]
|
|
203
201
|
|
|
204
|
-
@property
|
|
205
|
-
def default(self) -> DataEntry:
|
|
206
|
-
"""Returns the default DataEntry which is either the last from the parameter sweep or the general one in case of no parameter sweep."""
|
|
207
|
-
if not self.entries:
|
|
208
|
-
return self.stock
|
|
209
|
-
else:
|
|
210
|
-
return self.last
|
|
211
|
-
|
|
212
202
|
def index(self, index: int) -> DataEntry:
|
|
213
203
|
"""Returns the last added entry"""
|
|
214
204
|
return self.entries[index]
|
|
@@ -226,11 +216,11 @@ class DataContainer:
|
|
|
226
216
|
|
|
227
217
|
def __getitem__(self, key: str) -> DataEntry:
|
|
228
218
|
"""Returns the requested item from the default DataEntry"""
|
|
229
|
-
return self.
|
|
219
|
+
return self.last[key]
|
|
230
220
|
|
|
231
221
|
def __setitem__(self, key: str, value: Any) -> None:
|
|
232
222
|
"""Writes a value to the requested default DataEntry"""
|
|
233
|
-
self.
|
|
223
|
+
self.last[key] = value
|
|
234
224
|
|
|
235
225
|
|
|
236
226
|
class BaseDataset(Generic[T,M]):
|
|
@@ -298,12 +288,10 @@ class BaseDataset(Generic[T,M]):
|
|
|
298
288
|
Returns:
|
|
299
289
|
T: The physics dataset
|
|
300
290
|
"""
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
)
|
|
306
|
-
return self.get_entry(index)
|
|
291
|
+
for i, var_map in enumerate(self._variables):
|
|
292
|
+
if all(var_map.get(k) == v for k,v in variables.items()):
|
|
293
|
+
return self.get_entry(i)
|
|
294
|
+
|
|
307
295
|
|
|
308
296
|
def filter(self, **variables: float) -> list[T]:
|
|
309
297
|
"""Returns a list of all physics datasets that are valid for the given variable assignment
|
|
@@ -53,6 +53,21 @@ INDEX_BASE = cudss.IndexBase.ZERO
|
|
|
53
53
|
def _c_pointer(arry) -> int:
|
|
54
54
|
return int(arry.data.ptr)
|
|
55
55
|
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
############################################################
|
|
59
|
+
# FUNCTIONS #
|
|
60
|
+
############################################################
|
|
61
|
+
|
|
62
|
+
def is_complex_symmetric(A, rtol=1e-12, atol=0.0):
|
|
63
|
+
D = A-A.T
|
|
64
|
+
D.sum_duplicates()
|
|
65
|
+
if D.nnz == 0:
|
|
66
|
+
return True
|
|
67
|
+
max_diff = float(np.abs(D.data).max())
|
|
68
|
+
max_A = float(np.abs(A.data).max()) if A.nnz else 0.0
|
|
69
|
+
return (max_diff <= atol) if max_A == 0.0 else (max_diff <= atol + rtol * max_A)
|
|
70
|
+
|
|
56
71
|
############################################################
|
|
57
72
|
# INTERFACE #
|
|
58
73
|
############################################################
|
|
@@ -152,6 +167,11 @@ class CuDSSInterface:
|
|
|
152
167
|
"""
|
|
153
168
|
self.N = A.shape[0]
|
|
154
169
|
|
|
170
|
+
if is_complex_symmetric(A, rtol=1e-12, atol=1e-15):
|
|
171
|
+
self.MTYPE = cudss.MatrixType.SYMMETRIC
|
|
172
|
+
else:
|
|
173
|
+
self.MTYPE = cudss.MatrixType.GENERAL
|
|
174
|
+
|
|
155
175
|
if np.iscomplexobj(A):
|
|
156
176
|
self._COMP = True
|
|
157
177
|
else:
|
|
@@ -186,7 +206,6 @@ class CuDSSInterface:
|
|
|
186
206
|
"""Updates the currently defined matrix data into the existing memory.ALG_AMD
|
|
187
207
|
"""
|
|
188
208
|
cudss.matrix_set_values(self.A_cobj, _c_pointer(self._VAL))
|
|
189
|
-
|
|
190
209
|
|
|
191
210
|
self.b_cobj = cudss.matrix_create_dn(self.N, 1, self.N, _c_pointer(self.b_cu),
|
|
192
211
|
int(self.VTYPE), int(cudss.Layout.COL_MAJOR))
|
emerge/_emerge/solver.py
CHANGED
|
@@ -805,7 +805,7 @@ class SmartARPACK_BMA(EigSolver):
|
|
|
805
805
|
energies.append(energy)
|
|
806
806
|
|
|
807
807
|
#Sort solutions on mode energy
|
|
808
|
-
val, mode, energy = zip(*sorted(zip(tot_eigen_values,tot_eigen_modes,energies), key=lambda x: x[2], reverse=True))
|
|
808
|
+
val, mode, energy = zip(*sorted(zip(tot_eigen_values, tot_eigen_modes, energies), key=lambda x: x[2], reverse=True))
|
|
809
809
|
eigen_values = np.array(val[:nmodes])
|
|
810
810
|
eigen_modes = np.array(mode[:nmodes]).T
|
|
811
811
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: emerge
|
|
3
|
-
Version: 1.0
|
|
3
|
+
Version: 1.1.0
|
|
4
4
|
Summary: An open source EM FEM simulator in Python
|
|
5
5
|
Project-URL: Homepage, https://github.com/FennisRobert/EMerge
|
|
6
6
|
Project-URL: Issues, https://github.com/FennisRobert/EMerge/issues
|
|
@@ -18,8 +18,12 @@ Requires-Dist: pyvista>=0.45.2
|
|
|
18
18
|
Requires-Dist: scipy>=1.14.0
|
|
19
19
|
Provides-Extra: cudss
|
|
20
20
|
Requires-Dist: cupy-cuda12x; extra == 'cudss'
|
|
21
|
-
Requires-Dist: nvidia-cudss-cu12; extra == 'cudss'
|
|
22
|
-
Requires-Dist: nvmath-python[cu12]; extra == 'cudss'
|
|
21
|
+
Requires-Dist: nvidia-cudss-cu12==0.5.0.16; extra == 'cudss'
|
|
22
|
+
Requires-Dist: nvmath-python[cu12]==0.5.0; extra == 'cudss'
|
|
23
|
+
Provides-Extra: cudss12
|
|
24
|
+
Requires-Dist: cupy-cuda12x; extra == 'cudss12'
|
|
25
|
+
Requires-Dist: nvidia-cudss-cu12==0.5.0.16; extra == 'cudss12'
|
|
26
|
+
Requires-Dist: nvmath-python[cu12]==0.5.0; extra == 'cudss12'
|
|
23
27
|
Provides-Extra: dxf
|
|
24
28
|
Requires-Dist: ezdxf; extra == 'dxf'
|
|
25
29
|
Provides-Extra: umfpack
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
emerge/__init__.py,sha256=
|
|
1
|
+
emerge/__init__.py,sha256=Ctg9aiE6r8aoihr0uSluSZPwxJLRUuoaBOCAFDf2bMU,3494
|
|
2
2
|
emerge/__main__.py,sha256=WVf16sfrOI910QWohrQDaChZdRifMNoS6VKzCT6f3ZA,92
|
|
3
3
|
emerge/cli.py,sha256=NU1uhwuZ6i50680v3_I4kDZPTHqz74gOYK71UBhb8oE,666
|
|
4
4
|
emerge/ext.py,sha256=IBoHH5PQFj5pYMfp6r-uMpNNgbSe8c0g9x8qjBzzVmU,223
|
|
@@ -14,19 +14,20 @@ emerge/_emerge/cs.py,sha256=gULfov6s0jODOdQkH6NmGBbG5wvny1-bJU8fdAlpCHo,19730
|
|
|
14
14
|
emerge/_emerge/dataset.py,sha256=UcSAJ_siLrOjNBBWRWsS3GUZUpayp63EM6pP6ClwKDI,1534
|
|
15
15
|
emerge/_emerge/emerge_update.py,sha256=0G91xr7k7Me5gOlk3pXbKWe-6ALXtoCJ5syTa1Y5Bhw,2042
|
|
16
16
|
emerge/_emerge/geo2d.py,sha256=e_HkX1GQ2iYrdO0zeEgzVOzfGyU1WGJyjeGBAobOttE,3323
|
|
17
|
-
emerge/_emerge/geometry.py,sha256=
|
|
17
|
+
emerge/_emerge/geometry.py,sha256=1b3CWhUoEVwQCtosLQmXU0aBBC9Cqsn_5kRcZIidzJY,25747
|
|
18
18
|
emerge/_emerge/howto.py,sha256=c4UxUNpA1tygr3OoR-LH-h0UZv-Tf9K8tpCiAU18BKE,8173
|
|
19
|
-
emerge/_emerge/logsettings.py,sha256=
|
|
19
|
+
emerge/_emerge/logsettings.py,sha256=S4aUkO2vhcssmYQIGOq0VkazMEX4TYJlCt0FZ74Mc8Y,5574
|
|
20
20
|
emerge/_emerge/material.py,sha256=furDHD4rwkYCOjnh0GLz-Utjl5Z_NxDv0zWrk23Pygc,17459
|
|
21
|
-
emerge/_emerge/mesh3d.py,sha256=
|
|
22
|
-
emerge/_emerge/mesher.py,sha256=
|
|
21
|
+
emerge/_emerge/mesh3d.py,sha256=YWd9xF-zrsxb3OSzmAY9TpewmY_kpoNi212Dhao_HPQ,37212
|
|
22
|
+
emerge/_emerge/mesher.py,sha256=Lxtiy2Y4ZBFtpiWFjCzs0XIhPCJsutAskmITCsnovCE,18146
|
|
23
23
|
emerge/_emerge/periodic.py,sha256=dUuWqjlDR8mHtQR3ecINP2FFjJJ0cKg0blOVZ0PCcAo,12087
|
|
24
24
|
emerge/_emerge/plot.py,sha256=cf1I9mj7EIUJcq8vmANlUkqoV6QqVaJaP-zlC-T9E18,8041
|
|
25
25
|
emerge/_emerge/selection.py,sha256=ltT8ubMFG3-sFrAh7K7iAgSoBt3r25B02ShzMlOGSXQ,21527
|
|
26
|
-
emerge/_emerge/settings.py,sha256=
|
|
27
|
-
emerge/_emerge/simmodel.py,sha256=
|
|
28
|
-
emerge/_emerge/
|
|
29
|
-
emerge/_emerge/
|
|
26
|
+
emerge/_emerge/settings.py,sha256=4Mlo3T6UVGzhTB838833_dwvXYLGKNIEHQ4fr9hxHd8,5335
|
|
27
|
+
emerge/_emerge/simmodel.py,sha256=3VTNpveoZw2PFQjgs3oMG2kOhAPSuY87sy7AQXAqXH0,32984
|
|
28
|
+
emerge/_emerge/simstate.py,sha256=n_iOz3L9lZ0oD4CBb8cdHXOoaoyx96kcsFKwSQWVxlk,3630
|
|
29
|
+
emerge/_emerge/simulation_data.py,sha256=W8wTSTqGNZIwnpBuk08I7e4GEXXAbnfoYEWHnhzHvyM,14723
|
|
30
|
+
emerge/_emerge/solver.py,sha256=uzKWM9UhmpFhgxsKrfVlpHHBO_HoxoHjtkJp9-CFoZg,52990
|
|
30
31
|
emerge/_emerge/system.py,sha256=p4HNz7d_LMRNE9Gk75vVdFecDH2iN_groAM9u-yQTpk,1618
|
|
31
32
|
emerge/_emerge/elements/__init__.py,sha256=I3n9aic6lJW-oGeqTEZ-Fpxvyl2i-WqsHdnrM3v1oB8,799
|
|
32
33
|
emerge/_emerge/elements/femdata.py,sha256=ZSB7dICyU3GOWbxpuowBc-Khh2mpXa02ZfMkHwdDol4,8377
|
|
@@ -38,10 +39,10 @@ emerge/_emerge/geo/__init__.py,sha256=yTeuT4Oexrsdkr7MxRLeTHEY5iP4IHsWeCvit57fK5
|
|
|
38
39
|
emerge/_emerge/geo/horn.py,sha256=tI-w-O0Fm_siMaVhKpZ_k5URLfZkqcbEpURX94fhKDs,4645
|
|
39
40
|
emerge/_emerge/geo/modeler.py,sha256=_PMz3lFSa7FmJHWdY-4U1Sqbed-Egy85S_AdjlCldC4,15572
|
|
40
41
|
emerge/_emerge/geo/operations.py,sha256=WYWfOXWrT0voeKW9U26g-PhQfqJl3ovRQ8uDQXUr7Nc,12459
|
|
41
|
-
emerge/_emerge/geo/pcb.py,sha256=
|
|
42
|
+
emerge/_emerge/geo/pcb.py,sha256=kZQFx-LdFusnHtegWTs7b4YVnhGBdFlDCd90IP7kwD8,60392
|
|
42
43
|
emerge/_emerge/geo/pmlbox.py,sha256=gaIG_AoZNQnIyJ8C7x64U-Hw5dsmllWMiZDAH4iRoM0,8784
|
|
43
44
|
emerge/_emerge/geo/polybased.py,sha256=D_Ef4anrwV2RArEFrvWppZ_c7oN_Hm5h7ltMi2U3v2o,32891
|
|
44
|
-
emerge/_emerge/geo/shapes.py,sha256=
|
|
45
|
+
emerge/_emerge/geo/shapes.py,sha256=k3WZeXZBkLzHaOShUsfyqWITHBNQfDEgqyemhLLgRRg,27080
|
|
45
46
|
emerge/_emerge/geo/step.py,sha256=XcAiEN8W4umNmZdYmrGHX_aJUuiMgc6vgT-UIk8Gbqc,2689
|
|
46
47
|
emerge/_emerge/geo/pcb_tools/calculator.py,sha256=VbMP2xC9i7OFwtqnnwfYgyJSEcJIjr2VIy_Ez1hYqlU,859
|
|
47
48
|
emerge/_emerge/geo/pcb_tools/dxf.py,sha256=Xv7iP_bB0f2Y46sxZloa5KYGyj5dtApXoR-kgL7KHZA,11744
|
|
@@ -54,9 +55,9 @@ emerge/_emerge/mth/pairing.py,sha256=i8bBvTeMmzgF0JdiDNJiTXxx913x4f10777pzD6FJo0
|
|
|
54
55
|
emerge/_emerge/physics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
55
56
|
emerge/_emerge/physics/microwave/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
56
57
|
emerge/_emerge/physics/microwave/adaptive_freq.py,sha256=aWhijhCVAbnuwkru-I1AaRdY20uyozf6OWRIh9r2ijg,9786
|
|
57
|
-
emerge/_emerge/physics/microwave/adaptive_mesh.py,sha256=
|
|
58
|
-
emerge/_emerge/physics/microwave/microwave_3d.py,sha256=
|
|
59
|
-
emerge/_emerge/physics/microwave/microwave_bc.py,sha256=
|
|
58
|
+
emerge/_emerge/physics/microwave/adaptive_mesh.py,sha256=LrlDMaYIps0uPkTh5KUu1jHqxdqOfxxNLVw8UeqggUc,25190
|
|
59
|
+
emerge/_emerge/physics/microwave/microwave_3d.py,sha256=N06nZQ0XMhSU1z5lKrR6irJmkAlurG9Gg7J_DFzWLsI,51838
|
|
60
|
+
emerge/_emerge/physics/microwave/microwave_bc.py,sha256=hsz9LkO2UgiBGld79ovxgtnZ2vKQHcVfO6fU8rp3WDs,50696
|
|
60
61
|
emerge/_emerge/physics/microwave/microwave_data.py,sha256=eSWBrFmdYnOmCchf31jORwCriq2Ix1piGoGYHsvcF38,50551
|
|
61
62
|
emerge/_emerge/physics/microwave/periodic.py,sha256=wYSUgLFVtCLqSG3EDKoCDRU93iPUzBdXzVRdHTRmbpI,3000
|
|
62
63
|
emerge/_emerge/physics/microwave/port_functions.py,sha256=d-W1D-7P05MfXdOs7WlhPi_RqlSpC0HkYU6yl3GrxgE,2173
|
|
@@ -77,20 +78,20 @@ emerge/_emerge/plot/simple_plots.py,sha256=szIpmQmO8o6ubzB_E3zTJfEx16mJ3-OXrMYdD
|
|
|
77
78
|
emerge/_emerge/plot/matplotlib/mpldisplay.py,sha256=e8V6EhGdCW7nRkSFvjHCcRO5uR-FcD0yHQ1nxPQCbp4,8674
|
|
78
79
|
emerge/_emerge/plot/pyvista/__init__.py,sha256=CPclatEu6mFnJZzCQk09g6T6Fh20WTbiLAJGSwAnPXU,30
|
|
79
80
|
emerge/_emerge/plot/pyvista/cmap_maker.py,sha256=_GVXYdtXpJwAO9O-Iekjzn6YcR0MVT8LNh12nqvF2IA,2498
|
|
80
|
-
emerge/_emerge/plot/pyvista/display.py,sha256=
|
|
81
|
+
emerge/_emerge/plot/pyvista/display.py,sha256=PASOzQd_L0_uEbWcdN42draaXK_LpveW0cS6-1obtGk,45740
|
|
81
82
|
emerge/_emerge/plot/pyvista/display_settings.py,sha256=gV5hjRGEAl3oQeBPobas6b6JzYfMFrXIGtVSaeml4N0,1074
|
|
82
83
|
emerge/_emerge/projects/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
83
84
|
emerge/_emerge/projects/_gen_base.txt,sha256=DqQz36PZg6v1ovQjHvPjd0t4AIbmikZdb9dmrNYsK3w,598
|
|
84
85
|
emerge/_emerge/projects/_load_base.txt,sha256=bHsZ4okxa9uu8qP4UOxSAeIQzuwpRtN0i71rg8wuqMA,473
|
|
85
86
|
emerge/_emerge/projects/generate_project.py,sha256=TNw-0SpLc82MBq0bd9hB_yqvBZCgmuPonCBsHTp91uk,1450
|
|
86
|
-
emerge/_emerge/solve_interfaces/cudss_interface.py,sha256=
|
|
87
|
+
emerge/_emerge/solve_interfaces/cudss_interface.py,sha256=D6GVQLgTzRw4ec2MkgNhsSWrkLYMhvqljCyE6qtNQ3o,10599
|
|
87
88
|
emerge/_emerge/solve_interfaces/pardiso_interface.py,sha256=iVFxToMmIzhj3hcAP-O_MDHKz82ePFIHY1us11kzUBU,15305
|
|
88
89
|
emerge/beta/dxf.py,sha256=Bw4lVk0TquOgCxTZV23BZN7PrgqxBrMZxbHV1waC5U0,50
|
|
89
90
|
emerge/materials/__init__.py,sha256=Z9tu3m_nqj6F9I-FwoVoN0vCTYUlFesH3KxJ38wkZck,19
|
|
90
91
|
emerge/materials/isola.py,sha256=kSDxHJZVn2CcanoUjlwRVKIPvadRbBybURTdIHWx728,18660
|
|
91
92
|
emerge/materials/rogers.py,sha256=4u6ma_XQdXGKWE3WsFkaMTamCQNo9kTYSTU8S1gCAYU,3388
|
|
92
|
-
emerge-1.0.
|
|
93
|
-
emerge-1.0.
|
|
94
|
-
emerge-1.0.
|
|
95
|
-
emerge-1.0.
|
|
96
|
-
emerge-1.0.
|
|
93
|
+
emerge-1.1.0.dist-info/METADATA,sha256=o2joAvpVrU6n6s2UXT27dEata6nv95RlAiKsShieUh4,3614
|
|
94
|
+
emerge-1.1.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
95
|
+
emerge-1.1.0.dist-info/entry_points.txt,sha256=8rFvAXticpKg4OTC8JEvAksnduW72KIEskCGG9XnFf8,43
|
|
96
|
+
emerge-1.1.0.dist-info/licenses/LICENSE,sha256=VOCXWddrjMN5j7TvnSAOh1Dx7jkugdwq9Lqhycf5inc,17852
|
|
97
|
+
emerge-1.1.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|