wolfhece 2.2.41__py3-none-any.whl → 2.2.43__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.
wolfhece/wolf_array.py CHANGED
@@ -116,6 +116,30 @@ try:
116
116
  except ImportError as e:
117
117
  raise Exception(_('Error importing pydownloader module'))
118
118
 
119
+
120
+ import math
121
+ from fractions import Fraction
122
+
123
+ def pgcd_decimal(a, b):
124
+ # Convertir les décimaux en fractions exactes
125
+ fa = Fraction(a).limit_denominator()
126
+ fb = Fraction(b).limit_denominator()
127
+
128
+ # Extraire les numérateurs et dénominateurs
129
+ num_a, den_a = fa.numerator, fa.denominator
130
+ num_b, den_b = fb.numerator, fb.denominator
131
+
132
+ # Mettre au même dénominateur
133
+ lcm_den = math.lcm(den_a, den_b)
134
+ a_int = num_a * (lcm_den // den_a)
135
+ b_int = num_b * (lcm_den // den_b)
136
+
137
+ # PGCD des entiers
138
+ pgcd_int = math.gcd(a_int, b_int)
139
+
140
+ # Revenir à l’échelle décimale
141
+ return pgcd_int / lcm_den
142
+
119
143
  WOLF_ARRAY_HILLSHAPE = -1
120
144
  WOLF_ARRAY_FULL_SINGLE = 1
121
145
  WOLF_ARRAY_FULL_DOUBLE = 2
@@ -7288,6 +7312,8 @@ class WolfArray(Element_To_Draw, header_wolf):
7288
7312
  else:
7289
7313
  return
7290
7314
 
7315
+ need_wx = False
7316
+
7291
7317
  raster:gdal.Dataset
7292
7318
  if crop is not None :
7293
7319
  if not os.path.exists(fn):
@@ -7297,44 +7323,47 @@ class WolfArray(Element_To_Draw, header_wolf):
7297
7323
  tmpdx = self.dx
7298
7324
 
7299
7325
  fn_crop = fn + '_crop.tif'
7300
- if type(crop) is np.ndarray:
7301
- pass
7302
- elif type(crop) is list:
7303
- pass
7304
- else:
7305
- if not self.wx_exists:
7306
- logging.error(_('Crop must be a list or a numpy array with 4 values - xmin, xmax, ymin, ymax'))
7307
- return
7308
7326
 
7309
- raster_in:gdal.Dataset
7310
- raster_in = gdal.Open(fn)
7327
+ raster_in:gdal.Dataset
7328
+ raster_in = gdal.Open(fn)
7311
7329
 
7312
- proj = raster_in.GetProjection()
7313
- # check if proj is epsg:31370
7314
- if 'Lambert 72' not in proj and "31370" not in proj:
7315
- logging.error(_('{} projection is not Lambert 72 - EPSG:31370').format(fn))
7330
+ proj = raster_in.GetProjection()
7331
+ # check if proj is epsg:31370
7332
+ if 'Lambert 72' not in proj and "31370" not in proj:
7333
+ logging.error(_('{} projection is not Lambert 72 - EPSG:31370').format(fn))
7316
7334
 
7317
- raster_in2 = gdal.Dataset()
7318
- gdal.Warp(raster_in2, raster_in, dstSRS='EPSG:31370')
7335
+ raster_in2 = gdal.Dataset()
7336
+ gdal.Warp(raster_in2, raster_in, dstSRS='EPSG:31370')
7319
7337
 
7320
- # Close the raster_in
7321
- raster_in.FlushCache()
7322
- raster_in = None
7338
+ # Close the raster_in
7339
+ raster_in.FlushCache()
7340
+ raster_in = None
7323
7341
 
7324
- raster_in = raster_in2
7342
+ raster_in = raster_in2
7325
7343
 
7326
- if raster_in is None:
7327
- logging.error(_('Could not reproject the file {fn}'))
7328
- return
7344
+ if raster_in is None:
7345
+ logging.error(_('Could not reproject the file {fn}'))
7346
+ return
7329
7347
 
7330
- geotr = raster_in.GetGeoTransform()
7331
- self.dx = geotr[1]
7332
- self.dy = abs(geotr[5])
7348
+ geotr = raster_in.GetGeoTransform()
7349
+ self.dx = geotr[1]
7350
+ self.dy = abs(geotr[5])
7333
7351
 
7334
- ulx = geotr[0]
7335
- uly = geotr[3]
7336
- llx = ulx + geotr[1] * raster_in.RasterXSize
7337
- lly = uly + geotr[5] * raster_in.RasterYSize
7352
+ ulx = geotr[0]
7353
+ uly = geotr[3]
7354
+ llx = ulx + geotr[1] * raster_in.RasterXSize
7355
+ lly = uly + geotr[5] * raster_in.RasterYSize
7356
+
7357
+ if type(crop) is np.ndarray:
7358
+ pass
7359
+ elif type(crop) in [list, tuple]:
7360
+ pass
7361
+ else:
7362
+ if not self.wx_exists:
7363
+ logging.error(_('Crop must be a list or a numpy array with 4 values - xmin, xmax, ymin, ymax'))
7364
+ return
7365
+
7366
+ need_wx = True
7338
7367
 
7339
7368
  newcrop = CropDialog(None, self.get_mapviewer())
7340
7369
 
@@ -7375,7 +7404,7 @@ class WolfArray(Element_To_Draw, header_wolf):
7375
7404
 
7376
7405
  xmin, xmax, ymin, ymax = crop
7377
7406
 
7378
- if self.wx_exists:
7407
+ if need_wx:
7379
7408
 
7380
7409
  with wx.FileDialog(None, _('Save the cropped file for later'), wildcard="Tiff files (*.tif)|*.tif",
7381
7410
  style=wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT) as fileDialog:
@@ -7393,15 +7422,13 @@ class WolfArray(Element_To_Draw, header_wolf):
7393
7422
 
7394
7423
  fn = fn_crop
7395
7424
  else:
7396
- from tempfile import NamedTemporaryFile
7397
- tmpfile = NamedTemporaryFile(suffix='.tif')
7425
+ fn_tmp = '__tmp_wolf.tif'
7398
7426
 
7399
7427
  if uly > lly:
7400
- raster = gdal.Translate(str(tmpfile.name), fn, projWin=[xmin, ymax, xmax, ymin])
7428
+ raster = gdal.Translate(fn_tmp, fn, projWin=[xmin, ymax, xmax, ymin])
7401
7429
  else:
7402
- raster = gdal.Translate(str(tmpfile.name), fn, projWin=[xmin, ymin, xmax, ymax])
7403
-
7404
- fn = str(tmpfile.name)
7430
+ raster = gdal.Translate(fn_tmp, fn, projWin=[xmin, ymin, xmax, ymax])
7431
+ fn = fn_tmp
7405
7432
  else:
7406
7433
  raster = gdal.Open(fn)
7407
7434
 
@@ -7501,6 +7528,12 @@ class WolfArray(Element_To_Draw, header_wolf):
7501
7528
  raster.FlushCache()
7502
7529
  raster = None
7503
7530
 
7531
+ try:
7532
+ if fn_tmp == '__tmp_wolf.tif':
7533
+ os.remove(fn_tmp)
7534
+ except:
7535
+ pass
7536
+
7504
7537
  def add_ops_sel(self):
7505
7538
  """
7506
7539
  Adding selection manager and operations array
@@ -10254,7 +10287,7 @@ class WolfArray(Element_To_Draw, header_wolf):
10254
10287
  self.write_txt_header()
10255
10288
  self.write_array()
10256
10289
 
10257
- def get_rebin_shape_size(self, factor:float) -> tuple[tuple[int, int], tuple[float, float]]:
10290
+ def get_rebin_shape_size(self, factor:float, reshape_array_if_necessary:bool = False) -> tuple[tuple[int, int], tuple[float, float]]:
10258
10291
  """
10259
10292
  Return the new shape after rebinning.
10260
10293
 
@@ -10274,13 +10307,44 @@ class WolfArray(Element_To_Draw, header_wolf):
10274
10307
 
10275
10308
  newnbx = self.nbx
10276
10309
  newnby = self.nby
10277
- if np.mod(self.nbx,factor) != 0 or np.mod(self.nby,factor) != 0 :
10278
- newnbx = self.nbx
10279
- newnby = self.nby
10280
- if np.mod(self.nbx,factor) !=0:
10281
- newnbx = self.nbx + factor - np.mod(self.nbx,factor)
10282
- if np.mod(self.nby,factor) !=0:
10283
- newnby = self.nby + factor - np.mod(self.nby,factor)
10310
+
10311
+ if factor >=1.0:
10312
+ # Decrease resolution
10313
+ to_reshape = False
10314
+ if np.mod(self.nbx,factor) != 0 or np.mod(self.nby,factor) != 0 :
10315
+ newnbx = self.nbx
10316
+ newnby = self.nby
10317
+ if np.mod(self.nbx,factor) !=0:
10318
+ newnbx = int(self.nbx + factor - np.mod(self.nbx,factor))
10319
+ to_reshape = True
10320
+ if np.mod(self.nby,factor) !=0:
10321
+ newnby = int(self.nby + factor - np.mod(self.nby,factor))
10322
+ to_reshape = True
10323
+
10324
+ if to_reshape and reshape_array_if_necessary:
10325
+ logging.warning(f"The shape ({self.nbx}, {self.nby}) is not a multiple of the factor {factor}")
10326
+ new_array = ma.masked_array(np.ones((newnbx, newnby), dtype= self.dtype) * self.nullvalue, dtype= self.dtype)
10327
+ new_array[:self.nbx, :self.nby] = self.array
10328
+ self.array = new_array
10329
+ else:
10330
+ # Increase resolution
10331
+ if abs(int(1/factor) - 1/factor) > 1e-6:
10332
+ # find the greatest common divisor of between self.dx and old_dx
10333
+ gcd = pgcd_decimal(self.dx, self.dx * factor)
10334
+ intermediate_factor = gcd / self.dx
10335
+
10336
+ [newnbx,newnby], [dx,dy] = self.get_rebin_shape_size(intermediate_factor)
10337
+
10338
+ factor = factor / intermediate_factor
10339
+
10340
+ if np.mod(newnbx,factor) != 0 or np.mod(newnby,factor) != 0 :
10341
+ if np.mod(newnbx,factor) !=0:
10342
+ newnbx = int(newnbx + factor - np.mod(newnbx,factor))
10343
+ if np.mod(newnby,factor) !=0:
10344
+ newnby = int(newnby + factor - np.mod(newnby,factor))
10345
+
10346
+ newdx = dx * factor
10347
+ newdy = dy * factor
10284
10348
 
10285
10349
  newnbx = int(newnbx / factor)
10286
10350
  newnby = int(newnby / factor)
@@ -10327,6 +10391,9 @@ class WolfArray(Element_To_Draw, header_wolf):
10327
10391
 
10328
10392
  """
10329
10393
 
10394
+ op_str = operation
10395
+ (testnbx, testnby), __ = self.get_rebin_shape_size(factor)
10396
+
10330
10397
  if operation_matrix is not None:
10331
10398
  tmp_header = self.get_rebin_header(factor)
10332
10399
  if not operation_matrix.is_like(tmp_header):
@@ -10348,36 +10415,11 @@ class WolfArray(Element_To_Draw, header_wolf):
10348
10415
  logging.error(_("Operator not supported -- Must be a string in ['sum', 'mean', 'min', 'max', 'median'] or a Rebin_Ops Enum"))
10349
10416
 
10350
10417
 
10351
- if np.mod(self.nbx,factor) != 0 or np.mod(self.nby,factor) != 0 :
10352
- # The shape is adjusted to be a multiple of the factor.
10353
- # Fill the array with nullvalue
10354
- newnbx = self.nbx
10355
- newnby = self.nby
10356
- if np.mod(self.nbx,factor) !=0:
10357
- newnbx = int(self.nbx + factor - np.mod(self.nbx,factor))
10358
- if np.mod(self.nby,factor) !=0:
10359
- newnby = int(self.nby + factor - np.mod(self.nby,factor))
10360
-
10361
- # We ensure that the null_value is converted to the type of the array.
10362
- # Not doing so leads to a change in the array type because
10363
- # of numpy2 type promotion.
10364
- newarray = np.ma.masked_array( np.full((newnbx,newnby), self.nullvalue, dtype = self.dtype) )
10365
- #newarray = np.ma.ones((newnbx,newnby), dtype = self.dtype) * self.nullvalue
10366
- newarray[:self.nbx,:self.nby] = self.array
10367
- newarray.mask[:self.nbx,:self.nby] = self.array.mask
10368
- self.array = newarray
10369
-
10370
- self.nbx = newnbx
10371
- self.nby = newnby
10372
-
10373
- self.nbx = int(self.nbx / factor)
10374
- self.nby = int(self.nby / factor)
10375
-
10376
- self.dx = self.dx * float(factor)
10377
- self.dy = self.dy * float(factor)
10378
- new_shape = (self.nbx, self.nby)
10379
-
10380
- if factor>1.:
10418
+ new_shape, (dx, dy) = self.get_rebin_shape_size(factor, reshape_array_if_necessary= True)
10419
+
10420
+ if factor >=1.0:
10421
+ # Decrease resolution
10422
+
10381
10423
  if operation_matrix is not None:
10382
10424
  # Reshape the input array to split it into blocks of size f x f
10383
10425
  reshaped_a = self.array.reshape(new_shape[0], int(factor), new_shape[1], int(factor))
@@ -10407,15 +10449,43 @@ class WolfArray(Element_To_Draw, header_wolf):
10407
10449
  self.set_nullvalue_in_mask()
10408
10450
  else:
10409
10451
 
10410
- if (int(1/factor) - 1/factor) > 1e-6:
10452
+ # Increase resolution
10453
+
10454
+ if abs(int(1/factor) - 1/factor) > 1e-6:
10411
10455
  logging.warning(f"The factor {factor} doesn't lead to an integer dimension for the Kronecker product")
10456
+ logging.warning("The array will be rebinned firstly using the most common factor and then using the operation")
10457
+
10458
+ # find the greatest common divisor of between self.dx and old_dx
10459
+ gcd = pgcd_decimal(self.dx, self.dx * factor)
10460
+ intermediate_factor = gcd / self.dx
10461
+
10462
+ logging.warning(f"The greatest common divisor is {gcd}")
10463
+
10464
+ tmp = WolfArray(mold=self, whichtype=self.wolftype)
10465
+ tmp.rebin(intermediate_factor)
10412
10466
 
10413
- ones = np.ones( (int(1/factor), int(1/factor)), dtype=int)
10414
- self.array = np.kron(self.array, ones).astype(self.array.dtype)
10467
+ if op_str is None:
10468
+ op_str = 'min'
10415
10469
 
10470
+ tmp.rebin(factor / intermediate_factor, operation= op_str)
10471
+ self.array = tmp.array
10472
+ tmp.array = None
10473
+ del tmp
10474
+ else:
10475
+
10476
+ ones = np.ones( (int(1/factor), int(1/factor)), dtype=int)
10477
+ self.array = np.kron(self.array, ones).astype(self.array.dtype)
10416
10478
 
10417
10479
  self.mask_data(self.nullvalue)
10418
10480
 
10481
+ self.nbx = new_shape[0]
10482
+ self.nby = new_shape[1]
10483
+ self.dx = dx
10484
+ self.dy = dy
10485
+
10486
+ assert isinstance(self.array, ma.MaskedArray), _('The array must be a masked array')
10487
+ assert self.array.shape == (testnbx, testnby), _(f'Bad shape: {self.array.shape} != {(testnbx, testnby)}')
10488
+
10419
10489
  self.count()
10420
10490
 
10421
10491
  # rebin must not change the type of the array
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wolfhece
3
- Version: 2.2.41
3
+ Version: 2.2.43
4
4
  Author-email: Pierre Archambeau <pierre.archambeau@uliege.be>
5
5
  Project-URL: Homepage, https://uee.uliege.be/hece
6
6
  Project-URL: Issues, https://uee.uliege.be/hece
@@ -9,7 +9,7 @@ wolfhece/MulticriteriAnalysis.py,sha256=vGmkzYagZohNe0XjwGJ6VUXcDPjOt80lNFthXpzx
9
9
  wolfhece/PandasGrid.py,sha256=etfVhIHzja4Z1EUY6BcDOKX-w7V-Xou1yaf0NMqmclo,4599
10
10
  wolfhece/PyConfig.py,sha256=13DDWjJdohYHwn1uRVHB0s8Jcwq_b9pwcwbAr8NlZyc,19667
11
11
  wolfhece/PyCrosssections.py,sha256=6K9xhupnIVXzLdsLTPN9e1v0xck9BdWZd0-EgpWg9us,133277
12
- wolfhece/PyDraw.py,sha256=d74OkFrQjN_41xk2jtlY53Pk2OgUD39gwUoOwmybKHU,737432
12
+ wolfhece/PyDraw.py,sha256=jCXBonWGmqTQD9AXsii-yalFpUFLKTrfPP2wzh-57NE,741859
13
13
  wolfhece/PyGui.py,sha256=GpVRxNpR8WNDFyHnDvhtHFFsq_cZZlyVgSkFiS-ARYI,185342
14
14
  wolfhece/PyGuiHydrology.py,sha256=dmBlRO8AljsvCPH6eVt0l9ZLx7g5j7Ubl9Srk7ECwyA,34693
15
15
  wolfhece/PyHydrographs.py,sha256=1P5XAURNqCvtSsMQXhOn1ihjTpr725sRsZdlCEhhk6M,3730
@@ -61,13 +61,13 @@ wolfhece/pylogging.py,sha256=4TI8hgBB65z-zpvU5Rfa2jkPXPhJaqXjHVPwbcdzTNc,4528
61
61
  wolfhece/pypolygons_scen.py,sha256=NWaNeK0RSUeOkgukeogK9FLmQiDjGZ9yhqs9208fojM,46237
62
62
  wolfhece/pyshields.py,sha256=KMtUO5kD0lisKnJD1NsDz-qaY5DpFcmS4O3WkXtUSmo,27898
63
63
  wolfhece/pyviews.py,sha256=zuZjWUptRDm1MTE1PN4Xj_qSITnojgDMG0LlFIBH3SE,13739
64
- wolfhece/pywalous.py,sha256=6FTDh0dzKg7H6F7_YXEKT2gmE0OM_a8hvOLhEu4kRpY,26729
64
+ wolfhece/pywalous.py,sha256=qF_hzmVFBjM3JP6RV4tbKEVTBsiOGcBJ_O82uoX2Rxg,38595
65
65
  wolfhece/rain_SPWMI.py,sha256=qCfcmF7LajloOaCwnTrrSMzyME03YyilmRUOqrPrv3U,13846
66
66
  wolfhece/textpillow.py,sha256=7hgfsLYAaE_rNKD-g8xsON8sdWvoV8vbqnGGxIayShE,14137
67
67
  wolfhece/tools2d_dll.py,sha256=TfvvmyZUqEZIH0uHwUCJf0bdmCks_AiidDt23Unsp5w,13550
68
68
  wolfhece/tools_mpl.py,sha256=gQ3Jg1iuZiecmMqa5Eli2ZLSkttu68VXL8YmMDBaEYU,564
69
69
  wolfhece/toolshydrology_dll.py,sha256=cIGyhxV8H5f7GXhDqAamM7uC0W0hQTou3eTkqZdnqBE,5656
70
- wolfhece/wolf_array.py,sha256=T0E46C-hmjJCGp66eHhOGohT_Wo7Jhp0hU6S_EPXYg4,576614
70
+ wolfhece/wolf_array.py,sha256=39O7kYjksEbCC2yn0mu6AfabmVrBWrmoybbfjw4gfIQ,578890
71
71
  wolfhece/wolf_hist.py,sha256=fTEb60Q4TEwobdZsRU4CFXAId1eOKdWAqF8lnF1xEWc,3590
72
72
  wolfhece/wolf_texture.py,sha256=Pt1j_lX74p70Fj3y3qYxYMuN8gghVd8_ih1vFhTIdkA,23884
73
73
  wolfhece/wolf_tiles.py,sha256=v-HohqaWuMYdn75XLnA22dlloAG90iwnIqrgnB0ASQ4,10488
@@ -95,7 +95,7 @@ wolfhece/apps/curvedigitizer.py,sha256=lEJJwgAfulrrWQc-U6ij6sj59hWN3SZl4Yu1kQxVz
95
95
  wolfhece/apps/hydrometry.py,sha256=lhhJsFeb4zGL4bNQTs0co85OQ_6ssL1Oy0OUJCzhfYE,656
96
96
  wolfhece/apps/isocurrent.py,sha256=dagmGR8ja9QQ1gwz_8fU-N052hIw-W0mWGVkzLu6C7I,4247
97
97
  wolfhece/apps/splashscreen.py,sha256=EdGDN9NhudIiP7c3gVqj7dp4MWFB8ySizM_tpMnsgpE,3091
98
- wolfhece/apps/version.py,sha256=g5JvLHmxA33m1kAYqdyNA-LqHE0IxUtstI8t7gQzqQA,388
98
+ wolfhece/apps/version.py,sha256=kWgIrbzo3PaJpeEetSvb9-zhutuO1cGL5wg1gqsJFDM,388
99
99
  wolfhece/apps/wolf.py,sha256=mRnjYsUu4KIsRuamdQWAINFMuwN4eJgMo9erG-hkZ70,729
100
100
  wolfhece/apps/wolf2D.py,sha256=4z_OPQ3IgaLtjexjMKX9ppvqEYyjFLt1hcfFABy3-jU,703
101
101
  wolfhece/apps/wolf_logo.bmp,sha256=ruJ4MA51CpGO_AYUp_dB4SWKHelvhOvd7Q8NrVOjDJk,3126
@@ -243,7 +243,7 @@ wolfhece/mesh2d/config_manager.py,sha256=DcdxCIIs_dyC6ayJOBULeY364LONogL9PBaqBtC
243
243
  wolfhece/mesh2d/cst_2D_boundary_conditions.py,sha256=r43pHHdCtmNp5R2zh1Ckb7EzwQDf6C4YMLwRFTl4KMc,5006
244
244
  wolfhece/mesh2d/gpu_2d.py,sha256=xyZst3ZSYmRp9G0kxlUvTahAiMC9sNEH0MRUlEjqFZI,25999
245
245
  wolfhece/mesh2d/simple_2d.py,sha256=wqENJwpUPxKQcpGIcymQXUj2KgkGWCVH6cs4Os9h9Gs,112581
246
- wolfhece/mesh2d/wolf2dprev.py,sha256=oK9r94CYJaeOBSv4s4mkuhLA8rCsnrkjG2sGW_zR1x0,493127
246
+ wolfhece/mesh2d/wolf2dprev.py,sha256=823RckzGGCQ00h0uti-nL7JoVsAZ_Hv9C02lnvizDIg,495518
247
247
  wolfhece/models/5_coul.pal,sha256=OI1UqcNIDBpJn2k_VDel__r-hKjjvdob0eqinGCI3QY,160
248
248
  wolfhece/models/6_coul.pal,sha256=z7NK2dg0tAQBUweRQV54dIwJbPM1U5y1AR2LLw19Idw,148
249
249
  wolfhece/models/7_coul.pal,sha256=XTnnUyCE8ONokScB2YzYDnSTft7E6sppmr7P-XwMsCE,205
@@ -265,6 +265,7 @@ wolfhece/models/shields_cst.pal,sha256=zUGFI6HiL0bsHeOzcWNih3F9cxXKXLLZYA5rtqRbz
265
265
  wolfhece/models/vulnerability.pal,sha256=Fevrc_9owywLhbPMBunXDcrGXPJhARo9iSV1eOq3roA,106
266
266
  wolfhece/models/walous_niv1.pal,sha256=mHMjCB-ja47mV3ZsvDOhS2CEK8YN6ewOkf1W7l7JQ8k,138
267
267
  wolfhece/models/walous_niv2.pal,sha256=B5wt5-O88dpaiA6yR4uriOy0tfDVU_cms0Xr6Dw9ZGg,377
268
+ wolfhece/models/walous_ocs.pal,sha256=DlicMO2qlH3_WPm_bwVBK6lTuUn2MXRcfIpkjl8D2oo,227
268
269
  wolfhece/models/waterdepths.pal,sha256=8rcQfuZOeLKzYv5sARPkhpvZYc1OToj3ZukcbuRUgIY,136
269
270
  wolfhece/models/white_black.pal,sha256=BKjVN1kuk1OtJB9S3uM5fxteWbggI3Pb8p9WdDptT4c,51
270
271
  wolfhece/opengl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -319,8 +320,8 @@ wolfhece/ui/wolf_multiselection_collapsiblepane.py,sha256=u4C7CXe_bUyGKx7c_Bi0x9
319
320
  wolfhece/ui/wolf_times_selection_comparison_models.py,sha256=ORy7fz4dcp691qKzaOZHrRLZ0uXNhL-LIHxmpDGL6BI,5007
320
321
  wolfhece/wintab/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
321
322
  wolfhece/wintab/wintab.py,sha256=8A-JNONV6ujgsgG3lM5Uw-pVgglPATwKs86oBzzljoc,7179
322
- wolfhece-2.2.41.dist-info/METADATA,sha256=r3CK5pZVkd6vWy34yNRUNSs-yzagEy7TbSM1vrGbG7c,2785
323
- wolfhece-2.2.41.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
324
- wolfhece-2.2.41.dist-info/entry_points.txt,sha256=Jr187pyvA3EeJiQLjZK9yo6mJX7IAn6ygZU9T8qF_gQ,658
325
- wolfhece-2.2.41.dist-info/top_level.txt,sha256=EfqZXMVCn7eILUzx9xsEu2oBbSo9liWPFWjIHik0iCI,9
326
- wolfhece-2.2.41.dist-info/RECORD,,
323
+ wolfhece-2.2.43.dist-info/METADATA,sha256=6-h2-a9g7o3Tg99jRn5s_izELlJ5gWaMZSPzG6SlW0A,2785
324
+ wolfhece-2.2.43.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
325
+ wolfhece-2.2.43.dist-info/entry_points.txt,sha256=Jr187pyvA3EeJiQLjZK9yo6mJX7IAn6ygZU9T8qF_gQ,658
326
+ wolfhece-2.2.43.dist-info/top_level.txt,sha256=EfqZXMVCn7eILUzx9xsEu2oBbSo9liWPFWjIHik0iCI,9
327
+ wolfhece-2.2.43.dist-info/RECORD,,