topologicpy 0.7.66__py3-none-any.whl → 0.7.67__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/Graph.py CHANGED
@@ -1631,7 +1631,7 @@ class Graph:
1631
1631
  edgeValidateMaskHeader="val_mask", edgeTestMaskHeader="test_mask", edgeFeaturesHeader="feat", edgeFeaturesKeys=[],
1632
1632
  nodeIDHeader="node_id", nodeLabelHeader="label", nodeTrainMaskHeader="train_mask",
1633
1633
  nodeValidateMaskHeader="val_mask", nodeTestMaskHeader="test_mask", nodeFeaturesHeader="feat", nodeXHeader="X", nodeYHeader="Y", nodeZHeader="Z",
1634
- nodeFeaturesKeys=[], tolerance=0.0001):
1634
+ nodeFeaturesKeys=[], tolerance=0.0001, silent=False):
1635
1635
  """
1636
1636
  Returns graphs according to the input folder path. This method assumes the CSV files follow DGL's schema.
1637
1637
 
@@ -1681,6 +1681,8 @@ class Graph:
1681
1681
  The column header string used to specify the Z coordinate of nodes. The default is "Z".
1682
1682
  tolerance : float , optional
1683
1683
  The desired tolerance. The default is 0.0001.
1684
+ silent : bool , optional
1685
+ If set to True, no error and warning messages are printed. Otherwise, they are. The default is False.
1684
1686
 
1685
1687
  Returns
1686
1688
  -------
@@ -1717,15 +1719,18 @@ class Graph:
1717
1719
  return graphs_path, edges_path, nodes_path
1718
1720
 
1719
1721
  if not exists(path):
1720
- print("Graph.ByCSVPath - Error: the input path parameter does not exists. Returning None.")
1722
+ if not silent:
1723
+ print("Graph.ByCSVPath - Error: the input path parameter does not exists. Returning None.")
1721
1724
  return None
1722
1725
  if not isdir(path):
1723
- print("Graph.ByCSVPath - Error: the input path parameter is not a folder. Returning None.")
1726
+ if not silent:
1727
+ print("Graph.ByCSVPath - Error: the input path parameter is not a folder. Returning None.")
1724
1728
  return None
1725
1729
 
1726
1730
  yaml_files = find_yaml_files(path)
1727
1731
  if len(yaml_files) < 1:
1728
- print("Graph.ByCSVPath - Error: the input path parameter does not contain any valid YAML files. Returning None.")
1732
+ if not silent:
1733
+ print("Graph.ByCSVPath - Error: the input path parameter does not contain any valid YAML files. Returning None.")
1729
1734
  return None
1730
1735
  yaml_file = yaml_files[0]
1731
1736
  yaml_file_path = os.path.join(path, yaml_file)
@@ -1734,7 +1739,8 @@ class Graph:
1734
1739
  if not graphs_path == None:
1735
1740
  graphs_path = os.path.join(path, graphs_path)
1736
1741
  if graphs_path == None:
1737
- print("Graph.ByCSVPath - Warning: a graphs.csv file does not exist inside the folder specified by the input path parameter. Will assume the dataset includes only one graph.")
1742
+ if not silent:
1743
+ print("Graph.ByCSVPath - Warning: a graphs.csv file does not exist inside the folder specified by the input path parameter. Will assume the dataset includes only one graph.")
1738
1744
  graphs_df = pd.DataFrame()
1739
1745
  graph_ids=[0]
1740
1746
  graph_labels=[0]
@@ -1748,7 +1754,8 @@ class Graph:
1748
1754
  if not edges_path == None:
1749
1755
  edges_path = os.path.join(path, edges_path)
1750
1756
  if not exists(edges_path):
1751
- print("Graph.ByCSVPath - Error: an edges.csv file does not exist inside the folder specified by the input path parameter. Returning None.")
1757
+ if not silent:
1758
+ print("Graph.ByCSVPath - Error: an edges.csv file does not exist inside the folder specified by the input path parameter. Returning None.")
1752
1759
  return None
1753
1760
  edges_path = os.path.join(path, edges_path)
1754
1761
  edges_df = pd.read_csv(edges_path)
@@ -1756,7 +1763,8 @@ class Graph:
1756
1763
  if not nodes_path == None:
1757
1764
  nodes_path = os.path.join(path, nodes_path)
1758
1765
  if not exists(nodes_path):
1759
- print("Graph.ByCSVPath - Error: a nodes.csv file does not exist inside the folder specified by the input path parameter. Returning None.")
1766
+ if not silent:
1767
+ print("Graph.ByCSVPath - Error: a nodes.csv file does not exist inside the folder specified by the input path parameter. Returning None.")
1760
1768
  return None
1761
1769
  nodes_df = pd.read_csv(nodes_path)
1762
1770
  # Group nodes and nodes by their 'graph_id'
@@ -1830,10 +1838,12 @@ class Graph:
1830
1838
  if Topology.IsInstance(d, "Dictionary"):
1831
1839
  v = Topology.SetDictionary(v, d)
1832
1840
  else:
1833
- print("Graph.ByCSVPath - Warning: Failed to create and add a dictionary to the created vertex.")
1841
+ if not silent:
1842
+ print("Graph.ByCSVPath - Warning: Failed to create and add a dictionary to the created vertex.")
1834
1843
  vertices.append(v)
1835
1844
  else:
1836
- print("Graph.ByCSVPath - Warning: Failed to create and add a vertex to the list of vertices.")
1845
+ if not silent:
1846
+ print("Graph.ByCSVPath - Warning: Failed to create and add a vertex to the list of vertices.")
1837
1847
  vertices_ds.append(vertices)
1838
1848
  edges_ds = [] # A list to hold the vertices data structures until we can build the actual graphs
1839
1849
  # Access specific columns within the grouped DataFrame
@@ -1870,21 +1880,25 @@ class Graph:
1870
1880
  try:
1871
1881
  edge = Edge.ByVertices([vertices[src_id], vertices[dst_id]], tolerance=tolerance)
1872
1882
  except:
1873
- print("Graph.ByCSVPath - Warning: Failed to create and add a edge to the list of edges.")
1883
+ if not silent:
1884
+ print("Graph.ByCSVPath - Warning: Failed to create and add a edge to the list of edges.")
1874
1885
  edge = None
1875
1886
  if Topology.IsInstance(edge, "Edge"):
1876
1887
  d = Dictionary.ByKeysValues(edge_keys, values)
1877
1888
  if Topology.IsInstance(d, "Dictionary"):
1878
1889
  edge = Topology.SetDictionary(edge, d)
1879
1890
  else:
1880
- print("Graph.ByCSVPath - Warning: Failed to create and add a dictionary to the created edge.")
1891
+ if not silent:
1892
+ print("Graph.ByCSVPath - Warning: Failed to create and add a dictionary to the created edge.")
1881
1893
  edges.append(edge)
1882
1894
  else:
1883
- print("Graph.ByCSVPath - Warning: Failed to create and add an edge to the list of edges.")
1895
+ if not silent:
1896
+ print("Graph.ByCSVPath - Warning: Failed to create and add an edge to the list of edges.")
1884
1897
  else:
1885
1898
  duplicate_edges += 1
1886
1899
  if duplicate_edges > 0:
1887
- print("Graph.ByCSVPath - Warning: Found", duplicate_edges, "duplicate edges in graph id:", graph_id)
1900
+ if not silent:
1901
+ print("Graph.ByCSVPath - Warning: Found", duplicate_edges, "duplicate edges in graph id:", graph_id)
1888
1902
  edges_ds.append(edges)
1889
1903
 
1890
1904
  # Build the graphs
@@ -1905,16 +1919,19 @@ class Graph:
1905
1919
  l1 = len(graph_keys)
1906
1920
  l2 = len(values)
1907
1921
  if not l1 == l2:
1908
- print("Graph.ByCSVPath - Error: The length of the keys and values lists do not match. Returning None.")
1922
+ if not silent:
1923
+ print("Graph.ByCSVPath - Error: The length of the keys and values lists do not match. Returning None.")
1909
1924
  return None
1910
1925
  d = Dictionary.ByKeysValues(graph_keys, values)
1911
1926
  if Topology.IsInstance(d, "Dictionary"):
1912
1927
  g = Graph.SetDictionary(g, d)
1913
1928
  else:
1914
- print("Graph.ByCSVPath - Warning: Failed to create and add a dictionary to the created graph.")
1929
+ if not silent:
1930
+ print("Graph.ByCSVPath - Warning: Failed to create and add a dictionary to the created graph.")
1915
1931
  graphs.append(g)
1916
1932
  else:
1917
- print("Graph.ByCSVPath - Error: Failed to create and add a graph to the list of graphs.")
1933
+ if not silent:
1934
+ print("Graph.ByCSVPath - Error: Failed to create and add a graph to the list of graphs.")
1918
1935
  return {"graphs": graphs, "labels": graph_labels, "features": graph_features}
1919
1936
 
1920
1937
  @staticmethod
@@ -3485,142 +3502,6 @@ class Graph:
3485
3502
  return [graph_vertices, graph_edges]
3486
3503
 
3487
3504
 
3488
-
3489
-
3490
-
3491
-
3492
- # def processEdge(item):
3493
- # topology, others, outpostsKey, idKey, direct, directApertures, viaSharedTopologies, viaSharedApertures, toExteriorTopologies, toExteriorApertures, toContents, toOutposts, useInternalVertex, storeBREP, tolerance = item
3494
- # vertices = []
3495
- # edges = []
3496
-
3497
- # if useInternalVertex == True:
3498
- # try:
3499
- # vEdge = Edge.VertexByParameter(topology, 0.5)
3500
- # except:
3501
- # vEdge = topology.CenterOfMass()
3502
- # else:
3503
- # vEdge = topology.CenterOfMass()
3504
-
3505
- # d1 = vEdge.GetDictionary()
3506
- # d1 = Dictionary.SetValueAtKey(d1, vertexCategoryKey, 0) # main topology
3507
- # if storeBREP:
3508
- # d2 = Dictionary.ByKeysValues(["brep", "brepType", "brepTypeString"], [Topology.BREPString(topology), Topology.Type(topology), Topology.TypeAsString(topology)])
3509
- # d3 = mergeDictionaries2([d1, d2])
3510
- # _ = vEdge.SetDictionary(d3)
3511
- # else:
3512
- # _ = vEdge.SetDictionary(topology.GetDictionary())
3513
-
3514
- # vertices.append(vEdge)
3515
-
3516
- # if toOutposts and others:
3517
- # d = Topology.Dictionary(topology)
3518
- # if not d == None:
3519
- # keys = Dictionary.Keys(d)
3520
- # else:
3521
- # keys = []
3522
- # k = None
3523
- # for key in keys:
3524
- # if key.lower() == outpostsKey.lower():
3525
- # k = key
3526
- # if k:
3527
- # ids = Dictionary.ValueAtKey(d, k)
3528
- # outposts = outpostsByID(others, ids, idKey)
3529
- # else:
3530
- # outposts = []
3531
- # for outpost in outposts:
3532
- # if useInternalVertex == True:
3533
- # vop = Topology.InternalVertex(outpost, tolerance)
3534
- # else:
3535
- # vop = Topology.CenterOfMass(outpost)
3536
- # tempe = Edge.ByStartVertexEndVertex(vEdge, vop, tolerance=tolerance)
3537
- # tempd = Dictionary.ByKeysValues(["relationship", edgeCategoryKey],["To_Outposts", 6])
3538
- # _ = tempe.SetDictionary(tempd)
3539
- # edges.append(tempe)
3540
-
3541
- # if (toExteriorTopologies == True) or (toExteriorApertures == True) or (toContents == True):
3542
- # eVertices = []
3543
- # _ = topology.Vertices(None, eVertices)
3544
- # exteriorTopologies = []
3545
- # exteriorApertures = []
3546
- # for aVertex in eVertices:
3547
- # exteriorTopologies.append(aVertex)
3548
- # apertures = Topology.Apertures(aVertex)
3549
- # for anAperture in apertures:
3550
- # exteriorApertures.append(anAperture)
3551
- # if toExteriorTopologies:
3552
- # for exteriorTopology in exteriorTopologies:
3553
- # if useInternalVertex == True:
3554
- # vst = Topology.InternalVertex(exteriorTopology, tolerance)
3555
- # else:
3556
- # vst = exteriorTopology.CenterOfMass()
3557
- # d1 = exteriorTopology.GetDictionary()
3558
- # d1 = Dictionary.SetValueAtKey(d1, vertexCategoryKey, 3) # exterior topology
3559
- # if storeBREP:
3560
- # d2 = Dictionary.ByKeysValues(["brep", "brepType", "brepTypeString"], [Topology.BREPString(exteriorTopology), Topology.Type(exteriorTopology), Topology.TypeAsString(exteriorTopology)])
3561
- # d3 = mergeDictionaries2([d1, d2])
3562
- # _ = vst.SetDictionary(d3)
3563
- # else:
3564
- # _ = vst.SetDictionary(d1)
3565
- # vertices.append(vst)
3566
- # tempe = Edge.ByStartVertexEndVertex(vEdge, vst, tolerance=tolerance)
3567
- # tempd = Dictionary.ByKeysValues(["relationship", edgeCategoryKey],["To_Exterior_Topologies", 3])
3568
- # _ = tempe.SetDictionary(tempd)
3569
- # edges.append(tempe)
3570
- # if toContents:
3571
- # contents = []
3572
- # _ = vst.Contents(contents)
3573
- # for content in contents:
3574
- # if Topology.IsInstance(content, "Aperture"):
3575
- # content = Aperture.Topology(content)
3576
- # if useInternalVertex == True:
3577
- # vst2 = Topology.InternalVertex(content, tolerance)
3578
- # else:
3579
- # vst2 = content.CenterOfMass()
3580
- # vst2 = Vertex.ByCoordinates(Vertex.X(vst2, mantissa=mantissa)+(tolerance*100), Vertex.Y(vst2, mantissa=mantissa)+(tolerance*100), Vertex.Z(vst2, mantissa=mantissa)+(tolerance*100))
3581
- # d1 = content.GetDictionary()
3582
- # d1 = Dictionary.SetValueAtKey(d1, vertexCategoryKey, 5) # content
3583
- # if storeBREP:
3584
- # d2 = Dictionary.ByKeysValues(["brep", "brepType", "brepTypeString"], [Topology.BREPString(content), Topology.Type(content), Topology.TypeAsString(content)])
3585
- # d3 = mergeDictionaries2([d1, d2])
3586
- # _ = vst2.SetDictionary(d3)
3587
- # else:
3588
- # _ = vst2.SetDictionary(d1)
3589
- # vertices.append(vst2)
3590
- # tempe = Edge.ByStartVertexEndVertex(vst, vst2, tolerance=tolerance)
3591
- # tempd = Dictionary.ByKeysValues(["relationship", edgeCategoryKey],["To_Contents", 5])
3592
- # _ = tempe.SetDictionary(tempd)
3593
- # edges.append(tempe)
3594
- # if toExteriorApertures:
3595
- # for exTop in exteriorApertures:
3596
- # if useInternalVertex == True:
3597
- # vst = Topology.InternalVertex(exTop, tolerance)
3598
- # else:
3599
- # vst = exTop.CenterOfMass()
3600
- # d1 = exTop.GetDictionary()
3601
- # d1 = Dictionary.SetValueAtKey(d1, vertexCategoryKey, 4) # exterior aperture
3602
- # vst = Vertex.ByCoordinates(Vertex.X(vst, mantissa=mantissa)+(tolerance*100), Vertex.Y(vst, mantissa=mantissa)+(tolerance*100), Vertex.Z(vst, mantissa=mantissa)+(tolerance*100))
3603
- # if storeBREP:
3604
- # d2 = Dictionary.ByKeysValues(["brep", "brepType", "brepTypeString"], [Topology.BREPString(exTop), Topology.Type(exTop), Topology.TypeAsString(exTop)])
3605
- # d3 = mergeDictionaries2([d1, d2])
3606
- # _ = vst.SetDictionary(d3)
3607
- # else:
3608
- # _ = vst.SetDictionary(d1)
3609
- # _ = vst.SetDictionary(exTop.GetDictionary())
3610
- # vertices.append(vst)
3611
- # tempe = Edge.ByStartVertexEndVertex(vEdge, vst, tolerance=tolerance)
3612
- # tempd = Dictionary.ByKeysValues(["relationship", edgeCategoryKey],["To_Exterior_Apertures", 4])
3613
- # _ = tempe.SetDictionary(tempd)
3614
- # edges.append(tempe)
3615
-
3616
- # return [vertices, edges]
3617
-
3618
-
3619
-
3620
-
3621
-
3622
-
3623
-
3624
3505
  def processVertex(item):
3625
3506
  topology, others, outpostsKey, idKey, direct, directApertures, viaSharedTopologies, viaSharedApertures, toExteriorTopologies, toExteriorApertures, toContents, toOutposts, useInternalVertex, storeBREP, tolerance = item
3626
3507
  vertices = [topology]
topologicpy/Plotly.py CHANGED
@@ -932,6 +932,8 @@ class Plotly:
932
932
  data = []
933
933
  v_list = []
934
934
 
935
+ if not isinstance(colorScale, str):
936
+ colorScale = "viridis"
935
937
  if Topology.Type(topology) == Topology.TypeID("Vertex"):
936
938
  tp_vertices = [topology]
937
939
  else:
topologicpy/Topology.py CHANGED
@@ -3033,16 +3033,14 @@ class Topology():
3033
3033
  Returns
3034
3034
  -------
3035
3035
  list
3036
- The list of imported topologies.
3036
+ The list of imported topologies (Warning: the list could contain 0, 1, or many topologies, but this method will always return a list)
3037
3037
 
3038
3038
  """
3039
3039
  if not file:
3040
3040
  print("Topology.ByJSONFile - Error: the input file parameter is not a valid file. Returning None.")
3041
3041
  return None
3042
- json_string = json.load(file)
3043
- #jsonData = json.load(file)
3044
- #jsonString = json.dumps(jsonData)
3045
- return Topology.ByJSONString(json_string, tolerance=tolerance)
3042
+ json_dict = json.load(file)
3043
+ return Topology.ByJSONDictionary(json_dict, tolerance=tolerance)
3046
3044
 
3047
3045
  @staticmethod
3048
3046
  def ByJSONPath(path, tolerance=0.0001):
@@ -3067,26 +3065,26 @@ class Topology():
3067
3065
  print("Topology.ByJSONPath - Error: the input path parameter is not a valid path. Returning None.")
3068
3066
  return None
3069
3067
  with open(path) as file:
3070
- json_string = json.load(file)
3071
- entities = Topology.ByJSONString(json_string, tolerance=tolerance)
3068
+ json_dict = json.load(file)
3069
+ entities = Topology.ByJSONDictionary(json_dict, tolerance=tolerance)
3072
3070
  return entities
3073
3071
 
3074
3072
  @staticmethod
3075
- def ByJSONString(string, tolerance=0.0001):
3073
+ def ByJSONDictionary(jsonDictionary, tolerance=0.0001):
3076
3074
  """
3077
- Imports the topology from a JSON string.
3075
+ Imports the topology from a JSON dictionary.
3078
3076
 
3079
3077
  Parameters
3080
3078
  ----------
3081
- string : str
3082
- The input JSON string.
3079
+ jsonDictionary : dict
3080
+ The input JSON dictionary.
3083
3081
  tolerance : float , optional
3084
3082
  The desired tolerance. The default is 0.0001.
3085
3083
 
3086
3084
  Returns
3087
3085
  -------
3088
- list or topologicpy.Topology
3089
- The list of imported topologies. If the list only contains one element, it returns that element.
3086
+ list
3087
+ The list of imported topologies (Warning: the list could contain 0, 1, or many topologies, but this method will always return a list)
3090
3088
 
3091
3089
  """
3092
3090
  from topologicpy.Vertex import Vertex
@@ -3110,9 +3108,7 @@ class Topology():
3110
3108
  vertex_apertures = []
3111
3109
  edge_apertures = []
3112
3110
  face_apertures = []
3113
- # Step 2: Create Entities and handle apertures
3114
- json_dictionary = json.loads(string)
3115
- for entity in json_dictionary:
3111
+ for entity in jsonDictionary:
3116
3112
  entity_type = entity['type']
3117
3113
  entity_dict = Dictionary.ByKeysValues(keys=list(entity['dictionary'].keys()),
3118
3114
  values=list(entity['dictionary'].values()))
@@ -3280,6 +3276,28 @@ class Topology():
3280
3276
  entity = Topology.AddApertures(entity, vertex_apertures, subTopologyType="Vertex", tolerance=0.001)
3281
3277
  top_level_list.append(entity)
3282
3278
  return top_level_list
3279
+
3280
+ @staticmethod
3281
+ def ByJSONString(string, tolerance=0.0001):
3282
+ """
3283
+ Imports the topology from a JSON string.
3284
+
3285
+ Parameters
3286
+ ----------
3287
+ string : str
3288
+ The input JSON string.
3289
+ tolerance : float , optional
3290
+ The desired tolerance. The default is 0.0001.
3291
+
3292
+ Returns
3293
+ -------
3294
+ list
3295
+ The list of imported topologies (Warning: the list could contain 0, 1, or many topologies, but this method will always return a list)
3296
+
3297
+ """
3298
+
3299
+ json_dict = json.loads(string)
3300
+ return Topology.ByJSONDictionary(json_dict, tolerance=tolerance)
3283
3301
 
3284
3302
  @staticmethod
3285
3303
  def ByOBJFile(objFile, mtlFile = None,
topologicpy/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = '0.7.66'
1
+ __version__ = '0.7.67'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: topologicpy
3
- Version: 0.7.66
3
+ Version: 0.7.67
4
4
  Summary: An AI-Powered Spatial Modelling and Analysis Software Library for Architecture, Engineering, and Construction.
5
5
  Author-email: Wassim Jabi <wassim.jabi@gmail.com>
6
6
  License: AGPL v3 License
@@ -11,26 +11,26 @@ topologicpy/Dictionary.py,sha256=cURg452wwk2WeSxWY46ncgAUo5XD1c2c5EtO6ESZHaY,273
11
11
  topologicpy/Edge.py,sha256=FACD8Bm2nL2uTHIeRMVXfRF0cYeqhZ-lCZPHAfjAIPg,66927
12
12
  topologicpy/EnergyModel.py,sha256=NM3_nAdY9_YDtbp9CaEZ0x0xVsetTqVDzm_VSjmq_mI,53746
13
13
  topologicpy/Face.py,sha256=lCjahpvNpaI-yNm_VN1-4HxjPEkpPIbRnyyj7H6DsPc,124354
14
- topologicpy/Graph.py,sha256=dxXYQdaowi8IZ031IpxI75GLs-uJjq9FRYKgrb5xWEw,389863
14
+ topologicpy/Graph.py,sha256=IZrWxXnA--e0fmMjkdyj7Xxj945zT4gVMK-Nyieas8o,382597
15
15
  topologicpy/Grid.py,sha256=3-sn7CHWGcXk18XCnHjsUttNJTWwmN63g_Insj__p04,18218
16
16
  topologicpy/Helper.py,sha256=i-AfI29NMsZXBaymjilfvxQbuS3wpYbpPw4RWu1YCHs,16358
17
17
  topologicpy/Honeybee.py,sha256=Oc8mfGBNSjs6wxkPzCKmEw1ZPQPbp9XtiYWaAF62oSk,21893
18
18
  topologicpy/Matrix.py,sha256=umgR7An919-wGInXJ1wpqnoQ2jCPdyMe2rcWTZ16upk,8079
19
19
  topologicpy/Neo4j.py,sha256=t52hgE9cVsqkGc7m7fjRsLnyfRHakVHwdvF4ms7ow78,22342
20
- topologicpy/Plotly.py,sha256=k-gluqX4Na3zlYCDl_6A0gqeFoGR-0Oy6fLiT-Zqlyk,108362
20
+ topologicpy/Plotly.py,sha256=P6wQ2W9Urm5Rrx5_Bh8hwiFDSFQYzN_hJDUj-y3BO0c,108441
21
21
  topologicpy/Polyskel.py,sha256=EFsuh2EwQJGPLiFUjvtXmAwdX-A4r_DxP5hF7Qd3PaU,19829
22
22
  topologicpy/PyG.py,sha256=LU9LCCzjxGPUM31qbaJXZsTvniTtgugxJY7y612t4A4,109757
23
23
  topologicpy/Shell.py,sha256=iX9jLbpylRqt24jtzEH6kSWvA5JvbhAY_w880PxJXP8,87625
24
24
  topologicpy/Speckle.py,sha256=rUS6PCaxIjEF5_fUruxvMH47FMKg-ohcoU0qAUb-yNM,14267
25
25
  topologicpy/Sun.py,sha256=42tDWMYpwRG7Z2Qjtp94eRgBuqySq7k8TgNUZDK7QxQ,36837
26
- topologicpy/Topology.py,sha256=phWy7R-D-en1tksPh3bWyjw_shlCtL7N9_GVw0Hpnwc,398144
26
+ topologicpy/Topology.py,sha256=7HUdFQZ2V-xRHLXzRXaN7pEZHWAv6yv7Zn7ou642mYY,398747
27
27
  topologicpy/Vector.py,sha256=A1g83zDHep58iVPY8WQ8iHNrSOfGWFEzvVeDuMnjDNY,33078
28
28
  topologicpy/Vertex.py,sha256=bLY60YWoMsgCgHk7F7k9F93Sq2FJ6AzUcTfJ83NZfHA,71107
29
29
  topologicpy/Wire.py,sha256=BIWv-NIDd31F1EMdX20rHGr_QPhut7SNyqkZmHpv93Q,172480
30
30
  topologicpy/__init__.py,sha256=vlPCanUbxe5NifC4pHcnhSzkmmYcs_UrZrTlVMsxcFs,928
31
- topologicpy/version.py,sha256=8Xc3cxvrZ9_sMCCrmn7ZXexdTYLaSLD_y3ZgwJbwdIg,23
32
- topologicpy-0.7.66.dist-info/LICENSE,sha256=FK0vJ73LuE8PYJAn7LutsReWR47-Ooovw2dnRe5yV6Q,681
33
- topologicpy-0.7.66.dist-info/METADATA,sha256=ShbKoA2zGyai16RPlqJ7j1AFFsfmLC5-1KsB0C53YQo,10493
34
- topologicpy-0.7.66.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
35
- topologicpy-0.7.66.dist-info/top_level.txt,sha256=J30bDzW92Ob7hw3zA8V34Jlp-vvsfIkGzkr8sqvb4Uw,12
36
- topologicpy-0.7.66.dist-info/RECORD,,
31
+ topologicpy/version.py,sha256=lLx7SH29wIbpawsGm3Hr19wrLnvr39XEY2lKATjP0-M,23
32
+ topologicpy-0.7.67.dist-info/LICENSE,sha256=FK0vJ73LuE8PYJAn7LutsReWR47-Ooovw2dnRe5yV6Q,681
33
+ topologicpy-0.7.67.dist-info/METADATA,sha256=UWDuYpsLxboxLOcBpAoqXCaFS0vR2cHrgBnD_ywyCys,10493
34
+ topologicpy-0.7.67.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
35
+ topologicpy-0.7.67.dist-info/top_level.txt,sha256=J30bDzW92Ob7hw3zA8V34Jlp-vvsfIkGzkr8sqvb4Uw,12
36
+ topologicpy-0.7.67.dist-info/RECORD,,