Add your description here
Project description
Azure Jobs
A simple interface to manage Azure Jobs. Features include:
- Create jobs from templates with flexible command line overrides.
- Support global and local configurations by using
.azurejobsfiles. (Credentials may be stored here.) - Pretty print job details, export status, link to custom dashboards.
- Set up alerts for job events using simple hooks.
Get started
- Install the Azure Jobs CLI tool.
pipx install azure_jobs
- Setup your credentials by running:
aj init
- Pull templates from private repositories:
aj pull <repository-url>
- Run jobs using the CLI:
aj run -t <template> <command> [args...]
Template
A template consists of a YAML file defines:
- The job's environment (e.g., AML, Singularity)
- GPU, CPU resources required
- Storages used.
- Pre-execution commands (Environment preparation commands)
- Account information (e.g., Azure subscription ID)
By default, azure_jobs will store environments in the ~/.azurejobs/environments directory. Storage credentials will be stored in the ~/.azurejobs/storage directory. Account information will be stored in the ~/.azurejobs/account directory.
Templates will be stored in the ~/.azurejobs/templates directory. A reserved template name is default, it will be updated automatically with the latest configuration.
Configuration Structure
base: base_configuration or a list of configurations to merge
config:
example_a: value_a
example_b: value_b
Configuration Merging
Configuration can be merged by the following rules:
- Dict configuration will be merged recursively.
- List configuration will be merged by appending elements from the source list to the target list.
- Scalar values will be replaced by the target value.
Here is the code for merging configurations:
def merge_confs(*data):
# merge multiple dictionaries or lists recursively
if all(isinstance(d, dict) for d in data):
merged = {}
for d in data:
for key, value in d.items():
if key in merged:
merged[key] = merge_confs(merged[key], value)
else:
merged[key] = value
return merged
elif all(isinstance(d, list) for d in data):
merged = []
for d in zip(*data):
merged.append(merge_confs(*d))
return merged
return data[-1]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file azure_jobs-0.1.6.tar.gz.
File metadata
- Download URL: azure_jobs-0.1.6.tar.gz
- Upload date:
- Size: 31.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36b3fc19427a77a363a402f828d5ded6371b7f0d810cdd6f1d8e8a43ad3748c3
|
|
| MD5 |
45159343f4a9b626e9a73be442c82d57
|
|
| BLAKE2b-256 |
252f7a271489c3c0ae5858a7acd9959fc51d764233c6d237dab3a193cbda1b1f
|
File details
Details for the file azure_jobs-0.1.6-py3-none-any.whl.
File metadata
- Download URL: azure_jobs-0.1.6-py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
349cf806f4f46e407d8939dac85aa0d4458257f31dc2b13fc7b45c193b6cd090
|
|
| MD5 |
d8a0de97b9cad0329f9e6a53ec583c54
|
|
| BLAKE2b-256 |
25227f8fd43b5bae52ec172c8d01562f97506624cb35119c490aeade39108a35
|