snappy 3.1.1__cp311-cp311-win_amd64.whl → 3.2__cp311-cp311-win_amd64.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (476) hide show
  1. snappy/CyOpenGL.cp311-win_amd64.pyd +0 -0
  2. snappy/SnapPy.cp311-win_amd64.pyd +0 -0
  3. snappy/SnapPyHP.cp311-win_amd64.pyd +0 -0
  4. snappy/__init__.py +299 -402
  5. snappy/app.py +70 -20
  6. snappy/browser.py +18 -17
  7. snappy/canonical.py +249 -0
  8. snappy/{verify/cusp_shapes.py → cusps/__init__.py} +8 -18
  9. snappy/cusps/cusp_area_matrix.py +101 -0
  10. snappy/{verify/cusp_areas.py → cusps/cusp_areas_from_matrix.py} +23 -39
  11. snappy/cusps/maximal_cusp_area_matrix.py +136 -0
  12. snappy/cusps/test.py +21 -0
  13. snappy/cusps/trig_cusp_area_matrix.py +63 -0
  14. snappy/database.py +10 -9
  15. snappy/decorated_isosig.py +337 -114
  16. snappy/dev/extended_ptolemy/complexVolumesClosed.py +40 -7
  17. snappy/dev/extended_ptolemy/extended.py +3 -3
  18. snappy/dev/extended_ptolemy/phc_wrapper.py +10 -10
  19. snappy/dev/vericlosed/oneVertexTruncatedComplex.py +1 -1
  20. snappy/doc/_images/m004_paper_plane_on_systole.jpg +0 -0
  21. snappy/doc/_images/m125_paper_plane.jpg +0 -0
  22. snappy/doc/_images/o9_00000_systole_paper_plane.jpg +0 -0
  23. snappy/doc/_images/o9_00000_systole_paper_plane_closer.jpg +0 -0
  24. snappy/doc/_sources/additional_classes.rst.txt +40 -40
  25. snappy/doc/_sources/bugs.rst.txt +14 -14
  26. snappy/doc/_sources/censuses.rst.txt +51 -51
  27. snappy/doc/_sources/credits.rst.txt +75 -75
  28. snappy/doc/_sources/development.rst.txt +259 -239
  29. snappy/doc/_sources/index.rst.txt +182 -115
  30. snappy/doc/_sources/installing.rst.txt +247 -264
  31. snappy/doc/_sources/manifold.rst.txt +6 -6
  32. snappy/doc/_sources/manifoldhp.rst.txt +46 -46
  33. snappy/doc/_sources/news.rst.txt +355 -283
  34. snappy/doc/_sources/other.rst.txt +25 -25
  35. snappy/doc/_sources/platonic_census.rst.txt +20 -20
  36. snappy/doc/_sources/plink.rst.txt +102 -102
  37. snappy/doc/_sources/ptolemy.rst.txt +66 -66
  38. snappy/doc/_sources/ptolemy_classes.rst.txt +42 -42
  39. snappy/doc/_sources/ptolemy_examples1.rst.txt +298 -297
  40. snappy/doc/_sources/ptolemy_examples2.rst.txt +363 -363
  41. snappy/doc/_sources/ptolemy_examples3.rst.txt +301 -301
  42. snappy/doc/_sources/ptolemy_examples4.rst.txt +61 -61
  43. snappy/doc/_sources/ptolemy_prelim.rst.txt +105 -105
  44. snappy/doc/_sources/screenshots.rst.txt +21 -21
  45. snappy/doc/_sources/snap.rst.txt +87 -87
  46. snappy/doc/_sources/snappy.rst.txt +28 -28
  47. snappy/doc/_sources/spherogram.rst.txt +103 -103
  48. snappy/doc/_sources/todo.rst.txt +47 -47
  49. snappy/doc/_sources/triangulation.rst.txt +11 -11
  50. snappy/doc/_sources/tutorial.rst.txt +49 -49
  51. snappy/doc/_sources/verify.rst.txt +210 -150
  52. snappy/doc/_sources/verify_internals.rst.txt +79 -90
  53. snappy/doc/_static/basic.css +924 -902
  54. snappy/doc/_static/css/badge_only.css +1 -1
  55. snappy/doc/_static/css/theme.css +1 -1
  56. snappy/doc/_static/doctools.js +1 -1
  57. snappy/doc/_static/documentation_options.js +12 -13
  58. snappy/doc/_static/fonts/Lato/lato-bold.eot +0 -0
  59. snappy/doc/_static/fonts/Lato/lato-bold.ttf +0 -0
  60. snappy/doc/_static/fonts/Lato/lato-bold.woff +0 -0
  61. snappy/doc/_static/fonts/Lato/lato-bold.woff2 +0 -0
  62. snappy/doc/_static/fonts/Lato/lato-bolditalic.eot +0 -0
  63. snappy/doc/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
  64. snappy/doc/_static/fonts/Lato/lato-bolditalic.woff +0 -0
  65. snappy/doc/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
  66. snappy/doc/_static/fonts/Lato/lato-italic.eot +0 -0
  67. snappy/doc/_static/fonts/Lato/lato-italic.ttf +0 -0
  68. snappy/doc/_static/fonts/Lato/lato-italic.woff +0 -0
  69. snappy/doc/_static/fonts/Lato/lato-italic.woff2 +0 -0
  70. snappy/doc/_static/fonts/Lato/lato-regular.eot +0 -0
  71. snappy/doc/_static/fonts/Lato/lato-regular.ttf +0 -0
  72. snappy/doc/_static/fonts/Lato/lato-regular.woff +0 -0
  73. snappy/doc/_static/fonts/Lato/lato-regular.woff2 +0 -0
  74. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
  75. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
  76. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
  77. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
  78. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
  79. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
  80. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
  81. snappy/doc/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
  82. snappy/doc/_static/js/versions.js +228 -0
  83. snappy/doc/_static/language_data.js +199 -199
  84. snappy/doc/_static/pygments.css +74 -73
  85. snappy/doc/_static/searchtools.js +125 -71
  86. snappy/doc/_static/snappy_furo.css +33 -33
  87. snappy/doc/_static/snappy_sphinx_rtd_theme.css +42 -42
  88. snappy/doc/_static/sphinx_highlight.js +13 -3
  89. snappy/doc/additional_classes.html +1499 -1330
  90. snappy/doc/bugs.html +131 -134
  91. snappy/doc/censuses.html +426 -445
  92. snappy/doc/credits.html +180 -183
  93. snappy/doc/development.html +383 -363
  94. snappy/doc/genindex.html +1330 -1409
  95. snappy/doc/index.html +261 -206
  96. snappy/doc/installing.html +345 -363
  97. snappy/doc/manifold.html +3451 -2839
  98. snappy/doc/manifoldhp.html +179 -182
  99. snappy/doc/news.html +387 -329
  100. snappy/doc/objects.inv +0 -0
  101. snappy/doc/other.html +160 -162
  102. snappy/doc/platonic_census.html +374 -377
  103. snappy/doc/plink.html +209 -212
  104. snappy/doc/ptolemy.html +253 -255
  105. snappy/doc/ptolemy_classes.html +1143 -1146
  106. snappy/doc/ptolemy_examples1.html +408 -410
  107. snappy/doc/ptolemy_examples2.html +470 -473
  108. snappy/doc/ptolemy_examples3.html +413 -416
  109. snappy/doc/ptolemy_examples4.html +194 -197
  110. snappy/doc/ptolemy_prelim.html +247 -250
  111. snappy/doc/py-modindex.html +164 -167
  112. snappy/doc/screenshots.html +140 -142
  113. snappy/doc/search.html +134 -137
  114. snappy/doc/searchindex.js +1 -1
  115. snappy/doc/snap.html +201 -204
  116. snappy/doc/snappy.html +180 -182
  117. snappy/doc/spherogram.html +1210 -1213
  118. snappy/doc/todo.html +165 -168
  119. snappy/doc/triangulation.html +1583 -1474
  120. snappy/doc/tutorial.html +158 -161
  121. snappy/doc/verify.html +329 -275
  122. snappy/doc/verify_internals.html +1234 -1691
  123. snappy/drilling/__init__.py +153 -235
  124. snappy/drilling/barycentric.py +103 -0
  125. snappy/drilling/constants.py +0 -2
  126. snappy/drilling/crush.py +56 -130
  127. snappy/drilling/cusps.py +12 -6
  128. snappy/drilling/debug.py +2 -1
  129. snappy/drilling/exceptions.py +7 -40
  130. snappy/drilling/moves.py +302 -243
  131. snappy/drilling/perturb.py +63 -37
  132. snappy/drilling/shorten.py +36 -0
  133. snappy/drilling/subdivide.py +0 -5
  134. snappy/drilling/test.py +23 -0
  135. snappy/drilling/test_cases.py +126 -0
  136. snappy/drilling/tracing.py +9 -37
  137. snappy/exceptions.py +18 -5
  138. snappy/exterior_to_link/barycentric_geometry.py +2 -4
  139. snappy/exterior_to_link/main.py +8 -7
  140. snappy/exterior_to_link/mcomplex_with_link.py +2 -2
  141. snappy/exterior_to_link/rational_linear_algebra.py +1 -1
  142. snappy/exterior_to_link/rational_linear_algebra_wrapped.py +1 -1
  143. snappy/exterior_to_link/test.py +21 -33
  144. snappy/geometric_structure/__init__.py +212 -0
  145. snappy/geometric_structure/cusp_neighborhood/__init__.py +3 -0
  146. snappy/geometric_structure/cusp_neighborhood/complex_cusp_cross_section.py +697 -0
  147. snappy/geometric_structure/cusp_neighborhood/cusp_cross_section_base.py +484 -0
  148. snappy/geometric_structure/cusp_neighborhood/exceptions.py +42 -0
  149. snappy/geometric_structure/cusp_neighborhood/real_cusp_cross_section.py +298 -0
  150. snappy/geometric_structure/cusp_neighborhood/tiles_for_cusp_neighborhood.py +159 -0
  151. snappy/geometric_structure/cusp_neighborhood/vertices.py +32 -0
  152. snappy/geometric_structure/geodesic/__init__.py +0 -0
  153. snappy/geometric_structure/geodesic/add_core_curves.py +152 -0
  154. snappy/geometric_structure/geodesic/avoid_core_curves.py +369 -0
  155. snappy/geometric_structure/geodesic/canonical_keys.py +52 -0
  156. snappy/geometric_structure/geodesic/check_away_from_core_curve.py +60 -0
  157. snappy/geometric_structure/geodesic/constants.py +6 -0
  158. snappy/geometric_structure/geodesic/exceptions.py +22 -0
  159. snappy/{drilling → geometric_structure/geodesic}/fixed_points.py +34 -9
  160. snappy/{drilling/geodesic_info.py → geometric_structure/geodesic/geodesic_start_point_info.py} +139 -180
  161. snappy/geometric_structure/geodesic/graph_trace_helper.py +67 -0
  162. snappy/geometric_structure/geodesic/line.py +30 -0
  163. snappy/geometric_structure/geodesic/multiplicity.py +127 -0
  164. snappy/geometric_structure/geodesic/tiles_for_geodesic.py +101 -0
  165. snappy/geometric_structure/test.py +22 -0
  166. snappy/gui.py +23 -13
  167. snappy/horoviewer.py +7 -7
  168. snappy/hyperboloid/__init__.py +96 -31
  169. snappy/hyperboloid/distances.py +245 -0
  170. snappy/hyperboloid/horoball.py +19 -0
  171. snappy/hyperboloid/line.py +35 -0
  172. snappy/hyperboloid/point.py +9 -0
  173. snappy/hyperboloid/triangle.py +29 -0
  174. snappy/isometry_signature.py +382 -0
  175. snappy/len_spec/__init__.py +596 -0
  176. snappy/len_spec/geodesic_info.py +110 -0
  177. snappy/len_spec/geodesic_key_info_dict.py +117 -0
  178. snappy/len_spec/geodesic_piece.py +143 -0
  179. snappy/len_spec/geometric_structure.py +182 -0
  180. snappy/len_spec/geometry.py +80 -0
  181. snappy/len_spec/length_spectrum_geodesic_info.py +170 -0
  182. snappy/len_spec/spine.py +206 -0
  183. snappy/len_spec/test.py +24 -0
  184. snappy/len_spec/test_cases.py +69 -0
  185. snappy/len_spec/tile.py +275 -0
  186. snappy/len_spec/word.py +86 -0
  187. snappy/math_basics.py +39 -13
  188. snappy/matrix.py +52 -9
  189. snappy/number.py +12 -6
  190. snappy/numeric_output_checker.py +2 -3
  191. snappy/pari.py +8 -4
  192. snappy/phone_home.py +2 -1
  193. snappy/polyviewer.py +8 -8
  194. snappy/ptolemy/__init__.py +1 -1
  195. snappy/ptolemy/component.py +2 -2
  196. snappy/ptolemy/coordinates.py +25 -25
  197. snappy/ptolemy/findLoops.py +9 -9
  198. snappy/ptolemy/manifoldMethods.py +27 -29
  199. snappy/ptolemy/polynomial.py +50 -57
  200. snappy/ptolemy/processFileBase.py +60 -0
  201. snappy/ptolemy/ptolemyVariety.py +109 -41
  202. snappy/ptolemy/reginaWrapper.py +4 -4
  203. snappy/ptolemy/rur.py +1 -1
  204. snappy/ptolemy/solutionsToPrimeIdealGroebnerBasis.py +9 -9
  205. snappy/ptolemy/test.py +99 -54
  206. snappy/ptolemy/utilities.py +1 -1
  207. snappy/raytracing/__init__.py +64 -0
  208. snappy/raytracing/additional_horospheres.py +64 -0
  209. snappy/raytracing/additional_len_spec_choices.py +63 -0
  210. snappy/raytracing/cohomology_fractal.py +0 -3
  211. snappy/raytracing/eyeball.py +123 -0
  212. snappy/raytracing/finite_raytracing_data.py +17 -17
  213. snappy/raytracing/finite_viewer.py +15 -15
  214. snappy/raytracing/geodesic_tube_info.py +93 -63
  215. snappy/raytracing/geodesics.py +94 -64
  216. snappy/raytracing/geodesics_window.py +56 -34
  217. snappy/raytracing/gui_utilities.py +21 -6
  218. snappy/raytracing/hyperboloid_navigation.py +29 -4
  219. snappy/raytracing/hyperboloid_utilities.py +73 -73
  220. snappy/raytracing/ideal_raytracing_data.py +121 -91
  221. snappy/raytracing/inside_viewer.py +199 -66
  222. snappy/raytracing/pack.py +22 -0
  223. snappy/raytracing/raytracing_data.py +37 -25
  224. snappy/raytracing/raytracing_view.py +70 -65
  225. snappy/raytracing/shaders/Eye.png +0 -0
  226. snappy/raytracing/shaders/NonGeometric.png +0 -0
  227. snappy/raytracing/shaders/__init__.py +39 -3
  228. snappy/raytracing/shaders/fragment.glsl +451 -133
  229. snappy/raytracing/test.py +29 -0
  230. snappy/raytracing/tooltip.py +146 -0
  231. snappy/raytracing/upper_halfspace_utilities.py +42 -9
  232. snappy/sage_helper.py +67 -134
  233. snappy/settings.py +90 -77
  234. snappy/shell.py +2 -0
  235. snappy/snap/character_varieties.py +2 -2
  236. snappy/snap/find_field.py +4 -3
  237. snappy/snap/fundamental_polyhedron.py +2 -2
  238. snappy/snap/kernel_structures.py +5 -1
  239. snappy/snap/nsagetools.py +9 -8
  240. snappy/snap/peripheral/dual_cellulation.py +4 -3
  241. snappy/snap/peripheral/peripheral.py +2 -2
  242. snappy/snap/peripheral/surface.py +5 -5
  243. snappy/snap/peripheral/test.py +1 -1
  244. snappy/snap/polished_reps.py +8 -8
  245. snappy/snap/slice_obs_HKL.py +16 -14
  246. snappy/snap/t3mlite/arrow.py +3 -3
  247. snappy/snap/t3mlite/edge.py +3 -3
  248. snappy/snap/t3mlite/homology.py +2 -2
  249. snappy/snap/t3mlite/mcomplex.py +3 -3
  250. snappy/snap/t3mlite/simplex.py +12 -0
  251. snappy/snap/t3mlite/spun.py +18 -17
  252. snappy/snap/t3mlite/test_vs_regina.py +4 -4
  253. snappy/snap/test.py +37 -53
  254. snappy/snap/utilities.py +4 -5
  255. snappy/test.py +121 -138
  256. snappy/test_cases.py +263 -0
  257. snappy/testing.py +131 -0
  258. snappy/tiling/__init__.py +2 -0
  259. snappy/tiling/canonical_key_dict.py +59 -0
  260. snappy/tiling/dict_based_set.py +79 -0
  261. snappy/tiling/floor.py +49 -0
  262. snappy/tiling/hyperboloid_dict.py +54 -0
  263. snappy/tiling/iter_utils.py +78 -0
  264. snappy/tiling/lifted_tetrahedron.py +22 -0
  265. snappy/tiling/lifted_tetrahedron_set.py +54 -0
  266. snappy/tiling/real_hash_dict.py +164 -0
  267. snappy/tiling/test.py +23 -0
  268. snappy/tiling/tile.py +215 -0
  269. snappy/tiling/triangle.py +33 -0
  270. snappy/tkterminal.py +113 -84
  271. snappy/twister/main.py +1 -7
  272. snappy/twister/twister_core.cp311-win_amd64.pyd +0 -0
  273. snappy/upper_halfspace/__init__.py +78 -17
  274. snappy/verify/__init__.py +3 -7
  275. snappy/verify/{verifyCanonical.py → canonical.py} +78 -70
  276. snappy/verify/complex_volume/adjust_torsion.py +1 -2
  277. snappy/verify/complex_volume/closed.py +13 -13
  278. snappy/verify/complex_volume/cusped.py +6 -6
  279. snappy/verify/complex_volume/extended_bloch.py +5 -8
  280. snappy/verify/{cuspTranslations.py → cusp_translations.py} +1 -1
  281. snappy/verify/edge_equations.py +80 -0
  282. snappy/verify/exceptions.py +0 -55
  283. snappy/verify/{verifyHyperbolicity.py → hyperbolicity.py} +3 -3
  284. snappy/verify/interval_newton_shapes_engine.py +7 -5
  285. snappy/verify/interval_tree.py +5 -5
  286. snappy/verify/krawczyk_shapes_engine.py +17 -18
  287. snappy/verify/maximal_cusp_area_matrix/__init__.py +7 -74
  288. snappy/verify/maximal_cusp_area_matrix/cusp_tiling_engine.py +3 -4
  289. snappy/verify/maximal_cusp_area_matrix/cusp_translate_engine.py +1 -1
  290. snappy/verify/{realAlgebra.py → real_algebra.py} +1 -1
  291. snappy/verify/shapes.py +5 -3
  292. snappy/verify/short_slopes.py +39 -41
  293. snappy/verify/{squareExtensions.py → square_extensions.py} +14 -11
  294. snappy/verify/test.py +57 -60
  295. snappy/verify/upper_halfspace/extended_matrix.py +1 -1
  296. snappy/verify/upper_halfspace/finite_point.py +3 -4
  297. snappy/verify/upper_halfspace/ideal_point.py +9 -9
  298. snappy/verify/volume.py +2 -2
  299. snappy/version.py +2 -2
  300. {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/METADATA +26 -11
  301. snappy-3.2.dist-info/RECORD +503 -0
  302. {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/WHEEL +1 -1
  303. {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/top_level.txt +6 -1
  304. snappy/__pycache__/__init__.cpython-311.pyc +0 -0
  305. snappy/__pycache__/browser.cpython-311.pyc +0 -0
  306. snappy/__pycache__/cache.cpython-311.pyc +0 -0
  307. snappy/__pycache__/database.cpython-311.pyc +0 -0
  308. snappy/__pycache__/db_utilities.cpython-311.pyc +0 -0
  309. snappy/__pycache__/decorated_isosig.cpython-311.pyc +0 -0
  310. snappy/__pycache__/exceptions.cpython-311.pyc +0 -0
  311. snappy/__pycache__/export_stl.cpython-311.pyc +0 -0
  312. snappy/__pycache__/filedialog.cpython-311.pyc +0 -0
  313. snappy/__pycache__/gui.cpython-311.pyc +0 -0
  314. snappy/__pycache__/horoviewer.cpython-311.pyc +0 -0
  315. snappy/__pycache__/math_basics.cpython-311.pyc +0 -0
  316. snappy/__pycache__/matrix.cpython-311.pyc +0 -0
  317. snappy/__pycache__/number.cpython-311.pyc +0 -0
  318. snappy/__pycache__/numeric_output_checker.cpython-311.pyc +0 -0
  319. snappy/__pycache__/pari.cpython-311.pyc +0 -0
  320. snappy/__pycache__/polyviewer.cpython-311.pyc +0 -0
  321. snappy/__pycache__/sage_helper.cpython-311.pyc +0 -0
  322. snappy/__pycache__/version.cpython-311.pyc +0 -0
  323. snappy/doc/_sources/verify_canon.rst.txt +0 -90
  324. snappy/doc/_static/jquery-3.6.0.js +0 -10881
  325. snappy/doc/_static/js/html5shiv-printshiv.min.js +0 -4
  326. snappy/doc/_static/js/html5shiv.min.js +0 -4
  327. snappy/doc/_static/underscore-1.13.1.js +0 -2042
  328. snappy/doc/_static/underscore.js +0 -6
  329. snappy/doc/verify_canon.html +0 -304
  330. snappy/drilling/__pycache__/__init__.cpython-311.pyc +0 -0
  331. snappy/drilling/__pycache__/constants.cpython-311.pyc +0 -0
  332. snappy/drilling/__pycache__/crush.cpython-311.pyc +0 -0
  333. snappy/drilling/__pycache__/cusps.cpython-311.pyc +0 -0
  334. snappy/drilling/__pycache__/debug.cpython-311.pyc +0 -0
  335. snappy/drilling/__pycache__/epsilons.cpython-311.pyc +0 -0
  336. snappy/drilling/__pycache__/exceptions.cpython-311.pyc +0 -0
  337. snappy/drilling/__pycache__/fixed_points.cpython-311.pyc +0 -0
  338. snappy/drilling/__pycache__/geodesic_info.cpython-311.pyc +0 -0
  339. snappy/drilling/__pycache__/geodesic_tube.cpython-311.pyc +0 -0
  340. snappy/drilling/__pycache__/geometric_structure.cpython-311.pyc +0 -0
  341. snappy/drilling/__pycache__/line.cpython-311.pyc +0 -0
  342. snappy/drilling/__pycache__/moves.cpython-311.pyc +0 -0
  343. snappy/drilling/__pycache__/peripheral_curves.cpython-311.pyc +0 -0
  344. snappy/drilling/__pycache__/perturb.cpython-311.pyc +0 -0
  345. snappy/drilling/__pycache__/quotient_space.cpython-311.pyc +0 -0
  346. snappy/drilling/__pycache__/spatial_dict.cpython-311.pyc +0 -0
  347. snappy/drilling/__pycache__/subdivide.cpython-311.pyc +0 -0
  348. snappy/drilling/__pycache__/tracing.cpython-311.pyc +0 -0
  349. snappy/drilling/geodesic_tube.py +0 -441
  350. snappy/drilling/geometric_structure.py +0 -366
  351. snappy/drilling/line.py +0 -122
  352. snappy/drilling/quotient_space.py +0 -94
  353. snappy/drilling/spatial_dict.py +0 -128
  354. snappy/exterior_to_link/__pycache__/__init__.cpython-311.pyc +0 -0
  355. snappy/exterior_to_link/__pycache__/barycentric_geometry.cpython-311.pyc +0 -0
  356. snappy/exterior_to_link/__pycache__/exceptions.cpython-311.pyc +0 -0
  357. snappy/exterior_to_link/__pycache__/hyp_utils.cpython-311.pyc +0 -0
  358. snappy/exterior_to_link/__pycache__/link_projection.cpython-311.pyc +0 -0
  359. snappy/exterior_to_link/__pycache__/main.cpython-311.pyc +0 -0
  360. snappy/exterior_to_link/__pycache__/mcomplex_with_expansion.cpython-311.pyc +0 -0
  361. snappy/exterior_to_link/__pycache__/mcomplex_with_link.cpython-311.pyc +0 -0
  362. snappy/exterior_to_link/__pycache__/mcomplex_with_memory.cpython-311.pyc +0 -0
  363. snappy/exterior_to_link/__pycache__/pl_utils.cpython-311.pyc +0 -0
  364. snappy/exterior_to_link/__pycache__/put_in_S3.cpython-311.pyc +0 -0
  365. snappy/exterior_to_link/__pycache__/rational_linear_algebra.cpython-311.pyc +0 -0
  366. snappy/exterior_to_link/__pycache__/simplify_to_base_tri.cpython-311.pyc +0 -0
  367. snappy/exterior_to_link/__pycache__/stored_moves.cpython-311.pyc +0 -0
  368. snappy/hyperboloid/__pycache__/__init__.cpython-311.pyc +0 -0
  369. snappy/manifolds/__pycache__/__init__.cpython-311.pyc +0 -0
  370. snappy/ptolemy/__pycache__/__init__.cpython-311.pyc +0 -0
  371. snappy/ptolemy/__pycache__/component.cpython-311.pyc +0 -0
  372. snappy/ptolemy/__pycache__/coordinates.cpython-311.pyc +0 -0
  373. snappy/ptolemy/__pycache__/fieldExtensions.cpython-311.pyc +0 -0
  374. snappy/ptolemy/__pycache__/findLoops.cpython-311.pyc +0 -0
  375. snappy/ptolemy/__pycache__/homology.cpython-311.pyc +0 -0
  376. snappy/ptolemy/__pycache__/manifoldMethods.cpython-311.pyc +0 -0
  377. snappy/ptolemy/__pycache__/matrix.cpython-311.pyc +0 -0
  378. snappy/ptolemy/__pycache__/numericalSolutionsToGroebnerBasis.cpython-311.pyc +0 -0
  379. snappy/ptolemy/__pycache__/polynomial.cpython-311.pyc +0 -0
  380. snappy/ptolemy/__pycache__/processComponents.cpython-311.pyc +0 -0
  381. snappy/ptolemy/__pycache__/processFileBase.cpython-311.pyc +0 -0
  382. snappy/ptolemy/__pycache__/processFileDispatch.cpython-311.pyc +0 -0
  383. snappy/ptolemy/__pycache__/processMagmaFile.cpython-311.pyc +0 -0
  384. snappy/ptolemy/__pycache__/processRurFile.cpython-311.pyc +0 -0
  385. snappy/ptolemy/__pycache__/ptolemyGeneralizedObstructionClass.cpython-311.pyc +0 -0
  386. snappy/ptolemy/__pycache__/ptolemyObstructionClass.cpython-311.pyc +0 -0
  387. snappy/ptolemy/__pycache__/ptolemyVariety.cpython-311.pyc +0 -0
  388. snappy/ptolemy/__pycache__/ptolemyVarietyPrimeIdealGroebnerBasis.cpython-311.pyc +0 -0
  389. snappy/ptolemy/__pycache__/rur.cpython-311.pyc +0 -0
  390. snappy/ptolemy/__pycache__/solutionsToPrimeIdealGroebnerBasis.cpython-311.pyc +0 -0
  391. snappy/ptolemy/__pycache__/utilities.cpython-311.pyc +0 -0
  392. snappy/snap/__pycache__/__init__.cpython-311.pyc +0 -0
  393. snappy/snap/__pycache__/character_varieties.cpython-311.pyc +0 -0
  394. snappy/snap/__pycache__/fundamental_polyhedron.cpython-311.pyc +0 -0
  395. snappy/snap/__pycache__/interval_reps.cpython-311.pyc +0 -0
  396. snappy/snap/__pycache__/kernel_structures.cpython-311.pyc +0 -0
  397. snappy/snap/__pycache__/mcomplex_base.cpython-311.pyc +0 -0
  398. snappy/snap/__pycache__/nsagetools.cpython-311.pyc +0 -0
  399. snappy/snap/__pycache__/polished_reps.cpython-311.pyc +0 -0
  400. snappy/snap/__pycache__/shapes.cpython-311.pyc +0 -0
  401. snappy/snap/__pycache__/slice_obs_HKL.cpython-311.pyc +0 -0
  402. snappy/snap/__pycache__/utilities.cpython-311.pyc +0 -0
  403. snappy/snap/peripheral/__pycache__/__init__.cpython-311.pyc +0 -0
  404. snappy/snap/peripheral/__pycache__/dual_cellulation.cpython-311.pyc +0 -0
  405. snappy/snap/peripheral/__pycache__/link.cpython-311.pyc +0 -0
  406. snappy/snap/peripheral/__pycache__/peripheral.cpython-311.pyc +0 -0
  407. snappy/snap/peripheral/__pycache__/surface.cpython-311.pyc +0 -0
  408. snappy/snap/t3mlite/__pycache__/__init__.cpython-311.pyc +0 -0
  409. snappy/snap/t3mlite/__pycache__/arrow.cpython-311.pyc +0 -0
  410. snappy/snap/t3mlite/__pycache__/corner.cpython-311.pyc +0 -0
  411. snappy/snap/t3mlite/__pycache__/edge.cpython-311.pyc +0 -0
  412. snappy/snap/t3mlite/__pycache__/face.cpython-311.pyc +0 -0
  413. snappy/snap/t3mlite/__pycache__/files.cpython-311.pyc +0 -0
  414. snappy/snap/t3mlite/__pycache__/homology.cpython-311.pyc +0 -0
  415. snappy/snap/t3mlite/__pycache__/linalg.cpython-311.pyc +0 -0
  416. snappy/snap/t3mlite/__pycache__/mcomplex.cpython-311.pyc +0 -0
  417. snappy/snap/t3mlite/__pycache__/perm4.cpython-311.pyc +0 -0
  418. snappy/snap/t3mlite/__pycache__/simplex.cpython-311.pyc +0 -0
  419. snappy/snap/t3mlite/__pycache__/spun.cpython-311.pyc +0 -0
  420. snappy/snap/t3mlite/__pycache__/surface.cpython-311.pyc +0 -0
  421. snappy/snap/t3mlite/__pycache__/tetrahedron.cpython-311.pyc +0 -0
  422. snappy/snap/t3mlite/__pycache__/vertex.cpython-311.pyc +0 -0
  423. snappy/togl/__init__.py +0 -3
  424. snappy/togl/darwin-tk8.6/Togl2.1/LICENSE +0 -28
  425. snappy/togl/darwin-tk8.6/Togl2.1/libTogl2.1.dylib +0 -0
  426. snappy/togl/darwin-tk8.6/Togl2.1/pkgIndex.tcl +0 -5
  427. snappy/togl/darwin-tk8.7/Togl2.1/LICENSE +0 -28
  428. snappy/togl/darwin-tk8.7/Togl2.1/libTogl2.1.dylib +0 -0
  429. snappy/togl/darwin-tk8.7/Togl2.1/pkgIndex.tcl +0 -5
  430. snappy/togl/linux2-x86_64-tk8.6/Togl2.1/LICENSE +0 -28
  431. snappy/togl/linux2-x86_64-tk8.6/Togl2.1/libTogl2.1.so +0 -0
  432. snappy/togl/linux2-x86_64-tk8.6/Togl2.1/pkgIndex.tcl +0 -5
  433. snappy/togl/win32VC-tk8.6/Togl2.1/LICENSE +0 -28
  434. snappy/togl/win32VC-tk8.6/Togl2.1/Togl21.dll +0 -0
  435. snappy/togl/win32VC-tk8.6/Togl2.1/Togl21.lib +0 -0
  436. snappy/togl/win32VC-tk8.6/Togl2.1/pkgIndex.tcl +0 -6
  437. snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/LICENSE +0 -28
  438. snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/Togl21.dll +0 -0
  439. snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/Togl21.lib +0 -0
  440. snappy/togl/win32VC-x86_64-tk8.6/Togl2.1/pkgIndex.tcl +0 -6
  441. snappy/twister/__pycache__/__init__.cpython-311.pyc +0 -0
  442. snappy/twister/__pycache__/main.cpython-311.pyc +0 -0
  443. snappy/upper_halfspace/__pycache__/__init__.cpython-311.pyc +0 -0
  444. snappy/upper_halfspace/__pycache__/ideal_point.cpython-311.pyc +0 -0
  445. snappy/verify/__pycache__/__init__.cpython-311.pyc +0 -0
  446. snappy/verify/__pycache__/cuspCrossSection.cpython-311.pyc +0 -0
  447. snappy/verify/__pycache__/cuspTranslations.cpython-311.pyc +0 -0
  448. snappy/verify/__pycache__/cusp_areas.cpython-311.pyc +0 -0
  449. snappy/verify/__pycache__/cusp_shapes.cpython-311.pyc +0 -0
  450. snappy/verify/__pycache__/exceptions.cpython-311.pyc +0 -0
  451. snappy/verify/__pycache__/interval_newton_shapes_engine.cpython-311.pyc +0 -0
  452. snappy/verify/__pycache__/interval_tree.cpython-311.pyc +0 -0
  453. snappy/verify/__pycache__/krawczyk_shapes_engine.cpython-311.pyc +0 -0
  454. snappy/verify/__pycache__/realAlgebra.cpython-311.pyc +0 -0
  455. snappy/verify/__pycache__/shapes.cpython-311.pyc +0 -0
  456. snappy/verify/__pycache__/short_slopes.cpython-311.pyc +0 -0
  457. snappy/verify/__pycache__/squareExtensions.cpython-311.pyc +0 -0
  458. snappy/verify/__pycache__/verifyCanonical.cpython-311.pyc +0 -0
  459. snappy/verify/__pycache__/verifyHyperbolicity.cpython-311.pyc +0 -0
  460. snappy/verify/__pycache__/volume.cpython-311.pyc +0 -0
  461. snappy/verify/complex_volume/__pycache__/__init__.cpython-311.pyc +0 -0
  462. snappy/verify/complex_volume/__pycache__/adjust_torsion.cpython-311.pyc +0 -0
  463. snappy/verify/complex_volume/__pycache__/closed.cpython-311.pyc +0 -0
  464. snappy/verify/complex_volume/__pycache__/compute_ptolemys.cpython-311.pyc +0 -0
  465. snappy/verify/complex_volume/__pycache__/cusped.cpython-311.pyc +0 -0
  466. snappy/verify/complex_volume/__pycache__/extended_bloch.cpython-311.pyc +0 -0
  467. snappy/verify/cuspCrossSection.py +0 -1422
  468. snappy/verify/maximal_cusp_area_matrix/__pycache__/__init__.cpython-311.pyc +0 -0
  469. snappy/verify/maximal_cusp_area_matrix/__pycache__/cusp_tiling_engine.cpython-311.pyc +0 -0
  470. snappy/verify/maximal_cusp_area_matrix/__pycache__/cusp_translate_engine.cpython-311.pyc +0 -0
  471. snappy/verify/upper_halfspace/__pycache__/__init__.cpython-311.pyc +0 -0
  472. snappy/verify/upper_halfspace/__pycache__/extended_matrix.cpython-311.pyc +0 -0
  473. snappy/verify/upper_halfspace/__pycache__/finite_point.cpython-311.pyc +0 -0
  474. snappy/verify/upper_halfspace/__pycache__/ideal_point.cpython-311.pyc +0 -0
  475. snappy-3.1.1.dist-info/RECORD +0 -575
  476. {snappy-3.1.1.dist-info → snappy-3.2.dist-info}/entry_points.txt +0 -0
@@ -1,239 +1,259 @@
1
- Development Basics
2
- ==================
3
-
4
- Submitting patches
5
- ------------------
6
-
7
- The source code for SnapPy and its various parts are `hosted on GitHub
8
- <https://github.com/3-manifolds>`_ as `Git repositories
9
- <https://git-scm.com/>`_. To contribute a patch, create a free
10
- GitHub account, fork the appropriate repository, and then send us a
11
- pull request, as described in `here
12
- <https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request>`_.
13
-
14
-
15
- macOS
16
- -----
17
-
18
- Here is how to get a clean development setup under macOS.
19
-
20
- - Install the latest Python 3.8 from Python.org using the `Mac
21
- Installer Disk Image <http://www.python.org/download/>`_. Set your
22
- path so that "python3" is::
23
-
24
- /Library/Frameworks/Python.framework/Versions/3.8/bin/python3
25
-
26
- - Use `pip <https://pip.pypa.io/en/latest/index.html>`_ to install the
27
- following packages::
28
-
29
- python3 -m pip install --upgrade setuptools virtualenv wheel pip
30
- python3 -m pip install cython # Used for Python-C interfacing
31
- python3 -m pip install sphinx # For building the documentation
32
- python3 -m pip install ipython # Improved Python shell
33
- python3 -m pip install py2app # For making app bundles
34
- python3 -m pip install pyx FXrays low_index
35
-
36
- - Get the source code from the repository, using Git. For
37
- example you can install Git via its `package installer
38
- <https://www.git-scm.org/>`_. Now do::
39
-
40
- git clone https://github.com/3-manifolds/plink.git
41
- git clone https://github.com/3-manifolds/spherogram.git
42
- git clone https://github.com/3-manifolds/snappy.git
43
-
44
- - Test the stand-alone link editor::
45
-
46
- cd plink
47
- python3 setup.py pip_install
48
- python3 -m plink.app # Link editor appears!
49
-
50
- This last command runs the script "plink/app.py"; the real code for
51
- the link editor is in "plink/__init__.py".
52
-
53
- - Build and install Spherogram::
54
-
55
- cd ../spherogram
56
- python3 setup.py pip_install
57
- python3 setup.py test
58
-
59
- - Now build SnapPy itself. One builds it twice to generate the
60
- documentation, much of which is extracted from the installed module::
61
-
62
- cd ../snappy
63
- python3 setup.py pip_install
64
- python3 setup.py test # Run the tests; pretty picture should appear.
65
- python3 -m snappy.app #SnapPy starts!
66
-
67
- To build the clickable app, just do the following::
68
-
69
- cd mac_osx_app
70
- python3 release.py --manual
71
-
72
- though for general development purposes ``python3 -m snappy.app`` is
73
- usually the way to go.
74
-
75
- Some major parts of the SnapPy codebase are:
76
-
77
- - "SnapPy.pyx", "SnapPycore.pxi", "SnapPy.pxi": The Cython interface
78
- to the SnapPea kernel
79
- - "opengl/CyOpenGL*.pyx": The Cython interface to OpenGL*
80
- - "snappy/app.py": The core GUI code
81
- - "snappy/polyviewer.py": The GUI code for Dirichlet domains
82
- - "snappy/horoviewer.py": The GUI code for horoball pictures
83
- - "snappy/database.py": Interacts with the sqlite3 manifold database
84
-
85
- In addition, Jeff's old prototype for a Tk-based UI can be found in
86
- "misc/JeffsOldUI/SnapPeaGUI.py"; just run Python on this file to try it
87
- out, after installing `PythonMegaWidgets <http://pmw.sf.net>`_.
88
-
89
-
90
- Windows
91
- -------
92
-
93
- These instructions have been tested on Windows 10, and describe
94
- setting up a development environment using the (free) MSVC
95
- compiler. To build the CyPari subcomponent, which few will want or
96
- need to do, one must install additional tools.
97
-
98
- - Install `Python 3.7 <https://www.python.org/downloads/windows/>`_,
99
- specifically the 32 bit version (Windows x86 not Windows x86-64).
100
- These instructions assume it has been installed in the directory
101
- ``C:\Python37`` which is not the default.
102
-
103
- - With Python 3.7.4, you need the MSVC command line tools. You can
104
- get them by using Microsoft's free `Build Tools for Visual Studio 2019
105
- <https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16>`_
106
- installer and selecting the "C++ command line tools" and installing
107
- the following subpackages: "MSVC v142 - VS 2019 C++ build tools",
108
- "Testing tools core features", "C++/CLI support for v142", and
109
- "Windows 10 SDK (most recent version)".
110
-
111
- If you would like to make your own installer you will also need
112
- `Inno Setup <http://www.jrsoftware.org/isdl.php>`_, specifically the
113
- unicode version; tested with version 5.5.9.
114
-
115
- - Install whichever version of `MSYS2 <http://msys2.github.io>`_ is
116
- appropriate for your version Windows. Most commonly, you will have
117
- a 64-bit Windows and hence want the "x86_64" installer; for
118
- concreteness the rest of these instructions assume this. (Technical
119
- note: even if you want to build 32-bit binaries, if your Windows is
120
- 64-bit you want the x86_64 installer.) Follow the instructions on
121
- the webpage to update everything to the very latest MSYS2
122
- (``pacman -Sy pacman; pacman -Syu; pacman -Su`` etc.).
123
-
124
- - Make a shortcut to ``c:\msys64\msys2.exe`` as you will be using it all
125
- the time; alternatively, pin ``mys2.exe`` to your taskbar.
126
-
127
- - Install some additional packages::
128
-
129
- pacman -S git make nano openssh perl tar unzip wget winpty patch
130
-
131
- - Install your favorite text editor, for example you can install Emacs
132
- via::
133
-
134
- pacman -S mingw-w64-x86_64-emacs
135
-
136
- - Make it so that MinGW, Python, and Inno Setup are all in your PATH,
137
- as well as work around some stupid bug, by making the end of your
138
- "~/.bash_profile" file to read::
139
-
140
- PATH=/c/Python37:/c/Python37/Scripts:$PATH
141
- PATH=$PATH:'/c/Program Files (x86)/Inno Setup 5'
142
- export PATH
143
- alias emacs="/mingw64/bin/emacs"
144
- winpty bash; exit
145
-
146
- For example, do::
147
-
148
- nano ~/.bash_profile
149
-
150
- - Make sure you have the right version of Python in your path by
151
- typing::
152
-
153
- python --version
154
-
155
- You should see something like ``Python 3.7.4``.
156
-
157
- - Use pip to install some basic tools::
158
-
159
- python -m pip install --upgrade pip setuptools wheel # Upgrades pip to the current version.
160
- python -m pip install pyreadline sphinx cython cypari pyx FXrays low_index
161
-
162
- - Fetch the latest development versions of the source straight from
163
- the t3m repository::
164
-
165
- git clone https://github.com/3-manifolds/plink.git
166
- git clone https://github.com/3-manifolds/spherogram.git
167
- git clone https://github.com/3-manifolds/snappy.git
168
-
169
- - Build the components, from easiest to hardest, and then test::
170
-
171
- cd plink
172
- python setup.py pip_install
173
- cd ../Spherogram
174
- python setup.py pip_install
175
- cd ../SnapPy
176
- python setup.py pip_install
177
- cd ..
178
- python -m SnapPy.test
179
-
180
- - To run the app, you can just do::
181
-
182
- python -m snappy.app
183
-
184
- - To build the binary installer, you need PyInstaller::
185
-
186
- python -m pip install pyinstaller
187
-
188
- To build the binary installer do::
189
-
190
- cd windows_exe
191
- python make.py
192
-
193
- You will need to close the SnapPy window that pops up here to
194
- complete the build process.
195
-
196
- - Useful tips for those coming from Unix. In MSYS2, your home
197
- directory is really something like::
198
-
199
- c:\msys2\home\Nathan Dunfield
200
-
201
- whereas your Windows 10 home directory is::
202
-
203
- c:\Users\Nathan Dunfield
204
-
205
- It is handy to have symbolic links from your MSYS2 home directory to
206
- the Downloads and Desktop folders on the Windows side. `See this
207
- discussion <http://www.howtogeek.com/howto/16226/>`_, but basically
208
- you start a "Command Prompt" as Administrator and do::
209
-
210
- cd "C:\msys64\home\Nathan Dunfield"
211
- mklink /D Desktop "C:\Users\Nathan Dunfield\Desktop"
212
- mklink /D Downloads "C:\Users\Nathan Dunfield\Downloads"
213
-
214
-
215
- - To build CyPari, first install the 32-bit gcc compiler::
216
-
217
- pacman -S mingw-w64-i686-gcc
218
-
219
- Then open a *MinGW32 terminal window*, which is **different** than a
220
- MSYS2 terminal, and can be started via `c:\msys64\mingw32.exe`.
221
- This will put the 32-bit gcc in your path and set the correct
222
- "uname". Now do::
223
-
224
- git clone https://github.com/3-manifolds/CyPari.git
225
- cd CyPari
226
- sh build_pari.sh
227
- python setup.py build --compiler=mingw32
228
- python setup.py install
229
- python -m cypari.test # About 30 tests will fail.
230
-
231
- Warning: CyPari will not build if there are spaces in the path to
232
- the CyPari directory.
233
-
234
-
235
- Linux
236
- -----
237
-
238
- See the :ref:`installation instructions on generic Unix
239
- <installing:Generic Unix>` for how to build SnapPy from source.
1
+ Development Basics
2
+ ==================
3
+
4
+ Submitting patches
5
+ ------------------
6
+
7
+ The source code for SnapPy and its various parts are `hosted on GitHub
8
+ <https://github.com/3-manifolds>`_ as `Git repositories
9
+ <https://git-scm.com/>`_. To contribute a patch, create a free
10
+ GitHub account, fork the appropriate repository, and then send us a
11
+ pull request, as described in `here
12
+ <https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request>`_.
13
+
14
+
15
+ macOS
16
+ -----
17
+
18
+ Here is how to get a clean development setup under macOS.
19
+
20
+ - Install the latest Python 3.13 from Python.org using the `Mac
21
+ Installer Disk Image <http://www.python.org/download/>`_. Set your
22
+ path so that "python3" is::
23
+
24
+ /Library/Frameworks/Python.framework/Versions/3.13/bin/python3
25
+
26
+ - Use `pip <https://pip.pypa.io/en/latest/index.html>`_ to install the
27
+ following packages::
28
+
29
+ python3 -m pip install --upgrade setuptools virtualenv wheel pip
30
+ python3 -m pip install cython # Used for Python-C interfacing
31
+ python3 -m pip install sphinx # For building the documentation
32
+ python3 -m pip install ipython # Improved Python shell
33
+ python3 -m pip install py2app # For making app bundles
34
+ python3 -m pip install pyx FXrays low_index
35
+
36
+ - Get the source code from the repository, using Git. For
37
+ example you can install Git via its `package installer
38
+ <https://www.git-scm.org/>`_. Now do::
39
+
40
+ git clone https://github.com/3-manifolds/plink.git
41
+ git clone https://github.com/3-manifolds/spherogram.git
42
+ git clone https://github.com/3-manifolds/snappy.git
43
+
44
+ - Test the stand-alone link editor::
45
+
46
+ cd plink
47
+ python3 setup.py pip_install
48
+ python3 -m plink.app # Link editor appears!
49
+
50
+ This last command runs the script ``plink/app.py``; the real code for
51
+ the link editor is in ``plink/__init__.py``.
52
+
53
+ - Build and install Spherogram::
54
+
55
+ cd ../spherogram
56
+ python3 setup.py pip_install
57
+ python3 setup.py test
58
+
59
+ - Now build SnapPy itself. One builds it twice to generate the
60
+ documentation, much of which is extracted from the installed module::
61
+
62
+ cd ../snappy
63
+ python3 setup.py pip_install
64
+ python3 setup.py test # Run the tests; pretty picture should appear.
65
+ python3 -m snappy.app #SnapPy starts!
66
+
67
+ To build the clickable app, just do the following::
68
+
69
+ cd mac_osx_app
70
+ python3 release.py --manual
71
+
72
+ though for general development purposes ``python3 -m snappy.app`` is
73
+ usually the way to go.
74
+
75
+ Some major parts of the SnapPy codebase are:
76
+
77
+ - ``SnapPy.pyx``, ``SnapPycore.pxi``, ``SnapPy.pxi``: The Cython interface
78
+ to the SnapPea kernel
79
+ - ``opengl/CyOpenGL*.pyx``: The Cython interface to OpenGL*
80
+ - ``snappy/app.py``: The core GUI code
81
+ - ``snappy/polyviewer.py``: The GUI code for Dirichlet domains
82
+ - ``snappy/horoviewer.py``: The GUI code for horoball pictures
83
+ - ``snappy/database.py``: Interacts with the sqlite3 manifold database
84
+
85
+
86
+ Windows
87
+ -------
88
+
89
+ These instructions have been tested on Windows 10, and describe
90
+ setting up a development environment using the (free) MSVC
91
+ compiler. To build the CyPari subcomponent, which few will want or
92
+ need to do, one must install additional tools.
93
+
94
+ - Install `Python 3.13.1
95
+ <https://www.python.org/downloads/windows/>`_, specifically the
96
+ default 64-bit version (the file name will end in ``amd64.exe``).
97
+ These instructions assume it has been installed in the directory
98
+ ``C:\Python313`` which is not the default.
99
+
100
+ - With Python 3.13.1, you need the MSVC command line tools. You can
101
+ get them by using Microsoft's free `Build Tools for Visual Studio 2019
102
+ <https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16>`_
103
+ installer and selecting the "C++ command line tools" and installing
104
+ the following subpackages: "MSVC v142 - VS 2019 C++ build tools",
105
+ "Testing tools core features", "C++/CLI support for v142", and
106
+ "Windows 10 SDK (most recent version)".
107
+
108
+ If you would like to make your own installer you will also need
109
+ `Inno Setup <http://www.jrsoftware.org/isdl.php>`_, specifically the
110
+ unicode version; tested with version 5.5.9.
111
+
112
+ - Install `MSYS2 <http://msys2.github.io>`_ as appropriate for your
113
+ version Windows. Follow the instructions on the webpage to update
114
+ everything to the very latest MSYS2 (``pacman -Sy pacman; pacman
115
+ -Syu; pacman -Su`` etc.). You should also install the ucrt toolchain::
116
+
117
+ pacman -S mingw-w64-ucrt-x86_64-toolchain
118
+
119
+ - Make a shortcut to ``c:\msys64\msys2.exe`` as you will be using it all
120
+ the time; alternatively, pin ``mys2.exe`` to your taskbar.
121
+
122
+ - Install some additional packages::
123
+
124
+ pacman -S git make nano openssh perl tar unzip wget winpty patch
125
+
126
+ - Install your favorite text editor, for example you can install Emacs
127
+ via::
128
+
129
+ pacman -S mingw-w64-x86_64-emacs
130
+
131
+ - Make it so that MinGW, Python, and Inno Setup are all in your PATH,
132
+ as well as work around some stupid bug, by making the end of your
133
+ "~/.bash_profile" file to read::
134
+
135
+ PATH=/c/Python313:/c/Python313/Scripts:$PATH
136
+ PATH=$PATH:'/c/Program Files (x86)/Inno Setup 5'
137
+ export PATH
138
+ alias emacs="/mingw64/bin/emacs"
139
+ winpty bash; exit
140
+
141
+ For example, do::
142
+
143
+ nano ~/.bash_profile
144
+
145
+ - Make sure you have the right version of Python in your path by
146
+ typing::
147
+
148
+ python --version
149
+
150
+ You should see something like ``Python 3.13.1``.
151
+
152
+ - Use pip to install some basic tools::
153
+
154
+ python -m pip install --upgrade pip setuptools wheel # Upgrades pip to the current version.
155
+ python -m pip install pyreadline sphinx cython cypari pyx FXrays low_index
156
+
157
+ - Fetch the latest development versions of the source straight from
158
+ the t3m repository::
159
+
160
+ git clone https://github.com/3-manifolds/plink.git
161
+ git clone https://github.com/3-manifolds/spherogram.git
162
+ git clone https://github.com/3-manifolds/snappy.git
163
+
164
+ - Build the components, from easiest to hardest, and then test::
165
+
166
+ cd plink
167
+ python setup.py pip_install
168
+ cd ../Spherogram
169
+ python setup.py pip_install
170
+ cd ../SnapPy
171
+ python setup.py pip_install
172
+ cd ..
173
+ python -m SnapPy.test
174
+
175
+ - To run the app, you can just do::
176
+
177
+ python -m snappy.app
178
+
179
+ - To build the binary installer, you need PyInstaller::
180
+
181
+ python -m pip install pyinstaller
182
+
183
+ To build the binary installer do::
184
+
185
+ cd windows_exe
186
+ python make.py
187
+
188
+ You will need to close the SnapPy window that pops up here to
189
+ complete the build process.
190
+
191
+ - Useful tips for those coming from Unix. In MSYS2, your home
192
+ directory is really something like::
193
+
194
+ c:\msys2\home\Nathan Dunfield
195
+
196
+ whereas your Windows 10 home directory is::
197
+
198
+ c:\Users\Nathan Dunfield
199
+
200
+ It is handy to have symbolic links from your MSYS2 home directory to
201
+ the Downloads and Desktop folders on the Windows side. `See this
202
+ discussion <http://www.howtogeek.com/howto/16226/>`_, but basically
203
+ you start a "Command Prompt" as Administrator and do::
204
+
205
+ cd "C:\msys64\home\Nathan Dunfield"
206
+ mklink /D Desktop "C:\Users\Nathan Dunfield\Desktop"
207
+ mklink /D Downloads "C:\Users\Nathan Dunfield\Downloads"
208
+
209
+
210
+ Linux
211
+ -----
212
+
213
+ Things you'll need:
214
+
215
+ - Python 3 with Tkinter: You'll need to have `Python
216
+ <http://python.org>`_ (version 3.9 or newer) and `Tk
217
+ <http://tcl.tk>`_ (at least version 8.5) with `Tkinter
218
+ <http://wiki.python.org/moin/TkInter>`_ to connect them, including
219
+ the header files. For instance, on Debian or Ubuntu, install the
220
+ packages "python3-tk", "python3-pip", and "python3-dev". On Fedora,
221
+ you'll want e.g. "python3-tkinter", "python3-pip", and
222
+ "python3-devel", and "python3-wheel".
223
+
224
+ - Test that Python is in order by installing PLink from source::
225
+
226
+ python3 -m pip install --user plink
227
+ python3 -m plink.app # Should start the link editor!
228
+
229
+ .. _openglmesa:
230
+
231
+ - Support for OpenGL (3D graphics): This is built in on OS X and the
232
+ most installations of Fedora and Ubuntu. But you'll need the `MESA
233
+ <http://www.mesa3d.org/>`_ header files "gl.h" and "glu.h" to compile
234
+ SnapPy. On Debian and Ubuntu, install "libglu1-mesa-dev"; On Fedora install
235
+ "mesa-libGLU-devel".
236
+
237
+ - `Cython <http://cython.org>`_, which you can install via::
238
+
239
+ python3 -m pip install --user cython
240
+
241
+ - The gcc C++ compiler, g++.
242
+
243
+ - Fetch the latest development versions of the source straight from
244
+ the repository::
245
+
246
+ git clone https://github.com/3-manifolds/PLink.git
247
+ git clone https://github.com/3-manifolds/Spherogram.git
248
+ git clone https://github.com/3-manifolds/Snappy.git
249
+
250
+ - Build the components, from easiest to hardest, and then test::
251
+
252
+ cd PLink
253
+ python setup.py pip_install
254
+ cd ../Spherogram
255
+ python setup.py pip_install
256
+ cd ../SnapPy
257
+ python setup.py pip_install
258
+ cd ..
259
+ python -m SnapPy.test