Skip to main content

Infinite number sequences

Project description

PyPI version Supported Python versions Documentation Status

Lazy, immutable, infinite numeric sequences for Python.

countably lets you describe sequences declaratively, the way you’d write them on paper, and evaluate them on demand:

from countably import count, constant

triangular = count() * (count() + 1) // 2     # 0, 1, 3, 6, 10, ...
powers_of_two = 2 ** count()                  # 1, 2, 4, 8, 16, ...
every_third = count()[2::3]                   # 2, 5, 8, 11, ...

The primitives are just constant and count. Arithmetic, comparisons, slicing, and element-wise maximum / minimum build everything else. Plain numbers are coerced automatically, so 3 + 5 * count() is equivalent to constant(3) + constant(5) * count().

Highlights

  • Lazy – elements are computed only on access, with a per-instance 100-item LRU cache for random access. Iteration walks the inputs directly, bypassing the cache.

  • Immutable – every operation produces a new sequence; nothing is mutated.

  • Iterable, not iteratoriter(seq) starts fresh every time.

  • Slices are lazy tooseq[2::3] stays infinite, seq[2:10] is finite with a real len(). Arithmetic between sequences uses the shorter length.

  • Round / floor / ceil / trunc are supported through the standard Python protocols (math.floor(seq), round(seq)).

  • Comparisons (<, <=, >, >=) return sequences of booleans, which are numbers in the same world.

See doc/quick-start.rst for usage including a Fibonacci one-liner.

Install

pip install countably

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

countably-2026.5.31.3020.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

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

countably-2026.5.31.3020-py3-none-any.whl (14.9 kB view details)

Uploaded Python 3

File details

Details for the file countably-2026.5.31.3020.tar.gz.

File metadata

  • Download URL: countably-2026.5.31.3020.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for countably-2026.5.31.3020.tar.gz
Algorithm Hash digest
SHA256 cdd8c35f85b46f859e7c43978a149d29175ac39490d9dd59214712a11f73d682
MD5 b71e6613516e45e9418bfa19d1b70263
BLAKE2b-256 939c7e53c6dcab65c8916433fb73db81fc499de9dcd545baea61907ae4a17d14

See more details on using hashes here.

Provenance

The following attestation bundles were made for countably-2026.5.31.3020.tar.gz:

Publisher: release.yml on moshez/countably

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

File details

Details for the file countably-2026.5.31.3020-py3-none-any.whl.

File metadata

File hashes

Hashes for countably-2026.5.31.3020-py3-none-any.whl
Algorithm Hash digest
SHA256 4a383827ec6c3555d31bbe27dd3a736d34e729a961a2d729fe87bd3177647262
MD5 1a19a49bc8a792cc513a262e7f328b56
BLAKE2b-256 5593246633b72e8ab7b076933c16094f82b35a8ee2d0e3957f2ff81f4f2dfde3

See more details on using hashes here.

Provenance

The following attestation bundles were made for countably-2026.5.31.3020-py3-none-any.whl:

Publisher: release.yml on moshez/countably

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