Skip to main content

The ECiDA Python SDK to make things easier.

Project description

ECIDA

The EcidaModule package is a Python module designed to facilitate deployment and communication between components in a distributed system. This package provides various functionalities including Kafka message handling, environment variable checking, and directory management.

How to Use

  1. Importing the package

    To use the EcidaModule in your Python program, first, you will need to import the EcidaModule class from the package:

    from Ecida import EcidaModule
    
  2. Create an ECiDA Module

    Define a module with this signature

    def create_module() -> EcidaModule:
        M = EcidaModule("MODULE_NAME", "MODULE_VERSION")
        # ADD MODULE INPUTS/OUTPUTS HERE
        ...
    return M
    
  3. Add inputs and outputs

    Use the following syntax for adding input and output to module. You can add as many I/O as required.

    # ADD STREAMING INPUT WITH 
    M.add_input("INPUT_NAME", "string")
    # ADD STREAMING OUTPUT 
    M.add_output("OUTPUT_NAME", "string")
    # ADD INPUT DIRECTORY FOR FILE USE 
    M.add_input_directory("INPUT_DIRECTORY_NAME")
    # ADD OUTPUT DIRECTORY FOR FILE USE 
    M.add_output_directory("OUTPUT_DIRECTORY_NAME")
    # ADD INPUT DIRECTORY PRELOADING FROM GIT FOR FILE USE
    M.add_input_from_git("INPUT_DIRECTORY_NAME", "GIT_REPOSITORY", "DIRECTORY/PATH/IN/GIT")
    
  4. Entry Point

    Use the following boiler-plate as the entry-point to your code.

    if __name__ == "__main__":
        M = create_module()
        M.initialize()
        main(M)
    

    and for the main function use the following signature:

    def main(M: EcidaModule):    
        #YOUR LOGIC COMES HERE
    

Example python file

An example template for the modules.

from Ecida import EcidaModule

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)


def create_module() -> EcidaModule:
    M = EcidaModule("MODULE_NAME", "MODULE_VERSION")
    # ADD MODULE INPUTS/OUTPUTS HERE

    return M

def main(M: EcidaModule):    
    print(f"START MODULE {M.name}:{M.version}")
    # LOGIC COMES HERE
      


if __name__ == "__main__":
    M = create_module()
    M.initialize()
    main(M)

NOTES

A python file can contain no more than one one module, since the module creation happens through using create_module() function with exact same signature.

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

ecida-0.0.33.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ecida-0.0.33-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file ecida-0.0.33.tar.gz.

File metadata

  • Download URL: ecida-0.0.33.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for ecida-0.0.33.tar.gz
Algorithm Hash digest
SHA256 1d4a631ffd5252ab49a7096edaae9e8314a47d3f12fe90d65b543c8d2a318c1e
MD5 fefd97a938c90538d43cf14b921c36bd
BLAKE2b-256 9608753c6061a3d8007a3306bbe25c9608bf1317e4279114fcc46bf72b1d7b09

See more details on using hashes here.

File details

Details for the file ecida-0.0.33-py3-none-any.whl.

File metadata

  • Download URL: ecida-0.0.33-py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for ecida-0.0.33-py3-none-any.whl
Algorithm Hash digest
SHA256 298505e279f74827717cb650080de8b527c8653b0e613b6363d0663afddf95c3
MD5 99dcd5995dab01b675075d1f6c2a3319
BLAKE2b-256 97ec7d0e3dffe9f14c99d70ed1663e8b44945f470582935149e53a787de73a66

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page