Project jobs#
Project jobs can be loaded, edited, and executed. A job execution requires Scade One to be installed as it uses the JobLauncher executable from Scade One tools.
Every Job
is represented by the following parameters:
Attribute |
Type |
---|---|
version |
str |
kind |
JobType |
properties |
JobProperties |
input_paths |
list[str] |
Parameters of JobProperties
depend on the Job
type (code generation, simulation or test execution):
Attribute |
Type |
CodeGen |
Simulation |
TestExec |
---|---|---|---|---|
root_declarations |
list |
x |
x |
x |
name |
str |
x |
x |
x |
custom_arguments |
str |
x |
x |
x |
expansion |
enum* |
x |
||
expansion_exp |
str |
x |
||
expansion_no_exp |
str |
x |
||
short_circuit_operators |
bool |
x |
||
name_length |
int |
x |
||
significance_length |
int |
x |
||
keep_assume |
str |
x |
||
globals_prefix |
str |
x |
||
use_macros |
bool |
x |
||
static_locals |
bool |
x |
||
file_scenario |
str |
x |
||
simulation_input_type |
str |
x |
||
test_harness |
str |
x |
x |
|
test_result_file |
str |
x |
||
use_cycle_time |
bool |
x |
||
cycle_time |
int |
x |
*`Expansion` is an attribute that can only have specific values: see ExpansionMode
from ansys.scadeone.core.job import JobLauncher, Job, JobType
s_one_install = "C:/Scade One"
app = ScadeOne(install_dir=s_one_install)
project = app.load_project(sproj_path)
# Get all the jobs of a project or get a specific job from its name
jobs = project.load_jobs()
job = project.get_job("TestExecutionJob0")
# Edit the job, save and execute it
job.input_paths = ["assets/testEnumsModule.swant"]
job.properties.test_harness = "testEnumsModule::harness_Operator2forEnums"
job.properties.use_cycle_time = True
job.cycle_time = 25 # .properties is not necessary
job.save()
result = job.run()
if result.code == 0:
print("Execution successful!")
else:
print(f"Execution failed. Error: {result.message})
- class ansys.scadeone.core.job.JobStatus(value)#
Bases:
Enum
Exit codes for a job execution
- Success = 0#
Success
- MissingParameters = 1#
Missing parameters
- LoadIssue = 2#
Load issue
- NotExistingProject = 3#
Not existing project
- JobNotFound = 4#
Job not found
- JobFailure = 5#
Job failure
- JobNameDuplicate = 6#
Job name duplicate
- InternalError = 7#
Internal error
- NotExecutedYet = 8#
Not executed yet
- class ansys.scadeone.core.job.JobResult(code: int, message: str | None = None)#
Bases:
object
Results from the execution of a job
- class ansys.scadeone.core.job.ExpansionMode(value)#
Bases:
Enum
Possible values for Expansion field in code generation job properties
- NONE = 1#
None
- ALL = 2#
All
- EXPAND = 3#
Expand
- NOEXPAND = 4#
NoExpand
- static str_to_expansion(str_exp: str | None) ExpansionMode #
Get Expansion value from sjob file content
- class ansys.scadeone.core.job.JobType(value)#
Bases:
Enum
Job types
- CODEGEN = 1#
Code Generation type job
- SIMU = 2#
Simulation type job
- TESTEXEC = 3#
Test Execution type job
- class ansys.scadeone.core.job.Job(name: str, kind: JobType, sproj: IProject, input_paths: list[str] | None = None, storage: JobStorage | None = None)#
Bases:
ABC
Abstract class for jobs. Must be instantiated from one of its 3 derivated classes. Each of them uses its corresponding Properties parameters and kind.
- property storage: JobStorage#
Job storage
- abstract property properties: JobProperties#
Properties parameter. Its subtype depends on the Job kind, JobProperties is an abstract class.
- save() _JobData #
Save the Job parameters into .sjob file. Create a new folder for a new Job.
- class ansys.scadeone.core.job.CodeGenerationJob(name: str, sproj: IProject, data: dict | None = None, storage: JobStorage | None = None)#
Bases:
Job
Job of Code Generation kind
- property properties: CodeGenerationJobProperties#
Code generation job properties
- save() _JobData #
Save the Job parameters into .sjob file. Create a new folder for a new Job.
- property storage: JobStorage#
Job storage
- class ansys.scadeone.core.job.SimulationJob(name: str, sproj: IProject, data: dict | None = None, storage: JobStorage | None = None)#
Bases:
Job
Job of Simulation kind
- property properties: SimulationJobProperties#
Simulation job properties
- save() _JobData #
Save the Job parameters into .sjob file. Create a new folder for a new Job.
- property storage: JobStorage#
Job storage
- class ansys.scadeone.core.job.TestExecutionJob(name: str, sproj: IProject, data: dict | None = None, storage: JobStorage | None = None)#
Bases:
Job
Job of Test Execution kind
- property properties: TextExecutionJobProperties#
Test execution job properties
- save() _JobData #
Save the Job parameters into .sjob file. Create a new folder for a new Job.
- property storage: JobStorage#
Job storage
- class ansys.scadeone.core.job.JobProperties(name: str, prop: dict)#
Bases:
ABC
Abstract class for job properties, cannot be instantiated. Its derived class depends on the kind of Job. The parameters presented here can be found in all 3 kinds of Jobs properties.
- class ansys.scadeone.core.job.CodeGenerationJobProperties(name: str, prop: dict | None = None)#
Bases:
JobProperties
Properties of Code Generation kind Jobs. Parameters presented here are unique to Code Generation.
- property expansion: ExpansionMode#
Expansion property
- class ansys.scadeone.core.job.SimulationJobProperties(name: str, prop: dict | None = None)#
Bases:
JobProperties
Properties of Simulation kind Jobs. Parameters presented here are unique to Simulation.
- class ansys.scadeone.core.job.TextExecutionJobProperties(name: str, prop: dict | None = None)#
Bases:
JobProperties
Properties of Test Execution kind Jobs. Parameters presented here are unique to Test Execution.