voyager 2.2.0__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.
- voyager-2.2.0/CMakeLists.txt +86 -0
- voyager-2.2.0/MANIFEST.in +5 -0
- voyager-2.2.0/PKG-INFO +105 -0
- voyager-2.2.0/README.md +84 -0
- voyager-2.2.0/__init__.py +15 -0
- voyager-2.2.0/dev-requirements.txt +15 -0
- voyager-2.2.0/docs/source/_static/favicon-16x16.png +0 -0
- voyager-2.2.0/docs/source/_static/favicon-32x32.png +0 -0
- voyager-2.2.0/docs/source/_static/favicon.ico +0 -0
- voyager-2.2.0/docs/source/conf.py +127 -0
- voyager-2.2.0/docs/source/index.rst +40 -0
- voyager-2.2.0/docs/source/reference.rst +47 -0
- voyager-2.2.0/docs/source/voyager-black-roundrect-icon.png +0 -0
- voyager-2.2.0/docs/source/voyager-black-roundrect-rectangle.png +0 -0
- voyager-2.2.0/docs/source/voyager-feature.png +0 -0
- voyager-2.2.0/docs/source/voyager-outline-color.png +0 -0
- voyager-2.2.0/py.typed +1 -0
- voyager-2.2.0/pyproject.toml +49 -0
- voyager-2.2.0/src/PythonFileLike.h +90 -0
- voyager-2.2.0/src/PythonInputStream.h +201 -0
- voyager-2.2.0/src/PythonOutputStream.h +72 -0
- voyager-2.2.0/src/bindings.cpp +1103 -0
- voyager-2.2.0/src/cpp/.clang-format +8 -0
- voyager-2.2.0/src/cpp/CMakeLists.txt +29 -0
- voyager-2.2.0/src/cpp/Makefile +15 -0
- voyager-2.2.0/src/cpp/build/.gitkeep +0 -0
- voyager-2.2.0/src/cpp/include/CMakeLists.txt +6 -0
- voyager-2.2.0/src/cpp/include/doctest/.clang-format +82 -0
- voyager-2.2.0/src/cpp/include/doctest/.clang-tidy +62 -0
- voyager-2.2.0/src/cpp/include/doctest/.editorconfig +12 -0
- voyager-2.2.0/src/cpp/include/doctest/.gitattributes +1 -0
- voyager-2.2.0/src/cpp/include/doctest/.github/FUNDING.yml +4 -0
- voyager-2.2.0/src/cpp/include/doctest/.github/issue_template.md +29 -0
- voyager-2.2.0/src/cpp/include/doctest/.github/pull_request_template.md +26 -0
- voyager-2.2.0/src/cpp/include/doctest/.github/workflows/build_and_test.py +99 -0
- voyager-2.2.0/src/cpp/include/doctest/.github/workflows/codeql-analysis.yml +67 -0
- voyager-2.2.0/src/cpp/include/doctest/.github/workflows/main.yml +375 -0
- voyager-2.2.0/src/cpp/include/doctest/.gitignore +75 -0
- voyager-2.2.0/src/cpp/include/doctest/CHANGELOG.md +903 -0
- voyager-2.2.0/src/cpp/include/doctest/CMakeLists.txt +168 -0
- voyager-2.2.0/src/cpp/include/doctest/CONTRIBUTING.md +30 -0
- voyager-2.2.0/src/cpp/include/doctest/LICENSE.txt +21 -0
- voyager-2.2.0/src/cpp/include/doctest/README.md +137 -0
- voyager-2.2.0/src/cpp/include/doctest/WORKSPACE +0 -0
- voyager-2.2.0/src/cpp/include/doctest/doc/markdown/assertions.md +192 -0
- voyager-2.2.0/src/cpp/include/doctest/doc/markdown/benchmarks.md +202 -0
- voyager-2.2.0/src/cpp/include/doctest/doc/markdown/build-systems.md +93 -0
- voyager-2.2.0/src/cpp/include/doctest/doc/markdown/commandline.md +135 -0
- voyager-2.2.0/src/cpp/include/doctest/doc/markdown/configuration.md +321 -0
- voyager-2.2.0/src/cpp/include/doctest/doc/markdown/extensions.md +170 -0
- voyager-2.2.0/src/cpp/include/doctest/doc/markdown/faq.md +178 -0
- voyager-2.2.0/src/cpp/include/doctest/doc/markdown/features.md +84 -0
- voyager-2.2.0/src/cpp/include/doctest/doc/markdown/logging.md +70 -0
- voyager-2.2.0/src/cpp/include/doctest/doc/markdown/main.md +62 -0
- voyager-2.2.0/src/cpp/include/doctest/doc/markdown/parameterized-tests.md +177 -0
- voyager-2.2.0/src/cpp/include/doctest/doc/markdown/readme.md +36 -0
- voyager-2.2.0/src/cpp/include/doctest/doc/markdown/reporters.md +106 -0
- voyager-2.2.0/src/cpp/include/doctest/doc/markdown/stringification.md +95 -0
- voyager-2.2.0/src/cpp/include/doctest/doc/markdown/testcases.md +172 -0
- voyager-2.2.0/src/cpp/include/doctest/doc/markdown/tutorial.md +205 -0
- voyager-2.2.0/src/cpp/include/doctest/doctest/BUILD.bazel +32 -0
- voyager-2.2.0/src/cpp/include/doctest/doctest/doctest.h +7106 -0
- voyager-2.2.0/src/cpp/include/doctest/doctest/extensions/doctest_mpi.h +169 -0
- voyager-2.2.0/src/cpp/include/doctest/doctest/extensions/doctest_util.h +37 -0
- voyager-2.2.0/src/cpp/include/doctest/doctest/extensions/mpi_reporter.h +271 -0
- voyager-2.2.0/src/cpp/include/doctest/doctest/extensions/mpi_sub_comm.h +84 -0
- voyager-2.2.0/src/cpp/include/doctest/doctest/parts/doctest.cpp +4016 -0
- voyager-2.2.0/src/cpp/include/doctest/doctest/parts/doctest_fwd.h +3082 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/CMakeLists.txt +154 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/alternative_macros.cpp +15 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/assert_returns_disabled.cpp +30 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/assert_returns_disabled_evaluate.cpp +4 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/assertion_macros.cpp +235 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/asserts_used_outside_of_tests.cpp +74 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/concurrency.cpp +71 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/coverage_maxout.cpp +127 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/decomposition.cpp +63 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/doctest_proxy.h +71 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/double_stringification.cpp +18 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/enums.cpp +121 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/header.h +68 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/logging.cpp +81 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/main.cpp +51 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/namespace1.cpp +27 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/namespace2.cpp +24 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/namespace3.cpp +22 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/namespace4.cpp +37 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/namespace5.cpp +39 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/namespace6.cpp +41 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/namespace7.cpp +41 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/namespace8.cpp +45 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/namespace9.cpp +44 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/no_failures.cpp +13 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/reporters_and_listeners.cpp +85 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/stringification.cpp +276 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/subcases.cpp +198 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/templated_test_cases.cpp +78 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_cases_and_suites.cpp +76 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/abort_after.txt +19 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/abort_after_junit.txt +22 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/abort_after_xml.txt +34 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/all_binary.txt +82 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/all_binary_junit.txt +7 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/all_binary_xml.txt +204 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/alternative_macros.cpp.txt +6 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/alternative_macros.cpp_junit.txt +8 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/alternative_macros.cpp_xml.txt +20 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/assertion_macros.cpp.txt +257 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/assertion_macros.cpp_junit.txt +385 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/assertion_macros.cpp_xml.txt +690 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/asserts_used_outside_of_tests.cpp.txt +16 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/asserts_used_outside_of_tests.cpp_junit.txt +15 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/asserts_used_outside_of_tests.cpp_xml.txt +17 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/count.txt +2 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/count_junit.txt +1 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/count_xml.txt +5 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/coverage_maxout.cpp.txt +43 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/coverage_maxout.cpp_junit.txt +44 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/coverage_maxout.cpp_xml.txt +65 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/decomposition.cpp.txt +16 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/decomposition.cpp_junit.txt +21 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/decomposition.cpp_xml.txt +31 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/disabled.txt +1 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/disabled_but_evaluated.txt +0 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/doctest_proxy.h.txt +6 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/doctest_proxy.h_junit.txt +5 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/doctest_proxy.h_xml.txt +7 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/double_stringification.cpp.txt +6 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/double_stringification.cpp_junit.txt +7 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/double_stringification.cpp_xml.txt +12 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/enums.cpp.txt +65 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/enums.cpp_junit.txt +117 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/enums.cpp_xml.txt +159 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/filter_1.txt +6 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/filter_1_junit.txt +5 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/filter_1_xml.txt +7 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/filter_2.txt +6 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/filter_2_junit.txt +5 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/filter_2_xml.txt +155 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/filter_3.txt +45 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/filter_3_junit.txt +23 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/filter_3_xml.txt +72 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/filter_4.txt +22 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/filter_4_junit.txt +8 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/filter_4_xml.txt +26 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/first_last.txt +27 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/first_last_junit.txt +21 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/first_last_xml.txt +27 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/header.h.txt +25 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/header.h_junit.txt +28 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/header.h_xml.txt +32 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/help.txt +63 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/help_junit.txt +1 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/help_xml.txt +4 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/list_reporters.txt +7 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/list_reporters_junit.txt +1 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/list_reporters_xml.txt +9 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/list_test_cases.txt +8 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/list_test_cases_junit.txt +1 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/list_test_cases_xml.txt +9 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/list_test_suites.txt +6 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/list_test_suites_junit.txt +1 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/list_test_suites_xml.txt +7 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/logging.cpp.txt +84 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/logging.cpp_junit.txt +101 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/logging.cpp_xml.txt +159 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/main.cpp.txt +6 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/main.cpp_junit.txt +7 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/main.cpp_xml.txt +12 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/minimal.txt +100 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/minimal_junit.txt +91 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/minimal_no_fail.txt +9 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/minimal_no_fail_junit.txt +22 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/minimal_no_fail_xml.txt +31 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/minimal_xml.txt +114 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/no_multi_lane_atomics.txt +931 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/no_multithreading.txt +931 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/order_1.txt +108 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/order_1_junit.txt +98 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/order_1_xml.txt +116 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/order_2.txt +101 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/order_2_junit.txt +91 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/order_2_xml.txt +114 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/order_3.txt +6 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/order_3_junit.txt +5 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/order_3_xml.txt +7 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/reporters_and_listeners.cpp.txt +6 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/reporters_and_listeners.cpp_junit.txt +5 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/reporters_and_listeners.cpp_xml.txt +7 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/std_headers.txt +931 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/stringification.cpp.txt +96 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/stringification.cpp_junit.txt +103 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/stringification.cpp_xml.txt +219 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/subcases.cpp.txt +294 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/subcases.cpp_junit.txt +162 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/subcases.cpp_xml.txt +402 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/templated_test_cases.cpp.txt +41 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/templated_test_cases.cpp_junit.txt +56 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/templated_test_cases.cpp_xml.txt +94 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/test_cases_and_suites.cpp.txt +101 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/test_cases_and_suites.cpp_junit.txt +91 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/test_cases_and_suites.cpp_xml.txt +114 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/version.txt +1 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/version_junit.txt +1 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/all_features/test_output/version_xml.txt +4 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/combining_the_same_tests_built_differently_in_multiple_shared_objects/CMakeLists.txt +63 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/combining_the_same_tests_built_differently_in_multiple_shared_objects/default.cpp +6 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/combining_the_same_tests_built_differently_in_multiple_shared_objects/foo.h +41 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/combining_the_same_tests_built_differently_in_multiple_shared_objects/main.cpp +24 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/combining_the_same_tests_built_differently_in_multiple_shared_objects/return42.cpp +7 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/combining_the_same_tests_built_differently_in_multiple_shared_objects/test_output/same_tests_multiple_configurations.txt +45 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/combining_the_same_tests_built_differently_in_multiple_shared_objects/test_output/same_tests_multiple_configurations_junit.txt +11 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/combining_the_same_tests_built_differently_in_multiple_shared_objects/test_output/same_tests_multiple_configurations_xml.txt +60 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/combining_the_same_tests_built_differently_in_multiple_shared_objects/test_runner.cpp +5 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/exe_with_static_libs/CMakeLists.txt +27 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/exe_with_static_libs/doctest_force_link_static_lib_in_target.cmake +131 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/exe_with_static_libs/lib_1_src1.cpp +6 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/exe_with_static_libs/lib_1_src2.cpp +6 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/exe_with_static_libs/lib_2_src.cpp +6 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/exe_with_static_libs/main.cpp +4 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/exe_with_static_libs/test_output/exe_with_static_libs.txt +9 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/exe_with_static_libs/test_output/exe_with_static_libs_junit.txt +13 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/exe_with_static_libs/test_output/exe_with_static_libs_xml.txt +24 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/executable_dll_and_plugin/CMakeLists.txt +27 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/executable_dll_and_plugin/dll.cpp +14 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/executable_dll_and_plugin/implementation.cpp +11 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/executable_dll_and_plugin/implementation_2.cpp +10 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/executable_dll_and_plugin/main.cpp +67 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/executable_dll_and_plugin/plugin.cpp +23 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/executable_dll_and_plugin/test_output/executable_dll_and_plugin.txt +31 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/executable_dll_and_plugin/test_output/executable_dll_and_plugin_junit.txt +32 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/executable_dll_and_plugin/test_output/executable_dll_and_plugin_xml.txt +61 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/installed_doctest_cmake/dll/CMakeLists.txt +14 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/installed_doctest_cmake/dll/dll.cpp +22 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/installed_doctest_cmake/dll/dll.h +7 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/installed_doctest_cmake/dll/exporting.h +15 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/installed_doctest_cmake/dll/main.cpp +34 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/installed_doctest_cmake/executable/CMakeLists.txt +9 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/installed_doctest_cmake/executable/main.cpp +35 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/mpi/CMakeLists.txt +7 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/mpi/main.cpp +19 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/mpi/mpi.cpp +46 -0
- voyager-2.2.0/src/cpp/include/doctest/examples/range_based_execution.py +43 -0
- voyager-2.2.0/src/cpp/include/doctest/meson.build +7 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/bench/bench.py +237 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/bench/run_all.py +65 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/bench/tests.json +43 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/cmake/Config.cmake.in +6 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/cmake/assemble_single_header.cmake +13 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/cmake/common.cmake +212 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/cmake/doctest.cmake +189 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/cmake/doctestAddTests.cmake +120 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/cmake/exec_test.cmake +70 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/data/article.txt +257 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/data/article2.txt +153 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/data/benchmarks/asserts.png +0 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/data/benchmarks/header.png +0 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/data/benchmarks/implement.png +0 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/data/benchmarks/runtime_assert.png +0 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/data/benchmarks/runtime_info.png +0 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/data/cover.png +0 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/data/cover_888px_wide.png +0 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/data/initial_release_traffic.png +0 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/data/logo/icon_1.svg +27 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/data/logo/icon_2.svg +32 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/data/logo/icon_3.svg +37 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/data/logo/icon_4.svg +25 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/data/logo/icon_5.svg +32 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/data/logo/icon_6.svg +32 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/data/logo/logo_1.svg +35 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/data/logo/logo_2.svg +33 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/data/logo/logo_3.svg +33 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/data/logo/logo_4.svg +33 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/data/logo/logo_5.svg +34 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/data/logo/logo_6.svg +34 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/data/logo/logo_7.svg +38 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/data/using_doctest_888px_wide.gif +0 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/data/youtube-cppcon-talk-thumbnail.png +0 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/development_only/doctest/doctest.h +5 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/hello_world.cpp +14 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/how_stuff_works/CMakeLists.txt +6 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/how_stuff_works/how_exception_translators_work.cpp +90 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/how_stuff_works/how_subcases_work.cpp +116 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/how_stuff_works/testing_crash_scenarios.cpp +71 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/playground/CMakeLists.txt +7 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/playground/main.cpp +26 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/playground/test.cpp +6 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/random_dev_notes.md +64 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/release_process.md +18 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/update_stuff.py +44 -0
- voyager-2.2.0/src/cpp/include/doctest/scripts/version.txt +1 -0
- voyager-2.2.0/src/cpp/src/CMakeLists.txt +6 -0
- voyager-2.2.0/src/cpp/src/E4M3.h +419 -0
- voyager-2.2.0/src/cpp/src/Enums.h +62 -0
- voyager-2.2.0/src/cpp/src/Index.h +110 -0
- voyager-2.2.0/src/cpp/src/Metadata.h +142 -0
- voyager-2.2.0/src/cpp/src/Spaces/Euclidean.h +290 -0
- voyager-2.2.0/src/cpp/src/Spaces/InnerProduct.h +389 -0
- voyager-2.2.0/src/cpp/src/Spaces/Space.h +48 -0
- voyager-2.2.0/src/cpp/src/StreamUtils.h +180 -0
- voyager-2.2.0/src/cpp/src/TypedIndex.h +784 -0
- voyager-2.2.0/src/cpp/src/array_utils.h +338 -0
- voyager-2.2.0/src/cpp/src/hnswalg.h +1519 -0
- voyager-2.2.0/src/cpp/src/hnswlib.h +114 -0
- voyager-2.2.0/src/cpp/src/std_utils.h +142 -0
- voyager-2.2.0/src/cpp/src/visited_list_pool.h +101 -0
- voyager-2.2.0/src/cpp/test/.gitignore +2 -0
- voyager-2.2.0/src/cpp/test/CMakeLists.txt +21 -0
- voyager-2.2.0/src/cpp/test/doctest_setup.cpp +2 -0
- voyager-2.2.0/src/cpp/test/test_main.cpp +218 -0
- voyager-2.2.0/src/cpp/test/test_utils.cpp +41 -0
- voyager-2.2.0/src/voyager/__init__.py +1 -0
- voyager-2.2.0/stubtest.allowlist +7 -0
- voyager-2.2.0/test-requirements.txt +5 -0
- voyager-2.2.0/tests/__init__.py +14 -0
- voyager-2.2.0/tests/indices/v0/cosine_128dim_e4m3.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/cosine_128dim_float32.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/cosine_128dim_float8.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/cosine_16dim_e4m3.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/cosine_16dim_float32.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/cosine_16dim_float8.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/cosine_4dim_e4m3.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/cosine_4dim_float32.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/cosine_4dim_float8.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/euclidean_128dim_e4m3.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/euclidean_128dim_float32.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/euclidean_128dim_float8.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/euclidean_16dim_e4m3.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/euclidean_16dim_float32.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/euclidean_16dim_float8.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/euclidean_4dim_e4m3.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/euclidean_4dim_float32.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/euclidean_4dim_float8.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/innerproduct_128dim_e4m3.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/innerproduct_128dim_float32.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/innerproduct_128dim_float8.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/innerproduct_16dim_e4m3.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/innerproduct_16dim_float32.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/innerproduct_16dim_float8.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/innerproduct_4dim_e4m3.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/innerproduct_4dim_float32.hnsw +0 -0
- voyager-2.2.0/tests/indices/v0/innerproduct_4dim_float8.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/cosine_128dim_e4m3.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/cosine_128dim_float32.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/cosine_128dim_float8.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/cosine_16dim_e4m3.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/cosine_16dim_float32.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/cosine_16dim_float8.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/cosine_4dim_e4m3.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/cosine_4dim_float32.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/cosine_4dim_float8.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/euclidean_128dim_e4m3.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/euclidean_128dim_float32.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/euclidean_128dim_float8.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/euclidean_16dim_e4m3.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/euclidean_16dim_float32.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/euclidean_16dim_float8.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/euclidean_4dim_e4m3.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/euclidean_4dim_float32.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/euclidean_4dim_float8.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/innerproduct_128dim_e4m3.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/innerproduct_128dim_float32.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/innerproduct_128dim_float8.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/innerproduct_16dim_e4m3.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/innerproduct_16dim_float32.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/innerproduct_16dim_float8.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/innerproduct_4dim_e4m3.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/innerproduct_4dim_float32.hnsw +0 -0
- voyager-2.2.0/tests/indices/v1/innerproduct_4dim_float8.hnsw +0 -0
- voyager-2.2.0/tests/test_distances.py +85 -0
- voyager-2.2.0/tests/test_e4m3.py +271 -0
- voyager-2.2.0/tests/test_index_creation.py +391 -0
- voyager-2.2.0/tests/test_index_recreation.py +79 -0
- voyager-2.2.0/tests/test_load_indices.py +294 -0
- voyager-2.2.0/tox.ini +33 -0
- voyager-2.2.0/typenames.h +28 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
cmake_minimum_required(VERSION 3.15...3.27)
|
|
2
|
+
project(voyager LANGUAGES CXX)
|
|
3
|
+
|
|
4
|
+
# Warn if the user invokes CMake directly
|
|
5
|
+
if (NOT SKBUILD)
|
|
6
|
+
message(WARNING "\
|
|
7
|
+
This CMake file is meant to be executed using 'scikit-build-core'.
|
|
8
|
+
Running it directly will almost certainly not produce the desired
|
|
9
|
+
result. If you are a user trying to install this package, use the
|
|
10
|
+
command below, which will install all necessary build dependencies,
|
|
11
|
+
compile the package in an isolated environment, and then install it.
|
|
12
|
+
=====================================================================
|
|
13
|
+
$ pip install .
|
|
14
|
+
=====================================================================
|
|
15
|
+
If you are a software developer, and this is your own package, then
|
|
16
|
+
it is usually much more efficient to install the build dependencies
|
|
17
|
+
in your environment once and use the following command that avoids
|
|
18
|
+
a costly creation of a new virtual environment at every compilation:
|
|
19
|
+
=====================================================================
|
|
20
|
+
$ pip install nanobind scikit-build-core[pyproject]
|
|
21
|
+
$ pip install --no-build-isolation -ve .
|
|
22
|
+
=====================================================================
|
|
23
|
+
You may optionally add -Ceditable.rebuild=true to auto-rebuild when
|
|
24
|
+
the package is imported. Otherwise, you need to rerun the above
|
|
25
|
+
after editing C++ files.")
|
|
26
|
+
endif()
|
|
27
|
+
|
|
28
|
+
if (CMAKE_VERSION VERSION_LESS 3.18)
|
|
29
|
+
set(DEV_MODULE Development)
|
|
30
|
+
else()
|
|
31
|
+
set(DEV_MODULE Development.Module)
|
|
32
|
+
endif()
|
|
33
|
+
|
|
34
|
+
set(IS_UNIX ${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
|
|
35
|
+
set(IS_WINDOWS ${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
|
|
36
|
+
|
|
37
|
+
find_package(Python 3.9 COMPONENTS Interpreter ${DEV_MODULE})
|
|
38
|
+
|
|
39
|
+
# Import nanobind through CMake's find_package mechanism
|
|
40
|
+
find_package(nanobind CONFIG REQUIRED)
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
|
44
|
+
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE)
|
|
45
|
+
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
|
|
46
|
+
endif()
|
|
47
|
+
|
|
48
|
+
# Detect the installed nanobind package and import it into CMake
|
|
49
|
+
execute_process(
|
|
50
|
+
COMMAND "${Python_EXECUTABLE}" -m nanobind --cmake_dir
|
|
51
|
+
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE nanobind_ROOT)
|
|
52
|
+
find_package(nanobind CONFIG REQUIRED)
|
|
53
|
+
|
|
54
|
+
# Allow for some math optimization on unix but not -ffast-math
|
|
55
|
+
# See: https://simonbyrne.github.io/notes/fastmath/#flushing_subnormals_to_zero
|
|
56
|
+
if (IS_UNIX)
|
|
57
|
+
add_compile_options(-fassociative-math -fno-signaling-nans -fno-trapping-math -fno-signed-zeros -freciprocal-math -fno-math-errno)
|
|
58
|
+
endif()
|
|
59
|
+
|
|
60
|
+
# Relase build with all optimizations
|
|
61
|
+
if (CMAKE_BUILD_TYPE STREQUAL "Release" AND IS_UNIX)
|
|
62
|
+
add_compile_options(-O3)
|
|
63
|
+
elseif (CMAKE_BUILD_TYPE STREQUAL "Release" AND IS_WINDOWS)
|
|
64
|
+
add_compile_options(/Ox)
|
|
65
|
+
endif()
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
# Check the USE_ASAN environment variable, and if set to 1, enable AddressSanitizer
|
|
69
|
+
if (DEFINED ENV{USE_ASAN} AND "$ENV{USE_ASAN}" STREQUAL "1")
|
|
70
|
+
add_compile_options(-fsanitize=address -fno-omit-frame-pointer)
|
|
71
|
+
add_link_options(-fsanitize=address)
|
|
72
|
+
endif()
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
nanobind_add_module(
|
|
76
|
+
voyager_ext
|
|
77
|
+
# Target the stable ABI for Python 3.12+, which reduces
|
|
78
|
+
# the number of binary wheels that must be built. This
|
|
79
|
+
# does nothing on older Python versions
|
|
80
|
+
NB_STATIC STABLE_ABI LTO FREE_THREADED NOMINSIZE
|
|
81
|
+
# Sources:
|
|
82
|
+
src/bindings.cpp
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
# Install directive for scikit-build-core
|
|
86
|
+
install(TARGETS voyager_ext LIBRARY DESTINATION voyager)
|
voyager-2.2.0/PKG-INFO
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: voyager
|
|
3
|
+
Version: 2.2.0
|
|
4
|
+
Summary: Easy-to-use, fast, simple multi-platform approximate nearest-neighbor search library.
|
|
5
|
+
Author-Email: Peter Sobot <psobot@spotify.com>
|
|
6
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
7
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
8
|
+
Classifier: Operating System :: MacOS
|
|
9
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
10
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
11
|
+
Classifier: Programming Language :: C++
|
|
12
|
+
Classifier: Programming Language :: Python
|
|
13
|
+
Classifier: Topic :: Database :: Database Engines/Servers
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Project-URL: Homepage, https://github.com/spotify/voyager
|
|
19
|
+
Requires-Python: >=3.9
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
|
|
22
|
+

|
|
23
|
+
|
|
24
|
+
[](https://github.com/spotify/voyager/blob/master/LICENSE)
|
|
25
|
+
[](https://spotify.github.io/voyager)
|
|
26
|
+
[](https://pypi.org/project/voyager)
|
|
27
|
+
[](https://pypi.org/project/voyager)
|
|
28
|
+
[](https://github.com/spotify/voyager/actions/workflows/all.yml)
|
|
29
|
+
<!-- [](https://pypi.org/project/voyager) -->
|
|
30
|
+
<!-- [](https://pypi.org/project/voyager) -->
|
|
31
|
+
<!-- [](https://pypistats.org/packages/voyager) -->
|
|
32
|
+
<!-- [](https://github.com/spotify/voyager/stargazers) -->
|
|
33
|
+
|
|
34
|
+
**_Voyager_** is a library for performing fast approximate nearest-neighbor searches on an in-memory collection of vectors.
|
|
35
|
+
|
|
36
|
+
Voyager features bindings to both Python and Java, with feature parity and index compatibility between both languages. It uses the HNSW algorithm, based on [the open-source `hnswlib` package](https://github.com/nmslib/hnswlib), with numerous features added for convenience and speed. Voyager is used extensively in production at Spotify, and is queried hundreds of millions of times per day to power numerous user-facing features.
|
|
37
|
+
|
|
38
|
+
Think of Voyager like [Sparkey](https://github.com/spotify/sparkey), but for vector/embedding data; or like [Annoy](https://github.com/spotify/annoy), but with [much higher recall](http://ann-benchmarks.com/). It got its name because it searches through (embedding) space(s), much like [the Voyager interstellar probes](https://en.wikipedia.org/wiki/Voyager_program) launched by NASA in 1977.
|
|
39
|
+
|
|
40
|
+
[](https://spotify.github.io/voyager/python)
|
|
41
|
+
[](https://spotify.github.io/voyager/java)
|
|
42
|
+
|
|
43
|
+
### Installation
|
|
44
|
+
|
|
45
|
+
#### Python
|
|
46
|
+
|
|
47
|
+
```shell
|
|
48
|
+
pip install voyager
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
#### Java
|
|
52
|
+
|
|
53
|
+
Add the following artifact to your `pom.xml`:
|
|
54
|
+
```xml
|
|
55
|
+
<dependency>
|
|
56
|
+
<groupId>com.spotify</groupId>
|
|
57
|
+
<artifactId>voyager</artifactId>
|
|
58
|
+
<version>2.2.0</version>
|
|
59
|
+
</dependency>
|
|
60
|
+
```
|
|
61
|
+
You can find the latest version on [Voyager's Releases page](https://github.com/spotify/voyager/releases).
|
|
62
|
+
|
|
63
|
+
#### Scala
|
|
64
|
+
|
|
65
|
+
Add the following artifact to your `build.sbt`:
|
|
66
|
+
```sbt
|
|
67
|
+
"com.spotify" % "voyager" % "2.2.0"
|
|
68
|
+
```
|
|
69
|
+
You can find the latest version on [Voyager's Releases page](https://github.com/spotify/voyager/releases).
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
### Compatibility
|
|
73
|
+
|
|
74
|
+
| OS | Language | Version | x86_64 (Intel) | arm64 (ARM) |
|
|
75
|
+
|-----------|----------|---------|---------| --------|
|
|
76
|
+
| Linux | Python | 3.9 | ✅ | ✅ |
|
|
77
|
+
| Linux | Python | 3.10 | ✅ | ✅ |
|
|
78
|
+
| Linux | Python | 3.11 | ✅ | ✅ |
|
|
79
|
+
| Linux | Python | 3.12 | ✅ | ✅ |
|
|
80
|
+
| Linux | Python | 3.13 | ✅ | ✅ |
|
|
81
|
+
| Linux | Java | 8-16+ | ✅ | ✅ |
|
|
82
|
+
| macOS | Python | 3.9 | ✅ | ✅ |
|
|
83
|
+
| macOS | Python | 3.10 | ✅ | ✅ |
|
|
84
|
+
| macOS | Python | 3.11 | ✅ | ✅ |
|
|
85
|
+
| macOS | Python | 3.12 | ✅ | ✅ |
|
|
86
|
+
| macOS | Python | 3.13 | ✅ | ✅ |
|
|
87
|
+
| macOS | Java | 8-16+ | ✅ | ✅ |
|
|
88
|
+
| Windows | Python | 3.9 | ✅ | ❌ |
|
|
89
|
+
| Windows | Python | 3.10 | ✅ | ❌ |
|
|
90
|
+
| Windows | Python | 3.11 | ✅ | ❌ |
|
|
91
|
+
| Windows | Python | 3.12 | ✅ | ❌ |
|
|
92
|
+
| Windows | Python | 3.13 | ✅ | ❌ |
|
|
93
|
+
| Windows | Java | 8-16+ | ✅ | ❌ |
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
## Contributing
|
|
97
|
+
|
|
98
|
+
Contributions to `voyager` are welcomed!
|
|
99
|
+
See [CONTRIBUTING.md](https://github.com/spotify/voyager/blob/master/CONTRIBUTING.md) for details.
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
### License
|
|
103
|
+
Voyager is copyright 2022-2024 Spotify AB.
|
|
104
|
+
|
|
105
|
+
Voyager is licensed under the [Apache 2 License]([https://www.gnu.org/licenses/gpl-3.0.en.html](https://www.apache.org/licenses/LICENSE-2.0)).
|
voyager-2.2.0/README.md
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+

|
|
2
|
+
|
|
3
|
+
[](https://github.com/spotify/voyager/blob/master/LICENSE)
|
|
4
|
+
[](https://spotify.github.io/voyager)
|
|
5
|
+
[](https://pypi.org/project/voyager)
|
|
6
|
+
[](https://pypi.org/project/voyager)
|
|
7
|
+
[](https://github.com/spotify/voyager/actions/workflows/all.yml)
|
|
8
|
+
<!-- [](https://pypi.org/project/voyager) -->
|
|
9
|
+
<!-- [](https://pypi.org/project/voyager) -->
|
|
10
|
+
<!-- [](https://pypistats.org/packages/voyager) -->
|
|
11
|
+
<!-- [](https://github.com/spotify/voyager/stargazers) -->
|
|
12
|
+
|
|
13
|
+
**_Voyager_** is a library for performing fast approximate nearest-neighbor searches on an in-memory collection of vectors.
|
|
14
|
+
|
|
15
|
+
Voyager features bindings to both Python and Java, with feature parity and index compatibility between both languages. It uses the HNSW algorithm, based on [the open-source `hnswlib` package](https://github.com/nmslib/hnswlib), with numerous features added for convenience and speed. Voyager is used extensively in production at Spotify, and is queried hundreds of millions of times per day to power numerous user-facing features.
|
|
16
|
+
|
|
17
|
+
Think of Voyager like [Sparkey](https://github.com/spotify/sparkey), but for vector/embedding data; or like [Annoy](https://github.com/spotify/annoy), but with [much higher recall](http://ann-benchmarks.com/). It got its name because it searches through (embedding) space(s), much like [the Voyager interstellar probes](https://en.wikipedia.org/wiki/Voyager_program) launched by NASA in 1977.
|
|
18
|
+
|
|
19
|
+
[](https://spotify.github.io/voyager/python)
|
|
20
|
+
[](https://spotify.github.io/voyager/java)
|
|
21
|
+
|
|
22
|
+
### Installation
|
|
23
|
+
|
|
24
|
+
#### Python
|
|
25
|
+
|
|
26
|
+
```shell
|
|
27
|
+
pip install voyager
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
#### Java
|
|
31
|
+
|
|
32
|
+
Add the following artifact to your `pom.xml`:
|
|
33
|
+
```xml
|
|
34
|
+
<dependency>
|
|
35
|
+
<groupId>com.spotify</groupId>
|
|
36
|
+
<artifactId>voyager</artifactId>
|
|
37
|
+
<version>2.2.0</version>
|
|
38
|
+
</dependency>
|
|
39
|
+
```
|
|
40
|
+
You can find the latest version on [Voyager's Releases page](https://github.com/spotify/voyager/releases).
|
|
41
|
+
|
|
42
|
+
#### Scala
|
|
43
|
+
|
|
44
|
+
Add the following artifact to your `build.sbt`:
|
|
45
|
+
```sbt
|
|
46
|
+
"com.spotify" % "voyager" % "2.2.0"
|
|
47
|
+
```
|
|
48
|
+
You can find the latest version on [Voyager's Releases page](https://github.com/spotify/voyager/releases).
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
### Compatibility
|
|
52
|
+
|
|
53
|
+
| OS | Language | Version | x86_64 (Intel) | arm64 (ARM) |
|
|
54
|
+
|-----------|----------|---------|---------| --------|
|
|
55
|
+
| Linux | Python | 3.9 | ✅ | ✅ |
|
|
56
|
+
| Linux | Python | 3.10 | ✅ | ✅ |
|
|
57
|
+
| Linux | Python | 3.11 | ✅ | ✅ |
|
|
58
|
+
| Linux | Python | 3.12 | ✅ | ✅ |
|
|
59
|
+
| Linux | Python | 3.13 | ✅ | ✅ |
|
|
60
|
+
| Linux | Java | 8-16+ | ✅ | ✅ |
|
|
61
|
+
| macOS | Python | 3.9 | ✅ | ✅ |
|
|
62
|
+
| macOS | Python | 3.10 | ✅ | ✅ |
|
|
63
|
+
| macOS | Python | 3.11 | ✅ | ✅ |
|
|
64
|
+
| macOS | Python | 3.12 | ✅ | ✅ |
|
|
65
|
+
| macOS | Python | 3.13 | ✅ | ✅ |
|
|
66
|
+
| macOS | Java | 8-16+ | ✅ | ✅ |
|
|
67
|
+
| Windows | Python | 3.9 | ✅ | ❌ |
|
|
68
|
+
| Windows | Python | 3.10 | ✅ | ❌ |
|
|
69
|
+
| Windows | Python | 3.11 | ✅ | ❌ |
|
|
70
|
+
| Windows | Python | 3.12 | ✅ | ❌ |
|
|
71
|
+
| Windows | Python | 3.13 | ✅ | ❌ |
|
|
72
|
+
| Windows | Java | 8-16+ | ✅ | ❌ |
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
## Contributing
|
|
76
|
+
|
|
77
|
+
Contributions to `voyager` are welcomed!
|
|
78
|
+
See [CONTRIBUTING.md](https://github.com/spotify/voyager/blob/master/CONTRIBUTING.md) for details.
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
### License
|
|
82
|
+
Voyager is copyright 2022-2024 Spotify AB.
|
|
83
|
+
|
|
84
|
+
Voyager is licensed under the [Apache 2 License]([https://www.gnu.org/licenses/gpl-3.0.en.html](https://www.apache.org/licenses/LICENSE-2.0)).
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#! /usr/bin/env python
|
|
2
|
+
#
|
|
3
|
+
# Copyright 2022-2023 Spotify AB
|
|
4
|
+
#
|
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
# you may not use this file except in compliance with the License.
|
|
7
|
+
# You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
-r test-requirements.txt
|
|
2
|
+
# NumPy 2.0 is the last release series supporting Python 3.9.
|
|
3
|
+
numpy==2.0.2; python_version < "3.10"
|
|
4
|
+
numpy==2.2.6; python_version >= "3.10"
|
|
5
|
+
ruff==0.16.1
|
|
6
|
+
psutil
|
|
7
|
+
mypy
|
|
8
|
+
asv==0.6.3
|
|
9
|
+
# Needed for sphinx documentation
|
|
10
|
+
sphinx
|
|
11
|
+
sphinxext-opengraph
|
|
12
|
+
sphinx-copybutton
|
|
13
|
+
m2r2
|
|
14
|
+
furo
|
|
15
|
+
# end sphinx reqs
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
#! /usr/bin/env python
|
|
2
|
+
#
|
|
3
|
+
# Copyright 2022-2023 Spotify AB
|
|
4
|
+
#
|
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
# you may not use this file except in compliance with the License.
|
|
7
|
+
# You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# Configuration file for the Sphinx documentation builder.
|
|
19
|
+
#
|
|
20
|
+
# This file only contains a selection of the most common options. For a full
|
|
21
|
+
# list see the documentation:
|
|
22
|
+
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
|
23
|
+
|
|
24
|
+
# -- Path setup --------------------------------------------------------------
|
|
25
|
+
|
|
26
|
+
# If extensions (or modules to document with autodoc) are in another directory,
|
|
27
|
+
# add these directories to sys.path here. If the directory is relative to the
|
|
28
|
+
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
|
29
|
+
#
|
|
30
|
+
# import os
|
|
31
|
+
# import sys
|
|
32
|
+
# sys.path.insert(0, os.path.abspath('.'))
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
# -- Project information -----------------------------------------------------
|
|
36
|
+
|
|
37
|
+
import datetime
|
|
38
|
+
from importlib.metadata import version as package_version
|
|
39
|
+
|
|
40
|
+
project = "Voyager"
|
|
41
|
+
copyright = f"2022-{datetime.date.today().year}, Spotify AB"
|
|
42
|
+
author = "Peter Sobot"
|
|
43
|
+
|
|
44
|
+
# The full version, including alpha/beta/rc tags
|
|
45
|
+
release = package_version("voyager")
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
# -- General configuration ---------------------------------------------------
|
|
49
|
+
|
|
50
|
+
# Add any Sphinx extension module names here, as strings. They can be
|
|
51
|
+
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
|
52
|
+
# ones.
|
|
53
|
+
extensions = [
|
|
54
|
+
"sphinx.ext.duration",
|
|
55
|
+
"sphinx.ext.doctest",
|
|
56
|
+
"sphinx.ext.autodoc",
|
|
57
|
+
"sphinx.ext.autosummary",
|
|
58
|
+
"sphinx.ext.napoleon",
|
|
59
|
+
"sphinx_copybutton",
|
|
60
|
+
"sphinxext.opengraph",
|
|
61
|
+
"m2r2",
|
|
62
|
+
]
|
|
63
|
+
|
|
64
|
+
autosummary_generate = True
|
|
65
|
+
autodoc_docstring_signature = True
|
|
66
|
+
autodoc_member_order = "bysource"
|
|
67
|
+
autodoc_default_options = {
|
|
68
|
+
"autosummary": True,
|
|
69
|
+
}
|
|
70
|
+
autodoc_inherit_docstrings = False
|
|
71
|
+
|
|
72
|
+
# Add any paths that contain templates here, relative to this directory.
|
|
73
|
+
templates_path = ["_templates"]
|
|
74
|
+
|
|
75
|
+
# List of patterns, relative to source directory, that match files and
|
|
76
|
+
# directories to ignore when looking for source files.
|
|
77
|
+
# This pattern also affects html_static_path and html_extra_path.
|
|
78
|
+
exclude_patterns = ["_build"]
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
# -- Options for HTML output -------------------------------------------------
|
|
82
|
+
|
|
83
|
+
# The theme to use for HTML and HTML Help pages. See the documentation for
|
|
84
|
+
# a list of builtin themes.
|
|
85
|
+
#
|
|
86
|
+
html_theme = "furo"
|
|
87
|
+
|
|
88
|
+
# Add any paths that contain custom static files (such as style sheets) here,
|
|
89
|
+
# relative to this directory. They are copied after the builtin static files,
|
|
90
|
+
# so a file named "default.css" will overwrite the builtin "default.css".
|
|
91
|
+
html_static_path = ["_static"]
|
|
92
|
+
|
|
93
|
+
html_title = f"{project} {release} Python Documentation"
|
|
94
|
+
html_favicon = "_static/favicon.ico"
|
|
95
|
+
html_logo = "voyager-outline-color.png"
|
|
96
|
+
html_baseurl = "voyager/python/"
|
|
97
|
+
|
|
98
|
+
octocat_points = (
|
|
99
|
+
"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38"
|
|
100
|
+
" 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-."
|
|
101
|
+
"09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01"
|
|
102
|
+
" 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95"
|
|
103
|
+
" 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0"
|
|
104
|
+
" 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0"
|
|
105
|
+
" 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013"
|
|
106
|
+
" 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"
|
|
107
|
+
)
|
|
108
|
+
html_theme_options = {
|
|
109
|
+
"footer_icons": [
|
|
110
|
+
{
|
|
111
|
+
"name": "GitHub",
|
|
112
|
+
"url": "https://github.com/spotify/voyager",
|
|
113
|
+
"html": f"""
|
|
114
|
+
<svg stroke="currentColor" fill="currentColor"
|
|
115
|
+
stroke-width="0" viewBox="0 0 16 16">
|
|
116
|
+
<path fill-rule="evenodd" d="{octocat_points}"></path>
|
|
117
|
+
</svg>
|
|
118
|
+
""",
|
|
119
|
+
"class": "",
|
|
120
|
+
},
|
|
121
|
+
],
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
ogp_site_url = "https://spotify.github.io/voyager/python/"
|
|
125
|
+
ogp_image = "https://github.com/spotify/voyager/assets/213293/190c07bf-bf43-43d3-a46b-ed71232bbcdd"
|
|
126
|
+
ogp_image_alt = "🛰️ Documentation for Voyager: A nearest-neighbor search library."
|
|
127
|
+
ogp_site_name = html_title
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
:og:title: Voyager Documentation
|
|
2
|
+
:og:description: 🛰️ Documentation for Voyager: A nearest-neighbor search library.
|
|
3
|
+
|
|
4
|
+
.. # define a hard line break for HTML
|
|
5
|
+
.. |br| raw:: html
|
|
6
|
+
|
|
7
|
+
<br />
|
|
8
|
+
|
|
9
|
+
|br|
|
|
10
|
+
|
|
11
|
+
.. image:: voyager-feature.png
|
|
12
|
+
:width: 700
|
|
13
|
+
:alt: The word "Voyager" in white on a black background.
|
|
14
|
+
|
|
15
|
+
**Voyager** is a library for performing fast approximate nearest-neighbor searches on an in-memory collection of vectors.
|
|
16
|
+
|
|
17
|
+
Voyager features bindings to both Python and Java, with feature parity and index compatibility between both languages.
|
|
18
|
+
It uses the HNSW algorithm, based on `the open-source hnswlib package <https://github.com/nmslib/hnswlib>`_,
|
|
19
|
+
with numerous features added for convenience and speed. Voyager is used extensively in production at Spotify,
|
|
20
|
+
and is queried hundreds of millions of times per day to power numerous user-facing features.
|
|
21
|
+
|
|
22
|
+
Think of Voyager like `Sparkey <https://github.com/spotify/sparkey>`_, but for vector/embedding data;
|
|
23
|
+
or like `Annoy <https://github.com/spotify/annoy>`_, but with `much higher recall <https://ann-benchmarks.com>`_.
|
|
24
|
+
It got its name because it searches through (embedding) space(s), much like
|
|
25
|
+
`the Voyager interstellar probes <https://en.wikipedia.org/wiki/Voyager_program>`_ launched by NASA in 1977.
|
|
26
|
+
|
|
27
|
+
Python compatibility
|
|
28
|
+
--------------------
|
|
29
|
+
|
|
30
|
+
Voyager 2.2.0 requires Python 3.9 or newer. Python 3.8 is no longer supported.
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
.. toctree::
|
|
34
|
+
:maxdepth: 1
|
|
35
|
+
|
|
36
|
+
Python API Reference <reference>
|
|
37
|
+
|
|
38
|
+
.. toctree::
|
|
39
|
+
Java Documentation </voyager/java#http://>
|
|
40
|
+
GitHub Repo <http://github.com/spotify/voyager>
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
The ``voyager`` Python API
|
|
2
|
+
==========================
|
|
3
|
+
|
|
4
|
+
This module provides classes and functions for creating indices of vector data.
|
|
5
|
+
|
|
6
|
+
A quick example on how to get started::
|
|
7
|
+
|
|
8
|
+
import numpy as np
|
|
9
|
+
from voyager import Index, Space
|
|
10
|
+
|
|
11
|
+
# Create an empty Index object that can store vectors:
|
|
12
|
+
index = Index(Space.Euclidean, num_dimensions=5)
|
|
13
|
+
id_a = index.add_item([1, 2, 3, 4, 5])
|
|
14
|
+
id_b = index.add_item([6, 7, 8, 9, 10])
|
|
15
|
+
|
|
16
|
+
print(id_a) # => 0
|
|
17
|
+
print(id_b) # => 1
|
|
18
|
+
|
|
19
|
+
# Find the two closest elements:
|
|
20
|
+
neighbors, distances = index.query([1, 2, 3, 4, 5], k=2)
|
|
21
|
+
print(neighbors) # => [0, 1]
|
|
22
|
+
print(distances) # => [0.0, 125.0]
|
|
23
|
+
|
|
24
|
+
# Save the index to disk to reload later (or in Java!)
|
|
25
|
+
index.save("output_file.voy")
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
.. autoclass:: voyager.Index
|
|
29
|
+
:members:
|
|
30
|
+
:inherited-members:
|
|
31
|
+
:special-members: __contains__, __len__
|
|
32
|
+
|
|
33
|
+
Enums
|
|
34
|
+
-----
|
|
35
|
+
.. autoclass:: voyager.Space
|
|
36
|
+
:members:
|
|
37
|
+
:inherited-members:
|
|
38
|
+
|
|
39
|
+
.. autoclass:: voyager.StorageDataType
|
|
40
|
+
:members:
|
|
41
|
+
:inherited-members:
|
|
42
|
+
|
|
43
|
+
Utilities
|
|
44
|
+
---------
|
|
45
|
+
.. autoclass:: voyager.LabelSetView
|
|
46
|
+
:members:
|
|
47
|
+
:inherited-members:
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
voyager-2.2.0/py.typed
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["scikit-build-core >=0.4.3", "nanobind >=1.3.2"]
|
|
3
|
+
build-backend = "scikit_build_core.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "voyager"
|
|
7
|
+
version = "2.2.0"
|
|
8
|
+
description = "Easy-to-use, fast, simple multi-platform approximate nearest-neighbor search library."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.9"
|
|
11
|
+
authors = [
|
|
12
|
+
{ name = "Peter Sobot", email = "psobot@spotify.com" },
|
|
13
|
+
]
|
|
14
|
+
classifiers = [
|
|
15
|
+
"Development Status :: 5 - Production/Stable",
|
|
16
|
+
"License :: OSI Approved :: Apache Software License",
|
|
17
|
+
"Operating System :: MacOS",
|
|
18
|
+
"Operating System :: Microsoft :: Windows",
|
|
19
|
+
"Operating System :: POSIX :: Linux",
|
|
20
|
+
"Programming Language :: C++",
|
|
21
|
+
"Programming Language :: Python",
|
|
22
|
+
"Topic :: Database :: Database Engines/Servers",
|
|
23
|
+
"Programming Language :: Python :: 3.9",
|
|
24
|
+
"Programming Language :: Python :: 3.10",
|
|
25
|
+
"Programming Language :: Python :: 3.11",
|
|
26
|
+
"Programming Language :: Python :: 3.12",
|
|
27
|
+
]
|
|
28
|
+
# Optional: runtime dependency specification
|
|
29
|
+
# dependencies = [ "cryptography >=41.0" ]
|
|
30
|
+
|
|
31
|
+
[project.urls]
|
|
32
|
+
Homepage = "https://github.com/spotify/voyager"
|
|
33
|
+
|
|
34
|
+
[tool.scikit-build]
|
|
35
|
+
# Protect the configuration against future changes in scikit-build-core
|
|
36
|
+
minimum-version = "0.4"
|
|
37
|
+
|
|
38
|
+
# Setuptools-style build caching in a local directory
|
|
39
|
+
build-dir = "build/{wheel_tag}"
|
|
40
|
+
|
|
41
|
+
# Build stable ABI wheels for CPython 3.12+
|
|
42
|
+
wheel.py-api = "cp312"
|
|
43
|
+
|
|
44
|
+
[tool.ruff]
|
|
45
|
+
line-length = 120
|
|
46
|
+
|
|
47
|
+
# Needed for full C++17 support on macOS
|
|
48
|
+
[tool.cibuildwheel.macos.environment]
|
|
49
|
+
MACOSX_DEPLOYMENT_TARGET = "10.14"
|