Giter VIP home page Giter VIP logo

mistree's Introduction

MiSTree

Author: Krishna Naidoo
Version: 1.2.2
Homepage: https://github.com/knaidoo29/mistree
Documentation: https://knaidoo29.github.io/mistreedoc/

Build Status codecov PyPI version status DOI License: MIT Binder ascl

Introduction

The minimum spanning tree (MST), a graph constructed from a distribution of points, draws lines between pairs of points so that all points are linked in a single skeletal structure that contains no loops and has minimal total edge length. The MST has been used in a broad range of scientific fields such as particle physics, in astronomy and cosmology. Its success in these fields has been driven by its sensitivity to the spatial distribution of points and the patterns within. MiSTree, a public Python package, allows a user to construct the MST in a variety of coordinates systems, including Celestial coordinates used in astronomy. The package enables the MST to be constructed quickly by initially using a k-nearest neighbour graph (k NN, rather than a matrix of pairwise distances) which is then fed to Kruskal's algorithm to construct the MST. MiSTree enables a user to measure the statistics of the MST and provides classes for binning the MST statistics (into histograms) and plotting the distributions. Applying the MST will enable the inclusion of high-order statistics information from the cosmic web which can provide additional information to improve cosmological parameter constraints. This information has not been fully exploited due to the computational cost of calculating N-point statistics. MiSTree was designed to be used in cosmology but could be used in any field which requires extracting non-Gaussian information from point distributions.

Dependencies

  • Python 2.7 or 3.4+
  • numpy
  • matplotlib
  • scipy
  • scikit-learn
  • f2py (should be installed with numpy)

For testing you will require nose or pytest.

Installation

MiSTree can be installed as follows:

pip install mistree [--user]

The --user is optional and only required if you don’t have write permission. If you are using a windows machine this may not work, in this case (or as an alternative to pip) clone the repository,

git clone https://github.com/knaidoo29/mistree.git
cd mistree

and install by either running

pip install . [--user]

or

python setup.py build
python setup.py install

Similarly, if you would like to work and edit mistree you can clone the repository and install an editable version:

git clone https://github.com/knaidoo29/mistree.git
cd mistree
pip install -e . [--user]

From the mistree directory you can then test the install using nose:

python setup.py test

or using pytest:

python -m pytest

You should now be able to import the module:

import mistree as mist

Documentation

In depth documentation and tutorials are provided here.

Tutorials

The tutorials in the documentation are supplied as ipython notebooks which can be downloaded from here or can be run online using binder.

Citing

You can cite MiSTree using the following BibTex:

@ARTICLE{Naidoo2019,
       author = {{Naidoo}, Krishna},
        title = "{MiSTree: a Python package for constructing and analysing Minimum Spanning Trees}",
      journal = {The Journal of Open Source Software},
         year = "2019",
        month = "Oct",
       volume = {4},
       number = {42},
          eid = {1721},
        pages = {1721},
          doi = {10.21105/joss.01721},
       adsurl = {https://ui.adsabs.harvard.edu/abs/2019JOSS....4.1721N}
}

Support

If you have any issues with the code or want to suggest ways to improve it please open a new issue (here) or (if you don't have a github account) email [email protected].

mistree's People

Contributors

knaidoo29 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

mistree's Issues

Plotting MST doesn't show all branches

I plot the MST but not all branches are connected especially for the case where one object is inside the other:

from __future__ import print_function
import numpy as np
import matplotlib.pylab as plt
import mistree as mist


y = np.array( [168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 170, 170, 171, 171, 171, 171, 172, 172, 172, 172, 173, 173, 173, 173, 174, 174, 175, 175, 175, 175, 176, 176, 177, 177, 178, 178, 179, 179, 180, 180, 181, 181, 182, 182, 182, 183, 183, 183, 184, 184, 184, 185, 185, 185, 186, 186, 186, 187, 187, 188, 188, 189, 189, 189, 189, 189, 190, 190, 190, 191, 191, 191, 192, 192, 192, 193, 193, 193, 194, 194, 195, 195, 195, 196, 196, 196, 196, 196, 197, 197, 197, 198, 198, 198, 199, 199, 199, 200, 200, 200, 201, 201, 202, 202, 202, 203, 203, 204, 204, 204, 204, 205, 205, 205, 206, 206, 206, 207, 207, 207, 208, 208, 208, 209, 209, 210, 210, 210, 211, 211, 212, 212, 213, 213, 214, 214, 215, 215, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 218, 218, 218, 218, 218, 218, 218, 219, 219, 219, 219, 219, 219, 220, 220, 220, 220, 220, 220, 220, 221, 221, 221, 221, 221, 221, 222, 222, 222, 222, 223, 223, 223, 223, 223, 223, 224, 224, 224, 224, 225, 225, 225, 225, 226, 226, 226, 226, 227, 227, 227, 227, 227, 228, 228, 228, 228, 228, 229, 229, 229, 229, 229, 230, 230, 230, 230, 231, 231, 231, 231, 231, 232, 232, 232, 232, 233, 233, 233, 233, 234, 234, 234, 234, 235, 235, 235, 235, 235, 236, 236, 236, 236, 236, 237, 237, 237, 237, 237, 238, 238, 238, 238, 239, 239, 239, 239, 239, 240, 240, 240, 240, 241, 241, 241, 241, 242, 242, 242, 242, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 256, 256, 256, 256, 257, 257, 257, 257, 257, 257, 258, 258, 258, 258, 258, 259, 259, 259, 259, 259, 260, 260, 260, 260, 260, 261, 261, 261, 261, 261, 262, 262, 262, 262, 262, 263, 263, 263, 263, 263, 264, 264, 264, 264, 264, 265, 265, 265, 265, 266, 266, 266, 266, 267, 267, 267, 267, 268, 268, 268, 268, 269, 269, 269, 269, 270, 270, 270, 270, 271, 271, 271, 271, 271, 272, 272, 272, 272, 272, 273, 273, 273, 273, 273, 274, 274, 274, 274, 275, 275, 275, 275, 275, 276, 276, 276, 276, 277, 277, 277, 277, 278, 278, 278, 278, 279, 279, 279, 279, 280, 280, 280, 280, 281, 281, 281, 281, 282, 282, 282, 282, 282, 283, 283, 283, 283, 283, 284, 284, 284, 284, 284, 285, 285, 285, 285, 286, 286, 286, 286, 286, 287, 287, 287, 287, 288, 288, 288, 288, 289, 289, 289, 289, 290, 290, 290, 290, 291, 291, 291, 291, 292, 292, 292, 292, 293, 293, 293, 293, 294, 294, 294, 294, 295, 295, 295, 295, 295, 296, 296, 296, 296, 297, 297, 297, 297, 297, 298, 298, 298, 298, 299, 299, 299, 299, 300, 300, 300, 300, 301, 301, 301, 301, 302, 302, 302, 302, 303, 303, 303, 303, 303, 304, 304, 304, 304, 304, 305, 305, 305, 305, 305, 306, 306, 306, 306, 307, 307, 307, 307, 307, 308, 308, 308, 308, 309, 309, 309, 309, 310, 310, 310, 310, 311, 311, 311, 311, 312, 312, 312, 312, 313, 313, 313, 313, 314, 314, 314, 314, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 317, 317, 317, 317, 317, 317, 317, 317, 318, 318, 318, 318, 318, 318, 318, 318, 319, 319, 319, 319, 319, 319, 319, 319, 320, 320, 320, 320, 320, 320, 320, 320, 321, 321, 321, 321, 321, 321, 322, 322, 322, 322, 322, 322, 322, 322, 323, 323, 323, 323, 323, 323, 324, 324, 324, 324, 324, 324, 325, 325, 325, 325, 325, 325, 326, 326, 326, 326, 326, 326, 327, 327, 327, 327, 327, 327, 328, 328, 328, 328, 328, 328, 328, 329, 329, 329, 329, 329, 329, 330, 330, 330, 330, 330, 330, 330, 331, 331, 331, 331, 331, 331, 331, 332, 332, 332, 332, 332, 332, 332, 333, 333, 333, 333, 333, 333, 333, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 339, 339, 339, 339, 339, 339, 339, 339, 340, 340, 340, 340, 340, 340, 340, 340, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 343, 343, 343, 343, 344, 344, 344, 344, 345, 345, 345, 345, 346, 346, 346, 346, 347, 347, 347, 347, 348, 348, 348, 348, 349, 349, 349, 349, 350, 350, 350, 350, 351, 351, 351, 351, 352, 352, 352, 352, 353, 353, 353, 353, 354, 354, 354, 354, 355, 355, 355, 355, 356, 356, 356, 356, 357, 357, 357, 357, 358, 358, 358, 358, 359, 359, 359, 359, 360, 360, 360, 360, 361, 361, 361, 361, 362, 362, 362, 362, 363, 363, 363, 363, 364, 364, 364, 364, 365, 365, 365, 365, 366, 366, 366, 366, 367, 367, 367, 367, 368, 368, 368, 368, 369, 369, 369, 369, 370, 370, 370, 370, 371, 371, 371, 371, 372, 372, 372, 372, 373, 373, 373, 373, 374, 374, 374, 374, 375, 375, 375, 375, 376, 376, 376, 376, 376, 376, 377, 377, 377, 377, 378, 378, 378, 378, 378, 378, 379, 379, 379, 379, 379, 379, 380, 380, 380, 380, 380, 380, 381, 381, 381, 381, 381, 381, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 384, 384, 385, 385, 385, 386, 386, 387, 387, 387, 388, 388, 389, 389, 390, 390, 391, 391, 392, 392, 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 395, 395, 395, 395, 395, 395, 396, 396, 396, 396, 396, 396, 397, 397, 397, 397, 397, 397, 397, 397, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 400, 400, 400, 400, 400, 400, 400, 400, 400, 401, 401, 401, 401, 401, 401, 401, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 405, 405, 405, 406, 406, 406, 407, 407, 407, 408, 408, 408, 408, 408, 408, 409, 409, 409, 409, 409, 409, 410, 410, 410, 411, 411, 411, 412, 412, 412, 413, 413, 413, 414, 414, 414, 414, 414, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 417, 417, 417, 417, 417, 417, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 419, 419, 419, 419, 420, 420, 420, 420, 420, 420, 420, 421, 421, 421, 421, 421, 421, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423] )

x = np.array( [513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 508, 509, 510, 511, 512, 524, 525, 526, 527, 528, 506, 507, 529, 530, 504, 505, 531, 532, 502, 503, 533, 534, 500, 501, 535, 536, 499, 537, 497, 498, 538, 539, 496, 540, 495, 541, 494, 542, 493, 543, 492, 544, 492, 544, 491, 545, 546, 490, 547, 548, 489, 549, 550, 487, 488, 551, 486, 552, 553, 485, 554, 484, 555, 483, 556, 557, 558, 559, 482, 560, 561, 482, 562, 563, 481, 564, 565, 480, 566, 567, 480, 568, 479, 569, 570, 479, 571, 572, 573, 574, 478, 575, 576, 478, 577, 578, 477, 579, 580, 477, 581, 582, 476, 583, 476, 584, 585, 476, 586, 476, 587, 588, 589, 476, 590, 591, 475, 592, 593, 475, 594, 595, 475, 596, 597, 475, 598, 474, 599, 600, 474, 601, 473, 602, 473, 603, 472, 604, 472, 605, 471, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 606, 607, 471, 514, 515, 516, 517, 518, 530, 531, 532, 533, 534, 608, 609, 471, 512, 513, 535, 536, 610, 611, 471, 510, 511, 537, 538, 612, 471, 508, 509, 539, 540, 613, 614, 470, 506, 507, 541, 542, 615, 470, 505, 543, 616, 470, 503, 504, 544, 545, 617, 469, 502, 546, 618, 469, 501, 547, 619, 468, 500, 548, 620, 468, 499, 549, 621, 622, 467, 498, 550, 623, 624, 467, 497, 551, 625, 626, 466, 497, 551, 627, 466, 496, 552, 628, 629, 465, 495, 553, 630, 465, 495, 553, 631, 465, 494, 554, 632, 465, 494, 554, 633, 634, 464, 493, 555, 635, 636, 464, 493, 555, 637, 638, 463, 492, 556, 639, 462, 492, 556, 640, 641, 462, 491, 557, 642, 461, 491, 557, 643, 461, 491, 557, 644, 645, 460, 491, 558, 559, 560, 561, 562, 646, 647, 460, 491, 563, 564, 648, 649, 459, 490, 565, 566, 650, 651, 459, 490, 567, 568, 652, 653, 654, 655, 656, 458, 490, 569, 570, 657, 658, 458, 490, 571, 659, 660, 458, 490, 572, 573, 661, 662, 458, 490, 574, 663, 664, 458, 490, 575, 576, 665, 457, 490, 577, 578, 666, 667, 457, 490, 579, 580, 668, 456, 490, 581, 582, 669, 455, 490, 583, 584, 670, 455, 491, 585, 671, 454, 491, 586, 587, 672, 673, 454, 491, 588, 674, 675, 453, 491, 589, 676, 677, 453, 491, 590, 678, 679, 452, 492, 591, 680, 681, 452, 492, 592, 593, 682, 451, 493, 594, 683, 684, 451, 493, 595, 596, 685, 451, 494, 597, 686, 451, 494, 598, 687, 451, 495, 599, 688, 450, 495, 600, 689, 450, 496, 601, 689, 450, 496, 602, 690, 449, 496, 602, 691, 692, 449, 495, 603, 693, 694, 448, 495, 604, 695, 696, 448, 494, 604, 697, 447, 494, 605, 698, 699, 447, 494, 605, 700, 446, 494, 606, 701, 446, 494, 606, 702, 445, 493, 607, 703, 445, 493, 607, 704, 445, 493, 608, 704, 445, 493, 608, 705, 706, 445, 493, 608, 707, 708, 444, 493, 608, 709, 710, 444, 493, 608, 711, 444, 493, 609, 712, 713, 444, 493, 609, 714, 444, 492, 609, 715, 444, 492, 609, 716, 444, 491, 609, 717, 444, 491, 610, 718, 444, 491, 610, 718, 444, 491, 610, 719, 444, 491, 610, 720, 444, 490, 610, 721, 722, 443, 490, 611, 723, 443, 490, 611, 724, 725, 443, 490, 611, 726, 443, 490, 611, 727, 443, 490, 611, 728, 442, 490, 611, 729, 442, 490, 611, 730, 442, 490, 611, 731, 732, 442, 490, 611, 733, 734, 442, 490, 611, 735, 736, 442, 491, 611, 737, 442, 491, 610, 738, 739, 442, 491, 610, 740, 442, 491, 610, 741, 442, 491, 610, 742, 442, 492, 610, 743, 441, 492, 609, 744, 441, 493, 609, 744, 441, 493, 608, 745, 441, 494, 608, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 746, 441, 494, 607, 654, 655, 656, 657, 658, 670, 671, 672, 673, 674, 747, 748, 440, 495, 607, 652, 653, 675, 676, 749, 440, 495, 606, 650, 651, 677, 678, 750, 440, 496, 606, 648, 649, 679, 680, 751, 440, 497, 605, 646, 647, 681, 682, 752, 440, 497, 604, 645, 683, 753, 440, 498, 604, 643, 644, 684, 685, 753, 440, 499, 603, 642, 686, 754, 440, 500, 602, 641, 687, 755, 440, 501, 601, 640, 688, 755, 440, 502, 600, 639, 689, 756, 440, 503, 599, 638, 690, 756, 440, 504, 597, 598, 637, 691, 757, 439, 504, 596, 637, 691, 757, 439, 505, 594, 595, 636, 692, 758, 439, 506, 592, 593, 635, 693, 758, 439, 507, 590, 591, 635, 693, 759, 439, 508, 588, 589, 634, 694, 759, 438, 509, 571, 583, 584, 585, 586, 587, 634, 694, 759, 438, 510, 511, 566, 567, 568, 569, 570, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 633, 695, 759, 438, 512, 559, 560, 561, 562, 563, 564, 565, 633, 695, 759, 438, 513, 514, 554, 555, 556, 557, 558, 632, 696, 760, 438, 515, 516, 546, 547, 548, 549, 550, 551, 552, 553, 632, 696, 760, 438, 517, 518, 544, 545, 631, 697, 760, 438, 519, 520, 542, 543, 631, 697, 760, 438, 521, 522, 523, 524, 525, 537, 538, 539, 540, 541, 631, 697, 760, 438, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 631, 697, 760, 438, 631, 697, 760, 438, 630, 698, 760, 438, 630, 698, 761, 437, 630, 698, 761, 437, 630, 698, 762, 437, 630, 698, 762, 437, 630, 698, 763, 437, 630, 698, 763, 436, 630, 698, 763, 436, 630, 698, 763, 436, 630, 698, 763, 436, 630, 698, 764, 436, 631, 697, 764, 436, 631, 697, 764, 436, 631, 697, 764, 436, 631, 697, 764, 436, 631, 697, 764, 436, 632, 696, 764, 436, 632, 696, 764, 437, 633, 695, 764, 437, 633, 695, 764, 437, 634, 694, 764, 437, 634, 694, 763, 437, 635, 693, 763, 437, 635, 693, 763, 436, 636, 692, 763, 436, 637, 691, 763, 436, 637, 691, 762, 436, 638, 690, 762, 436, 639, 689, 761, 436, 640, 688, 761, 436, 641, 687, 760, 436, 642, 686, 760, 436, 643, 644, 684, 685, 759, 436, 645, 683, 759, 436, 646, 647, 681, 682, 758, 437, 648, 649, 679, 680, 757, 437, 650, 651, 677, 678, 757, 437, 652, 653, 675, 676, 756, 437, 654, 655, 656, 657, 658, 670, 671, 672, 673, 674, 755, 437, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 754, 437, 753, 436, 751, 752, 436, 750, 436, 748, 749, 436, 747, 436, 747, 436, 746, 436, 745, 436, 745, 436, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 744, 436, 639, 640, 641, 642, 643, 655, 656, 657, 658, 659, 743, 436, 637, 638, 660, 661, 742, 437, 635, 636, 662, 663, 741, 437, 633, 634, 664, 665, 688, 739, 740, 437, 629, 630, 631, 632, 666, 667, 683, 684, 685, 686, 687, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 738, 437, 624, 625, 626, 627, 628, 668, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 701, 702, 736, 737, 437, 622, 623, 669, 670, 703, 704, 734, 735, 438, 620, 621, 705, 706, 732, 733, 438, 612, 613, 614, 615, 616, 617, 618, 619, 707, 708, 730, 731, 439, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 607, 608, 609, 610, 611, 709, 710, 711, 712, 713, 725, 726, 727, 728, 729, 439, 590, 591, 592, 593, 594, 606, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 440, 588, 589, 440, 586, 587, 441, 584, 585, 441, 579, 580, 581, 582, 583, 442, 574, 575, 576, 577, 578, 443, 572, 573, 443, 570, 571, 444, 568, 569, 445, 566, 567, 446, 562, 563, 564, 565, 447, 516, 517, 518, 519, 520, 521, 533, 534, 535, 536, 537, 538, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 448, 449, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 450, 499, 500, 501, 502, 503, 451, 452, 491, 492, 493, 494, 495, 496, 497, 498, 453, 454, 489, 490, 455, 456, 484, 485, 486, 487, 488, 457, 458, 480, 481, 482, 483, 459, 460, 461, 462, 463, 475, 476, 477, 478, 479, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474] )
mst = mist.GetMST(x=x, y=y)

d, l, b, s, l_index, b_index = mst.get_stats(include_index=True)

plt.figure(figsize=(15, 15))

# plotting nodes:
plt.scatter(x, y, s=10, color='r')

# plotting MST edges:
plt.plot([x[l_index[0]], x[l_index[1]]],
         [y[l_index[0]], y[l_index[1]]],
         color='k')

plt.xlim(400, 900)
plt.ylim(100, 500)
plt.xlabel(r'$X$', size=16)
plt.ylabel(r'$Y$', size=16)
plt.tight_layout()
plt.show()

Fail to install on python 3.11.4 and Ubuntu 20.04

Hi,

I have issues to install mistress on python 3.11.4. On python 3.9 it works as expected.

Installation fails with:

pip install mistress


Collecting mistree==1.2.0
  Using cached mistree-1.2.0.tar.gz (27 kB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error
  
  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [167 lines of output]
      /local0/tmp/pip-install-rdfn5246/mistree_698a076d5c2249449031bd19b9b3cfce/setup.py:4: DeprecationWarning:
      
        `numpy.distutils` is deprecated since NumPy 1.23.0, as a result
        of the deprecation of `distutils` itself. It will be removed for
        Python >= 3.12. For older Python versions it will remain present.
        It is recommended to use `setuptools < 60.0` for those Python versions.
        For more details, see:
          https://numpy.org/devdocs/reference/distutils_status_migration.html
      
      
        from numpy.distutils.core import setup, Extension
      running egg_info
      running build_src
      INFO: build_src
      INFO: building extension "mistree.levy_flight.utility_random_walk" sources
      INFO: f2py options: []
      INFO: f2py:> build/src.linux-x86_64-3.11/mistree/levy_flight/utility_random_walkmodule.c
      creating build
      creating build/src.linux-x86_64-3.11
      creating build/src.linux-x86_64-3.11/mistree
      creating build/src.linux-x86_64-3.11/mistree/levy_flight
      Reading fortran codes...
          Reading file 'mistree/levy_flight/utility_random_walk.f90' (format:free)
      Post-processing...
          Block: utility_random_walk
                          Block: random_walk_fast_2d
                          Block: random_walk_fast_3d
      Applying post-processing hooks...
        character_backward_compatibility_hook
      Post-processing (stage 2)...
      Building modules...
          Building module "utility_random_walk"...
          Generating possibly empty wrappers"
          Maybe empty "utility_random_walk-f2pywrappers.f"
              Constructing wrapper function "random_walk_fast_2d"...
                x,y = random_walk_fast_2d(step_size,phi,box_size,x_start,y_start,periodic,[length])
          Generating possibly empty wrappers"
          Maybe empty "utility_random_walk-f2pywrappers.f"
              Constructing wrapper function "random_walk_fast_3d"...
                x,y,z = random_walk_fast_3d(step_size,phi,theta,box_size,x_start,y_start,z_start,periodic,[length])
          Wrote C/API module "utility_random_walk" to file "build/src.linux-x86_64-3.11/mistree/levy_flight/utility_random_walkmodule.c"
      INFO:   adding 'build/src.linux-x86_64-3.11/build/src.linux-x86_64-3.11/mistree/levy_flight/fortranobject.c' to sources.
      INFO:   adding 'build/src.linux-x86_64-3.11/build/src.linux-x86_64-3.11/mistree/levy_flight' to include_dirs.
      creating build/src.linux-x86_64-3.11/build
      creating build/src.linux-x86_64-3.11/build/src.linux-x86_64-3.11
      creating build/src.linux-x86_64-3.11/build/src.linux-x86_64-3.11/mistree
      creating build/src.linux-x86_64-3.11/build/src.linux-x86_64-3.11/mistree/levy_flight
      copying /home/mmederacke/anaconda3/envs/segmentation/lib/python3.11/site-packages/numpy/f2py/src/fortranobject.c -> build/src.linux-x86_64-3.11/build/src.linux-x86_64-3.11/mistree/levy_flight
      copying /home/mmederacke/anaconda3/envs/segmentation/lib/python3.11/site-packages/numpy/f2py/src/fortranobject.h -> build/src.linux-x86_64-3.11/build/src.linux-x86_64-3.11/mistree/levy_flight
      INFO:   adding 'build/src.linux-x86_64-3.11/mistree/levy_flight/utility_random_walk-f2pywrappers.f' to sources.
      INFO: building extension "mistree.mst.utility_density" sources
      INFO: f2py options: []
      INFO: f2py:> build/src.linux-x86_64-3.11/mistree/mst/utility_densitymodule.c
      creating build/src.linux-x86_64-3.11/mistree/mst
      rmbadname1: Replacing "index" with "index_bn".
      rmbadname1: Replacing "index" with "index_bn".
      rmbadname1: Replacing "index" with "index_bn".
      rmbadname1: Replacing "index" with "index_bn".
      Reading fortran codes...
          Reading file 'mistree/mst/utility_density.f90' (format:free)
      Post-processing...
          Block: utility_density
                          Block: get_counts_2d
                          Block: get_counts_3d
                          Block: get_param_2d
                          Block: get_param_3d
      Applying post-processing hooks...
        character_backward_compatibility_hook
      Post-processing (stage 2)...
      Building modules...
          Building module "utility_density"...
          Generating possibly empty wrappers"
          Maybe empty "utility_density-f2pywrappers.f"
              Constructing wrapper function "get_counts_2d"...
                counts = get_counts_2d(x,y,dx,length,length_of_grid,[length_of_points])
          Generating possibly empty wrappers"
          Maybe empty "utility_density-f2pywrappers.f"
              Constructing wrapper function "get_counts_3d"...
                counts = get_counts_3d(x,y,z,dx,length,length_of_grid,[length_of_points])
          Generating possibly empty wrappers"
          Maybe empty "utility_density-f2pywrappers.f"
              Constructing wrapper function "get_param_2d"...
                mean_param = get_param_2d(x_param,y_param,param,dx,length,length_of_grid,[length_of_param])
          Generating possibly empty wrappers"
          Maybe empty "utility_density-f2pywrappers.f"
              Constructing wrapper function "get_param_3d"...
                mean_param = get_param_3d(x_param,y_param,z_param,param,dx,length,length_of_grid,[length_of_param])
          Wrote C/API module "utility_density" to file "build/src.linux-x86_64-3.11/mistree/mst/utility_densitymodule.c"
      INFO:   adding 'build/src.linux-x86_64-3.11/build/src.linux-x86_64-3.11/mistree/mst/fortranobject.c' to sources.
      INFO:   adding 'build/src.linux-x86_64-3.11/build/src.linux-x86_64-3.11/mistree/mst' to include_dirs.
      creating build/src.linux-x86_64-3.11/build/src.linux-x86_64-3.11/mistree/mst

I have the necessary fortran compilers installed!

Best,

Malte

np.bool is deprecated in python 3.8

Hi @knaidoo29!

thanks for your amazing work! Unfortunately in python 3.8 np.bool does not exist anymore.

In branches.py in lines 54 and 55 np.bool occurs twice.

mask_end = np.ones(index_branch_end.shape, dtype=np.bool)
mask_mid = np.ones(index_branch_mid.shape, dtype=np.bool)

Could you please replace it with bool or np.bool_?

Otherwise, I could push my current branch.

Tests are missing

There are no tests shipping with the package.
If you refactor the code using the astropy package template as suggested in #2, that also gives you a predefined structure where to write and easily execute tests (with python setup.py test) and those are automatically executed on Travis-CI at every commit.

Missing requirement

I created an environment to test mistree with conda:

conda create -n test_mistree python=3.7 numpy scipy scikit-learn

I can run setup.py fine, but at import I get:

ModuleNotFoundError: No module named 'matplotlib'

If I install matplotlib, the library imports fine.
please add matplotlib to the requirements or make its import optional.

Add example notebook

There are good tutorials in the docs, but it would be nice to have them also in the form of a notebook or two so that users can download and start hacking on them directly instead of copy-pasting from the docs. This is just a suggestion, your choice.

Doesn't work with numpy versions over 1.23.5

I was running a library that uses mistree and got the following error about np.bool not being available:

File /usr/local/lib/python3.8/dist-packages/mistree-1.2.0-py3.8-linux-x86_64.egg/mistree/mst/get_mst_class.py:198, in GetMST.get_branches(self, box_size, sub_divisions)
    187 """Finds the branches of a MST.
    188 
    189 Parameters
   (...)
    195     finding algorithm when using many points (> 100000).
    196 """
    197 if sub_divisions is 1:
--> 198     branch_index, rejected_branch_index = branches.get_branch_index(self.edge_index, self.edge_degree)
    199 else:
    200     if self._mode is '2D':

File /usr/local/lib/python3.8/dist-packages/mistree-1.2.0-py3.8-linux-x86_64.egg/mistree/mst/branches.py:54, in get_branch_index(edge_index, edge_degree, branch_cutting_frequency)
     52 branch_index = []
     53 branch_index_rejected = []
---> 54 mask_end = np.ones(index_branch_end.shape, dtype=np.bool)
     55 mask_mid = np.ones(index_branch_mid.shape, dtype=np.bool)
     56 count = 0

File /usr/local/lib/python3.8/dist-packages/numpy/__init__.py:284, in __getattr__(attr)
    281     from .testing import Tester
    282     return Tester
--> 284 raise AttributeError("module {!r} has no attribute "
    285                      "{!r}".format(__name__, attr))

AttributeError: module 'numpy' has no attribute 'bool'

When I did some digging, it looks like numpy 1.24.0+ no longer has that type, and a comment says that 1.23.5 was the last version to have it. I tried doing pip3 install numpy==1.23.5 and after that the code ran fine.

One solution would be to specify a numpy version in the requirements.txt file, but a better one would probably just be to replace np.bool with bool with a find and replace. According to this numpy warning it's the same thing under the hood:

DeprecationWarning: np.bool is a deprecated alias for the builtin bool. To silence this warning, use bool by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use np.bool_ here. Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations

Expand "statement of need"

Currently the introduction in the docs quite short:

MiSTree is designed with the intent of being an easy to use minimum spanning tree library. The methods and statistics used in the module are discussed in the paper “Beyond two-point statistics: using the Minimum Spanning Tree as a tool for cosmology” [ArXiv=1907.00989] which can be found here.

Could you expand it and give a summary of how spanning trees are used in cosmology?
Can you add this summary also to the README of the github repo?

Extend to use with fewer than 21 points

The following throws a ValueError.

>>> import numpy as np
>>> import mistree as mist
>>> x = np.random.random_sample(20)
>>> y = np.random.random_sample(20)
>>> mst = mist.GetMST(x=x, y=y)
>>> mst.get_stats()
...
ValueError: Expected n_neighbors <= n_samples,  but n_samples = 20, n_neighbors = 21

I'm not seeing this limitation spelled out in the docs, but perhaps I missed it.

Installation Error

Hi, I'm trying to install mistree using pip and I get the following error:

building 'mistree.levy_flight.utility_random_walk' extension
error: extension 'mistree.levy_flight.utility_random_walk' has Fortran sources but no Fortran compiler found

ERROR: Failed building wheel for mistree

Is there any fortran requirement? I could not see anything in the Dependencies.
I also tried to clean my environment but still get the same issue.

Cheers,
Raul

Installation fails for Python 3.10 on M1

I got the following error:

pip install mistree
Collecting mistree
  Using cached mistree-1.2.0.tar.gz (27 kB)
  Preparing metadata (setup.py) ... done
Requirement already satisfied: numpy in /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages (from mistree) (1.22.3)
Requirement already satisfied: matplotlib in /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages (from mistree) (3.5.2)
Requirement already satisfied: scipy in /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages (from mistree) (1.8.0)
Requirement already satisfied: scikit-learn in /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages (from mistree) (1.1.1)
Requirement already satisfied: pyparsing>=2.2.1 in /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages (from matplotlib->mistree) (3.0.7)
Requirement already satisfied: pillow>=6.2.0 in /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages (from matplotlib->mistree) (8.4.0)
Requirement already satisfied: packaging>=20.0 in /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages (from matplotlib->mistree) (21.3)
Requirement already satisfied: python-dateutil>=2.7 in /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages (from matplotlib->mistree) (2.8.2)
Requirement already satisfied: kiwisolver>=1.0.1 in /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages (from matplotlib->mistree) (1.4.2)
Requirement already satisfied: fonttools>=4.22.0 in /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages (from matplotlib->mistree) (4.33.3)
Requirement already satisfied: cycler>=0.10 in /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages (from matplotlib->mistree) (0.11.0)
Requirement already satisfied: threadpoolctl>=2.0.0 in /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages (from scikit-learn->mistree) (3.1.0)
Requirement already satisfied: joblib>=1.0.0 in /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages (from scikit-learn->mistree) (1.1.0)
Requirement already satisfied: six>=1.5 in /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages (from python-dateutil>=2.7->matplotlib->mistree) (1.16.0)
Building wheels for collected packages: mistree
  Building wheel for mistree (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [221 lines of output]
      running bdist_wheel
      running build
      running config_cc
      INFO: unifing config_cc, config, build_clib, build_ext, build commands --compiler options
      running config_fc
      INFO: unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
      running build_src
      INFO: build_src
      INFO: building extension "mistree.levy_flight.utility_random_walk" sources
      INFO: f2py options: []
      INFO:   adding 'build/src.macosx-12.2-arm64-3.10/build/src.macosx-12.2-arm64-3.10/mistree/levy_flight/fortranobject.c' to sources.
      INFO:   adding 'build/src.macosx-12.2-arm64-3.10/build/src.macosx-12.2-arm64-3.10/mistree/levy_flight' to include_dirs.
      INFO: building extension "mistree.mst.utility_density" sources
      INFO: f2py options: []
      INFO:   adding 'build/src.macosx-12.2-arm64-3.10/build/src.macosx-12.2-arm64-3.10/mistree/mst/fortranobject.c' to sources.
      INFO:   adding 'build/src.macosx-12.2-arm64-3.10/build/src.macosx-12.2-arm64-3.10/mistree/mst' to include_dirs.
      INFO: building extension "mistree.mst.utility_mst" sources
      INFO: f2py options: []
      INFO:   adding 'build/src.macosx-12.2-arm64-3.10/build/src.macosx-12.2-arm64-3.10/mistree/mst/fortranobject.c' to sources.
      INFO:   adding 'build/src.macosx-12.2-arm64-3.10/build/src.macosx-12.2-arm64-3.10/mistree/mst' to include_dirs.
      INFO: build_src: building npy-pkg config files
      running build_py
      creating build/lib.macosx-12.2-arm64-3.10
      creating build/lib.macosx-12.2-arm64-3.10/mistree
      copying mistree/__init__.py -> build/lib.macosx-12.2-arm64-3.10/mistree
      creating build/lib.macosx-12.2-arm64-3.10/mistree/mst
      copying mistree/mst/tomo.py -> build/lib.macosx-12.2-arm64-3.10/mistree/mst
      copying mistree/mst/partition.py -> build/lib.macosx-12.2-arm64-3.10/mistree/mst
      copying mistree/mst/scale_cut.py -> build/lib.macosx-12.2-arm64-3.10/mistree/mst
      copying mistree/mst/branches.py -> build/lib.macosx-12.2-arm64-3.10/mistree/mst
      copying mistree/mst/hist_mst.py -> build/lib.macosx-12.2-arm64-3.10/mistree/mst
      copying mistree/mst/graph.py -> build/lib.macosx-12.2-arm64-3.10/mistree/mst
      copying mistree/mst/__init__.py -> build/lib.macosx-12.2-arm64-3.10/mistree/mst
      copying mistree/mst/density.py -> build/lib.macosx-12.2-arm64-3.10/mistree/mst
      copying mistree/mst/stats.py -> build/lib.macosx-12.2-arm64-3.10/mistree/mst
      copying mistree/mst/construct.py -> build/lib.macosx-12.2-arm64-3.10/mistree/mst
      copying mistree/mst/get_mst_class.py -> build/lib.macosx-12.2-arm64-3.10/mistree/mst
      copying mistree/mst/plot_mst.py -> build/lib.macosx-12.2-arm64-3.10/mistree/mst
      creating build/lib.macosx-12.2-arm64-3.10/mistree/coordinates
      copying mistree/coordinates/__init__.py -> build/lib.macosx-12.2-arm64-3.10/mistree/coordinates
      copying mistree/coordinates/coordinate_utility.py -> build/lib.macosx-12.2-arm64-3.10/mistree/coordinates
      creating build/lib.macosx-12.2-arm64-3.10/mistree/levy_flight
      copying mistree/levy_flight/__init__.py -> build/lib.macosx-12.2-arm64-3.10/mistree/levy_flight
      copying mistree/levy_flight/levy_flight.py -> build/lib.macosx-12.2-arm64-3.10/mistree/levy_flight
      running build_ext
      INFO: customize UnixCCompiler
      INFO: customize UnixCCompiler using build_ext
      INFO: CCompilerOpt.cc_test_flags[1021] : testing flags (-march=native)
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      creating /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpbdzci1cp/Users
      creating /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpbdzci1cp/Users/mesut
      creating /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpbdzci1cp/Users/mesut/.pyenv
      creating /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpbdzci1cp/Users/mesut/.pyenv/versions
      creating /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpbdzci1cp/Users/mesut/.pyenv/versions/3.10.2
      creating /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpbdzci1cp/Users/mesut/.pyenv/versions/3.10.2/lib
      creating /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpbdzci1cp/Users/mesut/.pyenv/versions/3.10.2/lib/python3.10
      creating /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpbdzci1cp/Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages
      creating /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpbdzci1cp/Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy
      creating /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpbdzci1cp/Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils
      creating /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpbdzci1cp/Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks
      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-march=native'
      WARN: CCompilerOpt.dist_test[590] : CCompilerOpt._dist_test_spawn[724] : Command (clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math -I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/test_flags.c -o /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpbdzci1cp/Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/test_flags.o -MMD -MF /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpbdzci1cp/Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/test_flags.o.d -march=native) failed with exit status 1 output ->
      clang: error: the clang compiler does not support '-march=native'

      WARN: CCompilerOpt.cc_test_flags[1025] : testing failed
      INFO: CCompilerOpt.cc_test_flags[1021] : testing flags (-O3)
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-O3'
      INFO: CCompilerOpt.cc_test_flags[1021] : testing flags (-Werror=switch)
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-Werror=switch'
      INFO: CCompilerOpt.cc_test_flags[1021] : testing flags (-Werror)
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-Werror'
      WARN: CCompilerOpt.dist_test[590] : CCompilerOpt._dist_test_spawn[724] : Command (clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math -I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/test_flags.c -o /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpbdzci1cp/Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/test_flags.o -MMD -MF /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpbdzci1cp/Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/test_flags.o.d -Werror) failed with exit status 1 output ->
      error: overriding currently unsupported use of floating point exceptions on this target [-Werror,-Wunsupported-floating-point-opt]
      1 error generated.

      WARN: CCompilerOpt.cc_test_flags[1025] : testing failed
      INFO: CCompilerOpt.__init__[1709] : check requested baseline
      INFO: CCompilerOpt.feature_test[1474] : testing feature 'NEON' with flags ()
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-Werror=switch'
      INFO: CCompilerOpt.feature_test[1474] : testing feature 'ASIMD' with flags ()
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-Werror=switch'
      INFO: CCompilerOpt.feature_test[1474] : testing feature 'NEON_FP16' with flags ()
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-Werror=switch'
      INFO: CCompilerOpt.feature_test[1474] : testing feature 'NEON_VFPV4' with flags ()
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-Werror=switch'
      INFO: CCompilerOpt.__init__[1718] : check requested dispatch-able features
      INFO: CCompilerOpt.cc_test_flags[1021] : testing flags (-march=armv8.2-a+fp16)
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-march=armv8.2-a+fp16'
      INFO: CCompilerOpt.feature_test[1474] : testing feature 'ASIMDHP' with flags (-march=armv8.2-a+fp16)
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-march=armv8.2-a+fp16 -Werror=switch'
      INFO: CCompilerOpt.cc_test_flags[1021] : testing flags (-march=armv8.2-a+fp16fml)
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-march=armv8.2-a+fp16fml'
      INFO: CCompilerOpt.feature_test[1474] : testing feature 'ASIMDFHM' with flags (-march=armv8.2-a+fp16+fp16fml)
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-march=armv8.2-a+fp16+fp16fml -Werror=switch'
      WARN: CCompilerOpt.dist_test[590] : CCompilerOpt._dist_test_spawn[724] : Command (clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math -I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/cpu_asimdfhm.c -o /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpbdzci1cp/Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/cpu_asimdfhm.o -MMD -MF /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpbdzci1cp/Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/cpu_asimdfhm.o.d -march=armv8.2-a+fp16+fp16fml -Werror=switch) failed with exit status 1 output ->
      warning: overriding currently unsupported use of floating point exceptions on this target [-Wunsupported-floating-point-opt]
      /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/cpu_asimdfhm.c:13:35: error: implicit declaration of function 'vfmlal_low_u32' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
          int ret  = (int)vget_lane_f32(vfmlal_low_u32(vlf, vlhp, vlhp), 0);
                                        ^
      /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/cpu_asimdfhm.c:13:35: note: did you mean 'vfmlal_low_f16'?
      /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/13.1.6/include/arm_neon.h:43691:18: note: 'vfmlal_low_f16' declared here
      __ai float32x2_t vfmlal_low_f16(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) {
                       ^
      /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/cpu_asimdfhm.c:13:21: error: initializing 'float32x2_t' (vector of 2 'float32_t' values) with an expression of incompatible type 'int'
          int ret  = (int)vget_lane_f32(vfmlal_low_u32(vlf, vlhp, vlhp), 0);
                          ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/13.1.6/include/arm_neon.h:7977:15: note: expanded from macro 'vget_lane_f32'
        float32x2_t __s0 = __p0; \
                    ^      ~~~~
      /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/cpu_asimdfhm.c:14:36: error: implicit declaration of function 'vfmlslq_high_u32' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
              ret += (int)vgetq_lane_f32(vfmlslq_high_u32(vf, vhp, vhp), 0);
                                         ^
      /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/cpu_asimdfhm.c:14:36: note: did you mean 'vmlsl_high_u32'?
      /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/13.1.6/include/arm_neon.h:69448:17: note: 'vmlsl_high_u32' declared here
      __ai uint64x2_t vmlsl_high_u32(uint64x2_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
                      ^
      /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/cpu_asimdfhm.c:14:21: error: initializing 'float32x4_t' (vector of 4 'float32_t' values) with an expression of incompatible type 'int'
              ret += (int)vgetq_lane_f32(vfmlslq_high_u32(vf, vhp, vhp), 0);
                          ^              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/13.1.6/include/arm_neon.h:7787:15: note: expanded from macro 'vgetq_lane_f32'
        float32x4_t __s0 = __p0; \
                    ^      ~~~~
      1 warning and 4 errors generated.

      WARN: CCompilerOpt.feature_test[1490] : testing failed
      INFO: CCompilerOpt.cc_test_flags[1021] : testing flags (-march=armv8.2-a+dotprod)
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-march=armv8.2-a+dotprod'
      INFO: CCompilerOpt.feature_test[1474] : testing feature 'ASIMDDP' with flags (-march=armv8.2-a+dotprod)
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-march=armv8.2-a+dotprod -Werror=switch'
      INFO: CCompilerOpt.__init__[1730] : skip features (NEON_VFPV4 ASIMD NEON NEON_FP16) since its part of baseline
      INFO: CCompilerOpt.__init__[1734] : initialize targets groups
      INFO: CCompilerOpt.__init__[1736] : parse target group simd_test
      INFO: CCompilerOpt._parse_target_tokens[1947] : skip targets (VSX2 VSX FMA4 VSX3 (FMA3 AVX2) XOP SSE42 AVX512_SKX AVX512F SSE2) not part of baseline or dispatch-able features
      INFO: CCompilerOpt._parse_policy_not_keepbase[2059] : skip baseline features (ASIMD)
      INFO: CCompilerOpt.generate_dispatch_header[2280] : generate CPU dispatch header: (build/src.macosx-12.2-arm64-3.10/numpy/distutils/include/npy_cpu_dispatch_config.h)
      WARN: CCompilerOpt.generate_dispatch_header[2289] : dispatch header dir build/src.macosx-12.2-arm64-3.10/numpy/distutils/include does not exist, creating it
      INFO: get_default_fcompiler: matching types: '['gnu95', 'nag', 'nagfor', 'absoft', 'ibm', 'intel', 'gnu', 'g95', 'pg']'
      INFO: customize Gnu95FCompiler
      WARN: Could not locate executable gfortran
      WARN: Could not locate executable f95
      INFO: customize NAGFCompiler
      INFO: customize NAGFORCompiler
      WARN: Could not locate executable nagfor
      INFO: customize AbsoftFCompiler
      WARN: Could not locate executable f90
      WARN: Could not locate executable f77
      INFO: customize IBMFCompiler
      WARN: Could not locate executable xlf90
      WARN: Could not locate executable xlf
      INFO: customize IntelFCompiler
      WARN: Could not locate executable ifort
      WARN: Could not locate executable ifc
      INFO: customize GnuFCompiler
      WARN: Could not locate executable g77
      INFO: customize G95FCompiler
      WARN: Could not locate executable g95
      INFO: customize PGroupFCompiler
      WARN: Could not locate executable pgfortran
      WARN: don't know how to compile Fortran code on platform 'posix'
      warning: build_ext: f77_compiler=None is not available.

      INFO: building 'mistree.levy_flight.utility_random_walk' extension
      error: extension 'mistree.levy_flight.utility_random_walk' has Fortran sources but no Fortran compiler found
      INFO:
      ########### EXT COMPILER OPTIMIZATION ###########
      INFO: Platform      :
        Architecture: aarch64
        Compiler    : clang

      CPU baseline  :
        Requested   : 'min'
        Enabled     : NEON NEON_FP16 NEON_VFPV4 ASIMD
        Flags       : none
        Extra checks: none

      CPU dispatch  :
        Requested   : 'max -xop -fma4'
        Enabled     : ASIMDHP ASIMDDP
        Generated   : none
      INFO: CCompilerOpt.cache_flush[817] : write cache to path -> /private/var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/pip-install-kkx2y8lx/mistree_60ca7f6cc91b40579fedbc973f4d598e/build/temp.macosx-12.2-arm64-3.10/ccompiler_opt_cache_ext.py
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for mistree
  Running setup.py clean for mistree
Failed to build mistree
Installing collected packages: mistree
  Running setup.py install for mistree ... error
  error: subprocess-exited-with-error

  × Running setup.py install for mistree did not run successfully.
  │ exit code: 1
  ╰─> [220 lines of output]
      running install
      running build
      running config_cc
      INFO: unifing config_cc, config, build_clib, build_ext, build commands --compiler options
      running config_fc
      INFO: unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
      running build_src
      INFO: build_src
      INFO: building extension "mistree.levy_flight.utility_random_walk" sources
      INFO: f2py options: []
      INFO:   adding 'build/src.macosx-12.2-arm64-3.10/build/src.macosx-12.2-arm64-3.10/mistree/levy_flight/fortranobject.c' to sources.
      INFO:   adding 'build/src.macosx-12.2-arm64-3.10/build/src.macosx-12.2-arm64-3.10/mistree/levy_flight' to include_dirs.
      INFO: building extension "mistree.mst.utility_density" sources
      INFO: f2py options: []
      INFO:   adding 'build/src.macosx-12.2-arm64-3.10/build/src.macosx-12.2-arm64-3.10/mistree/mst/fortranobject.c' to sources.
      INFO:   adding 'build/src.macosx-12.2-arm64-3.10/build/src.macosx-12.2-arm64-3.10/mistree/mst' to include_dirs.
      INFO: building extension "mistree.mst.utility_mst" sources
      INFO: f2py options: []
      INFO:   adding 'build/src.macosx-12.2-arm64-3.10/build/src.macosx-12.2-arm64-3.10/mistree/mst/fortranobject.c' to sources.
      INFO:   adding 'build/src.macosx-12.2-arm64-3.10/build/src.macosx-12.2-arm64-3.10/mistree/mst' to include_dirs.
      INFO: build_src: building npy-pkg config files
      running build_py
      creating build/lib.macosx-12.2-arm64-3.10
      creating build/lib.macosx-12.2-arm64-3.10/mistree
      copying mistree/__init__.py -> build/lib.macosx-12.2-arm64-3.10/mistree
      creating build/lib.macosx-12.2-arm64-3.10/mistree/mst
      copying mistree/mst/tomo.py -> build/lib.macosx-12.2-arm64-3.10/mistree/mst
      copying mistree/mst/partition.py -> build/lib.macosx-12.2-arm64-3.10/mistree/mst
      copying mistree/mst/scale_cut.py -> build/lib.macosx-12.2-arm64-3.10/mistree/mst
      copying mistree/mst/branches.py -> build/lib.macosx-12.2-arm64-3.10/mistree/mst
      copying mistree/mst/hist_mst.py -> build/lib.macosx-12.2-arm64-3.10/mistree/mst
      copying mistree/mst/graph.py -> build/lib.macosx-12.2-arm64-3.10/mistree/mst
      copying mistree/mst/__init__.py -> build/lib.macosx-12.2-arm64-3.10/mistree/mst
      copying mistree/mst/density.py -> build/lib.macosx-12.2-arm64-3.10/mistree/mst
      copying mistree/mst/stats.py -> build/lib.macosx-12.2-arm64-3.10/mistree/mst
      copying mistree/mst/construct.py -> build/lib.macosx-12.2-arm64-3.10/mistree/mst
      copying mistree/mst/get_mst_class.py -> build/lib.macosx-12.2-arm64-3.10/mistree/mst
      copying mistree/mst/plot_mst.py -> build/lib.macosx-12.2-arm64-3.10/mistree/mst
      creating build/lib.macosx-12.2-arm64-3.10/mistree/coordinates
      copying mistree/coordinates/__init__.py -> build/lib.macosx-12.2-arm64-3.10/mistree/coordinates
      copying mistree/coordinates/coordinate_utility.py -> build/lib.macosx-12.2-arm64-3.10/mistree/coordinates
      creating build/lib.macosx-12.2-arm64-3.10/mistree/levy_flight
      copying mistree/levy_flight/__init__.py -> build/lib.macosx-12.2-arm64-3.10/mistree/levy_flight
      copying mistree/levy_flight/levy_flight.py -> build/lib.macosx-12.2-arm64-3.10/mistree/levy_flight
      running build_ext
      INFO: customize UnixCCompiler
      INFO: customize UnixCCompiler using build_ext
      INFO: CCompilerOpt.cc_test_flags[1021] : testing flags (-march=native)
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      creating /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpp9gl966c/Users
      creating /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpp9gl966c/Users/mesut
      creating /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpp9gl966c/Users/mesut/.pyenv
      creating /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpp9gl966c/Users/mesut/.pyenv/versions
      creating /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpp9gl966c/Users/mesut/.pyenv/versions/3.10.2
      creating /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpp9gl966c/Users/mesut/.pyenv/versions/3.10.2/lib
      creating /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpp9gl966c/Users/mesut/.pyenv/versions/3.10.2/lib/python3.10
      creating /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpp9gl966c/Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages
      creating /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpp9gl966c/Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy
      creating /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpp9gl966c/Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils
      creating /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpp9gl966c/Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks
      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-march=native'
      WARN: CCompilerOpt.dist_test[590] : CCompilerOpt._dist_test_spawn[724] : Command (clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math -I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/test_flags.c -o /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpp9gl966c/Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/test_flags.o -MMD -MF /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpp9gl966c/Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/test_flags.o.d -march=native) failed with exit status 1 output ->
      clang: error: the clang compiler does not support '-march=native'

      WARN: CCompilerOpt.cc_test_flags[1025] : testing failed
      INFO: CCompilerOpt.cc_test_flags[1021] : testing flags (-O3)
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-O3'
      INFO: CCompilerOpt.cc_test_flags[1021] : testing flags (-Werror=switch)
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-Werror=switch'
      INFO: CCompilerOpt.cc_test_flags[1021] : testing flags (-Werror)
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-Werror'
      WARN: CCompilerOpt.dist_test[590] : CCompilerOpt._dist_test_spawn[724] : Command (clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math -I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/test_flags.c -o /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpp9gl966c/Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/test_flags.o -MMD -MF /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpp9gl966c/Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/test_flags.o.d -Werror) failed with exit status 1 output ->
      error: overriding currently unsupported use of floating point exceptions on this target [-Werror,-Wunsupported-floating-point-opt]
      1 error generated.

      WARN: CCompilerOpt.cc_test_flags[1025] : testing failed
      INFO: CCompilerOpt.__init__[1709] : check requested baseline
      INFO: CCompilerOpt.feature_test[1474] : testing feature 'NEON_VFPV4' with flags ()
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-Werror=switch'
      INFO: CCompilerOpt.feature_test[1474] : testing feature 'NEON_FP16' with flags ()
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-Werror=switch'
      INFO: CCompilerOpt.feature_test[1474] : testing feature 'NEON' with flags ()
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-Werror=switch'
      INFO: CCompilerOpt.feature_test[1474] : testing feature 'ASIMD' with flags ()
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-Werror=switch'
      INFO: CCompilerOpt.__init__[1718] : check requested dispatch-able features
      INFO: CCompilerOpt.cc_test_flags[1021] : testing flags (-march=armv8.2-a+fp16)
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-march=armv8.2-a+fp16'
      INFO: CCompilerOpt.feature_test[1474] : testing feature 'ASIMDHP' with flags (-march=armv8.2-a+fp16)
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-march=armv8.2-a+fp16 -Werror=switch'
      INFO: CCompilerOpt.cc_test_flags[1021] : testing flags (-march=armv8.2-a+fp16fml)
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-march=armv8.2-a+fp16fml'
      INFO: CCompilerOpt.feature_test[1474] : testing feature 'ASIMDFHM' with flags (-march=armv8.2-a+fp16+fp16fml)
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-march=armv8.2-a+fp16+fp16fml -Werror=switch'
      WARN: CCompilerOpt.dist_test[590] : CCompilerOpt._dist_test_spawn[724] : Command (clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math -I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/cpu_asimdfhm.c -o /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpp9gl966c/Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/cpu_asimdfhm.o -MMD -MF /var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/tmpp9gl966c/Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/cpu_asimdfhm.o.d -march=armv8.2-a+fp16+fp16fml -Werror=switch) failed with exit status 1 output ->
      warning: overriding currently unsupported use of floating point exceptions on this target [-Wunsupported-floating-point-opt]
      /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/cpu_asimdfhm.c:13:35: error: implicit declaration of function 'vfmlal_low_u32' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
          int ret  = (int)vget_lane_f32(vfmlal_low_u32(vlf, vlhp, vlhp), 0);
                                        ^
      /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/cpu_asimdfhm.c:13:35: note: did you mean 'vfmlal_low_f16'?
      /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/13.1.6/include/arm_neon.h:43691:18: note: 'vfmlal_low_f16' declared here
      __ai float32x2_t vfmlal_low_f16(float32x2_t __p0, float16x4_t __p1, float16x4_t __p2) {
                       ^
      /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/cpu_asimdfhm.c:13:21: error: initializing 'float32x2_t' (vector of 2 'float32_t' values) with an expression of incompatible type 'int'
          int ret  = (int)vget_lane_f32(vfmlal_low_u32(vlf, vlhp, vlhp), 0);
                          ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/13.1.6/include/arm_neon.h:7977:15: note: expanded from macro 'vget_lane_f32'
        float32x2_t __s0 = __p0; \
                    ^      ~~~~
      /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/cpu_asimdfhm.c:14:36: error: implicit declaration of function 'vfmlslq_high_u32' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
              ret += (int)vgetq_lane_f32(vfmlslq_high_u32(vf, vhp, vhp), 0);
                                         ^
      /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/cpu_asimdfhm.c:14:36: note: did you mean 'vmlsl_high_u32'?
      /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/13.1.6/include/arm_neon.h:69448:17: note: 'vmlsl_high_u32' declared here
      __ai uint64x2_t vmlsl_high_u32(uint64x2_t __p0, uint32x4_t __p1, uint32x4_t __p2) {
                      ^
      /Users/mesut/.pyenv/versions/3.10.2/lib/python3.10/site-packages/numpy/distutils/checks/cpu_asimdfhm.c:14:21: error: initializing 'float32x4_t' (vector of 4 'float32_t' values) with an expression of incompatible type 'int'
              ret += (int)vgetq_lane_f32(vfmlslq_high_u32(vf, vhp, vhp), 0);
                          ^              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/13.1.6/include/arm_neon.h:7787:15: note: expanded from macro 'vgetq_lane_f32'
        float32x4_t __s0 = __p0; \
                    ^      ~~~~
      1 warning and 4 errors generated.

      WARN: CCompilerOpt.feature_test[1490] : testing failed
      INFO: CCompilerOpt.cc_test_flags[1021] : testing flags (-march=armv8.2-a+dotprod)
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-march=armv8.2-a+dotprod'
      INFO: CCompilerOpt.feature_test[1474] : testing feature 'ASIMDDP' with flags (-march=armv8.2-a+dotprod)
      INFO: C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ftrapping-math

      INFO: compile options: '-I/Users/mesut/.pyenv/versions/3.10.2/include/python3.10 -c'
      extra options: '-march=armv8.2-a+dotprod -Werror=switch'
      INFO: CCompilerOpt.__init__[1730] : skip features (ASIMD NEON_VFPV4 NEON_FP16 NEON) since its part of baseline
      INFO: CCompilerOpt.__init__[1734] : initialize targets groups
      INFO: CCompilerOpt.__init__[1736] : parse target group simd_test
      INFO: CCompilerOpt._parse_target_tokens[1947] : skip targets (SSE42 VSX2 XOP SSE2 AVX512_SKX FMA4 (AVX2 FMA3) AVX512F VSX3 VSX) not part of baseline or dispatch-able features
      INFO: CCompilerOpt._parse_policy_not_keepbase[2059] : skip baseline features (ASIMD)
      INFO: CCompilerOpt.generate_dispatch_header[2280] : generate CPU dispatch header: (build/src.macosx-12.2-arm64-3.10/numpy/distutils/include/npy_cpu_dispatch_config.h)
      INFO: get_default_fcompiler: matching types: '['gnu95', 'nag', 'nagfor', 'absoft', 'ibm', 'intel', 'gnu', 'g95', 'pg']'
      INFO: customize Gnu95FCompiler
      WARN: Could not locate executable gfortran
      WARN: Could not locate executable f95
      INFO: customize NAGFCompiler
      INFO: customize NAGFORCompiler
      WARN: Could not locate executable nagfor
      INFO: customize AbsoftFCompiler
      WARN: Could not locate executable f90
      WARN: Could not locate executable f77
      INFO: customize IBMFCompiler
      WARN: Could not locate executable xlf90
      WARN: Could not locate executable xlf
      INFO: customize IntelFCompiler
      WARN: Could not locate executable ifort
      WARN: Could not locate executable ifc
      INFO: customize GnuFCompiler
      WARN: Could not locate executable g77
      INFO: customize G95FCompiler
      WARN: Could not locate executable g95
      INFO: customize PGroupFCompiler
      WARN: Could not locate executable pgfortran
      WARN: don't know how to compile Fortran code on platform 'posix'
      warning: build_ext: f77_compiler=None is not available.

      INFO: building 'mistree.levy_flight.utility_random_walk' extension
      error: extension 'mistree.levy_flight.utility_random_walk' has Fortran sources but no Fortran compiler found
      INFO:
      ########### EXT COMPILER OPTIMIZATION ###########
      INFO: Platform      :
        Architecture: aarch64
        Compiler    : clang

      CPU baseline  :
        Requested   : 'min'
        Enabled     : NEON NEON_FP16 NEON_VFPV4 ASIMD
        Flags       : none
        Extra checks: none

      CPU dispatch  :
        Requested   : 'max -xop -fma4'
        Enabled     : ASIMDHP ASIMDDP
        Generated   : none
      INFO: CCompilerOpt.cache_flush[817] : write cache to path -> /private/var/folders/7h/f3_2t1sj3d767x_vsjw126fh0000gn/T/pip-install-kkx2y8lx/mistree_60ca7f6cc91b40579fedbc973f4d598e/build/temp.macosx-12.2-arm64-3.10/ccompiler_opt_cache_ext.py
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> mistree

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.

Improve JOSS paper

  • Expand summary, add clear description of the high-level functionality and purpose of the software for a diverse, non-specialist audience
  • After you fix #4 , see if you can re-use some of that in the paper
  • You mention n-point statistics, can you look for a review paper on that you can cite?

I'll expand this in the next days but you can start working on these items.

Import Error on Windows 10

Hi Krishna,

I am not able to import mistree with my windows 10 machine.
I get the following ImportError:

import mistree


ImportError Traceback (most recent call last)
in
7 import random
8 from jupyterthemes import jtplot
----> 9 import mistree as mist
10
11

~\anaconda3\lib\site-packages\mistree_init_.py in
9
10 # levy flight distributions
---> 11 from .levy_flight.levy_flight import get_random_flight
12 from .levy_flight.levy_flight import get_levy_flight
13 from .levy_flight.levy_flight import get_adjusted_levy_flight

~\anaconda3\lib\site-packages\mistree\levy_flight_init_.py in
----> 1 from .levy_flight import get_random_flight
2 from .levy_flight import get_levy_flight
3 from .levy_flight import get_adjusted_levy_flight

~\anaconda3\lib\site-packages\mistree\levy_flight\levy_flight.py in
3
4 import numpy as np
----> 5 from . import utility_random_walk as random_walk
6
7

ImportError: DLL load failed: The specified module could not be found.

I have tried to follow the solution suggested in here: https://stackoverflow.com/questions/20201868/importerror-dll-load-failed-the-specified-module-could-not-be-found but no dice.

Not sure if it is a dependency issue or a windows 10 issue, but any help is appreciated.

Thanks.

Failing to build on Arch Linux

I have numpy installed, but I still get this error:

 ╭─can@pyramidal in repo: mask_to_mesh on  master [!?] is  v0.1.0 via  v3.10.13 (mask-to-mesh-py3.10) took 27s
[🔴] × poetry run pip install mistree
Collecting mistree
  Downloading mistree-1.2.2.tar.gz (29 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error
  
  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [17 lines of output]
      Traceback (most recent call last):
        File "/home/can/.cache/pypoetry/virtualenvs/mask-to-mesh-dT1QsCdw-py3.10/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "/home/can/.cache/pypoetry/virtualenvs/mask-to-mesh-dT1QsCdw-py3.10/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
        File "/home/can/.cache/pypoetry/virtualenvs/mask-to-mesh-dT1QsCdw-py3.10/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel
          return hook(config_settings)
        File "/tmp/pip-build-env-k081b9ip/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 325, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=['wheel'])
        File "/tmp/pip-build-env-k081b9ip/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 295, in _get_build_requires
          self.run_setup()
        File "/tmp/pip-build-env-k081b9ip/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 480, in run_setup
          super(_BuildMetaLegacyBackend, self).run_setup(setup_script=setup_script)
        File "/tmp/pip-build-env-k081b9ip/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 311, in run_setup
          exec(code, locals())
        File "<string>", line 4, in <module>
      ModuleNotFoundError: No module named 'numpy'

Not sure why, but the build is in a temporary environment, considering it is under /tmp.

ValueError in “get_branch_index” function

Hello,

I get the following error message.

ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (4,) + inhomogeneous part.

It seems '_twig' in get_branch_index appends an numpy array instead of a value.
Could you check on this?

Thanks in advance!
Eunhee

github version is installed but cannot be imported

When I try to install mistree via pip install -e . the installation seems to finish ok, but when I try to import it I get a segmentation fault.

Here's what I get:

$ pip install -e .
Obtaining file:///home/melissa/Downloads/mistree-master
Requirement already satisfied: numpy in /opt/numerics/miniconda3/envs/mistree/lib/python3.6/site-packages (from mistree==1.1.2) (1.13.3)
Requirement already satisfied: matplotlib in /opt/numerics/miniconda3/envs/mistree/lib/python3.6/site-packages (from mistree==1.1.2) (2.2.2)
Requirement already satisfied: scipy in /opt/numerics/miniconda3/envs/mistree/lib/python3.6/site-packages (from mistree==1.1.2) (1.1.0)
Requirement already satisfied: scikit-learn in /opt/numerics/miniconda3/envs/mistree/lib/python3.6/site-packages (from mistree==1.1.2) (0.19.2)
Requirement already satisfied: cycler>=0.10 in /opt/numerics/miniconda3/envs/mistree/lib/python3.6/site-packages (from matplotlib->mistree==1.1.2) (0.10.0)
Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /opt/numerics/miniconda3/envs/mistree/lib/python3.6/site-packages (from matplotlib->mistree==1.1.2) (2.4.2)
Requirement already satisfied: python-dateutil>=2.1 in /opt/numerics/miniconda3/envs/mistree/lib/python3.6/site-packages (from matplotlib->mistree==1.1.2) (2.8.0)
Requirement already satisfied: pytz in /opt/numerics/miniconda3/envs/mistree/lib/python3.6/site-packages (from matplotlib->mistree==1.1.2) (2019.2)
Requirement already satisfied: six>=1.10 in /opt/numerics/miniconda3/envs/mistree/lib/python3.6/site-packages (from matplotlib->mistree==1.1.2) (1.12.0)
Requirement already satisfied: kiwisolver>=1.0.1 in /opt/numerics/miniconda3/envs/mistree/lib/python3.6/site-packages (from matplotlib->mistree==1.1.2) (1.1.0)
Requirement already satisfied: setuptools in /opt/numerics/miniconda3/envs/mistree/lib/python3.6/site-packages (from kiwisolver>=1.0.1->matplotlib->mistree==1.1.2) (41.2.0)
Installing collected packages: mistree
  Found existing installation: mistree 1.1.2
    Uninstalling mistree-1.1.2:
      Successfully uninstalled mistree-1.1.2
  Running setup.py develop for mistree
Successfully installed mistree

$ ipython
Python 3.6.5 | packaged by conda-forge | (default, Apr  6 2018, 13:39:56) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.8.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import mistree as mist                                                                                                                       
Falha de segmentação (imagem do núcleo gravada)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.