Manifest Module¶
This section documents the manifest components of the Nextmv Cloud API.
manifest
¶
Module with the logic for handling an app manifest.
This module provides classes and functions for managing Nextmv app manifests. Manifest files (app.yaml) define how an application is built, run, and deployed on the Nextmv Cloud platform.
CLASS | DESCRIPTION |
---|---|
ManifestType |
Enum for application types based on programming language. |
ManifestRuntime |
Enum for runtime environments where apps run on Nextmv Cloud. |
ManifestBuild |
Class for build-specific attributes in the manifest. |
ManifestPythonModel |
Class for model-specific instructions for Python apps. |
ManifestPython |
Class for Python-specific instructions in the manifest. |
ManifestOptionUI |
Class for UI attributes of options in the manifest. |
ManifestOption |
Class representing an option for the decision model in the manifest. |
ManifestOptions |
Class containing a list of options for the decision model. |
ManifestValidation |
Class for validation rules for options in the manifest. |
ManifestConfiguration |
Class for configuration settings for the decision model. |
Manifest |
Main class representing an app manifest for Nextmv Cloud. |
Constants
FILE_NAME Name of the app manifest file.
MANIFEST_FILE_NAME
module-attribute
¶
Manifest
¶
Bases: BaseModel
Represents an app manifest (app.yaml
) for Nextmv Cloud.
You can import the Manifest
class directly from cloud
:
An application that runs on the Nextmv Platform must contain a file named
app.yaml
which is known as the app manifest. This file is used to specify
the execution environment for the app.
This class represents the app manifest and allows you to load it from a file or create it programmatically.
PARAMETER | DESCRIPTION |
---|---|
|
The files to include (or exclude) in the app. This is mandatory.
TYPE:
|
|
The runtime to use for the app, it provides the environment in which the app runs. This is mandatory.
TYPE:
|
|
Type of application, based on the programming language. This is mandatory.
TYPE:
|
|
Build-specific attributes. The
TYPE:
|
|
A command to run before the app is pushed to the Nextmv Cloud.
This command can be used to compile a binary, run tests or similar tasks.
One difference with what is specified under build, is that the command
will be executed via the shell (i.e.,
TYPE:
|
|
Only for Python apps. Contains further Python-specific attributes.
TYPE:
|
|
A list of options for the decision model. An option is a parameter that configures the decision model.
TYPE:
|
Examples:
>>> from nextmv.cloud import Manifest, ManifestRuntime, ManifestType
>>> manifest = Manifest(
... files=["main.py", "model_logic/"],
... runtime=ManifestRuntime.PYTHON,
... type=ManifestType.PYTHON,
... )
>>> manifest.files
['main.py', 'model_logic/']
build
class-attribute
instance-attribute
¶
build: Optional[ManifestBuild] = None
Build-specific attributes.
The build.command
to run to build the app. This command will be executed
without a shell, i.e., directly. The command must exit with a status of 0
to continue the push process of the app to Nextmv Cloud. This command is
executed prior to the pre-push command. The build.environment
is used to
set environment variables when running the build command given as key-value
pairs.
configuration
class-attribute
instance-attribute
¶
configuration: Optional[ManifestConfiguration] = None
Configuration for the decision model. A list of options for the decision model. An option is a parameter that configures the decision model.
extract_options
¶
Convert the manifest options to a nextmv.Options
object.
If the manifest does not have valid options defined in
.configuration.options.items
, this method returns None
.
RETURNS | DESCRIPTION |
---|---|
Optional[Options]
|
The options extracted from the manifest. If no options are found,
|
Examples:
>>> from nextmv.cloud import Manifest, ManifestConfiguration, ManifestOptions, ManifestOption
>>> manifest = Manifest(
... files=["main.py"],
... configuration=ManifestConfiguration(
... options=ManifestOptions(
... items=[
... ManifestOption(name="duration", option_type="string", default="10s")
... ]
... )
... )
... )
>>> sdk_options = manifest.extract_options()
>>> sdk_options.get_option("duration").default
'10s'
>>> empty_manifest = Manifest(files=["main.py"])
>>> empty_manifest.extract_options() is None
True
Source code in nextmv/nextmv/cloud/manifest.py
files
instance-attribute
¶
The files to include (or exclude) in the app. This is mandatory.
from_model_configuration
classmethod
¶
from_model_configuration(
model_configuration: ModelConfiguration,
) -> Manifest
Create a Python manifest from a nextmv.model.ModelConfiguration
.
Note that the ModelConfiguration
is almost always used in
conjunction with the nextmv.Model
class. If you are not
implementing an instance of nextmv.Model
, consider using the
from_options
method instead to initialize the manifest with the
options of the model.
The resulting manifest will have:
files
set to["main.py", f"{model_configuration.name}/**"]
runtime
set toManifestRuntime.PYTHON
type
set toManifestType.PYTHON
python.pip_requirements
set to the default requirements file name.python.model.name
set tomodel_configuration.name
.python.model.options
populated frommodel_configuration.options
.configuration.options
populated frommodel_configuration.options
.
PARAMETER | DESCRIPTION |
---|---|
|
The model configuration.
TYPE:
|
RETURNS | DESCRIPTION |
---|---|
Manifest
|
The Python manifest. |
Examples:
>>> from nextmv.model import ModelConfiguration, Options, Option
>>> from nextmv.cloud import Manifest
>>> opts = Options(Option(name="vehicle_count", option_type=int, default=5))
>>> mc = ModelConfiguration(name="vehicle_router", options=opts)
>>> manifest = Manifest.from_model_configuration(mc)
>>> manifest.python.model.name
'vehicle_router'
>>> manifest.files
['main.py', 'vehicle_router/**']
>>> manifest.configuration.options.items[0].name
'vehicle_count'
Source code in nextmv/nextmv/cloud/manifest.py
1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 |
|
from_options
classmethod
¶
from_options(
options: Options, validation: OptionsEnforcement = None
) -> Manifest
Create a basic Python manifest from nextmv.options.Options
.
If you have more files than just a main.py
, make sure you modify
the .files
attribute of the resulting manifest. This method assumes
that requirements are specified in a requirements.txt
file. You may
also specify a different requirements file once you instantiate the
manifest.
The resulting manifest will have:
- files
set to ["main.py"]
- runtime
set to ManifestRuntime.PYTHON
- type
set to ManifestType.PYTHON
- python.pip_requirements
set to "requirements.txt"
.
- configuration.options
populated from the provided options
.
PARAMETER | DESCRIPTION |
---|---|
|
The options to include in the manifest.
TYPE:
|
|
The validation rules for the options. This is used to set the
TYPE:
|
RETURNS | DESCRIPTION |
---|---|
Manifest
|
The manifest with the given options. |
Examples:
>>> from nextmv.options import Options, Option
>>> from nextmv.cloud import Manifest
>>> opts = Options(
... Option(name="max_runtime", option_type=str, default="60s"),
... Option(name="use_heuristic", option_type=bool, default=True)
... )
>>> manifest = Manifest.from_options(opts)
>>> manifest.files
['main.py']
>>> manifest.python.pip_requirements
'requirements.txt'
>>> len(manifest.configuration.options.items)
2
>>> manifest.configuration.options.items[0].name
'max_runtime'
Source code in nextmv/nextmv/cloud/manifest.py
1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 |
|
from_yaml
classmethod
¶
Load a manifest from a YAML file.
The YAML file is expected to be named app.yaml
and located in the
specified directory.
PARAMETER | DESCRIPTION |
---|---|
|
Path to the directory containing the
TYPE:
|
RETURNS | DESCRIPTION |
---|---|
Manifest
|
The loaded manifest. |
RAISES | DESCRIPTION |
---|---|
FileNotFoundError
|
If the |
YAMLError
|
If there is an error parsing the YAML file. |
Examples:
Assuming an app.yaml
file exists in ./my_app_dir
:
# ./my_app_dir/app.yaml
files:
- main.py
runtime: ghcr.io/nextmv-io/runtime/python:3.11
type: python
>>> from nextmv.cloud import Manifest
>>> # manifest = Manifest.from_yaml("./my_app_dir") # This would be run
>>> # assert manifest.type == "python"
Source code in nextmv/nextmv/cloud/manifest.py
pre_push
class-attribute
instance-attribute
¶
pre_push: Optional[str] = Field(
serialization_alias="pre-push",
validation_alias=AliasChoices("pre-push", "pre_push"),
default=None,
)
A command to run before the app is pushed to the Nextmv Cloud.
This command can be used to compile a binary, run tests or similar tasks.
One difference with what is specified under build, is that the command will
be executed via the shell (i.e., bash -c
on Linux & macOS or cmd /c
on
Windows). The command must exit with a status of 0 to continue the push
process. This command is executed just before the app gets bundled and
pushed (after the build command).
python
class-attribute
instance-attribute
¶
python: Optional[ManifestPython] = None
Python-specific attributes. Only for Python apps. Contains further Python-specific attributes.
runtime
class-attribute
instance-attribute
¶
runtime: ManifestRuntime = PYTHON
The runtime to use for the app. It provides the environment in which the app runs. This is mandatory.
to_yaml
¶
to_yaml(dirpath: str) -> None
Write the manifest to a YAML file.
The manifest will be written to a file named app.yaml
in the
specified directory.
PARAMETER | DESCRIPTION |
---|---|
|
Path to the directory where the
TYPE:
|
RAISES | DESCRIPTION |
---|---|
IOError
|
If there is an error writing the file. |
YAMLError
|
If there is an error serializing the manifest to YAML. |
Examples:
>>> from nextmv.cloud import Manifest
>>> manifest = Manifest(files=["solver.py"], type="python")
>>> # manifest.to_yaml("./output_dir") # This would create ./output_dir/app.yaml
Source code in nextmv/nextmv/cloud/manifest.py
type
class-attribute
instance-attribute
¶
type: ManifestType = PYTHON
Type of application, based on the programming language. This is mandatory.
ManifestBuild
¶
Bases: BaseModel
Build-specific attributes.
You can import the ManifestBuild
class directly from cloud
:
PARAMETER | DESCRIPTION |
---|---|
|
The command to run to build the app. This command will be executed without a shell, i.e., directly. The command must exit with a status of 0 to continue the push process of the app to Nextmv Cloud. This command is executed prior to the pre-push command.
TYPE:
|
|
Environment variables to set when running the build command given as key-value pairs.
TYPE:
|
Examples:
>>> from nextmv.cloud import ManifestBuild
>>> build_config = ManifestBuild(
... command="make build",
... environment={"DEBUG": "true"}
... )
>>> build_config.command
'make build'
command
class-attribute
instance-attribute
¶
The command to run to build the app.
This command will be executed without a shell, i.e., directly. The command must exit with a status of 0 to continue the push process of the app to Nextmv Cloud. This command is executed prior to the pre-push command.
environment
class-attribute
instance-attribute
¶
Environment variables to set when running the build command.
Given as key-value pairs.
environment_to_dict
¶
Convert the environment variables to a dictionary.
RETURNS | DESCRIPTION |
---|---|
dict[str, str]
|
The environment variables as a dictionary of string key-value pairs. Returns an empty dictionary if no environment variables are set. |
Examples:
>>> from nextmv.cloud import ManifestBuild
>>> build_config = ManifestBuild(environment={"COUNT": 1, "NAME": "test"})
>>> build_config.environment_to_dict()
{'COUNT': '1', 'NAME': 'test'}
>>> build_config_empty = ManifestBuild()
>>> build_config_empty.environment_to_dict()
{}
Source code in nextmv/nextmv/cloud/manifest.py
ManifestConfiguration
¶
Bases: BaseModel
Configuration for the decision model.
You can import the ManifestConfiguration
class directly from cloud
:
PARAMETER | DESCRIPTION |
---|---|
|
Options for the decision model.
TYPE:
|
Examples:
>>> from nextmv.cloud import ManifestConfiguration, ManifestOptions, ManifestOption
>>> model_config = ManifestConfiguration(
... options=ManifestOptions(
... items=[ManifestOption(name="debug_mode", option_type="bool", default=False)]
... )
... )
>>> model_config.options.items[0].name
'debug_mode'
content
class-attribute
instance-attribute
¶
content: Optional[ManifestContent] = None
Content configuration for specifying how the app input/output is handled.
options
class-attribute
instance-attribute
¶
options: Optional[ManifestOptions] = None
Options for the decision model.
ManifestContent
¶
Bases: BaseModel
Content configuration for specifying how the app input/output is handled.
You can import the ManifestContent
class directly from cloud
:
PARAMETER | DESCRIPTION |
---|---|
|
The format of the content. Must be one of "json", "multi-file", or "csv-archive".
TYPE:
|
|
Configuration for multi-file content format.
TYPE:
|
Examples:
>>> from nextmv.cloud import ManifestContent
>>> content_config = ManifestContent(
... format="multi-file",
... multi_file=ManifestContentMultiFile(
... input=ManifestContentMultiFileInput(path="data/input/"),
... output=ManifestContentMultiFileOutput(
... statistics="my-outputs/statistics.json",
... assets="my-outputs/assets.json",
... solutions="my-outputs/solutions/"
... )
... )
... )
>>> content_config.format
'multi-file'
>>> content_config.multi_file.input.path
'data/input/'
format
instance-attribute
¶
The format of the content. Must be one of "json", "multi-file", or "csv-archive".
multi_file
class-attribute
instance-attribute
¶
multi_file: Optional[ManifestContentMultiFile] = Field(
serialization_alias="multi-file",
validation_alias=AliasChoices(
"multi-file", "multi_file"
),
default=None,
)
Configuration for multi-file content format.
ManifestContentMultiFile
¶
Bases: BaseModel
Configuration for multi-file content format.
You can import the ManifestContentMultiFile
class directly from cloud
:
PARAMETER | DESCRIPTION |
---|---|
|
Configuration for multi-file content format input. |
|
Configuration for multi-file content format output. |
Examples:
>>> from nextmv.cloud import ManifestContentMultiFile, ManifestContentMultiFileInput, ManifestContentMultiFileOutput
>>> multi_file_config = ManifestContentMultiFile(
... input=ManifestContentMultiFileInput(path="data/input/"),
... output=ManifestContentMultiFileOutput(
... statistics="my-outputs/statistics.json",
... assets="my-outputs/assets.json",
... solutions="my-outputs/solutions/"
... )
... )
>>> multi_file_config.input.path
'data/input/'
input
instance-attribute
¶
Configuration for multi-file content format input.
output
instance-attribute
¶
output: ManifestContentMultiFileOutput
Configuration for multi-file content format output.
ManifestContentMultiFileInput
¶
Bases: BaseModel
Configuration for multi-file content format input.
You can import the ManifestContentMultiFileInput
class directly from cloud
:
PARAMETER | DESCRIPTION |
---|---|
|
The path to the input file or directory.
TYPE:
|
Examples:
>>> from nextmv.cloud import ManifestContentMultiFileInput
>>> input_config = ManifestContentMultiFileInput(path="data/input/")
>>> input_config.path
'data/input/'
ManifestContentMultiFileOutput
¶
Bases: BaseModel
Configuration for multi-file content format output.
You can import the ManifestContentMultiFileOutput
class directly from cloud
:
PARAMETER | DESCRIPTION |
---|---|
|
The path to the statistics file.
TYPE:
|
|
The path to the assets file.
TYPE:
|
|
The path to the solutions directory.
TYPE:
|
Examples:
>>> from nextmv.cloud import ManifestContentMultiFileOutput
>>> output_config = ManifestContentMultiFileOutput(
... statistics="my-outputs/statistics.json",
... assets="my-outputs/assets.json",
... solutions="my-outputs/solutions/"
... )
>>> output_config.statistics
'my-outputs/statistics.json'
ManifestOption
¶
Bases: BaseModel
An option for the decision model that is recorded in the manifest.
You can import the ManifestOption
class directly from cloud
:
PARAMETER | DESCRIPTION |
---|---|
|
The name of the option.
TYPE:
|
|
The type of the option. This is a string representation of the
TYPE:
|
|
The default value of the option.
TYPE:
|
|
The description of the option.
TYPE:
|
|
Whether the option is required or not.
TYPE:
|
|
Optional additional attributes for the option. The Nextmv Cloud may
perform validation on these attributes. For example, the maximum
length of a string or the maximum value of an integer. These
additional attributes will be shown in the help message of the
TYPE:
|
|
Optional UI attributes for the option. This is a dictionary that can
contain additional information about how the option should be displayed
in the Nextmv Cloud UI. This is not used in the local
TYPE:
|
Examples:
>>> from nextmv.cloud import ManifestOption
>>> option = ManifestOption(
... name="solve.duration",
... option_type="string",
... default="30s",
... description="Maximum duration for the solver."
... )
>>> option.name
'solve.duration'
additional_attributes
class-attribute
instance-attribute
¶
Optional additional attributes for the option.
default
class-attribute
instance-attribute
¶
The default value of the option
description
class-attribute
instance-attribute
¶
The description of the option
from_option
classmethod
¶
from_option(option: Option) -> ManifestOption
Create a ManifestOption
from an Option
.
PARAMETER | DESCRIPTION |
---|---|
|
The option to convert.
TYPE:
|
RETURNS | DESCRIPTION |
---|---|
ManifestOption
|
The converted option. |
RAISES | DESCRIPTION |
---|---|
ValueError
|
If the |
Examples:
>>> from nextmv.options import Option
>>> from nextmv.cloud import ManifestOption
>>> sdk_option = Option(name="max_stops", option_type=int, default=100)
>>> manifest_opt = ManifestOption.from_option(sdk_option)
>>> manifest_opt.name
'max_stops'
>>> manifest_opt.option_type
'int'
Source code in nextmv/nextmv/cloud/manifest.py
option_type
class-attribute
instance-attribute
¶
option_type: str = Field(
serialization_alias="option_type",
validation_alias=AliasChoices("type", "option_type"),
)
The type of the option (e.g., "string", "int", "bool", "float).
required
class-attribute
instance-attribute
¶
Whether the option is required or not
to_option
¶
Convert the ManifestOption
to an Option
.
RETURNS | DESCRIPTION |
---|---|
Option
|
The converted option. |
RAISES | DESCRIPTION |
---|---|
ValueError
|
If the |
Examples:
>>> from nextmv.cloud import ManifestOption
>>> manifest_opt = ManifestOption(name="max_stops", option_type="int", default=100)
>>> sdk_option = manifest_opt.to_option()
>>> sdk_option.name
'max_stops'
>>> sdk_option.option_type
<class 'int'>
Source code in nextmv/nextmv/cloud/manifest.py
ui
class-attribute
instance-attribute
¶
ui: Optional[ManifestOptionUI] = None
Optional UI attributes for the option.
ManifestOptionUI
¶
Bases: BaseModel
UI attributes for an option in the manifest.
You can import the ManifestOptionUI
class directly from cloud
:
PARAMETER | DESCRIPTION |
---|---|
|
The type of control to use for the option in the Nextmv Cloud UI. This is
useful for defining how the option should be presented in the Nextmv
Cloud UI. Current control types include "input", "select", "slider", and
"toggle". This attribute is not used in the local
TYPE:
|
|
A list of team roles to which this option will be hidden in the UI. For
example, if you want to hide an option from the "operator" role, you can
pass
TYPE:
|
|
An optional display name for the option. This is useful for making the option more user-friendly in the UI.
TYPE:
|
Examples:
>>> from nextmv.cloud import ManifestOptionUI
>>> ui_config = ManifestOptionUI(control_type="input")
>>> ui_config.control_type
'input'
control_type
class-attribute
instance-attribute
¶
The type of control to use for the option in the Nextmv Cloud UI.
display_name
class-attribute
instance-attribute
¶
An optional display name for the option. This is useful for making the option more user-friendly in the UI.
hidden_from
class-attribute
instance-attribute
¶
A list of team roles for which this option will be hidden in the UI.
ManifestOptions
¶
Bases: BaseModel
Options for the decision model.
You can import the ManifestOptions
class directly from cloud
:
PARAMETER | DESCRIPTION |
---|---|
|
If strict is set to
TYPE:
|
|
The actual list of options for the decision model. An option is a parameter that configures the decision model.
TYPE:
|
|
Optional validation rules for all options.
|
|
A list of strings that define how options are transformed into command
line arguments. Use
|
Examples:
>>> from nextmv.cloud import ManifestOptions, ManifestOption
>>> options_config = ManifestOptions(
... strict=True,
... validation=ManifestValidation(enforce="all"),
... items=[
... ManifestOption(name="timeout", option_type="int", default=60),
... ManifestOption(name="vehicle_capacity", option_type="float", default=100.0)
... ]
... )
>>> options_config.strict
True
>>> len(options_config.items)
2
format
class-attribute
instance-attribute
¶
A list of strings that define how options are transformed into command line arguments.
Use {{name}}
to refer to the option name and {{value}}
to refer to the option value.
For example, ["-{{name}}", "{{value}}"]
will transform an option named max_vehicles
with a value of 10
into the command line argument -max_vehicles 10
.
from_options
classmethod
¶
from_options(
options: Options,
validation: OptionsEnforcement = None,
format: Optional[list[str]] = None,
) -> ManifestOptions
Create a ManifestOptions
from a nextmv.Options
.
PARAMETER | DESCRIPTION |
---|---|
|
The options to convert.
TYPE:
|
|
Optional validation rules for the options. If provided, it will be
used to set the
TYPE:
|
|
A list of strings that define how options are transformed into
command line arguments. Use For example,
TYPE:
|
RETURNS | DESCRIPTION |
---|---|
ManifestOptions
|
The converted options. |
Examples:
>>> from nextmv.options import Options, Option
>>> from nextmv.cloud import ManifestOptions
>>> sdk_options = Options(Option("max_vehicles", int, 5))
>>> manifest_options = ManifestOptions.from_options(sdk_options)
>>> manifest_options.items[0].name
'max_vehicles'
Source code in nextmv/nextmv/cloud/manifest.py
items
class-attribute
instance-attribute
¶
items: Optional[list[ManifestOption]] = None
The actual list of options for the decision model.
An option is a parameter that configures the decision model.
strict
class-attribute
instance-attribute
¶
If strict is set to True
, only the listed options will be allowed.
validation
class-attribute
instance-attribute
¶
validation: Optional[ManifestValidation] = None
Optional validation rules for all options.
ManifestPython
¶
Bases: BaseModel
Python-specific instructions.
You can import the ManifestPython
class directly from cloud
:
PARAMETER | DESCRIPTION |
---|---|
|
Path to a requirements.txt file containing (additional) Python
dependencies that will be bundled with the app. Alternatively, you can provide a
list of strings, each representing a package to install, e.g.,
TYPE:
|
|
Information about an encoded decision model as handled via mlflow. This information is used to load the decision model from the app bundle.
TYPE:
|
Examples:
>>> from nextmv.cloud import ManifestPython, ManifestPythonModel
>>> python_config = ManifestPython(
... pip_requirements="requirements.txt",
... model=ManifestPythonModel(name="my_model")
... )
>>> python_config.pip_requirements
'requirements.txt'
model
class-attribute
instance-attribute
¶
model: Optional[ManifestPythonModel] = None
Information about an encoded decision model.
As handled via mlflow. This information is used to load the decision model from the app bundle.
pip_requirements
class-attribute
instance-attribute
¶
pip_requirements: Optional[Union[str, list[str]]] = Field(
serialization_alias="pip-requirements",
validation_alias=AliasChoices(
"pip-requirements", "pip_requirements"
),
default=None,
)
Path to a requirements.txt file.
Contains (additional) Python dependencies that will be bundled with the app.
ManifestPythonModel
¶
Bases: BaseModel
Model-specific instructions for a Python app.
You can import the ManifestPythonModel
class directly from cloud
:
PARAMETER | DESCRIPTION |
---|---|
|
The name of the decision model.
TYPE:
|
|
Options for the decision model. This is a data representation of the
TYPE:
|
Examples:
>>> from nextmv.cloud import ManifestPythonModel
>>> python_model_config = ManifestPythonModel(
... name="routing_model",
... options=[{"name": "max_vehicles", "type": "int", "default": 10}]
... )
>>> python_model_config.name
'routing_model'
options
class-attribute
instance-attribute
¶
Options for the decision model. This is a data representation of the
nextmv.Options
class. It consists of a list of dicts. Each dict
represents the nextmv.Option
class. It is used to be able to
reconstruct an Options object from data when loading a decision model.
ManifestRuntime
¶
Bases: str
, Enum
Runtime (environment) where the app will be run on Nextmv Cloud.
You can import the ManifestRuntime
class directly from cloud
:
This enum defines the supported runtime environments for applications that can be deployed on Nextmv Cloud.
ATTRIBUTE | DESCRIPTION |
---|---|
DEFAULT |
This runtime is used to run compiled applications such as Go binaries.
TYPE:
|
PYTHON |
This runtime is used as the basis for all other Python runtimes and Python applications.
TYPE:
|
JAVA |
This runtime is used to run Java applications.
TYPE:
|
PYOMO |
This runtime provisions Python packages to run Pyomo applications.
TYPE:
|
HEXALY |
This runtime provisions Python packages to run Hexaly applications.
TYPE:
|
Examples:
>>> from nextmv.cloud import ManifestRuntime
>>> runtime = ManifestRuntime.PYTHON
>>> runtime
<ManifestRuntime.PYTHON: 'ghcr.io/nextmv-io/runtime/python:3.11'>
>>> str(runtime)
'ghcr.io/nextmv-io/runtime/python:3.11'
DEFAULT
class-attribute
instance-attribute
¶
This runtime is used to run compiled applications such as Go binaries.
HEXALY
class-attribute
instance-attribute
¶
Based on the python runtime, it provisions (pre-installs) the Hexaly solver to run Python applications.
JAVA
class-attribute
instance-attribute
¶
This runtime is used to run Java applications.
PYOMO
class-attribute
instance-attribute
¶
This runtime provisions Python packages to run Pyomo applications.
PYTHON
class-attribute
instance-attribute
¶
This runtime is used as the basis for all other Python runtimes and Python applications.
ManifestType
¶
Bases: str
, Enum
Type of application in the manifest, based on the programming language.
You can import the ManifestType
class directly from cloud
:
This enum defines the supported programming languages for applications that can be deployed on Nextmv Cloud.
ATTRIBUTE | DESCRIPTION |
---|---|
PYTHON |
Python format, used for Python applications.
TYPE:
|
GO |
Go format, used for Go applications.
TYPE:
|
JAVA |
Java format, used for Java applications.
TYPE:
|
Examples:
ManifestValidation
¶
Bases: BaseModel
Validation rules for options in the manifest.
You can import the ManifestValidation
class directly from cloud
:
PARAMETER | DESCRIPTION |
---|---|
|
The enforcement level for the validation rules. This can be set to "none" or "all". If set to "none", no validation will be performed on the options prior to creating a run. If set to "all", all validation rules will be enforced on the options, and runs will not be created if any of the rules of the options are violated.
TYPE:
|
Examples:
>>> from nextmv.cloud import ManifestValidation
>>> validation = ManifestValidation(enforce="all")
>>> validation.enforce
'all'
enforce
class-attribute
instance-attribute
¶
The enforcement level for the validation rules. This can be set to "none" or "all". If set to "none", no validation will be performed on the options prior to creating a run. If set to "all", all validation rules will be enforced on the options, and runs will not be created if any of the rules of the options are violated.