Automatically log all new subclasses of a specified base class.
Project description
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)
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.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size subclass_register-1.0.0-py3-none-any.whl (5.3 kB) | File type Wheel | Python version py3 | Upload date | Hashes View |
Filename, size subclass-register-1.0.0.tar.gz (3.9 kB) | File type Source | Python version None | Upload date | Hashes View |
Hashes for subclass_register-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 693d4a86c016f519c207dde2ad222a732691f8e7c5748afd2e89b467fbf34fdd |
|
MD5 | a6ef55351cce3c1a46f2104c19a4acaf |
|
BLAKE2-256 | 52608ca3c22466c65fa83c194cc422c3f15d1333d885f71cd7cb90293e445841 |