Skip to main content

Fast, pure-Python full text indexing, search, and spell checking library.

Project description

Whoosh-Novo

CodeFactor codecov

[!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 main without external consultation

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

whoosh_novo-3.0.0a1.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

whoosh_novo-3.0.0a1-py3-none-any.whl (548.7 kB view details)

Uploaded Python 3

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

Hashes for whoosh_novo-3.0.0a1.tar.gz
Algorithm Hash digest
SHA256 3e4d22cfbf49bdaf4105f814c72968ab6a59ff7015477e85d6bc235111e63580
MD5 299ded60eeedf4c906b29dc0340cc239
BLAKE2b-256 9402ff8ebc58e1ab519d51b98a385f5b2fe9954b78e78050674b6d02978cc493

See more details on using hashes here.

Provenance

The following attestation bundles were made for whoosh_novo-3.0.0a1.tar.gz:

Publisher: python-publish.yml on de-odex/whoosh-novo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for whoosh_novo-3.0.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 0d12dfe2e13dceb97ca49bb0151ff76c1e37d1d6494fb52624c963a731b78657
MD5 3d2d047be0b963c27bb83df840335b9c
BLAKE2b-256 8859f0212c08f88734a0027a32106f1f6f05839eb6a933b256e9b91aa24a2bea

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page