semvec/pypi-packages huggingface dataset:
packme 0.8.0
Helper app for building and running packer templates
License: MIT

packme
======

### overview

`packme` is a python3 application for generating and running `packer` templates.

It works by generating *manifest.json* files out of *manifest.yml* files which contain the packer settings for the image to build. The *manifest.yml* files will be searched in a directory which contains as subdirectories the images to be built using `packer`. That directory has to be defined from the CLI (`-t/--templates-dir` option) and has the following structure:

```shell
my_templates_directory/
    image1/
        manifest.yml
    ...
    imageN/
        manifest.yml
```

Each manifest.yml has the following structure:

```shell
---
parameters:
    param1: value1
    ...
    paramN: valueN

packer:
    description: packer description string
    variables: packer variables dict
    builders: packer builders list
    provisioners: packer provisioners list
    post-processors: packer post processors list
```

The packer section is strictly the YAML representation of a packer json file with the standards description, variables, builders, provisioners and post-processors packer fields. Those fields can contain Jinja2 templates which can be of two flavors: `parameters` or `environment`. `parameters` will be defined in the `parameters` section of the YAML file while `environment` will be either environment variables or variables passed through the `packme` CLI.

In order to run `packme`, an input configuration file has to be provided. This file is a YAML file which declares the list of the images for which *manifest.json* file will be built and run after with packer. It has the following structure:

```shell
---
templates:
    image1:
        packages: [package1, ..., packageN]
    ...
    imageN:
        extends: image1
```

where `packages` defines non standard packages that will added as extra provisioners when generating the *manifest.json* file for the corresponding image.

An image can extend another one by starting its building from another image. This is the aim of `extends` keyword which allows to declare that dependency.

### Documentation

[packme documentation](https://packme.readthedocs.io/en/latest/)

### Prerequesites

- packer
- QEMU

### Installation

```shell
pip install packme
```
repo2env 0.1.2
Automated environment parsing for AiiDAlab apps.
License: MIT

# repo2env

Determine the environment specification for a given (app) repository.

This tool parses an (app) repository and determines requirements similar to [repo2docker](https://github.com/jupyterhub/repo2docker).
But instead of generating a docker image it returns a specification that can then be used to build the environment.

## Installation

The easiest way to install this tool is either directly with pip:
```bash
~ $ pip install git+https://github.com/aiidalab/repo2env.git
```

Or clone the repository first and then install:
```bash
~ $ git clone https://github.com/aiidalab/repo2env.git
~ $ cd repo2env/
~/repo2env $ pip install .
```

## Usage

Use the `repo2env` command to parse the environment of a local or remote (app) repository:

For a local repository, just provide the path:
```bash
~ $ repo2env /path/aiidalab-hello-world/
{"python_requirements": ["aiidalab>=20.02.0b2"]}
```

For a remote repository, provide a [PEP 508](https://www.python.org/dev/peps/pep-0508/) compliant URL, for example:
```bash
~ $ repo2env git+https://github.com/aiidalab/aiidalab-hello-world.git@v1.0.0
{"python_requirements": ["aiidalab>=20.02.0b2"]}
```

The output is JSON-formatted and can then be used for further processing.

Tip: Use [jq](https://stedolan.github.io/jq/) to generate pretty-printed output for manual inspection:
```bash
$ repo2env ~/local/aiidalab/aiidalab-hello-world/ | jq .
{
  "python_requirements": [
    "aiidalab>=20.02.0b2"
  ]
}
```

## What is parsed

 - `setup.cfg`: If present, the `options.install_requires` list is parsed into `python_requirements`.
 - `requirements.txt` Is parsed into `python_requirements` if present and `setup.cfg` is not present.

## Acknowledgements

This work is supported by the [MARVEL National Centre for Competency in Research](<http://nccr-marvel.ch>) funded by the [Swiss National Science Foundation](<http://www.snf.ch/en>),
as well as by
the MARKETPLACE project funded by [Horizon 2020](https://ec.europa.eu/programmes/horizon2020/) under the H2020-NMBP-25-2017 call (Grant No. 760173).