job.seed package

Submodules

job.seed.exceptions module

Defines exceptions that can occur when interacting with a Seed job interface

exception job.seed.exceptions.InvalidSeedManifestDefinition(name, description)

Bases: util.exceptions.ValidationException

Exception indicating that the provided definition of a Seed Manifest was invalid

exception job.seed.exceptions.InvalidSeedMetadataDefinition(name, description)

Bases: util.exceptions.ValidationException

Exception indicating that the provided definition of a Seed Metadata was invalid

job.seed.manifest module

Defines the interface for executing a job

class job.seed.manifest.SeedManifest(definition, do_validate=True)

Bases: object

Represents the interface defined by an algorithm developer to a Seed job

add_output_to_connection(output_name, job_conn, input_name)

Adds the given output from the interface as a new input to the given job connection

Parameters:
  • output_name (str) – The name of the output to add to the connection
  • job_conn (job.data.job_connection.JobConnection) – The job connection
  • input_name (str) – The name of the connection input
add_workspace_to_data(job_data, workspace_id)

Adds the given workspace ID to the given job data for every output in this job interface

Parameters:
get_command()

Gets the command :return: the command :rtype: str

get_description()

Gets the Job description :return: the description :rtype: str

get_dict()

Returns the internal dictionary that represents this job interface

Returns:The internal dictionary
Return type:dict
get_error_mapping()

Returns the error mapping for this manifest

Returns:The error mapping
Return type:job.error.mapping.JobErrorMapping
get_errors()

Get the error mapping defined for the Seed job

Returns:the error codes mapped for job
Return type:list()
get_file_output_names()

Returns the output parameter names for all file outputs

Returns:The file output parameter names
Return type:[string]
get_injected_command_args(values, env_vars)

Gets the command, injecting env_vars and input variables

Parameters:
  • values ({str, str}) – Input values to replace named placeholders in command value
  • env_vars (dict) – Incoming environment variables
Returns:

the command

Return type:

str

get_input_files()

Gets the list of input files defined in the interface

Returns:the input file definitions for job
Return type:list()
get_input_interface()

Returns the input interface for this manifest

Returns:The input interface for this manifest
Return type:data.interface.interface.Interface
get_input_json()

Gets the list of json defined in the interface

Returns:the input json definitions for job
Return type:list()
get_inputs()

Gets the inputs defined in the interface

Returns:the inputs defined for the job
Return type:dict
get_interface()

Gets the interface for the Seed job

Returns:the interface object
Return type:dict
get_job()

Gets the Job object within the Seed manifest

Returns:the Job object
get_job_version()

Gets the Job version :return: the version :rtype: str

get_maintainer()

Gets the maintainer details for the Seed job

Returns:the maintainer details of job
Return type:dict
get_mounts()

Gets the mounts defined the Seed job

Returns:the mounts for a job
Return type:list()
get_name()

Gets the Job name :return: the name :rtype: str

get_output_files()

Gets the list of output files defined in the interface

Commonly used when matching globs to capture output files

Returns:the output file definitions for job
Return type:list()
get_output_interface()

Returns the output interface for this manifest

Returns:The output interface for this manifest
Return type:data.interface.interface.Interface
get_output_json()

Gets the list of output json defined in the interface

Commonly used when matching globs to capture output files

Returns:the output file definitions for job
Return type:list()
get_outputs()

Gets the outputs defined in the interface

Returns:the outputs defined for the job
Return type:dict
get_package_version()

Gets the package version :return: the version :rtype: str

get_scalar_resources()

Gets the scalar resources defined the Seed job

Returns:the scalar resources required by job
Return type:list()
get_seed_input_files()

Get the list of SeedInputFiles typed results

Returns:list of output files elements
Return type:[job.seed.types.SeedInputFiles]
get_seed_output_files()

Get the list of SeedOutputFiles typed results

Returns:list of output files elements
Return type:[job.seed.types.SeedOutputFiles]
get_seed_output_json()

Get the list of SeedOutputJson typed results

Returns:list of output json elements
Return type:[job.seed.types.SeedOutputJson]
get_settings()

Gets the settings for the Seed job

Returns:the settings object
Return type:dict
get_tags()

Gets the Job tags :return: the tags :rtype: [str]

get_timeout()

Gets the Job timeout

Returns:the version
Return type:integer
get_title()

Gets the Job title :return: the title :rtype: str

perform_pre_steps(job_data)

Performs steps prep work before a job can actually be run. This includes downloading input files. This returns the command that should be executed for these parameters. :param job_data: The job data :type job_data: job.data.job_data.JobData

validate_connection(job_conn)

Validates the given job connection to ensure that the connection will provide sufficient data to run a job with this interface

Parameters:job_conn (job.seed.data.job_connection.JobConnection) – The job data
Returns:A list of warnings discovered during validation.
Return type:list[job.data.job_data.ValidationWarning]

:raises job.data.exceptions.InvalidConnection: If there is a configuration problem.

validate_data(job_data)

Ensures that the job_data matches the job_interface description

Parameters:job_data (job.data.job_data.JobData) – The job data
Returns:A list of warnings discovered during validation.
Return type:list[job.data.job_data.ValidationWarning]

:raises job.data.exceptions.InvalidData: If there is a configuration problem.

validate_populated_mounts(exe_configuration)

Ensures that all required mounts are defined in the execution configuration

Parameters:exe_configuration (job.execution.configuration.json.exe_config.ExecutionConfiguration) – The execution configuration
validate_populated_settings(exe_configuration)

Ensures that all required settings are defined in the execution configuration

Parameters:exe_configuration (job.execution.configuration.json.exe_config.ExecutionConfiguration) – The execution configuration
validate_resources()

verifies GPUs are whole numbers

validate_workspace_for_outputs(exe_config)

Validates the given job’s output workspaces :param exe_config: The job configuration

:raises job.configuration.data.exceptions.InvalidConfiguration: If there is a configuration problem.

job.seed.metadata module

Defines the interface for executing a job

class job.seed.metadata.SeedMetadata

Bases: object

Represents the extended metadata for a single file in Seed job.

Object instantiation from existing JSON should be accomplished via the metadata_from json helper. This will safeguard us from having to deal with FeatureCollection and GeometryCollection objects.

data

Retrieves the internal dictionary of GeoJSON

get_property(key, default=None)
static metadata_from_json(metadata, do_validate=True)

Creates a metadata object from the given definition. If the definition is invalid, a job.seed.exceptions.InvalidSeedMetadataDefinition exception will be thrown.

Parameters:
  • metadata (dict) – The metadata definition
  • do_validate (bool) – Whether to perform validation on the JSON schema
Raises:

InvalidSeedMetadataDefinition – If schema validation fails

properties

Retrieves a valid properties dictionary

Returns:Properties found within metadata file
Return type:dict
set_property(key, value)

job.seed.types module

class job.seed.types.SeedFiles(data)

Bases: object

multiple
name
required
class job.seed.types.SeedInputFiles(data)

Bases: job.seed.types.SeedFiles

Concrete class for Seed input files elements

is_media_type_allowed(media_type)

Indicates whether the given media type is allowed by this file description

Parameters:media_type (str) – The media type
Returns:True if the media type is allowed, False otherwise
Return type:bool
media_types
partial
class job.seed.types.SeedInputJson(data)

Bases: job.seed.types.SeedJson

Concrete class for Seed input JSON elements

class job.seed.types.SeedJson(data)

Bases: object

name
python_type

Provides an explicit python type to validate against incoming json types

required
type
class job.seed.types.SeedOutputFiles(data)

Bases: job.seed.types.SeedFiles

Concrete class for Seed output files elements

get_files()

Get a list of absolute paths to files following job execution

Returns:files matched by pattern defined for object
Return type:[str]
Raises:OutputCaptureError
media_type
pattern
class job.seed.types.SeedOutputJson(data)

Bases: job.seed.types.SeedJson

Concrete class for Seed output JSON elements

json_key

Get the preferred key to match in seed.outputs.json for this JSON output

The key member supercedes the name member when specified.

Returns:Key used to capture output JSON
Return type:str
key

Module contents