Skip to main content

Automatically log all new subclasses of a specified base class.

Project description

Documentation Status

Motivation

This library implements a simple clas decorator that you can apply to a base class. This decorator then hooks into the way the decorated class is subclassed, adding all new subclasses to a dictionary whose keys are class names and values are the classes themselves.

The motivation for this project was to autogenerate deep learning models from pure JSON files, thus ensuring reproducibility of the results. I do, however, think that it is ideal for any kind of codebase where we want to generate safe code from configuration files.

Installation instructions

The subclass register can be installed with pip:

pip install subclass-register

by cloning this repo and running setup.py

git clone https:\\github.com\yngvem\subclass-register
cd subclass-register
python setup.py

or by simply downloading the src\subclass_register\subclass_register.py file and the LISENCE file into your project.

Example

Here is a basic example of how to use the subclass register.

from subclass_register import SubclassRegister


register = SubclassRegister('car')

@register.link_base
class BaseCar:
    pass

class SUV(BaseCar):
    def __init__(self, horse_powers):
        self.horse_powers = horse_powers

suv = register['SUV'](horse_powers = 50)

You can read more examples at the documentation page.

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

subclass-register-1.0.1.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

subclass_register-1.0.1-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file subclass-register-1.0.1.tar.gz.

File metadata

  • Download URL: subclass-register-1.0.1.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3

File hashes

Hashes for subclass-register-1.0.1.tar.gz
Algorithm Hash digest
SHA256 2a2d8634edcd1e566b746d29b8eb82cdefec29b19b0b5185748fa69605973f75
MD5 7672fbd112d002d2af8657d5d0831266
BLAKE2b-256 8d812b5c946b79df13e9da709d78259184ffc5c96d8140a4bbf8f40ece712bb9

See more details on using hashes here.

File details

Details for the file subclass_register-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: subclass_register-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3

File hashes

Hashes for subclass_register-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1515d0275ebb2c4c52956d2bc2519afe80267e87248cf20ba2ff7565fc5d081a
MD5 94fea33704847d2b27933b771fd3eb98
BLAKE2b-256 5dff823416d8410809918286ae0e728d73b7348800e740b9acfdaf7a10b03d00

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page