roster
Python object registers. Keep track of your classes, functions and data.
Installation
roster can be installed from PyPI
pip install roster
Usage:
Record
Default Record
from roster import Record
numbers: Record[int] = Record()
numbers(1)
numbers(2)
numbers(3)
>>> numbers
[1, 2, 3]
Generate each item
from roster import Record
characters: Record[str] = Record()
@characters.item
def character(char: str, /) -> str:
return char.upper()
character('a')
character('b')
character('c')
>>> characters
['A', 'B', 'C']
Register
Default Register
from roster import Register
services: Register[str, type] = Register()
@services('youtube')
class YouTube: pass
@services('spotify')
class Spotify: pass
>>> services
{'youtube': <class '__main__.YouTube'>, 'spotify': <class '__main__.Spotify'>}
Generate each key
from roster import Register
from typing import Callable
functions: Register[str, Callable] = Register()
@functions.key
def function(name: str, /) -> str:
return name.upper()
@function('foo')
def foo(): pass
@function('bar')
def bar(): pass
>>> functions
{'FOO': <function foo at 0x7f9c4f065790>, 'BAR': <function bar at 0x7f9c4f065820>}
Generate each value
from roster import Register
from typing import Callable
functions: Register[str, Callable] = Register()
@functions.value
def function(name: str, /) -> str:
return name.upper()
@function('foo')
def foo(): pass
@function('bar')
def bar(): pass
>>> functions
{<function foo at 0x7f26443aa790>: 'FOO', <function bar at 0x7f26443aa820>: 'BAR'}
Generate each entry
from roster import Register
from typing import Tuple
identifiers: Register[str, str] = Register()
@identifiers.entry
def identifier(code: str, /) -> Tuple[str, str]:
return (code[0], code.upper())
identifier('foo')
identifier('bar')
>>> identifiers
{'f': 'FOO', 'b': 'BAR'}
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
roster-0.1.11.tar.gz
(3.5 kB
view details)
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 roster-0.1.11.tar.gz.
File metadata
- Download URL: roster-0.1.11.tar.gz
- Upload date:
- Size: 3.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
poetry/1.2.2 CPython/3.8.10 Linux/5.4.0-131-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
467c44075d554b387c52cddf025419c46af4daa74c6d900a057d6ad6fdec5f4d
|
|
| MD5 |
31be54386239318c33e84894ae61d0d5
|
|
| BLAKE2b-256 |
6129b60739c2887f15c025f49c8ad3a08c11d573e81c602586105d6e9316d8cd
|
File details
Details for the file roster-0.1.11-py3-none-any.whl.
File metadata
- Download URL: roster-0.1.11-py3-none-any.whl
- Upload date:
- Size: 3.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
poetry/1.2.2 CPython/3.8.10 Linux/5.4.0-131-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4703c3ff53b694452ff727e7b9e6e74616dd6c2df3b9de5c5dc9151936a315ba
|
|
| MD5 |
6a037d9e2f4992827a402ec41506eb93
|
|
| BLAKE2b-256 |
692adf77b20618387e2a7d3c2f43131a2a899b440969350fda72af29c5aa737c
|