Skip to main content
Files added late

9 files were added to this release more than 14 days after its initial publication. Inspect the release files before installing.

SearchArray

Python package | Discuss at Relevance Slack

SearchArray indexes an array of strings into a term index. It alows efficient BM25 / TFIDF scoring of phrases and individual tokens. Use it to search a numpy array of strings, list of strings, pandas column, or anything array-like.

IE consider the following pandas example:

from searcharray import SearchArray
import pandas as pd

df['title_indexed'] = SearchArray.index(df['title'])
np.sort(df['title_indexed'].array.score(['cat', 'in', 'the', 'hat']))   # Search w/ phrase

> BM25 scores:
> array([ 0.        ,  0.        ,  0.        , ..., 15.84568033, 15.84568033, 15.84568033])

Docs | Guide

SearchArray is documented in these notebooks:

SearchArray Guide | SearchArray Offline Experiment | About internals

Installation

pip install searcharray

Features

  • Search w/ terms by passing a string
  • Search w/ a phrase by passing a list[str]
  • Search w/ a phrase w/ edit-distance by passing slop=N.
  • Access raw stats arrays in termfreqs / docfreqs methods on the array
  • Bring your own tokenizer. Pass any (def tokenize(value: str) -> List[str]) when indexing.
  • Memory map by passing data_dir to index for memory mapped index
  • Accepts any python function to compute similarity. Here's one similarity
  • Scores the entire dataframe, allowing combination w/ other ranking attributes (recency, popularity, etc) or scores from other fields (ie boolean queries)
  • Implement's Solr's edismax query parser for efficient prototyping

Motivation

To simplify lexical search in the Python data stack.

Many ML / AI practitioners reach for a vector search solution, then realize they need to sprinkle in some degree of BM25 / lexical search. Let's get traditional full-text search to behave like other parts of the data stack.

SearchArray creates a Pandas-centric way of creating and using a search index as just part of a Pandas array. In a sense, it builds a search engine in Pandas - to allow anyone to prototype ideas and perform reranking, without external systems.

You can see a full end-to-end search relevance experiment in this colab notebook

IE, let's take a dataframe that has a bunch of text, like movie title and overviews:

In[1]: df = pd.DataFrame({'title': titles, 'overview': overviews}, index=ids)
Out[1]:
                                        title                                           overview
374430          Black Mirror: White Christmas  This feature-length special consists of three ...
19404   The Brave-Hearted Will Take the Bride  Raj is a rich, carefree, happy-go-lucky second...
278                  The Shawshank Redemption  Framed in the 1940s for the double murder of h...
372058                             Your Name.  High schoolers Mitsuha and Taki are complete s...
238                             The Godfather  Spanning the years 1945 to 1955, a chronicle o...
...                                       ...                                                ...
65513                          They Came Back  The lives of the residents of a small French t...
65515                       The Eleventh Hour  An ex-Navy SEAL, Michael Adams, (Matthew Reese...
65521                      Pyaar Ka Punchnama  Outspoken and overly critical Nishant Agarwal ...
32767                                  Romero  Romero is a compelling and deeply moving look ...

Index the text:

In[2]: df['title_indexed'] = SearchArray.index(df['title'])
       df

Out[2]:
                                        title                                           overview                                      title_indexed
374430          Black Mirror: White Christmas  This feature-length special consists of three ...  Terms({'Black', 'Mirror:', 'White'...
19404   The Brave-Hearted Will Take the Bride  Raj is a rich, carefree, happy-go-lucky second...  Terms({'The', 'Brave-Hearted', 'Wi...
278                  The Shawshank Redemption  Framed in the 1940s for the double murder of h...  Terms({'The', 'Shawshank', 'Redemp...
372058                             Your Name.  High schoolers Mitsuha and Taki are complete s...  Terms({'Your', 'Name.'}, {'Your': ...
238                             The Godfather  Spanning the years 1945 to 1955, a chronicle o...  Terms({'The', 'Godfather'}, {'The'...
...                                       ...                                                ...                                                ...
65513                          They Came Back  The lives of the residents of a small French t...  Terms({'Back', 'They', 'Came'},...
65515                       The Eleventh Hour  An ex-Navy SEAL, Michael Adams, (Matthew Reese...  Terms({'The', 'Hour', 'Eleventh': ...
65521                      Pyaar Ka Punchnama  Outspoken and overly critical Nishant Agarwal ...  Terms({'Ka', 'Pyaar', 'Punchnama':...
32767                                  Romero  Romero is a compelling and deeply moving look ...        Terms({'Romero'})
65534                                  Poison  Paul Braconnier and his wife Blandine only hav...        Terms({'Poison'})```

(notice the dumb tokenization - no worries you can pass your own tokenizer).

Then search, getting top N with Cat

In[3]: np.sort(df['title_indexed'].array.score('Cat'))
Out[3]: array([ 0.        ,  0.        ,  0.        , ..., 15.84568033,
                15.84568033, 15.84568033])

In[4]: df['title_indexed'].score('Cat').argsort()
Out[4]: 

array([0, 18561, 18560, ..., 15038, 19012,  4392])

And since its just pandas, we can, of course just retrieve the top matches

In[5]: df.iloc[top_n_cat[-10:]]
Out[5]:
                  title                                           overview                                      title_indexed
24106     The Black Cat  American honeymooners in Hungary are trapped i...  Terms({'Black': 1, 'The': 1, 'Cat': 1}, ...
12593     Fritz the Cat  A hypocritical swinging college student cat ra...  Terms({'Cat': 1, 'the': 1, 'Fritz': 1}, ...
39853  The Cat Concerto  Tom enters from stage left in white tie and ta...  Terms({'The': 1, 'Cat': 1, 'Concerto': 1...
75491   The Rabbi's Cat  Based on the best-selling graphic novel by Joa...  Terms({'The': 1, 'Cat': 1, "Rabbi's": 1}...
57353           Cat Run  When a sexy, high-end escort holds the key evi...  Terms({'Cat': 1, 'Run': 1}, {'Cat': [0],...
25508        Cat People  Sketch artist Irena Dubrovna (Simon) and Ameri...  Terms({'Cat': 1, 'People': 1}, {'Cat': [...
11694        Cat Ballou  A woman seeking revenge for her murdered fathe...  Terms({'Cat': 1, 'Ballou': 1}, {'Cat': [...
25078          Cat Soup  The surreal black comedy follows Nyatta, an an...  Terms({'Cat': 1, 'Soup': 1}, {'Cat': [0]...
35888        Cat Chaser  A Miami hotel owner finds danger when be becom...  Terms({'Cat': 1, 'Chaser': 1}, {'Cat': [...
6217         Cat People  After years of separation, Irina (Nastassja Ki...  Terms({'Cat': 1, 'People': 1}, {'Cat': [...

More use cases can be seen in the colab notebook

Goals

The overall goals are to recreate a lot of the lexical features (term / phrase search) of a search engine like Solr or Elasticsearch, but in a Pandas dataframe.

Memory efficient and fast text index

We want the index to be as memory efficient and fast at searching as possible. We want using it to have a minimal overhead.

We want you to be able to work with a reasonable dataset (100X-1M docs) relatively efficiently for offline evaluation. And 1000s for fast reranking in a service.

Experimentation, reranking, functionality over scalability

Instead of building for 'big data' our goal is to build for small-data. That is, focus on capabilities and expressiveness of Pandas, over limiting functionality in favor of scalability.

To this end, the applications of searcharray will tend to be focused on experimentation and top N candidate reranking. For experimentation, we want any ideas expressed in Pandas to have a somewhat clear path / "contract" in how they'd be implemented in a classical lexical search engine. For reranking, we want to load some top N results from a base system and be able to modify them.

Make lexical search compatible with the data stack

We know in search, RAG, and other retrieval problems hybrid search techniques dominate. Yet often its cast in terms of a giant, weird, big data lexical search engine that looks odd to most data scientists being joined with a vector database. We want lexical search to be more approachable to data scientists and ML engineers building these systems.

Non-goals

You need to bring your own tokenization

Python libraries already do tokenization really well. Even exceeding what Lucene can do... giving you the ability to simulate and/or exceed the abilities of Lucene's tokenization.

In SearchArray, a tokenizer is a function takes a string and emits a series of tokens. IE dumb, default whitespace tokenization:

def ws_tokenizer(string):
    return string.split()

And you can pass any tokenizer that matches this signature to index:

def ws_lowercase_tokenizer(string):
    return string.lower().split()

df['title_indexed'] = SearchArray.index(df['title'], tokenizer=ws_lowercase_tokenizer)

Create your own using stemming libraries, or whatever Python functionality you want.

Use Pandas instead of function queries

Solr has its own unique function query syntax. Elasticsearch has Painless.

Instead of recreating these, simply use Pandas on existing Pandas columns. Then later, if you need to implement this in Solr or Elasticsearch, attempt to recreate the functionality. Arguably what's in Solr / ES would be a subset of what you could do in Pandas.

# Calculate the number of hours into the past
df['hrs_into_past'] = (now - df['timestamp']).dt.total_seconds() / 3600

Then multiply by BM25 if you want:

df['score'] = df['title_indexed'].score('Cat') * df['hrs_into_past']

Vector search

We focus on the lexical, ie "BM25-ish" and adjacent problems. There are other great tools for vector search out there.

Need help?

Visit the #searcharray channel on Relevance Slack

TODOs / Future Work / Known issues

  • Always more efficient
  • Support tokenizers with overlapping positions (ie synonyms, etc)
  • Improve support for phrase slop
  • Helper functions (like this start at edismax that help recreate Solr / Elasticsearch lexical queries)
  • Fuzzy search
  • Efficient way to "slurp" some top N results from retrieval system into a dataframe

Metadata

Release files for searcharray 0.0.73

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Files added late

9 files were uploaded more than 14 days after the first file in this release.

While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.

We recommend inspecting the release files before installing.

Built distributions (wheels)

Table of built distributions (wheels) for searcharray 0.0.73
File
searcharray-0.0.73-pp310-pypy310_pp73-win_amd64.whl PyPy 3.10 PyPy 3.10 7.3 Windows x86-64 Details
searcharray-0.0.73-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.10 PyPy 3.10 7.3 Linux glibc 2.17+ x86-64 Details
searcharray-0.0.73-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl PyPy 3.10 PyPy 3.10 7.3 Linux glibc 2.17+ ARM64 Details
searcharray-0.0.73-pp310-pypy310_pp73-macosx_11_0_arm64.whl PyPy 3.10 PyPy 3.10 7.3 macOS 11.0+ ARM64 Details
searcharray-0.0.73-pp310-pypy310_pp73-macosx_10_15_x86_64.whl PyPy 3.10 PyPy 3.10 7.3 macOS 10.15+ x86-64 Details
searcharray-0.0.73-cp313-cp313-win_arm64.whl CPython 3.13 CPython 3.13 Windows ARM64 Details
searcharray-0.0.73-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
searcharray-0.0.73-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details
searcharray-0.0.73-cp313-cp313-musllinux_1_2_aarch64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ ARM64 Details
searcharray-0.0.73-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
searcharray-0.0.73-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details
searcharray-0.0.73-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
searcharray-0.0.73-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
searcharray-0.0.73-cp312-cp312-win_arm64.whl CPython 3.12 CPython 3.12 Windows ARM64 Details
searcharray-0.0.73-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
searcharray-0.0.73-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
searcharray-0.0.73-cp312-cp312-musllinux_1_2_aarch64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ ARM64 Details
searcharray-0.0.73-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
searcharray-0.0.73-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
searcharray-0.0.73-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
searcharray-0.0.73-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
searcharray-0.0.73-cp311-cp311-win_arm64.whl CPython 3.11 CPython 3.11 Windows ARM64 Details
searcharray-0.0.73-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
searcharray-0.0.73-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
searcharray-0.0.73-cp311-cp311-musllinux_1_2_aarch64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ ARM64 Details
searcharray-0.0.73-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
searcharray-0.0.73-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
searcharray-0.0.73-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
searcharray-0.0.73-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details
searcharray-0.0.73-cp310-cp310-win_arm64.whl CPython 3.10 CPython 3.10 Windows ARM64 Details
searcharray-0.0.73-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
searcharray-0.0.73-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details
searcharray-0.0.73-cp310-cp310-musllinux_1_2_aarch64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ ARM64 Details
searcharray-0.0.73-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
searcharray-0.0.73-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details
searcharray-0.0.73-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
searcharray-0.0.73-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details

Total release size: 71.1 MB

Release files / searcharray-0.0.73-pp310-pypy310_pp73-win_amd64.whl

Download URL searcharray-0.0.73-pp310-pypy310_pp73-win_amd64.whl
Size 546.2 kB
Tags PyPy 3.10 PyPy 3.10 7.3 Windows x86-64
SHA-256 checksum
How to use checksums
ac2a95a873ff2b78ca747b54908014c7b48b34e45d4f5726a083cb67628f8868
BLAKE2b-256 checksum
How to use checksums
3b2b0578c62fb41cc101932fe23724cc5e989625c4a315eb80afb97708393527
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL searcharray-0.0.73-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 638.1 kB
Tags Linux glibc 2.17+ x86-64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
13ee042d53192d0b8cb61055d88d84e28fe5b5bb9193141f50cb7a1f04472b9b
BLAKE2b-256 checksum
How to use checksums
b1b65a913265caec4a4e27c2c7db2e9b9eb2e128ca10187f9f6cd111aa1657e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

File added late

This file was uploaded more than 14 days after the first file in this release.

While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.

We recommend inspecting the release file before installing.

Download URL searcharray-0.0.73-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 594.4 kB
Tags Linux glibc 2.17+ ARM64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
46500b6c035038b0326c561a515f819355bb4bd3fbbe54a548fba859c41d92d5
BLAKE2b-256 checksum
How to use checksums
1820806df4f2fff44b1f0c033ed02995d5b31e0147690e26098438049be9156a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-pp310-pypy310_pp73-macosx_11_0_arm64.whl

Download URL searcharray-0.0.73-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Size 536.5 kB
Tags PyPy 3.10 PyPy 3.10 7.3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5256ede916e1b7cdd16c098d7a8bcbd261240c53e9cd447a5f8c802126c4d655
BLAKE2b-256 checksum
How to use checksums
e9a796cc33686c2914a31da13ed43d62cffba4ab6badad4b7457bbf24acbc810
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-pp310-pypy310_pp73-macosx_10_15_x86_64.whl

Download URL searcharray-0.0.73-pp310-pypy310_pp73-macosx_10_15_x86_64.whl
Size 534.8 kB
Tags PyPy 3.10 PyPy 3.10 7.3 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
bf5f2a230fc9b92db2f2f4ba831aef5524d103914c3307b8d46722e2c521f0da
BLAKE2b-256 checksum
How to use checksums
0fbecae7bf6bab17678e2bd4387d850d9b3545c087442c3a339018ac2eb89482
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp313-cp313-win_arm64.whl

Download URL searcharray-0.0.73-cp313-cp313-win_arm64.whl
Size 493.4 kB
Tags CPython 3.13 Windows ARM64
SHA-256 checksum
How to use checksums
f247cfa5c5282c55c99c887f5de8124d7a19aabeb7ab60da16d9cf446a49ab12
BLAKE2b-256 checksum
How to use checksums
724e482ded831799e89360d1ed0c9fdb4d289cb3282763429ffbfd68c55c54ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp313-cp313-win_amd64.whl

Download URL searcharray-0.0.73-cp313-cp313-win_amd64.whl
Size 586.2 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
61554dd3e191786686facb167c3291c570a9d96014920a0508c212d08f296e20
BLAKE2b-256 checksum
How to use checksums
ca476f1e7a01683f25839a09b3ca36890e20c79ddcf569ba9a7b1b5732d9fbf4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL searcharray-0.0.73-cp313-cp313-musllinux_1_2_x86_64.whl
Size 3.8 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
ff08679e4a4e23ed1963d3626a73efe8432de34164d81ff3948cdf1da197d6c9
BLAKE2b-256 checksum
How to use checksums
c2b38cd0719ecbe511363defbe5c39f2f0971d61e453c1fbda885ba1eb5c11ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp313-cp313-musllinux_1_2_aarch64.whl

File added late

This file was uploaded more than 14 days after the first file in this release.

While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.

We recommend inspecting the release file before installing.

Download URL searcharray-0.0.73-cp313-cp313-musllinux_1_2_aarch64.whl
Size 3.6 MB
Tags CPython 3.13 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
88922af9d5188a25a11f4a3cc38d3312d9f345a593d26c5cf682ebcb21bacc64
BLAKE2b-256 checksum
How to use checksums
e9dba0f7c73fee2b9ca0f5e67d2cf78f5fae73eb1ea52fd2beda9d6f6e4a4fb1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL searcharray-0.0.73-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 3.7 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
47f6e79f5d7d229dad12581289521db9580910ca1e944c582484bbd8533d722d
BLAKE2b-256 checksum
How to use checksums
1db5d20fc769a4fd265d2c9c6a798a7ce5a98436d903e00346c98437b3019571
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

File added late

This file was uploaded more than 14 days after the first file in this release.

While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.

We recommend inspecting the release file before installing.

Download URL searcharray-0.0.73-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 3.6 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
2f8e50b2b25fc5739320bc5ff5672ae807b467e6709d450e902948a37a0f1463
BLAKE2b-256 checksum
How to use checksums
05a77596125624aaf1e70498b30fa5dcb990c59c439e95b3d54af0aa2997714d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp313-cp313-macosx_11_0_arm64.whl

Download URL searcharray-0.0.73-cp313-cp313-macosx_11_0_arm64.whl
Size 654.2 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d7107a7bb995cc8f52e73ef78cef667a85f6013af072d23ad495aa98328d220a
BLAKE2b-256 checksum
How to use checksums
fbfc68eb05a7d0f7af9dabc26bdfbd96fe74f35918f1a2aef143d6ea612c52a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp313-cp313-macosx_10_13_x86_64.whl

Download URL searcharray-0.0.73-cp313-cp313-macosx_10_13_x86_64.whl
Size 641.1 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
55d16ba5aeb4a1c32d36dce10657d916b11019157526a9f2db73f3ea79659f2c
BLAKE2b-256 checksum
How to use checksums
c4804763815ef4fa9837af5cffda447114dc70105a9a811b64d22c8d18c9671a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp312-cp312-win_arm64.whl

Download URL searcharray-0.0.73-cp312-cp312-win_arm64.whl
Size 494.9 kB
Tags CPython 3.12 Windows ARM64
SHA-256 checksum
How to use checksums
da6cf44ebcb43669c813c0487be3e93428ef3e0148f0031330774aafc0c95b84
BLAKE2b-256 checksum
How to use checksums
d66560efdbd096cd81ae38ded4f3b90463fae15016b7494873d746429a7ce3e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp312-cp312-win_amd64.whl

Download URL searcharray-0.0.73-cp312-cp312-win_amd64.whl
Size 589.0 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
a894332e3597ad00442f7d45f8a52d90c69ad38d456416e130181a04e6390113
BLAKE2b-256 checksum
How to use checksums
350022859854f0d31c315f405765cb95df3f5cc3a9082d11e3f1e69ed8f1933a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL searcharray-0.0.73-cp312-cp312-musllinux_1_2_x86_64.whl
Size 3.8 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
0dcac300f5f4320183ad8af03a37112fde8515ea04d6372bbca5ee7abfcef619
BLAKE2b-256 checksum
How to use checksums
37c740425331d0ad32ac0c3ec1a795d64e12d38bb306a5f1d1146d42dfe618ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp312-cp312-musllinux_1_2_aarch64.whl

File added late

This file was uploaded more than 14 days after the first file in this release.

While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.

We recommend inspecting the release file before installing.

Download URL searcharray-0.0.73-cp312-cp312-musllinux_1_2_aarch64.whl
Size 3.7 MB
Tags CPython 3.12 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
296f7fbf3c925d427a553bf69cd7e171f98093e8a0e14e99d46eea2f3a09318e
BLAKE2b-256 checksum
How to use checksums
599709b5faa73f7dbaaf81810c21adafbb9b7a34384156ab3d34b33715d6813a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL searcharray-0.0.73-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 3.7 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
7d28507d3f5d5b4ef089a25913a275c10bbc9bfb28856f8527382b393f592798
BLAKE2b-256 checksum
How to use checksums
5f36f8ffbd3e518fd2e889e314bd33a16a29004128e714732591571e199d7d78
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

File added late

This file was uploaded more than 14 days after the first file in this release.

While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.

We recommend inspecting the release file before installing.

Download URL searcharray-0.0.73-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 3.6 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
237d466be353db93e2a4f704b287e9649121139bfcdab9165739416c6ad74ade
BLAKE2b-256 checksum
How to use checksums
ad27bd87a66325557462ac0c59c06d05d0b5490be7c5ae684d0ecaa44c046821
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp312-cp312-macosx_11_0_arm64.whl

Download URL searcharray-0.0.73-cp312-cp312-macosx_11_0_arm64.whl
Size 661.4 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
17c91bfa9021f008d9d17af8863753cbeb532afecce45a38ede1ff856e0d3aff
BLAKE2b-256 checksum
How to use checksums
9c6901944aeee5534f1636b0ad5acbec9e1c5d377f2700749a56c39d77370712
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp312-cp312-macosx_10_13_x86_64.whl

Download URL searcharray-0.0.73-cp312-cp312-macosx_10_13_x86_64.whl
Size 649.0 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
ce5a56832c24fb556b5cdbeb918d3158b0a27bb576ece55efe4db55d991c3bbb
BLAKE2b-256 checksum
How to use checksums
123cb5e27c6b6cac8a3fa1b7096688761e7c77c996fe7ffbe20e55f5245186d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp311-cp311-win_arm64.whl

Download URL searcharray-0.0.73-cp311-cp311-win_arm64.whl
Size 498.9 kB
Tags CPython 3.11 Windows ARM64
SHA-256 checksum
How to use checksums
264d861a992fee86befb93be05bc35631be9619916cfc8c9b010de718a283803
BLAKE2b-256 checksum
How to use checksums
99e188b0f6530c71d42e590cabfc7cd7c2fbac06b94644dfbedf917d1e79c721
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp311-cp311-win_amd64.whl

Download URL searcharray-0.0.73-cp311-cp311-win_amd64.whl
Size 586.1 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
cfcc9ac5be73a0f619bee72dac9ef1dcba560d4f8422901308c925aa7d4b8874
BLAKE2b-256 checksum
How to use checksums
a7b31d79c47e07bb5dc3a90249fcc280810aa77fa759f5d1c4947cb65351f475
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL searcharray-0.0.73-cp311-cp311-musllinux_1_2_x86_64.whl
Size 3.9 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
617e064976572284d765564940efb49e7f8daf9ddf656e84d71fc2d75994dfd9
BLAKE2b-256 checksum
How to use checksums
83c1dc7a3d233ffef79015d064e7b17c4ed93c96c17d3b6dd893068b0e49ac4d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp311-cp311-musllinux_1_2_aarch64.whl

File added late

This file was uploaded more than 14 days after the first file in this release.

While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.

We recommend inspecting the release file before installing.

Download URL searcharray-0.0.73-cp311-cp311-musllinux_1_2_aarch64.whl
Size 3.7 MB
Tags CPython 3.11 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
d65ac4ff653ae390276f8519b10998806a50f29664857430e9ec29c0aa85ddef
BLAKE2b-256 checksum
How to use checksums
0103e02c2bce46870c5b63a12247ff67add9e68b8d8b32707834dcbda00f0dea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL searcharray-0.0.73-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 3.8 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
0c4b6575769c156c71d962f9afb7a6e74ee9ff62797171fd73da5dcc0d5efc37
BLAKE2b-256 checksum
How to use checksums
55d906df5859b4aeb2546bb662de6c3602f43174eba2493bbd75973f7dc8d4ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

File added late

This file was uploaded more than 14 days after the first file in this release.

While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.

We recommend inspecting the release file before installing.

Download URL searcharray-0.0.73-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 3.7 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
4684d62bb183dcd6d51bae1b174e76c1836f0555266c2d477dcac713f4fab765
BLAKE2b-256 checksum
How to use checksums
29c35677fbf76711b80d9568f388d346b3a52309fc14cbe0a736da384c0cfae1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp311-cp311-macosx_11_0_arm64.whl

Download URL searcharray-0.0.73-cp311-cp311-macosx_11_0_arm64.whl
Size 658.1 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8127b9c04d44ffe88925b22b3265c38e8f8c97d665981e414fbba272213d114f
BLAKE2b-256 checksum
How to use checksums
68d550457c5b28c52e0e964ffd11b0a84d17606b7b7137213a9ba27555a863af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp311-cp311-macosx_10_9_x86_64.whl

Download URL searcharray-0.0.73-cp311-cp311-macosx_10_9_x86_64.whl
Size 647.5 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
9d55fb8c1f516e8891c7c9bf3ff3e5c8b39076d8e218d31bede1c3a48e865781
BLAKE2b-256 checksum
How to use checksums
f11ffc4913815741b4038a6e32decf8a7e01ba0ca19537c349316e68a7f96a7f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp310-cp310-win_arm64.whl

Download URL searcharray-0.0.73-cp310-cp310-win_arm64.whl
Size 501.6 kB
Tags CPython 3.10 Windows ARM64
SHA-256 checksum
How to use checksums
50ac4eaf5063f3a313d9b148a1c714ba3e2138413ca00180c2e63c27b0636c12
BLAKE2b-256 checksum
How to use checksums
e63e3a6e73deee757108b5e51b578a15b8736782aee79a49b3e1121724fbda35
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp310-cp310-win_amd64.whl

Download URL searcharray-0.0.73-cp310-cp310-win_amd64.whl
Size 586.7 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
d7b55def13cab798134cf8ebc8f0c95b3c61f855153d3d8bdd388b0b0a61ded7
BLAKE2b-256 checksum
How to use checksums
3c979b5f860e3b76d97e4b72b05fbc3f1a464e252cd3973f8b2501951d78f6f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL searcharray-0.0.73-cp310-cp310-musllinux_1_2_x86_64.whl
Size 3.7 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
4fb5433a145e97897aec0f56153d7fd59a2e043784315ce550331ef367f7b5c9
BLAKE2b-256 checksum
How to use checksums
36efe8098b98d32b13b9f5ca81a4f67684dbe52a795c8388f838f47fcbff9e5c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp310-cp310-musllinux_1_2_aarch64.whl

File added late

This file was uploaded more than 14 days after the first file in this release.

While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.

We recommend inspecting the release file before installing.

Download URL searcharray-0.0.73-cp310-cp310-musllinux_1_2_aarch64.whl
Size 3.5 MB
Tags CPython 3.10 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
dbd6b370b63134285023f9891b3ab136506144c8516c1e661832ef31d701101f
BLAKE2b-256 checksum
How to use checksums
9d195124ad81f4477ecb5dfec2721d5e1ebaf622170e17fb36d69a78fe7ba1a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL searcharray-0.0.73-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 3.6 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
7ec26161c0197d322365a9990beb6b23922e1e860a84b99ef5c6161a3f294b94
BLAKE2b-256 checksum
How to use checksums
ad2fd6238ad751458afa65a0c46d849d4bbfb5eea7e01566cd8255cf60c4791a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

File added late

This file was uploaded more than 14 days after the first file in this release.

While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.

We recommend inspecting the release file before installing.

Download URL searcharray-0.0.73-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 3.5 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
bafde532df5f4faf36bf83f084f06c55ba879862e7b3bd1e98e5c33cc05044ae
BLAKE2b-256 checksum
How to use checksums
02f730f81cad3af5b0f1d302f8f3d724a224146316664feacdb2e15848043f86
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp310-cp310-macosx_11_0_arm64.whl

Download URL searcharray-0.0.73-cp310-cp310-macosx_11_0_arm64.whl
Size 659.4 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8def36816353e3642ed72bed6400112112648d9a06f219e443212940913b9577
BLAKE2b-256 checksum
How to use checksums
9c69b65df7f93141c1561e182bfe054ef05ad55b46fe200a8b35771893ed0cb0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / searcharray-0.0.73-cp310-cp310-macosx_10_9_x86_64.whl

Download URL searcharray-0.0.73-cp310-cp310-macosx_10_9_x86_64.whl
Size 649.2 kB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
994fc6decbe4adc99c0d40cc9f689661ae16922145c8c296a3c2609b23e8b9d2
BLAKE2b-256 checksum
How to use checksums
ec4326dd7e820239b39437681811ba80cce65d00ce74c9fa482e701b1bac665d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Security for searcharray 0.0.73

Upload timing

Files added late

9 files were uploaded more than 14 days after the first file in this release.

While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.


Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.0.73 This release

37 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page