sdfr 1.3.0__py3-none-win_amd64.whl → 1.4.1__py3-none-win_amd64.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.
sdfr/SDF.py CHANGED
@@ -367,7 +367,7 @@ class BlockList:
367
367
 
368
368
  block = h.contents.blocklist
369
369
  self.Header = get_header(h.contents)
370
- meshes = []
370
+ mesh_id_map = {}
371
371
  mesh_vars = []
372
372
  self._block_ids = {}
373
373
  self._block_names = {}
@@ -417,7 +417,7 @@ class BlockList:
417
417
  if block.datatype_out != 0:
418
418
  newblock = BlockLagrangianMesh(block)
419
419
  newblock_mid = block
420
- meshes.append(newblock)
420
+ mesh_id_map[newblock.id] = newblock
421
421
  elif blocktype == SdfBlockType.SDF_BLOCKTYPE_NAMEVALUE:
422
422
  newblock = BlockNameValue(block)
423
423
  elif (
@@ -430,7 +430,7 @@ class BlockList:
430
430
  if block.datatype_out != 0:
431
431
  newblock = BlockPlainMesh(block)
432
432
  newblock_mid = block
433
- meshes.append(newblock)
433
+ mesh_id_map[newblock.id] = newblock
434
434
  elif (
435
435
  blocktype == SdfBlockType.SDF_BLOCKTYPE_POINT_DERIVED
436
436
  or blocktype == SdfBlockType.SDF_BLOCKTYPE_POINT_VARIABLE
@@ -439,15 +439,21 @@ class BlockList:
439
439
  mesh_vars.append(newblock)
440
440
  elif blocktype == SdfBlockType.SDF_BLOCKTYPE_POINT_MESH:
441
441
  newblock = BlockPointMesh(block)
442
- meshes.append(newblock)
442
+ mesh_id_map[newblock.id] = newblock
443
443
  elif blocktype == SdfBlockType.SDF_BLOCKTYPE_RUN_INFO:
444
444
  self.Run_info = get_run_info(block)
445
+ elif blocktype == SdfBlockType.SDF_BLOCKTYPE_STATION:
446
+ sdict = BlockStation(block, name)
447
+ self.__dict__.update({"StationBlocks": sdict})
448
+ self._block_ids.update({block.id.decode(): sdict})
449
+ self._block_names.update({block.name.decode(): sdict})
445
450
  else:
446
451
  # Block not supported
447
452
  # print(name,SdfBlockType(blocktype).name)
448
453
  pass
449
454
  if newblock is not None:
450
- self.__dict__[name] = newblock
455
+ if not block.dont_display:
456
+ self.__dict__[name] = newblock
451
457
  self._block_ids.update({block.id.decode(): newblock})
452
458
  self._block_names.update({block.name.decode(): newblock})
453
459
  block = block.next
@@ -462,7 +468,8 @@ class BlockList:
462
468
  newblock = BlockLagrangianMesh(block_mid, mid=True)
463
469
  elif blocktype == SdfBlockType.SDF_BLOCKTYPE_PLAIN_MESH:
464
470
  newblock = BlockPlainMesh(block_mid, mid=True)
465
- self.__dict__[name] = newblock
471
+ if not newblock_mid.dont_display:
472
+ self.__dict__[name] = newblock
466
473
  nm = block_mid.id.decode() + "_mid"
467
474
  self._block_ids.update({nm: newblock})
468
475
  nm = block_mid.name.decode() + "_mid"
@@ -470,10 +477,8 @@ class BlockList:
470
477
 
471
478
  for var in mesh_vars:
472
479
  gid = var.grid_id
473
- for mesh in meshes:
474
- if mesh.id == gid:
475
- var._grid = mesh
476
- break
480
+ if gid in mesh_id_map:
481
+ var._grid = mesh_id_map[gid]
477
482
 
478
483
  def __del__(self):
479
484
  self._clib.sdf_stack_destroy.argtypes = [ct.c_void_p]
@@ -803,6 +808,35 @@ class BlockData(Block):
803
808
  return self._mimetype
804
809
 
805
810
 
811
+ def BlockStation(block, name):
812
+ """Station block"""
813
+ sdict = dict(
814
+ stations=None,
815
+ step=block.step,
816
+ step_increment=block.step_increment,
817
+ time=block.time,
818
+ time_increment=block.time_increment,
819
+ )
820
+
821
+ tdict = {}
822
+ for i in range(block.nstations):
823
+ varnames = []
824
+ for j in range(block.station_nvars[i]):
825
+ varnames.append(block.material_names[i + j + 1].decode())
826
+ stat = dict(variables=varnames)
827
+ stat.update({"station_move": bool(block.station_move[i])})
828
+ if block.ndims > 0:
829
+ stat.update({"station_x": block.station_x[i]})
830
+ if block.ndims > 1:
831
+ stat.update({"station_y": block.station_y[i]})
832
+ if block.ndims > 2:
833
+ stat.update({"station_z": block.station_z[i]})
834
+ tdict.update({block.station_names[i].decode(): stat})
835
+ sdict.update({"stations": tdict})
836
+
837
+ return {name: sdict}
838
+
839
+
806
840
  class BlockStitched(Block):
807
841
  """Stitched block"""
808
842
 
sdfr/__init__.py CHANGED
@@ -30,7 +30,10 @@ from .loadlib import (
30
30
 
31
31
  from importlib.metadata import version, PackageNotFoundError
32
32
 
33
- __version__ = version(_module_name)
33
+ try:
34
+ __version__ = version(_module_name)
35
+ except Exception:
36
+ __version__ = "0.0.0"
34
37
 
35
38
  __all__ = [
36
39
  "SDF",
sdfr/_commit_info.py CHANGED
@@ -1,2 +1,2 @@
1
- __commit_date__ = "Wed May 7 13:32:07 2025 +0100"
2
- __commit_id__ = "c22be2665c4bcbc9925fa702205ace2f99585439"
1
+ __commit_date__ = "Wed Jun 4 23:52:44 2025 +0100"
2
+ __commit_id__ = "2a253d656c6c5be2d4ff1b7d0071155ef5f2f93c"
sdfr/sdfc_shared.dll CHANGED
Binary file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: sdfr
3
- Version: 1.3.0
3
+ Version: 1.4.1
4
4
  Summary: Python module for processing SDF files
5
5
  Author-Email: Keith Bennett <k.bennett@warwick.ac.uk>
6
6
  Requires-Dist: numpy
@@ -0,0 +1,11 @@
1
+ sdfr/__init__.py,sha256=OxcJAJ0ADoE54vgqMQqxhoFWyU2ldb3fb-_LFyeZZfQ,1209
2
+ sdfr/_commit_info.py,sha256=20v94y3_6YeM0pAm8wRm70t5ebQ18y2FoifXCDo9mD8,111
3
+ sdfr/loadlib.py,sha256=EMcnZhh68fS72Bjv8QtfDzPbowx1FfaqX4TPhDl-o94,2328
4
+ sdfr/SDF.py,sha256=bt4DOuOTmbc_lvtTBz7khVtbaFStiO6RKN2FAq3DjrI,31144
5
+ sdfr/sdf_helper.py,sha256=jS4fxmq1y7PeryrPFuB_Lgu5n88-cNggaWMvQy4XqSA,63682
6
+ sdfr/sdfc_shared.dll,sha256=lbV06dhdwDuooU0AF5cCVeS43slrXKIrJBxaaE3jKYs,13312
7
+ sdfr-1.4.1.dist-info/METADATA,sha256=OpBhOHlMqYOw0H7MAMZDdSqIBvDHcfIzUPagTMoDz3U,370
8
+ sdfr-1.4.1.dist-info/WHEEL,sha256=M0M8yQSkdzjr-Re7BLxGdurZIJei1aSjIm-hgxnt5-w,103
9
+ sdfr-1.4.1.dist-info/licenses/LICENSE,sha256=gpLeavs1KxgJFrpL_uVDh0MoDvPfJoZ89A5dSCl4P5U,1652
10
+ sdfr-1.4.1.dist-info/licenses/LICENSE_README.txt,sha256=KlBSoHArwoXbiygx3IJTjtgM7hLNO9o8ZMlZV77nrXs,235
11
+ sdfr-1.4.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: scikit-build-core 0.11.2
2
+ Generator: scikit-build-core 0.11.4
3
3
  Root-Is-Purelib: false
4
4
  Tag: py3-none-win_amd64
5
5
 
@@ -1,11 +0,0 @@
1
- sdfr/__init__.py,sha256=vSTzC03qtlxqcn-7dewmUa59NvhaZ-QqBi1svDCDzIo,1153
2
- sdfr/_commit_info.py,sha256=TmprDWbFKQKXQpJ-hWS2ELdZ46OBHS0lMKb2QHUqiyo,111
3
- sdfr/loadlib.py,sha256=EMcnZhh68fS72Bjv8QtfDzPbowx1FfaqX4TPhDl-o94,2328
4
- sdfr/SDF.py,sha256=D4M4qiaK-rYgYKNOi19cWt07M0Dqb6kYgId0uFZtYo4,29770
5
- sdfr/sdf_helper.py,sha256=jS4fxmq1y7PeryrPFuB_Lgu5n88-cNggaWMvQy4XqSA,63682
6
- sdfr/sdfc_shared.dll,sha256=JYkR3mF1Ikr4xFZf7NdUN6WNx7CeTdJZVB8k5cCeXRg,13312
7
- sdfr-1.3.0.dist-info/METADATA,sha256=qhi1HXCNjSgmcm0qLSwEETcCJnsec_45pXXf_41noyo,370
8
- sdfr-1.3.0.dist-info/WHEEL,sha256=n3HxvvUxRudexxUBRcXuzD3-t2g3c6dOWZQFWqwqrFk,103
9
- sdfr-1.3.0.dist-info/licenses/LICENSE,sha256=gpLeavs1KxgJFrpL_uVDh0MoDvPfJoZ89A5dSCl4P5U,1652
10
- sdfr-1.3.0.dist-info/licenses/LICENSE_README.txt,sha256=KlBSoHArwoXbiygx3IJTjtgM7hLNO9o8ZMlZV77nrXs,235
11
- sdfr-1.3.0.dist-info/RECORD,,