wolfhece 2.1.38__py3-none-any.whl → 2.1.40__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.
@@ -19,7 +19,7 @@ from wx.adv import SplashScreen as SplashScreen,SPLASH_CENTRE_ON_SCREEN,SPLASH
19
19
 
20
20
  try:
21
21
  from ..libs import wolfogl
22
- except:
22
+ except ImportError:
23
23
  print("** WolfOGL not found **")
24
24
  print("Without WolfOGL, the application will not work !")
25
25
  print("Please reinstall 'wolfhece' package -- pip install wolfhece --force-reinstall")
@@ -38,7 +38,7 @@ class WolfLauncher(SplashScreen):
38
38
 
39
39
  # try:
40
40
  # wolfogl.init()
41
- # except Exception as e:
41
+ # except ImportError:
42
42
  # print("Error initializing WolfOGL -- We must stop here !")
43
43
  # print("Please reinstall 'wolfhece' package -- pip install wolfhece")
44
44
  # exit()
wolfhece/apps/version.py CHANGED
@@ -5,7 +5,7 @@ class WolfVersion():
5
5
 
6
6
  self.major = 2
7
7
  self.minor = 1
8
- self.patch = 38
8
+ self.patch = 40
9
9
 
10
10
  def __str__(self):
11
11
 
Binary file
wolfhece/pyviews.py CHANGED
@@ -11,18 +11,25 @@ copying or distribution of this file, via any medium, is strictly prohibited.
11
11
  import logging
12
12
 
13
13
  from .drawing_obj import Element_To_Draw
14
- from .wolf_array import WolfArray,WolfArrayMB, VERSION_RGB
14
+ from .wolf_array import WolfArray, WolfArrayMB, VERSION_RGB, wolfpalette
15
15
  from .PyParams import Wolf_Param, key_Param, Type_Param
16
16
 
17
+
17
18
  class WolfViews(Element_To_Draw):
19
+ """ Class to permit complex views, combination of
20
+ different objects which can be plotted.
21
+
22
+ Inherits from Element_To_Draw."""
18
23
 
19
24
  def __init__(self, idx: str = '', plotted: bool = True, mapviewer=None, need_for_wx: bool = False) -> None:
25
+ """ Constructor of the class WolfViews."""
26
+
20
27
  super().__init__(idx, plotted, mapviewer, need_for_wx)
21
28
 
22
29
  self.view = []
23
30
  self.pals = []
24
31
 
25
- def read_from_file(self,fn):
32
+ def read_from_file(self, fn):
26
33
  myproject = Wolf_Param(None, filename=fn, toShow=False)
27
34
 
28
35
  mykeys = ['cross_sections', 'vector', 'array']
@@ -57,7 +64,6 @@ class WolfViews(Element_To_Draw):
57
64
  # else:
58
65
  # wx.LogMessage(_('Bad parameter in project file - array : ')+ curname[key_Param.VALUE])
59
66
 
60
-
61
67
  # if 'wolf2d' in myproject.myparams.keys():
62
68
  # for curid, curname in zip(myproject.myparams['wolf2d'].keys(), myproject.myparams['wolf2d'].values()):
63
69
  # if exists(curname[key_Param.VALUE]):
@@ -157,54 +163,110 @@ class WolfViews(Element_To_Draw):
157
163
  # del wait
158
164
 
159
165
  def change_gui(self, newmapviewer):
166
+ """ Change the mapviewer of the view and all its elements."""
167
+
160
168
  self.mapviewer = newmapviewer
161
169
 
162
170
  for cur in self.view:
163
- if isinstance(cur,WolfArray) or isinstance(cur,WolfArrayMB):
171
+ if isinstance(cur, WolfArray) or isinstance(cur, WolfArrayMB):
164
172
  cur.change_gui(newmapviewer)
165
173
  else:
166
174
  cur.mapviewer = newmapviewer
167
175
 
168
- def add_elemt(self,added_elemt,pal=None):
176
+ def add_elemt(self, added_elemt, pal=None):
177
+ """ Add an element to the view.
178
+
179
+ :param added_elemt: Element to add.
180
+ :param pal: Palette to use for the element.
181
+ """
182
+
183
+ assert isinstance(added_elemt, Element_To_Draw), 'The element to add must be a subclass of Element_To_Draw'
184
+
169
185
  self.view.append(added_elemt)
170
186
  self.pals.append(pal)
171
187
 
172
- def add_elemts(self,added_elemts:list,pals=None):
188
+ def add_elemts(self, added_elemts: list, pals=None):
189
+ """ Add a list of elements to the view.
190
+
191
+ :param added_elemts: List of elements to add.
192
+ :param pals: List of palettes to use for the elements.
193
+ """
194
+
195
+ for cur in added_elemts:
196
+ assert isinstance(cur, Element_To_Draw), 'The element to add must be a subclass of Element_To_Draw'
197
+
173
198
  self.view += added_elemts
174
199
 
175
200
  if pals is None:
176
201
  self.pals += [None]*len(added_elemts)
177
202
  else:
203
+ if len(pals) != len(added_elemts):
204
+ logging.warning('The number of palettes must be the same as the number of elements.')
205
+
206
+ if len(pals) < len(added_elemts):
207
+ logging.warning('The missing palettes will be set to None.')
208
+ pals += [None]*(len(added_elemts)-len(pals))
209
+ else:
210
+ logging.warning('The extra palettes will be ignored.')
211
+ pals = pals[:len(added_elemts)]
212
+
178
213
  self.pals += pals
179
214
 
180
215
  def plot(self, sx=None, sy=None, xmin=None, ymin=None, xmax=None, ymax=None, size=None):
216
+ """ Plot the view. """
181
217
 
182
218
  if self.plotted:
183
219
 
184
- for cur,pal in zip(self.view,self.pals):
185
- oldplotted = cur.plotted
186
- cur.plotted=True
220
+ for cur, pal in zip(self.view, self.pals):
221
+ # iterate over the elements and their palettes
222
+ pal: wolfpalette
187
223
 
188
- if isinstance(cur,WolfArray):
189
- if cur.rgb is None:
190
- if pal is not None:
191
- if VERSION_RGB ==1: cur.rgb = pal.get_rgba(cur.array)
224
+ oldplotted = cur.plotted
225
+ cur.plotted = True
226
+
227
+ if isinstance(cur, WolfArray):
228
+ #
229
+ if VERSION_RGB == 1:
230
+ # Will be deprecated in future versions
231
+ if cur.rgb is None:
232
+ if pal is not None:
233
+ cur.rgb = pal.get_rgba(cur.array)
234
+ else:
235
+ cur.mypal.defaultgray_minmax(cur.array)
236
+ cur.rgb = cur.mypal.get_rgba(cur.array)
237
+ cur.plot(sx, sy, xmin, ymin, xmax, ymax)
238
+ elif VERSION_RGB == 2:
239
+ if pal is None:
240
+ # using the current palette
241
+ cur.plot(sx, sy, xmin, ymin, xmax, ymax)
192
242
  else:
193
- cur.mypal.defaultgray_minmax(cur.array)
194
- if VERSION_RGB ==1: cur.rgb = cur.mypal.get_rgba(cur.array)
243
+ # using the palette passed as argument
244
+
245
+ # memorize the current palette
246
+ oldpal = cur.mypal
247
+ # change the palette
248
+ cur.mypal = pal
249
+ # plot the array
250
+ cur.plot(sx, sy, xmin, ymin, xmax, ymax)
251
+ # restore the palette
252
+ cur.mypal = oldpal
253
+
254
+ else:
255
+ cur.plot(sx, sy, xmin, ymin, xmax, ymax)
195
256
 
196
- cur.plot(sx,sy,xmin,ymin,xmax,ymax)
197
257
  cur.plotted = oldplotted
198
258
 
199
259
  def find_minmax(self):
260
+ """ Find the spatial bounds of the view."""
261
+
200
262
  xmin = 1.e30
201
263
  ymin = 1.e30
202
264
  xmax = -1.e30
203
265
  ymax = -1.e30
204
266
 
205
267
  for cur in self.view:
206
- if isinstance(cur,WolfArray) or isinstance(cur,WolfArrayMB):
207
- x,y = cur.get_bounds()
268
+ if isinstance(cur, WolfArray) or isinstance(cur, WolfArrayMB):
269
+ x, y = cur.get_bounds()
208
270
  xmin = min(x[0], xmin)
209
271
  xmax = max(x[1], xmax)
210
272
  ymin = min(y[0], ymin)
wolfhece/wolf_array.py CHANGED
@@ -53,7 +53,7 @@ from .drawing_obj import Element_To_Draw
53
53
 
54
54
  try:
55
55
  from .libs import wolfogl
56
- except:
56
+ except ImportError:
57
57
  msg=_('Error importing wolfogl.pyd')
58
58
  msg+=_(' Python version : ' + sys.version)
59
59
  msg+=_(' If your Python version is not 3.10.x, you need to get an adapted library in wolfhece library path libs')
@@ -4163,7 +4163,7 @@ class WolfArray(Element_To_Draw, header_wolf):
4163
4163
  create:bool = False,
4164
4164
  mapviewer = None,
4165
4165
  nullvalue:float = 0.,
4166
- srcheader:header_wolf = None,
4166
+ srcheader:header_wolf = None,
4167
4167
  idx:str = '',
4168
4168
  plotted:bool = False,
4169
4169
  need_for_wx:bool = False,
@@ -4173,7 +4173,7 @@ class WolfArray(Element_To_Draw, header_wolf):
4173
4173
  Constructor of the WolfArray class
4174
4174
 
4175
4175
  :param fname: filename/filepath - if provided, the file will be read on disk
4176
- :param mold: initialize from a copy a the mold object --> must be a WolArray
4176
+ :param mold: initialize from a copy a the mold object --> must be a WolArray if not None
4177
4177
  :param masknull: mask data based on the nullvalue
4178
4178
  :param crop: crop data based on the spatial extent [[xmin, xmax],[ymin,ymax]]
4179
4179
  :param whichtype: type of the numpy array (float32 as default)
@@ -4188,7 +4188,11 @@ class WolfArray(Element_To_Draw, header_wolf):
4188
4188
  :param mask_source: mask to link to the data
4189
4189
 
4190
4190
  """
4191
- # wolfogl.powermode('ON')
4191
+ try:
4192
+ pass
4193
+ # wolfogl.powermode('ON')
4194
+ except PermissionError:
4195
+ print(_('wolfogl not available -- Pleas check your wolfhece installation'))
4192
4196
 
4193
4197
  Element_To_Draw.__init__(self, idx, plotted, mapviewer, need_for_wx)
4194
4198
  header_wolf.__init__(self)
@@ -6182,6 +6186,9 @@ class WolfArray(Element_To_Draw, header_wolf):
6182
6186
  else:
6183
6187
  newArray.array = np.ma.masked_array(self.array + other.array, self.array.mask)
6184
6188
  newArray.count()
6189
+
6190
+ assert newArray.array.dtype == self.array.dtype, _('Bad dtype')
6191
+
6185
6192
  return newArray
6186
6193
 
6187
6194
  def __mul__(self, other):
@@ -6208,6 +6215,9 @@ class WolfArray(Element_To_Draw, header_wolf):
6208
6215
  else:
6209
6216
  newArray.array = np.ma.masked_array(self.array * other.array, self.array.mask)
6210
6217
  newArray.count()
6218
+
6219
+ assert newArray.array.dtype == self.array.dtype, _('Bad dtype')
6220
+
6211
6221
  return newArray
6212
6222
 
6213
6223
  def __sub__(self, other):
@@ -6234,6 +6244,9 @@ class WolfArray(Element_To_Draw, header_wolf):
6234
6244
  else:
6235
6245
  newArray.array = np.ma.masked_array(self.array - other.array, self.array.mask)
6236
6246
  newArray.count()
6247
+
6248
+ assert newArray.array.dtype == self.array.dtype, _('Bad dtype')
6249
+
6237
6250
  return newArray
6238
6251
 
6239
6252
  def __pow__(self, other):
@@ -6256,6 +6269,9 @@ class WolfArray(Element_To_Draw, header_wolf):
6256
6269
 
6257
6270
  newArray.array = np.ma.masked_array(self.array ** other, self.array.mask)
6258
6271
  newArray.count()
6272
+
6273
+ assert newArray.array.dtype == self.array.dtype, _('Bad dtype')
6274
+
6259
6275
  return newArray
6260
6276
 
6261
6277
  def __truediv__(self, other):
@@ -6282,6 +6298,9 @@ class WolfArray(Element_To_Draw, header_wolf):
6282
6298
  else:
6283
6299
  newArray.array = np.ma.masked_array(np.where(other == 0., 0., self.array / other.array), self.array.mask)
6284
6300
  newArray.count()
6301
+
6302
+ assert newArray.array.dtype == self.array.dtype, _('Bad dtype')
6303
+
6285
6304
  return newArray
6286
6305
 
6287
6306
  def concatenate(self, list_arr:list["WolfArray"], nullvalue:float = 0.):
@@ -1787,14 +1787,20 @@ class OneWolfResult:
1787
1787
  self._current.rgb = curpal.get_rgba(self._current.array)
1788
1788
  self._current.rgb[self._current.array.mask] = [1., 1., 1., 1.]
1789
1789
 
1790
- if which == 'wd_u':
1791
- self._view.pals = [bluepal,curpal]
1792
- elif which =='t_wl_q':
1793
- self._view.pals = [graypal,curpal,None]
1794
- elif which =='t_wd_q':
1795
- self._view.pals = [graypal,bluepal,None]
1796
- elif which =='t_wd_u':
1797
- self._view.pals = [graypal,bluepal,None]
1790
+ if which in [views_2D.WD_Q, views_2D.WD_U]:
1791
+ self._view.pals = [curpal, None]
1792
+ elif which in [views_2D.WL_U, views_2D.WL_Q]:
1793
+ self._view.pals = [curpal, None]
1794
+
1795
+ elif which == views_2D.T_WL_Q:
1796
+ self._view.pals = [graypal, curpal, None]
1797
+ elif which == views_2D.T_WL_Q:
1798
+ self._view.pals = [graypal, curpal, None]
1799
+
1800
+ elif which == views_2D.T_WD_Q:
1801
+ self._view.pals = [graypal, bluepal, None]
1802
+ elif which == views_2D.T_WD_U:
1803
+ self._view.pals = [graypal, bluepal, None]
1798
1804
 
1799
1805
  def get_critdiam(self, which:int) -> WolfArray:
1800
1806
  """
@@ -4039,8 +4045,11 @@ class Wolfresults_2D(Element_To_Draw):
4039
4045
  self.palgray.defaultgray()
4040
4046
  self.palblue.defaultblue()
4041
4047
 
4042
- self.palgray.values[0],self.palgray.values[-1] = self.get_min_max(views_2D.TOPOGRAPHY)
4043
- self.palblue.values[0],self.palblue.values[-1] = self.get_min_max(views_2D.WATERDEPTH)
4048
+ locmin, locmax = self.get_min_max(views_2D.TOPOGRAPHY)
4049
+ self.palgray.distribute_values(locmin, locmax)
4050
+
4051
+ locmin, locmax = self.get_min_max(views_2D.WATERDEPTH)
4052
+ self.palblue.distribute_values(locmin, locmax)
4044
4053
 
4045
4054
  if self.mypal.automatic:
4046
4055
  # self.mypal.default16()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: wolfhece
3
- Version: 2.1.38
3
+ Version: 2.1.40
4
4
  Author-email: Pierre Archambeau <pierre.archambeau@uliege.be>
5
5
  License: Copyright (c) 2024 University of Liege. All rights reserved.
6
6
  Project-URL: Homepage, https://uee.uliege.be/hece
@@ -10,7 +10,7 @@ wolfhece/PyDraw.py,sha256=MQO149Cp8QtxWceXpKWLsDbE6JBrVbqEWoAOXWfHl2w,390751
10
10
  wolfhece/PyGui.py,sha256=_1LKelusQ-FS0AtgpwFiXKMZ2glky7K1WINTI93H0k0,103438
11
11
  wolfhece/PyGuiHydrology.py,sha256=f60E8K9eGTnRq5RDF6yvt-ahf2AYegwQ9t25zZ2Mk1A,14946
12
12
  wolfhece/PyHydrographs.py,sha256=jwtSNMMACwarxrtN1UeQYth99UNrhwPx1IGgUwcooHA,3774
13
- wolfhece/PyPalette.py,sha256=lqWd-jZkEyYeeAyaiIaGZq_bxXRiiMhDXN68QYoVCfU,26181
13
+ wolfhece/PyPalette.py,sha256=5TvXF5wWDxP4e70zO9B0UMgVP9c0oAzerM28aoJ1CTg,27982
14
14
  wolfhece/PyParams.py,sha256=wwgmP-_7wiiPLTcyX8a5jR6FyC1D2c4oBPc1VWQqtSA,97383
15
15
  wolfhece/PyPictures.py,sha256=m1kY0saW6Y9Q0bDCo47lW6XxDkBrbQG-Fd8uVn8G5ic,2514
16
16
  wolfhece/PyTranslate.py,sha256=4appkmNeHHZLFmUtaA_k5_5QL-5ymxnbVN4R2OblmtE,622
@@ -42,18 +42,18 @@ wolfhece/pydike.py,sha256=hPBQsmSTW4QAp1wcOzb-TL3L7eet2WT1sJx2q-WNQ-Q,2241
42
42
  wolfhece/pylogging.py,sha256=4TI8hgBB65z-zpvU5Rfa2jkPXPhJaqXjHVPwbcdzTNc,4528
43
43
  wolfhece/pypolygons_scen.py,sha256=x-tnYLNq3MPV51NbaU14trgRj8qyUyOrMdF1zDsUX3I,37444
44
44
  wolfhece/pyshields.py,sha256=7k-qe2EJgr9fJE62jyPmlWQwRj8T0DK4iuMU844ZhYs,23281
45
- wolfhece/pyviews.py,sha256=G4PHtXJ8F9PQDt_hcKnxF5kmA1_Fy-8hGiJN2wa_9j4,10017
45
+ wolfhece/pyviews.py,sha256=AUtJY5V43XVH9juIKUSsozKbpkXHCEkWxn0GWuvAo_0,12562
46
46
  wolfhece/pywalous.py,sha256=yRaWJjKckXef1d9D5devP0yFHC9uc6kRV4G5x9PNq9k,18972
47
47
  wolfhece/rain_SPWMI.py,sha256=qCfcmF7LajloOaCwnTrrSMzyME03YyilmRUOqrPrv3U,13846
48
48
  wolfhece/textpillow.py,sha256=map7HsGYML_o5NHRdFg2s_TVQed_lDnpYNDv27MM0Vw,14130
49
49
  wolfhece/tools_mpl.py,sha256=gQ3Jg1iuZiecmMqa5Eli2ZLSkttu68VXL8YmMDBaEYU,564
50
- wolfhece/wolf_array.py,sha256=m0Akg1jpe8L7139afVANhqUI09q7YlQvlGm2mcs7gJQ,356155
50
+ wolfhece/wolf_array.py,sha256=7-5l96kuQdTE3CStLyf8PkyRD3QX1Us7DOTbF7INepY,356721
51
51
  wolfhece/wolf_hist.py,sha256=7jeVrgSkM3ErJO6SRMH_PGzfLjIdw8vTy87kesldggk,3582
52
52
  wolfhece/wolf_texture.py,sha256=EqZI6qCR6ouT3wEtnG_NkVLdvUhfY65JVTj5b6o4lXI,16576
53
53
  wolfhece/wolf_tiles.py,sha256=2Ho2I20rHRY81KXxjgLOYISdF4OkJ2d6omeY4shDoGI,10386
54
54
  wolfhece/wolf_vrt.py,sha256=89XoDhCJMHiwPQUuOduxtTRKuIa8RDxgNqX65S4xp9M,10569
55
55
  wolfhece/wolf_zi_db.py,sha256=baE0niMCzybWGSvPJc5FNxo9ZxsGfU4p-FmfiavFHAs,12967
56
- wolfhece/wolfresults_2D.py,sha256=U6k8BeQj2g3EUpAQq7m0nSdLtNKrrn_knWKKs1KoAQ8,165462
56
+ wolfhece/wolfresults_2D.py,sha256=REuQy3fFiEUXt9lNZk0gOg7FbcDEjzAfFNa5H3JqOzg,165764
57
57
  wolfhece/xyz_file.py,sha256=Se4nCPwYAYLSA5i0zsbnZUKoAMAD0mK1FJea5WSZUkk,5755
58
58
  wolfhece/acceptability/Parallels.py,sha256=h4tu3SpC_hR5Hqa68aruxhtAyhs8u666YuZ40_fR5zg,3979
59
59
  wolfhece/acceptability/__init__.py,sha256=hfgoPKLDpX7drN1Vpvux-_5Lfyc_7feT2C2zQr5v-Os,258
@@ -70,8 +70,8 @@ wolfhece/apps/__init__.py,sha256=OzzKItATWV0mDkz_LC2L3w5sgT2rt8ExXXCbR_FwvlY,24
70
70
  wolfhece/apps/check_install.py,sha256=icFpkjfwNGDX-0NZVa-ijrCrqmGHEKDiFphjN8uTyh8,928
71
71
  wolfhece/apps/curvedigitizer.py,sha256=_hRR2PWow7PU7rTHIbc6ykZ08tCXcK9uy7RFrb4EKkE,5196
72
72
  wolfhece/apps/isocurrent.py,sha256=MuwTodHxdc6PrqNpphR2ntYf1NLL2n9klTPndGrOHDQ,4109
73
- wolfhece/apps/splashscreen.py,sha256=Z95ca-r_SZFpTJZIILuAcKyzl6ElZR08Y5mpQ5y4ZDc,2920
74
- wolfhece/apps/version.py,sha256=oID8AvPVNdgq4kmuDFo7jFiw8pv1XddrAgr_ttxcAgk,388
73
+ wolfhece/apps/splashscreen.py,sha256=SrustmIQeXnsiD-92OzjdGhBi-S7c_j-cSvuX4T6rtg,2929
74
+ wolfhece/apps/version.py,sha256=9XDKRloyrzZNK6z5DhCF-kSsL5NjAunRSHtKAYMCOGo,388
75
75
  wolfhece/apps/wolf.py,sha256=mM6Tyi4DlKQILmO49cDUCip9fYVy-hLXkY3YhZgIeUQ,591
76
76
  wolfhece/apps/wolf2D.py,sha256=yPQGee7fsegoQ8GfWKrWEjX1Az_ApL-UWlBiqPvaIyY,565
77
77
  wolfhece/apps/wolf_logo.bmp,sha256=ruJ4MA51CpGO_AYUp_dB4SWKHelvhOvd7Q8NrVOjDJk,3126
@@ -171,7 +171,7 @@ wolfhece/lazviewer/viewer/viewer.exe,sha256=pF5nwE8vMWlEzkk-SOekae9zpOsPhTWhZbqa
171
171
  wolfhece/lazviewer/viewer/viewer.py,sha256=8_MQCaQOS0Z_oRPiGoRy1lq-aCirReX3hWEBjQID0ig,24665
172
172
  wolfhece/libs/get_infos.cp310-win_amd64.pyd,sha256=45b6uo0r2zPD4KbpHR8QZC0TwQHDb9S0It7-kv0GWTA,77824
173
173
  wolfhece/libs/verify_wolf.cp310-win_amd64.pyd,sha256=ceWkovmTDfQcIzlxOBjUUDoHu6ZglOlUFADaRuAe3WM,127488
174
- wolfhece/libs/wolfogl.cp310-win_amd64.pyd,sha256=1nQE30ZDXTmnjnaJisDDlP5zvt5Chu2Lxz1a-bZTY1A,294912
174
+ wolfhece/libs/wolfogl.cp310-win_amd64.pyd,sha256=e27Epa44wBSrXiwzeUpl2ud8oCPJpFbfWd_5P5l6sAo,294912
175
175
  wolfhece/libs/wolfpy.cp310-win_amd64.pyd,sha256=6omqEaxmQll-Gg24e90wVomAB9rO_tyyOES2FewXn58,36457472
176
176
  wolfhece/libs/GL/gl.h,sha256=IhsS_fOLa8GW9MpiLZebe9QYRy6uIB_qK_uQMWMOoeg,46345
177
177
  wolfhece/libs/GL/glaux.h,sha256=I3vxXdrzVH05TmjEeAOgKn3egbPt34WMjbeKq5LaBvE,7130
@@ -249,8 +249,8 @@ wolfhece/ui/wolf_multiselection_collapsiblepane.py,sha256=8PlMYrb_8jI8h9F0_EagpM
249
249
  wolfhece/ui/wolf_times_selection_comparison_models.py,sha256=ORy7fz4dcp691qKzaOZHrRLZ0uXNhL-LIHxmpDGL6BI,5007
250
250
  wolfhece/wintab/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
251
251
  wolfhece/wintab/wintab.py,sha256=8A-JNONV6ujgsgG3lM5Uw-pVgglPATwKs86oBzzljoc,7179
252
- wolfhece-2.1.38.dist-info/METADATA,sha256=YabVhQz0G97k82q5CR8b4lqyCKpVhdhWpbIrjeJ9Yuw,2463
253
- wolfhece-2.1.38.dist-info/WHEEL,sha256=Wyh-_nZ0DJYolHNn1_hMa4lM7uDedD_RGVwbmTjyItk,91
254
- wolfhece-2.1.38.dist-info/entry_points.txt,sha256=yggeO1Fa80pi2BrOd9k5dTkiFlefGPwG6HztZhY0-qw,366
255
- wolfhece-2.1.38.dist-info/top_level.txt,sha256=EfqZXMVCn7eILUzx9xsEu2oBbSo9liWPFWjIHik0iCI,9
256
- wolfhece-2.1.38.dist-info/RECORD,,
252
+ wolfhece-2.1.40.dist-info/METADATA,sha256=6rjW5iWLs6aXBGRGKa5nQ04PDAos4TOPGh8e0et5qhI,2463
253
+ wolfhece-2.1.40.dist-info/WHEEL,sha256=Wyh-_nZ0DJYolHNn1_hMa4lM7uDedD_RGVwbmTjyItk,91
254
+ wolfhece-2.1.40.dist-info/entry_points.txt,sha256=yggeO1Fa80pi2BrOd9k5dTkiFlefGPwG6HztZhY0-qw,366
255
+ wolfhece-2.1.40.dist-info/top_level.txt,sha256=EfqZXMVCn7eILUzx9xsEu2oBbSo9liWPFWjIHik0iCI,9
256
+ wolfhece-2.1.40.dist-info/RECORD,,