okstra 0.108.0 → 0.110.0

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.
Files changed (648) hide show
  1. package/README.kr.md +1 -1
  2. package/README.md +1 -1
  3. package/docs/kr/architecture.md +3 -3
  4. package/docs/kr/cli.md +2 -2
  5. package/docs/project-structure-overview.md +3 -3
  6. package/package.json +1 -1
  7. package/runtime/BUILD.json +2 -2
  8. package/runtime/prompts/profiles/_common-contract.md +1 -1
  9. package/runtime/python/okstra_ctl/graphify_cmd.py +225 -0
  10. package/runtime/python/okstra_ctl/resolve_task_key.py +15 -9
  11. package/runtime/python/okstra_ctl/worktree.py +14 -13
  12. package/runtime/python/okstra_project/__init__.py +2 -0
  13. package/runtime/python/okstra_project/state.py +36 -0
  14. package/runtime/python/okstra_vendor/__init__.py +41 -0
  15. package/runtime/python/okstra_vendor/graphify/.vendored-version +1 -0
  16. package/runtime/python/okstra_vendor/graphify/__init__.py +28 -0
  17. package/runtime/python/okstra_vendor/graphify/__main__.py +1371 -0
  18. package/runtime/python/okstra_vendor/graphify/analyze.py +540 -0
  19. package/runtime/python/okstra_vendor/graphify/benchmark.py +129 -0
  20. package/runtime/python/okstra_vendor/graphify/build.py +107 -0
  21. package/runtime/python/okstra_vendor/graphify/cache.py +169 -0
  22. package/runtime/python/okstra_vendor/graphify/cluster.py +137 -0
  23. package/runtime/python/okstra_vendor/graphify/detect.py +510 -0
  24. package/runtime/python/okstra_vendor/graphify/export.py +1014 -0
  25. package/runtime/python/okstra_vendor/graphify/extract.py +3277 -0
  26. package/runtime/python/okstra_vendor/graphify/hooks.py +220 -0
  27. package/runtime/python/okstra_vendor/graphify/ingest.py +297 -0
  28. package/runtime/python/okstra_vendor/graphify/manifest.py +4 -0
  29. package/runtime/python/okstra_vendor/graphify/report.py +175 -0
  30. package/runtime/python/okstra_vendor/graphify/security.py +203 -0
  31. package/runtime/python/okstra_vendor/graphify/serve.py +373 -0
  32. package/runtime/python/okstra_vendor/graphify/skill-aider.md +1184 -0
  33. package/runtime/python/okstra_vendor/graphify/skill-claw.md +1184 -0
  34. package/runtime/python/okstra_vendor/graphify/skill-codex.md +1242 -0
  35. package/runtime/python/okstra_vendor/graphify/skill-copilot.md +1268 -0
  36. package/runtime/python/okstra_vendor/graphify/skill-droid.md +1239 -0
  37. package/runtime/python/okstra_vendor/graphify/skill-kiro.md +1183 -0
  38. package/runtime/python/okstra_vendor/graphify/skill-opencode.md +1238 -0
  39. package/runtime/python/okstra_vendor/graphify/skill-trae.md +1208 -0
  40. package/runtime/python/okstra_vendor/graphify/skill-vscode.md +253 -0
  41. package/runtime/python/okstra_vendor/graphify/skill-windows.md +1245 -0
  42. package/runtime/python/okstra_vendor/graphify/skill.md +1319 -0
  43. package/runtime/python/okstra_vendor/graphify/transcribe.py +182 -0
  44. package/runtime/python/okstra_vendor/graphify/validate.py +72 -0
  45. package/runtime/python/okstra_vendor/graphify/watch.py +188 -0
  46. package/runtime/python/okstra_vendor/graphify/wiki.py +214 -0
  47. package/runtime/python/okstra_vendor/networkx/__init__.py +62 -0
  48. package/runtime/python/okstra_vendor/networkx/algorithms/__init__.py +134 -0
  49. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/__init__.py +26 -0
  50. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/clique.py +259 -0
  51. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/clustering_coefficient.py +71 -0
  52. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/connectivity.py +412 -0
  53. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/density.py +396 -0
  54. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/distance_measures.py +150 -0
  55. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/dominating_set.py +149 -0
  56. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/kcomponents.py +369 -0
  57. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/matching.py +44 -0
  58. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/maxcut.py +143 -0
  59. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/ramsey.py +53 -0
  60. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/steinertree.py +265 -0
  61. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/tests/__init__.py +0 -0
  62. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/tests/test_approx_clust_coeff.py +41 -0
  63. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/tests/test_clique.py +112 -0
  64. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/tests/test_connectivity.py +199 -0
  65. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/tests/test_density.py +146 -0
  66. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/tests/test_distance_measures.py +59 -0
  67. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/tests/test_dominating_set.py +78 -0
  68. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/tests/test_kcomponents.py +303 -0
  69. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/tests/test_matching.py +8 -0
  70. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/tests/test_maxcut.py +94 -0
  71. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/tests/test_ramsey.py +31 -0
  72. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/tests/test_steinertree.py +306 -0
  73. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/tests/test_traveling_salesman.py +1014 -0
  74. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/tests/test_treewidth.py +274 -0
  75. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/tests/test_vertex_cover.py +68 -0
  76. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/traveling_salesman.py +1508 -0
  77. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/treewidth.py +255 -0
  78. package/runtime/python/okstra_vendor/networkx/algorithms/approximation/vertex_cover.py +83 -0
  79. package/runtime/python/okstra_vendor/networkx/algorithms/assortativity/__init__.py +5 -0
  80. package/runtime/python/okstra_vendor/networkx/algorithms/assortativity/connectivity.py +122 -0
  81. package/runtime/python/okstra_vendor/networkx/algorithms/assortativity/correlation.py +302 -0
  82. package/runtime/python/okstra_vendor/networkx/algorithms/assortativity/mixing.py +255 -0
  83. package/runtime/python/okstra_vendor/networkx/algorithms/assortativity/neighbor_degree.py +160 -0
  84. package/runtime/python/okstra_vendor/networkx/algorithms/assortativity/pairs.py +127 -0
  85. package/runtime/python/okstra_vendor/networkx/algorithms/assortativity/tests/__init__.py +0 -0
  86. package/runtime/python/okstra_vendor/networkx/algorithms/assortativity/tests/base_test.py +81 -0
  87. package/runtime/python/okstra_vendor/networkx/algorithms/assortativity/tests/test_connectivity.py +143 -0
  88. package/runtime/python/okstra_vendor/networkx/algorithms/assortativity/tests/test_correlation.py +122 -0
  89. package/runtime/python/okstra_vendor/networkx/algorithms/assortativity/tests/test_mixing.py +174 -0
  90. package/runtime/python/okstra_vendor/networkx/algorithms/assortativity/tests/test_neighbor_degree.py +107 -0
  91. package/runtime/python/okstra_vendor/networkx/algorithms/assortativity/tests/test_pairs.py +87 -0
  92. package/runtime/python/okstra_vendor/networkx/algorithms/asteroidal.py +164 -0
  93. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/__init__.py +88 -0
  94. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/basic.py +322 -0
  95. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/centrality.py +290 -0
  96. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/cluster.py +289 -0
  97. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/covering.py +57 -0
  98. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/edgelist.py +360 -0
  99. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/extendability.py +105 -0
  100. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/generators.py +603 -0
  101. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/link_analysis.py +316 -0
  102. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/matching.py +590 -0
  103. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/matrix.py +232 -0
  104. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/projection.py +526 -0
  105. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/redundancy.py +112 -0
  106. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/spectral.py +69 -0
  107. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/tests/__init__.py +0 -0
  108. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/tests/test_basic.py +125 -0
  109. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/tests/test_centrality.py +192 -0
  110. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/tests/test_cluster.py +84 -0
  111. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/tests/test_covering.py +33 -0
  112. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/tests/test_edgelist.py +240 -0
  113. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/tests/test_extendability.py +334 -0
  114. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/tests/test_generators.py +407 -0
  115. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/tests/test_link_analysis.py +218 -0
  116. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/tests/test_matching.py +327 -0
  117. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/tests/test_matrix.py +138 -0
  118. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/tests/test_project.py +409 -0
  119. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/tests/test_redundancy.py +35 -0
  120. package/runtime/python/okstra_vendor/networkx/algorithms/bipartite/tests/test_spectral_bipartivity.py +80 -0
  121. package/runtime/python/okstra_vendor/networkx/algorithms/boundary.py +168 -0
  122. package/runtime/python/okstra_vendor/networkx/algorithms/bridges.py +205 -0
  123. package/runtime/python/okstra_vendor/networkx/algorithms/broadcasting.py +164 -0
  124. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/__init__.py +20 -0
  125. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/betweenness.py +591 -0
  126. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/betweenness_subset.py +236 -0
  127. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/closeness.py +282 -0
  128. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/current_flow_betweenness.py +364 -0
  129. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/current_flow_betweenness_subset.py +227 -0
  130. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/current_flow_closeness.py +96 -0
  131. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/degree_alg.py +150 -0
  132. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/dispersion.py +107 -0
  133. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/eigenvector.py +357 -0
  134. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/flow_matrix.py +130 -0
  135. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/group.py +787 -0
  136. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/harmonic.py +88 -0
  137. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/katz.py +331 -0
  138. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/laplacian.py +150 -0
  139. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/load.py +200 -0
  140. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/percolation.py +128 -0
  141. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/reaching.py +209 -0
  142. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/second_order.py +141 -0
  143. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/subgraph_alg.py +361 -0
  144. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/tests/__init__.py +0 -0
  145. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/tests/test_betweenness_centrality.py +923 -0
  146. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/tests/test_betweenness_centrality_subset.py +354 -0
  147. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/tests/test_closeness_centrality.py +274 -0
  148. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/tests/test_current_flow_betweenness_centrality.py +259 -0
  149. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/tests/test_current_flow_betweenness_centrality_subset.py +147 -0
  150. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/tests/test_current_flow_closeness.py +43 -0
  151. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/tests/test_degree_centrality.py +144 -0
  152. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/tests/test_dispersion.py +73 -0
  153. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/tests/test_eigenvector_centrality.py +186 -0
  154. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/tests/test_group.py +277 -0
  155. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/tests/test_harmonic_centrality.py +122 -0
  156. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/tests/test_katz_centrality.py +345 -0
  157. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/tests/test_laplacian_centrality.py +220 -0
  158. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/tests/test_load_centrality.py +344 -0
  159. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/tests/test_percolation_centrality.py +87 -0
  160. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/tests/test_reaching.py +140 -0
  161. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/tests/test_second_order_centrality.py +82 -0
  162. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/tests/test_subgraph.py +110 -0
  163. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/tests/test_trophic.py +302 -0
  164. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/tests/test_voterank.py +64 -0
  165. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/trophic.py +181 -0
  166. package/runtime/python/okstra_vendor/networkx/algorithms/centrality/voterank_alg.py +95 -0
  167. package/runtime/python/okstra_vendor/networkx/algorithms/chains.py +172 -0
  168. package/runtime/python/okstra_vendor/networkx/algorithms/chordal.py +443 -0
  169. package/runtime/python/okstra_vendor/networkx/algorithms/clique.py +818 -0
  170. package/runtime/python/okstra_vendor/networkx/algorithms/cluster.py +732 -0
  171. package/runtime/python/okstra_vendor/networkx/algorithms/coloring/__init__.py +4 -0
  172. package/runtime/python/okstra_vendor/networkx/algorithms/coloring/equitable_coloring.py +505 -0
  173. package/runtime/python/okstra_vendor/networkx/algorithms/coloring/greedy_coloring.py +565 -0
  174. package/runtime/python/okstra_vendor/networkx/algorithms/coloring/tests/__init__.py +0 -0
  175. package/runtime/python/okstra_vendor/networkx/algorithms/coloring/tests/test_coloring.py +863 -0
  176. package/runtime/python/okstra_vendor/networkx/algorithms/communicability_alg.py +163 -0
  177. package/runtime/python/okstra_vendor/networkx/algorithms/community/__init__.py +28 -0
  178. package/runtime/python/okstra_vendor/networkx/algorithms/community/asyn_fluid.py +153 -0
  179. package/runtime/python/okstra_vendor/networkx/algorithms/community/bipartitions.py +354 -0
  180. package/runtime/python/okstra_vendor/networkx/algorithms/community/centrality.py +171 -0
  181. package/runtime/python/okstra_vendor/networkx/algorithms/community/community_utils.py +30 -0
  182. package/runtime/python/okstra_vendor/networkx/algorithms/community/divisive.py +216 -0
  183. package/runtime/python/okstra_vendor/networkx/algorithms/community/kclique.py +79 -0
  184. package/runtime/python/okstra_vendor/networkx/algorithms/community/label_propagation.py +338 -0
  185. package/runtime/python/okstra_vendor/networkx/algorithms/community/leiden.py +162 -0
  186. package/runtime/python/okstra_vendor/networkx/algorithms/community/local.py +220 -0
  187. package/runtime/python/okstra_vendor/networkx/algorithms/community/louvain.py +384 -0
  188. package/runtime/python/okstra_vendor/networkx/algorithms/community/lukes.py +227 -0
  189. package/runtime/python/okstra_vendor/networkx/algorithms/community/modularity_max.py +452 -0
  190. package/runtime/python/okstra_vendor/networkx/algorithms/community/quality.py +347 -0
  191. package/runtime/python/okstra_vendor/networkx/algorithms/community/tests/__init__.py +0 -0
  192. package/runtime/python/okstra_vendor/networkx/algorithms/community/tests/test_asyn_fluid.py +147 -0
  193. package/runtime/python/okstra_vendor/networkx/algorithms/community/tests/test_bipartitions.py +157 -0
  194. package/runtime/python/okstra_vendor/networkx/algorithms/community/tests/test_centrality.py +85 -0
  195. package/runtime/python/okstra_vendor/networkx/algorithms/community/tests/test_divisive.py +106 -0
  196. package/runtime/python/okstra_vendor/networkx/algorithms/community/tests/test_kclique.py +91 -0
  197. package/runtime/python/okstra_vendor/networkx/algorithms/community/tests/test_label_propagation.py +241 -0
  198. package/runtime/python/okstra_vendor/networkx/algorithms/community/tests/test_leiden.py +138 -0
  199. package/runtime/python/okstra_vendor/networkx/algorithms/community/tests/test_local.py +76 -0
  200. package/runtime/python/okstra_vendor/networkx/algorithms/community/tests/test_louvain.py +264 -0
  201. package/runtime/python/okstra_vendor/networkx/algorithms/community/tests/test_lukes.py +152 -0
  202. package/runtime/python/okstra_vendor/networkx/algorithms/community/tests/test_modularity_max.py +340 -0
  203. package/runtime/python/okstra_vendor/networkx/algorithms/community/tests/test_quality.py +139 -0
  204. package/runtime/python/okstra_vendor/networkx/algorithms/community/tests/test_utils.py +26 -0
  205. package/runtime/python/okstra_vendor/networkx/algorithms/components/__init__.py +6 -0
  206. package/runtime/python/okstra_vendor/networkx/algorithms/components/attracting.py +115 -0
  207. package/runtime/python/okstra_vendor/networkx/algorithms/components/biconnected.py +394 -0
  208. package/runtime/python/okstra_vendor/networkx/algorithms/components/connected.py +282 -0
  209. package/runtime/python/okstra_vendor/networkx/algorithms/components/semiconnected.py +71 -0
  210. package/runtime/python/okstra_vendor/networkx/algorithms/components/strongly_connected.py +359 -0
  211. package/runtime/python/okstra_vendor/networkx/algorithms/components/tests/__init__.py +0 -0
  212. package/runtime/python/okstra_vendor/networkx/algorithms/components/tests/test_attracting.py +70 -0
  213. package/runtime/python/okstra_vendor/networkx/algorithms/components/tests/test_biconnected.py +248 -0
  214. package/runtime/python/okstra_vendor/networkx/algorithms/components/tests/test_connected.py +138 -0
  215. package/runtime/python/okstra_vendor/networkx/algorithms/components/tests/test_semiconnected.py +55 -0
  216. package/runtime/python/okstra_vendor/networkx/algorithms/components/tests/test_strongly_connected.py +193 -0
  217. package/runtime/python/okstra_vendor/networkx/algorithms/components/tests/test_weakly_connected.py +96 -0
  218. package/runtime/python/okstra_vendor/networkx/algorithms/components/weakly_connected.py +196 -0
  219. package/runtime/python/okstra_vendor/networkx/algorithms/connectivity/__init__.py +11 -0
  220. package/runtime/python/okstra_vendor/networkx/algorithms/connectivity/connectivity.py +811 -0
  221. package/runtime/python/okstra_vendor/networkx/algorithms/connectivity/cuts.py +616 -0
  222. package/runtime/python/okstra_vendor/networkx/algorithms/connectivity/disjoint_paths.py +408 -0
  223. package/runtime/python/okstra_vendor/networkx/algorithms/connectivity/edge_augmentation.py +1270 -0
  224. package/runtime/python/okstra_vendor/networkx/algorithms/connectivity/edge_kcomponents.py +592 -0
  225. package/runtime/python/okstra_vendor/networkx/algorithms/connectivity/kcomponents.py +220 -0
  226. package/runtime/python/okstra_vendor/networkx/algorithms/connectivity/kcutsets.py +235 -0
  227. package/runtime/python/okstra_vendor/networkx/algorithms/connectivity/stoerwagner.py +152 -0
  228. package/runtime/python/okstra_vendor/networkx/algorithms/connectivity/tests/__init__.py +0 -0
  229. package/runtime/python/okstra_vendor/networkx/algorithms/connectivity/tests/test_connectivity.py +421 -0
  230. package/runtime/python/okstra_vendor/networkx/algorithms/connectivity/tests/test_cuts.py +309 -0
  231. package/runtime/python/okstra_vendor/networkx/algorithms/connectivity/tests/test_disjoint_paths.py +249 -0
  232. package/runtime/python/okstra_vendor/networkx/algorithms/connectivity/tests/test_edge_augmentation.py +502 -0
  233. package/runtime/python/okstra_vendor/networkx/algorithms/connectivity/tests/test_edge_kcomponents.py +488 -0
  234. package/runtime/python/okstra_vendor/networkx/algorithms/connectivity/tests/test_kcomponents.py +323 -0
  235. package/runtime/python/okstra_vendor/networkx/algorithms/connectivity/tests/test_kcutsets.py +280 -0
  236. package/runtime/python/okstra_vendor/networkx/algorithms/connectivity/tests/test_stoer_wagner.py +102 -0
  237. package/runtime/python/okstra_vendor/networkx/algorithms/connectivity/utils.py +88 -0
  238. package/runtime/python/okstra_vendor/networkx/algorithms/core.py +588 -0
  239. package/runtime/python/okstra_vendor/networkx/algorithms/covering.py +142 -0
  240. package/runtime/python/okstra_vendor/networkx/algorithms/cuts.py +416 -0
  241. package/runtime/python/okstra_vendor/networkx/algorithms/cycles.py +1234 -0
  242. package/runtime/python/okstra_vendor/networkx/algorithms/d_separation.py +677 -0
  243. package/runtime/python/okstra_vendor/networkx/algorithms/dag.py +1392 -0
  244. package/runtime/python/okstra_vendor/networkx/algorithms/distance_measures.py +1095 -0
  245. package/runtime/python/okstra_vendor/networkx/algorithms/distance_regular.py +272 -0
  246. package/runtime/python/okstra_vendor/networkx/algorithms/dominance.py +142 -0
  247. package/runtime/python/okstra_vendor/networkx/algorithms/dominating.py +268 -0
  248. package/runtime/python/okstra_vendor/networkx/algorithms/efficiency_measures.py +167 -0
  249. package/runtime/python/okstra_vendor/networkx/algorithms/euler.py +470 -0
  250. package/runtime/python/okstra_vendor/networkx/algorithms/flow/__init__.py +11 -0
  251. package/runtime/python/okstra_vendor/networkx/algorithms/flow/boykovkolmogorov.py +370 -0
  252. package/runtime/python/okstra_vendor/networkx/algorithms/flow/capacityscaling.py +407 -0
  253. package/runtime/python/okstra_vendor/networkx/algorithms/flow/dinitz_alg.py +238 -0
  254. package/runtime/python/okstra_vendor/networkx/algorithms/flow/edmondskarp.py +241 -0
  255. package/runtime/python/okstra_vendor/networkx/algorithms/flow/gomory_hu.py +178 -0
  256. package/runtime/python/okstra_vendor/networkx/algorithms/flow/maxflow.py +611 -0
  257. package/runtime/python/okstra_vendor/networkx/algorithms/flow/mincost.py +356 -0
  258. package/runtime/python/okstra_vendor/networkx/algorithms/flow/networksimplex.py +662 -0
  259. package/runtime/python/okstra_vendor/networkx/algorithms/flow/preflowpush.py +425 -0
  260. package/runtime/python/okstra_vendor/networkx/algorithms/flow/shortestaugmentingpath.py +300 -0
  261. package/runtime/python/okstra_vendor/networkx/algorithms/flow/tests/__init__.py +0 -0
  262. package/runtime/python/okstra_vendor/networkx/algorithms/flow/tests/gl1.gpickle.bz2 +0 -0
  263. package/runtime/python/okstra_vendor/networkx/algorithms/flow/tests/gw1.gpickle.bz2 +0 -0
  264. package/runtime/python/okstra_vendor/networkx/algorithms/flow/tests/netgen-2.gpickle.bz2 +0 -0
  265. package/runtime/python/okstra_vendor/networkx/algorithms/flow/tests/test_gomory_hu.py +128 -0
  266. package/runtime/python/okstra_vendor/networkx/algorithms/flow/tests/test_maxflow.py +573 -0
  267. package/runtime/python/okstra_vendor/networkx/algorithms/flow/tests/test_maxflow_large_graph.py +155 -0
  268. package/runtime/python/okstra_vendor/networkx/algorithms/flow/tests/test_mincost.py +475 -0
  269. package/runtime/python/okstra_vendor/networkx/algorithms/flow/tests/test_networksimplex.py +481 -0
  270. package/runtime/python/okstra_vendor/networkx/algorithms/flow/tests/wlm3.gpickle.bz2 +0 -0
  271. package/runtime/python/okstra_vendor/networkx/algorithms/flow/utils.py +194 -0
  272. package/runtime/python/okstra_vendor/networkx/algorithms/graph_hashing.py +435 -0
  273. package/runtime/python/okstra_vendor/networkx/algorithms/graphical.py +483 -0
  274. package/runtime/python/okstra_vendor/networkx/algorithms/hierarchy.py +57 -0
  275. package/runtime/python/okstra_vendor/networkx/algorithms/hybrid.py +196 -0
  276. package/runtime/python/okstra_vendor/networkx/algorithms/isolate.py +107 -0
  277. package/runtime/python/okstra_vendor/networkx/algorithms/isomorphism/__init__.py +7 -0
  278. package/runtime/python/okstra_vendor/networkx/algorithms/isomorphism/ismags.py +1306 -0
  279. package/runtime/python/okstra_vendor/networkx/algorithms/isomorphism/isomorph.py +336 -0
  280. package/runtime/python/okstra_vendor/networkx/algorithms/isomorphism/isomorphvf2.py +1262 -0
  281. package/runtime/python/okstra_vendor/networkx/algorithms/isomorphism/matchhelpers.py +352 -0
  282. package/runtime/python/okstra_vendor/networkx/algorithms/isomorphism/temporalisomorphvf2.py +308 -0
  283. package/runtime/python/okstra_vendor/networkx/algorithms/isomorphism/tests/__init__.py +0 -0
  284. package/runtime/python/okstra_vendor/networkx/algorithms/isomorphism/tests/iso_r01_s80.A99 +0 -0
  285. package/runtime/python/okstra_vendor/networkx/algorithms/isomorphism/tests/iso_r01_s80.B99 +0 -0
  286. package/runtime/python/okstra_vendor/networkx/algorithms/isomorphism/tests/si2_b06_m200.A99 +0 -0
  287. package/runtime/python/okstra_vendor/networkx/algorithms/isomorphism/tests/si2_b06_m200.B99 +0 -0
  288. package/runtime/python/okstra_vendor/networkx/algorithms/isomorphism/tests/test_ismags.py +719 -0
  289. package/runtime/python/okstra_vendor/networkx/algorithms/isomorphism/tests/test_isomorphism.py +103 -0
  290. package/runtime/python/okstra_vendor/networkx/algorithms/isomorphism/tests/test_isomorphvf2.py +490 -0
  291. package/runtime/python/okstra_vendor/networkx/algorithms/isomorphism/tests/test_match_helpers.py +64 -0
  292. package/runtime/python/okstra_vendor/networkx/algorithms/isomorphism/tests/test_temporalisomorphvf2.py +212 -0
  293. package/runtime/python/okstra_vendor/networkx/algorithms/isomorphism/tests/test_tree_isomorphism.py +202 -0
  294. package/runtime/python/okstra_vendor/networkx/algorithms/isomorphism/tests/test_vf2pp.py +1655 -0
  295. package/runtime/python/okstra_vendor/networkx/algorithms/isomorphism/tests/test_vf2pp_helpers.py +3118 -0
  296. package/runtime/python/okstra_vendor/networkx/algorithms/isomorphism/tests/test_vf2userfunc.py +196 -0
  297. package/runtime/python/okstra_vendor/networkx/algorithms/isomorphism/tree_isomorphism.py +264 -0
  298. package/runtime/python/okstra_vendor/networkx/algorithms/isomorphism/vf2pp.py +1102 -0
  299. package/runtime/python/okstra_vendor/networkx/algorithms/isomorphism/vf2userfunc.py +192 -0
  300. package/runtime/python/okstra_vendor/networkx/algorithms/link_analysis/__init__.py +2 -0
  301. package/runtime/python/okstra_vendor/networkx/algorithms/link_analysis/hits_alg.py +337 -0
  302. package/runtime/python/okstra_vendor/networkx/algorithms/link_analysis/pagerank_alg.py +498 -0
  303. package/runtime/python/okstra_vendor/networkx/algorithms/link_analysis/tests/__init__.py +0 -0
  304. package/runtime/python/okstra_vendor/networkx/algorithms/link_analysis/tests/test_hits.py +77 -0
  305. package/runtime/python/okstra_vendor/networkx/algorithms/link_analysis/tests/test_pagerank.py +213 -0
  306. package/runtime/python/okstra_vendor/networkx/algorithms/link_prediction.py +687 -0
  307. package/runtime/python/okstra_vendor/networkx/algorithms/lowest_common_ancestors.py +280 -0
  308. package/runtime/python/okstra_vendor/networkx/algorithms/matching.py +1148 -0
  309. package/runtime/python/okstra_vendor/networkx/algorithms/minors/__init__.py +27 -0
  310. package/runtime/python/okstra_vendor/networkx/algorithms/minors/contraction.py +738 -0
  311. package/runtime/python/okstra_vendor/networkx/algorithms/minors/tests/test_contraction.py +544 -0
  312. package/runtime/python/okstra_vendor/networkx/algorithms/mis.py +78 -0
  313. package/runtime/python/okstra_vendor/networkx/algorithms/moral.py +59 -0
  314. package/runtime/python/okstra_vendor/networkx/algorithms/node_classification.py +219 -0
  315. package/runtime/python/okstra_vendor/networkx/algorithms/non_randomness.py +155 -0
  316. package/runtime/python/okstra_vendor/networkx/algorithms/operators/__init__.py +4 -0
  317. package/runtime/python/okstra_vendor/networkx/algorithms/operators/all.py +324 -0
  318. package/runtime/python/okstra_vendor/networkx/algorithms/operators/binary.py +468 -0
  319. package/runtime/python/okstra_vendor/networkx/algorithms/operators/product.py +633 -0
  320. package/runtime/python/okstra_vendor/networkx/algorithms/operators/tests/__init__.py +0 -0
  321. package/runtime/python/okstra_vendor/networkx/algorithms/operators/tests/test_all.py +328 -0
  322. package/runtime/python/okstra_vendor/networkx/algorithms/operators/tests/test_binary.py +451 -0
  323. package/runtime/python/okstra_vendor/networkx/algorithms/operators/tests/test_product.py +491 -0
  324. package/runtime/python/okstra_vendor/networkx/algorithms/operators/tests/test_unary.py +55 -0
  325. package/runtime/python/okstra_vendor/networkx/algorithms/operators/unary.py +77 -0
  326. package/runtime/python/okstra_vendor/networkx/algorithms/perfect_graph.py +73 -0
  327. package/runtime/python/okstra_vendor/networkx/algorithms/planar_drawing.py +464 -0
  328. package/runtime/python/okstra_vendor/networkx/algorithms/planarity.py +1463 -0
  329. package/runtime/python/okstra_vendor/networkx/algorithms/polynomials.py +306 -0
  330. package/runtime/python/okstra_vendor/networkx/algorithms/reciprocity.py +98 -0
  331. package/runtime/python/okstra_vendor/networkx/algorithms/regular.py +167 -0
  332. package/runtime/python/okstra_vendor/networkx/algorithms/richclub.py +138 -0
  333. package/runtime/python/okstra_vendor/networkx/algorithms/shortest_paths/__init__.py +5 -0
  334. package/runtime/python/okstra_vendor/networkx/algorithms/shortest_paths/astar.py +239 -0
  335. package/runtime/python/okstra_vendor/networkx/algorithms/shortest_paths/dense.py +264 -0
  336. package/runtime/python/okstra_vendor/networkx/algorithms/shortest_paths/generic.py +716 -0
  337. package/runtime/python/okstra_vendor/networkx/algorithms/shortest_paths/tests/__init__.py +0 -0
  338. package/runtime/python/okstra_vendor/networkx/algorithms/shortest_paths/tests/test_astar.py +254 -0
  339. package/runtime/python/okstra_vendor/networkx/algorithms/shortest_paths/tests/test_dense.py +212 -0
  340. package/runtime/python/okstra_vendor/networkx/algorithms/shortest_paths/tests/test_dense_numpy.py +88 -0
  341. package/runtime/python/okstra_vendor/networkx/algorithms/shortest_paths/tests/test_generic.py +511 -0
  342. package/runtime/python/okstra_vendor/networkx/algorithms/shortest_paths/tests/test_unweighted.py +149 -0
  343. package/runtime/python/okstra_vendor/networkx/algorithms/shortest_paths/tests/test_weighted.py +983 -0
  344. package/runtime/python/okstra_vendor/networkx/algorithms/shortest_paths/unweighted.py +625 -0
  345. package/runtime/python/okstra_vendor/networkx/algorithms/shortest_paths/weighted.py +2542 -0
  346. package/runtime/python/okstra_vendor/networkx/algorithms/similarity.py +2107 -0
  347. package/runtime/python/okstra_vendor/networkx/algorithms/simple_paths.py +966 -0
  348. package/runtime/python/okstra_vendor/networkx/algorithms/smallworld.py +404 -0
  349. package/runtime/python/okstra_vendor/networkx/algorithms/smetric.py +30 -0
  350. package/runtime/python/okstra_vendor/networkx/algorithms/sparsifiers.py +296 -0
  351. package/runtime/python/okstra_vendor/networkx/algorithms/structuralholes.py +374 -0
  352. package/runtime/python/okstra_vendor/networkx/algorithms/summarization.py +564 -0
  353. package/runtime/python/okstra_vendor/networkx/algorithms/swap.py +406 -0
  354. package/runtime/python/okstra_vendor/networkx/algorithms/tests/__init__.py +0 -0
  355. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_asteroidal.py +23 -0
  356. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_boundary.py +154 -0
  357. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_bridges.py +144 -0
  358. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_broadcasting.py +109 -0
  359. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_chains.py +136 -0
  360. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_chordal.py +129 -0
  361. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_clique.py +300 -0
  362. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_cluster.py +678 -0
  363. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_communicability.py +80 -0
  364. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_core.py +266 -0
  365. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_covering.py +85 -0
  366. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_cuts.py +171 -0
  367. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_cycles.py +984 -0
  368. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_d_separation.py +340 -0
  369. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_dag.py +835 -0
  370. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_distance_measures.py +831 -0
  371. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_distance_regular.py +85 -0
  372. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_dominance.py +299 -0
  373. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_dominating.py +115 -0
  374. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_efficiency.py +58 -0
  375. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_euler.py +314 -0
  376. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_graph_hashing.py +872 -0
  377. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_graphical.py +163 -0
  378. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_hierarchy.py +46 -0
  379. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_hybrid.py +24 -0
  380. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_isolate.py +26 -0
  381. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_link_prediction.py +615 -0
  382. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_lowest_common_ancestors.py +459 -0
  383. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_matching.py +556 -0
  384. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_max_weight_clique.py +179 -0
  385. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_mis.py +62 -0
  386. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_moral.py +15 -0
  387. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_node_classification.py +140 -0
  388. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_non_randomness.py +60 -0
  389. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_perfect_graph.py +27 -0
  390. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_planar_drawing.py +274 -0
  391. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_planarity.py +556 -0
  392. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_polynomials.py +57 -0
  393. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_reciprocity.py +37 -0
  394. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_regular.py +88 -0
  395. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_richclub.py +149 -0
  396. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_similarity.py +1158 -0
  397. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_simple_paths.py +803 -0
  398. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_smallworld.py +76 -0
  399. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_smetric.py +8 -0
  400. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_sparsifiers.py +138 -0
  401. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_structuralholes.py +191 -0
  402. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_summarization.py +642 -0
  403. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_swap.py +179 -0
  404. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_threshold.py +270 -0
  405. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_time_dependent.py +431 -0
  406. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_tournament.py +161 -0
  407. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_triads.py +248 -0
  408. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_vitality.py +41 -0
  409. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_voronoi.py +103 -0
  410. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_walks.py +54 -0
  411. package/runtime/python/okstra_vendor/networkx/algorithms/tests/test_wiener.py +157 -0
  412. package/runtime/python/okstra_vendor/networkx/algorithms/threshold.py +981 -0
  413. package/runtime/python/okstra_vendor/networkx/algorithms/time_dependent.py +142 -0
  414. package/runtime/python/okstra_vendor/networkx/algorithms/tournament.py +406 -0
  415. package/runtime/python/okstra_vendor/networkx/algorithms/traversal/__init__.py +5 -0
  416. package/runtime/python/okstra_vendor/networkx/algorithms/traversal/beamsearch.py +90 -0
  417. package/runtime/python/okstra_vendor/networkx/algorithms/traversal/breadth_first_search.py +576 -0
  418. package/runtime/python/okstra_vendor/networkx/algorithms/traversal/depth_first_search.py +529 -0
  419. package/runtime/python/okstra_vendor/networkx/algorithms/traversal/edgebfs.py +185 -0
  420. package/runtime/python/okstra_vendor/networkx/algorithms/traversal/edgedfs.py +182 -0
  421. package/runtime/python/okstra_vendor/networkx/algorithms/traversal/tests/__init__.py +0 -0
  422. package/runtime/python/okstra_vendor/networkx/algorithms/traversal/tests/test_beamsearch.py +25 -0
  423. package/runtime/python/okstra_vendor/networkx/algorithms/traversal/tests/test_bfs.py +203 -0
  424. package/runtime/python/okstra_vendor/networkx/algorithms/traversal/tests/test_dfs.py +307 -0
  425. package/runtime/python/okstra_vendor/networkx/algorithms/traversal/tests/test_edgebfs.py +147 -0
  426. package/runtime/python/okstra_vendor/networkx/algorithms/traversal/tests/test_edgedfs.py +131 -0
  427. package/runtime/python/okstra_vendor/networkx/algorithms/tree/__init__.py +7 -0
  428. package/runtime/python/okstra_vendor/networkx/algorithms/tree/branchings.py +1042 -0
  429. package/runtime/python/okstra_vendor/networkx/algorithms/tree/coding.py +413 -0
  430. package/runtime/python/okstra_vendor/networkx/algorithms/tree/decomposition.py +88 -0
  431. package/runtime/python/okstra_vendor/networkx/algorithms/tree/distance_measures.py +219 -0
  432. package/runtime/python/okstra_vendor/networkx/algorithms/tree/mst.py +1281 -0
  433. package/runtime/python/okstra_vendor/networkx/algorithms/tree/operations.py +106 -0
  434. package/runtime/python/okstra_vendor/networkx/algorithms/tree/recognition.py +273 -0
  435. package/runtime/python/okstra_vendor/networkx/algorithms/tree/tests/__init__.py +0 -0
  436. package/runtime/python/okstra_vendor/networkx/algorithms/tree/tests/test_branchings.py +624 -0
  437. package/runtime/python/okstra_vendor/networkx/algorithms/tree/tests/test_coding.py +114 -0
  438. package/runtime/python/okstra_vendor/networkx/algorithms/tree/tests/test_decomposition.py +79 -0
  439. package/runtime/python/okstra_vendor/networkx/algorithms/tree/tests/test_distance_measures.py +99 -0
  440. package/runtime/python/okstra_vendor/networkx/algorithms/tree/tests/test_mst.py +934 -0
  441. package/runtime/python/okstra_vendor/networkx/algorithms/tree/tests/test_operations.py +53 -0
  442. package/runtime/python/okstra_vendor/networkx/algorithms/tree/tests/test_recognition.py +174 -0
  443. package/runtime/python/okstra_vendor/networkx/algorithms/triads.py +500 -0
  444. package/runtime/python/okstra_vendor/networkx/algorithms/vitality.py +76 -0
  445. package/runtime/python/okstra_vendor/networkx/algorithms/voronoi.py +86 -0
  446. package/runtime/python/okstra_vendor/networkx/algorithms/walks.py +77 -0
  447. package/runtime/python/okstra_vendor/networkx/algorithms/wiener.py +278 -0
  448. package/runtime/python/okstra_vendor/networkx/classes/__init__.py +13 -0
  449. package/runtime/python/okstra_vendor/networkx/classes/coreviews.py +435 -0
  450. package/runtime/python/okstra_vendor/networkx/classes/digraph.py +1363 -0
  451. package/runtime/python/okstra_vendor/networkx/classes/filters.py +95 -0
  452. package/runtime/python/okstra_vendor/networkx/classes/function.py +1549 -0
  453. package/runtime/python/okstra_vendor/networkx/classes/graph.py +2082 -0
  454. package/runtime/python/okstra_vendor/networkx/classes/graphviews.py +269 -0
  455. package/runtime/python/okstra_vendor/networkx/classes/multidigraph.py +977 -0
  456. package/runtime/python/okstra_vendor/networkx/classes/multigraph.py +1294 -0
  457. package/runtime/python/okstra_vendor/networkx/classes/reportviews.py +1447 -0
  458. package/runtime/python/okstra_vendor/networkx/classes/tests/__init__.py +0 -0
  459. package/runtime/python/okstra_vendor/networkx/classes/tests/dispatch_interface.py +192 -0
  460. package/runtime/python/okstra_vendor/networkx/classes/tests/historical_tests.py +476 -0
  461. package/runtime/python/okstra_vendor/networkx/classes/tests/test_coreviews.py +362 -0
  462. package/runtime/python/okstra_vendor/networkx/classes/tests/test_digraph.py +331 -0
  463. package/runtime/python/okstra_vendor/networkx/classes/tests/test_digraph_historical.py +110 -0
  464. package/runtime/python/okstra_vendor/networkx/classes/tests/test_filters.py +177 -0
  465. package/runtime/python/okstra_vendor/networkx/classes/tests/test_function.py +1045 -0
  466. package/runtime/python/okstra_vendor/networkx/classes/tests/test_graph.py +950 -0
  467. package/runtime/python/okstra_vendor/networkx/classes/tests/test_graph_historical.py +12 -0
  468. package/runtime/python/okstra_vendor/networkx/classes/tests/test_graphviews.py +349 -0
  469. package/runtime/python/okstra_vendor/networkx/classes/tests/test_multidigraph.py +459 -0
  470. package/runtime/python/okstra_vendor/networkx/classes/tests/test_multigraph.py +528 -0
  471. package/runtime/python/okstra_vendor/networkx/classes/tests/test_reportviews.py +1421 -0
  472. package/runtime/python/okstra_vendor/networkx/classes/tests/test_special.py +131 -0
  473. package/runtime/python/okstra_vendor/networkx/classes/tests/test_subgraphviews.py +371 -0
  474. package/runtime/python/okstra_vendor/networkx/conftest.py +261 -0
  475. package/runtime/python/okstra_vendor/networkx/convert.py +502 -0
  476. package/runtime/python/okstra_vendor/networkx/convert_matrix.py +1314 -0
  477. package/runtime/python/okstra_vendor/networkx/drawing/__init__.py +7 -0
  478. package/runtime/python/okstra_vendor/networkx/drawing/layout.py +2036 -0
  479. package/runtime/python/okstra_vendor/networkx/drawing/nx_agraph.py +470 -0
  480. package/runtime/python/okstra_vendor/networkx/drawing/nx_latex.py +570 -0
  481. package/runtime/python/okstra_vendor/networkx/drawing/nx_pydot.py +361 -0
  482. package/runtime/python/okstra_vendor/networkx/drawing/nx_pylab.py +2978 -0
  483. package/runtime/python/okstra_vendor/networkx/drawing/tests/__init__.py +0 -0
  484. package/runtime/python/okstra_vendor/networkx/drawing/tests/baseline/test_display_complex.png +0 -0
  485. package/runtime/python/okstra_vendor/networkx/drawing/tests/baseline/test_display_empty_graph.png +0 -0
  486. package/runtime/python/okstra_vendor/networkx/drawing/tests/baseline/test_display_house_with_colors.png +0 -0
  487. package/runtime/python/okstra_vendor/networkx/drawing/tests/baseline/test_display_labels_and_colors.png +0 -0
  488. package/runtime/python/okstra_vendor/networkx/drawing/tests/baseline/test_display_shortest_path.png +0 -0
  489. package/runtime/python/okstra_vendor/networkx/drawing/tests/baseline/test_house_with_colors.png +0 -0
  490. package/runtime/python/okstra_vendor/networkx/drawing/tests/test_agraph.py +237 -0
  491. package/runtime/python/okstra_vendor/networkx/drawing/tests/test_image_comparison_pylab_mpl.py +229 -0
  492. package/runtime/python/okstra_vendor/networkx/drawing/tests/test_latex.py +285 -0
  493. package/runtime/python/okstra_vendor/networkx/drawing/tests/test_layout.py +631 -0
  494. package/runtime/python/okstra_vendor/networkx/drawing/tests/test_pydot.py +146 -0
  495. package/runtime/python/okstra_vendor/networkx/drawing/tests/test_pylab.py +1582 -0
  496. package/runtime/python/okstra_vendor/networkx/exception.py +131 -0
  497. package/runtime/python/okstra_vendor/networkx/generators/__init__.py +34 -0
  498. package/runtime/python/okstra_vendor/networkx/generators/atlas.dat.gz +0 -0
  499. package/runtime/python/okstra_vendor/networkx/generators/atlas.py +227 -0
  500. package/runtime/python/okstra_vendor/networkx/generators/classic.py +1091 -0
  501. package/runtime/python/okstra_vendor/networkx/generators/cographs.py +68 -0
  502. package/runtime/python/okstra_vendor/networkx/generators/community.py +1070 -0
  503. package/runtime/python/okstra_vendor/networkx/generators/degree_seq.py +886 -0
  504. package/runtime/python/okstra_vendor/networkx/generators/directed.py +572 -0
  505. package/runtime/python/okstra_vendor/networkx/generators/duplication.py +174 -0
  506. package/runtime/python/okstra_vendor/networkx/generators/ego.py +66 -0
  507. package/runtime/python/okstra_vendor/networkx/generators/expanders.py +499 -0
  508. package/runtime/python/okstra_vendor/networkx/generators/geometric.py +1037 -0
  509. package/runtime/python/okstra_vendor/networkx/generators/harary_graph.py +163 -0
  510. package/runtime/python/okstra_vendor/networkx/generators/internet_as_graphs.py +443 -0
  511. package/runtime/python/okstra_vendor/networkx/generators/intersection.py +125 -0
  512. package/runtime/python/okstra_vendor/networkx/generators/interval_graph.py +70 -0
  513. package/runtime/python/okstra_vendor/networkx/generators/joint_degree_seq.py +664 -0
  514. package/runtime/python/okstra_vendor/networkx/generators/lattice.py +405 -0
  515. package/runtime/python/okstra_vendor/networkx/generators/line.py +501 -0
  516. package/runtime/python/okstra_vendor/networkx/generators/mycielski.py +110 -0
  517. package/runtime/python/okstra_vendor/networkx/generators/nonisomorphic_trees.py +259 -0
  518. package/runtime/python/okstra_vendor/networkx/generators/random_clustered.py +117 -0
  519. package/runtime/python/okstra_vendor/networkx/generators/random_graphs.py +1416 -0
  520. package/runtime/python/okstra_vendor/networkx/generators/small.py +1070 -0
  521. package/runtime/python/okstra_vendor/networkx/generators/social.py +554 -0
  522. package/runtime/python/okstra_vendor/networkx/generators/spectral_graph_forge.py +120 -0
  523. package/runtime/python/okstra_vendor/networkx/generators/stochastic.py +54 -0
  524. package/runtime/python/okstra_vendor/networkx/generators/sudoku.py +131 -0
  525. package/runtime/python/okstra_vendor/networkx/generators/tests/__init__.py +0 -0
  526. package/runtime/python/okstra_vendor/networkx/generators/tests/test_atlas.py +75 -0
  527. package/runtime/python/okstra_vendor/networkx/generators/tests/test_classic.py +642 -0
  528. package/runtime/python/okstra_vendor/networkx/generators/tests/test_cographs.py +20 -0
  529. package/runtime/python/okstra_vendor/networkx/generators/tests/test_community.py +362 -0
  530. package/runtime/python/okstra_vendor/networkx/generators/tests/test_degree_seq.py +224 -0
  531. package/runtime/python/okstra_vendor/networkx/generators/tests/test_directed.py +189 -0
  532. package/runtime/python/okstra_vendor/networkx/generators/tests/test_duplication.py +103 -0
  533. package/runtime/python/okstra_vendor/networkx/generators/tests/test_ego.py +39 -0
  534. package/runtime/python/okstra_vendor/networkx/generators/tests/test_expanders.py +182 -0
  535. package/runtime/python/okstra_vendor/networkx/generators/tests/test_geometric.py +488 -0
  536. package/runtime/python/okstra_vendor/networkx/generators/tests/test_harary_graph.py +133 -0
  537. package/runtime/python/okstra_vendor/networkx/generators/tests/test_internet_as_graphs.py +221 -0
  538. package/runtime/python/okstra_vendor/networkx/generators/tests/test_intersection.py +28 -0
  539. package/runtime/python/okstra_vendor/networkx/generators/tests/test_interval_graph.py +144 -0
  540. package/runtime/python/okstra_vendor/networkx/generators/tests/test_joint_degree_seq.py +125 -0
  541. package/runtime/python/okstra_vendor/networkx/generators/tests/test_lattice.py +264 -0
  542. package/runtime/python/okstra_vendor/networkx/generators/tests/test_line.py +316 -0
  543. package/runtime/python/okstra_vendor/networkx/generators/tests/test_mycielski.py +30 -0
  544. package/runtime/python/okstra_vendor/networkx/generators/tests/test_nonisomorphic_trees.py +82 -0
  545. package/runtime/python/okstra_vendor/networkx/generators/tests/test_random_clustered.py +33 -0
  546. package/runtime/python/okstra_vendor/networkx/generators/tests/test_random_graphs.py +495 -0
  547. package/runtime/python/okstra_vendor/networkx/generators/tests/test_small.py +220 -0
  548. package/runtime/python/okstra_vendor/networkx/generators/tests/test_spectral_graph_forge.py +49 -0
  549. package/runtime/python/okstra_vendor/networkx/generators/tests/test_stochastic.py +72 -0
  550. package/runtime/python/okstra_vendor/networkx/generators/tests/test_sudoku.py +92 -0
  551. package/runtime/python/okstra_vendor/networkx/generators/tests/test_time_series.py +64 -0
  552. package/runtime/python/okstra_vendor/networkx/generators/tests/test_trees.py +195 -0
  553. package/runtime/python/okstra_vendor/networkx/generators/tests/test_triads.py +15 -0
  554. package/runtime/python/okstra_vendor/networkx/generators/time_series.py +74 -0
  555. package/runtime/python/okstra_vendor/networkx/generators/trees.py +1070 -0
  556. package/runtime/python/okstra_vendor/networkx/generators/triads.py +94 -0
  557. package/runtime/python/okstra_vendor/networkx/lazy_imports.py +188 -0
  558. package/runtime/python/okstra_vendor/networkx/linalg/__init__.py +13 -0
  559. package/runtime/python/okstra_vendor/networkx/linalg/algebraicconnectivity.py +650 -0
  560. package/runtime/python/okstra_vendor/networkx/linalg/attrmatrix.py +466 -0
  561. package/runtime/python/okstra_vendor/networkx/linalg/bethehessianmatrix.py +77 -0
  562. package/runtime/python/okstra_vendor/networkx/linalg/graphmatrix.py +168 -0
  563. package/runtime/python/okstra_vendor/networkx/linalg/laplacianmatrix.py +512 -0
  564. package/runtime/python/okstra_vendor/networkx/linalg/modularitymatrix.py +166 -0
  565. package/runtime/python/okstra_vendor/networkx/linalg/spectrum.py +186 -0
  566. package/runtime/python/okstra_vendor/networkx/linalg/tests/__init__.py +0 -0
  567. package/runtime/python/okstra_vendor/networkx/linalg/tests/test_algebraic_connectivity.py +400 -0
  568. package/runtime/python/okstra_vendor/networkx/linalg/tests/test_attrmatrix.py +108 -0
  569. package/runtime/python/okstra_vendor/networkx/linalg/tests/test_bethehessian.py +40 -0
  570. package/runtime/python/okstra_vendor/networkx/linalg/tests/test_graphmatrix.py +275 -0
  571. package/runtime/python/okstra_vendor/networkx/linalg/tests/test_laplacian.py +334 -0
  572. package/runtime/python/okstra_vendor/networkx/linalg/tests/test_modularity.py +86 -0
  573. package/runtime/python/okstra_vendor/networkx/linalg/tests/test_spectrum.py +70 -0
  574. package/runtime/python/okstra_vendor/networkx/readwrite/__init__.py +17 -0
  575. package/runtime/python/okstra_vendor/networkx/readwrite/adjlist.py +330 -0
  576. package/runtime/python/okstra_vendor/networkx/readwrite/edgelist.py +489 -0
  577. package/runtime/python/okstra_vendor/networkx/readwrite/gexf.py +1084 -0
  578. package/runtime/python/okstra_vendor/networkx/readwrite/gml.py +879 -0
  579. package/runtime/python/okstra_vendor/networkx/readwrite/graph6.py +427 -0
  580. package/runtime/python/okstra_vendor/networkx/readwrite/graphml.py +1053 -0
  581. package/runtime/python/okstra_vendor/networkx/readwrite/json_graph/__init__.py +19 -0
  582. package/runtime/python/okstra_vendor/networkx/readwrite/json_graph/adjacency.py +156 -0
  583. package/runtime/python/okstra_vendor/networkx/readwrite/json_graph/cytoscape.py +190 -0
  584. package/runtime/python/okstra_vendor/networkx/readwrite/json_graph/node_link.py +261 -0
  585. package/runtime/python/okstra_vendor/networkx/readwrite/json_graph/tests/__init__.py +0 -0
  586. package/runtime/python/okstra_vendor/networkx/readwrite/json_graph/tests/test_adjacency.py +78 -0
  587. package/runtime/python/okstra_vendor/networkx/readwrite/json_graph/tests/test_cytoscape.py +78 -0
  588. package/runtime/python/okstra_vendor/networkx/readwrite/json_graph/tests/test_node_link.py +109 -0
  589. package/runtime/python/okstra_vendor/networkx/readwrite/json_graph/tests/test_tree.py +48 -0
  590. package/runtime/python/okstra_vendor/networkx/readwrite/json_graph/tree.py +137 -0
  591. package/runtime/python/okstra_vendor/networkx/readwrite/leda.py +108 -0
  592. package/runtime/python/okstra_vendor/networkx/readwrite/multiline_adjlist.py +393 -0
  593. package/runtime/python/okstra_vendor/networkx/readwrite/p2g.py +113 -0
  594. package/runtime/python/okstra_vendor/networkx/readwrite/pajek.py +286 -0
  595. package/runtime/python/okstra_vendor/networkx/readwrite/sparse6.py +379 -0
  596. package/runtime/python/okstra_vendor/networkx/readwrite/tests/__init__.py +0 -0
  597. package/runtime/python/okstra_vendor/networkx/readwrite/tests/test_adjlist.py +354 -0
  598. package/runtime/python/okstra_vendor/networkx/readwrite/tests/test_edgelist.py +318 -0
  599. package/runtime/python/okstra_vendor/networkx/readwrite/tests/test_gexf.py +612 -0
  600. package/runtime/python/okstra_vendor/networkx/readwrite/tests/test_gml.py +744 -0
  601. package/runtime/python/okstra_vendor/networkx/readwrite/tests/test_graph6.py +181 -0
  602. package/runtime/python/okstra_vendor/networkx/readwrite/tests/test_graphml.py +1531 -0
  603. package/runtime/python/okstra_vendor/networkx/readwrite/tests/test_leda.py +30 -0
  604. package/runtime/python/okstra_vendor/networkx/readwrite/tests/test_p2g.py +63 -0
  605. package/runtime/python/okstra_vendor/networkx/readwrite/tests/test_pajek.py +128 -0
  606. package/runtime/python/okstra_vendor/networkx/readwrite/tests/test_sparse6.py +166 -0
  607. package/runtime/python/okstra_vendor/networkx/readwrite/tests/test_text.py +1742 -0
  608. package/runtime/python/okstra_vendor/networkx/readwrite/text.py +851 -0
  609. package/runtime/python/okstra_vendor/networkx/relabel.py +285 -0
  610. package/runtime/python/okstra_vendor/networkx/tests/__init__.py +0 -0
  611. package/runtime/python/okstra_vendor/networkx/tests/test_all_random_functions.py +248 -0
  612. package/runtime/python/okstra_vendor/networkx/tests/test_convert.py +321 -0
  613. package/runtime/python/okstra_vendor/networkx/tests/test_convert_numpy.py +531 -0
  614. package/runtime/python/okstra_vendor/networkx/tests/test_convert_pandas.py +349 -0
  615. package/runtime/python/okstra_vendor/networkx/tests/test_convert_scipy.py +281 -0
  616. package/runtime/python/okstra_vendor/networkx/tests/test_exceptions.py +40 -0
  617. package/runtime/python/okstra_vendor/networkx/tests/test_import.py +11 -0
  618. package/runtime/python/okstra_vendor/networkx/tests/test_lazy_imports.py +96 -0
  619. package/runtime/python/okstra_vendor/networkx/tests/test_relabel.py +349 -0
  620. package/runtime/python/okstra_vendor/networkx/tests/test_removed_functions_exception_messages.py +8 -0
  621. package/runtime/python/okstra_vendor/networkx/utils/__init__.py +8 -0
  622. package/runtime/python/okstra_vendor/networkx/utils/backends.py +2171 -0
  623. package/runtime/python/okstra_vendor/networkx/utils/configs.py +396 -0
  624. package/runtime/python/okstra_vendor/networkx/utils/decorators.py +1233 -0
  625. package/runtime/python/okstra_vendor/networkx/utils/heaps.py +338 -0
  626. package/runtime/python/okstra_vendor/networkx/utils/mapped_queue.py +297 -0
  627. package/runtime/python/okstra_vendor/networkx/utils/misc.py +703 -0
  628. package/runtime/python/okstra_vendor/networkx/utils/random_sequence.py +198 -0
  629. package/runtime/python/okstra_vendor/networkx/utils/rcm.py +159 -0
  630. package/runtime/python/okstra_vendor/networkx/utils/tests/__init__.py +0 -0
  631. package/runtime/python/okstra_vendor/networkx/utils/tests/test__init.py +11 -0
  632. package/runtime/python/okstra_vendor/networkx/utils/tests/test_backends.py +225 -0
  633. package/runtime/python/okstra_vendor/networkx/utils/tests/test_config.py +263 -0
  634. package/runtime/python/okstra_vendor/networkx/utils/tests/test_decorators.py +510 -0
  635. package/runtime/python/okstra_vendor/networkx/utils/tests/test_heaps.py +131 -0
  636. package/runtime/python/okstra_vendor/networkx/utils/tests/test_mapped_queue.py +268 -0
  637. package/runtime/python/okstra_vendor/networkx/utils/tests/test_misc.py +393 -0
  638. package/runtime/python/okstra_vendor/networkx/utils/tests/test_random_sequence.py +53 -0
  639. package/runtime/python/okstra_vendor/networkx/utils/tests/test_rcm.py +63 -0
  640. package/runtime/python/okstra_vendor/networkx/utils/tests/test_unionfind.py +55 -0
  641. package/runtime/python/okstra_vendor/networkx/utils/union_find.py +106 -0
  642. package/runtime/skills/okstra-graphify/SKILL.md +161 -0
  643. package/runtime/skills/okstra-inspect/SKILL.md +17 -9
  644. package/runtime/templates/reports/settings.template.json +4 -0
  645. package/src/cli-registry.mjs +7 -0
  646. package/src/commands/graphify.mjs +32 -0
  647. package/src/commands/lifecycle/doctor.mjs +9 -0
  648. package/src/lib/skill-catalog.mjs +1 -0
@@ -0,0 +1,1070 @@
1
+ """
2
+ Various small and named graphs, together with some compact generators.
3
+
4
+ """
5
+
6
+ __all__ = [
7
+ "LCF_graph",
8
+ "bull_graph",
9
+ "chvatal_graph",
10
+ "cubical_graph",
11
+ "desargues_graph",
12
+ "diamond_graph",
13
+ "dodecahedral_graph",
14
+ "frucht_graph",
15
+ "generalized_petersen_graph",
16
+ "heawood_graph",
17
+ "hoffman_singleton_graph",
18
+ "house_graph",
19
+ "house_x_graph",
20
+ "icosahedral_graph",
21
+ "krackhardt_kite_graph",
22
+ "moebius_kantor_graph",
23
+ "octahedral_graph",
24
+ "pappus_graph",
25
+ "petersen_graph",
26
+ "sedgewick_maze_graph",
27
+ "tetrahedral_graph",
28
+ "truncated_cube_graph",
29
+ "truncated_tetrahedron_graph",
30
+ "tutte_graph",
31
+ ]
32
+
33
+ from functools import wraps
34
+
35
+ import networkx as nx
36
+ from networkx.exception import NetworkXError
37
+ from networkx.generators.classic import (
38
+ complete_graph,
39
+ cycle_graph,
40
+ empty_graph,
41
+ path_graph,
42
+ )
43
+
44
+
45
+ def _raise_on_directed(func):
46
+ """
47
+ A decorator which inspects the `create_using` argument and raises a
48
+ NetworkX exception when `create_using` is a DiGraph (class or instance) for
49
+ graph generators that do not support directed outputs.
50
+
51
+ `create_using` may be a keyword argument or the first positional argument.
52
+ """
53
+
54
+ @wraps(func)
55
+ def wrapper(*args, **kwargs):
56
+ create_using = args[0] if args else kwargs.get("create_using")
57
+ if create_using is not None:
58
+ G = nx.empty_graph(create_using=create_using)
59
+ if G.is_directed():
60
+ raise NetworkXError("Directed Graph not supported in create_using")
61
+ return func(*args, **kwargs)
62
+
63
+ return wrapper
64
+
65
+
66
+ @nx._dispatchable(graphs=None, returns_graph=True)
67
+ def LCF_graph(n, shift_list, repeats, create_using=None):
68
+ """
69
+ Return the cubic graph specified in LCF notation.
70
+
71
+ LCF (Lederberg-Coxeter-Fruchte) notation[1]_ is a compressed
72
+ notation used in the generation of various cubic Hamiltonian
73
+ graphs of high symmetry. See, for example, `dodecahedral_graph`,
74
+ `desargues_graph`, `heawood_graph` and `pappus_graph`.
75
+
76
+ Nodes are drawn from ``range(n)``. Each node ``n_i`` is connected with
77
+ node ``n_i + shift % n`` where ``shift`` is given by cycling through
78
+ the input `shift_list` `repeat` s times.
79
+
80
+ Parameters
81
+ ----------
82
+ n : int
83
+ The starting graph is the `n`-cycle with nodes ``0, ..., n-1``.
84
+ The null graph is returned if `n` < 1.
85
+
86
+ shift_list : list
87
+ A list of integer shifts mod `n`, ``[s1, s2, .., sk]``
88
+
89
+ repeats : int
90
+ Integer specifying the number of times that shifts in `shift_list`
91
+ are successively applied to each current node in the n-cycle
92
+ to generate an edge between ``n_current`` and ``n_current + shift mod n``.
93
+
94
+ Returns
95
+ -------
96
+ G : Graph
97
+ A graph instance created from the specified LCF notation.
98
+
99
+ Examples
100
+ --------
101
+ The utility graph $K_{3,3}$
102
+
103
+ >>> G = nx.LCF_graph(6, [3, -3], 3)
104
+ >>> G.edges()
105
+ EdgeView([(0, 1), (0, 5), (0, 3), (1, 2), (1, 4), (2, 3), (2, 5), (3, 4), (4, 5)])
106
+
107
+ The Heawood graph:
108
+
109
+ >>> G = nx.LCF_graph(14, [5, -5], 7)
110
+ >>> nx.is_isomorphic(G, nx.heawood_graph())
111
+ True
112
+
113
+ References
114
+ ----------
115
+ .. [1] https://en.wikipedia.org/wiki/LCF_notation
116
+
117
+ """
118
+ if n <= 0:
119
+ return empty_graph(0, create_using)
120
+
121
+ # start with the n-cycle
122
+ G = cycle_graph(n, create_using)
123
+ if G.is_directed():
124
+ raise NetworkXError("Directed Graph not supported")
125
+ G.name = "LCF_graph"
126
+ nodes = sorted(G)
127
+
128
+ n_extra_edges = repeats * len(shift_list)
129
+ # edges are added n_extra_edges times
130
+ # (not all of these need be new)
131
+ if n_extra_edges < 1:
132
+ return G
133
+
134
+ for i in range(n_extra_edges):
135
+ shift = shift_list[i % len(shift_list)] # cycle through shift_list
136
+ v1 = nodes[i % n] # cycle repeatedly through nodes
137
+ v2 = nodes[(i + shift) % n]
138
+ G.add_edge(v1, v2)
139
+ return G
140
+
141
+
142
+ # -------------------------------------------------------------------------------
143
+ # Various small and named graphs
144
+ # -------------------------------------------------------------------------------
145
+
146
+
147
+ @_raise_on_directed
148
+ @nx._dispatchable(graphs=None, returns_graph=True)
149
+ def bull_graph(create_using=None):
150
+ """
151
+ Returns the Bull Graph
152
+
153
+ The Bull Graph has 5 nodes and 5 edges. It is a planar undirected
154
+ graph in the form of a triangle with two disjoint pendant edges [1]_
155
+ The name comes from the triangle and pendant edges representing
156
+ respectively the body and legs of a bull.
157
+
158
+ Parameters
159
+ ----------
160
+ create_using : NetworkX graph constructor, optional (default=nx.Graph)
161
+ Graph type to create. If graph instance, then cleared before populated.
162
+
163
+ Returns
164
+ -------
165
+ G : networkx Graph
166
+ A bull graph with 5 nodes
167
+
168
+ References
169
+ ----------
170
+ .. [1] https://en.wikipedia.org/wiki/Bull_graph.
171
+
172
+ """
173
+ G = nx.from_dict_of_lists(
174
+ {0: [1, 2], 1: [0, 2, 3], 2: [0, 1, 4], 3: [1], 4: [2]},
175
+ create_using=create_using,
176
+ )
177
+ G.name = "Bull Graph"
178
+ return G
179
+
180
+
181
+ @_raise_on_directed
182
+ @nx._dispatchable(graphs=None, returns_graph=True)
183
+ def chvatal_graph(create_using=None):
184
+ """
185
+ Returns the Chvátal Graph
186
+
187
+ The Chvátal Graph is an undirected graph with 12 nodes and 24 edges [1]_.
188
+ It has 370 distinct (directed) Hamiltonian cycles, giving a unique generalized
189
+ LCF notation of order 4, two of order 6 , and 43 of order 1 [2]_.
190
+
191
+ Parameters
192
+ ----------
193
+ create_using : NetworkX graph constructor, optional (default=nx.Graph)
194
+ Graph type to create. If graph instance, then cleared before populated.
195
+
196
+ Returns
197
+ -------
198
+ G : networkx Graph
199
+ The Chvátal graph with 12 nodes and 24 edges
200
+
201
+ References
202
+ ----------
203
+ .. [1] https://en.wikipedia.org/wiki/Chv%C3%A1tal_graph
204
+ .. [2] https://mathworld.wolfram.com/ChvatalGraph.html
205
+
206
+ """
207
+ G = nx.from_dict_of_lists(
208
+ {
209
+ 0: [1, 4, 6, 9],
210
+ 1: [2, 5, 7],
211
+ 2: [3, 6, 8],
212
+ 3: [4, 7, 9],
213
+ 4: [5, 8],
214
+ 5: [10, 11],
215
+ 6: [10, 11],
216
+ 7: [8, 11],
217
+ 8: [10],
218
+ 9: [10, 11],
219
+ },
220
+ create_using=create_using,
221
+ )
222
+ G.name = "Chvatal Graph"
223
+ return G
224
+
225
+
226
+ @_raise_on_directed
227
+ @nx._dispatchable(graphs=None, returns_graph=True)
228
+ def cubical_graph(create_using=None):
229
+ """
230
+ Returns the 3-regular Platonic Cubical Graph
231
+
232
+ The skeleton of the cube (the nodes and edges) form a graph, with 8
233
+ nodes, and 12 edges. It is a special case of the hypercube graph.
234
+ It is one of 5 Platonic graphs, each a skeleton of its
235
+ Platonic solid [1]_.
236
+ Such graphs arise in parallel processing in computers.
237
+
238
+ Parameters
239
+ ----------
240
+ create_using : NetworkX graph constructor, optional (default=nx.Graph)
241
+ Graph type to create. If graph instance, then cleared before populated.
242
+
243
+ Returns
244
+ -------
245
+ G : networkx Graph
246
+ A cubical graph with 8 nodes and 12 edges
247
+
248
+ See Also
249
+ --------
250
+ tetrahedral_graph, octahedral_graph, dodecahedral_graph, icosahedral_graph
251
+
252
+ References
253
+ ----------
254
+ .. [1] https://en.wikipedia.org/wiki/Cube#Cubical_graph
255
+
256
+ """
257
+ G = nx.from_dict_of_lists(
258
+ {
259
+ 0: [1, 3, 4],
260
+ 1: [0, 2, 7],
261
+ 2: [1, 3, 6],
262
+ 3: [0, 2, 5],
263
+ 4: [0, 5, 7],
264
+ 5: [3, 4, 6],
265
+ 6: [2, 5, 7],
266
+ 7: [1, 4, 6],
267
+ },
268
+ create_using=create_using,
269
+ )
270
+ G.name = "Platonic Cubical Graph"
271
+ return G
272
+
273
+
274
+ @nx._dispatchable(graphs=None, returns_graph=True)
275
+ def desargues_graph(create_using=None):
276
+ """
277
+ Returns the Desargues Graph
278
+
279
+ The Desargues Graph is a non-planar, distance-transitive cubic graph
280
+ with 20 nodes and 30 edges [1]_. It is isomorphic to the Generalized
281
+ Petersen Graph GP(10, 3). It is a symmetric graph. It can be represented
282
+ in LCF notation as [5,-5,9,-9]^5 [2]_.
283
+
284
+ Parameters
285
+ ----------
286
+ create_using : NetworkX graph constructor, optional (default=nx.Graph)
287
+ Graph type to create. If graph instance, then cleared before populated.
288
+
289
+ Returns
290
+ -------
291
+ G : networkx Graph
292
+ Desargues Graph with 20 nodes and 30 edges
293
+
294
+ References
295
+ ----------
296
+ .. [1] https://en.wikipedia.org/wiki/Desargues_graph
297
+ .. [2] https://mathworld.wolfram.com/DesarguesGraph.html
298
+ """
299
+ G = LCF_graph(20, [5, -5, 9, -9], 5, create_using)
300
+ G.name = "Desargues Graph"
301
+ return G
302
+
303
+
304
+ @_raise_on_directed
305
+ @nx._dispatchable(graphs=None, returns_graph=True)
306
+ def diamond_graph(create_using=None):
307
+ """
308
+ Returns the Diamond graph
309
+
310
+ The Diamond Graph is planar undirected graph with 4 nodes and 5 edges.
311
+ It is also sometimes known as the double triangle graph or kite graph [1]_.
312
+
313
+ Parameters
314
+ ----------
315
+ create_using : NetworkX graph constructor, optional (default=nx.Graph)
316
+ Graph type to create. If graph instance, then cleared before populated.
317
+
318
+ Returns
319
+ -------
320
+ G : networkx Graph
321
+ Diamond Graph with 4 nodes and 5 edges
322
+
323
+ References
324
+ ----------
325
+ .. [1] https://mathworld.wolfram.com/DiamondGraph.html
326
+ """
327
+ G = nx.from_dict_of_lists(
328
+ {0: [1, 2], 1: [0, 2, 3], 2: [0, 1, 3], 3: [1, 2]}, create_using=create_using
329
+ )
330
+ G.name = "Diamond Graph"
331
+ return G
332
+
333
+
334
+ @nx._dispatchable(graphs=None, returns_graph=True)
335
+ def dodecahedral_graph(create_using=None):
336
+ """
337
+ Returns the Platonic Dodecahedral graph.
338
+
339
+ The dodecahedral graph has 20 nodes and 30 edges. The skeleton of the
340
+ dodecahedron forms a graph. It is one of 5 Platonic graphs [1]_.
341
+ It can be described in LCF notation as:
342
+ ``[10, 7, 4, -4, -7, 10, -4, 7, -7, 4]^2`` [2]_.
343
+
344
+ Parameters
345
+ ----------
346
+ create_using : NetworkX graph constructor, optional (default=nx.Graph)
347
+ Graph type to create. If graph instance, then cleared before populated.
348
+
349
+ Returns
350
+ -------
351
+ G : networkx Graph
352
+ Dodecahedral Graph with 20 nodes and 30 edges
353
+
354
+ See Also
355
+ --------
356
+ tetrahedral_graph, cubical_graph, octahedral_graph, icosahedral_graph
357
+
358
+ References
359
+ ----------
360
+ .. [1] https://en.wikipedia.org/wiki/Regular_dodecahedron#Dodecahedral_graph
361
+ .. [2] https://mathworld.wolfram.com/DodecahedralGraph.html
362
+
363
+ """
364
+ G = LCF_graph(20, [10, 7, 4, -4, -7, 10, -4, 7, -7, 4], 2, create_using)
365
+ G.name = "Dodecahedral Graph"
366
+ return G
367
+
368
+
369
+ @nx._dispatchable(graphs=None, returns_graph=True)
370
+ def frucht_graph(create_using=None):
371
+ """
372
+ Returns the Frucht Graph.
373
+
374
+ The Frucht Graph is the smallest cubical graph whose
375
+ automorphism group consists only of the identity element [1]_.
376
+ It has 12 nodes and 18 edges and no nontrivial symmetries.
377
+ It is planar and Hamiltonian [2]_.
378
+
379
+ Parameters
380
+ ----------
381
+ create_using : NetworkX graph constructor, optional (default=nx.Graph)
382
+ Graph type to create. If graph instance, then cleared before populated.
383
+
384
+ Returns
385
+ -------
386
+ G : networkx Graph
387
+ Frucht Graph with 12 nodes and 18 edges
388
+
389
+ References
390
+ ----------
391
+ .. [1] https://en.wikipedia.org/wiki/Frucht_graph
392
+ .. [2] https://mathworld.wolfram.com/FruchtGraph.html
393
+
394
+ """
395
+ G = cycle_graph(7, create_using)
396
+ G.add_edges_from(
397
+ [
398
+ [0, 7],
399
+ [1, 7],
400
+ [2, 8],
401
+ [3, 9],
402
+ [4, 9],
403
+ [5, 10],
404
+ [6, 10],
405
+ [7, 11],
406
+ [8, 11],
407
+ [8, 9],
408
+ [10, 11],
409
+ ]
410
+ )
411
+
412
+ G.name = "Frucht Graph"
413
+ return G
414
+
415
+
416
+ @nx._dispatchable(graphs=None, returns_graph=True)
417
+ def heawood_graph(create_using=None):
418
+ """
419
+ Returns the Heawood Graph, a (3,6) cage.
420
+
421
+ The Heawood Graph is an undirected graph with 14 nodes and 21 edges,
422
+ named after Percy John Heawood [1]_.
423
+ It is cubic symmetric, nonplanar, Hamiltonian, and can be represented
424
+ in LCF notation as ``[5,-5]^7`` [2]_.
425
+ It is the unique (3,6)-cage: the regular cubic graph of girth 6 with
426
+ minimal number of vertices [3]_.
427
+
428
+ Parameters
429
+ ----------
430
+ create_using : NetworkX graph constructor, optional (default=nx.Graph)
431
+ Graph type to create. If graph instance, then cleared before populated.
432
+
433
+ Returns
434
+ -------
435
+ G : networkx Graph
436
+ Heawood Graph with 14 nodes and 21 edges
437
+
438
+ References
439
+ ----------
440
+ .. [1] https://en.wikipedia.org/wiki/Heawood_graph
441
+ .. [2] https://mathworld.wolfram.com/HeawoodGraph.html
442
+ .. [3] https://www.win.tue.nl/~aeb/graphs/Heawood.html
443
+
444
+ """
445
+ G = LCF_graph(14, [5, -5], 7, create_using)
446
+ G.name = "Heawood Graph"
447
+ return G
448
+
449
+
450
+ @nx._dispatchable(graphs=None, returns_graph=True)
451
+ def hoffman_singleton_graph():
452
+ """
453
+ Returns the Hoffman-Singleton Graph.
454
+
455
+ The Hoffman–Singleton graph is a symmetrical undirected graph
456
+ with 50 nodes and 175 edges.
457
+ All indices lie in ``Z % 5``: that is, the integers mod 5 [1]_.
458
+ It is the only regular graph of vertex degree 7, diameter 2, and girth 5.
459
+ It is the unique (7,5)-cage graph and Moore graph, and contains many
460
+ copies of the Petersen Graph [2]_.
461
+
462
+ Returns
463
+ -------
464
+ G : networkx Graph
465
+ Hoffman–Singleton Graph with 50 nodes and 175 edges
466
+
467
+ Notes
468
+ -----
469
+ Constructed from pentagon and pentagram as follows: Take five pentagons $P_h$
470
+ and five pentagrams $Q_i$ . Join vertex $j$ of $P_h$ to vertex $h·i+j$ of $Q_i$ [3]_.
471
+
472
+ References
473
+ ----------
474
+ .. [1] https://blogs.ams.org/visualinsight/2016/02/01/hoffman-singleton-graph/
475
+ .. [2] https://mathworld.wolfram.com/Hoffman-SingletonGraph.html
476
+ .. [3] https://en.wikipedia.org/wiki/Hoffman%E2%80%93Singleton_graph
477
+
478
+ """
479
+ G = nx.Graph()
480
+ for i in range(5):
481
+ for j in range(5):
482
+ G.add_edge(("pentagon", i, j), ("pentagon", i, (j - 1) % 5))
483
+ G.add_edge(("pentagon", i, j), ("pentagon", i, (j + 1) % 5))
484
+ G.add_edge(("pentagram", i, j), ("pentagram", i, (j - 2) % 5))
485
+ G.add_edge(("pentagram", i, j), ("pentagram", i, (j + 2) % 5))
486
+ for k in range(5):
487
+ G.add_edge(("pentagon", i, j), ("pentagram", k, (i * k + j) % 5))
488
+ G = nx.convert_node_labels_to_integers(G)
489
+ G.name = "Hoffman-Singleton Graph"
490
+ return G
491
+
492
+
493
+ @_raise_on_directed
494
+ @nx._dispatchable(graphs=None, returns_graph=True)
495
+ def house_graph(create_using=None):
496
+ """
497
+ Returns the House graph (square with triangle on top)
498
+
499
+ The house graph is a simple undirected graph with
500
+ 5 nodes and 6 edges [1]_.
501
+
502
+ Parameters
503
+ ----------
504
+ create_using : NetworkX graph constructor, optional (default=nx.Graph)
505
+ Graph type to create. If graph instance, then cleared before populated.
506
+
507
+ Returns
508
+ -------
509
+ G : networkx Graph
510
+ House graph in the form of a square with a triangle on top
511
+
512
+ References
513
+ ----------
514
+ .. [1] https://mathworld.wolfram.com/HouseGraph.html
515
+ """
516
+ G = nx.from_dict_of_lists(
517
+ {0: [1, 2], 1: [0, 3], 2: [0, 3, 4], 3: [1, 2, 4], 4: [2, 3]},
518
+ create_using=create_using,
519
+ )
520
+ G.name = "House Graph"
521
+ return G
522
+
523
+
524
+ @_raise_on_directed
525
+ @nx._dispatchable(graphs=None, returns_graph=True)
526
+ def house_x_graph(create_using=None):
527
+ """
528
+ Returns the House graph with a cross inside the house square.
529
+
530
+ The House X-graph is the House graph plus the two edges connecting diagonally
531
+ opposite vertices of the square base. It is also one of the two graphs
532
+ obtained by removing two edges from the pentatope graph [1]_.
533
+
534
+ Parameters
535
+ ----------
536
+ create_using : NetworkX graph constructor, optional (default=nx.Graph)
537
+ Graph type to create. If graph instance, then cleared before populated.
538
+
539
+ Returns
540
+ -------
541
+ G : networkx Graph
542
+ House graph with diagonal vertices connected
543
+
544
+ References
545
+ ----------
546
+ .. [1] https://mathworld.wolfram.com/HouseGraph.html
547
+ """
548
+ G = house_graph(create_using)
549
+ G.add_edges_from([(0, 3), (1, 2)])
550
+ G.name = "House-with-X-inside Graph"
551
+ return G
552
+
553
+
554
+ @_raise_on_directed
555
+ @nx._dispatchable(graphs=None, returns_graph=True)
556
+ def icosahedral_graph(create_using=None):
557
+ """
558
+ Returns the Platonic Icosahedral graph.
559
+
560
+ The icosahedral graph has 12 nodes and 30 edges. It is a Platonic graph
561
+ whose nodes have the connectivity of the icosahedron. It is undirected,
562
+ regular and Hamiltonian [1]_.
563
+
564
+ Parameters
565
+ ----------
566
+ create_using : NetworkX graph constructor, optional (default=nx.Graph)
567
+ Graph type to create. If graph instance, then cleared before populated.
568
+
569
+ Returns
570
+ -------
571
+ G : networkx Graph
572
+ Icosahedral graph with 12 nodes and 30 edges.
573
+
574
+ See Also
575
+ --------
576
+ tetrahedral_graph, cubical_graph, octahedral_graph, dodecahedral_graph
577
+
578
+ References
579
+ ----------
580
+ .. [1] https://mathworld.wolfram.com/IcosahedralGraph.html
581
+ """
582
+ G = nx.from_dict_of_lists(
583
+ {
584
+ 0: [1, 5, 7, 8, 11],
585
+ 1: [2, 5, 6, 8],
586
+ 2: [3, 6, 8, 9],
587
+ 3: [4, 6, 9, 10],
588
+ 4: [5, 6, 10, 11],
589
+ 5: [6, 11],
590
+ 7: [8, 9, 10, 11],
591
+ 8: [9],
592
+ 9: [10],
593
+ 10: [11],
594
+ },
595
+ create_using=create_using,
596
+ )
597
+ G.name = "Platonic Icosahedral Graph"
598
+ return G
599
+
600
+
601
+ @_raise_on_directed
602
+ @nx._dispatchable(graphs=None, returns_graph=True)
603
+ def krackhardt_kite_graph(create_using=None):
604
+ """
605
+ Returns the Krackhardt Kite Social Network.
606
+
607
+ A 10 actor social network introduced by David Krackhardt
608
+ to illustrate different centrality measures [1]_.
609
+
610
+ Parameters
611
+ ----------
612
+ create_using : NetworkX graph constructor, optional (default=nx.Graph)
613
+ Graph type to create. If graph instance, then cleared before populated.
614
+
615
+ Returns
616
+ -------
617
+ G : networkx Graph
618
+ Krackhardt Kite graph with 10 nodes and 18 edges
619
+
620
+ Notes
621
+ -----
622
+ The traditional labeling is:
623
+ Andre=1, Beverley=2, Carol=3, Diane=4,
624
+ Ed=5, Fernando=6, Garth=7, Heather=8, Ike=9, Jane=10.
625
+
626
+ References
627
+ ----------
628
+ .. [1] Krackhardt, David. "Assessing the Political Landscape: Structure,
629
+ Cognition, and Power in Organizations". Administrative Science Quarterly.
630
+ 35 (2): 342–369. doi:10.2307/2393394. JSTOR 2393394. June 1990.
631
+
632
+ """
633
+ G = nx.from_dict_of_lists(
634
+ {
635
+ 0: [1, 2, 3, 5],
636
+ 1: [0, 3, 4, 6],
637
+ 2: [0, 3, 5],
638
+ 3: [0, 1, 2, 4, 5, 6],
639
+ 4: [1, 3, 6],
640
+ 5: [0, 2, 3, 6, 7],
641
+ 6: [1, 3, 4, 5, 7],
642
+ 7: [5, 6, 8],
643
+ 8: [7, 9],
644
+ 9: [8],
645
+ },
646
+ create_using=create_using,
647
+ )
648
+ G.name = "Krackhardt Kite Social Network"
649
+ return G
650
+
651
+
652
+ @nx._dispatchable(graphs=None, returns_graph=True)
653
+ def moebius_kantor_graph(create_using=None):
654
+ """
655
+ Returns the Moebius-Kantor graph.
656
+
657
+ The Möbius-Kantor graph is the cubic symmetric graph on 16 nodes.
658
+ Its LCF notation is [5,-5]^8, and it is isomorphic to the generalized
659
+ Petersen Graph GP(8, 3) [1]_.
660
+
661
+ Parameters
662
+ ----------
663
+ create_using : NetworkX graph constructor, optional (default=nx.Graph)
664
+ Graph type to create. If graph instance, then cleared before populated.
665
+
666
+ Returns
667
+ -------
668
+ G : networkx Graph
669
+ Moebius-Kantor graph
670
+
671
+ References
672
+ ----------
673
+ .. [1] https://en.wikipedia.org/wiki/M%C3%B6bius%E2%80%93Kantor_graph
674
+
675
+ """
676
+ G = LCF_graph(16, [5, -5], 8, create_using)
677
+ G.name = "Moebius-Kantor Graph"
678
+ return G
679
+
680
+
681
+ @_raise_on_directed
682
+ @nx._dispatchable(graphs=None, returns_graph=True)
683
+ def octahedral_graph(create_using=None):
684
+ """
685
+ Returns the Platonic Octahedral graph.
686
+
687
+ The octahedral graph is the 6-node 12-edge Platonic graph having the
688
+ connectivity of the octahedron [1]_. If 6 couples go to a party,
689
+ and each person shakes hands with every person except his or her partner,
690
+ then this graph describes the set of handshakes that take place;
691
+ for this reason it is also called the cocktail party graph [2]_.
692
+
693
+ Parameters
694
+ ----------
695
+ create_using : NetworkX graph constructor, optional (default=nx.Graph)
696
+ Graph type to create. If graph instance, then cleared before populated.
697
+
698
+ Returns
699
+ -------
700
+ G : networkx Graph
701
+ Octahedral graph
702
+
703
+ See Also
704
+ --------
705
+ tetrahedral_graph, cubical_graph, dodecahedral_graph, icosahedral_graph
706
+
707
+ References
708
+ ----------
709
+ .. [1] https://mathworld.wolfram.com/OctahedralGraph.html
710
+ .. [2] https://en.wikipedia.org/wiki/Tur%C3%A1n_graph#Special_cases
711
+
712
+ """
713
+ G = nx.from_dict_of_lists(
714
+ {0: [1, 2, 3, 4], 1: [2, 3, 5], 2: [4, 5], 3: [4, 5], 4: [5]},
715
+ create_using=create_using,
716
+ )
717
+ G.name = "Platonic Octahedral Graph"
718
+ return G
719
+
720
+
721
+ @nx._dispatchable(graphs=None, returns_graph=True)
722
+ def pappus_graph():
723
+ """
724
+ Returns the Pappus graph.
725
+
726
+ The Pappus graph is a cubic symmetric distance-regular graph with 18 nodes
727
+ and 27 edges. It is Hamiltonian and can be represented in LCF notation as
728
+ [5,7,-7,7,-7,-5]^3 [1]_.
729
+
730
+ Returns
731
+ -------
732
+ G : networkx Graph
733
+ Pappus graph
734
+
735
+ References
736
+ ----------
737
+ .. [1] https://en.wikipedia.org/wiki/Pappus_graph
738
+ """
739
+ G = LCF_graph(18, [5, 7, -7, 7, -7, -5], 3)
740
+ G.name = "Pappus Graph"
741
+ return G
742
+
743
+
744
+ @_raise_on_directed
745
+ @nx._dispatchable(graphs=None, returns_graph=True)
746
+ def petersen_graph(create_using=None):
747
+ """
748
+ Returns the Petersen Graph.
749
+
750
+ The Peterson Graph is a cubic, undirected graph with 10 nodes and 15 edges [1]_.
751
+ Julius Petersen constructed the graph as the smallest counterexample
752
+ against the claim that a connected bridgeless cubic graph
753
+ has an edge colouring with three colours [2]_.
754
+
755
+ Parameters
756
+ ----------
757
+ create_using : NetworkX graph constructor, optional (default=nx.Graph)
758
+ Graph type to create. If graph instance, then cleared before populated.
759
+
760
+ Returns
761
+ -------
762
+ G : networkx Graph
763
+ Petersen Graph
764
+
765
+ References
766
+ ----------
767
+ .. [1] https://en.wikipedia.org/wiki/Petersen_graph
768
+ .. [2] https://www.win.tue.nl/~aeb/drg/graphs/Petersen.html
769
+ """
770
+ G = nx.from_dict_of_lists(
771
+ {
772
+ 0: [1, 4, 5],
773
+ 1: [0, 2, 6],
774
+ 2: [1, 3, 7],
775
+ 3: [2, 4, 8],
776
+ 4: [3, 0, 9],
777
+ 5: [0, 7, 8],
778
+ 6: [1, 8, 9],
779
+ 7: [2, 5, 9],
780
+ 8: [3, 5, 6],
781
+ 9: [4, 6, 7],
782
+ },
783
+ create_using=create_using,
784
+ )
785
+ G.name = "Petersen Graph"
786
+ return G
787
+
788
+
789
+ @nx._dispatchable(graphs=None, returns_graph=True)
790
+ def generalized_petersen_graph(n, k, *, create_using=None):
791
+ """
792
+ Returns the Generalized Petersen Graph GP(n,k).
793
+
794
+ The Generalized Peterson Graph consists of an outer cycle of n nodes
795
+ connected to an inner circulant graph of n nodes, where nodes in the
796
+ inner circulant are connected to their kth nearest neighbor [1]_ [2]_.
797
+ A Generalized Petersen Graph is cubic with 2n nodes and 3n edges.
798
+
799
+ Some well known graphs are examples of Generalized Petersen Graphs such
800
+ as the Petersen Graph GP(5, 2), the Desargues graph GP(10, 3), the
801
+ Moebius-Kantor graph GP(8, 3), and the dodecahedron graph GP(10, 2).
802
+
803
+ Parameters
804
+ ----------
805
+ n : int
806
+ Number of nodes in the outer cycle and inner circulant. ``n >= 3`` is required.
807
+
808
+ k : int
809
+ Neighbor to connect in the inner circulant. ``1 <= k <= n/2``.
810
+ Note that some people require ``k < n/2`` but we and others allow equality.
811
+ Also, ``k < n/2`` is equivalent to ``k <= floor((n-1)/2)``
812
+
813
+ create_using : NetworkX graph constructor, optional (default=nx.Graph)
814
+ Graph type to create. If graph instance, then cleared before populated.
815
+
816
+ Returns
817
+ -------
818
+ G : networkx Graph
819
+ Generalized Petersen Graph n k
820
+
821
+ References
822
+ ----------
823
+ .. [1] https://mathworld.wolfram.com/GeneralizedPetersenGraph.html
824
+ .. [2] https://en.wikipedia.org/wiki/Generalized_Petersen_graph
825
+ """
826
+ if n <= 2:
827
+ raise NetworkXError(f"n >= 3 required. Got {n=}")
828
+ if k < 1 or k > n / 2:
829
+ raise NetworkXError(f" Got {n=} {k=}. Need 1 <= k <= n/2")
830
+
831
+ G = nx.cycle_graph(range(n), create_using=create_using) # u-nodes
832
+ if G.is_directed():
833
+ raise NetworkXError("Directed Graph not supported in create_using")
834
+ for i in range(n):
835
+ G.add_edge(i, n + i) # add v-nodes and u to v edges
836
+ G.add_edge(n + i, n + (i + k) % n) # edge from v_i to v_(i+k)%n
837
+
838
+ G.name = f"Generalized Petersen Graph GP({n}, {k})"
839
+ return G
840
+
841
+
842
+ @nx._dispatchable(graphs=None, returns_graph=True)
843
+ def sedgewick_maze_graph(create_using=None):
844
+ """
845
+ Return a small maze with a cycle.
846
+
847
+ This is the maze used in Sedgewick, 3rd Edition, Part 5, Graph
848
+ Algorithms, Chapter 18, e.g. Figure 18.2 and following [1]_.
849
+ Nodes are numbered 0,..,7
850
+
851
+ Parameters
852
+ ----------
853
+ create_using : NetworkX graph constructor, optional (default=nx.Graph)
854
+ Graph type to create. If graph instance, then cleared before populated.
855
+
856
+ Returns
857
+ -------
858
+ G : networkx Graph
859
+ Small maze with a cycle
860
+
861
+ References
862
+ ----------
863
+ .. [1] Figure 18.2, Chapter 18, Graph Algorithms (3rd Ed), Sedgewick
864
+ """
865
+ G = empty_graph(0, create_using)
866
+ G.add_nodes_from(range(8))
867
+ G.add_edges_from([[0, 2], [0, 7], [0, 5]])
868
+ G.add_edges_from([[1, 7], [2, 6]])
869
+ G.add_edges_from([[3, 4], [3, 5]])
870
+ G.add_edges_from([[4, 5], [4, 7], [4, 6]])
871
+ G.name = "Sedgewick Maze"
872
+ return G
873
+
874
+
875
+ @nx._dispatchable(graphs=None, returns_graph=True)
876
+ def tetrahedral_graph(create_using=None):
877
+ """
878
+ Returns the 3-regular Platonic Tetrahedral graph.
879
+
880
+ Tetrahedral graph has 4 nodes and 6 edges. It is a
881
+ special case of the complete graph, K4, and wheel graph, W4.
882
+ It is one of the 5 platonic graphs [1]_.
883
+
884
+ Parameters
885
+ ----------
886
+ create_using : NetworkX graph constructor, optional (default=nx.Graph)
887
+ Graph type to create. If graph instance, then cleared before populated.
888
+
889
+ Returns
890
+ -------
891
+ G : networkx Graph
892
+ Tetrahedral Graph
893
+
894
+ See Also
895
+ --------
896
+ cubical_graph, octahedral_graph, dodecahedral_graph, icosahedral_graph
897
+
898
+ References
899
+ ----------
900
+ .. [1] https://en.wikipedia.org/wiki/Tetrahedron#Tetrahedral_graph
901
+
902
+ """
903
+ G = complete_graph(4, create_using)
904
+ G.name = "Platonic Tetrahedral Graph"
905
+ return G
906
+
907
+
908
+ @_raise_on_directed
909
+ @nx._dispatchable(graphs=None, returns_graph=True)
910
+ def truncated_cube_graph(create_using=None):
911
+ """
912
+ Returns the skeleton of the truncated cube.
913
+
914
+ The truncated cube is an Archimedean solid with 14 regular
915
+ faces (6 octagonal and 8 triangular), 36 edges and 24 nodes [1]_.
916
+ The truncated cube is created by truncating (cutting off) the tips
917
+ of the cube one third of the way into each edge [2]_.
918
+
919
+ Parameters
920
+ ----------
921
+ create_using : NetworkX graph constructor, optional (default=nx.Graph)
922
+ Graph type to create. If graph instance, then cleared before populated.
923
+
924
+ Returns
925
+ -------
926
+ G : networkx Graph
927
+ Skeleton of the truncated cube
928
+
929
+ References
930
+ ----------
931
+ .. [1] https://en.wikipedia.org/wiki/Truncated_cube
932
+ .. [2] https://www.coolmath.com/reference/polyhedra-truncated-cube
933
+
934
+ """
935
+ G = nx.from_dict_of_lists(
936
+ {
937
+ 0: [1, 2, 4],
938
+ 1: [11, 14],
939
+ 2: [3, 4],
940
+ 3: [6, 8],
941
+ 4: [5],
942
+ 5: [16, 18],
943
+ 6: [7, 8],
944
+ 7: [10, 12],
945
+ 8: [9],
946
+ 9: [17, 20],
947
+ 10: [11, 12],
948
+ 11: [14],
949
+ 12: [13],
950
+ 13: [21, 22],
951
+ 14: [15],
952
+ 15: [19, 23],
953
+ 16: [17, 18],
954
+ 17: [20],
955
+ 18: [19],
956
+ 19: [23],
957
+ 20: [21],
958
+ 21: [22],
959
+ 22: [23],
960
+ },
961
+ create_using=create_using,
962
+ )
963
+ G.name = "Truncated Cube Graph"
964
+ return G
965
+
966
+
967
+ @nx._dispatchable(graphs=None, returns_graph=True)
968
+ def truncated_tetrahedron_graph(create_using=None):
969
+ """
970
+ Returns the skeleton of the truncated Platonic tetrahedron.
971
+
972
+ The truncated tetrahedron is an Archimedean solid with 4 regular hexagonal faces,
973
+ 4 equilateral triangle faces, 12 nodes and 18 edges. It can be constructed by truncating
974
+ all 4 vertices of a regular tetrahedron at one third of the original edge length [1]_.
975
+
976
+ Parameters
977
+ ----------
978
+ create_using : NetworkX graph constructor, optional (default=nx.Graph)
979
+ Graph type to create. If graph instance, then cleared before populated.
980
+
981
+ Returns
982
+ -------
983
+ G : networkx Graph
984
+ Skeleton of the truncated tetrahedron
985
+
986
+ References
987
+ ----------
988
+ .. [1] https://en.wikipedia.org/wiki/Truncated_tetrahedron
989
+
990
+ """
991
+ G = path_graph(12, create_using)
992
+ G.add_edges_from([(0, 2), (0, 9), (1, 6), (3, 11), (4, 11), (5, 7), (8, 10)])
993
+ G.name = "Truncated Tetrahedron Graph"
994
+ return G
995
+
996
+
997
+ @_raise_on_directed
998
+ @nx._dispatchable(graphs=None, returns_graph=True)
999
+ def tutte_graph(create_using=None):
1000
+ """
1001
+ Returns the Tutte graph.
1002
+
1003
+ The Tutte graph is a cubic polyhedral, non-Hamiltonian graph. It has
1004
+ 46 nodes and 69 edges.
1005
+ It is a counterexample to Tait's conjecture that every 3-regular polyhedron
1006
+ has a Hamiltonian cycle.
1007
+ It can be realized geometrically from a tetrahedron by multiply truncating
1008
+ three of its vertices [1]_.
1009
+
1010
+ Parameters
1011
+ ----------
1012
+ create_using : NetworkX graph constructor, optional (default=nx.Graph)
1013
+ Graph type to create. If graph instance, then cleared before populated.
1014
+
1015
+ Returns
1016
+ -------
1017
+ G : networkx Graph
1018
+ Tutte graph
1019
+
1020
+ References
1021
+ ----------
1022
+ .. [1] https://en.wikipedia.org/wiki/Tutte_graph
1023
+ """
1024
+ G = nx.from_dict_of_lists(
1025
+ {
1026
+ 0: [1, 2, 3],
1027
+ 1: [4, 26],
1028
+ 2: [10, 11],
1029
+ 3: [18, 19],
1030
+ 4: [5, 33],
1031
+ 5: [6, 29],
1032
+ 6: [7, 27],
1033
+ 7: [8, 14],
1034
+ 8: [9, 38],
1035
+ 9: [10, 37],
1036
+ 10: [39],
1037
+ 11: [12, 39],
1038
+ 12: [13, 35],
1039
+ 13: [14, 15],
1040
+ 14: [34],
1041
+ 15: [16, 22],
1042
+ 16: [17, 44],
1043
+ 17: [18, 43],
1044
+ 18: [45],
1045
+ 19: [20, 45],
1046
+ 20: [21, 41],
1047
+ 21: [22, 23],
1048
+ 22: [40],
1049
+ 23: [24, 27],
1050
+ 24: [25, 32],
1051
+ 25: [26, 31],
1052
+ 26: [33],
1053
+ 27: [28],
1054
+ 28: [29, 32],
1055
+ 29: [30],
1056
+ 30: [31, 33],
1057
+ 31: [32],
1058
+ 34: [35, 38],
1059
+ 35: [36],
1060
+ 36: [37, 39],
1061
+ 37: [38],
1062
+ 40: [41, 44],
1063
+ 41: [42],
1064
+ 42: [43, 45],
1065
+ 43: [44],
1066
+ },
1067
+ create_using=create_using,
1068
+ )
1069
+ G.name = "Tutte's Graph"
1070
+ return G