semvec/pypi-packages huggingface dataset:
serialized-data-interface 0.3.6
Serialized Data Interface for Juju Operators
License: Apache-2.0
Requires Python: >=3.8,<4.0

# Serialized Data Interface Library

https://pypi.org/project/serialized-data-interface/

This libraries enables its user to create serialized and validated Juju Operator interfaces.

An interface Schema will be defined through YAML e.g:

```yaml
v1:
  provides:
    type: object
    properties:
      access-key:
        type: string
      namespace:
        type: ['string', 'null']
      port:
        type: number
      secret-key:
        type: string
      secure:
        type: boolean
      service:
        type: string
    required:
      - access-key
      - port
      - secret-key
      - secure
      - service
```

When our charms interchange data, this library will validate the data through the schema on both
ends.

# Usage

In our charm metadata we would add the following lines to define our schema and the supported
versions:

```yaml
provides:
  oidc-client:
    interface: oidc-client
    schema: https://raw.githubusercontent.com/canonical/operator-schemas/oidc-schemas/oidc-client.yaml
    versions: [v1]
```

In this case SDI will pull the schema from Github during deployment. If we want to deploy our charm
in environments where Github isn't available we can pull the schemas during our build process by
adding some lines like this in our `tox.ini` file:

```
[testenv:build]
commands =
    charmcraft build
    python3 -m serialized_data_interface.local_sdi
```

# Real World Example

- Minio with Provider Interface
  - https://github.com/canonical/minio-operator/
- Argo Controller with Requirer Interface:
  - https://github.com/canonical/argo-operators/

# TODO

- Currently only provides data to App relations, should also support unit relations.
shrub-py 3.0.8
Library for creating evergreen configurations
License: Apache-2.0
Requires Python: >3.7.0

# shrub.py

A python based Evergreen project config generation library

![PyPI - Python Version](https://img.shields.io/pypi/pyversions/shrub.py)
[![PyPI version](https://badge.fury.io/py/shrub.py.svg)](https://pypi.org/project/shrub.py/)

## Overview

Based on [shrub](https://github.com/evergreen-ci/shrub/), shrub.py is a library for programatically
building Evergreen project configurations described [here](https://github.com/evergreen-ci/evergreen/wiki/Project-Files).

## Example

The following snippet will create a set of parallel tasks reported under a single display task. It
would generate json used by ```generate.tasks```:

```
from shrub.v2 import ShrubProject, Task, BuildVariant

n_tasks = 10
def define_task(index):
    name = f"task_name_{index}"

    return Task(
        name,
        [
            FunctionCall("do setup"),
            FunctionCall(
                "run test generator",
                {"parameter_1": "value 1", "parameter_2": "value 2"}
            ),
            FunctionCall("run tests")
        ],
    ).dependency("compile")

tasks = {define_task(i) for i in range(n_tasks)}
variant = BuildVariant("linux-64").display_task("test_suite", tasks)
project = ShrubProject({variant})

project.json()
```

## Run tests

```
poetry run pytest
```