Skip to main content

Metaclass Singleton Pattern (supports Multi-thread).

Project description

Python PyPi License Build Coverage

Description

Singleton is a creational design pattern that lets you ensure that a class has only one instance, while providing a global access point to this instance. This implementation of Singleton Design Pattern is based on metaclass method.

  • Free software: MIT license

  • But I would appreciate a star on GitHub

Multithreaded

This method provide proper handling for multi-thread environment by closing public threading lock while creating instance of Singleton subclass.

Installation

Just use (No other package is needed):

$ pip install pattern-singleton

Example Usage

from pattern_singleton import Singleton


class Example(metaclass=Singleton):
    def __init__(self):
        self.variable = 1


if __name__ == '__main__':
    example_01 = Example()
    example_02 = Example()

    print(example_01.variable)  # displays 1
    print(example_02.variable)  # displays 1

    example_01.variable = 2     # changes value for every instance of Example class

    print(example_01.variable)  # displays 2
    print(example_02.variable)  # displays 2

Credits

This package was created by Marcin Mysliwiec with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

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

pattern_singleton-1.2.0.tar.gz (10.7 kB view details)

Uploaded Source

File details

Details for the file pattern_singleton-1.2.0.tar.gz.

File metadata

  • Download URL: pattern_singleton-1.2.0.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5

File hashes

Hashes for pattern_singleton-1.2.0.tar.gz
Algorithm Hash digest
SHA256 d3ee5b5885fd0ac0dbfc16abda31e36e10e180797c44fcb32c7b8347a227d75c
MD5 41d20e8ac8de1f755bb017a7428cf7c4
BLAKE2b-256 5c521531bd435ddba56d996a5c706184ef93eecfc6318ef0a069a9ecf5ef1b73

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