backtrader.mixins.singleton module

Singleton Mixin Module - Singleton pattern implementation.

This module provides the SingletonMixin class for implementing the singleton pattern without using metaclasses. This is part of the metaprogramming removal effort in backtrader.

Classes:

SingletonMixin: Mixin class that implements the singleton pattern. ParameterizedSingletonMixin: Singleton mixin with parameter support. StoreBase: Base class for store singletons.

示例

Creating a singleton class: >>> class MyClass(SingletonMixin): ... pass >>> a = MyClass() >>> b = MyClass() >>> assert a is b # True - same instance

class backtrader.mixins.singleton.SingletonMixin[源代码]

基类:object

Mixin class to implement singleton pattern using __new__ method.

This replaces the MetaSingleton metaclass pattern, providing the same functionality without using metaclasses. Each class that inherits from this mixin will maintain exactly one instance per class.

Thread-safe implementation using threading.Lock.

Features: - Thread-safe singleton creation - Per-class singleton instances (subclasses get their own instances) - Automatic cleanup when instances are garbage collected - Maintains compatibility with existing parameter systems

static __new__(cls, *args, **kwargs)[源代码]

Create or return existing singleton instance for the class.

class backtrader.mixins.singleton.ParameterizedSingletonMixin[源代码]

基类:SingletonMixin

Enhanced singleton mixin that integrates with parameter systems.

This version is specifically designed to work with backtrader's parameter system, maintaining compatibility with MetaParams functionality.

__init__(*args, **kwargs)[源代码]

Initialize singleton instance only once.

backtrader.mixins.singleton.StoreBase

ParameterizedSingletonMixin 的别名