1
Watch
1
Star
0
Fork
19
Issue

pyTooling is a collection of arbitrary useful classes, decorators, meta-classes and exceptions.

pyTooling
pyTooling
pushedAt 4 days ago

pyTooling/pyTooling

Sourcecode on GitHub Sourcecode License Documentation Documentation License
PyPI PyPI - Status PyPI - Python Version
GitHub Workflow - Build and Test Status Libraries.io status for latest release Codacy - Quality Codacy - Coverage Codecov - Branch Coverage

pyTooling

pyTooling is a powerful collection of arbitrary useful classes, decorators, meta-classes and exceptions. It's useful for any Python-base project independent if it's a library, framework or CLI tool.

Introduction

TODO

Package Details

Common Classes

Data Structures

Decorators

Exceptions

Meta-Classes

  • Overloading
    Overloading allows method overloading in Python classes. It dispatches method calls based on method signatures (type annotations).
  • Singleton
    → A class created from meta-class Singleton allows only a single instance to exist. If a further instance is tried to be created, a cached instance will be returned.
  • SlottedType
    → All type-annotated fields in a class get stored in a slot rather than in __dict__. This improves the memory footprint as well as the field access performance of all class instances. The behavior is automatically inherited to all derived classes.

Packaging

tbd

Examples

@export Decorator

from pyTooling.Decorators import export

@export
class MyClass:
  pass

CallByRefIntParam

from pyTooling.CallByRef import CallByRefIntParam

# define a call-by-reference parameter for integer values
myInt = CallByRefIntParam(3)

# a function using a call-by-reference parameter
def func(param: CallByRefIntParam):
  param <<= param * 4

# call the function and pass the wrapper object
func(myInt)

print(myInt.Value)

Contributors

License

This Python package (source code) licensed under Apache License 2.0.
The accompanying documentation is licensed under Creative Commons - Attribution 4.0 (CC-BY 4.0).


SPDX-License-Identifier: Apache-2.0

ucloud ads