iplotx 0.6.1__tar.gz → 0.6.3__tar.gz

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 (202) hide show
  1. {iplotx-0.6.1 → iplotx-0.6.3}/.github/workflows/test.yml +2 -0
  2. {iplotx-0.6.1 → iplotx-0.6.3}/PKG-INFO +4 -4
  3. {iplotx-0.6.1 → iplotx-0.6.3}/README.md +2 -2
  4. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/ingest/__init__.py +1 -1
  5. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/utils/geometry.py +9 -8
  6. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/version.py +1 -1
  7. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/vertex.py +3 -1
  8. {iplotx-0.6.1 → iplotx-0.6.3}/pyproject.toml +1 -1
  9. iplotx-0.6.3/tests/baseline_images/test_igraph/graph_vertexsize.png +0 -0
  10. {iplotx-0.6.1 → iplotx-0.6.3}/tests/test_geometry.py +36 -2
  11. {iplotx-0.6.1 → iplotx-0.6.3}/tests/test_igraph.py +13 -0
  12. {iplotx-0.6.1 → iplotx-0.6.3}/.github/workflows/publish.yml +0 -0
  13. {iplotx-0.6.1 → iplotx-0.6.3}/.gitignore +0 -0
  14. {iplotx-0.6.1 → iplotx-0.6.3}/.pre-commit-config.yaml +0 -0
  15. {iplotx-0.6.1 → iplotx-0.6.3}/.readthedocs.yaml +0 -0
  16. {iplotx-0.6.1 → iplotx-0.6.3}/LICENSE +0 -0
  17. {iplotx-0.6.1 → iplotx-0.6.3}/MANIFEST.in +0 -0
  18. {iplotx-0.6.1 → iplotx-0.6.3}/assets/pylint.svg +0 -0
  19. {iplotx-0.6.1 → iplotx-0.6.3}/docs/Makefile +0 -0
  20. {iplotx-0.6.1 → iplotx-0.6.3}/docs/make.bat +0 -0
  21. {iplotx-0.6.1 → iplotx-0.6.3}/docs/source/_static/banner.png +0 -0
  22. {iplotx-0.6.1 → iplotx-0.6.3}/docs/source/_static/graph_basic.png +0 -0
  23. {iplotx-0.6.1 → iplotx-0.6.3}/docs/source/_templates/layout.html +0 -0
  24. {iplotx-0.6.1 → iplotx-0.6.3}/docs/source/api/artists.md +0 -0
  25. {iplotx-0.6.1 → iplotx-0.6.3}/docs/source/api/complete_style_specification.md +0 -0
  26. {iplotx-0.6.1 → iplotx-0.6.3}/docs/source/api/plotting.md +0 -0
  27. {iplotx-0.6.1 → iplotx-0.6.3}/docs/source/api/providers.md +0 -0
  28. {iplotx-0.6.1 → iplotx-0.6.3}/docs/source/api/style.md +0 -0
  29. {iplotx-0.6.1 → iplotx-0.6.3}/docs/source/api.md +0 -0
  30. {iplotx-0.6.1 → iplotx-0.6.3}/docs/source/conf.py +0 -0
  31. {iplotx-0.6.1 → iplotx-0.6.3}/docs/source/images/sphx_glr_plot_basic_001.png +0 -0
  32. {iplotx-0.6.1 → iplotx-0.6.3}/docs/source/images/thumb/sphx_glr_plot_basic_thumb.png +0 -0
  33. {iplotx-0.6.1 → iplotx-0.6.3}/docs/source/index.md +0 -0
  34. {iplotx-0.6.1 → iplotx-0.6.3}/docs/source/providers.md +0 -0
  35. {iplotx-0.6.1 → iplotx-0.6.3}/docs/source/sg_execution_times.rst +0 -0
  36. {iplotx-0.6.1 → iplotx-0.6.3}/docs/source/style.md +0 -0
  37. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/GALLERY_HEADER.rst +0 -0
  38. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/data/chess_masters_WCC.pgn.bz2 +0 -0
  39. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/data/knuth_miles.txt.gz +0 -0
  40. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_animation.py +0 -0
  41. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_arrowlawn.py +0 -0
  42. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_arrows.py +0 -0
  43. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_basic.py +0 -0
  44. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_big_curves.py +0 -0
  45. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_chess_masters.py +0 -0
  46. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_cliques.py +0 -0
  47. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_cluster_layout.py +0 -0
  48. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_company_structure.py +0 -0
  49. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_complex.py +0 -0
  50. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_dag.py +0 -0
  51. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_directed.py +0 -0
  52. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_edgepadding.py +0 -0
  53. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_edit_artists.py +0 -0
  54. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_elements.py +0 -0
  55. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_feedbacks.py +0 -0
  56. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_four_grids.py +0 -0
  57. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_grouping.py +0 -0
  58. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_halfarrows.py +0 -0
  59. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_house.py +0 -0
  60. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_knuth_miles.py +0 -0
  61. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_labels_and_colors.py +0 -0
  62. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_loops.py +0 -0
  63. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_max_bipartite_matching.py +0 -0
  64. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_minimum_spanning_trees.py +0 -0
  65. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_mouse_hover.py +0 -0
  66. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_multipartite_layout.py +0 -0
  67. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_multistyle.py +0 -0
  68. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_parallel_igraph_networkx.py +0 -0
  69. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_ports.py +0 -0
  70. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_redblack.py +0 -0
  71. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_shortest_path.py +0 -0
  72. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_simple_networkx.py +0 -0
  73. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_simple_path.py +0 -0
  74. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_simplenetworkdataprovider.py +0 -0
  75. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_style.py +0 -0
  76. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_tension.py +0 -0
  77. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_traveling_salesman.py +0 -0
  78. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_vertexmarkers.py +0 -0
  79. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_voronoi.py +0 -0
  80. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_waypoints.py +0 -0
  81. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/plot_with_colorbar.py +0 -0
  82. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/tree/GALLERY_HEADER.rst +0 -0
  83. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/tree/data/tree-with-support.json +0 -0
  84. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/tree/plot_angular_waypoints.py +0 -0
  85. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/tree/plot_biopython_tree.py +0 -0
  86. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/tree/plot_cladeedges.py +0 -0
  87. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/tree/plot_cogent3_layouts.py +0 -0
  88. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/tree/plot_cogent3_tree.py +0 -0
  89. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/tree/plot_elements_tree.py +0 -0
  90. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/tree/plot_ete4.py +0 -0
  91. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/tree/plot_leafedges.py +0 -0
  92. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/tree/plot_leafedges_and_cascades.py +0 -0
  93. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/tree/plot_simpletreedataprovider.py +0 -0
  94. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/tree/plot_skbio_tree.py +0 -0
  95. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/tree/plot_split_edges.py +0 -0
  96. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/tree/plot_style_tree.py +0 -0
  97. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/tree/plot_support.py +0 -0
  98. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/tree/plot_tree_node_background.py +0 -0
  99. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/tree/plot_tree_style_clades.py +0 -0
  100. {iplotx-0.6.1 → iplotx-0.6.3}/gallery/tree/plot_trees_of_trees.py +0 -0
  101. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/__init__.py +0 -0
  102. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/artists.py +0 -0
  103. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/cascades.py +0 -0
  104. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/edge/__init__.py +0 -0
  105. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/edge/arrow.py +0 -0
  106. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/edge/geometry.py +0 -0
  107. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/edge/leaf.py +0 -0
  108. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/edge/ports.py +0 -0
  109. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/groups.py +0 -0
  110. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/ingest/heuristics.py +0 -0
  111. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/ingest/providers/network/igraph.py +0 -0
  112. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/ingest/providers/network/networkx.py +0 -0
  113. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/ingest/providers/network/simple.py +0 -0
  114. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/ingest/providers/tree/biopython.py +0 -0
  115. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/ingest/providers/tree/cogent3.py +0 -0
  116. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/ingest/providers/tree/ete4.py +0 -0
  117. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/ingest/providers/tree/simple.py +0 -0
  118. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/ingest/providers/tree/skbio.py +0 -0
  119. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/ingest/typing.py +0 -0
  120. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/label.py +0 -0
  121. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/layout.py +0 -0
  122. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/network.py +0 -0
  123. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/plotting.py +0 -0
  124. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/style/__init__.py +0 -0
  125. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/style/leaf_info.py +0 -0
  126. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/style/library.py +0 -0
  127. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/tree.py +0 -0
  128. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/typing.py +0 -0
  129. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/utils/internal.py +0 -0
  130. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/utils/matplotlib.py +0 -0
  131. {iplotx-0.6.1 → iplotx-0.6.3}/iplotx/utils/style.py +0 -0
  132. {iplotx-0.6.1 → iplotx-0.6.3}/scripts/copy_github_release_into_version.sh +0 -0
  133. {iplotx-0.6.1 → iplotx-0.6.3}/scripts/make_banner.py +0 -0
  134. {iplotx-0.6.1 → iplotx-0.6.3}/scripts/update_pylint_badge.sh +0 -0
  135. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_biopython/cascades.png +0 -0
  136. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_biopython/directed_child.png +0 -0
  137. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_biopython/leaf_labels.png +0 -0
  138. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_biopython/leaf_labels_hmargin.png +0 -0
  139. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_biopython/leafedges.png +0 -0
  140. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_biopython/show_support.png +0 -0
  141. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_biopython/tree_basic.png +0 -0
  142. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_biopython/tree_radial.png +0 -0
  143. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_cogent3/leaf_labels.png +0 -0
  144. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_cogent3/leaf_labels_hmargin.png +0 -0
  145. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_cogent3/tree_basic.png +0 -0
  146. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_cogent3/tree_radial.png +0 -0
  147. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_ete4/leaf_labels.png +0 -0
  148. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_ete4/leaf_labels_hmargin.png +0 -0
  149. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_ete4/split_edges.png +0 -0
  150. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_ete4/tree_basic.png +0 -0
  151. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_ete4/tree_radial.png +0 -0
  152. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_igraph/clustering_directed.png +0 -0
  153. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_igraph/clustering_directed_large.png +0 -0
  154. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_igraph/graph_basic.png +0 -0
  155. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_igraph/graph_directed.png +0 -0
  156. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_igraph/graph_directed_curved_loops.png +0 -0
  157. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_igraph/graph_edit_children.png +0 -0
  158. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_igraph/graph_labels.png +0 -0
  159. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_igraph/graph_layout_attribute.png +0 -0
  160. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_igraph/graph_null.png +0 -0
  161. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_igraph/graph_squares_directed.png +0 -0
  162. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_igraph/graph_with_curved_edges.png +0 -0
  163. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_igraph/igraph_layout_object.png +0 -0
  164. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_igraph/multigraph_with_curved_edges_undirected.png +0 -0
  165. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_networkx/cluster-layout.png +0 -0
  166. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_networkx/complex.png +0 -0
  167. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_networkx/complex_rotatelabels.png +0 -0
  168. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_networkx/directed_graph.png +0 -0
  169. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_networkx/directed_graph_with_colorbar.png +0 -0
  170. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_networkx/empty_graph.png +0 -0
  171. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_networkx/flat_style.png +0 -0
  172. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_networkx/house_with_colors.png +0 -0
  173. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_networkx/labels_and_colors.png +0 -0
  174. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_networkx/shortest_path.png +0 -0
  175. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_networkx/simple_graph.png +0 -0
  176. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_simple_network_provider/graph_basic.png +0 -0
  177. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_simple_network_provider/graph_directed.png +0 -0
  178. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_simple_network_provider/graph_labels.png +0 -0
  179. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_skbio/leaf_labels.png +0 -0
  180. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_skbio/leaf_labels_hmargin.png +0 -0
  181. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_skbio/tree_basic.png +0 -0
  182. {iplotx-0.6.1 → iplotx-0.6.3}/tests/baseline_images/test_skbio/tree_radial.png +0 -0
  183. {iplotx-0.6.1 → iplotx-0.6.3}/tests/test_arrows.py +0 -0
  184. {iplotx-0.6.1 → iplotx-0.6.3}/tests/test_biopython.py +0 -0
  185. {iplotx-0.6.1 → iplotx-0.6.3}/tests/test_cascades.py +0 -0
  186. {iplotx-0.6.1 → iplotx-0.6.3}/tests/test_cogent3.py +0 -0
  187. {iplotx-0.6.1 → iplotx-0.6.3}/tests/test_edge.py +0 -0
  188. {iplotx-0.6.1 → iplotx-0.6.3}/tests/test_edge_geometry.py +0 -0
  189. {iplotx-0.6.1 → iplotx-0.6.3}/tests/test_ete4.py +0 -0
  190. {iplotx-0.6.1 → iplotx-0.6.3}/tests/test_heuristics.py +0 -0
  191. {iplotx-0.6.1 → iplotx-0.6.3}/tests/test_ingest_protocols.py +0 -0
  192. {iplotx-0.6.1 → iplotx-0.6.3}/tests/test_matplotlib_utils.py +0 -0
  193. {iplotx-0.6.1 → iplotx-0.6.3}/tests/test_network_hotload.py +0 -0
  194. {iplotx-0.6.1 → iplotx-0.6.3}/tests/test_networkx.py +0 -0
  195. {iplotx-0.6.1 → iplotx-0.6.3}/tests/test_ports.py +0 -0
  196. {iplotx-0.6.1 → iplotx-0.6.3}/tests/test_simple_network_provider.py +0 -0
  197. {iplotx-0.6.1 → iplotx-0.6.3}/tests/test_simple_tree_provider.py +0 -0
  198. {iplotx-0.6.1 → iplotx-0.6.3}/tests/test_skbio.py +0 -0
  199. {iplotx-0.6.1 → iplotx-0.6.3}/tests/test_style.py +0 -0
  200. {iplotx-0.6.1 → iplotx-0.6.3}/tests/test_vertex.py +0 -0
  201. {iplotx-0.6.1 → iplotx-0.6.3}/tests/utils.py +0 -0
  202. {iplotx-0.6.1 → iplotx-0.6.3}/uv.lock +0 -0
@@ -39,6 +39,8 @@ jobs:
39
39
 
40
40
  - name: Coveralls
41
41
  uses: coverallsapp/github-action@v2
42
+ with:
43
+ fail-on-error: false
42
44
 
43
45
  - name: Run flake8
44
46
  run: uv run flake8 iplotx --count --exit-zero --max-complexity=20 --max-line-length=127 --statistics
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iplotx
3
- Version: 0.6.1
3
+ Version: 0.6.3
4
4
  Summary: Plot networkx from igraph and networkx.
5
5
  Project-URL: Homepage, https://github.com/fabilab/iplotx
6
6
  Project-URL: Documentation, https://readthedocs.org/iplotx
@@ -11,7 +11,7 @@ Author-email: Fabio Zanini <fabio.zanini@unsw.edu.au>
11
11
  Maintainer-email: Fabio Zanini <fabio.zanini@unsw.edu.au>
12
12
  License: MIT
13
13
  Keywords: graph,network,plotting,visualisation
14
- Classifier: Development Status :: 4 - Beta
14
+ Classifier: Development Status :: 5 - Production/Stable
15
15
  Classifier: Intended Audience :: Developers
16
16
  Classifier: Intended Audience :: Education
17
17
  Classifier: Intended Audience :: Science/Research
@@ -41,6 +41,8 @@ Description-Content-Type: text/markdown
41
41
  ![RTD](https://readthedocs.org/projects/iplotx/badge/?version=latest)
42
42
  [![Coverage Status](https://coveralls.io/repos/github/fabilab/iplotx/badge.svg?branch=main)](https://coveralls.io/github/fabilab/iplotx?branch=main)
43
43
  ![pylint](assets/pylint.svg)
44
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.16599333.svg)](https://doi.org/10.5281/zenodo.16599333)
45
+
44
46
 
45
47
  # iplotx
46
48
  [![Banner](docs/source/_static/banner.png)](https://iplotx.readthedocs.io/en/latest/gallery/index.html).
@@ -61,8 +63,6 @@ Supports:
61
63
 
62
64
  In addition to the above, *any* network or tree analysis library can register an [entry point](https://iplotx.readthedocs.io/en/latest/providers.html#creating-a-custom-data-provider) to gain compatibility with `iplotx` with no intervention from our side.
63
65
 
64
- **NOTE**: This is currently late beta quality software. The API and functionality might break rarely.
65
-
66
66
  ## Installation
67
67
  ```bash
68
68
  pip install iplotx
@@ -3,6 +3,8 @@
3
3
  ![RTD](https://readthedocs.org/projects/iplotx/badge/?version=latest)
4
4
  [![Coverage Status](https://coveralls.io/repos/github/fabilab/iplotx/badge.svg?branch=main)](https://coveralls.io/github/fabilab/iplotx?branch=main)
5
5
  ![pylint](assets/pylint.svg)
6
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.16599333.svg)](https://doi.org/10.5281/zenodo.16599333)
7
+
6
8
 
7
9
  # iplotx
8
10
  [![Banner](docs/source/_static/banner.png)](https://iplotx.readthedocs.io/en/latest/gallery/index.html).
@@ -23,8 +25,6 @@ Supports:
23
25
 
24
26
  In addition to the above, *any* network or tree analysis library can register an [entry point](https://iplotx.readthedocs.io/en/latest/providers.html#creating-a-custom-data-provider) to gain compatibility with `iplotx` with no intervention from our side.
25
27
 
26
- **NOTE**: This is currently late beta quality software. The API and functionality might break rarely.
27
-
28
28
  ## Installation
29
29
  ```bash
30
30
  pip install iplotx
@@ -1,5 +1,5 @@
1
1
  """
2
- This module focuses on how to ingest network data into standard data structures no matter what library they come from.
2
+ This module focuses on how to ingest network/tree data into standard data structures no matter what library they come from.
3
3
  """
4
4
 
5
5
  import pathlib
@@ -42,14 +42,15 @@ def convex_hull(points):
42
42
  pass
43
43
 
44
44
  # Otherwise, try scipy
45
- try:
46
- from scipy.spatial import ConvexHull
47
-
48
- # NOTE: scipy guarantees counterclockwise ordering in 2D
49
- # https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.ConvexHull.html
50
- hull_idx = ConvexHull(points).vertices[::-1]
51
- except ImportError:
52
- pass
45
+ if hull_idx is None:
46
+ try:
47
+ from scipy.spatial import ConvexHull
48
+
49
+ # NOTE: scipy guarantees counterclockwise ordering in 2D
50
+ # https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.ConvexHull.html
51
+ hull_idx = ConvexHull(points).vertices[::-1]
52
+ except ImportError:
53
+ pass
53
54
 
54
55
  # Last resort: our own Graham scan
55
56
  if hull_idx is None:
@@ -2,4 +2,4 @@
2
2
  iplotx version information module.
3
3
  """
4
4
 
5
- __version__ = "0.6.1"
5
+ __version__ = "0.6.3"
@@ -232,10 +232,12 @@ class VertexCollection(PatchCollection):
232
232
  else:
233
233
  cmap_fun = None
234
234
 
235
- if style.get("size", 20) == "label":
235
+ size_tmp = style.get("size", 20)
236
+ if isinstance(size_tmp, str) and (size_tmp == "label"):
236
237
  if self._labels is None:
237
238
  warnings.warn("No labels found, cannot resize vertices based on labels.")
238
239
  style["size"] = get_style("default.vertex")["size"]
240
+ del size_tmp
239
241
 
240
242
  if "cmap" in style:
241
243
  colorarray = []
@@ -24,7 +24,7 @@ license = {text = "MIT"}
24
24
  license-files = ["LICEN[CS]E.*"]
25
25
  keywords = ["network", "graph", "visualisation", "plotting"]
26
26
  classifiers = [
27
- "Development Status :: 4 - Beta",
27
+ "Development Status :: 5 - Production/Stable",
28
28
  "Programming Language :: Python :: 3",
29
29
  "Programming Language :: Python :: 3.11",
30
30
  "Programming Language :: Python :: 3.12",
@@ -28,6 +28,40 @@ def four_points():
28
28
  )
29
29
 
30
30
 
31
+ # 13: two tests fail with AssertionError
32
+ def assert_array_equal_upon_cycling(points1, points2):
33
+ """Determine array equality but allow order to be different by cycling.
34
+
35
+ Parameters:
36
+ points1: First array of points.
37
+ points2: Second array of points.
38
+ Returns:
39
+ True if the arrays are equal upon cycling, False otherwise.
40
+ """
41
+ if len(points1) != len(points2):
42
+ return False
43
+
44
+ points1 = np.asarray(points1)
45
+ points2 = np.asarray(points2).astype(points1.dtype)
46
+
47
+ if (points1.ndim != 1) or (points2.ndim != 1):
48
+ raise ValueError("Only 1D arrays are supported.")
49
+
50
+ if (points1 == points2).all():
51
+ return True
52
+
53
+ # Cycle
54
+ points2 = np.concatenate([points2, points2])
55
+ i0 = np.flatnonzero((points2 == points1[0]))
56
+ if len(i0) != 2:
57
+ return False
58
+ i0 = i0[0]
59
+ points2 = points2[i0 : i0 + len(points1)]
60
+
61
+ # Check again
62
+ return bool((points1 == points2).all())
63
+
64
+
31
65
  def test_squared_bezier(three_points):
32
66
  ev = partial(geometry._evaluate_squared_bezier, three_points)
33
67
  np.testing.assert_array_almost_equal(ev(0), three_points[0])
@@ -65,12 +99,12 @@ def test_hull_two(three_points):
65
99
 
66
100
  def test_hull_three(three_points):
67
101
  hull = geometry.convex_hull(three_points)
68
- np.testing.assert_array_equal(hull, [2, 1, 0])
102
+ assert_array_equal_upon_cycling(hull, [2, 1, 0])
69
103
 
70
104
 
71
105
  def test_hull_four(four_points):
72
106
  hull = geometry.convex_hull(four_points)
73
- np.testing.assert_array_equal(hull, [3, 2, 1, 0])
107
+ assert_array_equal_upon_cycling(hull, [3, 2, 1, 0])
74
108
 
75
109
 
76
110
  def test_hull_internal_three(three_points):
@@ -1,4 +1,5 @@
1
1
  import unittest
2
+ import numpy as np
2
3
  import importlib
3
4
  import matplotlib as mpl
4
5
 
@@ -38,6 +39,18 @@ class GraphTestRunner(unittest.TestCase):
38
39
  fig, ax = plt.subplots(figsize=(3, 3))
39
40
  ipx.plot(g, ax=ax, layout=self.layout_small_ring)
40
41
 
42
+ @image_comparison(baseline_images=["graph_vertexsize"], remove_text=True)
43
+ def test_vertexsize(self):
44
+ g = ig.Graph.Ring(5)
45
+ fig, ax = plt.subplots(figsize=(3, 3))
46
+ ipx.plot(
47
+ g,
48
+ ax=ax,
49
+ layout=self.layout_small_ring,
50
+ vertex_size=np.linspace(10, 30, 5),
51
+ margins=0.15,
52
+ )
53
+
41
54
  @image_comparison(baseline_images=["graph_labels"], remove_text=True)
42
55
  def test_labels(self):
43
56
  g = ig.Graph.Ring(5)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes