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.30.tar.gz (6.1 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.30-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ecida-0.0.30.tar.gz
  • Upload date:
  • Size: 6.1 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.30.tar.gz
Algorithm Hash digest
SHA256 21746aefd785d97a05e9cfedbdb15bc72e081486f1883470ba08e17f3bbedc40
MD5 4b6affa389622b8248c9d15f464f3e3c
BLAKE2b-256 5e7be75767138747057e06a56894fa0bcfacfab23ad53d0e702d198444119ab9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ecida-0.0.30-py3-none-any.whl
  • Upload date:
  • Size: 5.5 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.30-py3-none-any.whl
Algorithm Hash digest
SHA256 2d993d2a82e1a542dd46e8c4da6ea5a2a2b9c1371df66cfc250fcd0294bd2036
MD5 5827ce35dc8975028ce325c7265e12f7
BLAKE2b-256 f392bbb78f5c9a073eb50a5ce90cd6400c05040969822044277330611d553854

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