scikit-network 0.32.1__cp39-cp39-win_amd64.whl → 0.33.0__cp39-cp39-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of scikit-network might be problematic. Click here for more details.

Files changed (60) hide show
  1. {scikit_network-0.32.1.dist-info → scikit_network-0.33.0.dist-info}/AUTHORS.rst +0 -1
  2. {scikit_network-0.32.1.dist-info → scikit_network-0.33.0.dist-info}/METADATA +9 -3
  3. {scikit_network-0.32.1.dist-info → scikit_network-0.33.0.dist-info}/RECORD +60 -60
  4. {scikit_network-0.32.1.dist-info → scikit_network-0.33.0.dist-info}/WHEEL +1 -1
  5. sknetwork/__init__.py +1 -1
  6. sknetwork/classification/diffusion.py +4 -3
  7. sknetwork/classification/knn.py +4 -3
  8. sknetwork/classification/metrics.py +3 -3
  9. sknetwork/classification/propagation.py +6 -5
  10. sknetwork/classification/vote.cp39-win_amd64.pyd +0 -0
  11. sknetwork/classification/vote.cpp +1 -1
  12. sknetwork/clustering/leiden.py +2 -1
  13. sknetwork/clustering/leiden_core.cp39-win_amd64.pyd +0 -0
  14. sknetwork/clustering/leiden_core.cpp +1 -1
  15. sknetwork/clustering/louvain.py +3 -3
  16. sknetwork/clustering/louvain_core.cp39-win_amd64.pyd +0 -0
  17. sknetwork/clustering/louvain_core.cpp +1 -1
  18. sknetwork/clustering/tests/test_kcenters.py +5 -37
  19. sknetwork/data/__init__.py +1 -1
  20. sknetwork/data/base.py +7 -2
  21. sknetwork/data/load.py +18 -21
  22. sknetwork/data/models.py +15 -15
  23. sknetwork/data/parse.py +19 -17
  24. sknetwork/data/tests/test_API.py +3 -3
  25. sknetwork/data/tests/test_base.py +2 -2
  26. sknetwork/data/tests/test_toy_graphs.py +33 -33
  27. sknetwork/data/toy_graphs.py +35 -43
  28. sknetwork/embedding/base.py +3 -0
  29. sknetwork/embedding/louvain_embedding.py +0 -26
  30. sknetwork/embedding/svd.py +0 -4
  31. sknetwork/embedding/tests/test_louvain_embedding.py +9 -4
  32. sknetwork/embedding/tests/test_svd.py +6 -0
  33. sknetwork/gnn/gnn_classifier.py +1 -1
  34. sknetwork/hierarchy/louvain_hierarchy.py +10 -6
  35. sknetwork/hierarchy/paris.cp39-win_amd64.pyd +0 -0
  36. sknetwork/hierarchy/paris.cpp +757 -755
  37. sknetwork/hierarchy/paris.pyx +4 -3
  38. sknetwork/hierarchy/tests/test_metrics.py +4 -4
  39. sknetwork/linalg/diteration.cp39-win_amd64.pyd +0 -0
  40. sknetwork/linalg/diteration.cpp +1 -1
  41. sknetwork/linalg/push.cp39-win_amd64.pyd +0 -0
  42. sknetwork/linalg/push.cpp +123 -123
  43. sknetwork/ranking/betweenness.cp39-win_amd64.pyd +0 -0
  44. sknetwork/ranking/betweenness.cpp +1 -1
  45. sknetwork/regression/diffusion.py +6 -4
  46. sknetwork/topology/cliques.cp39-win_amd64.pyd +0 -0
  47. sknetwork/topology/cliques.cpp +123 -123
  48. sknetwork/topology/core.cp39-win_amd64.pyd +0 -0
  49. sknetwork/topology/core.cpp +123 -123
  50. sknetwork/topology/minheap.cp39-win_amd64.pyd +0 -0
  51. sknetwork/topology/minheap.cpp +1 -1
  52. sknetwork/topology/triangles.cp39-win_amd64.pyd +0 -0
  53. sknetwork/topology/triangles.cpp +1 -1
  54. sknetwork/topology/weisfeiler_lehman_core.cp39-win_amd64.pyd +0 -0
  55. sknetwork/topology/weisfeiler_lehman_core.cpp +1 -1
  56. sknetwork/utils/__init__.py +1 -1
  57. sknetwork/utils/values.py +5 -3
  58. sknetwork/visualization/graphs.py +1 -1
  59. {scikit_network-0.32.1.dist-info → scikit_network-0.33.0.dist-info}/LICENSE +0 -0
  60. {scikit_network-0.32.1.dist-info → scikit_network-0.33.0.dist-info}/top_level.txt +0 -0
@@ -4,17 +4,17 @@
4
4
  {
5
5
  "distutils": {
6
6
  "depends": [
7
- "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-8iubbrn2\\cp39-win_amd64\\build\\venv\\lib\\site-packages\\numpy\\core\\include\\numpy\\arrayobject.h",
8
- "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-8iubbrn2\\cp39-win_amd64\\build\\venv\\lib\\site-packages\\numpy\\core\\include\\numpy\\arrayscalars.h",
9
- "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-8iubbrn2\\cp39-win_amd64\\build\\venv\\lib\\site-packages\\numpy\\core\\include\\numpy\\ndarrayobject.h",
10
- "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-8iubbrn2\\cp39-win_amd64\\build\\venv\\lib\\site-packages\\numpy\\core\\include\\numpy\\ndarraytypes.h",
11
- "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-8iubbrn2\\cp39-win_amd64\\build\\venv\\lib\\site-packages\\numpy\\core\\include\\numpy\\ufuncobject.h"
7
+ "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-2jqincfh\\cp39-win_amd64\\build\\venv\\lib\\site-packages\\numpy\\core\\include\\numpy\\arrayobject.h",
8
+ "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-2jqincfh\\cp39-win_amd64\\build\\venv\\lib\\site-packages\\numpy\\core\\include\\numpy\\arrayscalars.h",
9
+ "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-2jqincfh\\cp39-win_amd64\\build\\venv\\lib\\site-packages\\numpy\\core\\include\\numpy\\ndarrayobject.h",
10
+ "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-2jqincfh\\cp39-win_amd64\\build\\venv\\lib\\site-packages\\numpy\\core\\include\\numpy\\ndarraytypes.h",
11
+ "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-2jqincfh\\cp39-win_amd64\\build\\venv\\lib\\site-packages\\numpy\\core\\include\\numpy\\ufuncobject.h"
12
12
  ],
13
13
  "extra_compile_args": [
14
14
  "/d2FH4-"
15
15
  ],
16
16
  "include_dirs": [
17
- "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-8iubbrn2\\cp39-win_amd64\\build\\venv\\lib\\site-packages\\numpy\\core\\include"
17
+ "C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-2jqincfh\\cp39-win_amd64\\build\\venv\\lib\\site-packages\\numpy\\core\\include"
18
18
  ],
19
19
  "language": "c++",
20
20
  "name": "sknetwork.hierarchy.paris",
@@ -1693,7 +1693,7 @@ typedef struct {
1693
1693
 
1694
1694
  /* #### Code section: numeric_typedefs ### */
1695
1695
 
1696
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":730
1696
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":730
1697
1697
  * # in Cython to enable them only on the right systems.
1698
1698
  *
1699
1699
  * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<<
@@ -1702,7 +1702,7 @@ typedef struct {
1702
1702
  */
1703
1703
  typedef npy_int8 __pyx_t_5numpy_int8_t;
1704
1704
 
1705
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":731
1705
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":731
1706
1706
  *
1707
1707
  * ctypedef npy_int8 int8_t
1708
1708
  * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<<
@@ -1711,7 +1711,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t;
1711
1711
  */
1712
1712
  typedef npy_int16 __pyx_t_5numpy_int16_t;
1713
1713
 
1714
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":732
1714
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":732
1715
1715
  * ctypedef npy_int8 int8_t
1716
1716
  * ctypedef npy_int16 int16_t
1717
1717
  * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<<
@@ -1720,7 +1720,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t;
1720
1720
  */
1721
1721
  typedef npy_int32 __pyx_t_5numpy_int32_t;
1722
1722
 
1723
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":733
1723
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":733
1724
1724
  * ctypedef npy_int16 int16_t
1725
1725
  * ctypedef npy_int32 int32_t
1726
1726
  * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<<
@@ -1729,7 +1729,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t;
1729
1729
  */
1730
1730
  typedef npy_int64 __pyx_t_5numpy_int64_t;
1731
1731
 
1732
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":737
1732
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":737
1733
1733
  * #ctypedef npy_int128 int128_t
1734
1734
  *
1735
1735
  * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<<
@@ -1738,7 +1738,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t;
1738
1738
  */
1739
1739
  typedef npy_uint8 __pyx_t_5numpy_uint8_t;
1740
1740
 
1741
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":738
1741
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":738
1742
1742
  *
1743
1743
  * ctypedef npy_uint8 uint8_t
1744
1744
  * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<<
@@ -1747,7 +1747,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t;
1747
1747
  */
1748
1748
  typedef npy_uint16 __pyx_t_5numpy_uint16_t;
1749
1749
 
1750
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":739
1750
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":739
1751
1751
  * ctypedef npy_uint8 uint8_t
1752
1752
  * ctypedef npy_uint16 uint16_t
1753
1753
  * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<<
@@ -1756,7 +1756,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t;
1756
1756
  */
1757
1757
  typedef npy_uint32 __pyx_t_5numpy_uint32_t;
1758
1758
 
1759
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":740
1759
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":740
1760
1760
  * ctypedef npy_uint16 uint16_t
1761
1761
  * ctypedef npy_uint32 uint32_t
1762
1762
  * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<<
@@ -1765,7 +1765,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t;
1765
1765
  */
1766
1766
  typedef npy_uint64 __pyx_t_5numpy_uint64_t;
1767
1767
 
1768
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":744
1768
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":744
1769
1769
  * #ctypedef npy_uint128 uint128_t
1770
1770
  *
1771
1771
  * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<<
@@ -1774,7 +1774,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t;
1774
1774
  */
1775
1775
  typedef npy_float32 __pyx_t_5numpy_float32_t;
1776
1776
 
1777
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":745
1777
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":745
1778
1778
  *
1779
1779
  * ctypedef npy_float32 float32_t
1780
1780
  * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<<
@@ -1783,7 +1783,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t;
1783
1783
  */
1784
1784
  typedef npy_float64 __pyx_t_5numpy_float64_t;
1785
1785
 
1786
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":754
1786
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":754
1787
1787
  * # The int types are mapped a bit surprising --
1788
1788
  * # numpy.int corresponds to 'l' and numpy.long to 'q'
1789
1789
  * ctypedef npy_long int_t # <<<<<<<<<<<<<<
@@ -1792,7 +1792,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t;
1792
1792
  */
1793
1793
  typedef npy_long __pyx_t_5numpy_int_t;
1794
1794
 
1795
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":755
1795
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":755
1796
1796
  * # numpy.int corresponds to 'l' and numpy.long to 'q'
1797
1797
  * ctypedef npy_long int_t
1798
1798
  * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<<
@@ -1801,7 +1801,7 @@ typedef npy_long __pyx_t_5numpy_int_t;
1801
1801
  */
1802
1802
  typedef npy_longlong __pyx_t_5numpy_longlong_t;
1803
1803
 
1804
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":757
1804
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":757
1805
1805
  * ctypedef npy_longlong longlong_t
1806
1806
  *
1807
1807
  * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<<
@@ -1810,7 +1810,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t;
1810
1810
  */
1811
1811
  typedef npy_ulong __pyx_t_5numpy_uint_t;
1812
1812
 
1813
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":758
1813
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":758
1814
1814
  *
1815
1815
  * ctypedef npy_ulong uint_t
1816
1816
  * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<<
@@ -1819,7 +1819,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t;
1819
1819
  */
1820
1820
  typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;
1821
1821
 
1822
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":760
1822
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":760
1823
1823
  * ctypedef npy_ulonglong ulonglong_t
1824
1824
  *
1825
1825
  * ctypedef npy_intp intp_t # <<<<<<<<<<<<<<
@@ -1828,7 +1828,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;
1828
1828
  */
1829
1829
  typedef npy_intp __pyx_t_5numpy_intp_t;
1830
1830
 
1831
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":761
1831
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":761
1832
1832
  *
1833
1833
  * ctypedef npy_intp intp_t
1834
1834
  * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<<
@@ -1837,7 +1837,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t;
1837
1837
  */
1838
1838
  typedef npy_uintp __pyx_t_5numpy_uintp_t;
1839
1839
 
1840
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":763
1840
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":763
1841
1841
  * ctypedef npy_uintp uintp_t
1842
1842
  *
1843
1843
  * ctypedef npy_double float_t # <<<<<<<<<<<<<<
@@ -1846,7 +1846,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t;
1846
1846
  */
1847
1847
  typedef npy_double __pyx_t_5numpy_float_t;
1848
1848
 
1849
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":764
1849
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":764
1850
1850
  *
1851
1851
  * ctypedef npy_double float_t
1852
1852
  * ctypedef npy_double double_t # <<<<<<<<<<<<<<
@@ -1855,7 +1855,7 @@ typedef npy_double __pyx_t_5numpy_float_t;
1855
1855
  */
1856
1856
  typedef npy_double __pyx_t_5numpy_double_t;
1857
1857
 
1858
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":765
1858
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":765
1859
1859
  * ctypedef npy_double float_t
1860
1860
  * ctypedef npy_double double_t
1861
1861
  * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<<
@@ -1897,7 +1897,7 @@ struct __pyx_MemviewEnum_obj;
1897
1897
  struct __pyx_memoryview_obj;
1898
1898
  struct __pyx_memoryviewslice_obj;
1899
1899
 
1900
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":767
1900
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":767
1901
1901
  * ctypedef npy_longdouble longdouble_t
1902
1902
  *
1903
1903
  * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<<
@@ -1906,7 +1906,7 @@ struct __pyx_memoryviewslice_obj;
1906
1906
  */
1907
1907
  typedef npy_cfloat __pyx_t_5numpy_cfloat_t;
1908
1908
 
1909
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":768
1909
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":768
1910
1910
  *
1911
1911
  * ctypedef npy_cfloat cfloat_t
1912
1912
  * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<<
@@ -1915,7 +1915,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t;
1915
1915
  */
1916
1916
  typedef npy_cdouble __pyx_t_5numpy_cdouble_t;
1917
1917
 
1918
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":769
1918
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":769
1919
1919
  * ctypedef npy_cfloat cfloat_t
1920
1920
  * ctypedef npy_cdouble cdouble_t
1921
1921
  * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<<
@@ -1924,7 +1924,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t;
1924
1924
  */
1925
1925
  typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t;
1926
1926
 
1927
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":771
1927
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":771
1928
1928
  * ctypedef npy_clongdouble clongdouble_t
1929
1929
  *
1930
1930
  * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<<
@@ -1935,7 +1935,7 @@ typedef npy_cdouble __pyx_t_5numpy_complex_t;
1935
1935
  struct __pyx_ctuple_int__and_int;
1936
1936
  typedef struct __pyx_ctuple_int__and_int __pyx_ctuple_int__and_int;
1937
1937
 
1938
- /* "sknetwork/hierarchy/paris.pyx":251
1938
+ /* "sknetwork/hierarchy/paris.pyx":252
1939
1939
  * adjacency.indices, adjacency.indptr)
1940
1940
  *
1941
1941
  * cdef vector[(int, int)] connected_components # <<<<<<<<<<<<<<
@@ -3684,7 +3684,7 @@ static const char __pyx_k__7[] = ")";
3684
3684
  static const char __pyx_k_gc[] = "gc";
3685
3685
  static const char __pyx_k_id[] = "id";
3686
3686
  static const char __pyx_k_np[] = "np";
3687
- static const char __pyx_k__36[] = "?";
3687
+ static const char __pyx_k__37[] = "?";
3688
3688
  static const char __pyx_k_abc[] = "abc";
3689
3689
  static const char __pyx_k_and[] = " and ";
3690
3690
  static const char __pyx_k_any[] = "any";
@@ -3826,6 +3826,7 @@ static const char __pyx_k_aggregate_graph[] = "aggregate_graph";
3826
3826
  static const char __pyx_k_allocate_buffer[] = "allocate_buffer";
3827
3827
  static const char __pyx_k_collections_abc[] = "collections.abc";
3828
3828
  static const char __pyx_k_dtype_is_object[] = "dtype_is_object";
3829
+ static const char __pyx_k_force_bipartite[] = "force_bipartite";
3829
3830
  static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError";
3830
3831
  static const char __pyx_k_setstate_cython[] = "__setstate_cython__";
3831
3832
  static const char __pyx_k_nearest_neighbor[] = "nearest_neighbor";
@@ -3944,7 +3945,7 @@ static int __pyx_pf_9sknetwork_9hierarchy_5paris_14AggregateGraph_18cluster_in_w
3944
3945
  static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_14AggregateGraph_4__reduce_cython__(struct __pyx_obj_9sknetwork_9hierarchy_5paris_AggregateGraph *__pyx_v_self); /* proto */
3945
3946
  static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_14AggregateGraph_6__setstate_cython__(struct __pyx_obj_9sknetwork_9hierarchy_5paris_AggregateGraph *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
3946
3947
  static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_weights, PyObject *__pyx_v_reorder); /* proto */
3947
- static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_matrix); /* proto */
3948
+ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_matrix, PyObject *__pyx_v_force_bipartite); /* proto */
3948
3949
  static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris___pyx_unpickle_AggregateGraph(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
3949
3950
  static PyObject *__pyx_tp_new_9sknetwork_9hierarchy_5paris_AggregateGraph(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
3950
3951
  static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
@@ -4082,7 +4083,7 @@ typedef struct {
4082
4083
  PyObject *__pyx_n_s_View_MemoryView;
4083
4084
  PyObject *__pyx_kp_u__2;
4084
4085
  PyObject *__pyx_n_s__3;
4085
- PyObject *__pyx_n_s__36;
4086
+ PyObject *__pyx_n_s__37;
4086
4087
  PyObject *__pyx_kp_u__6;
4087
4088
  PyObject *__pyx_kp_u__7;
4088
4089
  PyObject *__pyx_n_s_abc;
@@ -4129,6 +4130,7 @@ typedef struct {
4129
4130
  PyObject *__pyx_n_s_error;
4130
4131
  PyObject *__pyx_n_s_fit;
4131
4132
  PyObject *__pyx_n_s_flags;
4133
+ PyObject *__pyx_n_s_force_bipartite;
4132
4134
  PyObject *__pyx_n_s_format;
4133
4135
  PyObject *__pyx_n_s_fortran;
4134
4136
  PyObject *__pyx_n_u_fortran;
@@ -4278,13 +4280,14 @@ typedef struct {
4278
4280
  PyObject *__pyx_tuple__30;
4279
4281
  PyObject *__pyx_tuple__32;
4280
4282
  PyObject *__pyx_tuple__33;
4283
+ PyObject *__pyx_tuple__35;
4281
4284
  PyObject *__pyx_codeobj__23;
4282
4285
  PyObject *__pyx_codeobj__25;
4283
4286
  PyObject *__pyx_codeobj__27;
4284
4287
  PyObject *__pyx_codeobj__29;
4285
4288
  PyObject *__pyx_codeobj__31;
4286
4289
  PyObject *__pyx_codeobj__34;
4287
- PyObject *__pyx_codeobj__35;
4290
+ PyObject *__pyx_codeobj__36;
4288
4291
  } __pyx_mstate;
4289
4292
 
4290
4293
  #if CYTHON_USE_MODULE_STATE
@@ -4402,7 +4405,7 @@ static int __pyx_m_clear(PyObject *m) {
4402
4405
  Py_CLEAR(clear_module_state->__pyx_n_s_View_MemoryView);
4403
4406
  Py_CLEAR(clear_module_state->__pyx_kp_u__2);
4404
4407
  Py_CLEAR(clear_module_state->__pyx_n_s__3);
4405
- Py_CLEAR(clear_module_state->__pyx_n_s__36);
4408
+ Py_CLEAR(clear_module_state->__pyx_n_s__37);
4406
4409
  Py_CLEAR(clear_module_state->__pyx_kp_u__6);
4407
4410
  Py_CLEAR(clear_module_state->__pyx_kp_u__7);
4408
4411
  Py_CLEAR(clear_module_state->__pyx_n_s_abc);
@@ -4449,6 +4452,7 @@ static int __pyx_m_clear(PyObject *m) {
4449
4452
  Py_CLEAR(clear_module_state->__pyx_n_s_error);
4450
4453
  Py_CLEAR(clear_module_state->__pyx_n_s_fit);
4451
4454
  Py_CLEAR(clear_module_state->__pyx_n_s_flags);
4455
+ Py_CLEAR(clear_module_state->__pyx_n_s_force_bipartite);
4452
4456
  Py_CLEAR(clear_module_state->__pyx_n_s_format);
4453
4457
  Py_CLEAR(clear_module_state->__pyx_n_s_fortran);
4454
4458
  Py_CLEAR(clear_module_state->__pyx_n_u_fortran);
@@ -4598,13 +4602,14 @@ static int __pyx_m_clear(PyObject *m) {
4598
4602
  Py_CLEAR(clear_module_state->__pyx_tuple__30);
4599
4603
  Py_CLEAR(clear_module_state->__pyx_tuple__32);
4600
4604
  Py_CLEAR(clear_module_state->__pyx_tuple__33);
4605
+ Py_CLEAR(clear_module_state->__pyx_tuple__35);
4601
4606
  Py_CLEAR(clear_module_state->__pyx_codeobj__23);
4602
4607
  Py_CLEAR(clear_module_state->__pyx_codeobj__25);
4603
4608
  Py_CLEAR(clear_module_state->__pyx_codeobj__27);
4604
4609
  Py_CLEAR(clear_module_state->__pyx_codeobj__29);
4605
4610
  Py_CLEAR(clear_module_state->__pyx_codeobj__31);
4606
4611
  Py_CLEAR(clear_module_state->__pyx_codeobj__34);
4607
- Py_CLEAR(clear_module_state->__pyx_codeobj__35);
4612
+ Py_CLEAR(clear_module_state->__pyx_codeobj__36);
4608
4613
  return 0;
4609
4614
  }
4610
4615
  #endif
@@ -4700,7 +4705,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
4700
4705
  Py_VISIT(traverse_module_state->__pyx_n_s_View_MemoryView);
4701
4706
  Py_VISIT(traverse_module_state->__pyx_kp_u__2);
4702
4707
  Py_VISIT(traverse_module_state->__pyx_n_s__3);
4703
- Py_VISIT(traverse_module_state->__pyx_n_s__36);
4708
+ Py_VISIT(traverse_module_state->__pyx_n_s__37);
4704
4709
  Py_VISIT(traverse_module_state->__pyx_kp_u__6);
4705
4710
  Py_VISIT(traverse_module_state->__pyx_kp_u__7);
4706
4711
  Py_VISIT(traverse_module_state->__pyx_n_s_abc);
@@ -4747,6 +4752,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
4747
4752
  Py_VISIT(traverse_module_state->__pyx_n_s_error);
4748
4753
  Py_VISIT(traverse_module_state->__pyx_n_s_fit);
4749
4754
  Py_VISIT(traverse_module_state->__pyx_n_s_flags);
4755
+ Py_VISIT(traverse_module_state->__pyx_n_s_force_bipartite);
4750
4756
  Py_VISIT(traverse_module_state->__pyx_n_s_format);
4751
4757
  Py_VISIT(traverse_module_state->__pyx_n_s_fortran);
4752
4758
  Py_VISIT(traverse_module_state->__pyx_n_u_fortran);
@@ -4896,13 +4902,14 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
4896
4902
  Py_VISIT(traverse_module_state->__pyx_tuple__30);
4897
4903
  Py_VISIT(traverse_module_state->__pyx_tuple__32);
4898
4904
  Py_VISIT(traverse_module_state->__pyx_tuple__33);
4905
+ Py_VISIT(traverse_module_state->__pyx_tuple__35);
4899
4906
  Py_VISIT(traverse_module_state->__pyx_codeobj__23);
4900
4907
  Py_VISIT(traverse_module_state->__pyx_codeobj__25);
4901
4908
  Py_VISIT(traverse_module_state->__pyx_codeobj__27);
4902
4909
  Py_VISIT(traverse_module_state->__pyx_codeobj__29);
4903
4910
  Py_VISIT(traverse_module_state->__pyx_codeobj__31);
4904
4911
  Py_VISIT(traverse_module_state->__pyx_codeobj__34);
4905
- Py_VISIT(traverse_module_state->__pyx_codeobj__35);
4912
+ Py_VISIT(traverse_module_state->__pyx_codeobj__36);
4906
4913
  return 0;
4907
4914
  }
4908
4915
  #endif
@@ -5034,7 +5041,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
5034
5041
  #define __pyx_n_s_View_MemoryView __pyx_mstate_global->__pyx_n_s_View_MemoryView
5035
5042
  #define __pyx_kp_u__2 __pyx_mstate_global->__pyx_kp_u__2
5036
5043
  #define __pyx_n_s__3 __pyx_mstate_global->__pyx_n_s__3
5037
- #define __pyx_n_s__36 __pyx_mstate_global->__pyx_n_s__36
5044
+ #define __pyx_n_s__37 __pyx_mstate_global->__pyx_n_s__37
5038
5045
  #define __pyx_kp_u__6 __pyx_mstate_global->__pyx_kp_u__6
5039
5046
  #define __pyx_kp_u__7 __pyx_mstate_global->__pyx_kp_u__7
5040
5047
  #define __pyx_n_s_abc __pyx_mstate_global->__pyx_n_s_abc
@@ -5081,6 +5088,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
5081
5088
  #define __pyx_n_s_error __pyx_mstate_global->__pyx_n_s_error
5082
5089
  #define __pyx_n_s_fit __pyx_mstate_global->__pyx_n_s_fit
5083
5090
  #define __pyx_n_s_flags __pyx_mstate_global->__pyx_n_s_flags
5091
+ #define __pyx_n_s_force_bipartite __pyx_mstate_global->__pyx_n_s_force_bipartite
5084
5092
  #define __pyx_n_s_format __pyx_mstate_global->__pyx_n_s_format
5085
5093
  #define __pyx_n_s_fortran __pyx_mstate_global->__pyx_n_s_fortran
5086
5094
  #define __pyx_n_u_fortran __pyx_mstate_global->__pyx_n_u_fortran
@@ -5230,13 +5238,14 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
5230
5238
  #define __pyx_tuple__30 __pyx_mstate_global->__pyx_tuple__30
5231
5239
  #define __pyx_tuple__32 __pyx_mstate_global->__pyx_tuple__32
5232
5240
  #define __pyx_tuple__33 __pyx_mstate_global->__pyx_tuple__33
5241
+ #define __pyx_tuple__35 __pyx_mstate_global->__pyx_tuple__35
5233
5242
  #define __pyx_codeobj__23 __pyx_mstate_global->__pyx_codeobj__23
5234
5243
  #define __pyx_codeobj__25 __pyx_mstate_global->__pyx_codeobj__25
5235
5244
  #define __pyx_codeobj__27 __pyx_mstate_global->__pyx_codeobj__27
5236
5245
  #define __pyx_codeobj__29 __pyx_mstate_global->__pyx_codeobj__29
5237
5246
  #define __pyx_codeobj__31 __pyx_mstate_global->__pyx_codeobj__31
5238
5247
  #define __pyx_codeobj__34 __pyx_mstate_global->__pyx_codeobj__34
5239
- #define __pyx_codeobj__35 __pyx_mstate_global->__pyx_codeobj__35
5248
+ #define __pyx_codeobj__36 __pyx_mstate_global->__pyx_codeobj__36
5240
5249
  /* #### Code section: module_code ### */
5241
5250
 
5242
5251
  /* "View.MemoryView":131
@@ -18865,7 +18874,7 @@ static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *__
18865
18874
  return __pyx_r;
18866
18875
  }
18867
18876
 
18868
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":245
18877
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":245
18869
18878
  *
18870
18879
  * @property
18871
18880
  * cdef inline PyObject* base(self) nogil: # <<<<<<<<<<<<<<
@@ -18876,7 +18885,7 @@ static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *__
18876
18885
  static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base_base(PyArrayObject *__pyx_v_self) {
18877
18886
  PyObject *__pyx_r;
18878
18887
 
18879
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":248
18888
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":248
18880
18889
  * """Returns a borrowed reference to the object owning the data/memory.
18881
18890
  * """
18882
18891
  * return PyArray_BASE(self) # <<<<<<<<<<<<<<
@@ -18886,7 +18895,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base_base(PyArrayObject
18886
18895
  __pyx_r = PyArray_BASE(__pyx_v_self);
18887
18896
  goto __pyx_L0;
18888
18897
 
18889
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":245
18898
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":245
18890
18899
  *
18891
18900
  * @property
18892
18901
  * cdef inline PyObject* base(self) nogil: # <<<<<<<<<<<<<<
@@ -18899,7 +18908,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base_base(PyArrayObject
18899
18908
  return __pyx_r;
18900
18909
  }
18901
18910
 
18902
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":251
18911
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":251
18903
18912
  *
18904
18913
  * @property
18905
18914
  * cdef inline dtype descr(self): # <<<<<<<<<<<<<<
@@ -18913,7 +18922,7 @@ static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr_descr(PyArray
18913
18922
  PyArray_Descr *__pyx_t_1;
18914
18923
  __Pyx_RefNannySetupContext("descr", 1);
18915
18924
 
18916
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":254
18925
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":254
18917
18926
  * """Returns an owned reference to the dtype of the array.
18918
18927
  * """
18919
18928
  * return <dtype>PyArray_DESCR(self) # <<<<<<<<<<<<<<
@@ -18926,7 +18935,7 @@ static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr_descr(PyArray
18926
18935
  __pyx_r = ((PyArray_Descr *)__pyx_t_1);
18927
18936
  goto __pyx_L0;
18928
18937
 
18929
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":251
18938
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":251
18930
18939
  *
18931
18940
  * @property
18932
18941
  * cdef inline dtype descr(self): # <<<<<<<<<<<<<<
@@ -18941,7 +18950,7 @@ static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr_descr(PyArray
18941
18950
  return __pyx_r;
18942
18951
  }
18943
18952
 
18944
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":257
18953
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":257
18945
18954
  *
18946
18955
  * @property
18947
18956
  * cdef inline int ndim(self) nogil: # <<<<<<<<<<<<<<
@@ -18952,7 +18961,7 @@ static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr_descr(PyArray
18952
18961
  static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim_ndim(PyArrayObject *__pyx_v_self) {
18953
18962
  int __pyx_r;
18954
18963
 
18955
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":260
18964
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":260
18956
18965
  * """Returns the number of dimensions in the array.
18957
18966
  * """
18958
18967
  * return PyArray_NDIM(self) # <<<<<<<<<<<<<<
@@ -18962,7 +18971,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim_ndim(PyArrayObject *__pyx
18962
18971
  __pyx_r = PyArray_NDIM(__pyx_v_self);
18963
18972
  goto __pyx_L0;
18964
18973
 
18965
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":257
18974
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":257
18966
18975
  *
18967
18976
  * @property
18968
18977
  * cdef inline int ndim(self) nogil: # <<<<<<<<<<<<<<
@@ -18975,7 +18984,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim_ndim(PyArrayObject *__pyx
18975
18984
  return __pyx_r;
18976
18985
  }
18977
18986
 
18978
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":263
18987
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":263
18979
18988
  *
18980
18989
  * @property
18981
18990
  * cdef inline npy_intp *shape(self) nogil: # <<<<<<<<<<<<<<
@@ -18986,7 +18995,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim_ndim(PyArrayObject *__pyx
18986
18995
  static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape_shape(PyArrayObject *__pyx_v_self) {
18987
18996
  npy_intp *__pyx_r;
18988
18997
 
18989
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":268
18998
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":268
18990
18999
  * Can return NULL for 0-dimensional arrays.
18991
19000
  * """
18992
19001
  * return PyArray_DIMS(self) # <<<<<<<<<<<<<<
@@ -18996,7 +19005,7 @@ static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape_shape(PyArrayObjec
18996
19005
  __pyx_r = PyArray_DIMS(__pyx_v_self);
18997
19006
  goto __pyx_L0;
18998
19007
 
18999
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":263
19008
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":263
19000
19009
  *
19001
19010
  * @property
19002
19011
  * cdef inline npy_intp *shape(self) nogil: # <<<<<<<<<<<<<<
@@ -19009,7 +19018,7 @@ static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape_shape(PyArrayObjec
19009
19018
  return __pyx_r;
19010
19019
  }
19011
19020
 
19012
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":271
19021
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":271
19013
19022
  *
19014
19023
  * @property
19015
19024
  * cdef inline npy_intp *strides(self) nogil: # <<<<<<<<<<<<<<
@@ -19020,7 +19029,7 @@ static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape_shape(PyArrayObjec
19020
19029
  static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides_strides(PyArrayObject *__pyx_v_self) {
19021
19030
  npy_intp *__pyx_r;
19022
19031
 
19023
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":275
19032
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":275
19024
19033
  * The number of elements matches the number of dimensions of the array (ndim).
19025
19034
  * """
19026
19035
  * return PyArray_STRIDES(self) # <<<<<<<<<<<<<<
@@ -19030,7 +19039,7 @@ static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides_strides(PyArrayO
19030
19039
  __pyx_r = PyArray_STRIDES(__pyx_v_self);
19031
19040
  goto __pyx_L0;
19032
19041
 
19033
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":271
19042
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":271
19034
19043
  *
19035
19044
  * @property
19036
19045
  * cdef inline npy_intp *strides(self) nogil: # <<<<<<<<<<<<<<
@@ -19043,7 +19052,7 @@ static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides_strides(PyArrayO
19043
19052
  return __pyx_r;
19044
19053
  }
19045
19054
 
19046
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":278
19055
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":278
19047
19056
  *
19048
19057
  * @property
19049
19058
  * cdef inline npy_intp size(self) nogil: # <<<<<<<<<<<<<<
@@ -19054,7 +19063,7 @@ static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides_strides(PyArrayO
19054
19063
  static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size_size(PyArrayObject *__pyx_v_self) {
19055
19064
  npy_intp __pyx_r;
19056
19065
 
19057
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":281
19066
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":281
19058
19067
  * """Returns the total size (in number of elements) of the array.
19059
19068
  * """
19060
19069
  * return PyArray_SIZE(self) # <<<<<<<<<<<<<<
@@ -19064,7 +19073,7 @@ static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size_size(PyArrayObject *
19064
19073
  __pyx_r = PyArray_SIZE(__pyx_v_self);
19065
19074
  goto __pyx_L0;
19066
19075
 
19067
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":278
19076
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":278
19068
19077
  *
19069
19078
  * @property
19070
19079
  * cdef inline npy_intp size(self) nogil: # <<<<<<<<<<<<<<
@@ -19077,7 +19086,7 @@ static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size_size(PyArrayObject *
19077
19086
  return __pyx_r;
19078
19087
  }
19079
19088
 
19080
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":284
19089
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":284
19081
19090
  *
19082
19091
  * @property
19083
19092
  * cdef inline char* data(self) nogil: # <<<<<<<<<<<<<<
@@ -19088,7 +19097,7 @@ static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size_size(PyArrayObject *
19088
19097
  static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data_data(PyArrayObject *__pyx_v_self) {
19089
19098
  char *__pyx_r;
19090
19099
 
19091
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":290
19100
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":290
19092
19101
  * of `PyArray_DATA()` instead, which returns a 'void*'.
19093
19102
  * """
19094
19103
  * return PyArray_BYTES(self) # <<<<<<<<<<<<<<
@@ -19098,7 +19107,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data_data(PyArrayObject *__p
19098
19107
  __pyx_r = PyArray_BYTES(__pyx_v_self);
19099
19108
  goto __pyx_L0;
19100
19109
 
19101
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":284
19110
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":284
19102
19111
  *
19103
19112
  * @property
19104
19113
  * cdef inline char* data(self) nogil: # <<<<<<<<<<<<<<
@@ -19111,7 +19120,7 @@ static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data_data(PyArrayObject *__p
19111
19120
  return __pyx_r;
19112
19121
  }
19113
19122
 
19114
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":773
19123
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":773
19115
19124
  * ctypedef npy_cdouble complex_t
19116
19125
  *
19117
19126
  * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<<
@@ -19128,7 +19137,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__
19128
19137
  int __pyx_clineno = 0;
19129
19138
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 1);
19130
19139
 
19131
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":774
19140
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":774
19132
19141
  *
19133
19142
  * cdef inline object PyArray_MultiIterNew1(a):
19134
19143
  * return PyArray_MultiIterNew(1, <void*>a) # <<<<<<<<<<<<<<
@@ -19142,7 +19151,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__
19142
19151
  __pyx_t_1 = 0;
19143
19152
  goto __pyx_L0;
19144
19153
 
19145
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":773
19154
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":773
19146
19155
  * ctypedef npy_cdouble complex_t
19147
19156
  *
19148
19157
  * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<<
@@ -19161,7 +19170,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__
19161
19170
  return __pyx_r;
19162
19171
  }
19163
19172
 
19164
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":776
19173
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":776
19165
19174
  * return PyArray_MultiIterNew(1, <void*>a)
19166
19175
  *
19167
19176
  * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<<
@@ -19178,7 +19187,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__
19178
19187
  int __pyx_clineno = 0;
19179
19188
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 1);
19180
19189
 
19181
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":777
19190
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":777
19182
19191
  *
19183
19192
  * cdef inline object PyArray_MultiIterNew2(a, b):
19184
19193
  * return PyArray_MultiIterNew(2, <void*>a, <void*>b) # <<<<<<<<<<<<<<
@@ -19192,7 +19201,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__
19192
19201
  __pyx_t_1 = 0;
19193
19202
  goto __pyx_L0;
19194
19203
 
19195
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":776
19204
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":776
19196
19205
  * return PyArray_MultiIterNew(1, <void*>a)
19197
19206
  *
19198
19207
  * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<<
@@ -19211,7 +19220,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__
19211
19220
  return __pyx_r;
19212
19221
  }
19213
19222
 
19214
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":779
19223
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":779
19215
19224
  * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
19216
19225
  *
19217
19226
  * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<<
@@ -19228,7 +19237,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__
19228
19237
  int __pyx_clineno = 0;
19229
19238
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 1);
19230
19239
 
19231
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":780
19240
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":780
19232
19241
  *
19233
19242
  * cdef inline object PyArray_MultiIterNew3(a, b, c):
19234
19243
  * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c) # <<<<<<<<<<<<<<
@@ -19242,7 +19251,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__
19242
19251
  __pyx_t_1 = 0;
19243
19252
  goto __pyx_L0;
19244
19253
 
19245
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":779
19254
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":779
19246
19255
  * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
19247
19256
  *
19248
19257
  * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<<
@@ -19261,7 +19270,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__
19261
19270
  return __pyx_r;
19262
19271
  }
19263
19272
 
19264
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":782
19273
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":782
19265
19274
  * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
19266
19275
  *
19267
19276
  * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<<
@@ -19278,7 +19287,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__
19278
19287
  int __pyx_clineno = 0;
19279
19288
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 1);
19280
19289
 
19281
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":783
19290
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":783
19282
19291
  *
19283
19292
  * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
19284
19293
  * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d) # <<<<<<<<<<<<<<
@@ -19292,7 +19301,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__
19292
19301
  __pyx_t_1 = 0;
19293
19302
  goto __pyx_L0;
19294
19303
 
19295
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":782
19304
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":782
19296
19305
  * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
19297
19306
  *
19298
19307
  * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<<
@@ -19311,7 +19320,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__
19311
19320
  return __pyx_r;
19312
19321
  }
19313
19322
 
19314
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":785
19323
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":785
19315
19324
  * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
19316
19325
  *
19317
19326
  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<<
@@ -19328,7 +19337,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__
19328
19337
  int __pyx_clineno = 0;
19329
19338
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 1);
19330
19339
 
19331
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":786
19340
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":786
19332
19341
  *
19333
19342
  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
19334
19343
  * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e) # <<<<<<<<<<<<<<
@@ -19342,7 +19351,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__
19342
19351
  __pyx_t_1 = 0;
19343
19352
  goto __pyx_L0;
19344
19353
 
19345
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":785
19354
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":785
19346
19355
  * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
19347
19356
  *
19348
19357
  * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<<
@@ -19361,7 +19370,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__
19361
19370
  return __pyx_r;
19362
19371
  }
19363
19372
 
19364
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":788
19373
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":788
19365
19374
  * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
19366
19375
  *
19367
19376
  * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<<
@@ -19375,7 +19384,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__
19375
19384
  int __pyx_t_1;
19376
19385
  __Pyx_RefNannySetupContext("PyDataType_SHAPE", 1);
19377
19386
 
19378
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":789
19387
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":789
19379
19388
  *
19380
19389
  * cdef inline tuple PyDataType_SHAPE(dtype d):
19381
19390
  * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<<
@@ -19385,7 +19394,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__
19385
19394
  __pyx_t_1 = PyDataType_HASSUBARRAY(__pyx_v_d);
19386
19395
  if (__pyx_t_1) {
19387
19396
 
19388
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":790
19397
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":790
19389
19398
  * cdef inline tuple PyDataType_SHAPE(dtype d):
19390
19399
  * if PyDataType_HASSUBARRAY(d):
19391
19400
  * return <tuple>d.subarray.shape # <<<<<<<<<<<<<<
@@ -19397,7 +19406,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__
19397
19406
  __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape);
19398
19407
  goto __pyx_L0;
19399
19408
 
19400
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":789
19409
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":789
19401
19410
  *
19402
19411
  * cdef inline tuple PyDataType_SHAPE(dtype d):
19403
19412
  * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<<
@@ -19406,7 +19415,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__
19406
19415
  */
19407
19416
  }
19408
19417
 
19409
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":792
19418
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":792
19410
19419
  * return <tuple>d.subarray.shape
19411
19420
  * else:
19412
19421
  * return () # <<<<<<<<<<<<<<
@@ -19420,7 +19429,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__
19420
19429
  goto __pyx_L0;
19421
19430
  }
19422
19431
 
19423
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":788
19432
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":788
19424
19433
  * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
19425
19434
  *
19426
19435
  * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<<
@@ -19435,7 +19444,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__
19435
19444
  return __pyx_r;
19436
19445
  }
19437
19446
 
19438
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":968
19447
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":968
19439
19448
  * int _import_umath() except -1
19440
19449
  *
19441
19450
  * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<<
@@ -19449,7 +19458,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a
19449
19458
  const char *__pyx_filename = NULL;
19450
19459
  int __pyx_clineno = 0;
19451
19460
 
19452
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":969
19461
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":969
19453
19462
  *
19454
19463
  * cdef inline void set_array_base(ndarray arr, object base):
19455
19464
  * Py_INCREF(base) # important to do this before stealing the reference below! # <<<<<<<<<<<<<<
@@ -19458,7 +19467,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a
19458
19467
  */
19459
19468
  Py_INCREF(__pyx_v_base);
19460
19469
 
19461
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":970
19470
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":970
19462
19471
  * cdef inline void set_array_base(ndarray arr, object base):
19463
19472
  * Py_INCREF(base) # important to do this before stealing the reference below!
19464
19473
  * PyArray_SetBaseObject(arr, base) # <<<<<<<<<<<<<<
@@ -19467,7 +19476,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a
19467
19476
  */
19468
19477
  __pyx_t_1 = PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(2, 970, __pyx_L1_error)
19469
19478
 
19470
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":968
19479
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":968
19471
19480
  * int _import_umath() except -1
19472
19481
  *
19473
19482
  * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<<
@@ -19482,7 +19491,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a
19482
19491
  __pyx_L0:;
19483
19492
  }
19484
19493
 
19485
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":972
19494
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":972
19486
19495
  * PyArray_SetBaseObject(arr, base)
19487
19496
  *
19488
19497
  * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<<
@@ -19497,7 +19506,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py
19497
19506
  int __pyx_t_1;
19498
19507
  __Pyx_RefNannySetupContext("get_array_base", 1);
19499
19508
 
19500
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":973
19509
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":973
19501
19510
  *
19502
19511
  * cdef inline object get_array_base(ndarray arr):
19503
19512
  * base = PyArray_BASE(arr) # <<<<<<<<<<<<<<
@@ -19506,7 +19515,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py
19506
19515
  */
19507
19516
  __pyx_v_base = PyArray_BASE(__pyx_v_arr);
19508
19517
 
19509
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":974
19518
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":974
19510
19519
  * cdef inline object get_array_base(ndarray arr):
19511
19520
  * base = PyArray_BASE(arr)
19512
19521
  * if base is NULL: # <<<<<<<<<<<<<<
@@ -19516,7 +19525,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py
19516
19525
  __pyx_t_1 = (__pyx_v_base == NULL);
19517
19526
  if (__pyx_t_1) {
19518
19527
 
19519
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":975
19528
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":975
19520
19529
  * base = PyArray_BASE(arr)
19521
19530
  * if base is NULL:
19522
19531
  * return None # <<<<<<<<<<<<<<
@@ -19527,7 +19536,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py
19527
19536
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
19528
19537
  goto __pyx_L0;
19529
19538
 
19530
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":974
19539
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":974
19531
19540
  * cdef inline object get_array_base(ndarray arr):
19532
19541
  * base = PyArray_BASE(arr)
19533
19542
  * if base is NULL: # <<<<<<<<<<<<<<
@@ -19536,7 +19545,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py
19536
19545
  */
19537
19546
  }
19538
19547
 
19539
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":976
19548
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":976
19540
19549
  * if base is NULL:
19541
19550
  * return None
19542
19551
  * return <object>base # <<<<<<<<<<<<<<
@@ -19548,7 +19557,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py
19548
19557
  __pyx_r = ((PyObject *)__pyx_v_base);
19549
19558
  goto __pyx_L0;
19550
19559
 
19551
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":972
19560
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":972
19552
19561
  * PyArray_SetBaseObject(arr, base)
19553
19562
  *
19554
19563
  * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<<
@@ -19563,7 +19572,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py
19563
19572
  return __pyx_r;
19564
19573
  }
19565
19574
 
19566
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":980
19575
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":980
19567
19576
  * # Versions of the import_* functions which are more suitable for
19568
19577
  * # Cython code.
19569
19578
  * cdef inline int import_array() except -1: # <<<<<<<<<<<<<<
@@ -19587,7 +19596,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
19587
19596
  int __pyx_clineno = 0;
19588
19597
  __Pyx_RefNannySetupContext("import_array", 1);
19589
19598
 
19590
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":981
19599
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":981
19591
19600
  * # Cython code.
19592
19601
  * cdef inline int import_array() except -1:
19593
19602
  * try: # <<<<<<<<<<<<<<
@@ -19603,7 +19612,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
19603
19612
  __Pyx_XGOTREF(__pyx_t_3);
19604
19613
  /*try:*/ {
19605
19614
 
19606
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":982
19615
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":982
19607
19616
  * cdef inline int import_array() except -1:
19608
19617
  * try:
19609
19618
  * __pyx_import_array() # <<<<<<<<<<<<<<
@@ -19612,7 +19621,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
19612
19621
  */
19613
19622
  __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 982, __pyx_L3_error)
19614
19623
 
19615
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":981
19624
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":981
19616
19625
  * # Cython code.
19617
19626
  * cdef inline int import_array() except -1:
19618
19627
  * try: # <<<<<<<<<<<<<<
@@ -19626,7 +19635,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
19626
19635
  goto __pyx_L8_try_end;
19627
19636
  __pyx_L3_error:;
19628
19637
 
19629
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":983
19638
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":983
19630
19639
  * try:
19631
19640
  * __pyx_import_array()
19632
19641
  * except Exception: # <<<<<<<<<<<<<<
@@ -19641,7 +19650,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
19641
19650
  __Pyx_XGOTREF(__pyx_t_6);
19642
19651
  __Pyx_XGOTREF(__pyx_t_7);
19643
19652
 
19644
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":984
19653
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":984
19645
19654
  * __pyx_import_array()
19646
19655
  * except Exception:
19647
19656
  * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<<
@@ -19656,7 +19665,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
19656
19665
  }
19657
19666
  goto __pyx_L5_except_error;
19658
19667
 
19659
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":981
19668
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":981
19660
19669
  * # Cython code.
19661
19670
  * cdef inline int import_array() except -1:
19662
19671
  * try: # <<<<<<<<<<<<<<
@@ -19672,7 +19681,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
19672
19681
  __pyx_L8_try_end:;
19673
19682
  }
19674
19683
 
19675
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":980
19684
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":980
19676
19685
  * # Versions of the import_* functions which are more suitable for
19677
19686
  * # Cython code.
19678
19687
  * cdef inline int import_array() except -1: # <<<<<<<<<<<<<<
@@ -19695,7 +19704,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
19695
19704
  return __pyx_r;
19696
19705
  }
19697
19706
 
19698
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":986
19707
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":986
19699
19708
  * raise ImportError("numpy.core.multiarray failed to import")
19700
19709
  *
19701
19710
  * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<<
@@ -19719,7 +19728,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
19719
19728
  int __pyx_clineno = 0;
19720
19729
  __Pyx_RefNannySetupContext("import_umath", 1);
19721
19730
 
19722
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":987
19731
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":987
19723
19732
  *
19724
19733
  * cdef inline int import_umath() except -1:
19725
19734
  * try: # <<<<<<<<<<<<<<
@@ -19735,7 +19744,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
19735
19744
  __Pyx_XGOTREF(__pyx_t_3);
19736
19745
  /*try:*/ {
19737
19746
 
19738
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":988
19747
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":988
19739
19748
  * cdef inline int import_umath() except -1:
19740
19749
  * try:
19741
19750
  * _import_umath() # <<<<<<<<<<<<<<
@@ -19744,7 +19753,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
19744
19753
  */
19745
19754
  __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 988, __pyx_L3_error)
19746
19755
 
19747
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":987
19756
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":987
19748
19757
  *
19749
19758
  * cdef inline int import_umath() except -1:
19750
19759
  * try: # <<<<<<<<<<<<<<
@@ -19758,7 +19767,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
19758
19767
  goto __pyx_L8_try_end;
19759
19768
  __pyx_L3_error:;
19760
19769
 
19761
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":989
19770
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":989
19762
19771
  * try:
19763
19772
  * _import_umath()
19764
19773
  * except Exception: # <<<<<<<<<<<<<<
@@ -19773,7 +19782,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
19773
19782
  __Pyx_XGOTREF(__pyx_t_6);
19774
19783
  __Pyx_XGOTREF(__pyx_t_7);
19775
19784
 
19776
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":990
19785
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":990
19777
19786
  * _import_umath()
19778
19787
  * except Exception:
19779
19788
  * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<<
@@ -19788,7 +19797,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
19788
19797
  }
19789
19798
  goto __pyx_L5_except_error;
19790
19799
 
19791
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":987
19800
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":987
19792
19801
  *
19793
19802
  * cdef inline int import_umath() except -1:
19794
19803
  * try: # <<<<<<<<<<<<<<
@@ -19804,7 +19813,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
19804
19813
  __pyx_L8_try_end:;
19805
19814
  }
19806
19815
 
19807
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":986
19816
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":986
19808
19817
  * raise ImportError("numpy.core.multiarray failed to import")
19809
19818
  *
19810
19819
  * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<<
@@ -19827,7 +19836,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
19827
19836
  return __pyx_r;
19828
19837
  }
19829
19838
 
19830
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":992
19839
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":992
19831
19840
  * raise ImportError("numpy.core.umath failed to import")
19832
19841
  *
19833
19842
  * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<<
@@ -19851,7 +19860,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
19851
19860
  int __pyx_clineno = 0;
19852
19861
  __Pyx_RefNannySetupContext("import_ufunc", 1);
19853
19862
 
19854
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":993
19863
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":993
19855
19864
  *
19856
19865
  * cdef inline int import_ufunc() except -1:
19857
19866
  * try: # <<<<<<<<<<<<<<
@@ -19867,7 +19876,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
19867
19876
  __Pyx_XGOTREF(__pyx_t_3);
19868
19877
  /*try:*/ {
19869
19878
 
19870
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":994
19879
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":994
19871
19880
  * cdef inline int import_ufunc() except -1:
19872
19881
  * try:
19873
19882
  * _import_umath() # <<<<<<<<<<<<<<
@@ -19876,7 +19885,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
19876
19885
  */
19877
19886
  __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 994, __pyx_L3_error)
19878
19887
 
19879
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":993
19888
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":993
19880
19889
  *
19881
19890
  * cdef inline int import_ufunc() except -1:
19882
19891
  * try: # <<<<<<<<<<<<<<
@@ -19890,7 +19899,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
19890
19899
  goto __pyx_L8_try_end;
19891
19900
  __pyx_L3_error:;
19892
19901
 
19893
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":995
19902
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":995
19894
19903
  * try:
19895
19904
  * _import_umath()
19896
19905
  * except Exception: # <<<<<<<<<<<<<<
@@ -19905,7 +19914,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
19905
19914
  __Pyx_XGOTREF(__pyx_t_6);
19906
19915
  __Pyx_XGOTREF(__pyx_t_7);
19907
19916
 
19908
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":996
19917
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":996
19909
19918
  * _import_umath()
19910
19919
  * except Exception:
19911
19920
  * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<<
@@ -19920,7 +19929,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
19920
19929
  }
19921
19930
  goto __pyx_L5_except_error;
19922
19931
 
19923
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":993
19932
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":993
19924
19933
  *
19925
19934
  * cdef inline int import_ufunc() except -1:
19926
19935
  * try: # <<<<<<<<<<<<<<
@@ -19936,7 +19945,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
19936
19945
  __pyx_L8_try_end:;
19937
19946
  }
19938
19947
 
19939
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":992
19948
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":992
19940
19949
  * raise ImportError("numpy.core.umath failed to import")
19941
19950
  *
19942
19951
  * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<<
@@ -19959,7 +19968,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
19959
19968
  return __pyx_r;
19960
19969
  }
19961
19970
 
19962
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":999
19971
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":999
19963
19972
  *
19964
19973
  *
19965
19974
  * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<<
@@ -19970,7 +19979,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
19970
19979
  static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) {
19971
19980
  int __pyx_r;
19972
19981
 
19973
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1011
19982
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1011
19974
19983
  * bool
19975
19984
  * """
19976
19985
  * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<<
@@ -19980,7 +19989,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_
19980
19989
  __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type));
19981
19990
  goto __pyx_L0;
19982
19991
 
19983
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":999
19992
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":999
19984
19993
  *
19985
19994
  *
19986
19995
  * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<<
@@ -19993,7 +20002,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_
19993
20002
  return __pyx_r;
19994
20003
  }
19995
20004
 
19996
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1014
20005
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1014
19997
20006
  *
19998
20007
  *
19999
20008
  * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<<
@@ -20004,7 +20013,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_
20004
20013
  static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) {
20005
20014
  int __pyx_r;
20006
20015
 
20007
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1026
20016
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1026
20008
20017
  * bool
20009
20018
  * """
20010
20019
  * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<<
@@ -20014,7 +20023,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_o
20014
20023
  __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type));
20015
20024
  goto __pyx_L0;
20016
20025
 
20017
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1014
20026
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1014
20018
20027
  *
20019
20028
  *
20020
20029
  * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<<
@@ -20027,7 +20036,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_o
20027
20036
  return __pyx_r;
20028
20037
  }
20029
20038
 
20030
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1029
20039
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1029
20031
20040
  *
20032
20041
  *
20033
20042
  * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<<
@@ -20038,7 +20047,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_o
20038
20047
  static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) {
20039
20048
  npy_datetime __pyx_r;
20040
20049
 
20041
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1036
20050
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1036
20042
20051
  * also needed. That can be found using `get_datetime64_unit`.
20043
20052
  * """
20044
20053
  * return (<PyDatetimeScalarObject*>obj).obval # <<<<<<<<<<<<<<
@@ -20048,7 +20057,7 @@ static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *
20048
20057
  __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval;
20049
20058
  goto __pyx_L0;
20050
20059
 
20051
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1029
20060
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1029
20052
20061
  *
20053
20062
  *
20054
20063
  * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<<
@@ -20061,7 +20070,7 @@ static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *
20061
20070
  return __pyx_r;
20062
20071
  }
20063
20072
 
20064
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1039
20073
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1039
20065
20074
  *
20066
20075
  *
20067
20076
  * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<<
@@ -20072,7 +20081,7 @@ static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *
20072
20081
  static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) {
20073
20082
  npy_timedelta __pyx_r;
20074
20083
 
20075
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1043
20084
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1043
20076
20085
  * returns the int64 value underlying scalar numpy timedelta64 object
20077
20086
  * """
20078
20087
  * return (<PyTimedeltaScalarObject*>obj).obval # <<<<<<<<<<<<<<
@@ -20082,7 +20091,7 @@ static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject
20082
20091
  __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval;
20083
20092
  goto __pyx_L0;
20084
20093
 
20085
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1039
20094
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1039
20086
20095
  *
20087
20096
  *
20088
20097
  * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<<
@@ -20095,7 +20104,7 @@ static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject
20095
20104
  return __pyx_r;
20096
20105
  }
20097
20106
 
20098
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1046
20107
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1046
20099
20108
  *
20100
20109
  *
20101
20110
  * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<<
@@ -20106,7 +20115,7 @@ static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject
20106
20115
  static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) {
20107
20116
  NPY_DATETIMEUNIT __pyx_r;
20108
20117
 
20109
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1050
20118
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1050
20110
20119
  * returns the unit part of the dtype for a numpy datetime64 object.
20111
20120
  * """
20112
20121
  * return <NPY_DATETIMEUNIT>(<PyDatetimeScalarObject*>obj).obmeta.base # <<<<<<<<<<<<<<
@@ -20114,7 +20123,7 @@ static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObjec
20114
20123
  __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base);
20115
20124
  goto __pyx_L0;
20116
20125
 
20117
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1046
20126
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":1046
20118
20127
  *
20119
20128
  *
20120
20129
  * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<<
@@ -23190,7 +23199,7 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris___init__(CYTHON_UN
23190
23199
  *
23191
23200
  * @cython.boundscheck(False) # <<<<<<<<<<<<<<
23192
23201
  * @cython.wraparound(False)
23193
- * def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray]) -> 'Paris':
23202
+ * def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray], force_bipartite: bool = False) -> 'Paris':
23194
23203
  */
23195
23204
 
23196
23205
  /* Python wrapper */
@@ -23201,7 +23210,7 @@ PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
23201
23210
  PyObject *__pyx_args, PyObject *__pyx_kwds
23202
23211
  #endif
23203
23212
  ); /*proto*/
23204
- PyDoc_STRVAR(__pyx_doc_9sknetwork_9hierarchy_5paris_5Paris_2fit, "Agglomerative clustering using the nearest neighbor chain.\n\n Parameters\n ----------\n input_matrix : sparse.csr_matrix, np.ndarray\n Adjacency matrix or biadjacency matrix of the graph.\n\n Returns\n -------\n self: :class:`Paris`\n ");
23213
+ PyDoc_STRVAR(__pyx_doc_9sknetwork_9hierarchy_5paris_5Paris_2fit, "Agglomerative clustering using the nearest neighbor chain.\n\n Parameters\n ----------\n input_matrix : sparse.csr_matrix, np.ndarray\n Adjacency matrix or biadjacency matrix of the graph.\n force_bipartite :\n If ``True``, force the input matrix to be considered as a biadjacency matrix.\n\n Returns\n -------\n self: :class:`Paris`\n ");
23205
23214
  static PyMethodDef __pyx_mdef_9sknetwork_9hierarchy_5paris_5Paris_3fit = {"fit", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9sknetwork_9hierarchy_5paris_5Paris_3fit, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9sknetwork_9hierarchy_5paris_5Paris_2fit};
23206
23215
  static PyObject *__pyx_pw_9sknetwork_9hierarchy_5paris_5Paris_3fit(PyObject *__pyx_self,
23207
23216
  #if CYTHON_METH_FASTCALL
@@ -23212,11 +23221,12 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
23212
23221
  ) {
23213
23222
  PyObject *__pyx_v_self = 0;
23214
23223
  PyObject *__pyx_v_input_matrix = 0;
23224
+ PyObject *__pyx_v_force_bipartite = 0;
23215
23225
  #if !CYTHON_METH_FASTCALL
23216
23226
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
23217
23227
  #endif
23218
23228
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
23219
- PyObject* values[2] = {0,0};
23229
+ PyObject* values[3] = {0,0,0};
23220
23230
  int __pyx_lineno = 0;
23221
23231
  const char *__pyx_filename = NULL;
23222
23232
  int __pyx_clineno = 0;
@@ -23232,10 +23242,21 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
23232
23242
  #endif
23233
23243
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
23234
23244
  {
23235
- PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_input_matrix,0};
23245
+ PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_input_matrix,&__pyx_n_s_force_bipartite,0};
23246
+
23247
+ /* "sknetwork/hierarchy/paris.pyx":215
23248
+ * @cython.boundscheck(False)
23249
+ * @cython.wraparound(False)
23250
+ * def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray], force_bipartite: bool = False) -> 'Paris': # <<<<<<<<<<<<<<
23251
+ * """Agglomerative clustering using the nearest neighbor chain.
23252
+ *
23253
+ */
23254
+ values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject *)Py_False)));
23236
23255
  if (__pyx_kwds) {
23237
23256
  Py_ssize_t kw_args;
23238
23257
  switch (__pyx_nargs) {
23258
+ case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
23259
+ CYTHON_FALLTHROUGH;
23239
23260
  case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
23240
23261
  CYTHON_FALLTHROUGH;
23241
23262
  case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
@@ -23260,25 +23281,37 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
23260
23281
  }
23261
23282
  else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 213, __pyx_L3_error)
23262
23283
  else {
23263
- __Pyx_RaiseArgtupleInvalid("fit", 1, 2, 2, 1); __PYX_ERR(0, 213, __pyx_L3_error)
23284
+ __Pyx_RaiseArgtupleInvalid("fit", 0, 2, 3, 1); __PYX_ERR(0, 213, __pyx_L3_error)
23285
+ }
23286
+ CYTHON_FALLTHROUGH;
23287
+ case 2:
23288
+ if (kw_args > 0) {
23289
+ PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_force_bipartite);
23290
+ if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
23291
+ else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 213, __pyx_L3_error)
23264
23292
  }
23265
23293
  }
23266
23294
  if (unlikely(kw_args > 0)) {
23267
23295
  const Py_ssize_t kwd_pos_args = __pyx_nargs;
23268
23296
  if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fit") < 0)) __PYX_ERR(0, 213, __pyx_L3_error)
23269
23297
  }
23270
- } else if (unlikely(__pyx_nargs != 2)) {
23271
- goto __pyx_L5_argtuple_error;
23272
23298
  } else {
23273
- values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
23274
- values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
23299
+ switch (__pyx_nargs) {
23300
+ case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
23301
+ CYTHON_FALLTHROUGH;
23302
+ case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
23303
+ values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
23304
+ break;
23305
+ default: goto __pyx_L5_argtuple_error;
23306
+ }
23275
23307
  }
23276
23308
  __pyx_v_self = values[0];
23277
23309
  __pyx_v_input_matrix = values[1];
23310
+ __pyx_v_force_bipartite = values[2];
23278
23311
  }
23279
23312
  goto __pyx_L6_skip;
23280
23313
  __pyx_L5_argtuple_error:;
23281
- __Pyx_RaiseArgtupleInvalid("fit", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 213, __pyx_L3_error)
23314
+ __Pyx_RaiseArgtupleInvalid("fit", 0, 2, 3, __pyx_nargs); __PYX_ERR(0, 213, __pyx_L3_error)
23282
23315
  __pyx_L6_skip:;
23283
23316
  goto __pyx_L4_argument_unpacking_done;
23284
23317
  __pyx_L3_error:;
@@ -23292,7 +23325,15 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
23292
23325
  __Pyx_RefNannyFinishContext();
23293
23326
  return NULL;
23294
23327
  __pyx_L4_argument_unpacking_done:;
23295
- __pyx_r = __pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(__pyx_self, __pyx_v_self, __pyx_v_input_matrix);
23328
+ __pyx_r = __pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(__pyx_self, __pyx_v_self, __pyx_v_input_matrix, __pyx_v_force_bipartite);
23329
+
23330
+ /* "sknetwork/hierarchy/paris.pyx":213
23331
+ * self.bipartite = None
23332
+ *
23333
+ * @cython.boundscheck(False) # <<<<<<<<<<<<<<
23334
+ * @cython.wraparound(False)
23335
+ * def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray], force_bipartite: bool = False) -> 'Paris':
23336
+ */
23296
23337
 
23297
23338
  /* function exit code */
23298
23339
  {
@@ -23305,7 +23346,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
23305
23346
  return __pyx_r;
23306
23347
  }
23307
23348
 
23308
- static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_matrix) {
23349
+ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_matrix, PyObject *__pyx_v_force_bipartite) {
23309
23350
  PyObject *__pyx_v_adjacency = NULL;
23310
23351
  PyObject *__pyx_v_weights = NULL;
23311
23352
  PyObject *__pyx_v_out_weights = NULL;
@@ -23349,17 +23390,16 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
23349
23390
  int __pyx_lineno = 0;
23350
23391
  const char *__pyx_filename = NULL;
23351
23392
  int __pyx_clineno = 0;
23352
- __Pyx_RefNannySetupContext("fit", 0);
23353
- __Pyx_INCREF(__pyx_v_input_matrix);
23393
+ __Pyx_RefNannySetupContext("fit", 1);
23354
23394
 
23355
- /* "sknetwork/hierarchy/paris.pyx":227
23395
+ /* "sknetwork/hierarchy/paris.pyx":229
23356
23396
  * self: :class:`Paris`
23357
23397
  * """
23358
23398
  * self._init_vars() # <<<<<<<<<<<<<<
23359
23399
  *
23360
23400
  * # input
23361
23401
  */
23362
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_init_vars); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 227, __pyx_L1_error)
23402
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_init_vars); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 229, __pyx_L1_error)
23363
23403
  __Pyx_GOTREF(__pyx_t_2);
23364
23404
  __pyx_t_3 = NULL;
23365
23405
  __pyx_t_4 = 0;
@@ -23379,282 +23419,239 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
23379
23419
  PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL};
23380
23420
  __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
23381
23421
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
23382
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 227, __pyx_L1_error)
23422
+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 229, __pyx_L1_error)
23383
23423
  __Pyx_GOTREF(__pyx_t_1);
23384
23424
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23385
23425
  }
23386
23426
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23387
23427
 
23388
- /* "sknetwork/hierarchy/paris.pyx":230
23428
+ /* "sknetwork/hierarchy/paris.pyx":232
23389
23429
  *
23390
23430
  * # input
23391
- * input_matrix = check_format(input_matrix) # <<<<<<<<<<<<<<
23392
- * adjacency, self.bipartite = get_adjacency(input_matrix)
23393
- *
23394
- */
23395
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_check_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 230, __pyx_L1_error)
23396
- __Pyx_GOTREF(__pyx_t_2);
23397
- __pyx_t_3 = NULL;
23398
- __pyx_t_4 = 0;
23399
- #if CYTHON_UNPACK_METHODS
23400
- if (unlikely(PyMethod_Check(__pyx_t_2))) {
23401
- __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
23402
- if (likely(__pyx_t_3)) {
23403
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
23404
- __Pyx_INCREF(__pyx_t_3);
23405
- __Pyx_INCREF(function);
23406
- __Pyx_DECREF_SET(__pyx_t_2, function);
23407
- __pyx_t_4 = 1;
23408
- }
23409
- }
23410
- #endif
23411
- {
23412
- PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_input_matrix};
23413
- __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
23414
- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
23415
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 230, __pyx_L1_error)
23416
- __Pyx_GOTREF(__pyx_t_1);
23417
- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23418
- }
23419
- __Pyx_DECREF_SET(__pyx_v_input_matrix, __pyx_t_1);
23420
- __pyx_t_1 = 0;
23421
-
23422
- /* "sknetwork/hierarchy/paris.pyx":231
23423
- * # input
23424
- * input_matrix = check_format(input_matrix)
23425
- * adjacency, self.bipartite = get_adjacency(input_matrix) # <<<<<<<<<<<<<<
23431
+ * adjacency, self.bipartite = get_adjacency(input_matrix, force_bipartite=force_bipartite) # <<<<<<<<<<<<<<
23426
23432
  *
23427
23433
  * weights = self.weights
23428
23434
  */
23429
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_get_adjacency); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 231, __pyx_L1_error)
23435
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_get_adjacency); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 232, __pyx_L1_error)
23436
+ __Pyx_GOTREF(__pyx_t_1);
23437
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 232, __pyx_L1_error)
23430
23438
  __Pyx_GOTREF(__pyx_t_2);
23431
- __pyx_t_3 = NULL;
23432
- __pyx_t_4 = 0;
23433
- #if CYTHON_UNPACK_METHODS
23434
- if (unlikely(PyMethod_Check(__pyx_t_2))) {
23435
- __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
23436
- if (likely(__pyx_t_3)) {
23437
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
23438
- __Pyx_INCREF(__pyx_t_3);
23439
- __Pyx_INCREF(function);
23440
- __Pyx_DECREF_SET(__pyx_t_2, function);
23441
- __pyx_t_4 = 1;
23442
- }
23443
- }
23444
- #endif
23445
- {
23446
- PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_input_matrix};
23447
- __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
23448
- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
23449
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 231, __pyx_L1_error)
23450
- __Pyx_GOTREF(__pyx_t_1);
23451
- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23452
- }
23453
- if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
23454
- PyObject* sequence = __pyx_t_1;
23439
+ __Pyx_INCREF(__pyx_v_input_matrix);
23440
+ __Pyx_GIVEREF(__pyx_v_input_matrix);
23441
+ if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_input_matrix)) __PYX_ERR(0, 232, __pyx_L1_error);
23442
+ __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 232, __pyx_L1_error)
23443
+ __Pyx_GOTREF(__pyx_t_3);
23444
+ if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_force_bipartite, __pyx_v_force_bipartite) < 0) __PYX_ERR(0, 232, __pyx_L1_error)
23445
+ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 232, __pyx_L1_error)
23446
+ __Pyx_GOTREF(__pyx_t_5);
23447
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23448
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23449
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
23450
+ if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
23451
+ PyObject* sequence = __pyx_t_5;
23455
23452
  Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
23456
23453
  if (unlikely(size != 2)) {
23457
23454
  if (size > 2) __Pyx_RaiseTooManyValuesError(2);
23458
23455
  else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
23459
- __PYX_ERR(0, 231, __pyx_L1_error)
23456
+ __PYX_ERR(0, 232, __pyx_L1_error)
23460
23457
  }
23461
23458
  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
23462
23459
  if (likely(PyTuple_CheckExact(sequence))) {
23463
- __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0);
23464
- __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1);
23460
+ __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0);
23461
+ __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1);
23465
23462
  } else {
23466
- __pyx_t_2 = PyList_GET_ITEM(sequence, 0);
23467
- __pyx_t_3 = PyList_GET_ITEM(sequence, 1);
23463
+ __pyx_t_3 = PyList_GET_ITEM(sequence, 0);
23464
+ __pyx_t_2 = PyList_GET_ITEM(sequence, 1);
23468
23465
  }
23469
- __Pyx_INCREF(__pyx_t_2);
23470
23466
  __Pyx_INCREF(__pyx_t_3);
23467
+ __Pyx_INCREF(__pyx_t_2);
23471
23468
  #else
23472
- __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 231, __pyx_L1_error)
23473
- __Pyx_GOTREF(__pyx_t_2);
23474
- __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 231, __pyx_L1_error)
23469
+ __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 232, __pyx_L1_error)
23475
23470
  __Pyx_GOTREF(__pyx_t_3);
23471
+ __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 232, __pyx_L1_error)
23472
+ __Pyx_GOTREF(__pyx_t_2);
23476
23473
  #endif
23477
- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23474
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23478
23475
  } else {
23479
23476
  Py_ssize_t index = -1;
23480
- __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 231, __pyx_L1_error)
23481
- __Pyx_GOTREF(__pyx_t_5);
23482
- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23483
- __pyx_t_6 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_5);
23484
- index = 0; __pyx_t_2 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
23485
- __Pyx_GOTREF(__pyx_t_2);
23486
- index = 1; __pyx_t_3 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
23477
+ __pyx_t_1 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 232, __pyx_L1_error)
23478
+ __Pyx_GOTREF(__pyx_t_1);
23479
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23480
+ __pyx_t_6 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1);
23481
+ index = 0; __pyx_t_3 = __pyx_t_6(__pyx_t_1); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
23487
23482
  __Pyx_GOTREF(__pyx_t_3);
23488
- if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 2) < 0) __PYX_ERR(0, 231, __pyx_L1_error)
23483
+ index = 1; __pyx_t_2 = __pyx_t_6(__pyx_t_1); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
23484
+ __Pyx_GOTREF(__pyx_t_2);
23485
+ if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_1), 2) < 0) __PYX_ERR(0, 232, __pyx_L1_error)
23489
23486
  __pyx_t_6 = NULL;
23490
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23487
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23491
23488
  goto __pyx_L4_unpacking_done;
23492
23489
  __pyx_L3_unpacking_failed:;
23493
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23490
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23494
23491
  __pyx_t_6 = NULL;
23495
23492
  if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
23496
- __PYX_ERR(0, 231, __pyx_L1_error)
23493
+ __PYX_ERR(0, 232, __pyx_L1_error)
23497
23494
  __pyx_L4_unpacking_done:;
23498
23495
  }
23499
- __pyx_v_adjacency = __pyx_t_2;
23500
- __pyx_t_2 = 0;
23501
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_bipartite, __pyx_t_3) < 0) __PYX_ERR(0, 231, __pyx_L1_error)
23502
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
23496
+ __pyx_v_adjacency = __pyx_t_3;
23497
+ __pyx_t_3 = 0;
23498
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_bipartite, __pyx_t_2) < 0) __PYX_ERR(0, 232, __pyx_L1_error)
23499
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23503
23500
 
23504
- /* "sknetwork/hierarchy/paris.pyx":233
23505
- * adjacency, self.bipartite = get_adjacency(input_matrix)
23501
+ /* "sknetwork/hierarchy/paris.pyx":234
23502
+ * adjacency, self.bipartite = get_adjacency(input_matrix, force_bipartite=force_bipartite)
23506
23503
  *
23507
23504
  * weights = self.weights # <<<<<<<<<<<<<<
23508
23505
  * out_weights = get_probs(weights, adjacency)
23509
23506
  * in_weights = get_probs(weights, adjacency.T)
23510
23507
  */
23511
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_weights); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 233, __pyx_L1_error)
23512
- __Pyx_GOTREF(__pyx_t_1);
23513
- __pyx_v_weights = __pyx_t_1;
23514
- __pyx_t_1 = 0;
23508
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_weights); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 234, __pyx_L1_error)
23509
+ __Pyx_GOTREF(__pyx_t_5);
23510
+ __pyx_v_weights = __pyx_t_5;
23511
+ __pyx_t_5 = 0;
23515
23512
 
23516
- /* "sknetwork/hierarchy/paris.pyx":234
23513
+ /* "sknetwork/hierarchy/paris.pyx":235
23517
23514
  *
23518
23515
  * weights = self.weights
23519
23516
  * out_weights = get_probs(weights, adjacency) # <<<<<<<<<<<<<<
23520
23517
  * in_weights = get_probs(weights, adjacency.T)
23521
23518
  *
23522
23519
  */
23523
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_get_probs); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 234, __pyx_L1_error)
23524
- __Pyx_GOTREF(__pyx_t_3);
23525
- __pyx_t_2 = NULL;
23520
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_get_probs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 235, __pyx_L1_error)
23521
+ __Pyx_GOTREF(__pyx_t_2);
23522
+ __pyx_t_3 = NULL;
23526
23523
  __pyx_t_4 = 0;
23527
23524
  #if CYTHON_UNPACK_METHODS
23528
- if (unlikely(PyMethod_Check(__pyx_t_3))) {
23529
- __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
23530
- if (likely(__pyx_t_2)) {
23531
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
23532
- __Pyx_INCREF(__pyx_t_2);
23525
+ if (unlikely(PyMethod_Check(__pyx_t_2))) {
23526
+ __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
23527
+ if (likely(__pyx_t_3)) {
23528
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
23529
+ __Pyx_INCREF(__pyx_t_3);
23533
23530
  __Pyx_INCREF(function);
23534
- __Pyx_DECREF_SET(__pyx_t_3, function);
23531
+ __Pyx_DECREF_SET(__pyx_t_2, function);
23535
23532
  __pyx_t_4 = 1;
23536
23533
  }
23537
23534
  }
23538
23535
  #endif
23539
23536
  {
23540
- PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_weights, __pyx_v_adjacency};
23541
- __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
23542
- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
23543
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error)
23544
- __Pyx_GOTREF(__pyx_t_1);
23545
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
23537
+ PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_weights, __pyx_v_adjacency};
23538
+ __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
23539
+ __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
23540
+ if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 235, __pyx_L1_error)
23541
+ __Pyx_GOTREF(__pyx_t_5);
23542
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23546
23543
  }
23547
- __pyx_v_out_weights = __pyx_t_1;
23548
- __pyx_t_1 = 0;
23544
+ __pyx_v_out_weights = __pyx_t_5;
23545
+ __pyx_t_5 = 0;
23549
23546
 
23550
- /* "sknetwork/hierarchy/paris.pyx":235
23547
+ /* "sknetwork/hierarchy/paris.pyx":236
23551
23548
  * weights = self.weights
23552
23549
  * out_weights = get_probs(weights, adjacency)
23553
23550
  * in_weights = get_probs(weights, adjacency.T) # <<<<<<<<<<<<<<
23554
23551
  *
23555
23552
  * if not is_symmetric(adjacency):
23556
23553
  */
23557
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_get_probs); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 235, __pyx_L1_error)
23558
- __Pyx_GOTREF(__pyx_t_3);
23559
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_adjacency, __pyx_n_s_T); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 235, __pyx_L1_error)
23554
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_get_probs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 236, __pyx_L1_error)
23560
23555
  __Pyx_GOTREF(__pyx_t_2);
23561
- __pyx_t_5 = NULL;
23556
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_adjacency, __pyx_n_s_T); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 236, __pyx_L1_error)
23557
+ __Pyx_GOTREF(__pyx_t_3);
23558
+ __pyx_t_1 = NULL;
23562
23559
  __pyx_t_4 = 0;
23563
23560
  #if CYTHON_UNPACK_METHODS
23564
- if (unlikely(PyMethod_Check(__pyx_t_3))) {
23565
- __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
23566
- if (likely(__pyx_t_5)) {
23567
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
23568
- __Pyx_INCREF(__pyx_t_5);
23561
+ if (unlikely(PyMethod_Check(__pyx_t_2))) {
23562
+ __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
23563
+ if (likely(__pyx_t_1)) {
23564
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
23565
+ __Pyx_INCREF(__pyx_t_1);
23569
23566
  __Pyx_INCREF(function);
23570
- __Pyx_DECREF_SET(__pyx_t_3, function);
23567
+ __Pyx_DECREF_SET(__pyx_t_2, function);
23571
23568
  __pyx_t_4 = 1;
23572
23569
  }
23573
23570
  }
23574
23571
  #endif
23575
23572
  {
23576
- PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_v_weights, __pyx_t_2};
23577
- __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
23578
- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
23579
- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23580
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 235, __pyx_L1_error)
23581
- __Pyx_GOTREF(__pyx_t_1);
23573
+ PyObject *__pyx_callargs[3] = {__pyx_t_1, __pyx_v_weights, __pyx_t_3};
23574
+ __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
23575
+ __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
23582
23576
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
23577
+ if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 236, __pyx_L1_error)
23578
+ __Pyx_GOTREF(__pyx_t_5);
23579
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23583
23580
  }
23584
- __pyx_v_in_weights = __pyx_t_1;
23585
- __pyx_t_1 = 0;
23581
+ __pyx_v_in_weights = __pyx_t_5;
23582
+ __pyx_t_5 = 0;
23586
23583
 
23587
- /* "sknetwork/hierarchy/paris.pyx":237
23584
+ /* "sknetwork/hierarchy/paris.pyx":238
23588
23585
  * in_weights = get_probs(weights, adjacency.T)
23589
23586
  *
23590
23587
  * if not is_symmetric(adjacency): # <<<<<<<<<<<<<<
23591
23588
  * adjacency = directed2undirected(adjacency)
23592
23589
  *
23593
23590
  */
23594
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_is_symmetric); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 237, __pyx_L1_error)
23595
- __Pyx_GOTREF(__pyx_t_3);
23596
- __pyx_t_2 = NULL;
23591
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_is_symmetric); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 238, __pyx_L1_error)
23592
+ __Pyx_GOTREF(__pyx_t_2);
23593
+ __pyx_t_3 = NULL;
23597
23594
  __pyx_t_4 = 0;
23598
23595
  #if CYTHON_UNPACK_METHODS
23599
- if (unlikely(PyMethod_Check(__pyx_t_3))) {
23600
- __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
23601
- if (likely(__pyx_t_2)) {
23602
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
23603
- __Pyx_INCREF(__pyx_t_2);
23596
+ if (unlikely(PyMethod_Check(__pyx_t_2))) {
23597
+ __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
23598
+ if (likely(__pyx_t_3)) {
23599
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
23600
+ __Pyx_INCREF(__pyx_t_3);
23604
23601
  __Pyx_INCREF(function);
23605
- __Pyx_DECREF_SET(__pyx_t_3, function);
23602
+ __Pyx_DECREF_SET(__pyx_t_2, function);
23606
23603
  __pyx_t_4 = 1;
23607
23604
  }
23608
23605
  }
23609
23606
  #endif
23610
23607
  {
23611
- PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_adjacency};
23612
- __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
23613
- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
23614
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 237, __pyx_L1_error)
23615
- __Pyx_GOTREF(__pyx_t_1);
23616
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
23608
+ PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_adjacency};
23609
+ __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
23610
+ __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
23611
+ if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 238, __pyx_L1_error)
23612
+ __Pyx_GOTREF(__pyx_t_5);
23613
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23617
23614
  }
23618
- __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 237, __pyx_L1_error)
23619
- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23615
+ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 238, __pyx_L1_error)
23616
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23620
23617
  __pyx_t_8 = (!__pyx_t_7);
23621
23618
  if (__pyx_t_8) {
23622
23619
 
23623
- /* "sknetwork/hierarchy/paris.pyx":238
23620
+ /* "sknetwork/hierarchy/paris.pyx":239
23624
23621
  *
23625
23622
  * if not is_symmetric(adjacency):
23626
23623
  * adjacency = directed2undirected(adjacency) # <<<<<<<<<<<<<<
23627
23624
  *
23628
23625
  * null_weights = (out_weights + in_weights) == 0
23629
23626
  */
23630
- __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_directed2undirected); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 238, __pyx_L1_error)
23631
- __Pyx_GOTREF(__pyx_t_3);
23632
- __pyx_t_2 = NULL;
23627
+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_directed2undirected); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 239, __pyx_L1_error)
23628
+ __Pyx_GOTREF(__pyx_t_2);
23629
+ __pyx_t_3 = NULL;
23633
23630
  __pyx_t_4 = 0;
23634
23631
  #if CYTHON_UNPACK_METHODS
23635
- if (unlikely(PyMethod_Check(__pyx_t_3))) {
23636
- __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
23637
- if (likely(__pyx_t_2)) {
23638
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
23639
- __Pyx_INCREF(__pyx_t_2);
23632
+ if (unlikely(PyMethod_Check(__pyx_t_2))) {
23633
+ __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
23634
+ if (likely(__pyx_t_3)) {
23635
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
23636
+ __Pyx_INCREF(__pyx_t_3);
23640
23637
  __Pyx_INCREF(function);
23641
- __Pyx_DECREF_SET(__pyx_t_3, function);
23638
+ __Pyx_DECREF_SET(__pyx_t_2, function);
23642
23639
  __pyx_t_4 = 1;
23643
23640
  }
23644
23641
  }
23645
23642
  #endif
23646
23643
  {
23647
- PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_adjacency};
23648
- __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
23649
- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
23650
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 238, __pyx_L1_error)
23651
- __Pyx_GOTREF(__pyx_t_1);
23652
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
23644
+ PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_adjacency};
23645
+ __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
23646
+ __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
23647
+ if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 239, __pyx_L1_error)
23648
+ __Pyx_GOTREF(__pyx_t_5);
23649
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23653
23650
  }
23654
- __Pyx_DECREF_SET(__pyx_v_adjacency, __pyx_t_1);
23655
- __pyx_t_1 = 0;
23651
+ __Pyx_DECREF_SET(__pyx_v_adjacency, __pyx_t_5);
23652
+ __pyx_t_5 = 0;
23656
23653
 
23657
- /* "sknetwork/hierarchy/paris.pyx":237
23654
+ /* "sknetwork/hierarchy/paris.pyx":238
23658
23655
  * in_weights = get_probs(weights, adjacency.T)
23659
23656
  *
23660
23657
  * if not is_symmetric(adjacency): # <<<<<<<<<<<<<<
@@ -23663,100 +23660,100 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
23663
23660
  */
23664
23661
  }
23665
23662
 
23666
- /* "sknetwork/hierarchy/paris.pyx":240
23663
+ /* "sknetwork/hierarchy/paris.pyx":241
23667
23664
  * adjacency = directed2undirected(adjacency)
23668
23665
  *
23669
23666
  * null_weights = (out_weights + in_weights) == 0 # <<<<<<<<<<<<<<
23670
23667
  * if any(null_weights):
23671
23668
  * adjacency += sparse.diags(null_weights.astype(int))
23672
23669
  */
23673
- __pyx_t_1 = PyNumber_Add(__pyx_v_out_weights, __pyx_v_in_weights); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 240, __pyx_L1_error)
23674
- __Pyx_GOTREF(__pyx_t_1);
23675
- __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 240, __pyx_L1_error)
23676
- __Pyx_GOTREF(__pyx_t_3);
23677
- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23678
- __pyx_v_null_weights = __pyx_t_3;
23679
- __pyx_t_3 = 0;
23670
+ __pyx_t_5 = PyNumber_Add(__pyx_v_out_weights, __pyx_v_in_weights); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 241, __pyx_L1_error)
23671
+ __Pyx_GOTREF(__pyx_t_5);
23672
+ __pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_t_5, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 241, __pyx_L1_error)
23673
+ __Pyx_GOTREF(__pyx_t_2);
23674
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23675
+ __pyx_v_null_weights = __pyx_t_2;
23676
+ __pyx_t_2 = 0;
23680
23677
 
23681
- /* "sknetwork/hierarchy/paris.pyx":241
23678
+ /* "sknetwork/hierarchy/paris.pyx":242
23682
23679
  *
23683
23680
  * null_weights = (out_weights + in_weights) == 0
23684
23681
  * if any(null_weights): # <<<<<<<<<<<<<<
23685
23682
  * adjacency += sparse.diags(null_weights.astype(int))
23686
23683
  *
23687
23684
  */
23688
- __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_any, __pyx_v_null_weights); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 241, __pyx_L1_error)
23689
- __Pyx_GOTREF(__pyx_t_3);
23690
- __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 241, __pyx_L1_error)
23691
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
23685
+ __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_any, __pyx_v_null_weights); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 242, __pyx_L1_error)
23686
+ __Pyx_GOTREF(__pyx_t_2);
23687
+ __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 242, __pyx_L1_error)
23688
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23692
23689
  if (__pyx_t_8) {
23693
23690
 
23694
- /* "sknetwork/hierarchy/paris.pyx":242
23691
+ /* "sknetwork/hierarchy/paris.pyx":243
23695
23692
  * null_weights = (out_weights + in_weights) == 0
23696
23693
  * if any(null_weights):
23697
23694
  * adjacency += sparse.diags(null_weights.astype(int)) # <<<<<<<<<<<<<<
23698
23695
  *
23699
23696
  * if adjacency.shape[0] <= 1:
23700
23697
  */
23701
- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sparse); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 242, __pyx_L1_error)
23702
- __Pyx_GOTREF(__pyx_t_1);
23703
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_diags); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 242, __pyx_L1_error)
23704
- __Pyx_GOTREF(__pyx_t_2);
23705
- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23706
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_null_weights, __pyx_n_s_astype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 242, __pyx_L1_error)
23698
+ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_sparse); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 243, __pyx_L1_error)
23707
23699
  __Pyx_GOTREF(__pyx_t_5);
23700
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_diags); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 243, __pyx_L1_error)
23701
+ __Pyx_GOTREF(__pyx_t_3);
23702
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23703
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_null_weights, __pyx_n_s_astype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 243, __pyx_L1_error)
23704
+ __Pyx_GOTREF(__pyx_t_1);
23708
23705
  __pyx_t_9 = NULL;
23709
23706
  __pyx_t_4 = 0;
23710
23707
  #if CYTHON_UNPACK_METHODS
23711
- if (likely(PyMethod_Check(__pyx_t_5))) {
23712
- __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5);
23708
+ if (likely(PyMethod_Check(__pyx_t_1))) {
23709
+ __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1);
23713
23710
  if (likely(__pyx_t_9)) {
23714
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
23711
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
23715
23712
  __Pyx_INCREF(__pyx_t_9);
23716
23713
  __Pyx_INCREF(function);
23717
- __Pyx_DECREF_SET(__pyx_t_5, function);
23714
+ __Pyx_DECREF_SET(__pyx_t_1, function);
23718
23715
  __pyx_t_4 = 1;
23719
23716
  }
23720
23717
  }
23721
23718
  #endif
23722
23719
  {
23723
23720
  PyObject *__pyx_callargs[2] = {__pyx_t_9, ((PyObject *)(&PyInt_Type))};
23724
- __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
23721
+ __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
23725
23722
  __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
23726
- if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 242, __pyx_L1_error)
23727
- __Pyx_GOTREF(__pyx_t_1);
23728
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23723
+ if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 243, __pyx_L1_error)
23724
+ __Pyx_GOTREF(__pyx_t_5);
23725
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23729
23726
  }
23730
- __pyx_t_5 = NULL;
23727
+ __pyx_t_1 = NULL;
23731
23728
  __pyx_t_4 = 0;
23732
23729
  #if CYTHON_UNPACK_METHODS
23733
- if (unlikely(PyMethod_Check(__pyx_t_2))) {
23734
- __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
23735
- if (likely(__pyx_t_5)) {
23736
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
23737
- __Pyx_INCREF(__pyx_t_5);
23730
+ if (unlikely(PyMethod_Check(__pyx_t_3))) {
23731
+ __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
23732
+ if (likely(__pyx_t_1)) {
23733
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
23734
+ __Pyx_INCREF(__pyx_t_1);
23738
23735
  __Pyx_INCREF(function);
23739
- __Pyx_DECREF_SET(__pyx_t_2, function);
23736
+ __Pyx_DECREF_SET(__pyx_t_3, function);
23740
23737
  __pyx_t_4 = 1;
23741
23738
  }
23742
23739
  }
23743
23740
  #endif
23744
23741
  {
23745
- PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_1};
23746
- __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
23747
- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
23748
- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23749
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 242, __pyx_L1_error)
23750
- __Pyx_GOTREF(__pyx_t_3);
23751
- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23742
+ PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_5};
23743
+ __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
23744
+ __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
23745
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23746
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 243, __pyx_L1_error)
23747
+ __Pyx_GOTREF(__pyx_t_2);
23748
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
23752
23749
  }
23753
- __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_adjacency, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 242, __pyx_L1_error)
23754
- __Pyx_GOTREF(__pyx_t_2);
23755
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
23756
- __Pyx_DECREF_SET(__pyx_v_adjacency, __pyx_t_2);
23757
- __pyx_t_2 = 0;
23750
+ __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_adjacency, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 243, __pyx_L1_error)
23751
+ __Pyx_GOTREF(__pyx_t_3);
23752
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23753
+ __Pyx_DECREF_SET(__pyx_v_adjacency, __pyx_t_3);
23754
+ __pyx_t_3 = 0;
23758
23755
 
23759
- /* "sknetwork/hierarchy/paris.pyx":241
23756
+ /* "sknetwork/hierarchy/paris.pyx":242
23760
23757
  *
23761
23758
  * null_weights = (out_weights + in_weights) == 0
23762
23759
  * if any(null_weights): # <<<<<<<<<<<<<<
@@ -23765,38 +23762,38 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
23765
23762
  */
23766
23763
  }
23767
23764
 
23768
- /* "sknetwork/hierarchy/paris.pyx":244
23765
+ /* "sknetwork/hierarchy/paris.pyx":245
23769
23766
  * adjacency += sparse.diags(null_weights.astype(int))
23770
23767
  *
23771
23768
  * if adjacency.shape[0] <= 1: # <<<<<<<<<<<<<<
23772
23769
  * raise ValueError('The graph must contain at least two nodes.')
23773
23770
  *
23774
23771
  */
23775
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_adjacency, __pyx_n_s_shape); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 244, __pyx_L1_error)
23776
- __Pyx_GOTREF(__pyx_t_2);
23777
- __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 244, __pyx_L1_error)
23772
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_adjacency, __pyx_n_s_shape); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 245, __pyx_L1_error)
23778
23773
  __Pyx_GOTREF(__pyx_t_3);
23779
- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23780
- __pyx_t_2 = PyObject_RichCompare(__pyx_t_3, __pyx_int_1, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 244, __pyx_L1_error)
23774
+ __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 245, __pyx_L1_error)
23775
+ __Pyx_GOTREF(__pyx_t_2);
23781
23776
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
23782
- __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 244, __pyx_L1_error)
23777
+ __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_int_1, Py_LE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 245, __pyx_L1_error)
23783
23778
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23779
+ __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 245, __pyx_L1_error)
23780
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
23784
23781
  if (unlikely(__pyx_t_8)) {
23785
23782
 
23786
- /* "sknetwork/hierarchy/paris.pyx":245
23783
+ /* "sknetwork/hierarchy/paris.pyx":246
23787
23784
  *
23788
23785
  * if adjacency.shape[0] <= 1:
23789
23786
  * raise ValueError('The graph must contain at least two nodes.') # <<<<<<<<<<<<<<
23790
23787
  *
23791
23788
  * # agglomerative clustering
23792
23789
  */
23793
- __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 245, __pyx_L1_error)
23794
- __Pyx_GOTREF(__pyx_t_2);
23795
- __Pyx_Raise(__pyx_t_2, 0, 0, 0);
23796
- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23797
- __PYX_ERR(0, 245, __pyx_L1_error)
23790
+ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 246, __pyx_L1_error)
23791
+ __Pyx_GOTREF(__pyx_t_3);
23792
+ __Pyx_Raise(__pyx_t_3, 0, 0, 0);
23793
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
23794
+ __PYX_ERR(0, 246, __pyx_L1_error)
23798
23795
 
23799
- /* "sknetwork/hierarchy/paris.pyx":244
23796
+ /* "sknetwork/hierarchy/paris.pyx":245
23800
23797
  * adjacency += sparse.diags(null_weights.astype(int))
23801
23798
  *
23802
23799
  * if adjacency.shape[0] <= 1: # <<<<<<<<<<<<<<
@@ -23805,96 +23802,96 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
23805
23802
  */
23806
23803
  }
23807
23804
 
23808
- /* "sknetwork/hierarchy/paris.pyx":248
23805
+ /* "sknetwork/hierarchy/paris.pyx":249
23809
23806
  *
23810
23807
  * # agglomerative clustering
23811
23808
  * aggregate_graph = AggregateGraph(out_weights, in_weights, adjacency.data.astype(float), # <<<<<<<<<<<<<<
23812
23809
  * adjacency.indices, adjacency.indptr)
23813
23810
  *
23814
23811
  */
23815
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_adjacency, __pyx_n_s_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 248, __pyx_L1_error)
23816
- __Pyx_GOTREF(__pyx_t_3);
23817
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_astype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 248, __pyx_L1_error)
23818
- __Pyx_GOTREF(__pyx_t_1);
23819
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
23820
- __pyx_t_3 = NULL;
23812
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_adjacency, __pyx_n_s_data); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 249, __pyx_L1_error)
23813
+ __Pyx_GOTREF(__pyx_t_2);
23814
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_astype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 249, __pyx_L1_error)
23815
+ __Pyx_GOTREF(__pyx_t_5);
23816
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23817
+ __pyx_t_2 = NULL;
23821
23818
  __pyx_t_4 = 0;
23822
23819
  #if CYTHON_UNPACK_METHODS
23823
- if (likely(PyMethod_Check(__pyx_t_1))) {
23824
- __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
23825
- if (likely(__pyx_t_3)) {
23826
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
23827
- __Pyx_INCREF(__pyx_t_3);
23820
+ if (likely(PyMethod_Check(__pyx_t_5))) {
23821
+ __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
23822
+ if (likely(__pyx_t_2)) {
23823
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
23824
+ __Pyx_INCREF(__pyx_t_2);
23828
23825
  __Pyx_INCREF(function);
23829
- __Pyx_DECREF_SET(__pyx_t_1, function);
23826
+ __Pyx_DECREF_SET(__pyx_t_5, function);
23830
23827
  __pyx_t_4 = 1;
23831
23828
  }
23832
23829
  }
23833
23830
  #endif
23834
23831
  {
23835
- PyObject *__pyx_callargs[2] = {__pyx_t_3, ((PyObject *)(&PyFloat_Type))};
23836
- __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
23837
- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
23838
- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 248, __pyx_L1_error)
23839
- __Pyx_GOTREF(__pyx_t_2);
23840
- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23832
+ PyObject *__pyx_callargs[2] = {__pyx_t_2, ((PyObject *)(&PyFloat_Type))};
23833
+ __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
23834
+ __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
23835
+ if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 249, __pyx_L1_error)
23836
+ __Pyx_GOTREF(__pyx_t_3);
23837
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23841
23838
  }
23842
23839
 
23843
- /* "sknetwork/hierarchy/paris.pyx":249
23840
+ /* "sknetwork/hierarchy/paris.pyx":250
23844
23841
  * # agglomerative clustering
23845
23842
  * aggregate_graph = AggregateGraph(out_weights, in_weights, adjacency.data.astype(float),
23846
23843
  * adjacency.indices, adjacency.indptr) # <<<<<<<<<<<<<<
23847
23844
  *
23848
23845
  * cdef vector[(int, int)] connected_components
23849
23846
  */
23850
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_adjacency, __pyx_n_s_indices); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 249, __pyx_L1_error)
23851
- __Pyx_GOTREF(__pyx_t_1);
23852
- __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_adjacency, __pyx_n_s_indptr); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 249, __pyx_L1_error)
23853
- __Pyx_GOTREF(__pyx_t_3);
23847
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_adjacency, __pyx_n_s_indices); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 250, __pyx_L1_error)
23848
+ __Pyx_GOTREF(__pyx_t_5);
23849
+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_adjacency, __pyx_n_s_indptr); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 250, __pyx_L1_error)
23850
+ __Pyx_GOTREF(__pyx_t_2);
23854
23851
 
23855
- /* "sknetwork/hierarchy/paris.pyx":248
23852
+ /* "sknetwork/hierarchy/paris.pyx":249
23856
23853
  *
23857
23854
  * # agglomerative clustering
23858
23855
  * aggregate_graph = AggregateGraph(out_weights, in_weights, adjacency.data.astype(float), # <<<<<<<<<<<<<<
23859
23856
  * adjacency.indices, adjacency.indptr)
23860
23857
  *
23861
23858
  */
23862
- __pyx_t_5 = PyTuple_New(5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 248, __pyx_L1_error)
23863
- __Pyx_GOTREF(__pyx_t_5);
23859
+ __pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 249, __pyx_L1_error)
23860
+ __Pyx_GOTREF(__pyx_t_1);
23864
23861
  __Pyx_INCREF(__pyx_v_out_weights);
23865
23862
  __Pyx_GIVEREF(__pyx_v_out_weights);
23866
- if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_out_weights)) __PYX_ERR(0, 248, __pyx_L1_error);
23863
+ if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_out_weights)) __PYX_ERR(0, 249, __pyx_L1_error);
23867
23864
  __Pyx_INCREF(__pyx_v_in_weights);
23868
23865
  __Pyx_GIVEREF(__pyx_v_in_weights);
23869
- if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_in_weights)) __PYX_ERR(0, 248, __pyx_L1_error);
23870
- __Pyx_GIVEREF(__pyx_t_2);
23871
- if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_2)) __PYX_ERR(0, 248, __pyx_L1_error);
23872
- __Pyx_GIVEREF(__pyx_t_1);
23873
- if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_1)) __PYX_ERR(0, 248, __pyx_L1_error);
23866
+ if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_in_weights)) __PYX_ERR(0, 249, __pyx_L1_error);
23874
23867
  __Pyx_GIVEREF(__pyx_t_3);
23875
- if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 4, __pyx_t_3)) __PYX_ERR(0, 248, __pyx_L1_error);
23876
- __pyx_t_2 = 0;
23877
- __pyx_t_1 = 0;
23878
- __pyx_t_3 = 0;
23879
- __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_9sknetwork_9hierarchy_5paris_AggregateGraph), __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 248, __pyx_L1_error)
23880
- __Pyx_GOTREF(__pyx_t_3);
23881
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23882
- __pyx_v_aggregate_graph = ((struct __pyx_obj_9sknetwork_9hierarchy_5paris_AggregateGraph *)__pyx_t_3);
23868
+ if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_3)) __PYX_ERR(0, 249, __pyx_L1_error);
23869
+ __Pyx_GIVEREF(__pyx_t_5);
23870
+ if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_5)) __PYX_ERR(0, 249, __pyx_L1_error);
23871
+ __Pyx_GIVEREF(__pyx_t_2);
23872
+ if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_t_2)) __PYX_ERR(0, 249, __pyx_L1_error);
23883
23873
  __pyx_t_3 = 0;
23874
+ __pyx_t_5 = 0;
23875
+ __pyx_t_2 = 0;
23876
+ __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_9sknetwork_9hierarchy_5paris_AggregateGraph), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 249, __pyx_L1_error)
23877
+ __Pyx_GOTREF(__pyx_t_2);
23878
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23879
+ __pyx_v_aggregate_graph = ((struct __pyx_obj_9sknetwork_9hierarchy_5paris_AggregateGraph *)__pyx_t_2);
23880
+ __pyx_t_2 = 0;
23884
23881
 
23885
- /* "sknetwork/hierarchy/paris.pyx":252
23882
+ /* "sknetwork/hierarchy/paris.pyx":253
23886
23883
  *
23887
23884
  * cdef vector[(int, int)] connected_components
23888
23885
  * dendrogram = [] # <<<<<<<<<<<<<<
23889
23886
  * cdef int node
23890
23887
  * cdef int next_node
23891
23888
  */
23892
- __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 252, __pyx_L1_error)
23893
- __Pyx_GOTREF(__pyx_t_3);
23894
- __pyx_v_dendrogram = __pyx_t_3;
23895
- __pyx_t_3 = 0;
23889
+ __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 253, __pyx_L1_error)
23890
+ __Pyx_GOTREF(__pyx_t_2);
23891
+ __pyx_v_dendrogram = __pyx_t_2;
23892
+ __pyx_t_2 = 0;
23896
23893
 
23897
- /* "sknetwork/hierarchy/paris.pyx":264
23894
+ /* "sknetwork/hierarchy/paris.pyx":265
23898
23895
  * cdef float max_sim
23899
23896
  *
23900
23897
  * while len(aggregate_graph.cluster_sizes): # <<<<<<<<<<<<<<
@@ -23902,18 +23899,18 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
23902
23899
  * break
23903
23900
  */
23904
23901
  while (1) {
23905
- __pyx_t_3 = __pyx_v_aggregate_graph->cluster_sizes;
23906
- __Pyx_INCREF(__pyx_t_3);
23907
- if (unlikely(__pyx_t_3 == Py_None)) {
23902
+ __pyx_t_2 = __pyx_v_aggregate_graph->cluster_sizes;
23903
+ __Pyx_INCREF(__pyx_t_2);
23904
+ if (unlikely(__pyx_t_2 == Py_None)) {
23908
23905
  PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
23909
- __PYX_ERR(0, 264, __pyx_L1_error)
23906
+ __PYX_ERR(0, 265, __pyx_L1_error)
23910
23907
  }
23911
- __pyx_t_10 = PyDict_Size(__pyx_t_3); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 264, __pyx_L1_error)
23912
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
23908
+ __pyx_t_10 = PyDict_Size(__pyx_t_2); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 265, __pyx_L1_error)
23909
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23913
23910
  __pyx_t_8 = (__pyx_t_10 != 0);
23914
23911
  if (!__pyx_t_8) break;
23915
23912
 
23916
- /* "sknetwork/hierarchy/paris.pyx":265
23913
+ /* "sknetwork/hierarchy/paris.pyx":266
23917
23914
  *
23918
23915
  * while len(aggregate_graph.cluster_sizes):
23919
23916
  * for node in aggregate_graph.cluster_sizes: # <<<<<<<<<<<<<<
@@ -23923,23 +23920,23 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
23923
23920
  __pyx_t_10 = 0;
23924
23921
  if (unlikely(__pyx_v_aggregate_graph->cluster_sizes == Py_None)) {
23925
23922
  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
23926
- __PYX_ERR(0, 265, __pyx_L1_error)
23923
+ __PYX_ERR(0, 266, __pyx_L1_error)
23927
23924
  }
23928
- __pyx_t_5 = __Pyx_dict_iterator(__pyx_v_aggregate_graph->cluster_sizes, 1, ((PyObject *)NULL), (&__pyx_t_11), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 265, __pyx_L1_error)
23929
- __Pyx_GOTREF(__pyx_t_5);
23930
- __Pyx_XDECREF(__pyx_t_3);
23931
- __pyx_t_3 = __pyx_t_5;
23932
- __pyx_t_5 = 0;
23925
+ __pyx_t_1 = __Pyx_dict_iterator(__pyx_v_aggregate_graph->cluster_sizes, 1, ((PyObject *)NULL), (&__pyx_t_11), (&__pyx_t_4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 266, __pyx_L1_error)
23926
+ __Pyx_GOTREF(__pyx_t_1);
23927
+ __Pyx_XDECREF(__pyx_t_2);
23928
+ __pyx_t_2 = __pyx_t_1;
23929
+ __pyx_t_1 = 0;
23933
23930
  while (1) {
23934
- __pyx_t_12 = __Pyx_dict_iter_next(__pyx_t_3, __pyx_t_11, &__pyx_t_10, &__pyx_t_5, NULL, NULL, __pyx_t_4);
23931
+ __pyx_t_12 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_11, &__pyx_t_10, &__pyx_t_1, NULL, NULL, __pyx_t_4);
23935
23932
  if (unlikely(__pyx_t_12 == 0)) break;
23936
- if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 265, __pyx_L1_error)
23937
- __Pyx_GOTREF(__pyx_t_5);
23938
- __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 265, __pyx_L1_error)
23939
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
23933
+ if (unlikely(__pyx_t_12 == -1)) __PYX_ERR(0, 266, __pyx_L1_error)
23934
+ __Pyx_GOTREF(__pyx_t_1);
23935
+ __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 266, __pyx_L1_error)
23936
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
23940
23937
  __pyx_v_node = __pyx_t_12;
23941
23938
 
23942
- /* "sknetwork/hierarchy/paris.pyx":266
23939
+ /* "sknetwork/hierarchy/paris.pyx":267
23943
23940
  * while len(aggregate_graph.cluster_sizes):
23944
23941
  * for node in aggregate_graph.cluster_sizes:
23945
23942
  * break # <<<<<<<<<<<<<<
@@ -23949,9 +23946,9 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
23949
23946
  goto __pyx_L11_break;
23950
23947
  }
23951
23948
  __pyx_L11_break:;
23952
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
23949
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
23953
23950
 
23954
- /* "sknetwork/hierarchy/paris.pyx":267
23951
+ /* "sknetwork/hierarchy/paris.pyx":268
23955
23952
  * for node in aggregate_graph.cluster_sizes:
23956
23953
  * break
23957
23954
  * chain.clear() # <<<<<<<<<<<<<<
@@ -23960,7 +23957,7 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
23960
23957
  */
23961
23958
  __pyx_v_chain.clear();
23962
23959
 
23963
- /* "sknetwork/hierarchy/paris.pyx":268
23960
+ /* "sknetwork/hierarchy/paris.pyx":269
23964
23961
  * break
23965
23962
  * chain.clear()
23966
23963
  * chain.push_back(node) # <<<<<<<<<<<<<<
@@ -23971,10 +23968,10 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
23971
23968
  __pyx_v_chain.push_back(__pyx_v_node);
23972
23969
  } catch(...) {
23973
23970
  __Pyx_CppExn2PyErr();
23974
- __PYX_ERR(0, 268, __pyx_L1_error)
23971
+ __PYX_ERR(0, 269, __pyx_L1_error)
23975
23972
  }
23976
23973
 
23977
- /* "sknetwork/hierarchy/paris.pyx":269
23974
+ /* "sknetwork/hierarchy/paris.pyx":270
23978
23975
  * chain.clear()
23979
23976
  * chain.push_back(node)
23980
23977
  * while chain.size(): # <<<<<<<<<<<<<<
@@ -23985,7 +23982,7 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
23985
23982
  __pyx_t_8 = (__pyx_v_chain.size() != 0);
23986
23983
  if (!__pyx_t_8) break;
23987
23984
 
23988
- /* "sknetwork/hierarchy/paris.pyx":270
23985
+ /* "sknetwork/hierarchy/paris.pyx":271
23989
23986
  * chain.push_back(node)
23990
23987
  * while chain.size():
23991
23988
  * node = chain[chain.size() - 1] # <<<<<<<<<<<<<<
@@ -23994,7 +23991,7 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
23994
23991
  */
23995
23992
  __pyx_v_node = (__pyx_v_chain[(__pyx_v_chain.size() - 1)]);
23996
23993
 
23997
- /* "sknetwork/hierarchy/paris.pyx":271
23994
+ /* "sknetwork/hierarchy/paris.pyx":272
23998
23995
  * while chain.size():
23999
23996
  * node = chain[chain.size() - 1]
24000
23997
  * chain.pop_back() # <<<<<<<<<<<<<<
@@ -24003,7 +24000,7 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24003
24000
  */
24004
24001
  __pyx_v_chain.pop_back();
24005
24002
 
24006
- /* "sknetwork/hierarchy/paris.pyx":272
24003
+ /* "sknetwork/hierarchy/paris.pyx":273
24007
24004
  * node = chain[chain.size() - 1]
24008
24005
  * chain.pop_back()
24009
24006
  * if set(aggregate_graph.neighbors[node].keys()) - {node}: # <<<<<<<<<<<<<<
@@ -24012,66 +24009,66 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24012
24009
  */
24013
24010
  if (unlikely(__pyx_v_aggregate_graph->neighbors == Py_None)) {
24014
24011
  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
24015
- __PYX_ERR(0, 272, __pyx_L1_error)
24012
+ __PYX_ERR(0, 273, __pyx_L1_error)
24016
24013
  }
24017
- __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_node); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 272, __pyx_L1_error)
24018
- __Pyx_GOTREF(__pyx_t_5);
24019
- __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_aggregate_graph->neighbors, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 272, __pyx_L1_error)
24014
+ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 273, __pyx_L1_error)
24020
24015
  __Pyx_GOTREF(__pyx_t_1);
24021
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
24022
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_keys); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 272, __pyx_L1_error)
24016
+ __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_aggregate_graph->neighbors, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 273, __pyx_L1_error)
24023
24017
  __Pyx_GOTREF(__pyx_t_5);
24024
24018
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24025
- __pyx_t_1 = NULL;
24019
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 273, __pyx_L1_error)
24020
+ __Pyx_GOTREF(__pyx_t_1);
24021
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
24022
+ __pyx_t_5 = NULL;
24026
24023
  __pyx_t_4 = 0;
24027
24024
  #if CYTHON_UNPACK_METHODS
24028
- if (likely(PyMethod_Check(__pyx_t_5))) {
24029
- __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5);
24030
- if (likely(__pyx_t_1)) {
24031
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
24032
- __Pyx_INCREF(__pyx_t_1);
24025
+ if (likely(PyMethod_Check(__pyx_t_1))) {
24026
+ __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
24027
+ if (likely(__pyx_t_5)) {
24028
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
24029
+ __Pyx_INCREF(__pyx_t_5);
24033
24030
  __Pyx_INCREF(function);
24034
- __Pyx_DECREF_SET(__pyx_t_5, function);
24031
+ __Pyx_DECREF_SET(__pyx_t_1, function);
24035
24032
  __pyx_t_4 = 1;
24036
24033
  }
24037
24034
  }
24038
24035
  #endif
24039
24036
  {
24040
- PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
24041
- __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
24042
- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
24043
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 272, __pyx_L1_error)
24044
- __Pyx_GOTREF(__pyx_t_3);
24045
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
24037
+ PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
24038
+ __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
24039
+ __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
24040
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 273, __pyx_L1_error)
24041
+ __Pyx_GOTREF(__pyx_t_2);
24042
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24046
24043
  }
24047
- __pyx_t_5 = PySet_New(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 272, __pyx_L1_error)
24048
- __Pyx_GOTREF(__pyx_t_5);
24049
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24050
- __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_node); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 272, __pyx_L1_error)
24051
- __Pyx_GOTREF(__pyx_t_3);
24052
- __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 272, __pyx_L1_error)
24044
+ __pyx_t_1 = PySet_New(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 273, __pyx_L1_error)
24053
24045
  __Pyx_GOTREF(__pyx_t_1);
24054
- if (PySet_Add(__pyx_t_1, __pyx_t_3) < 0) __PYX_ERR(0, 272, __pyx_L1_error)
24055
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24056
- __pyx_t_3 = PyNumber_Subtract(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 272, __pyx_L1_error)
24057
- __Pyx_GOTREF(__pyx_t_3);
24058
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
24046
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24047
+ __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_node); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 273, __pyx_L1_error)
24048
+ __Pyx_GOTREF(__pyx_t_2);
24049
+ __pyx_t_5 = PySet_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 273, __pyx_L1_error)
24050
+ __Pyx_GOTREF(__pyx_t_5);
24051
+ if (PySet_Add(__pyx_t_5, __pyx_t_2) < 0) __PYX_ERR(0, 273, __pyx_L1_error)
24052
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24053
+ __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 273, __pyx_L1_error)
24054
+ __Pyx_GOTREF(__pyx_t_2);
24059
24055
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24060
- __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 272, __pyx_L1_error)
24061
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24056
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
24057
+ __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 273, __pyx_L1_error)
24058
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24062
24059
  if (__pyx_t_8) {
24063
24060
 
24064
- /* "sknetwork/hierarchy/paris.pyx":273
24061
+ /* "sknetwork/hierarchy/paris.pyx":274
24065
24062
  * chain.pop_back()
24066
24063
  * if set(aggregate_graph.neighbors[node].keys()) - {node}:
24067
24064
  * max_sim = -float("inf") # <<<<<<<<<<<<<<
24068
24065
  * for neighbor in set(aggregate_graph.neighbors[node].keys()) - {node}:
24069
24066
  * sim = aggregate_graph.similarity(node, neighbor)
24070
24067
  */
24071
- __pyx_t_13 = __Pyx_PyUnicode_AsDouble(__pyx_n_u_inf); if (unlikely(__pyx_t_13 == ((double)((double)-1)) && PyErr_Occurred())) __PYX_ERR(0, 273, __pyx_L1_error)
24068
+ __pyx_t_13 = __Pyx_PyUnicode_AsDouble(__pyx_n_u_inf); if (unlikely(__pyx_t_13 == ((double)((double)-1)) && PyErr_Occurred())) __PYX_ERR(0, 274, __pyx_L1_error)
24072
24069
  __pyx_v_max_sim = (-__pyx_t_13);
24073
24070
 
24074
- /* "sknetwork/hierarchy/paris.pyx":274
24071
+ /* "sknetwork/hierarchy/paris.pyx":275
24075
24072
  * if set(aggregate_graph.neighbors[node].keys()) - {node}:
24076
24073
  * max_sim = -float("inf")
24077
24074
  * for neighbor in set(aggregate_graph.neighbors[node].keys()) - {node}: # <<<<<<<<<<<<<<
@@ -24080,119 +24077,119 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24080
24077
  */
24081
24078
  if (unlikely(__pyx_v_aggregate_graph->neighbors == Py_None)) {
24082
24079
  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
24083
- __PYX_ERR(0, 274, __pyx_L1_error)
24080
+ __PYX_ERR(0, 275, __pyx_L1_error)
24084
24081
  }
24085
- __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 274, __pyx_L1_error)
24086
- __Pyx_GOTREF(__pyx_t_1);
24087
- __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_aggregate_graph->neighbors, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 274, __pyx_L1_error)
24082
+ __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_node); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 275, __pyx_L1_error)
24088
24083
  __Pyx_GOTREF(__pyx_t_5);
24089
- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24090
- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 274, __pyx_L1_error)
24084
+ __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_aggregate_graph->neighbors, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 275, __pyx_L1_error)
24091
24085
  __Pyx_GOTREF(__pyx_t_1);
24092
24086
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
24093
- __pyx_t_5 = NULL;
24087
+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_keys); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 275, __pyx_L1_error)
24088
+ __Pyx_GOTREF(__pyx_t_5);
24089
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24090
+ __pyx_t_1 = NULL;
24094
24091
  __pyx_t_4 = 0;
24095
24092
  #if CYTHON_UNPACK_METHODS
24096
- if (likely(PyMethod_Check(__pyx_t_1))) {
24097
- __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
24098
- if (likely(__pyx_t_5)) {
24099
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
24100
- __Pyx_INCREF(__pyx_t_5);
24093
+ if (likely(PyMethod_Check(__pyx_t_5))) {
24094
+ __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5);
24095
+ if (likely(__pyx_t_1)) {
24096
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
24097
+ __Pyx_INCREF(__pyx_t_1);
24101
24098
  __Pyx_INCREF(function);
24102
- __Pyx_DECREF_SET(__pyx_t_1, function);
24099
+ __Pyx_DECREF_SET(__pyx_t_5, function);
24103
24100
  __pyx_t_4 = 1;
24104
24101
  }
24105
24102
  }
24106
24103
  #endif
24107
24104
  {
24108
- PyObject *__pyx_callargs[2] = {__pyx_t_5, NULL};
24109
- __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
24110
- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
24111
- if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 274, __pyx_L1_error)
24112
- __Pyx_GOTREF(__pyx_t_3);
24113
- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24114
- }
24115
- __pyx_t_1 = PySet_New(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 274, __pyx_L1_error)
24116
- __Pyx_GOTREF(__pyx_t_1);
24117
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24118
- __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_node); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 274, __pyx_L1_error)
24119
- __Pyx_GOTREF(__pyx_t_3);
24120
- __pyx_t_5 = PySet_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 274, __pyx_L1_error)
24105
+ PyObject *__pyx_callargs[2] = {__pyx_t_1, NULL};
24106
+ __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4);
24107
+ __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
24108
+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 275, __pyx_L1_error)
24109
+ __Pyx_GOTREF(__pyx_t_2);
24110
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
24111
+ }
24112
+ __pyx_t_5 = PySet_New(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 275, __pyx_L1_error)
24121
24113
  __Pyx_GOTREF(__pyx_t_5);
24122
- if (PySet_Add(__pyx_t_5, __pyx_t_3) < 0) __PYX_ERR(0, 274, __pyx_L1_error)
24123
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24124
- __pyx_t_3 = PyNumber_Subtract(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 274, __pyx_L1_error)
24125
- __Pyx_GOTREF(__pyx_t_3);
24126
- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24114
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24115
+ __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_node); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 275, __pyx_L1_error)
24116
+ __Pyx_GOTREF(__pyx_t_2);
24117
+ __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 275, __pyx_L1_error)
24118
+ __Pyx_GOTREF(__pyx_t_1);
24119
+ if (PySet_Add(__pyx_t_1, __pyx_t_2) < 0) __PYX_ERR(0, 275, __pyx_L1_error)
24120
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24121
+ __pyx_t_2 = PyNumber_Subtract(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 275, __pyx_L1_error)
24122
+ __Pyx_GOTREF(__pyx_t_2);
24127
24123
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
24128
- if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
24129
- __pyx_t_5 = __pyx_t_3; __Pyx_INCREF(__pyx_t_5);
24124
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24125
+ if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
24126
+ __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1);
24130
24127
  __pyx_t_11 = 0;
24131
24128
  __pyx_t_14 = NULL;
24132
24129
  } else {
24133
- __pyx_t_11 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 274, __pyx_L1_error)
24134
- __Pyx_GOTREF(__pyx_t_5);
24135
- __pyx_t_14 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_5); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 274, __pyx_L1_error)
24130
+ __pyx_t_11 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 275, __pyx_L1_error)
24131
+ __Pyx_GOTREF(__pyx_t_1);
24132
+ __pyx_t_14 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 275, __pyx_L1_error)
24136
24133
  }
24137
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24134
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24138
24135
  for (;;) {
24139
24136
  if (likely(!__pyx_t_14)) {
24140
- if (likely(PyList_CheckExact(__pyx_t_5))) {
24137
+ if (likely(PyList_CheckExact(__pyx_t_1))) {
24141
24138
  {
24142
- Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5);
24139
+ Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
24143
24140
  #if !CYTHON_ASSUME_SAFE_MACROS
24144
- if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 274, __pyx_L1_error)
24141
+ if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 275, __pyx_L1_error)
24145
24142
  #endif
24146
24143
  if (__pyx_t_11 >= __pyx_temp) break;
24147
24144
  }
24148
24145
  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
24149
- __pyx_t_3 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_11); __Pyx_INCREF(__pyx_t_3); __pyx_t_11++; if (unlikely((0 < 0))) __PYX_ERR(0, 274, __pyx_L1_error)
24146
+ __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_2); __pyx_t_11++; if (unlikely((0 < 0))) __PYX_ERR(0, 275, __pyx_L1_error)
24150
24147
  #else
24151
- __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 274, __pyx_L1_error)
24152
- __Pyx_GOTREF(__pyx_t_3);
24148
+ __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 275, __pyx_L1_error)
24149
+ __Pyx_GOTREF(__pyx_t_2);
24153
24150
  #endif
24154
24151
  } else {
24155
24152
  {
24156
- Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_5);
24153
+ Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
24157
24154
  #if !CYTHON_ASSUME_SAFE_MACROS
24158
- if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 274, __pyx_L1_error)
24155
+ if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 275, __pyx_L1_error)
24159
24156
  #endif
24160
24157
  if (__pyx_t_11 >= __pyx_temp) break;
24161
24158
  }
24162
24159
  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
24163
- __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_11); __Pyx_INCREF(__pyx_t_3); __pyx_t_11++; if (unlikely((0 < 0))) __PYX_ERR(0, 274, __pyx_L1_error)
24160
+ __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_2); __pyx_t_11++; if (unlikely((0 < 0))) __PYX_ERR(0, 275, __pyx_L1_error)
24164
24161
  #else
24165
- __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 274, __pyx_L1_error)
24166
- __Pyx_GOTREF(__pyx_t_3);
24162
+ __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 275, __pyx_L1_error)
24163
+ __Pyx_GOTREF(__pyx_t_2);
24167
24164
  #endif
24168
24165
  }
24169
24166
  } else {
24170
- __pyx_t_3 = __pyx_t_14(__pyx_t_5);
24171
- if (unlikely(!__pyx_t_3)) {
24167
+ __pyx_t_2 = __pyx_t_14(__pyx_t_1);
24168
+ if (unlikely(!__pyx_t_2)) {
24172
24169
  PyObject* exc_type = PyErr_Occurred();
24173
24170
  if (exc_type) {
24174
24171
  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
24175
- else __PYX_ERR(0, 274, __pyx_L1_error)
24172
+ else __PYX_ERR(0, 275, __pyx_L1_error)
24176
24173
  }
24177
24174
  break;
24178
24175
  }
24179
- __Pyx_GOTREF(__pyx_t_3);
24176
+ __Pyx_GOTREF(__pyx_t_2);
24180
24177
  }
24181
- __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 274, __pyx_L1_error)
24182
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24178
+ __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 275, __pyx_L1_error)
24179
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24183
24180
  __pyx_v_neighbor = __pyx_t_4;
24184
24181
 
24185
- /* "sknetwork/hierarchy/paris.pyx":275
24182
+ /* "sknetwork/hierarchy/paris.pyx":276
24186
24183
  * max_sim = -float("inf")
24187
24184
  * for neighbor in set(aggregate_graph.neighbors[node].keys()) - {node}:
24188
24185
  * sim = aggregate_graph.similarity(node, neighbor) # <<<<<<<<<<<<<<
24189
24186
  * if sim > max_sim:
24190
24187
  * nearest_neighbor = neighbor
24191
24188
  */
24192
- __pyx_t_15 = ((struct __pyx_vtabstruct_9sknetwork_9hierarchy_5paris_AggregateGraph *)__pyx_v_aggregate_graph->__pyx_vtab)->similarity(__pyx_v_aggregate_graph, __pyx_v_node, __pyx_v_neighbor); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 275, __pyx_L1_error)
24189
+ __pyx_t_15 = ((struct __pyx_vtabstruct_9sknetwork_9hierarchy_5paris_AggregateGraph *)__pyx_v_aggregate_graph->__pyx_vtab)->similarity(__pyx_v_aggregate_graph, __pyx_v_node, __pyx_v_neighbor); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 276, __pyx_L1_error)
24193
24190
  __pyx_v_sim = __pyx_t_15;
24194
24191
 
24195
- /* "sknetwork/hierarchy/paris.pyx":276
24192
+ /* "sknetwork/hierarchy/paris.pyx":277
24196
24193
  * for neighbor in set(aggregate_graph.neighbors[node].keys()) - {node}:
24197
24194
  * sim = aggregate_graph.similarity(node, neighbor)
24198
24195
  * if sim > max_sim: # <<<<<<<<<<<<<<
@@ -24202,7 +24199,7 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24202
24199
  __pyx_t_8 = (__pyx_v_sim > __pyx_v_max_sim);
24203
24200
  if (__pyx_t_8) {
24204
24201
 
24205
- /* "sknetwork/hierarchy/paris.pyx":277
24202
+ /* "sknetwork/hierarchy/paris.pyx":278
24206
24203
  * sim = aggregate_graph.similarity(node, neighbor)
24207
24204
  * if sim > max_sim:
24208
24205
  * nearest_neighbor = neighbor # <<<<<<<<<<<<<<
@@ -24211,7 +24208,7 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24211
24208
  */
24212
24209
  __pyx_v_nearest_neighbor = __pyx_v_neighbor;
24213
24210
 
24214
- /* "sknetwork/hierarchy/paris.pyx":278
24211
+ /* "sknetwork/hierarchy/paris.pyx":279
24215
24212
  * if sim > max_sim:
24216
24213
  * nearest_neighbor = neighbor
24217
24214
  * max_sim = sim # <<<<<<<<<<<<<<
@@ -24220,7 +24217,7 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24220
24217
  */
24221
24218
  __pyx_v_max_sim = __pyx_v_sim;
24222
24219
 
24223
- /* "sknetwork/hierarchy/paris.pyx":276
24220
+ /* "sknetwork/hierarchy/paris.pyx":277
24224
24221
  * for neighbor in set(aggregate_graph.neighbors[node].keys()) - {node}:
24225
24222
  * sim = aggregate_graph.similarity(node, neighbor)
24226
24223
  * if sim > max_sim: # <<<<<<<<<<<<<<
@@ -24230,7 +24227,7 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24230
24227
  goto __pyx_L17;
24231
24228
  }
24232
24229
 
24233
- /* "sknetwork/hierarchy/paris.pyx":279
24230
+ /* "sknetwork/hierarchy/paris.pyx":280
24234
24231
  * nearest_neighbor = neighbor
24235
24232
  * max_sim = sim
24236
24233
  * elif sim == max_sim: # <<<<<<<<<<<<<<
@@ -24240,7 +24237,7 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24240
24237
  __pyx_t_8 = (__pyx_v_sim == __pyx_v_max_sim);
24241
24238
  if (__pyx_t_8) {
24242
24239
 
24243
- /* "sknetwork/hierarchy/paris.pyx":280
24240
+ /* "sknetwork/hierarchy/paris.pyx":281
24244
24241
  * max_sim = sim
24245
24242
  * elif sim == max_sim:
24246
24243
  * nearest_neighbor = min(neighbor, nearest_neighbor) # <<<<<<<<<<<<<<
@@ -24257,7 +24254,7 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24257
24254
  }
24258
24255
  __pyx_v_nearest_neighbor = __pyx_t_16;
24259
24256
 
24260
- /* "sknetwork/hierarchy/paris.pyx":279
24257
+ /* "sknetwork/hierarchy/paris.pyx":280
24261
24258
  * nearest_neighbor = neighbor
24262
24259
  * max_sim = sim
24263
24260
  * elif sim == max_sim: # <<<<<<<<<<<<<<
@@ -24267,7 +24264,7 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24267
24264
  }
24268
24265
  __pyx_L17:;
24269
24266
 
24270
- /* "sknetwork/hierarchy/paris.pyx":274
24267
+ /* "sknetwork/hierarchy/paris.pyx":275
24271
24268
  * if set(aggregate_graph.neighbors[node].keys()) - {node}:
24272
24269
  * max_sim = -float("inf")
24273
24270
  * for neighbor in set(aggregate_graph.neighbors[node].keys()) - {node}: # <<<<<<<<<<<<<<
@@ -24275,9 +24272,9 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24275
24272
  * if sim > max_sim:
24276
24273
  */
24277
24274
  }
24278
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
24275
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24279
24276
 
24280
- /* "sknetwork/hierarchy/paris.pyx":281
24277
+ /* "sknetwork/hierarchy/paris.pyx":282
24281
24278
  * elif sim == max_sim:
24282
24279
  * nearest_neighbor = min(neighbor, nearest_neighbor)
24283
24280
  * if chain.size(): # <<<<<<<<<<<<<<
@@ -24287,7 +24284,7 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24287
24284
  __pyx_t_8 = (__pyx_v_chain.size() != 0);
24288
24285
  if (__pyx_t_8) {
24289
24286
 
24290
- /* "sknetwork/hierarchy/paris.pyx":282
24287
+ /* "sknetwork/hierarchy/paris.pyx":283
24291
24288
  * nearest_neighbor = min(neighbor, nearest_neighbor)
24292
24289
  * if chain.size():
24293
24290
  * nearest_neighbor_last = chain[chain.size() - 1] # <<<<<<<<<<<<<<
@@ -24296,7 +24293,7 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24296
24293
  */
24297
24294
  __pyx_v_nearest_neighbor_last = (__pyx_v_chain[(__pyx_v_chain.size() - 1)]);
24298
24295
 
24299
- /* "sknetwork/hierarchy/paris.pyx":283
24296
+ /* "sknetwork/hierarchy/paris.pyx":284
24300
24297
  * if chain.size():
24301
24298
  * nearest_neighbor_last = chain[chain.size() - 1]
24302
24299
  * chain.pop_back() # <<<<<<<<<<<<<<
@@ -24305,7 +24302,7 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24305
24302
  */
24306
24303
  __pyx_v_chain.pop_back();
24307
24304
 
24308
- /* "sknetwork/hierarchy/paris.pyx":284
24305
+ /* "sknetwork/hierarchy/paris.pyx":285
24309
24306
  * nearest_neighbor_last = chain[chain.size() - 1]
24310
24307
  * chain.pop_back()
24311
24308
  * if nearest_neighbor_last == nearest_neighbor: # <<<<<<<<<<<<<<
@@ -24315,7 +24312,7 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24315
24312
  __pyx_t_8 = (__pyx_v_nearest_neighbor_last == __pyx_v_nearest_neighbor);
24316
24313
  if (__pyx_t_8) {
24317
24314
 
24318
- /* "sknetwork/hierarchy/paris.pyx":285
24315
+ /* "sknetwork/hierarchy/paris.pyx":286
24319
24316
  * chain.pop_back()
24320
24317
  * if nearest_neighbor_last == nearest_neighbor:
24321
24318
  * size = aggregate_graph.cluster_sizes[node] + aggregate_graph.cluster_sizes[nearest_neighbor] # <<<<<<<<<<<<<<
@@ -24324,75 +24321,75 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24324
24321
  */
24325
24322
  if (unlikely(__pyx_v_aggregate_graph->cluster_sizes == Py_None)) {
24326
24323
  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
24327
- __PYX_ERR(0, 285, __pyx_L1_error)
24324
+ __PYX_ERR(0, 286, __pyx_L1_error)
24328
24325
  }
24329
- __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_node); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 285, __pyx_L1_error)
24330
- __Pyx_GOTREF(__pyx_t_5);
24331
- __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_aggregate_graph->cluster_sizes, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 285, __pyx_L1_error)
24332
- __Pyx_GOTREF(__pyx_t_3);
24333
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
24326
+ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 286, __pyx_L1_error)
24327
+ __Pyx_GOTREF(__pyx_t_1);
24328
+ __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_aggregate_graph->cluster_sizes, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 286, __pyx_L1_error)
24329
+ __Pyx_GOTREF(__pyx_t_2);
24330
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24334
24331
  if (unlikely(__pyx_v_aggregate_graph->cluster_sizes == Py_None)) {
24335
24332
  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
24336
- __PYX_ERR(0, 285, __pyx_L1_error)
24333
+ __PYX_ERR(0, 286, __pyx_L1_error)
24337
24334
  }
24338
- __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_nearest_neighbor); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 285, __pyx_L1_error)
24339
- __Pyx_GOTREF(__pyx_t_5);
24340
- __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_aggregate_graph->cluster_sizes, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 285, __pyx_L1_error)
24335
+ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_nearest_neighbor); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 286, __pyx_L1_error)
24341
24336
  __Pyx_GOTREF(__pyx_t_1);
24342
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
24343
- __pyx_t_5 = PyNumber_Add(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 285, __pyx_L1_error)
24337
+ __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_aggregate_graph->cluster_sizes, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 286, __pyx_L1_error)
24344
24338
  __Pyx_GOTREF(__pyx_t_5);
24345
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24346
24339
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24347
- __Pyx_XDECREF_SET(__pyx_v_size, __pyx_t_5);
24348
- __pyx_t_5 = 0;
24340
+ __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 286, __pyx_L1_error)
24341
+ __Pyx_GOTREF(__pyx_t_1);
24342
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24343
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
24344
+ __Pyx_XDECREF_SET(__pyx_v_size, __pyx_t_1);
24345
+ __pyx_t_1 = 0;
24349
24346
 
24350
- /* "sknetwork/hierarchy/paris.pyx":286
24347
+ /* "sknetwork/hierarchy/paris.pyx":287
24351
24348
  * if nearest_neighbor_last == nearest_neighbor:
24352
24349
  * size = aggregate_graph.cluster_sizes[node] + aggregate_graph.cluster_sizes[nearest_neighbor]
24353
24350
  * dendrogram.append([node, nearest_neighbor, 1. / max_sim, size]) # <<<<<<<<<<<<<<
24354
24351
  * aggregate_graph.merge(node, nearest_neighbor)
24355
24352
  * else:
24356
24353
  */
24357
- __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_node); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 286, __pyx_L1_error)
24358
- __Pyx_GOTREF(__pyx_t_5);
24359
- __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_nearest_neighbor); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 286, __pyx_L1_error)
24354
+ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 287, __pyx_L1_error)
24360
24355
  __Pyx_GOTREF(__pyx_t_1);
24356
+ __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_nearest_neighbor); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 287, __pyx_L1_error)
24357
+ __Pyx_GOTREF(__pyx_t_5);
24361
24358
  if (unlikely(__pyx_v_max_sim == 0)) {
24362
24359
  PyErr_SetString(PyExc_ZeroDivisionError, "float division");
24363
- __PYX_ERR(0, 286, __pyx_L1_error)
24360
+ __PYX_ERR(0, 287, __pyx_L1_error)
24364
24361
  }
24365
- __pyx_t_3 = PyFloat_FromDouble((1. / ((double)__pyx_v_max_sim))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 286, __pyx_L1_error)
24366
- __Pyx_GOTREF(__pyx_t_3);
24367
- __pyx_t_2 = PyList_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 286, __pyx_L1_error)
24362
+ __pyx_t_2 = PyFloat_FromDouble((1. / ((double)__pyx_v_max_sim))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 287, __pyx_L1_error)
24368
24363
  __Pyx_GOTREF(__pyx_t_2);
24369
- __Pyx_GIVEREF(__pyx_t_5);
24370
- if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_5)) __PYX_ERR(0, 286, __pyx_L1_error);
24364
+ __pyx_t_3 = PyList_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 287, __pyx_L1_error)
24365
+ __Pyx_GOTREF(__pyx_t_3);
24371
24366
  __Pyx_GIVEREF(__pyx_t_1);
24372
- if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_t_1)) __PYX_ERR(0, 286, __pyx_L1_error);
24373
- __Pyx_GIVEREF(__pyx_t_3);
24374
- if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 2, __pyx_t_3)) __PYX_ERR(0, 286, __pyx_L1_error);
24367
+ if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_1)) __PYX_ERR(0, 287, __pyx_L1_error);
24368
+ __Pyx_GIVEREF(__pyx_t_5);
24369
+ if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_5)) __PYX_ERR(0, 287, __pyx_L1_error);
24370
+ __Pyx_GIVEREF(__pyx_t_2);
24371
+ if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 2, __pyx_t_2)) __PYX_ERR(0, 287, __pyx_L1_error);
24375
24372
  __Pyx_INCREF(__pyx_v_size);
24376
24373
  __Pyx_GIVEREF(__pyx_v_size);
24377
- if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 3, __pyx_v_size)) __PYX_ERR(0, 286, __pyx_L1_error);
24378
- __pyx_t_5 = 0;
24374
+ if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 3, __pyx_v_size)) __PYX_ERR(0, 287, __pyx_L1_error);
24379
24375
  __pyx_t_1 = 0;
24380
- __pyx_t_3 = 0;
24381
- __pyx_t_17 = __Pyx_PyObject_Append(__pyx_v_dendrogram, __pyx_t_2); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 286, __pyx_L1_error)
24382
- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24376
+ __pyx_t_5 = 0;
24377
+ __pyx_t_2 = 0;
24378
+ __pyx_t_17 = __Pyx_PyObject_Append(__pyx_v_dendrogram, __pyx_t_3); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 287, __pyx_L1_error)
24379
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24383
24380
 
24384
- /* "sknetwork/hierarchy/paris.pyx":287
24381
+ /* "sknetwork/hierarchy/paris.pyx":288
24385
24382
  * size = aggregate_graph.cluster_sizes[node] + aggregate_graph.cluster_sizes[nearest_neighbor]
24386
24383
  * dendrogram.append([node, nearest_neighbor, 1. / max_sim, size])
24387
24384
  * aggregate_graph.merge(node, nearest_neighbor) # <<<<<<<<<<<<<<
24388
24385
  * else:
24389
24386
  * chain.push_back(nearest_neighbor_last)
24390
24387
  */
24391
- __pyx_t_2 = ((PyObject *)((struct __pyx_vtabstruct_9sknetwork_9hierarchy_5paris_AggregateGraph *)__pyx_v_aggregate_graph->__pyx_vtab)->merge(__pyx_v_aggregate_graph, __pyx_v_node, __pyx_v_nearest_neighbor, 0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 287, __pyx_L1_error)
24392
- __Pyx_GOTREF(__pyx_t_2);
24393
- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24388
+ __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_9sknetwork_9hierarchy_5paris_AggregateGraph *)__pyx_v_aggregate_graph->__pyx_vtab)->merge(__pyx_v_aggregate_graph, __pyx_v_node, __pyx_v_nearest_neighbor, 0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 288, __pyx_L1_error)
24389
+ __Pyx_GOTREF(__pyx_t_3);
24390
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24394
24391
 
24395
- /* "sknetwork/hierarchy/paris.pyx":284
24392
+ /* "sknetwork/hierarchy/paris.pyx":285
24396
24393
  * nearest_neighbor_last = chain[chain.size() - 1]
24397
24394
  * chain.pop_back()
24398
24395
  * if nearest_neighbor_last == nearest_neighbor: # <<<<<<<<<<<<<<
@@ -24402,7 +24399,7 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24402
24399
  goto __pyx_L20;
24403
24400
  }
24404
24401
 
24405
- /* "sknetwork/hierarchy/paris.pyx":289
24402
+ /* "sknetwork/hierarchy/paris.pyx":290
24406
24403
  * aggregate_graph.merge(node, nearest_neighbor)
24407
24404
  * else:
24408
24405
  * chain.push_back(nearest_neighbor_last) # <<<<<<<<<<<<<<
@@ -24414,10 +24411,10 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24414
24411
  __pyx_v_chain.push_back(__pyx_v_nearest_neighbor_last);
24415
24412
  } catch(...) {
24416
24413
  __Pyx_CppExn2PyErr();
24417
- __PYX_ERR(0, 289, __pyx_L1_error)
24414
+ __PYX_ERR(0, 290, __pyx_L1_error)
24418
24415
  }
24419
24416
 
24420
- /* "sknetwork/hierarchy/paris.pyx":290
24417
+ /* "sknetwork/hierarchy/paris.pyx":291
24421
24418
  * else:
24422
24419
  * chain.push_back(nearest_neighbor_last)
24423
24420
  * chain.push_back(node) # <<<<<<<<<<<<<<
@@ -24428,10 +24425,10 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24428
24425
  __pyx_v_chain.push_back(__pyx_v_node);
24429
24426
  } catch(...) {
24430
24427
  __Pyx_CppExn2PyErr();
24431
- __PYX_ERR(0, 290, __pyx_L1_error)
24428
+ __PYX_ERR(0, 291, __pyx_L1_error)
24432
24429
  }
24433
24430
 
24434
- /* "sknetwork/hierarchy/paris.pyx":291
24431
+ /* "sknetwork/hierarchy/paris.pyx":292
24435
24432
  * chain.push_back(nearest_neighbor_last)
24436
24433
  * chain.push_back(node)
24437
24434
  * chain.push_back(nearest_neighbor) # <<<<<<<<<<<<<<
@@ -24442,12 +24439,12 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24442
24439
  __pyx_v_chain.push_back(__pyx_v_nearest_neighbor);
24443
24440
  } catch(...) {
24444
24441
  __Pyx_CppExn2PyErr();
24445
- __PYX_ERR(0, 291, __pyx_L1_error)
24442
+ __PYX_ERR(0, 292, __pyx_L1_error)
24446
24443
  }
24447
24444
  }
24448
24445
  __pyx_L20:;
24449
24446
 
24450
- /* "sknetwork/hierarchy/paris.pyx":281
24447
+ /* "sknetwork/hierarchy/paris.pyx":282
24451
24448
  * elif sim == max_sim:
24452
24449
  * nearest_neighbor = min(neighbor, nearest_neighbor)
24453
24450
  * if chain.size(): # <<<<<<<<<<<<<<
@@ -24457,7 +24454,7 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24457
24454
  goto __pyx_L19;
24458
24455
  }
24459
24456
 
24460
- /* "sknetwork/hierarchy/paris.pyx":293
24457
+ /* "sknetwork/hierarchy/paris.pyx":294
24461
24458
  * chain.push_back(nearest_neighbor)
24462
24459
  * else:
24463
24460
  * chain.push_back(node) # <<<<<<<<<<<<<<
@@ -24469,10 +24466,10 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24469
24466
  __pyx_v_chain.push_back(__pyx_v_node);
24470
24467
  } catch(...) {
24471
24468
  __Pyx_CppExn2PyErr();
24472
- __PYX_ERR(0, 293, __pyx_L1_error)
24469
+ __PYX_ERR(0, 294, __pyx_L1_error)
24473
24470
  }
24474
24471
 
24475
- /* "sknetwork/hierarchy/paris.pyx":294
24472
+ /* "sknetwork/hierarchy/paris.pyx":295
24476
24473
  * else:
24477
24474
  * chain.push_back(node)
24478
24475
  * chain.push_back(nearest_neighbor) # <<<<<<<<<<<<<<
@@ -24483,12 +24480,12 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24483
24480
  __pyx_v_chain.push_back(__pyx_v_nearest_neighbor);
24484
24481
  } catch(...) {
24485
24482
  __Pyx_CppExn2PyErr();
24486
- __PYX_ERR(0, 294, __pyx_L1_error)
24483
+ __PYX_ERR(0, 295, __pyx_L1_error)
24487
24484
  }
24488
24485
  }
24489
24486
  __pyx_L19:;
24490
24487
 
24491
- /* "sknetwork/hierarchy/paris.pyx":272
24488
+ /* "sknetwork/hierarchy/paris.pyx":273
24492
24489
  * node = chain[chain.size() - 1]
24493
24490
  * chain.pop_back()
24494
24491
  * if set(aggregate_graph.neighbors[node].keys()) - {node}: # <<<<<<<<<<<<<<
@@ -24498,7 +24495,7 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24498
24495
  goto __pyx_L14;
24499
24496
  }
24500
24497
 
24501
- /* "sknetwork/hierarchy/paris.pyx":296
24498
+ /* "sknetwork/hierarchy/paris.pyx":297
24502
24499
  * chain.push_back(nearest_neighbor)
24503
24500
  * else:
24504
24501
  * connected_components.push_back((node, aggregate_graph.cluster_sizes[node])) # <<<<<<<<<<<<<<
@@ -24508,25 +24505,25 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24508
24505
  /*else*/ {
24509
24506
  if (unlikely(__pyx_v_aggregate_graph->cluster_sizes == Py_None)) {
24510
24507
  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
24511
- __PYX_ERR(0, 296, __pyx_L1_error)
24508
+ __PYX_ERR(0, 297, __pyx_L1_error)
24512
24509
  }
24513
- __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_node); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 296, __pyx_L1_error)
24514
- __Pyx_GOTREF(__pyx_t_2);
24515
- __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_aggregate_graph->cluster_sizes, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 296, __pyx_L1_error)
24510
+ __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_node); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 297, __pyx_L1_error)
24516
24511
  __Pyx_GOTREF(__pyx_t_3);
24517
- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24518
- __pyx_t_16 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_16 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 296, __pyx_L1_error)
24512
+ __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_aggregate_graph->cluster_sizes, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 297, __pyx_L1_error)
24513
+ __Pyx_GOTREF(__pyx_t_2);
24519
24514
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24515
+ __pyx_t_16 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_16 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 297, __pyx_L1_error)
24516
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24520
24517
  __pyx_t_18.f0 = __pyx_v_node;
24521
24518
  __pyx_t_18.f1 = __pyx_t_16;
24522
24519
  try {
24523
24520
  __pyx_v_connected_components.push_back(__pyx_t_18);
24524
24521
  } catch(...) {
24525
24522
  __Pyx_CppExn2PyErr();
24526
- __PYX_ERR(0, 296, __pyx_L1_error)
24523
+ __PYX_ERR(0, 297, __pyx_L1_error)
24527
24524
  }
24528
24525
 
24529
- /* "sknetwork/hierarchy/paris.pyx":297
24526
+ /* "sknetwork/hierarchy/paris.pyx":298
24530
24527
  * else:
24531
24528
  * connected_components.push_back((node, aggregate_graph.cluster_sizes[node]))
24532
24529
  * del aggregate_graph.cluster_sizes[node] # <<<<<<<<<<<<<<
@@ -24535,18 +24532,18 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24535
24532
  */
24536
24533
  if (unlikely(__pyx_v_aggregate_graph->cluster_sizes == Py_None)) {
24537
24534
  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
24538
- __PYX_ERR(0, 297, __pyx_L1_error)
24535
+ __PYX_ERR(0, 298, __pyx_L1_error)
24539
24536
  }
24540
- __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_node); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 297, __pyx_L1_error)
24541
- __Pyx_GOTREF(__pyx_t_3);
24542
- if (unlikely((PyDict_DelItem(__pyx_v_aggregate_graph->cluster_sizes, __pyx_t_3) < 0))) __PYX_ERR(0, 297, __pyx_L1_error)
24543
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24537
+ __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_node); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 298, __pyx_L1_error)
24538
+ __Pyx_GOTREF(__pyx_t_2);
24539
+ if (unlikely((PyDict_DelItem(__pyx_v_aggregate_graph->cluster_sizes, __pyx_t_2) < 0))) __PYX_ERR(0, 298, __pyx_L1_error)
24540
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24544
24541
  }
24545
24542
  __pyx_L14:;
24546
24543
  }
24547
24544
  }
24548
24545
 
24549
- /* "sknetwork/hierarchy/paris.pyx":299
24546
+ /* "sknetwork/hierarchy/paris.pyx":300
24550
24547
  * del aggregate_graph.cluster_sizes[node]
24551
24548
  *
24552
24549
  * node, cluster_size = connected_components[connected_components.size() - 1] # <<<<<<<<<<<<<<
@@ -24559,7 +24556,7 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24559
24556
  __pyx_v_node = __pyx_t_16;
24560
24557
  __pyx_v_cluster_size = __pyx_t_4;
24561
24558
 
24562
- /* "sknetwork/hierarchy/paris.pyx":300
24559
+ /* "sknetwork/hierarchy/paris.pyx":301
24563
24560
  *
24564
24561
  * node, cluster_size = connected_components[connected_components.size() - 1]
24565
24562
  * connected_components.pop_back() # <<<<<<<<<<<<<<
@@ -24568,7 +24565,7 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24568
24565
  */
24569
24566
  __pyx_v_connected_components.pop_back();
24570
24567
 
24571
- /* "sknetwork/hierarchy/paris.pyx":301
24568
+ /* "sknetwork/hierarchy/paris.pyx":302
24572
24569
  * node, cluster_size = connected_components[connected_components.size() - 1]
24573
24570
  * connected_components.pop_back()
24574
24571
  * for next_node, next_cluster_size in connected_components: # <<<<<<<<<<<<<<
@@ -24580,62 +24577,62 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24580
24577
  if (!(__pyx_t_19 != __pyx_v_connected_components.end())) break;
24581
24578
  __pyx_t_18 = *__pyx_t_19;
24582
24579
  ++__pyx_t_19;
24583
- __pyx_t_3 = __pyx_convert__to_py___pyx_ctuple_int__and_int(__pyx_t_18); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 301, __pyx_L1_error)
24584
- __Pyx_GOTREF(__pyx_t_3);
24585
- if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
24586
- PyObject* sequence = __pyx_t_3;
24580
+ __pyx_t_2 = __pyx_convert__to_py___pyx_ctuple_int__and_int(__pyx_t_18); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 302, __pyx_L1_error)
24581
+ __Pyx_GOTREF(__pyx_t_2);
24582
+ if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
24583
+ PyObject* sequence = __pyx_t_2;
24587
24584
  Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
24588
24585
  if (unlikely(size != 2)) {
24589
24586
  if (size > 2) __Pyx_RaiseTooManyValuesError(2);
24590
24587
  else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
24591
- __PYX_ERR(0, 301, __pyx_L1_error)
24588
+ __PYX_ERR(0, 302, __pyx_L1_error)
24592
24589
  }
24593
24590
  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
24594
24591
  if (likely(PyTuple_CheckExact(sequence))) {
24595
- __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0);
24596
- __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1);
24592
+ __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0);
24593
+ __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1);
24597
24594
  } else {
24598
- __pyx_t_2 = PyList_GET_ITEM(sequence, 0);
24599
- __pyx_t_1 = PyList_GET_ITEM(sequence, 1);
24595
+ __pyx_t_3 = PyList_GET_ITEM(sequence, 0);
24596
+ __pyx_t_5 = PyList_GET_ITEM(sequence, 1);
24600
24597
  }
24601
- __Pyx_INCREF(__pyx_t_2);
24602
- __Pyx_INCREF(__pyx_t_1);
24598
+ __Pyx_INCREF(__pyx_t_3);
24599
+ __Pyx_INCREF(__pyx_t_5);
24603
24600
  #else
24604
- __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 301, __pyx_L1_error)
24605
- __Pyx_GOTREF(__pyx_t_2);
24606
- __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 301, __pyx_L1_error)
24607
- __Pyx_GOTREF(__pyx_t_1);
24601
+ __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 302, __pyx_L1_error)
24602
+ __Pyx_GOTREF(__pyx_t_3);
24603
+ __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 302, __pyx_L1_error)
24604
+ __Pyx_GOTREF(__pyx_t_5);
24608
24605
  #endif
24609
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24606
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24610
24607
  } else {
24611
24608
  Py_ssize_t index = -1;
24612
- __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 301, __pyx_L1_error)
24613
- __Pyx_GOTREF(__pyx_t_5);
24614
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24615
- __pyx_t_6 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_5);
24616
- index = 0; __pyx_t_2 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_2)) goto __pyx_L23_unpacking_failed;
24617
- __Pyx_GOTREF(__pyx_t_2);
24618
- index = 1; __pyx_t_1 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_1)) goto __pyx_L23_unpacking_failed;
24609
+ __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 302, __pyx_L1_error)
24619
24610
  __Pyx_GOTREF(__pyx_t_1);
24620
- if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 2) < 0) __PYX_ERR(0, 301, __pyx_L1_error)
24611
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24612
+ __pyx_t_6 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_1);
24613
+ index = 0; __pyx_t_3 = __pyx_t_6(__pyx_t_1); if (unlikely(!__pyx_t_3)) goto __pyx_L23_unpacking_failed;
24614
+ __Pyx_GOTREF(__pyx_t_3);
24615
+ index = 1; __pyx_t_5 = __pyx_t_6(__pyx_t_1); if (unlikely(!__pyx_t_5)) goto __pyx_L23_unpacking_failed;
24616
+ __Pyx_GOTREF(__pyx_t_5);
24617
+ if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_1), 2) < 0) __PYX_ERR(0, 302, __pyx_L1_error)
24621
24618
  __pyx_t_6 = NULL;
24622
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
24619
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24623
24620
  goto __pyx_L24_unpacking_done;
24624
24621
  __pyx_L23_unpacking_failed:;
24625
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
24622
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24626
24623
  __pyx_t_6 = NULL;
24627
24624
  if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
24628
- __PYX_ERR(0, 301, __pyx_L1_error)
24625
+ __PYX_ERR(0, 302, __pyx_L1_error)
24629
24626
  __pyx_L24_unpacking_done:;
24630
24627
  }
24631
- __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 301, __pyx_L1_error)
24632
- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24633
- __pyx_t_16 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_16 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 301, __pyx_L1_error)
24634
- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24628
+ __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 302, __pyx_L1_error)
24629
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24630
+ __pyx_t_16 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_16 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 302, __pyx_L1_error)
24631
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
24635
24632
  __pyx_v_next_node = __pyx_t_4;
24636
24633
  __pyx_v_next_cluster_size = __pyx_t_16;
24637
24634
 
24638
- /* "sknetwork/hierarchy/paris.pyx":302
24635
+ /* "sknetwork/hierarchy/paris.pyx":303
24639
24636
  * connected_components.pop_back()
24640
24637
  * for next_node, next_cluster_size in connected_components:
24641
24638
  * cluster_size += next_cluster_size # <<<<<<<<<<<<<<
@@ -24644,40 +24641,40 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24644
24641
  */
24645
24642
  __pyx_v_cluster_size = (__pyx_v_cluster_size + __pyx_v_next_cluster_size);
24646
24643
 
24647
- /* "sknetwork/hierarchy/paris.pyx":303
24644
+ /* "sknetwork/hierarchy/paris.pyx":304
24648
24645
  * for next_node, next_cluster_size in connected_components:
24649
24646
  * cluster_size += next_cluster_size
24650
24647
  * dendrogram.append([node, next_node, float("inf"), cluster_size]) # <<<<<<<<<<<<<<
24651
24648
  * node = aggregate_graph.next_cluster
24652
24649
  * aggregate_graph.next_cluster += 1
24653
24650
  */
24654
- __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_node); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 303, __pyx_L1_error)
24655
- __Pyx_GOTREF(__pyx_t_3);
24656
- __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_next_node); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 303, __pyx_L1_error)
24657
- __Pyx_GOTREF(__pyx_t_1);
24658
- __pyx_t_13 = __Pyx_PyUnicode_AsDouble(__pyx_n_u_inf); if (unlikely(__pyx_t_13 == ((double)((double)-1)) && PyErr_Occurred())) __PYX_ERR(0, 303, __pyx_L1_error)
24659
- __pyx_t_2 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 303, __pyx_L1_error)
24651
+ __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_node); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 304, __pyx_L1_error)
24660
24652
  __Pyx_GOTREF(__pyx_t_2);
24661
- __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_cluster_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 303, __pyx_L1_error)
24653
+ __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_next_node); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 304, __pyx_L1_error)
24662
24654
  __Pyx_GOTREF(__pyx_t_5);
24663
- __pyx_t_9 = PyList_New(4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 303, __pyx_L1_error)
24655
+ __pyx_t_13 = __Pyx_PyUnicode_AsDouble(__pyx_n_u_inf); if (unlikely(__pyx_t_13 == ((double)((double)-1)) && PyErr_Occurred())) __PYX_ERR(0, 304, __pyx_L1_error)
24656
+ __pyx_t_3 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 304, __pyx_L1_error)
24657
+ __Pyx_GOTREF(__pyx_t_3);
24658
+ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_cluster_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 304, __pyx_L1_error)
24659
+ __Pyx_GOTREF(__pyx_t_1);
24660
+ __pyx_t_9 = PyList_New(4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 304, __pyx_L1_error)
24664
24661
  __Pyx_GOTREF(__pyx_t_9);
24665
- __Pyx_GIVEREF(__pyx_t_3);
24666
- if (__Pyx_PyList_SET_ITEM(__pyx_t_9, 0, __pyx_t_3)) __PYX_ERR(0, 303, __pyx_L1_error);
24667
- __Pyx_GIVEREF(__pyx_t_1);
24668
- if (__Pyx_PyList_SET_ITEM(__pyx_t_9, 1, __pyx_t_1)) __PYX_ERR(0, 303, __pyx_L1_error);
24669
24662
  __Pyx_GIVEREF(__pyx_t_2);
24670
- if (__Pyx_PyList_SET_ITEM(__pyx_t_9, 2, __pyx_t_2)) __PYX_ERR(0, 303, __pyx_L1_error);
24663
+ if (__Pyx_PyList_SET_ITEM(__pyx_t_9, 0, __pyx_t_2)) __PYX_ERR(0, 304, __pyx_L1_error);
24671
24664
  __Pyx_GIVEREF(__pyx_t_5);
24672
- if (__Pyx_PyList_SET_ITEM(__pyx_t_9, 3, __pyx_t_5)) __PYX_ERR(0, 303, __pyx_L1_error);
24673
- __pyx_t_3 = 0;
24674
- __pyx_t_1 = 0;
24665
+ if (__Pyx_PyList_SET_ITEM(__pyx_t_9, 1, __pyx_t_5)) __PYX_ERR(0, 304, __pyx_L1_error);
24666
+ __Pyx_GIVEREF(__pyx_t_3);
24667
+ if (__Pyx_PyList_SET_ITEM(__pyx_t_9, 2, __pyx_t_3)) __PYX_ERR(0, 304, __pyx_L1_error);
24668
+ __Pyx_GIVEREF(__pyx_t_1);
24669
+ if (__Pyx_PyList_SET_ITEM(__pyx_t_9, 3, __pyx_t_1)) __PYX_ERR(0, 304, __pyx_L1_error);
24675
24670
  __pyx_t_2 = 0;
24676
24671
  __pyx_t_5 = 0;
24677
- __pyx_t_17 = __Pyx_PyObject_Append(__pyx_v_dendrogram, __pyx_t_9); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 303, __pyx_L1_error)
24672
+ __pyx_t_3 = 0;
24673
+ __pyx_t_1 = 0;
24674
+ __pyx_t_17 = __Pyx_PyObject_Append(__pyx_v_dendrogram, __pyx_t_9); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 304, __pyx_L1_error)
24678
24675
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
24679
24676
 
24680
- /* "sknetwork/hierarchy/paris.pyx":304
24677
+ /* "sknetwork/hierarchy/paris.pyx":305
24681
24678
  * cluster_size += next_cluster_size
24682
24679
  * dendrogram.append([node, next_node, float("inf"), cluster_size])
24683
24680
  * node = aggregate_graph.next_cluster # <<<<<<<<<<<<<<
@@ -24687,7 +24684,7 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24687
24684
  __pyx_t_16 = __pyx_v_aggregate_graph->next_cluster;
24688
24685
  __pyx_v_node = __pyx_t_16;
24689
24686
 
24690
- /* "sknetwork/hierarchy/paris.pyx":305
24687
+ /* "sknetwork/hierarchy/paris.pyx":306
24691
24688
  * dendrogram.append([node, next_node, float("inf"), cluster_size])
24692
24689
  * node = aggregate_graph.next_cluster
24693
24690
  * aggregate_graph.next_cluster += 1 # <<<<<<<<<<<<<<
@@ -24696,7 +24693,7 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24696
24693
  */
24697
24694
  __pyx_v_aggregate_graph->next_cluster = (__pyx_v_aggregate_graph->next_cluster + 1);
24698
24695
 
24699
- /* "sknetwork/hierarchy/paris.pyx":301
24696
+ /* "sknetwork/hierarchy/paris.pyx":302
24700
24697
  * node, cluster_size = connected_components[connected_components.size() - 1]
24701
24698
  * connected_components.pop_back()
24702
24699
  * for next_node, next_cluster_size in connected_components: # <<<<<<<<<<<<<<
@@ -24705,91 +24702,91 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24705
24702
  */
24706
24703
  }
24707
24704
 
24708
- /* "sknetwork/hierarchy/paris.pyx":307
24705
+ /* "sknetwork/hierarchy/paris.pyx":308
24709
24706
  * aggregate_graph.next_cluster += 1
24710
24707
  *
24711
24708
  * dendrogram = np.array(dendrogram) # <<<<<<<<<<<<<<
24712
24709
  * if self.reorder:
24713
24710
  * dendrogram = reorder_dendrogram(dendrogram)
24714
24711
  */
24715
- __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 307, __pyx_L1_error)
24716
- __Pyx_GOTREF(__pyx_t_5);
24717
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_array); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 307, __pyx_L1_error)
24718
- __Pyx_GOTREF(__pyx_t_2);
24719
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
24720
- __pyx_t_5 = NULL;
24712
+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 308, __pyx_L1_error)
24713
+ __Pyx_GOTREF(__pyx_t_1);
24714
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_array); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 308, __pyx_L1_error)
24715
+ __Pyx_GOTREF(__pyx_t_3);
24716
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24717
+ __pyx_t_1 = NULL;
24721
24718
  __pyx_t_16 = 0;
24722
24719
  #if CYTHON_UNPACK_METHODS
24723
- if (unlikely(PyMethod_Check(__pyx_t_2))) {
24724
- __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
24725
- if (likely(__pyx_t_5)) {
24726
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
24727
- __Pyx_INCREF(__pyx_t_5);
24720
+ if (unlikely(PyMethod_Check(__pyx_t_3))) {
24721
+ __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
24722
+ if (likely(__pyx_t_1)) {
24723
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
24724
+ __Pyx_INCREF(__pyx_t_1);
24728
24725
  __Pyx_INCREF(function);
24729
- __Pyx_DECREF_SET(__pyx_t_2, function);
24726
+ __Pyx_DECREF_SET(__pyx_t_3, function);
24730
24727
  __pyx_t_16 = 1;
24731
24728
  }
24732
24729
  }
24733
24730
  #endif
24734
24731
  {
24735
- PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_dendrogram};
24736
- __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_16, 1+__pyx_t_16);
24737
- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
24738
- if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 307, __pyx_L1_error)
24732
+ PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_v_dendrogram};
24733
+ __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_16, 1+__pyx_t_16);
24734
+ __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
24735
+ if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 308, __pyx_L1_error)
24739
24736
  __Pyx_GOTREF(__pyx_t_9);
24740
- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24737
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24741
24738
  }
24742
24739
  __Pyx_DECREF_SET(__pyx_v_dendrogram, __pyx_t_9);
24743
24740
  __pyx_t_9 = 0;
24744
24741
 
24745
- /* "sknetwork/hierarchy/paris.pyx":308
24742
+ /* "sknetwork/hierarchy/paris.pyx":309
24746
24743
  *
24747
24744
  * dendrogram = np.array(dendrogram)
24748
24745
  * if self.reorder: # <<<<<<<<<<<<<<
24749
24746
  * dendrogram = reorder_dendrogram(dendrogram)
24750
24747
  *
24751
24748
  */
24752
- __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reorder); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 308, __pyx_L1_error)
24749
+ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reorder); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 309, __pyx_L1_error)
24753
24750
  __Pyx_GOTREF(__pyx_t_9);
24754
- __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 308, __pyx_L1_error)
24751
+ __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 309, __pyx_L1_error)
24755
24752
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
24756
24753
  if (__pyx_t_8) {
24757
24754
 
24758
- /* "sknetwork/hierarchy/paris.pyx":309
24755
+ /* "sknetwork/hierarchy/paris.pyx":310
24759
24756
  * dendrogram = np.array(dendrogram)
24760
24757
  * if self.reorder:
24761
24758
  * dendrogram = reorder_dendrogram(dendrogram) # <<<<<<<<<<<<<<
24762
24759
  *
24763
24760
  * self.dendrogram_ = dendrogram
24764
24761
  */
24765
- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_reorder_dendrogram); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 309, __pyx_L1_error)
24766
- __Pyx_GOTREF(__pyx_t_2);
24767
- __pyx_t_5 = NULL;
24762
+ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_reorder_dendrogram); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 310, __pyx_L1_error)
24763
+ __Pyx_GOTREF(__pyx_t_3);
24764
+ __pyx_t_1 = NULL;
24768
24765
  __pyx_t_16 = 0;
24769
24766
  #if CYTHON_UNPACK_METHODS
24770
- if (unlikely(PyMethod_Check(__pyx_t_2))) {
24771
- __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
24772
- if (likely(__pyx_t_5)) {
24773
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
24774
- __Pyx_INCREF(__pyx_t_5);
24767
+ if (unlikely(PyMethod_Check(__pyx_t_3))) {
24768
+ __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
24769
+ if (likely(__pyx_t_1)) {
24770
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
24771
+ __Pyx_INCREF(__pyx_t_1);
24775
24772
  __Pyx_INCREF(function);
24776
- __Pyx_DECREF_SET(__pyx_t_2, function);
24773
+ __Pyx_DECREF_SET(__pyx_t_3, function);
24777
24774
  __pyx_t_16 = 1;
24778
24775
  }
24779
24776
  }
24780
24777
  #endif
24781
24778
  {
24782
- PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_dendrogram};
24783
- __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_16, 1+__pyx_t_16);
24784
- __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
24785
- if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 309, __pyx_L1_error)
24779
+ PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_v_dendrogram};
24780
+ __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_16, 1+__pyx_t_16);
24781
+ __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
24782
+ if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 310, __pyx_L1_error)
24786
24783
  __Pyx_GOTREF(__pyx_t_9);
24787
- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24784
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24788
24785
  }
24789
24786
  __Pyx_DECREF_SET(__pyx_v_dendrogram, __pyx_t_9);
24790
24787
  __pyx_t_9 = 0;
24791
24788
 
24792
- /* "sknetwork/hierarchy/paris.pyx":308
24789
+ /* "sknetwork/hierarchy/paris.pyx":309
24793
24790
  *
24794
24791
  * dendrogram = np.array(dendrogram)
24795
24792
  * if self.reorder: # <<<<<<<<<<<<<<
@@ -24798,65 +24795,65 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24798
24795
  */
24799
24796
  }
24800
24797
 
24801
- /* "sknetwork/hierarchy/paris.pyx":311
24798
+ /* "sknetwork/hierarchy/paris.pyx":312
24802
24799
  * dendrogram = reorder_dendrogram(dendrogram)
24803
24800
  *
24804
24801
  * self.dendrogram_ = dendrogram # <<<<<<<<<<<<<<
24805
24802
  * if self.bipartite:
24806
24803
  * self._split_vars(input_matrix.shape)
24807
24804
  */
24808
- if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_dendrogram, __pyx_v_dendrogram) < 0) __PYX_ERR(0, 311, __pyx_L1_error)
24805
+ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_dendrogram, __pyx_v_dendrogram) < 0) __PYX_ERR(0, 312, __pyx_L1_error)
24809
24806
 
24810
- /* "sknetwork/hierarchy/paris.pyx":312
24807
+ /* "sknetwork/hierarchy/paris.pyx":313
24811
24808
  *
24812
24809
  * self.dendrogram_ = dendrogram
24813
24810
  * if self.bipartite: # <<<<<<<<<<<<<<
24814
24811
  * self._split_vars(input_matrix.shape)
24815
24812
  *
24816
24813
  */
24817
- __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_bipartite); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 312, __pyx_L1_error)
24814
+ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_bipartite); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 313, __pyx_L1_error)
24818
24815
  __Pyx_GOTREF(__pyx_t_9);
24819
- __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 312, __pyx_L1_error)
24816
+ __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 313, __pyx_L1_error)
24820
24817
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
24821
24818
  if (__pyx_t_8) {
24822
24819
 
24823
- /* "sknetwork/hierarchy/paris.pyx":313
24820
+ /* "sknetwork/hierarchy/paris.pyx":314
24824
24821
  * self.dendrogram_ = dendrogram
24825
24822
  * if self.bipartite:
24826
24823
  * self._split_vars(input_matrix.shape) # <<<<<<<<<<<<<<
24827
24824
  *
24828
24825
  * return self
24829
24826
  */
24830
- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_split_vars); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 313, __pyx_L1_error)
24831
- __Pyx_GOTREF(__pyx_t_2);
24832
- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_input_matrix, __pyx_n_s_shape); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 313, __pyx_L1_error)
24833
- __Pyx_GOTREF(__pyx_t_5);
24834
- __pyx_t_1 = NULL;
24827
+ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_split_vars); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 314, __pyx_L1_error)
24828
+ __Pyx_GOTREF(__pyx_t_3);
24829
+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_input_matrix, __pyx_n_s_shape); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 314, __pyx_L1_error)
24830
+ __Pyx_GOTREF(__pyx_t_1);
24831
+ __pyx_t_5 = NULL;
24835
24832
  __pyx_t_16 = 0;
24836
24833
  #if CYTHON_UNPACK_METHODS
24837
- if (likely(PyMethod_Check(__pyx_t_2))) {
24838
- __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
24839
- if (likely(__pyx_t_1)) {
24840
- PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
24841
- __Pyx_INCREF(__pyx_t_1);
24834
+ if (likely(PyMethod_Check(__pyx_t_3))) {
24835
+ __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
24836
+ if (likely(__pyx_t_5)) {
24837
+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
24838
+ __Pyx_INCREF(__pyx_t_5);
24842
24839
  __Pyx_INCREF(function);
24843
- __Pyx_DECREF_SET(__pyx_t_2, function);
24840
+ __Pyx_DECREF_SET(__pyx_t_3, function);
24844
24841
  __pyx_t_16 = 1;
24845
24842
  }
24846
24843
  }
24847
24844
  #endif
24848
24845
  {
24849
- PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_5};
24850
- __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_16, 1+__pyx_t_16);
24851
- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
24852
- __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
24853
- if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 313, __pyx_L1_error)
24846
+ PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_1};
24847
+ __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_16, 1+__pyx_t_16);
24848
+ __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
24849
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24850
+ if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 314, __pyx_L1_error)
24854
24851
  __Pyx_GOTREF(__pyx_t_9);
24855
- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24852
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24856
24853
  }
24857
24854
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
24858
24855
 
24859
- /* "sknetwork/hierarchy/paris.pyx":312
24856
+ /* "sknetwork/hierarchy/paris.pyx":313
24860
24857
  *
24861
24858
  * self.dendrogram_ = dendrogram
24862
24859
  * if self.bipartite: # <<<<<<<<<<<<<<
@@ -24865,7 +24862,7 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24865
24862
  */
24866
24863
  }
24867
24864
 
24868
- /* "sknetwork/hierarchy/paris.pyx":315
24865
+ /* "sknetwork/hierarchy/paris.pyx":316
24869
24866
  * self._split_vars(input_matrix.shape)
24870
24867
  *
24871
24868
  * return self # <<<<<<<<<<<<<<
@@ -24880,7 +24877,7 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24880
24877
  *
24881
24878
  * @cython.boundscheck(False) # <<<<<<<<<<<<<<
24882
24879
  * @cython.wraparound(False)
24883
- * def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray]) -> 'Paris':
24880
+ * def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray], force_bipartite: bool = False) -> 'Paris':
24884
24881
  */
24885
24882
 
24886
24883
  /* function exit code */
@@ -24901,7 +24898,6 @@ static PyObject *__pyx_pf_9sknetwork_9hierarchy_5paris_5Paris_2fit(CYTHON_UNUSED
24901
24898
  __Pyx_XDECREF((PyObject *)__pyx_v_aggregate_graph);
24902
24899
  __Pyx_XDECREF(__pyx_v_dendrogram);
24903
24900
  __Pyx_XDECREF(__pyx_v_size);
24904
- __Pyx_XDECREF(__pyx_v_input_matrix);
24905
24901
  __Pyx_XGIVEREF(__pyx_r);
24906
24902
  __Pyx_RefNannyFinishContext();
24907
24903
  return __pyx_r;
@@ -26696,7 +26692,7 @@ static int __Pyx_CreateStringTabAndInitStrings(void) {
26696
26692
  {&__pyx_n_s_View_MemoryView, __pyx_k_View_MemoryView, sizeof(__pyx_k_View_MemoryView), 0, 0, 1, 1},
26697
26693
  {&__pyx_kp_u__2, __pyx_k__2, sizeof(__pyx_k__2), 0, 1, 0, 0},
26698
26694
  {&__pyx_n_s__3, __pyx_k__3, sizeof(__pyx_k__3), 0, 0, 1, 1},
26699
- {&__pyx_n_s__36, __pyx_k__36, sizeof(__pyx_k__36), 0, 0, 1, 1},
26695
+ {&__pyx_n_s__37, __pyx_k__37, sizeof(__pyx_k__37), 0, 0, 1, 1},
26700
26696
  {&__pyx_kp_u__6, __pyx_k__6, sizeof(__pyx_k__6), 0, 1, 0, 0},
26701
26697
  {&__pyx_kp_u__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 1, 0, 0},
26702
26698
  {&__pyx_n_s_abc, __pyx_k_abc, sizeof(__pyx_k_abc), 0, 0, 1, 1},
@@ -26743,6 +26739,7 @@ static int __Pyx_CreateStringTabAndInitStrings(void) {
26743
26739
  {&__pyx_n_s_error, __pyx_k_error, sizeof(__pyx_k_error), 0, 0, 1, 1},
26744
26740
  {&__pyx_n_s_fit, __pyx_k_fit, sizeof(__pyx_k_fit), 0, 0, 1, 1},
26745
26741
  {&__pyx_n_s_flags, __pyx_k_flags, sizeof(__pyx_k_flags), 0, 0, 1, 1},
26742
+ {&__pyx_n_s_force_bipartite, __pyx_k_force_bipartite, sizeof(__pyx_k_force_bipartite), 0, 0, 1, 1},
26746
26743
  {&__pyx_n_s_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 0, 1, 1},
26747
26744
  {&__pyx_n_s_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 0, 1, 1},
26748
26745
  {&__pyx_n_u_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 1, 0, 1},
@@ -26866,8 +26863,8 @@ static int __Pyx_CreateStringTabAndInitStrings(void) {
26866
26863
  static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) {
26867
26864
  __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 71, __pyx_L1_error)
26868
26865
  __pyx_builtin_super = __Pyx_GetBuiltinName(__pyx_n_s_super); if (!__pyx_builtin_super) __PYX_ERR(0, 207, __pyx_L1_error)
26869
- __pyx_builtin_any = __Pyx_GetBuiltinName(__pyx_n_s_any); if (!__pyx_builtin_any) __PYX_ERR(0, 241, __pyx_L1_error)
26870
- __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(0, 245, __pyx_L1_error)
26866
+ __pyx_builtin_any = __Pyx_GetBuiltinName(__pyx_n_s_any); if (!__pyx_builtin_any) __PYX_ERR(0, 242, __pyx_L1_error)
26867
+ __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(0, 246, __pyx_L1_error)
26871
26868
  __pyx_builtin___import__ = __Pyx_GetBuiltinName(__pyx_n_s_import); if (!__pyx_builtin___import__) __PYX_ERR(1, 100, __pyx_L1_error)
26872
26869
  __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(1, 156, __pyx_L1_error)
26873
26870
  __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(1, 159, __pyx_L1_error)
@@ -26923,7 +26920,7 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
26923
26920
  __Pyx_GOTREF(__pyx_tuple__8);
26924
26921
  __Pyx_GIVEREF(__pyx_tuple__8);
26925
26922
 
26926
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":984
26923
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":984
26927
26924
  * __pyx_import_array()
26928
26925
  * except Exception:
26929
26926
  * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<<
@@ -26934,7 +26931,7 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
26934
26931
  __Pyx_GOTREF(__pyx_tuple__9);
26935
26932
  __Pyx_GIVEREF(__pyx_tuple__9);
26936
26933
 
26937
- /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-8iubbrn2/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":990
26934
+ /* "C:/Users/runneradmin/AppData/Local/Temp/cibw-run-2jqincfh/cp39-win_amd64/build/venv/lib/site-packages/numpy/__init__.cython-30.pxd":990
26938
26935
  * _import_umath()
26939
26936
  * except Exception:
26940
26937
  * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<<
@@ -26945,14 +26942,14 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
26945
26942
  __Pyx_GOTREF(__pyx_tuple__10);
26946
26943
  __Pyx_GIVEREF(__pyx_tuple__10);
26947
26944
 
26948
- /* "sknetwork/hierarchy/paris.pyx":245
26945
+ /* "sknetwork/hierarchy/paris.pyx":246
26949
26946
  *
26950
26947
  * if adjacency.shape[0] <= 1:
26951
26948
  * raise ValueError('The graph must contain at least two nodes.') # <<<<<<<<<<<<<<
26952
26949
  *
26953
26950
  * # agglomerative clustering
26954
26951
  */
26955
- __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_u_The_graph_must_contain_at_least); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 245, __pyx_L1_error)
26952
+ __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_u_The_graph_must_contain_at_least); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 246, __pyx_L1_error)
26956
26953
  __Pyx_GOTREF(__pyx_tuple__11);
26957
26954
  __Pyx_GIVEREF(__pyx_tuple__11);
26958
26955
 
@@ -27121,19 +27118,22 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
27121
27118
  *
27122
27119
  * @cython.boundscheck(False) # <<<<<<<<<<<<<<
27123
27120
  * @cython.wraparound(False)
27124
- * def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray]) -> 'Paris':
27121
+ * def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray], force_bipartite: bool = False) -> 'Paris':
27125
27122
  */
27126
- __pyx_tuple__33 = PyTuple_Pack(21, __pyx_n_s_self, __pyx_n_s_input_matrix, __pyx_n_s_adjacency, __pyx_n_s_weights, __pyx_n_s_out_weights, __pyx_n_s_in_weights, __pyx_n_s_null_weights, __pyx_n_s_aggregate_graph, __pyx_n_s_connected_components, __pyx_n_s_dendrogram_2, __pyx_n_s_node, __pyx_n_s_next_node, __pyx_n_s_cluster_size, __pyx_n_s_next_cluster_size, __pyx_n_s_neighbor, __pyx_n_s_nearest_neighbor, __pyx_n_s_nearest_neighbor_last, __pyx_n_s_chain, __pyx_n_s_sim, __pyx_n_s_max_sim, __pyx_n_s_size); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 213, __pyx_L1_error)
27123
+ __pyx_tuple__33 = PyTuple_Pack(22, __pyx_n_s_self, __pyx_n_s_input_matrix, __pyx_n_s_force_bipartite, __pyx_n_s_adjacency, __pyx_n_s_weights, __pyx_n_s_out_weights, __pyx_n_s_in_weights, __pyx_n_s_null_weights, __pyx_n_s_aggregate_graph, __pyx_n_s_connected_components, __pyx_n_s_dendrogram_2, __pyx_n_s_node, __pyx_n_s_next_node, __pyx_n_s_cluster_size, __pyx_n_s_next_cluster_size, __pyx_n_s_neighbor, __pyx_n_s_nearest_neighbor, __pyx_n_s_nearest_neighbor_last, __pyx_n_s_chain, __pyx_n_s_sim, __pyx_n_s_max_sim, __pyx_n_s_size); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 213, __pyx_L1_error)
27127
27124
  __Pyx_GOTREF(__pyx_tuple__33);
27128
27125
  __Pyx_GIVEREF(__pyx_tuple__33);
27129
- __pyx_codeobj__34 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 21, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__33, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_sknetwork_hierarchy_paris_pyx, __pyx_n_s_fit, 213, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__34)) __PYX_ERR(0, 213, __pyx_L1_error)
27126
+ __pyx_codeobj__34 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 22, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__33, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_sknetwork_hierarchy_paris_pyx, __pyx_n_s_fit, 213, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__34)) __PYX_ERR(0, 213, __pyx_L1_error)
27127
+ __pyx_tuple__35 = PyTuple_Pack(1, ((PyObject *)Py_False)); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 213, __pyx_L1_error)
27128
+ __Pyx_GOTREF(__pyx_tuple__35);
27129
+ __Pyx_GIVEREF(__pyx_tuple__35);
27130
27130
 
27131
27131
  /* "(tree fragment)":1
27132
27132
  * def __pyx_unpickle_AggregateGraph(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<<
27133
27133
  * cdef object __pyx_PickleError
27134
27134
  * cdef object __pyx_result
27135
27135
  */
27136
- __pyx_codeobj__35 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__22, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_AggregateGraph, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__35)) __PYX_ERR(1, 1, __pyx_L1_error)
27136
+ __pyx_codeobj__36 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__22, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_AggregateGraph, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__36)) __PYX_ERR(1, 1, __pyx_L1_error)
27137
27137
  __Pyx_RefNannyFinishContext();
27138
27138
  return 0;
27139
27139
  __pyx_L1_error:;
@@ -28523,14 +28523,16 @@ if (!__Pyx_RefNanny) {
28523
28523
  *
28524
28524
  * @cython.boundscheck(False) # <<<<<<<<<<<<<<
28525
28525
  * @cython.wraparound(False)
28526
- * def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray]) -> 'Paris':
28526
+ * def fit(self, input_matrix: Union[sparse.csr_matrix, np.ndarray], force_bipartite: bool = False) -> 'Paris':
28527
28527
  */
28528
- __pyx_t_10 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 213, __pyx_L1_error)
28528
+ __pyx_t_10 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 213, __pyx_L1_error)
28529
28529
  __Pyx_GOTREF(__pyx_t_10);
28530
28530
  if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_input_matrix, __pyx_kp_s_Union_sparse_csr_matrix_np_ndarr) < 0) __PYX_ERR(0, 213, __pyx_L1_error)
28531
+ if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_force_bipartite, __pyx_n_s_bool) < 0) __PYX_ERR(0, 213, __pyx_L1_error)
28531
28532
  if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_return, __pyx_kp_s_Paris_2) < 0) __PYX_ERR(0, 213, __pyx_L1_error)
28532
28533
  __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9sknetwork_9hierarchy_5paris_5Paris_3fit, 0, __pyx_n_s_Paris_fit, NULL, __pyx_n_s_sknetwork_hierarchy_paris, __pyx_d, ((PyObject *)__pyx_codeobj__34)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 213, __pyx_L1_error)
28533
28534
  __Pyx_GOTREF(__pyx_t_4);
28535
+ __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_tuple__35);
28534
28536
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_4, __pyx_t_10);
28535
28537
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
28536
28538
  if (__Pyx_SetNameInClass(__pyx_t_9, __pyx_n_s_fit, __pyx_t_4) < 0) __PYX_ERR(0, 213, __pyx_L1_error)
@@ -28556,7 +28558,7 @@ if (!__Pyx_RefNanny) {
28556
28558
  * cdef object __pyx_PickleError
28557
28559
  * cdef object __pyx_result
28558
28560
  */
28559
- __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_9sknetwork_9hierarchy_5paris_1__pyx_unpickle_AggregateGraph, 0, __pyx_n_s_pyx_unpickle_AggregateGraph, NULL, __pyx_n_s_sknetwork_hierarchy_paris, __pyx_d, ((PyObject *)__pyx_codeobj__35)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1, __pyx_L1_error)
28561
+ __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_9sknetwork_9hierarchy_5paris_1__pyx_unpickle_AggregateGraph, 0, __pyx_n_s_pyx_unpickle_AggregateGraph, NULL, __pyx_n_s_sknetwork_hierarchy_paris, __pyx_d, ((PyObject *)__pyx_codeobj__36)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1, __pyx_L1_error)
28560
28562
  __Pyx_GOTREF(__pyx_t_7);
28561
28563
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_AggregateGraph, __pyx_t_7) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
28562
28564
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
@@ -36897,7 +36899,7 @@ __Pyx_PyType_GetName(PyTypeObject* tp)
36897
36899
  if (unlikely(name == NULL) || unlikely(!PyUnicode_Check(name))) {
36898
36900
  PyErr_Clear();
36899
36901
  Py_XDECREF(name);
36900
- name = __Pyx_NewRef(__pyx_n_s__36);
36902
+ name = __Pyx_NewRef(__pyx_n_s__37);
36901
36903
  }
36902
36904
  return name;
36903
36905
  }