Fast, pure-Python full text indexing, search, and spell checking library.
Project description
Whoosh-Novo
[!IMPORTANT] This repository (whoosh-novo) is a fork and continuation of the Whoosh project, succeeding Whoosh-Reloaded which is no longer maintained.
[!WARNING] Compatibility will be best-effort, limited to maintained Python versions (>=3.10). I am a solo amateur developer; mistakes will probably be made more often than usual.
[!NOTE] The first PyPI release is planned as
3.0.0a1. This is an alpha intended to flush out old runtime bugs and any API drift introduced while adding typing annotations. If you depend on strict source compatibility, wait for a later prerelease.
Motivation:
- Update Whoosh to have type annotations
- Aim for 100% standard Pyright conformance, and as much strict Pyright conformance as possible
- Proposals for feature changes and additions
- Probably will not be merged into
mainwithout external consultation
- Probably will not be merged into
The original fork readme follows.
About Whoosh
Whoosh is a fast, featureful full-text indexing and searching library implemented in pure Python. Programmers can use it to easily add search functionality to their applications and websites. Every part of how Whoosh works can be extended or replaced to meet your needs exactly.
Some of Whoosh's features include:
- Pythonic API.
- Pure-Python. No compilation or binary packages are needed, no mysterious crashes.
- Fielded indexing and search.
- Fast indexing and retrieval -- faster than any other pure-Python, scoring, full-text search solution I know of.
- Pluggable scoring algorithm (including BM25F), text analysis, storage, posting format, etc.
- Powerful query language.
- Pure Python spell-checker (as far as I know, the only one).
Whoosh might be useful in the following circumstances:
- Anywhere a pure-Python solution is desirable to avoid having to build/compile native libraries (or force users to build/compile them).
- As a research platform (at least for programmers who find Python easier to read and work with Java ;)
- When an easy-to-use Pythonic interface is more important to you than raw speed.
Whoosh was created by Matt Chaput. It was originally created for use in the online help system of Side Effects Software's 3D animation software Houdini. Side Effects Software Inc. graciously agreed to open-source the code.
This software is licensed under the terms of the simplified BSD (A.K.A. "two clause" or "FreeBSD") license. See LICENSE.txt for information.
Installing Whoosh
If you have pip installed, you can use it to download and install
Whoosh automatically::
# Install the alpha release from PyPI
$ pip install whoosh-novo
# Install the development version from GitHub.
$ pip install git+https://github.com/de-odex/whoosh-novo.git
Getting the source.
You can check out the latest version of the source code on GitHub using git:
$ git clone https://github.com/de-odex/whoosh-novo.git
Contributing
We use pre-commit to format the code and run some checks before committing to avoid common mistakes. To install it, run the following commands:
$ pip install pre-commit
$ pre-commit install
Learning more
-
Online Documentation:
-
File bug reports and issues at https://github.com/de-odex/whoosh-novo/issues
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file whoosh_novo-3.0.0a1.tar.gz.
File metadata
- Download URL: whoosh_novo-3.0.0a1.tar.gz
- Upload date:
- Size: 1.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e4d22cfbf49bdaf4105f814c72968ab6a59ff7015477e85d6bc235111e63580
|
|
| MD5 |
299ded60eeedf4c906b29dc0340cc239
|
|
| BLAKE2b-256 |
9402ff8ebc58e1ab519d51b98a385f5b2fe9954b78e78050674b6d02978cc493
|
Provenance
The following attestation bundles were made for whoosh_novo-3.0.0a1.tar.gz:
Publisher:
python-publish.yml on de-odex/whoosh-novo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
whoosh_novo-3.0.0a1.tar.gz -
Subject digest:
3e4d22cfbf49bdaf4105f814c72968ab6a59ff7015477e85d6bc235111e63580 - Sigstore transparency entry: 1208918875
- Sigstore integration time:
-
Permalink:
de-odex/whoosh-novo@293d28d131dd65c350f1f4881e226d976c95a0ef -
Branch / Tag:
refs/tags/v3.0.0a1 - Owner: https://github.com/de-odex
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@293d28d131dd65c350f1f4881e226d976c95a0ef -
Trigger Event:
release
-
Statement type:
File details
Details for the file whoosh_novo-3.0.0a1-py3-none-any.whl.
File metadata
- Download URL: whoosh_novo-3.0.0a1-py3-none-any.whl
- Upload date:
- Size: 548.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d12dfe2e13dceb97ca49bb0151ff76c1e37d1d6494fb52624c963a731b78657
|
|
| MD5 |
3d2d047be0b963c27bb83df840335b9c
|
|
| BLAKE2b-256 |
8859f0212c08f88734a0027a32106f1f6f05839eb6a933b256e9b91aa24a2bea
|
Provenance
The following attestation bundles were made for whoosh_novo-3.0.0a1-py3-none-any.whl:
Publisher:
python-publish.yml on de-odex/whoosh-novo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
whoosh_novo-3.0.0a1-py3-none-any.whl -
Subject digest:
0d12dfe2e13dceb97ca49bb0151ff76c1e37d1d6494fb52624c963a731b78657 - Sigstore transparency entry: 1208918945
- Sigstore integration time:
-
Permalink:
de-odex/whoosh-novo@293d28d131dd65c350f1f4881e226d976c95a0ef -
Branch / Tag:
refs/tags/v3.0.0a1 - Owner: https://github.com/de-odex
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@293d28d131dd65c350f1f4881e226d976c95a0ef -
Trigger Event:
release
-
Statement type: