Tiny but powerful string <-> list manipulation utilities for Python
Project description
string-list
Tiny but powerful string <-> list manipulation utilities for Python.
string-list is a lightweight Python package designed to help you quickly and cleanly convert between strings, lists, sets, and more. It’s perfect for handling user input, CSV-style values, or transforming semi-structured data with minimal fuss.
✨ Features
- ✅ Cleanly split strings into lists (with optional whitespace trimming)
- ✅ Join lists/sets into delimited strings (with optional quoting)
- ✅ Handle unknown input types (
str,int,list) and normalize them - ✅ Case-insensitive set merging with capitalization preference
- ✅ Dictionary enumeration with string keys for config-friendly output
📦 Installation
pip install string-list
Then in your Python code:
from string_list import list_from_string
🔧 Usage Examples
📌 list_from_string()
Split a string into a list with optional trimming:
from string_list import list_from_string
list_from_string("a,b,c") # ['a', 'b', 'c']
list_from_string(" a , b , c ", strip=True) # ['a', 'b', 'c']
list_from_string("1|2|3", delim="|") # ['1', '2', '3']
📌 string_from_list()
Join a list or set into a string:
from string_list import string_from_list
string_from_list(['a', 'b', 'c']) # "a,b,c"
string_from_list({'x', 'y'}, quoted=True) # "'x','y'"
string_from_list([1, 2, 3], delim='|') # "1|2|3"
string_from_list(['x', None, 'y']) # "x,y"
📌 list_from_any()
Convert a str, int, or list into a list of strings or integers:
from string_list import list_from_any
list_from_any("10,20,30", return_items_as_int=True) # [10, 20, 30]
list_from_any(123) # ['123']
list_from_any(['1', '2']) # ['1', '2']
📌 case_insensitive_update()
Merge two sets while ensuring case-insensitive uniqueness and preferring title-case:
from string_list import case_insensitive_update
base = {"Film", "Movie"}
new = {"film", "Cinema"}
case_insensitive_update(base, new) # {'Film', 'Movie', 'Cinema'}
📌 str_enumerate()
Enumerate any string/list into a dictionary with string keys (great for config files or JSON):
from string_list import str_enumerate
str_enumerate("apple,banana", start=1)
# {'1': 'apple', '2': 'banana'}
str_enumerate(["x", "y"])
# {'0': 'x', '1': 'y'}
🧪 Running Tests
If cloning the repo locally:
pip install -r requirements-dev.txt
pytest tests/
📝 License
MIT Licensed – free to use, share, and modify.
🙌 Contributing
If you have improvements or new utility functions to add, feel free to open a pull request!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file string_list-0.1.0.tar.gz.
File metadata
- Download URL: string_list-0.1.0.tar.gz
- Upload date:
- Size: 4.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75619c4effbbd2d6ac99626768066bc65ab2661631e9af809058778425d0aa53
|
|
| MD5 |
e1a2cb36fa8ff4f6338be46e69d77b79
|
|
| BLAKE2b-256 |
e87bc3eca3eb6b29ab52d25348a9ce25bcbe9b7a6cdb78d028dabb1d2306d0c2
|
File details
Details for the file string_list-0.1.0-py3-none-any.whl.
File metadata
- Download URL: string_list-0.1.0-py3-none-any.whl
- Upload date:
- Size: 4.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d2eafbf0a70ca3329f8eab5fe696a67f41f093272533a1a232e02c234f871da2
|
|
| MD5 |
8c9f48123d0d95ea58e23204ed2984e4
|
|
| BLAKE2b-256 |
af951ecc8db46d11894a23c22a3839a4952b31bfa4ac969f3840437c23939140
|