arrowspace 0.13.1__tar.gz → 0.13.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of arrowspace might be problematic. Click here for more details.
- {arrowspace-0.13.1/pyarrowspace → arrowspace-0.13.3}/Cargo.lock +7 -4
- {arrowspace-0.13.1/pyarrowspace → arrowspace-0.13.3}/Cargo.toml +3 -3
- {arrowspace-0.13.1 → arrowspace-0.13.3}/PKG-INFO +1 -1
- {arrowspace-0.13.1/pyarrowspace → arrowspace-0.13.3}/README.md +3 -3
- {arrowspace-0.13.1 → arrowspace-0.13.3}/pyproject.toml +0 -1
- {arrowspace-0.13.1/pyarrowspace → arrowspace-0.13.3}/src/lib.rs +4 -4
- {arrowspace-0.13.1/pyarrowspace → arrowspace-0.13.3}/tests/test_0.py +1 -1
- {arrowspace-0.13.1/pyarrowspace → arrowspace-0.13.3}/tests/test_1_quora_questions.py +1 -1
- {arrowspace-0.13.1/pyarrowspace → arrowspace-0.13.3}/tests/test_2_CVE_db.py +1 -1
- {arrowspace-0.13.1/pyarrowspace → arrowspace-0.13.3}/tests/test_3_beir.py +1 -1
- arrowspace-0.13.1/arrowspace-rs/.gitignore +0 -2
- arrowspace-0.13.1/arrowspace-rs/CITATION.cff +0 -26
- arrowspace-0.13.1/arrowspace-rs/CODE_OF_CONDUCT.md +0 -22
- arrowspace-0.13.1/arrowspace-rs/CONTRIBUTING.md +0 -44
- arrowspace-0.13.1/arrowspace-rs/Cargo.lock +0 -1226
- arrowspace-0.13.1/arrowspace-rs/Cargo.toml +0 -51
- arrowspace-0.13.1/arrowspace-rs/LICENSE +0 -202
- arrowspace-0.13.1/arrowspace-rs/LICENSE_MIT +0 -21
- arrowspace-0.13.1/arrowspace-rs/README.md +0 -117
- arrowspace-0.13.1/arrowspace-rs/RESEARCH.md +0 -239
- arrowspace-0.13.1/arrowspace-rs/benches/base_index_bench.rs +0 -244
- arrowspace-0.13.1/arrowspace-rs/benches/base_laplacian_bench.rs +0 -266
- arrowspace-0.13.1/arrowspace-rs/benches/baselines/base_index_bench.json +0 -16
- arrowspace-0.13.1/arrowspace-rs/benches/baselines/base_laplacian_bench.json +0 -35
- arrowspace-0.13.1/arrowspace-rs/benches/index_compute_bench.rs +0 -324
- arrowspace-0.13.1/arrowspace-rs/examples/01_compare_cosine.rs +0 -296
- arrowspace-0.13.1/arrowspace-rs/examples/02_proteins_lookup.rs +0 -236
- arrowspace-0.13.1/arrowspace-rs/examples/common/lib.rs +0 -445
- arrowspace-0.13.1/arrowspace-rs/examples/compare_cosine.rs +0 -312
- arrowspace-0.13.1/arrowspace-rs/examples/proteins_lookup.rs +0 -233
- arrowspace-0.13.1/arrowspace-rs/paper.bib +0 -142
- arrowspace-0.13.1/arrowspace-rs/paper.md +0 -161
- arrowspace-0.13.1/arrowspace-rs/src/builder.rs +0 -566
- arrowspace-0.13.1/arrowspace-rs/src/clustering.rs +0 -507
- arrowspace-0.13.1/arrowspace-rs/src/core.rs +0 -1002
- arrowspace-0.13.1/arrowspace-rs/src/graph.rs +0 -684
- arrowspace-0.13.1/arrowspace-rs/src/laplacian.rs +0 -393
- arrowspace-0.13.1/arrowspace-rs/src/lib.rs +0 -39
- arrowspace-0.13.1/arrowspace-rs/src/main.rs +0 -3
- arrowspace-0.13.1/arrowspace-rs/src/reduction.rs +0 -196
- arrowspace-0.13.1/arrowspace-rs/src/sampling.rs +0 -79
- arrowspace-0.13.1/arrowspace-rs/src/sparsification.rs +0 -208
- arrowspace-0.13.1/arrowspace-rs/src/taumode.rs +0 -350
- arrowspace-0.13.1/arrowspace-rs/src/tests/mod.rs +0 -27
- arrowspace-0.13.1/arrowspace-rs/src/tests/test_arrow.rs +0 -1142
- arrowspace-0.13.1/arrowspace-rs/src/tests/test_builder.rs +0 -375
- arrowspace-0.13.1/arrowspace-rs/src/tests/test_clustering.rs +0 -667
- arrowspace-0.13.1/arrowspace-rs/src/tests/test_data.rs +0 -6353
- arrowspace-0.13.1/arrowspace-rs/src/tests/test_dimensional.rs +0 -94
- arrowspace-0.13.1/arrowspace-rs/src/tests/test_graph_factory.rs +0 -384
- arrowspace-0.13.1/arrowspace-rs/src/tests/test_helpers.rs +0 -159
- arrowspace-0.13.1/arrowspace-rs/src/tests/test_laplacian.rs +0 -804
- arrowspace-0.13.1/arrowspace-rs/src/tests/test_laplacian_unnormalised.rs +0 -683
- arrowspace-0.13.1/arrowspace-rs/src/tests/test_querying_proj.rs +0 -712
- arrowspace-0.13.1/arrowspace-rs/src/tests/test_reduction.rs +0 -330
- arrowspace-0.13.1/arrowspace-rs/src/tests/test_taumode.rs +0 -720
- arrowspace-0.13.1/pyarrowspace/tests/small_datasets/vectors_data_3000.txt +0 -3000
- {arrowspace-0.13.1/pyarrowspace → arrowspace-0.13.3}/.github/workflows/CI.yml +0 -0
- {arrowspace-0.13.1/pyarrowspace → arrowspace-0.13.3}/.gitignore +0 -0
- {arrowspace-0.13.1/pyarrowspace → arrowspace-0.13.3}/GRAPH_VARIABLES.md +0 -0
- {arrowspace-0.13.1/pyarrowspace → arrowspace-0.13.3}/LICENSE +0 -0
- {arrowspace-0.13.1/pyarrowspace → arrowspace-0.13.3}/NORMALISATION.md +0 -0
- {arrowspace-0.13.1/pyarrowspace → arrowspace-0.13.3}/TAUMODE.md +0 -0
- {arrowspace-0.13.1/pyarrowspace → arrowspace-0.13.3}/src/tests.rs +0 -0
- {arrowspace-0.13.1/pyarrowspace → arrowspace-0.13.3}/src/tests_python.rs +0 -0
- {arrowspace-0.13.1/pyarrowspace → arrowspace-0.13.3}/tests/__init__.py +0 -0
- {arrowspace-0.13.1/pyarrowspace → arrowspace-0.13.3}/tests/embeddings_model.py +0 -0
- {arrowspace-0.13.1/pyarrowspace → arrowspace-0.13.3}/tests/requirements.txt +0 -0
- {arrowspace-0.13.1/arrowspace-rs/examples/common/datasets → arrowspace-0.13.3/tests/small_datasets}/vectors_data_3000.txt +0 -0
- {arrowspace-0.13.1/pyarrowspace → arrowspace-0.13.3}/tests/svdecomposition.py +0 -0
|
@@ -92,7 +92,9 @@ dependencies = [
|
|
|
92
92
|
|
|
93
93
|
[[package]]
|
|
94
94
|
name = "arrowspace"
|
|
95
|
-
version = "0.13.
|
|
95
|
+
version = "0.13.3"
|
|
96
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
97
|
+
checksum = "c6a0216c0bc0fd7f7136fb2118a9df9a517f10db14a9cd987e955a85619e0cb0"
|
|
96
98
|
dependencies = [
|
|
97
99
|
"approx 0.5.1",
|
|
98
100
|
"dashmap",
|
|
@@ -513,7 +515,7 @@ dependencies = [
|
|
|
513
515
|
|
|
514
516
|
[[package]]
|
|
515
517
|
name = "pyarrowspace"
|
|
516
|
-
version = "0.13.
|
|
518
|
+
version = "0.13.3"
|
|
517
519
|
dependencies = [
|
|
518
520
|
"arrowspace",
|
|
519
521
|
"numpy",
|
|
@@ -762,8 +764,9 @@ checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
|
|
|
762
764
|
|
|
763
765
|
[[package]]
|
|
764
766
|
name = "smartcore"
|
|
765
|
-
version = "0.4.
|
|
766
|
-
source = "
|
|
767
|
+
version = "0.4.5"
|
|
768
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
769
|
+
checksum = "9e569eba50db04f51f83ad1ad2186cc1cf88bb68de052177bda165f6cdcf8d81"
|
|
767
770
|
dependencies = [
|
|
768
771
|
"approx 0.5.1",
|
|
769
772
|
"cfg-if",
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "pyarrowspace"
|
|
3
|
-
version = "0.13.
|
|
3
|
+
version = "0.13.3"
|
|
4
4
|
edition = "2024"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
|
|
7
7
|
[lib]
|
|
8
|
-
name = "
|
|
8
|
+
name = "arrowspace"
|
|
9
9
|
# "cdylib" is necessary to produce a shared library for Python to import from.
|
|
10
10
|
#
|
|
11
11
|
# Downstream Rust code (including code in `bin/`, `examples/`, and `tests/`) will not be able
|
|
@@ -14,6 +14,6 @@ name = "pyarrowspace"
|
|
|
14
14
|
crate-type = ["cdylib"]
|
|
15
15
|
|
|
16
16
|
[dependencies]
|
|
17
|
-
arrowspace =
|
|
17
|
+
arrowspace = "0.13.3"
|
|
18
18
|
pyo3 = { version = "*", features = ["extension-module"] }
|
|
19
19
|
numpy = "0.19"
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Python bindings for [`arrowspace-rs`](https://github.com/Mec-iS/arrowspace-rs). This is experimental software meant for research at current state.
|
|
4
4
|
|
|
5
|
-
This is the starting repository for `
|
|
5
|
+
This is the starting repository for `arrowspace`, it is made public as a showcase for the Python interface, to collect feedback and make public some results of the tests run. To run needs the `arrowspace-rs` Rust module in a sibling directory.
|
|
6
6
|
|
|
7
7
|
## Installation
|
|
8
8
|
From PyPi:
|
|
9
9
|
```
|
|
10
|
-
pip install
|
|
10
|
+
pip install arrowspace
|
|
11
11
|
```
|
|
12
12
|
or any other way of installing a Python library.
|
|
13
13
|
|
|
@@ -32,7 +32,7 @@ There are other tests but they require downloadin a dataset separately or fine-t
|
|
|
32
32
|
|
|
33
33
|
```python
|
|
34
34
|
import numpy as np
|
|
35
|
-
from
|
|
35
|
+
from arrowspace import ArrowSpaceBuilder, GraphLaplacian
|
|
36
36
|
|
|
37
37
|
items = np.array([[0.1, 0.2, 0.3],
|
|
38
38
|
[0.0, 0.5, 0.1],
|
|
@@ -5,9 +5,9 @@ use pyo3::types::PyDict;
|
|
|
5
5
|
|
|
6
6
|
use numpy::{PyArray, PyArray1, PyArray2, PyReadonlyArray1, PyReadonlyArray2};
|
|
7
7
|
|
|
8
|
-
use arrowspace::builder::ArrowSpaceBuilder as RustBuilder;
|
|
9
|
-
use arrowspace::core::{ArrowItem, ArrowSpace};
|
|
10
|
-
use arrowspace::graph::GraphLaplacian;
|
|
8
|
+
use ::arrowspace::builder::ArrowSpaceBuilder as RustBuilder;
|
|
9
|
+
use ::arrowspace::core::{ArrowItem, ArrowSpace};
|
|
10
|
+
use ::arrowspace::graph::GraphLaplacian;
|
|
11
11
|
|
|
12
12
|
use std::sync::atomic::{AtomicBool, Ordering};
|
|
13
13
|
static DEBUG: AtomicBool = AtomicBool::new(false);
|
|
@@ -317,7 +317,7 @@ impl PyArrowSpaceBuilder {
|
|
|
317
317
|
}
|
|
318
318
|
|
|
319
319
|
#[pymodule]
|
|
320
|
-
pub fn
|
|
320
|
+
pub fn arrowspace(_py: Python, m: &PyModule) -> PyResult<()> {
|
|
321
321
|
m.add_class::<PyArrowSpaceBuilder>()?;
|
|
322
322
|
m.add_class::<PyArrowSpace>()?;
|
|
323
323
|
m.add_class::<PyGraphLaplacian>()?;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import numpy as np
|
|
2
|
-
from
|
|
2
|
+
from arrowspace import ArrowSpaceBuilder, GraphLaplacian
|
|
3
3
|
|
|
4
4
|
items = np.array([
|
|
5
5
|
[0.82,0.11,0.43,0.28,0.64,0.32,0.55,0.48,0.19,0.73,0.07,0.36,0.58,0.23,0.44,0.31,0.52,0.16,0.61,0.40,0.27,0.49,0.35,0.29],
|
|
@@ -7,7 +7,7 @@ from sentence_transformers import SentenceTransformer
|
|
|
7
7
|
from sklearn.preprocessing import normalize
|
|
8
8
|
from collections import defaultdict
|
|
9
9
|
|
|
10
|
-
from
|
|
10
|
+
from arrowspace import ArrowSpaceBuilder, set_debug
|
|
11
11
|
|
|
12
12
|
set_debug(True) # optional: Rust-side debug prints to stderr
|
|
13
13
|
|
|
@@ -16,7 +16,7 @@ import os, json, glob
|
|
|
16
16
|
import numpy as np
|
|
17
17
|
from tqdm import tqdm
|
|
18
18
|
from sentence_transformers import SentenceTransformer
|
|
19
|
-
from
|
|
19
|
+
from arrowspace import ArrowSpaceBuilder, set_debug
|
|
20
20
|
|
|
21
21
|
set_debug(True) # optional: Rust-side debug prints to stderr
|
|
22
22
|
|
|
@@ -8,7 +8,7 @@ from sklearn.preprocessing import normalize
|
|
|
8
8
|
from collections import defaultdict
|
|
9
9
|
import json
|
|
10
10
|
|
|
11
|
-
from
|
|
11
|
+
from arrowspace import ArrowSpaceBuilder, set_debug
|
|
12
12
|
|
|
13
13
|
set_debug(True) # optional: Rust-side debug prints to stderr
|
|
14
14
|
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
cff-version: "1.2.0"
|
|
2
|
-
authors:
|
|
3
|
-
- family-names: Moriondo
|
|
4
|
-
given-names: Lorenzo
|
|
5
|
-
orcid: "https://orcid.org/0000-0002-8804-2963"
|
|
6
|
-
doi: 10.5281/zenodo.17213264
|
|
7
|
-
message: If you use this software, please cite our article in the
|
|
8
|
-
Journal of Open Source Software.
|
|
9
|
-
preferred-citation:
|
|
10
|
-
authors:
|
|
11
|
-
- family-names: Moriondo
|
|
12
|
-
given-names: Lorenzo
|
|
13
|
-
orcid: "https://orcid.org/0000-0002-8804-2963"
|
|
14
|
-
date-published: 2025-09-27
|
|
15
|
-
doi: 10.21105/joss.09002
|
|
16
|
-
issn: 2475-9066
|
|
17
|
-
issue: 113
|
|
18
|
-
journal: Journal of Open Source Software
|
|
19
|
-
publisher:
|
|
20
|
-
name: Open Journals
|
|
21
|
-
start: 9002
|
|
22
|
-
title: "ArrowSpace: introducing Spectral Indexing for vector search"
|
|
23
|
-
type: article
|
|
24
|
-
url: "https://joss.theoj.org/papers/10.21105/joss.09002"
|
|
25
|
-
volume: 10
|
|
26
|
-
title: "ArrowSpace: introducing Spectral Indexing for vector search"
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
# Code of Conduct
|
|
2
|
-
|
|
3
|
-
As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
|
|
4
|
-
|
|
5
|
-
We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality.
|
|
6
|
-
|
|
7
|
-
Examples of unacceptable behavior by participants include:
|
|
8
|
-
|
|
9
|
-
* The use of sexualized language or imagery
|
|
10
|
-
* Personal attacks
|
|
11
|
-
* Trolling or insulting/derogatory comments
|
|
12
|
-
* Public or private harassment
|
|
13
|
-
* Publishing other's private information, such as physical or electronic addresses, without explicit permission
|
|
14
|
-
* Other unethical or unprofessional conduct.
|
|
15
|
-
|
|
16
|
-
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. By adopting this Code of Conduct, project maintainers commit themselves to fairly and consistently applying these principles to every aspect of managing this project. Project maintainers who do not follow or enforce the Code of Conduct may be permanently removed from the project team.
|
|
17
|
-
|
|
18
|
-
This code of conduct applies both within project spaces and in public spaces when an individual is representing the project or its community.
|
|
19
|
-
|
|
20
|
-
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers.
|
|
21
|
-
|
|
22
|
-
This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0, available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/)
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# **Contributing**
|
|
2
|
-
|
|
3
|
-
When contributing to this repository, please first discuss the change you wish to make via issue,
|
|
4
|
-
email, or any other method with the owners of this repository before making a change.
|
|
5
|
-
|
|
6
|
-
Please note we have a [code of conduct](CODE_OF_CONDUCT.md), please follow it in all your interactions with the project.
|
|
7
|
-
|
|
8
|
-
## Pull Request Process
|
|
9
|
-
|
|
10
|
-
1. Open a PR following the template (erase the part of the template you don't need).
|
|
11
|
-
2. Pull Request can be merged in once you have the sign-off of a code owner, or if you do not have permission to do that you may request the reviewer to merge it for you.
|
|
12
|
-
|
|
13
|
-
### generic guidelines
|
|
14
|
-
Take a look to the conventions established by existing code:
|
|
15
|
-
* Every module should come with some reference to scientific literature that allows relating the code to research. Use the `//!` comments at the top of the module to tell readers about the basics of the procedure you are implementing.
|
|
16
|
-
* Every module should provide a Rust doctest, a brief test embedded with the documentation that explains how to use the procedure implemented.
|
|
17
|
-
* Run `cargo doc --no-deps --open` and read the generated documentation in the browser to be sure that your changes reflects in the documentation and new code is documented.
|
|
18
|
-
|
|
19
|
-
## Issue Report Process
|
|
20
|
-
|
|
21
|
-
1. Go to the project's issues.
|
|
22
|
-
2. Select the template that better fits your issue.
|
|
23
|
-
3. Read carefully the instructions and write within the template guidelines.
|
|
24
|
-
4. Submit it and wait for support.
|
|
25
|
-
|
|
26
|
-
## Reviewing process
|
|
27
|
-
|
|
28
|
-
1. After a PR is opened maintainers are notified
|
|
29
|
-
2. Probably changes will be required to comply with the workflow, these commands are run automatically and all tests shall pass:
|
|
30
|
-
* **Formatting**: run `rustfmt src/*.rs` to apply automatic formatting
|
|
31
|
-
* **Linting**: `clippy` is used with command `cargo clippy --all-features -- -Drust-2018-idioms -Dwarnings`
|
|
32
|
-
* **Testing**: multiple test pipelines are run for different targets
|
|
33
|
-
3. When everything is OK and the PR is accepted, code is merged.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
## Contribution Best Practices
|
|
37
|
-
|
|
38
|
-
* Read this [how-to about Github workflow here](https://guides.github.com/introduction/flow/) if you are not familiar with.
|
|
39
|
-
|
|
40
|
-
* Read this [how-to about writing a PR](https://github.com/blog/1943-how-to-write-the-perfect-pull-request) and this [other how-to about writing a issue](https://wiredcraft.com/blog/how-we-write-our-github-issues/)
|
|
41
|
-
|
|
42
|
-
* **read history**: search past open or closed issues for your problem before opening a new issue.
|
|
43
|
-
|
|
44
|
-
* **testing**: everything should work and be tested as defined in the workflow. If any is failing for non-related reasons, annotate the test failure in the PR comment.
|