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
listtype. For example,listohas afirstmethod that returnsself[0] - A list of arguments passed in will be converted to a
listoobject, but a single argument that is an iterator will be unpacked into alistoobject. 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.
Contributing to Listo
Have you tried using Listo and found it useful? Do you have ideas for how to make it better?
We welcome contributions from the community!
See CONTRIBUTING.md for details on how to set up your development environment to contribute to this project, run tests, check code quality, release new versions, and more.
Release files for listo 0.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| listo-0.8.0.tar.gz | 4.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| listo-0.8.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.2 kB
Release files / listo-0.8.0.tar.gz
| Download URL | listo-0.8.0.tar.gz |
|---|---|
| Size | 4.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7f26653a12aeaa79e98a7aee08bf6742eb1e0278e065a3d441b4f3452c194e9a
|
|
BLAKE2b-256 checksum How to use checksums |
bd50993282705addad37d401c393811ee8d261e53e4af15a7f1b132f39a220da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / listo-0.8.0-py3-none-any.whl
| Download URL | listo-0.8.0-py3-none-any.whl |
|---|---|
| Size | 4.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
64af590b05538cdd969cee3104f481535d74386f9449865cacbdf7fcfac0c3a4
|
|
BLAKE2b-256 checksum How to use checksums |
afb985cff9cfb50ada2614b07ad47577f93cbe0740c39cda4737b9ad24436c1a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|