Skip to main content

SEPModules provides a handful of modules to aid in speeding up the production of small or medium-sized scripts.

Project description

SEPModules

Publish to PyPI | Documentation

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

SEPModules-2.1.1.tar.gz (53.8 kB view details)

Uploaded Source

Built Distribution

SEPModules-2.1.1-py3-none-any.whl (58.5 kB view details)

Uploaded Python 3

File details

Details for the file SEPModules-2.1.1.tar.gz.

File metadata

  • Download URL: SEPModules-2.1.1.tar.gz
  • Upload date:
  • Size: 53.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.11

File hashes

Hashes for SEPModules-2.1.1.tar.gz
Algorithm Hash digest
SHA256 f233903f0fdf1eca0ef98421ad601ad4c71d6038d6a95c1574f64f96cfdd4b72
MD5 f4ded61210b10b5e0deb3395b728d735
BLAKE2b-256 eacaef1585ec1c523ede8ec23d036eee03f03b24668843fd9d6797a6e0a913c1

See more details on using hashes here.

File details

Details for the file SEPModules-2.1.1-py3-none-any.whl.

File metadata

  • Download URL: SEPModules-2.1.1-py3-none-any.whl
  • Upload date:
  • Size: 58.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.11

File hashes

Hashes for SEPModules-2.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 082e4b15e8add5ae15cbe3b4e8ee516f67447ea49b675098a2164b3b9a2a1b39
MD5 5a402b3f6a8805ff6119de3dc0962e5b
BLAKE2b-256 ce95ec44ea4e590e1ac80fca747fa6db8f260dea35167d4457b856aeb3bf1c63

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