Skip to main content

Informatics Matters Data Manager Job Decoder

PyPI package (latest) Build Publish

A package that simplifies the decoding of encoded text strings and validation of Job Definitions and Manifests.

Given an encoded string the decode() method returns the decoded value or an error.

For example, given the following jinja2 encoded string '{{ foo }}, bar={{ bar }}, baz={{ baz }}' and variable map {'foo': 1, 'bar': 2, 'baz': 3} the decoder returns the string 'foo=1, bar=2, baz=3'.

The following encoding/decoding formats are supported: -

  • jinja2 (3.0)

The package also provides validate_job_schema() and validate_manifest_schema() functions, which can (should) be used to validate the Manifests and Job definitions against the built-in schemas.

If you have a Job Definition or Manifest file you can add a reference to the corresponding schema in this package to your file to help you identify schema violations prior to deployment. To do this you just need to add a line starting # yaml-language-server: at the top of your file. For example, you can link to the v2.3.0 Job Definition schema by adding the following line:

# yaml-language-server: $schema=https://raw.githubusercontent.com/InformaticsMatters/squonk2-data-manager-job-decoder/refs/tags/2.3.0/decoder/job-definition-schema.yaml

Installation (Python)

The Job decoder is published on PyPI and can be installed from there:

pip install im-data-manager-job-decoder

Once installed you can validate the definition (expected to be a dictionary formed from the definition YAML file) with:

>>> from decoder import decoder
>>> error: Optional[str] = decoder.validate_manifest_schema(manifest)
>>> error: Optional[str] = decoder.validate_job_schema(job_definition)

And you can decode encoded fields within the job definition. Here we’re decoding the job’s ‘command’ using a map of variables and their values:

>>> decoded, success = decoder.decode(definition['command'],
                                      variables,
                                      'command',
                                      decoder.TextEncoding.JINJA2_3_0)

A method also exists to generate a Data Manger Job documentation URL for the supported repository types. For example, to get the auto-generated documentation URL for a job definition hosted in a GitHub repository you can do this:

>>> doc_url: str = decoder.get_job_doc_url("github",
                                           collection
                                           job_id,
                                           job_definition,
                                           manifest_url)

We support github and gitlab as repository types.

Get in touch

  • Report bugs, suggest features or view the source code on GitHub.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

im_data_manager_job_decoder-2.7.0.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

im_data_manager_job_decoder-2.7.0-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

File details

Details for the file im_data_manager_job_decoder-2.7.0.tar.gz.

File metadata

File hashes

Hashes for im_data_manager_job_decoder-2.7.0.tar.gz
Algorithm Hash digest
SHA256 e38102825b4dee287a1f5a2df8f711f5f34d05461f2d1ba7b93f96e717b45147
MD5 9cd71ed46513e86977a0ddf27c208673
BLAKE2b-256 5deca6c005c3c3ec1a14b87ba33716254bb8e0e6946751e2d30fb9ac39b5062a

See more details on using hashes here.

Provenance

The following attestation bundles were made for im_data_manager_job_decoder-2.7.0.tar.gz:

Publisher: publish.yaml on InformaticsMatters/squonk2-data-manager-job-decoder

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file im_data_manager_job_decoder-2.7.0-py3-none-any.whl.

File metadata

File hashes

Hashes for im_data_manager_job_decoder-2.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5d441e8e542543c4a15af144b533fbc84b1205aa696fd440b71833402feb92ea
MD5 a69e2b46758d9793a097a50918ff107a
BLAKE2b-256 8572f7b3de840548a5126c372850c8ab5a19b802b9b2154a6ca7b1480a8d5a47

See more details on using hashes here.

Provenance

The following attestation bundles were made for im_data_manager_job_decoder-2.7.0-py3-none-any.whl:

Publisher: publish.yaml on InformaticsMatters/squonk2-data-manager-job-decoder

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

2.8.0

2 files

This release

2.7.0 This release

2 files

2.6.1

2 files

2.6.0

2 files

2.5.0

2 files

2.4.0

2 files

2.3.0

2 files

2.2.0

2 files

2.1.0

2 files

2.0.0

2 files

1.17.2

2 files

1.17.1

2 files

1.17.0

2 files

1.16.0

2 files

1.15.2

2 files

1.15.1

2 files

1.15.0

2 files

1.14.0

2 files

1.13.0

2 files

1.12.3

2 files

1.12.2

2 files

1.12.1

2 files

1.12.0

2 files

1.11.6

2 files

1.11.5

2 files

1.11.4

2 files

1.11.3

2 files

1.11.2

2 files

1.11.1

2 files

1.11.0

2 files

1.10.3

2 files

1.10.2

2 files

1.10.1

2 files

1.10.0

2 files

1.9.0

2 files

1.8.1

2 files

1.8.0

2 files

1.7.0

2 files

1.6.4

1 file

1.6.3

1 file

1.6.2

1 file

1.6.1

1 file

1.6.0

1 file

1.5.1

1 file

1.5.0

1 file

1.4.1

1 file

1.4.0

1 file

1.3.0

1 file

1.2.0

1 file

1.1.2

1 file

1.1.1

1 file

1.1.0

1 file

1.0.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page