Skip to main content

An improved version of the List type

Project description

listo

Listo is an enhanced version of the list type that aims to do the following:

  • Make behavior more consistent. No more methods with "in-place" changes. Every method call returns a value
  • Adds methods that are missing from the list type. For example, listo has a first method that returns self[0]
  • A list of arguments passed in will be converted to a listo object, but a single argument that is an iterator will be unpacked into a listo object. This is useful for when you want to pass in a generator or other iterator into a function that expects a list

Usage

First install it via pip, poetry, or whatever you use

pip install listo

Then use it in your code

from listo import listo

lst = listo(1, 2, 3)
assert lst.first() == 1
assert lst.last() == 2

Usage: How listo handles initial arguments

For arguments passed in, it just converts them to a listo object

lst = listo(1, 2, 3)
assert lst == [1, 2, 3]

lst2 = listo([1, 2, 3]) # list is unpacked
assert lst2 == [1, 2, 3]

lst3 = listo((1, 2, 3)) # tuple is converted and unpacked
assert lst3 == [1, 2, 3]

lst4 = listo([1, 2, 3], (1, 2))  # Two args mean nothing is unpacked
assert lst4 == [[1, 2, 3], (1, 2)]

This is different from standard Python iterator behavior.

Development

Install dev dependencies:

pip install -r requirements-dev.txt

Install the package in editable mode:

pip install -e .

Code quality

make lint

Testing

make test

Releasing on PyPI

  1. Update the version in pyproject.toml. We use semantic versioning
  2. At the command line, run make tag
  3. Go to tags page, choose the most recent tag, and click Draft a new release

Building the project locally

Go to the project root

pip install --upgrade build
python -m build

Test the project, forcing reinstall if necessary

pip install dist/listo-0.1.0-py3-none-any.whl --force-reinstall

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

listo-0.4.0.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

listo-0.4.0-py3-none-any.whl (3.5 kB view details)

Uploaded Python 3

File details

Details for the file listo-0.4.0.tar.gz.

File metadata

  • Download URL: listo-0.4.0.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for listo-0.4.0.tar.gz
Algorithm Hash digest
SHA256 d39e739cd70813c9f29e2275b45a134b31063ee6820a72f4648816746a808062
MD5 9f95ec65c5ddf73057f4006c7fb170f4
BLAKE2b-256 58ecb59ea4713e9e52bf462beb6bf46b3bbc3a28bf115821341d0b0d95ef336e

See more details on using hashes here.

File details

Details for the file listo-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: listo-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 3.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for listo-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4fdf61bda3cdde6cdd4a663e0de673cbe7875afe69b9935cab475725a8a56d84
MD5 3894e42854b58ffa2b55b662cddcebb2
BLAKE2b-256 86b061e944a88a114fd3222384a6c1a3b8a77e973957813079f518603786a35d

See more details on using hashes here.

Supported by

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