ModelJob

datarobot.models.modeljob.wait_for_async_model_creation(project_id, model_job_id, max_wait=600)

Given a Project id and ModelJob id poll for status of process responsible for model creation until model is created.

Parameters:
project_idstr

The identifier of the project

model_job_idstr

The identifier of the ModelJob

max_waitint, optional

Time in seconds after which model creation is considered unsuccessful

Returns:
modelModel

Newly created model

Raises:
AsyncModelCreationError

Raised if status of fetched ModelJob object is error

AsyncTimeoutError

Model wasn’t created in time, specified by max_wait parameter

Return type:

Model

class datarobot.models.ModelJob(data, completed_resource_url=None)

Tracks asynchronous work being done within a project

Attributes:
idint

the id of the job

project_idstr

the id of the project the job belongs to

statusstr

the status of the job - will be one of datarobot.enums.QUEUE_STATUS

job_typestr

what kind of work the job is doing - will be ‘model’ for modeling jobs

is_blockedbool

if true, the job is blocked (cannot be executed) until its dependencies are resolved

sample_pctfloat

the percentage of the project’s dataset used in this modeling job

model_typestr

the model this job builds (e.g. ‘Nystroem Kernel SVM Regressor’)

processeslist of str

the processes used by the model

featurelist_idstr

the id of the featurelist used in this modeling job

blueprintBlueprint

the blueprint used in this modeling job

classmethod from_job(job)

Transforms a generic Job into a ModelJob

Parameters:
job: Job

A generic job representing a ModelJob

Returns:
model_job: ModelJob

A fully populated ModelJob with all the details of the job

Raises:
ValueError:

If the generic Job was not a model job, e.g. job_type != JOB_TYPE.MODEL

Return type:

ModelJob

classmethod get(project_id, model_job_id)

Fetches one ModelJob. If the job finished, raises PendingJobFinished exception.

Parameters:
project_idstr

The identifier of the project the model belongs to

model_job_idstr

The identifier of the model_job

Returns:
model_jobModelJob

The pending ModelJob

Raises:
PendingJobFinished

If the job being queried already finished, and the server is re-routing to the finished model.

AsyncFailureError

Querying this resource gave a status code other than 200 or 303

Return type:

ModelJob

classmethod get_model(project_id, model_job_id)

Fetches a finished model from the job used to create it.

Parameters:
project_idstr

The identifier of the project the model belongs to

model_job_idstr

The identifier of the model_job

Returns:
modelModel

The finished model

Raises:
JobNotFinished

If the job has not finished yet

AsyncFailureError

Querying the model_job in question gave a status code other than 200 or 303

Return type:

Model

cancel()

Cancel this job. If this job has not finished running, it will be removed and canceled.

get_result(params=None)
Parameters:
paramsdict or None

Query parameters to be added to request to get results.

For featureEffects, source param is required to define source,
otherwise the default is `training`
Returns:
resultobject
Return type depends on the job type:
  • for model jobs, a Model is returned

  • for predict jobs, a pandas.DataFrame (with predictions) is returned

  • for featureImpact jobs, a list of dicts by default (see with_metadata parameter of the FeatureImpactJob class and its get() method).

  • for primeRulesets jobs, a list of Rulesets

  • for primeModel jobs, a PrimeModel

  • for primeDownloadValidation jobs, a PrimeFile

  • for predictionExplanationInitialization jobs, a PredictionExplanationsInitialization

  • for predictionExplanations jobs, a PredictionExplanations

  • for featureEffects, a FeatureEffects

Raises:
JobNotFinished

If the job is not finished, the result is not available.

AsyncProcessUnsuccessfulError

If the job errored or was aborted

get_result_when_complete(max_wait=600, params=None)
Parameters:
max_waitint, optional

How long to wait for the job to finish.

paramsdict, optional

Query parameters to be added to request.

Returns:
result: object

Return type is the same as would be returned by Job.get_result.

Raises:
AsyncTimeoutError

If the job does not finish in time

AsyncProcessUnsuccessfulError

If the job errored or was aborted

refresh()

Update this object with the latest job data from the server.

wait_for_completion(max_wait=600)

Waits for job to complete.

Parameters:
max_waitint, optional

How long to wait for the job to finish.

Return type:

None