create perfect singletons
Project description
singleton_meta
Features
- perfect singleton (maybe thread safe!)
- collect all instances
- check correct instantiating singletons in tree project
License
See the LICENSE file for license rights and limitations (MIT).
Release history
See the HISTORY.md file for release history.
Installation
pip install singleton-meta
Import
from singleton_meta import *
GUIDE
See tests and source for other examples.
1. USAGE
from singleton_meta import *
class MySingleton(SingletonByCallMeta):
pass
class MySingleton2(SingletonByCallMeta):
pass
class MySingleton(metaclass=SingletonMetaCallClass):
pass
2. access to created instances
from singleton_meta import *
class Victim1(SingletonByCallMeta):
attr = 1
class Victim2(SingletonByCallMeta):
attr = 2
assert SingletonByCallMeta._SINGLETONS == []
Victim1()
assert SingletonByCallMeta._SINGLETONS == [Victim1(), ]
assert Victim1._SINGLETONS == [Victim1(), ]
assert Victim1()._SINGLETONS == [Victim1(), ]
Victim2()
assert SingletonByCallMeta._SINGLETONS == [Victim1(), Victim2(), ]
3. NOTICE: all your Singletons must be only last classes!
don't use nesting from any Your Singletons!
from singleton_meta import *
class MySingleton(SingletonByCallMeta): # OK
pass
class MySingleton2(MySingleton): # WRONG
pass
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.
Source Distribution
singleton_meta-0.1.0.tar.gz
(4.9 kB
view hashes)
Built Distribution
Close
Hashes for singleton_meta-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f79b5313024bda9abe217672fbee0190098f7cb96e292e087ae2be6bb3b32cb |
|
MD5 | 60dbbc39732cc3b2a4d86a3f038389c8 |
|
BLAKE2b-256 | a25086b23f9786c8a8a2dd940d45e0d2f0ad85b25c26518b1907d47c4601fe03 |