SEPModules provides a handful of modules to aid in speeding up the production of small or medium-sized scripts.
Project description
SEPModules
Python package providing basic modules and functionality for various common tasks.
The package is of the following structure:
-
maths
-
SEPLogic
Provides classes and functions for performing zeroth order logic operations and interfacing with external solvers.
-
SEPQBF
Provides classes and functions extending
SEPLogic
for performing QBF operations.-
SEPAlgebra
Provides classes and functions for performing computations on algebraic structures.
-
-
SEPPrinting
Provides easy and quick implementations of console UI elements like graphs, progress bars, and colored console printing.
-
SEPLogger
Provides logging functionality interfacing with the color printing features of SEPPrinting.
-
SEPIO
Aids in IO tasks such as reading console line arguments and parameters.
-
SEPDecorators
Contains miscellaneous function decorators and decorator utilities.
-
SEPUtils
Contains various utilities and custom python constructions.
Exmaple usages
SEPIO.ConsoleArguments
from SEPModules import SEPIO
# Pretend that the arguments "-h --verbosity 2" were passed to script
# for this example usage. In normal use 'sys.argv' would be automatically
# populated when the python script was started from the command line.
import sys
sys.argv = ["this_script_name", "-h", "--verbosity", "2"]
# instantiate object to hold arguments passed to this script
console_manager = SEPIO.ConsoleArguments(["h"], ["help", "verbosity="])
# print help message
if "h" in console_manager or "help" in console_manager:
print("This is a help message... very helpful information goes here")
This is a help message... very helpful information goes here
# set a verbosity value based on what was passed after "--verbosity"
verbosity = 0 # default
if "verbosity" in console_manager:
passed_verbosity = console_manager["verbosity"]
# check if input is legal number
if passed_verbosity not in ["0", "1", "2"]:
print(f"'{passed_verbosity}' is not a valid verbosity value")
sys.exit(1)
verbosity = int(passed_verbosity) # get passed value
print(f"Verbosity was succesfully set to {verbosity}!")
Verbosity was succesfully set to 2!
SEPAlgebra
from maths import SEPAlgebra
# create an algebraic structure and check if it is valid, i.e. closed
binary_and = SEPAlgebra.AlgebraicStructure({0, 1}, int.__mul__)
# this is a valid structure because it is closed
# bool(x) should amount to x.is_valid for all classes inheriting from AlgebraicStructure
print(f"is valid: {binary_and.is_valid()} \nbool alternative: {bool(binary_and)}")
is valid: True
bool alternative: True
# this structure is also commutative but since this is a general structure
# this function will return a list of boolean values for every operator
print(f"is commutative: {binary_and.is_commutative()}")
is commutative: [True]
# since it is commutative we might want to model it as monoid,
# which only takes one operator
binary_and = SEPAlgebra.Semigroup({0, 1}, int.__mul__)
# this structure is still commutative but now the return value is simply one boolean
print(f"is commutative monoid: {binary_and.is_commutative()}")
is commutative monoid: True
# since a monoid needs to be a valid algebraic structure and commutative,
# we can also check if it is valid and expect this to be true
print(f"is a valid monoid: {binary_and.is_valid()}")
is a valid monoid: True
# but 0 does not have an inverse in this structure so
# the singleton 'NoElement' will be returned
print(f"inverse for 0: {binary_and.find_inverses(0)}")
inverse for 0: NoElement
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
Built Distribution
Hashes for SEPModules-2.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7410db97227063fea363145557adee0d998fe61569c7a9eba13a9349691f3ad0 |
|
MD5 | 2e803005e715010a3091dff2f4acc106 |
|
BLAKE2b-256 | de3b5e063421c32e21027d0903756cb8b6a4409a17de971236996062ebfcd68f |