Python object registers. Keep track of your classes, functions and data.
Project description
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'}
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
roster-0.1.11.tar.gz
(3.5 kB
view details)
Built Distribution
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 |