# Path: pyani/pyani_config.py
# SGE_WAIT = 0.01  # Base unit of time (s) to wait between polling SGE


import os
import time
from typing import Any, Dict, List, Optional
from .pyani_config import SGE_WAIT

        :param name:           String describing the job (uniquely)
        :param command:        String, the valid shell command to run the job
        :param queue:          String, the SGE queue under which the job shall run
        """
        self.name = name  # Unique name for the job
        self.queue = queue  # The SGE queue to run the job under
        self.command = command  # Command line to run for this job
        self.script = command
        self.scriptPath = None  # type: Optional[Any]
        self.dependencies = []  # type: List[Any]
        self.submitted = False  # type: bool
        self.finished = False  # type: int

    def add_dependency(self, job) -> None:
        """Add passed job to the dependency list for this Job.

        :param job:  Job to be added to the Job's dependency list

        This Job should not execute until all dependent jobs are completed.
        """
        self.dependencies.append(job)

    def remove_dependency(self, job) -> None:
        """Remove passed job from this Job's dependency list.

        :param job:     Job to be removed from the Job's dependency list
        """
        self.dependencies.remove(job)


# Path: pyani/pyani_config.py
# SGE_WAIT = 0.01  # Base unit of time (s) to wait between polling SGE


# Path: pyani/pyani_jobs.py
import os
import time
from typing import Any, Dict, List, Optional
from .pyani_config import SGE_WAIT


        :param name:           String describing the job (uniquely)
        :param command:        String, the valid shell command to run the job
        :param queue:          String, the SGE queue under which the job shall run
        """
        self.name = name  # Unique name for the job
        self.queue = queue  # The SGE queue to run the job under
        self.command = command  # Command line to run for this job
        self.script = command
        self.scriptPath = None  # type: Optional[Any]
        self.dependencies = []  # type: List[Any]
        self.submitted = False  # type: bool
        self.finished = False  # type: int

    def add_dependency(self, job) -> None:
        """Add passed job to the dependency list for this Job.

        :param job:  Job to be added to the Job's dependency list

        This Job should not execute until all dependent jobs are completed.
        """
        self.dependencies.append(job)

    def remove_dependency(self, job) -> None:
        """Remove passed job from this Job's dependency list.

        :param job:     Job to be removed from the Job's dependency list
        """
        self.dependencies.remove(job)


    def wait(self, interval: float = SGE_WAIT) -> None: