Skip to main content

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)

Uploaded Source

Built Distribution

roster-0.1.11-py3-none-any.whl (3.9 kB view details)

Uploaded Python 3

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

Hashes for roster-0.1.11.tar.gz
Algorithm Hash digest
SHA256 467c44075d554b387c52cddf025419c46af4daa74c6d900a057d6ad6fdec5f4d
MD5 31be54386239318c33e84894ae61d0d5
BLAKE2b-256 6129b60739c2887f15c025f49c8ad3a08c11d573e81c602586105d6e9316d8cd

See more details on using hashes here.

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

Hashes for roster-0.1.11-py3-none-any.whl
Algorithm Hash digest
SHA256 4703c3ff53b694452ff727e7b9e6e74616dd6c2df3b9de5c5dc9151936a315ba
MD5 6a037d9e2f4992827a402ec41506eb93
BLAKE2b-256 692adf77b20618387e2a7d3c2f43131a2a899b440969350fda72af29c5aa737c

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