topologicpy 0.4.57__py3-none-any.whl → 0.4.59__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.
- topologicpy/CellComplex.py +15 -8
- topologicpy/Cluster.py +68 -0
- topologicpy/Face.py +67 -24
- topologicpy/Plotly.py +7 -8
- topologicpy/Shell.py +6 -5
- topologicpy/__init__.py +1 -1
- {topologicpy-0.4.57.dist-info → topologicpy-0.4.59.dist-info}/METADATA +1 -1
- {topologicpy-0.4.57.dist-info → topologicpy-0.4.59.dist-info}/RECORD +11 -11
- {topologicpy-0.4.57.dist-info → topologicpy-0.4.59.dist-info}/LICENSE +0 -0
- {topologicpy-0.4.57.dist-info → topologicpy-0.4.59.dist-info}/WHEEL +0 -0
- {topologicpy-0.4.57.dist-info → topologicpy-0.4.59.dist-info}/top_level.txt +0 -0
topologicpy/CellComplex.py
CHANGED
|
@@ -46,7 +46,7 @@ class CellComplex(topologic.CellComplex):
|
|
|
46
46
|
direction=direction, placement=placement, tolerance=tolerance)
|
|
47
47
|
|
|
48
48
|
@staticmethod
|
|
49
|
-
def ByCells(cells: list, tolerance: float = 0.0001) -> topologic.CellComplex:
|
|
49
|
+
def ByCells(cells: list, tolerance: float = 0.0001, verbose: bool = True) -> topologic.CellComplex:
|
|
50
50
|
"""
|
|
51
51
|
Creates a cellcomplex by merging the input cells.
|
|
52
52
|
|
|
@@ -67,14 +67,17 @@ class CellComplex(topologic.CellComplex):
|
|
|
67
67
|
from topologicpy.Topology import Topology
|
|
68
68
|
|
|
69
69
|
if not isinstance(cells, list):
|
|
70
|
-
|
|
70
|
+
if verbose:
|
|
71
|
+
print("CellComplex.ByCells - Error: The input cells parameter is not a valid list. Returning None.")
|
|
71
72
|
return None
|
|
72
73
|
cells = [x for x in cells if isinstance(x, topologic.Cell)]
|
|
73
74
|
if len(cells) < 1:
|
|
74
|
-
|
|
75
|
+
if verbose:
|
|
76
|
+
print("CellComplex.ByCells - Error: The input cells parameter does not contain any valid cells. Returning None.")
|
|
75
77
|
return None
|
|
76
78
|
elif len(cells) == 1:
|
|
77
|
-
|
|
79
|
+
if verbose:
|
|
80
|
+
print("CellComplex.ByCells - Warning: The input cells parameter contains only one valid cells. Returning object of type topologic.Cell instead of topologic.CellComplex.")
|
|
78
81
|
return cells[0]
|
|
79
82
|
cellComplex = None
|
|
80
83
|
try:
|
|
@@ -85,18 +88,22 @@ class CellComplex(topologic.CellComplex):
|
|
|
85
88
|
cellComplex = Topology.Merge(topA, topB, tranDict=False, tolerance=tolerance)
|
|
86
89
|
|
|
87
90
|
if not isinstance(cellComplex, topologic.CellComplex):
|
|
88
|
-
|
|
91
|
+
if verbose:
|
|
92
|
+
print("CellComplex.ByCells - Warning: Could not create a CellComplex. Returning object of type topologic.Cluster instead of topologic.CellComplex.")
|
|
89
93
|
return Cluster.ByTopologies(cells)
|
|
90
94
|
else:
|
|
91
95
|
temp_cells = CellComplex.Cells(cellComplex)
|
|
92
96
|
if not isinstance(temp_cells, list):
|
|
93
|
-
|
|
97
|
+
if verbose:
|
|
98
|
+
print("CellComplex.ByCells - Error: The resulting object does not contain any cells. Returning None.")
|
|
94
99
|
return None
|
|
95
100
|
elif len(temp_cells) < 1:
|
|
96
|
-
|
|
101
|
+
if verbose:
|
|
102
|
+
print("CellComplex.ByCells - Error: Could not create a CellComplex. Returning None.")
|
|
97
103
|
return None
|
|
98
104
|
elif len(temp_cells) == 1:
|
|
99
|
-
|
|
105
|
+
if verbose:
|
|
106
|
+
print("CellComplex.ByCells - Warning: Resulting object contains only one cell. Returning object of type topologic.Cell instead of topologic.CellComplex.")
|
|
100
107
|
return(temp_cells[0])
|
|
101
108
|
return cellComplex
|
|
102
109
|
|
topologicpy/Cluster.py
CHANGED
|
@@ -726,6 +726,74 @@ class Cluster(topologic.Cluster):
|
|
|
726
726
|
t_clusters.append(cluster)
|
|
727
727
|
return t_clusters
|
|
728
728
|
|
|
729
|
+
@staticmethod
|
|
730
|
+
def MergeCells(cells, tolerance=0.0001):
|
|
731
|
+
"""
|
|
732
|
+
Creates a cluster that contains cellComplexes where it can create them plus any additional free cells.
|
|
733
|
+
|
|
734
|
+
Parameters
|
|
735
|
+
----------
|
|
736
|
+
cells : list
|
|
737
|
+
The input list of cells.
|
|
738
|
+
tolerance : float , optional
|
|
739
|
+
The desired tolerance. The default is 0.0001.
|
|
740
|
+
|
|
741
|
+
Returns
|
|
742
|
+
-------
|
|
743
|
+
topologic.Cluster
|
|
744
|
+
The created cluster with merged cells as possible.
|
|
745
|
+
|
|
746
|
+
"""
|
|
747
|
+
|
|
748
|
+
from topologicpy.CellComplex import CellComplex
|
|
749
|
+
from topologicpy.Topology import Topology
|
|
750
|
+
|
|
751
|
+
def find_cell_complexes(cells, adjacency_test, tolerance=0.0001):
|
|
752
|
+
cell_complexes = []
|
|
753
|
+
remaining_cells = set(cells)
|
|
754
|
+
|
|
755
|
+
def explore_complex(cell_complex, remaining, tolerance=0.0001):
|
|
756
|
+
new_cells = set()
|
|
757
|
+
for cell in remaining:
|
|
758
|
+
if any(adjacency_test(cell, existing_cell, tolerance=tolerance) for existing_cell in cell_complex):
|
|
759
|
+
new_cells.add(cell)
|
|
760
|
+
return new_cells
|
|
761
|
+
|
|
762
|
+
while remaining_cells:
|
|
763
|
+
current_cell = remaining_cells.pop()
|
|
764
|
+
current_complex = {current_cell}
|
|
765
|
+
current_complex.update(explore_complex(current_complex, remaining_cells, tolerance=tolerance))
|
|
766
|
+
cell_complexes.append(current_complex)
|
|
767
|
+
remaining_cells -= current_complex
|
|
768
|
+
|
|
769
|
+
return cell_complexes
|
|
770
|
+
|
|
771
|
+
# Example adjacency test function (replace this with your actual implementation)
|
|
772
|
+
def adjacency_test(cell1, cell2, tolerance=0.0001):
|
|
773
|
+
return isinstance(Topology.Merge(cell1, cell2, tolerance=tolerance), topologic.CellComplex)
|
|
774
|
+
|
|
775
|
+
if not isinstance(cells, list):
|
|
776
|
+
print("Cluster.MergeCells - Error: The input cells parameter is not a valid list of cells. Returning None.")
|
|
777
|
+
return None
|
|
778
|
+
#cells = [cell for cell in cells if isinstance(cell, topologic.Cell)]
|
|
779
|
+
if len(cells) < 1:
|
|
780
|
+
print("Cluster.MergeCells - Error: The input cells parameter does not contain any valid cells. Returning None.")
|
|
781
|
+
return None
|
|
782
|
+
|
|
783
|
+
complexes = find_cell_complexes(cells, adjacency_test)
|
|
784
|
+
cellComplexes = []
|
|
785
|
+
cells = []
|
|
786
|
+
for aComplex in complexes:
|
|
787
|
+
aComplex = list(aComplex)
|
|
788
|
+
if len(aComplex) > 1:
|
|
789
|
+
cc = CellComplex.ByCells(aComplex, verbose=False)
|
|
790
|
+
if isinstance(cc, topologic.CellComplex):
|
|
791
|
+
cellComplexes.append(cc)
|
|
792
|
+
elif len(aComplex) == 1:
|
|
793
|
+
if isinstance(aComplex[0], topologic.Cell):
|
|
794
|
+
cells.append(aComplex[0])
|
|
795
|
+
return Cluster.ByTopologies(cellComplexes+cells)
|
|
796
|
+
|
|
729
797
|
@staticmethod
|
|
730
798
|
def MysticRose(wire: topologic.Wire = None, origin: topologic.Vertex = None, radius: float = 0.5, sides: int = 16, perimeter: bool = True, direction: list = [0,0,1], placement:str = "center", tolerance: float = 0.0001) -> topologic.Cluster:
|
|
731
799
|
"""
|
topologicpy/Face.py
CHANGED
|
@@ -497,7 +497,7 @@ class Face(topologic.Face):
|
|
|
497
497
|
return Face.ByVertices(vertices)
|
|
498
498
|
|
|
499
499
|
@staticmethod
|
|
500
|
-
def ByWire(wire: topologic.Wire, tolerance: float=0.0001) -> topologic.Face:
|
|
500
|
+
def ByWire(wire: topologic.Wire, tolerance: float = 0.0001) -> topologic.Face:
|
|
501
501
|
"""
|
|
502
502
|
Creates a face from the input closed wire.
|
|
503
503
|
|
|
@@ -505,8 +505,6 @@ class Face(topologic.Face):
|
|
|
505
505
|
----------
|
|
506
506
|
wire : topologic.Wire
|
|
507
507
|
The input wire.
|
|
508
|
-
tolerance : float , optional
|
|
509
|
-
The desired tolerance. The default is 0.0001.
|
|
510
508
|
|
|
511
509
|
Returns
|
|
512
510
|
-------
|
|
@@ -524,33 +522,32 @@ class Face(topologic.Face):
|
|
|
524
522
|
|
|
525
523
|
def triangulateWire(wire):
|
|
526
524
|
wire = Topology.RemoveCollinearEdges(wire)
|
|
527
|
-
vertices =
|
|
525
|
+
vertices = Topology.Vertices(wire)
|
|
528
526
|
shell = Shell.Delaunay(vertices)
|
|
529
|
-
if isinstance(shell, topologic.
|
|
530
|
-
return
|
|
527
|
+
if isinstance(shell, topologic.Topology):
|
|
528
|
+
return Topology.Faces(shell)
|
|
531
529
|
else:
|
|
532
530
|
return []
|
|
533
531
|
if not isinstance(wire, topologic.Wire):
|
|
534
532
|
print("Face.ByWire - Error: The input wire parameter is not a valid topologic wire. Returning None.")
|
|
535
533
|
return None
|
|
536
534
|
if not Wire.IsClosed(wire):
|
|
537
|
-
print("Face.ByWire - Error: The input wire parameter is not a closed topologic wire.
|
|
538
|
-
|
|
539
|
-
wire = Wire.Planarize(wire)
|
|
540
|
-
if not Wire.IsClosed(wire):
|
|
541
|
-
print("Face.ByWire - Error: Could not close the input wire parameter. Giving up and returning None.")
|
|
542
|
-
return None
|
|
535
|
+
print("Face.ByWire - Error: The input wire parameter is not a closed topologic wire. Returning None.")
|
|
536
|
+
return None
|
|
543
537
|
|
|
544
538
|
edges = Wire.Edges(wire)
|
|
545
|
-
wire = Topology.SelfMerge(Cluster.ByTopologies(edges)
|
|
539
|
+
wire = Topology.SelfMerge(Cluster.ByTopologies(edges))
|
|
546
540
|
vertices = Wire.Vertices(wire)
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
541
|
+
fList = []
|
|
542
|
+
if isinstance(wire, topologic.Wire):
|
|
543
|
+
try:
|
|
544
|
+
fList = topologic.Face.ByExternalBoundary(wire)
|
|
545
|
+
except:
|
|
546
|
+
print("Face.ByWire - Warning: Could not create face by external boundary. Trying other methods.")
|
|
547
|
+
if len(vertices) > 3:
|
|
548
|
+
fList = triangulateWire(wire)
|
|
549
|
+
else:
|
|
550
|
+
fList = []
|
|
554
551
|
|
|
555
552
|
if not isinstance(fList, list):
|
|
556
553
|
fList = [fList]
|
|
@@ -573,7 +570,6 @@ class Face(topologic.Face):
|
|
|
573
570
|
elif len(returnList) == 1:
|
|
574
571
|
return returnList[0]
|
|
575
572
|
else:
|
|
576
|
-
print("Face.ByWire - Warning: Forced to triangulate the face. Returning list of faces.")
|
|
577
573
|
return returnList
|
|
578
574
|
|
|
579
575
|
@staticmethod
|
|
@@ -1879,9 +1875,56 @@ class Face(topologic.Face):
|
|
|
1879
1875
|
print("Face.Triangulate - Error: The input face parameter is not a valid face. Returning None.")
|
|
1880
1876
|
return None
|
|
1881
1877
|
vertices = Topology.Vertices(face)
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1878
|
+
if len(vertices) == 3: # Already a triangle
|
|
1879
|
+
return [face]
|
|
1880
|
+
#flatFace = Face.Flatten(face)
|
|
1881
|
+
#if not isinstance(flatFace, topologic.Face):
|
|
1882
|
+
#Topology.ExportToBREP(face, "C:/Users/sarwj/Downloads/troubleFace.brep")
|
|
1883
|
+
#print("Tri 2", flatFace)
|
|
1884
|
+
|
|
1885
|
+
#world_origin = Vertex.ByCoordinates(0,0,0)
|
|
1886
|
+
# Retrieve the needed transformations
|
|
1887
|
+
#dictionary = Topology.Dictionary(flatFace)
|
|
1888
|
+
#xTran = Dictionary.ValueAtKey(dictionary,"x")
|
|
1889
|
+
#yTran = Dictionary.ValueAtKey(dictionary,"y")
|
|
1890
|
+
#zTran = Dictionary.ValueAtKey(dictionary,"z")
|
|
1891
|
+
#phi = Dictionary.ValueAtKey(dictionary,"phi")
|
|
1892
|
+
#theta = Dictionary.ValueAtKey(dictionary,"theta")
|
|
1893
|
+
|
|
1894
|
+
vertices = Topology.Vertices(face)
|
|
1895
|
+
#print("Number of vertices:", len(vertices))
|
|
1896
|
+
shell = Shell.Delaunay(vertices=vertices, face=face)
|
|
1897
|
+
shell_faces = Topology.Faces(shell)
|
|
1898
|
+
if not shell_faces:
|
|
1899
|
+
return []
|
|
1900
|
+
#for shell_face in shell_faces:
|
|
1901
|
+
#c = Topology.Centroid(shell_face)
|
|
1902
|
+
#if Face.IsInternal(face, c):
|
|
1903
|
+
#faceTriangles.append(shell_face)
|
|
1904
|
+
|
|
1905
|
+
'''
|
|
1906
|
+
for i in range(0,5,1):
|
|
1907
|
+
try:
|
|
1908
|
+
_ = topologic.FaceUtility.Triangulate(flatFace, float(i)*0.1, faceTriangles)
|
|
1909
|
+
break
|
|
1910
|
+
except:
|
|
1911
|
+
continue
|
|
1912
|
+
'''
|
|
1913
|
+
if len(shell_faces) < 1:
|
|
1914
|
+
return []
|
|
1915
|
+
#finalFaces = []
|
|
1916
|
+
#for f in faceTriangles:
|
|
1917
|
+
#f = Topology.Rotate(f, origin=world_origin, x=0, y=1, z=0, degree=theta)
|
|
1918
|
+
#f = Topology.Rotate(f, origin=world_origin, x=0, y=0, z=1, degree=phi)
|
|
1919
|
+
#f = Topology.Translate(f, xTran, yTran, zTran)
|
|
1920
|
+
#if Face.Angle(face, f) > 90:
|
|
1921
|
+
# wire = Face.ExternalBoundary(f)
|
|
1922
|
+
#wire = Wire.Invert(wire)
|
|
1923
|
+
# f = topologic.Face.ByExternalBoundary(wire)
|
|
1924
|
+
# finalFaces.append(f)
|
|
1925
|
+
#else:
|
|
1926
|
+
#finalFaces.append(f)
|
|
1927
|
+
return shell_faces
|
|
1885
1928
|
|
|
1886
1929
|
@staticmethod
|
|
1887
1930
|
def TrimByWire(face: topologic.Face, wire: topologic.Wire, reverse: bool = False) -> topologic.Face:
|
topologicpy/Plotly.py
CHANGED
|
@@ -834,14 +834,13 @@ class Plotly:
|
|
|
834
834
|
all_triangles = []
|
|
835
835
|
for tp_face in tp_faces:
|
|
836
836
|
triangles = Face.Triangulate(tp_face, tolerance=tolerance)
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
if Face.IsInternal(tp_face, c):
|
|
837
|
+
if isinstance(triangles, list):
|
|
838
|
+
for tri in triangles:
|
|
839
|
+
if faceLabelKey or faceGroupKey:
|
|
840
|
+
d = Topology.Dictionary(tp_face)
|
|
841
|
+
f_dictionaries.append(d)
|
|
842
|
+
if d:
|
|
843
|
+
_ = Topology.SetDictionary(tri, d)
|
|
845
844
|
all_triangles.append(tri)
|
|
846
845
|
if len(all_triangles) > 0:
|
|
847
846
|
f_cluster = Cluster.ByTopologies(all_triangles)
|
topologicpy/Shell.py
CHANGED
|
@@ -526,14 +526,15 @@ class Shell(Topology):
|
|
|
526
526
|
tempTriangleVertices.append(vertices[simplex[2]])
|
|
527
527
|
tempFace = Face.ByWire(Wire.ByVertices(tempTriangleVertices), tolerance=tolerance)
|
|
528
528
|
tempCentroid = Topology.Centroid(tempFace)
|
|
529
|
-
|
|
530
|
-
faces.append(tempFace)
|
|
529
|
+
faces.append(tempFace)
|
|
531
530
|
|
|
532
531
|
shell = Shell.ByFaces(faces, tolerance=tolerance)
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
532
|
+
if shell == None:
|
|
533
|
+
shell = Cluster.ByTopologies(faces)
|
|
534
|
+
|
|
536
535
|
if isinstance(face, topologic.Face):
|
|
536
|
+
edges = Topology.Edges(shell)
|
|
537
|
+
shell = Topology.Slice(flatFace, Cluster.ByTopologies(edges))
|
|
537
538
|
# Get the internal boundaries of the face
|
|
538
539
|
wires = Face.InternalBoundaries(flatFace)
|
|
539
540
|
ibList = []
|
topologicpy/__init__.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: topologicpy
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.59
|
|
4
4
|
Summary: An Advanced Spatial Modelling and Analysis Software Library for Architecture, Engineering, and Construction.
|
|
5
5
|
Author-email: Wassim Jabi <wassim.jabi@gmail.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/wassimj/TopologicPy
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
topologicpy/Aperture.py,sha256=jNrvM_5dnVGF6yvSfJCF0L1QXtgGoSv5od6T5vR8LJE,2087
|
|
2
2
|
topologicpy/Cell.py,sha256=CQonJvie6NPozdrd5CVHeWCSMVSgT055KLkdzm77uMY,81025
|
|
3
|
-
topologicpy/CellComplex.py,sha256=
|
|
4
|
-
topologicpy/Cluster.py,sha256=
|
|
3
|
+
topologicpy/CellComplex.py,sha256=2B-_o39bPDel0EZCOa0VSMrf83aEVjszLP5SLPVqQGU,36741
|
|
4
|
+
topologicpy/Cluster.py,sha256=VRvv89Lww0eW2DyzP4ZVoW9mYTKrUCjid9qPyP0219o,41908
|
|
5
5
|
topologicpy/Color.py,sha256=YRWPvyWjhIMUxG4cqWL-KBwmAtw07cFY6l_ftlex_3s,9741
|
|
6
6
|
topologicpy/Context.py,sha256=j5TnPQlpK9NSGPnxy_7D_0Q7in-DyDQG_qNAlG_C0IM,2265
|
|
7
7
|
topologicpy/DGL.py,sha256=8YxKxrEZ8V8OQOvQr8fO1nu45LiTfGWm_lJh770eP7w,136517
|
|
8
8
|
topologicpy/Dictionary.py,sha256=rgXmYrDWhoaMsir3kg7mHv-dtZqWqvp9vDMqYp3MvPI,24067
|
|
9
9
|
topologicpy/Edge.py,sha256=-xGhloh6FtbPNwMdlAMi1Eu11_uzIq3ZdYRalgk1Zjo,44367
|
|
10
10
|
topologicpy/EnergyModel.py,sha256=a1fcI8ZAewyFWsoLv3Vu84FCEPXXp4ubOE2-O7FgnOc,50923
|
|
11
|
-
topologicpy/Face.py,sha256=
|
|
11
|
+
topologicpy/Face.py,sha256=MBQIjWcRScL_f2tkQ76ph7jTcbVJqm5_wt27eNkhsxQ,87751
|
|
12
12
|
topologicpy/Graph.py,sha256=V1B0I25hNy5tUItiodv-3z9DRHkszLbT3wwyS4_tHp4,261732
|
|
13
13
|
topologicpy/Grid.py,sha256=77WRTTqGxxIuUHorrH74JHeBS4E7v27ydzckIdu3K54,16661
|
|
14
14
|
topologicpy/Helper.py,sha256=QKlt2nmpgFgmpgdKnb9aKd0G-_RNrCV6ED84QiW3E3s,12541
|
|
15
15
|
topologicpy/Honeybee.py,sha256=rlYWSILN1vJGg6ElEe7iMJ597Jv_VN6WNXUOc6Emuwk,19234
|
|
16
16
|
topologicpy/Matrix.py,sha256=GHd_o714eEWbTOhRM5X-fXcgsV5yYJJSj6xFdnkwC14,7625
|
|
17
17
|
topologicpy/Neo4j.py,sha256=FWGGmr_1uBFHG8ADgTF9AmXVIQwiZol2s7nunwq73a4,18568
|
|
18
|
-
topologicpy/Plotly.py,sha256=
|
|
18
|
+
topologicpy/Plotly.py,sha256=pjFONUY1AYOgeGJBtsE8QlYOP6T8enpikOlWzqDqaHk,91885
|
|
19
19
|
topologicpy/Polyskel.py,sha256=jz5k5H6p4QRWe3bbMnyYbP9Iji6EQ1wdk3qQvcnbg08,15156
|
|
20
|
-
topologicpy/Shell.py,sha256=
|
|
20
|
+
topologicpy/Shell.py,sha256=GCLoOf8jyLRh3G-tuyGZsM-V5qvGhDyHLBbTsHmjjaw,80946
|
|
21
21
|
topologicpy/Speckle.py,sha256=D6jk1uiHJeLHz478-hn8aWJCgbW9NFEkll84gRJbveA,14041
|
|
22
22
|
topologicpy/Topology.py,sha256=5ljh5sLJ8O-hA1oPnidOS8WtR2nzlfQLDiXIf77vstU,284827
|
|
23
23
|
topologicpy/Vector.py,sha256=AWBPEaoDqcVM_TullugMvYBQ71MQZ0RCEYPG1_yccRk,18357
|
|
24
24
|
topologicpy/Vertex.py,sha256=FAAXsvV424Rwl6cgNPjBnzSLqhd1Ngk60w_zJut1X8k,54133
|
|
25
25
|
topologicpy/Wire.py,sha256=GkWF4l0TbC1lwbgmQLsedQT2Ysg9l0PliFuNV63RLPs,128720
|
|
26
|
-
topologicpy/__init__.py,sha256=
|
|
26
|
+
topologicpy/__init__.py,sha256=fDYqriABru1p9DrrdlwBZU6rzfcxkti5oBdbF29iHj8,713
|
|
27
27
|
topologicpy/bin/linux/topologic/__init__.py,sha256=XlFReDf3FWlYdM9uXtanYPIafgPb6GVTQczS_xJAXD0,60
|
|
28
28
|
topologicpy/bin/linux/topologic/topologic.cpython-310-x86_64-linux-gnu.so,sha256=uvar01STZ8qu1c8fRmtYdVnK8evxBv305QScASXY9go,1852112
|
|
29
29
|
topologicpy/bin/linux/topologic/topologic.cpython-311-x86_64-linux-gnu.so,sha256=42yjVWetFu_qn6-eZcDxgd_A8SQN_wHqkdw91txKt9U,1852112
|
|
@@ -67,8 +67,8 @@ topologicpy/bin/windows/topologic/topologic.cp310-win_amd64.pyd,sha256=F0sPLuMpD
|
|
|
67
67
|
topologicpy/bin/windows/topologic/topologic.cp311-win_amd64.pyd,sha256=aBAJQj3OmJ58MOAF1ZIFybL_5fFK7FNR9hrIps6b6pc,1551872
|
|
68
68
|
topologicpy/bin/windows/topologic/topologic.cp38-win_amd64.pyd,sha256=aLgNf54nbJmGc7Tdmkuy-V0m6B9zLxabIbpRwAy7cBA,1551360
|
|
69
69
|
topologicpy/bin/windows/topologic/topologic.cp39-win_amd64.pyd,sha256=_8cp205hiRxkFHtzQQOweA4DhCPk8caH4kTVLWGQeVw,1411584
|
|
70
|
-
topologicpy-0.4.
|
|
71
|
-
topologicpy-0.4.
|
|
72
|
-
topologicpy-0.4.
|
|
73
|
-
topologicpy-0.4.
|
|
74
|
-
topologicpy-0.4.
|
|
70
|
+
topologicpy-0.4.59.dist-info/LICENSE,sha256=RUmXeeqj63bBySLJjEfhwb9OE7M8h9K6HuOBF3ASVyI,35697
|
|
71
|
+
topologicpy-0.4.59.dist-info/METADATA,sha256=SYsdzuK3qbgZWn-xpTcLkw5kWUPLXzS0K8bjUzKfnrs,6973
|
|
72
|
+
topologicpy-0.4.59.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
|
73
|
+
topologicpy-0.4.59.dist-info/top_level.txt,sha256=J30bDzW92Ob7hw3zA8V34Jlp-vvsfIkGzkr8sqvb4Uw,12
|
|
74
|
+
topologicpy-0.4.59.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|