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
-
SEPMaths
For mathematical operations, helper functions, and classes.
-
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.
-
TeX
-
SEPTeX
Provides a Python wrapper API for constructing LaTeX documents in code.
-
-
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.
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.Monoid({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
File details
Details for the file SEPModules-0.1.2.tar.gz
.
File metadata
- Download URL: SEPModules-0.1.2.tar.gz
- Upload date:
- Size: 57.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb38be81bdffe8bb5598f4cd901c53072a80ca4e96740eb67bf012aeae89c172 |
|
MD5 | 0ba587f95ddd6b92834e8bb6e97a43ec |
|
BLAKE2b-256 | e873ecbf80a385496d1f1cfc66626ecb445003a2c33bd42f2aba8db87b2ad9e9 |
File details
Details for the file SEPModules-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: SEPModules-0.1.2-py3-none-any.whl
- Upload date:
- Size: 61.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8855d0e1f8d147119712a82643c3a45d819614a920db47c655b38dfddbfa665 |
|
MD5 | 5ae6026361bc0c54d7bb229849587c08 |
|
BLAKE2b-256 | 0d20615fe52680d49a2b7fe9a2c5f1f34b67f81f2799bc9219e460004b2a2903 |