wolfhece 2.1.125__py3-none-any.whl → 2.1.126__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/PyDraw.py CHANGED
@@ -7404,7 +7404,10 @@ class WolfMapViewer(wx.Frame):
7404
7404
  if self.calculator is None:
7405
7405
  self.calculator = Calculator(mapviewer = self)
7406
7406
  else:
7407
- self.calculator.Show()
7407
+ try:
7408
+ self.calculator.Show()
7409
+ except:
7410
+ self.calculator = Calculator(mapviewer = self)
7408
7411
 
7409
7412
  elif itemlabel == _('Image digitizer...'):
7410
7413
 
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 = 125
8
+ self.patch = 126
9
9
 
10
10
  def __str__(self):
11
11
 
@@ -17,6 +17,7 @@ from matplotlib.figure import Figure
17
17
  from shapely.geometry import LineString, Point, CAP_STYLE, Polygon
18
18
  from shapely.ops import prep
19
19
  import wx
20
+ from tqdm import tqdm
20
21
 
21
22
  from . import viewer
22
23
  from ..PyWMS import getWalonmap
@@ -41,6 +42,7 @@ class Colors_Lazviewer(Enum):
41
42
  ORTHO_2006_2007 = 2006
42
43
  CODE_2013 = 0
43
44
  CODE_2023 = 2
45
+ CODE_2021_2022 = 3
44
46
  FROM_FILE = 1
45
47
 
46
48
  class Classification_LAZ():
@@ -68,6 +70,18 @@ class Classification_LAZ():
68
70
  9 : ['Eau', 'Eau',Colors.rgb_withalpha_float('aqua',1.)],
69
71
  10 : ['Ponts', 'Ponts',Colors.rgb_withalpha_float('lightyellow1',1.)]}
70
72
 
73
+ def init_2021_2022(self):
74
+
75
+ self.class_name = 'SPW 2021-2022'
76
+ self.classification={
77
+ 0 : ['0', 'Pas de classification', Colors.rgb_withalpha_float('black',.2),],
78
+ 1 : ['Hors-sol', 'building, toits et autres', Colors.rgb_withalpha_float('white',.2),],
79
+ 2 : ['Sol', 'y compris talus et digues', Colors.rgb_withalpha_float('brown',1.)],
80
+ 4 : ['Végétation', 'y compris la végétation linéaire', Colors.rgb_withalpha_float('forestgreen',1.)],
81
+ 9 : ['Eau', 'Eau',Colors.rgb_withalpha_float('aqua',1.)],
82
+ 10 : ['Ponts', 'Ponts',Colors.rgb_withalpha_float('lightyellow1',1.)],
83
+ 15 : ['Ligne hautes-tension', 'Ligne hautes-tension',Colors.rgb_withalpha_float('lightcyan1',0.25)]}
84
+
71
85
  def init_2023(self):
72
86
 
73
87
  self.class_name = 'SPW-Geofit 2023'
@@ -155,8 +169,8 @@ class xyz_laz():
155
169
  parts = last_part.split('_')
156
170
 
157
171
  # L'origine est codée dans le nom de fichier
158
- self.origx = float(parts[2])
159
- self.origy = float(parts[3])
172
+ self.origx = float(parts[-3])
173
+ self.origy = float(parts[-2])
160
174
 
161
175
  dx = 2500.
162
176
  dy = 3500.
@@ -590,7 +604,8 @@ class xyz_laz_grids():
590
604
  dirs = listdir(dir_grids)
591
605
 
592
606
  for curdir in dirs:
593
- self.grids.append(xyz_laz_grid(join(dir_grids,curdir)))
607
+ if Path(curdir).is_dir():
608
+ self.grids.append(xyz_laz_grid(join(dir_grids,curdir)))
594
609
 
595
610
  def scan_around(self, xy:Union[LineString,list[list[float], list[float]]], length_buffer=5.):
596
611
  """
@@ -707,42 +722,82 @@ class xyz_laz_grids():
707
722
 
708
723
  return figmpl
709
724
 
710
- def create_from_laz(self, dir_laz:str, shape:str, ds:float = 50, force_format = np.float64):
725
+ def create_from_laz(self, dir_laz:str, shape:str=None, ds:float = 50, force_format = np.float64):
711
726
 
712
727
  try:
713
728
  from ..PyVertexvectors import Zones
714
729
  except:
715
730
  from wolfhece.PyVertexvectors import Zones
716
- vecs = Zones(shape)
717
731
 
718
- for entry in scandir(dir_laz):
732
+ vecs = None
733
+ if shape is not None:
734
+ vecs = Zones(shape)
735
+
736
+ dir_laz = Path(dir_laz)
737
+
738
+ for entry in tqdm(dir_laz.glob('**/*.laz')):
719
739
  if entry.is_file():
720
- if entry.name.endswith('.laz'):
721
740
 
722
- file_wo_suf = entry.name.removesuffix('.laz')
723
- dirname = join(self.dir, file_wo_suf)
741
+ file_wo_suf = entry.stem
742
+ dirname = join(self.dir, file_wo_suf)
724
743
 
725
- if not exists(dirname):
726
- makedirs(dirname, exist_ok=True)
744
+ if not exists(dirname):
745
+ makedirs(dirname, exist_ok=True)
727
746
 
728
- newlaz = xyz_laz_grid(mydir=dirname)
747
+ newlaz = xyz_laz_grid(mydir=dirname)
729
748
 
749
+ if vecs is not None:
730
750
  vec = vecs.get_zone(file_wo_suf)
731
751
  bounds = vec.myvectors[0].get_bounds()
752
+ else:
753
+ lazdata = laspy.read(entry)
754
+ bounds = [[lazdata.x.min(), lazdata.y.min()],
755
+ [lazdata.x.max(), lazdata.y.max()]]
756
+
757
+ bounds = [[math.floor(bounds[0][0]/ds)*ds, math.floor(bounds[0][1]/ds)*ds],
758
+ [math.ceil(bounds[1][0]/ds)*ds, math.ceil(bounds[1][1]/ds)*ds]]
759
+
760
+ dx = bounds[1][0] -bounds[0][0]
761
+ dy = bounds[1][1] -bounds[0][1]
762
+ nb = max(int(dx/ds), int(dy/ds))
763
+
764
+ self.grids.append(newlaz._sort_grid_np(entry,
765
+ join(dirname, file_wo_suf),
766
+ bounds=[[bounds[0][0], bounds[1][0]], [bounds[0][1], bounds[1][1]]],
767
+ gridsize=[max(int(dx/ds),1), max(int(dy/ds),1)],
768
+ force_format=force_format))
769
+
770
+ def create_bounds_shape(self, dir_laz:str, out_shape:str):
771
+ """ Create shape from laz files """
772
+ try:
773
+ from ..PyVertexvectors import Zones
774
+ except:
775
+ from wolfhece.PyVertexvectors import Zones
776
+
777
+ dir_laz = Path(dir_laz)
778
+ out_shape = Path(out_shape)
779
+
780
+ vecs = Zones()
781
+
782
+ for entry in tqdm(dir_laz.glob('**/*.laz')):
783
+ if entry.is_file():
784
+ lazdata = laspy.read(entry)
732
785
 
733
- bounds = [[math.floor(bounds[0][0]/ds)*ds, math.floor(bounds[0][1]/ds)*ds],
734
- [math.ceil(bounds[1][0]/ds)*ds, math.ceil(bounds[1][1]/ds)*ds]]
786
+ bounds = [[lazdata.x.min(), lazdata.y.min()],
787
+ [lazdata.x.max(), lazdata.y.max()]]
788
+ loczone = zone(name=entry.stem)
789
+ locvec = vector(name=entry.stem)
735
790
 
736
- dx = bounds[1][0] -bounds[0][0]
737
- dy = bounds[1][1] -bounds[0][1]
738
- nb = max(int(dx/ds), int(dy/ds))
791
+ locvec.add_vertex(wolfvertex(bounds[0][0], bounds[0][1]))
792
+ locvec.add_vertex(wolfvertex(bounds[1][0], bounds[0][1]))
793
+ locvec.add_vertex(wolfvertex(bounds[1][0], bounds[1][1]))
794
+ locvec.add_vertex(wolfvertex(bounds[0][0], bounds[1][1]))
795
+ locvec.close_force()
739
796
 
740
- self.grids.append(newlaz._sort_grid_np(entry.path,
741
- join(dirname, file_wo_suf),
742
- bounds=[[bounds[0][0], bounds[1][0]], [bounds[0][1], bounds[1][1]]],
743
- gridsize=[max(int(dx/ds),1), max(int(dy/ds),1)],
744
- force_format=force_format))
797
+ loczone.add_vector(locvec, forceparent=True)
798
+ vecs.add_zone(loczone, forceparent=True)
745
799
 
800
+ vecs.saveas(Path(self.dir) / out_shape)
746
801
 
747
802
  class Wolf_LAZ_Data(Element_To_Draw):
748
803
  """ Base class for LAZ data which can be imported in Pydraw.Mapviewer.
@@ -1145,6 +1200,8 @@ class Wolf_LAZ_Data(Element_To_Draw):
1145
1200
  logging.warning(_('No classification chosen - Abort !'))
1146
1201
  elif classification == 'SPW 2013-2014':
1147
1202
  self.classification.init_2013()
1203
+ elif classification == 'SPW 2021-2022':
1204
+ self.classification.init_2021_2022()
1148
1205
  else:
1149
1206
  self.classification.init_2023()
1150
1207
 
@@ -1900,6 +1957,34 @@ def get_colors(las:laspy.LasData, which_colors:Colors_Lazviewer, imsize=2000, fn
1900
1957
  name, comment, color = value
1901
1958
  colors[myclass==int(key)] = color
1902
1959
 
1960
+ elif which_colors==Colors_Lazviewer.CODE_2021_2022.value:
1961
+ """
1962
+ - Rebus/non classés - Code 0;
1963
+ - Hors-sol (building, toits et autres) - Code 1;
1964
+ - Sol (y compris talus et digues) - Code 2;
1965
+ - Végétation haute (y compris la végétation linéaire) - Code 4;
1966
+ - Eau - Code 9;
1967
+ - Pont – Code 10;
1968
+ - Ligne hautes-tension - Code 15.
1969
+ """
1970
+ if type(las) is laspy.LasData:
1971
+ myclass = las.classification
1972
+ elif type(las) is list:
1973
+ myclass=[]
1974
+ for curlas in las:
1975
+ myclass.append(curlas.classification)
1976
+ myclass = np.concatenate(myclass)
1977
+ else:
1978
+ myclass = np.int8(las[:,3])
1979
+
1980
+ if palette_classif is None:
1981
+ palette_classif = Classification_LAZ()
1982
+ palette_classif.init_2021_2022()
1983
+
1984
+ for key, value in palette_classif.classification.items():
1985
+ name, comment, color = value
1986
+ colors[myclass==int(key)] = color
1987
+
1903
1988
  elif which_colors==Colors_Lazviewer.CODE_2023.value:
1904
1989
 
1905
1990
  if palette_classif is None:
@@ -116,7 +116,7 @@ class Calculator(wx.Frame):
116
116
  from ..PyDraw import draw_type
117
117
  ids = self._mapviewer.get_list_keys(drawing_type=draw_type.ARRAYS, checked_state=None)
118
118
  for id in ids:
119
- self.memory_txt += id
119
+ self.memory_txt = id
120
120
 
121
121
  def memory_clear_event(self, e):
122
122
  self.memory_clear()
wolfhece/wolf_array.py CHANGED
@@ -1912,6 +1912,8 @@ class Ops_Array(wx.Frame):
1912
1912
 
1913
1913
  self.labelling = wx.Button(self.tools, wx.ID_ANY, _("Labelling"), wx.DefaultPosition,wx.DefaultSize, 0)
1914
1914
 
1915
+ self.clean = wx.Button(self.tools, wx.ID_ANY, _("Clean"), wx.DefaultPosition,wx.DefaultSize, 0)
1916
+
1915
1917
  self.extract_selection = wx.Button(self.tools, wx.ID_ANY, _("Extract selection"), wx.DefaultPosition,wx.DefaultSize, 0)
1916
1918
 
1917
1919
  cont_sizer = wx.BoxSizer(wx.HORIZONTAL)
@@ -1926,6 +1928,7 @@ class Ops_Array(wx.Frame):
1926
1928
  Toolssizer.Add(self.nullborder, 1, wx.EXPAND)
1927
1929
  Toolssizer.Add(self.filter_zone, 1, wx.EXPAND)
1928
1930
  Toolssizer.Add(self.labelling, 1, wx.EXPAND)
1931
+ Toolssizer.Add(self.clean, 1, wx.EXPAND)
1929
1932
  Toolssizer.Add(self.extract_selection, 1, wx.EXPAND)
1930
1933
  Toolssizer.Add(cont_sizer, 1, wx.EXPAND)
1931
1934
 
@@ -1933,6 +1936,7 @@ class Ops_Array(wx.Frame):
1933
1936
  self.nullborder.SetToolTip(_("Set null value on the border of the array\n\nYou will be asked for the width of the border (in cells)"))
1934
1937
  self.filter_zone.SetToolTip(_("Filter the array based on contiguous zones\n\nConservation of the ones which contain selected nodes"))
1935
1938
  self.labelling.SetToolTip(_("Labelling of contiguous zones using Scipy.label function\n\nReplacing the current values by the labels"))
1939
+ self.clean.SetToolTip(_("Clean the array\n\nRemove small isolated patches of data"))
1936
1940
  self.extract_selection.SetToolTip(_("Extract the current selection"))
1937
1941
 
1938
1942
  self.tools.SetSizer(Toolssizer)
@@ -2304,6 +2308,7 @@ class Ops_Array(wx.Frame):
2304
2308
  self.ApplyTools.Bind(wx.EVT_BUTTON, self.OnApplyNullvalue)
2305
2309
  self.nullborder.Bind(wx.EVT_BUTTON, self.OnNullBorder)
2306
2310
  self.filter_zone.Bind(wx.EVT_BUTTON, self.OnFilterZone)
2311
+ self.clean.Bind(wx.EVT_BUTTON, self.OnClean)
2307
2312
  self.labelling.Bind(wx.EVT_BUTTON, self.OnLabelling)
2308
2313
  self.extract_selection.Bind(wx.EVT_BUTTON, self.OnExtractSelection)
2309
2314
  self._contour_int.Bind(wx.EVT_BUTTON, self.OnContourInt)
@@ -2743,7 +2748,6 @@ class Ops_Array(wx.Frame):
2743
2748
  def OnFilterZone(self, event:wx.MouseEvent):
2744
2749
  """ Filter the array based on contiguous zones """
2745
2750
 
2746
- pass
2747
2751
  self.parentarray.filter_zone()
2748
2752
 
2749
2753
  dlg = wx.MessageDialog(None, _('Do you want to set null value in the masked data ?'), _('Masked data'), wx.YES_NO | wx.ICON_QUESTION)
@@ -2754,6 +2758,27 @@ class Ops_Array(wx.Frame):
2754
2758
 
2755
2759
  dlg.Destroy()
2756
2760
 
2761
+ def OnClean(self, event:wx.MouseEvent):
2762
+ """ Clean the array -- Remove the isolated cells """
2763
+
2764
+ dlg = wx.NumberEntryDialog(None, 'Minimum number of nodes for a patch to be kept', 'Minimum number of nodes', 'Minimum number of nodes', 10, 1, 1000)
2765
+ if dlg.ShowModal() != wx.ID_OK:
2766
+ dlg.Destroy()
2767
+ return
2768
+
2769
+ minnodes = dlg.GetValue()
2770
+ self.parentarray.clean_small_patches(minnodes)
2771
+
2772
+ dlg.Destroy()
2773
+
2774
+ dlg = wx.MessageDialog(None, _('Do you want to set null value in the masked data ?'), _('Masked data'), wx.YES_NO | wx.ICON_QUESTION)
2775
+ ret = dlg.ShowModal()
2776
+
2777
+ if ret == wx.ID_YES:
2778
+ self.parentarray.set_nullvalue_in_mask()
2779
+
2780
+ dlg.Destroy()
2781
+
2757
2782
  def OnLabelling(self, event:wx.MouseEvent):
2758
2783
  """ Labelling of contiguous zones """
2759
2784
 
@@ -5814,6 +5839,35 @@ class WolfArray(Element_To_Draw, header_wolf):
5814
5839
  if reset_plot:
5815
5840
  self.reset_plot()
5816
5841
 
5842
+ def clean_small_patches(self, min_size:int = 1, set_null:bool = False, reset_plot:bool = True):
5843
+ """ Clean small patches in the array """
5844
+
5845
+ if min_size < 1:
5846
+ logging.error(_('Minimum size must be greater than 1'))
5847
+ return
5848
+
5849
+ # labellisation
5850
+ labeled_array = self.array.data.copy()
5851
+ labeled_array[np.where(self.array.mask)] = 0
5852
+
5853
+ labeled_array, num_features = label(labeled_array,)
5854
+
5855
+ # count the number of elements in each patch
5856
+ patch_size = np.bincount(labeled_array.ravel())
5857
+
5858
+ # mask the small patches
5859
+ mask_small_patches = patch_size < min_size
5860
+ labeled_array[mask_small_patches[labeled_array]] = 0
5861
+
5862
+ # mask data in the array based on the labeled array
5863
+ self.array.mask[labeled_array == 0] = True
5864
+
5865
+ if set_null:
5866
+ self.set_nullvalue_in_mask()
5867
+
5868
+ if reset_plot:
5869
+ self.reset_plot()
5870
+
5817
5871
  def labelling(self, reset_plot:bool = True):
5818
5872
  """
5819
5873
  Labelling of the array using Scipy
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: wolfhece
3
- Version: 2.1.125
3
+ Version: 2.1.126
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
@@ -7,7 +7,7 @@ wolfhece/ManageParams.py,sha256=EeuUI5Vvh9ixCvYf8YShMC1s1Yacc7OxOCN7q81gqiQ,517
7
7
  wolfhece/Model1D.py,sha256=SI4oNF_J3MdjiWZoizS8kuRXLMVyymX9dYfYJNVCQVI,476989
8
8
  wolfhece/PyConfig.py,sha256=gyl1MesSJZaVpC1XtvD78PpnE1VD3hGM3HPQXTJ3eJg,12963
9
9
  wolfhece/PyCrosssections.py,sha256=igU_ELrg5VrHU6RNbF5tHxPyVImpR3xdpfopJYc7haw,114711
10
- wolfhece/PyDraw.py,sha256=Pe9HJ8prakgeTbKZ1ESbXQ6qYCO7FeVzCeFfRFyFNJo,568879
10
+ wolfhece/PyDraw.py,sha256=CkNGIgPd5gSokggiJabVME1XzYDVDbBFuyMT_iJB9p0,568998
11
11
  wolfhece/PyGui.py,sha256=5ANCUmsBwsx_h-GWqV9xwnSQyGJ16mSObOm-h3_7LIQ,144708
12
12
  wolfhece/PyGuiHydrology.py,sha256=f60E8K9eGTnRq5RDF6yvt-ahf2AYegwQ9t25zZ2Mk1A,14946
13
13
  wolfhece/PyHydrographs.py,sha256=jwtSNMMACwarxrtN1UeQYth99UNrhwPx1IGgUwcooHA,3774
@@ -52,7 +52,7 @@ wolfhece/pywalous.py,sha256=mWB7UxlYMIbPxNUDlONQEjcOOy9VSaRU9aYWZ5IFLu8,19164
52
52
  wolfhece/rain_SPWMI.py,sha256=qCfcmF7LajloOaCwnTrrSMzyME03YyilmRUOqrPrv3U,13846
53
53
  wolfhece/textpillow.py,sha256=map7HsGYML_o5NHRdFg2s_TVQed_lDnpYNDv27MM0Vw,14130
54
54
  wolfhece/tools_mpl.py,sha256=gQ3Jg1iuZiecmMqa5Eli2ZLSkttu68VXL8YmMDBaEYU,564
55
- wolfhece/wolf_array.py,sha256=gmuF101KybiAu-FG40AlW69LY3pPUJsk8XYA2fPLV5U,439885
55
+ wolfhece/wolf_array.py,sha256=WeScyyq1USIOcMt2ew35QbJzk6ZDRXQRrGvwyPu3Tx8,441902
56
56
  wolfhece/wolf_hist.py,sha256=7jeVrgSkM3ErJO6SRMH_PGzfLjIdw8vTy87kesldggk,3582
57
57
  wolfhece/wolf_texture.py,sha256=ecoXXmmcLuyG1oPqU2dB_k03qMTCLTVQoSq1xi1EalU,17359
58
58
  wolfhece/wolf_tiles.py,sha256=v-HohqaWuMYdn75XLnA22dlloAG90iwnIqrgnB0ASQ4,10488
@@ -80,7 +80,7 @@ wolfhece/apps/curvedigitizer.py,sha256=lEJJwgAfulrrWQc-U6ij6sj59hWN3SZl4Yu1kQxVz
80
80
  wolfhece/apps/hydrometry.py,sha256=lhhJsFeb4zGL4bNQTs0co85OQ_6ssL1Oy0OUJCzhfYE,656
81
81
  wolfhece/apps/isocurrent.py,sha256=dagmGR8ja9QQ1gwz_8fU-N052hIw-W0mWGVkzLu6C7I,4247
82
82
  wolfhece/apps/splashscreen.py,sha256=SrustmIQeXnsiD-92OzjdGhBi-S7c_j-cSvuX4T6rtg,2929
83
- wolfhece/apps/version.py,sha256=AY3qhP7RQqVUbOl7Gl9Au7LHdhP91U01IYylqr2uTc8,389
83
+ wolfhece/apps/version.py,sha256=UIqgv5JPHoD2r7Ney7Go6P3kWMdWMylqgNdriVFXJKo,389
84
84
  wolfhece/apps/wolf.py,sha256=j_CgvsL8rwixbVvVD5Z0s7m7cHZ86gmFLojKGuetMls,729
85
85
  wolfhece/apps/wolf2D.py,sha256=4z_OPQ3IgaLtjexjMKX9ppvqEYyjFLt1hcfFABy3-jU,703
86
86
  wolfhece/apps/wolf_logo.bmp,sha256=ruJ4MA51CpGO_AYUp_dB4SWKHelvhOvd7Q8NrVOjDJk,3126
@@ -154,7 +154,7 @@ wolfhece/lagrangian/particles.py,sha256=S52_-3rzgVhift6l4Gznvsf_RTggzvNaD1dPvQUr
154
154
  wolfhece/lagrangian/velocity_field.py,sha256=oGVjNm98gEpawreFIrC1lDyC5bEhkk2CsyYAlF1Kq50,10574
155
155
  wolfhece/lazviewer/__init__.py,sha256=lz60EpQOBZ-zjvYzff6Y11jzAmC7mjOaxRYAfoqizQs,473
156
156
  wolfhece/lazviewer/_add_path.py,sha256=XgMEXRhFhx9-B1hUsP7Zr199zNljYwT5dGMYSB9jRa4,639
157
- wolfhece/lazviewer/laz_viewer.py,sha256=QZbQLX0Kz0VdqGvdpCwA6-9_Q1kGi0DJ4u9ygA9luEY,77339
157
+ wolfhece/lazviewer/laz_viewer.py,sha256=vq3IrGNnGPuBzIe4fg4mxjhWdGiBHu95Smvst5sdUmE,80822
158
158
  wolfhece/lazviewer/libs/Qt5Core.dll,sha256=sTJ_ctYFY9KHMNytF-lzH_078zIvnKTjN-71FDkOWPw,4924928
159
159
  wolfhece/lazviewer/libs/Qt5Gui.dll,sha256=07BeaOeYByraGkKYeDiSDYLawHM8tyd55pVJlKbZ4Y0,5436416
160
160
  wolfhece/lazviewer/libs/Qt5Network.dll,sha256=U-9FiLE9LUKru8r8EQxTnwwlMpwS8JzUtenhkKTCox0,1038336
@@ -223,7 +223,7 @@ wolfhece/mar/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
223
223
  wolfhece/mar/commontools.py,sha256=SiSxpv5BFYEBCEydsE4ZmBuot3KTy0UYMx2aa-4fbuQ,52549
224
224
  wolfhece/mar/interface_MAR_WOLF.py,sha256=MWeXaHLDT4Eo9jZOAvz013lmpgGYT1v9VUYGAgBgSRU,21454
225
225
  wolfhece/math_parser/__init__.py,sha256=Mi7YTrlJtcflyrRdZHHgE-uNPUFfOWmsf8FsOwKBRPI,27961
226
- wolfhece/math_parser/calculator.py,sha256=DgRJ5OgEK11Tb24zGvYZXiT3PpCTaXX_0IXxrZkyNIg,7449
226
+ wolfhece/math_parser/calculator.py,sha256=e9KVemvVqYofWYEwu_wgMhu4EhmcL6dY790DOwDdxTs,7448
227
227
  wolfhece/mesh2d/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
228
228
  wolfhece/mesh2d/bc_manager.py,sha256=fKED0RhUjCmd0xd0lcOeZqiga5Glqs1ag1boYhXlq0k,54232
229
229
  wolfhece/mesh2d/cell_tracker.py,sha256=mPmnD5lEf3gLPuLqtAIo-Gp-ipAwQdPxzjWOGt0b7jM,8958
@@ -299,8 +299,8 @@ wolfhece/ui/wolf_multiselection_collapsiblepane.py,sha256=8PlMYrb_8jI8h9F0_EagpM
299
299
  wolfhece/ui/wolf_times_selection_comparison_models.py,sha256=ORy7fz4dcp691qKzaOZHrRLZ0uXNhL-LIHxmpDGL6BI,5007
300
300
  wolfhece/wintab/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
301
301
  wolfhece/wintab/wintab.py,sha256=8A-JNONV6ujgsgG3lM5Uw-pVgglPATwKs86oBzzljoc,7179
302
- wolfhece-2.1.125.dist-info/METADATA,sha256=gil4SetxFBa_q0FQMurYbdGGZc93DtijADnN4Uw0WPU,2587
303
- wolfhece-2.1.125.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
304
- wolfhece-2.1.125.dist-info/entry_points.txt,sha256=ZZ-aSfbpdcmo-wo84lRFzBN7LaSnD1XRGSaAKVX-Gpc,522
305
- wolfhece-2.1.125.dist-info/top_level.txt,sha256=EfqZXMVCn7eILUzx9xsEu2oBbSo9liWPFWjIHik0iCI,9
306
- wolfhece-2.1.125.dist-info/RECORD,,
302
+ wolfhece-2.1.126.dist-info/METADATA,sha256=hmEqfYiCm4H8SOEmJe1qoJbjBXFa1FTHc4xHjG7i9C8,2587
303
+ wolfhece-2.1.126.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
304
+ wolfhece-2.1.126.dist-info/entry_points.txt,sha256=ZZ-aSfbpdcmo-wo84lRFzBN7LaSnD1XRGSaAKVX-Gpc,522
305
+ wolfhece-2.1.126.dist-info/top_level.txt,sha256=EfqZXMVCn7eILUzx9xsEu2oBbSo9liWPFWjIHik0iCI,9
306
+ wolfhece-2.1.126.dist-info/RECORD,,