Skip to main content

A lexicographic indexing system for Kanban boards

Project description

kanban-indexer

kanban-indexer is a simple Python library that implements a lexicographic indexing system for ordered collections, such as columns on a Kanban board. It uses a chracter-based system that should allow for an arbitrary number of insertions between any two existing indices without the need for reindexing.

Features

  • Generates string indices composed of characters A-Z
  • Uses lexicographic ordering to determine item placement
  • Creates new indices at the midpoint between existing indices
  • Allows insertions before the first item and after the last item
  • Avoids floating-point precision issues by using string comparisons
  • Produces human-readable indices

Installation

You can install kanban-indexer using pip:

pip install kanban-indexer

Usage

Here's a quick example of how to use kanban-indexer:

from kanban_indexer import compute_intermediate_index, compute_preceding_index, compute_succeeding_index

# Generate an index between "B" and "C"
middle_index = compute_intermediate_index("B", "C")
print(middle_index)  # Output: BM

# Generate an index before "A"
before_b = compute_preceding_index("B")
print(before_b)  # Output: AZ

# Generate an index after "Z"
after_z = compute_succeeding_index("Z")
print(after_z)  # Output: ZB

API Reference

compute_intermediate_index(index_before: str, index_after: str) -> str

Computes the intermediate index between two given indices.

compute_preceding_index(index: str) -> str

Returns the preceding index value based on the given index.

compute_succeeding_index(index: str) -> str

Returns the succeeding index based on the given index.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Development

To set up the development environment:

  1. Clone the repository
  2. Create and activate a virtual environment:
    python -m venv venv
    source venv/bin/activate
    
  3. Install the package with development dependencies: pip install -e .[dev]

Running Tests

You can run tests using pytest:

pytest

Linting and Formatting

This project uses ruff for linting and formatting. To run ruff:

ruff check .

To automatically fix issues and format code:

ruff check --fix .

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

kanban_indexer-1.0.2.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

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

kanban_indexer-1.0.2-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

Details for the file kanban_indexer-1.0.2.tar.gz.

File metadata

  • Download URL: kanban_indexer-1.0.2.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.0

File hashes

Hashes for kanban_indexer-1.0.2.tar.gz
Algorithm Hash digest
SHA256 e9423ca2f0db350461f9de9a7e5f490f09aad40a72972d488cdd740d6032f633
MD5 a25750912f735dccdf5e117722c21368
BLAKE2b-256 1eacf12b10ba1cd9226161c795fef3e54948a4e4b586ed34aa836aa9bfa8cfff

See more details on using hashes here.

File details

Details for the file kanban_indexer-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: kanban_indexer-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 6.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.0

File hashes

Hashes for kanban_indexer-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d5f752ca12cea9ef93c8a03a7169bbe918303703615a3648b0203ce099642c35
MD5 0a6086c685c4e405558496ed44f817f7
BLAKE2b-256 18faa126a8ea0256a2c38edd18479a8fa490e65a0409c9a22ca395b3134c114a

See more details on using hashes here.

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