<commit_before>## Grout

Python tool and library for continuous, clean builds.
Grout was primarily designed to be used in combination with Snapcraft.

### Dependencies

* `Python >= 3.5`
* One of the following backends:
    * [LXC](https://linuxcontainers.org/)
    * [Docker](https://www.docker.com/)

### Install
```sh
cd grout/
python3 setup.py install
```

### Usage

*Note:* Grout is work in progress. API and supported features are subject to change without notice.

Create a `project.yaml` file.
```
name: test-project
summary: Test project
description: A test project
environment:
  scripts:  # Use Python scripts to setup the build environment
    setup: |
      print("setup")
      # Execute commands inside the build container
      container.exec("touch", "/home/grout/environment_setup")
jobs:
  - name: my-job
    type: base  # You can use pre-defined jobs (e.g. snapcraft)
    source: .
    scripts:
      setup: |  # Run optional scripts for all build steps
        print("setup")
        container.exec("touch", "/home/grout/job_setup")
      perform: |
        print("perform")
        container.exec("touch", "/home/grout/job_perform")
      finish: |
        print("finish")
        container.exec("touch", "/home/grout/job_finish")
```
Use the grout tool to run all jobs
```sh
cd my-project/
grout   # See grout --help
```

### License
Licensed under the terms of the MIT license.
<commit_msg>readme: Add hint about Python modules<commit_after>## Grout

Python tool and library for continuous, clean builds.
Grout was primarily designed to be used in combination with Snapcraft.

### Dependencies

* `Python >= 3.5`
    * with all modules listed as `install_requires` in `setup.py`
* One of the following backends:
    * [LXC](https://linuxcontainers.org/)
    * [Docker](https://www.docker.com/)

### Install
```sh
cd grout/
python3 setup.py install
```

### Usage

*Note:* Grout is work in progress. API and supported features are subject to change without notice.

Create a `project.yaml` file.
```
name: test-project
summary: Test project
description: A test project
environment:
  scripts:  # Use Python scripts to setup the build environment
    setup: |
      print("setup")
      # Execute commands inside the build container
      container.exec("touch", "/home/grout/environment_setup")
jobs:
  - name: my-job
    type: base  # You can use pre-defined jobs (e.g. snapcraft)
    source: .
    scripts:
      setup: |  # Run optional scripts for all build steps
        print("setup")
        container.exec("touch", "/home/grout/job_setup")
      perform: |
        print("perform")
        container.exec("touch", "/home/grout/job_perform")
      finish: |
        print("finish")
        container.exec("touch", "/home/grout/job_finish")
```
Use the grout tool to run all jobs
```sh
cd my-project/
grout   # See grout --help
```

### License
Licensed under the terms of the MIT license.

{'fraction_non_alphanumeric': 0.12226027397260274, 'fraction_numerical': 0.002054794520547945, 'mean_word_length': 3.172857142857143, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 4, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6552432', 'n_tokens_mistral': 886, 'n_tokens_neox': 854, 'n_words': 303}