Skip to main content
# snippet
[![CircleCI](https://circleci.com/gh/ARMmbed/snippet.svg?style=svg&circle-token=f8151197e9160de7877eda3ae049d0925e9b7ff3)](https://circleci.com/gh/ARMmbed/snippet)

A Python3 tool to extract code snippets from source files

Essentially, `snippet` extracts marked sections of text from a given
set of input files and saves them elsewhere.

Features include:
- Works on any text file, e.g.
any coding language by reading from source files
- Uses customisable markup syntax
- Writes to templated output (e.g. `.md` code blocks)
- Hides sections from output
- Performs validation to help avoid snippets breaking as code changes

## Rationale
Code documentation usually needs a written example demonstrating use of some code. This example code can however become quite easily outdated as a project evolves or even contain its own errors.
One solution is to write the examples as tests which can be run within the test system of choice. This ensures that the code of the examples is always valid and working. `snippet` can then be used to extract the relevant and informative part of the test and put it in a form which can then be rendered by the documentation system, providing fully tested code examples.

## Getting started
### Prerequisites
- `snippet` requires Python 3

### Installation
```
pip install code-snippet
```
### Configuration
Place a config file in the [toml format](https://github.com/toml-lang/toml)
in your project directory (e.g. `snippet.toml`). Any value defined in [the config object](https://github.com/ARMmbed/snippet/blob/master/src/snippet/config.py#L8)
can be overridden.

As an example, basic configuration typically includes input and output directories:

```
[snippet]
input_glob = 'tests/unit/*.py'
output_dir = 'docs/examples'
```

### Run
Run the following command in your project, using the Python interpreter you installed `snippet` to:

```
python -m snippet
```

Alternatively, run snippet from anywhere and specify a working directory and config file:
```
python -m snippet path/to/root --config=path/to/config.toml
```
Config files can be specified as glob patterns, defaulting to `*.toml`, and can
be set multiple times. Multiple files will be loaded in the order specified
and discovered. Settings loaded last will take precedence.

### Usage
For more information about how to use the tool, please have a look at the [Usage page](./USAGE.md)
The full CLI options are:
```
> python -m snippet --help
usage: __main__.py [-h] [--config CONFIG] [-v] [dir]

positional arguments:
dir path to project root, used by any relative paths in loaded
configs [cwd]

optional arguments:
-h, --help show this help message and exit
--config CONFIG paths (or globs) to config files
-v, --verbosity increase output verbosity
```


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

code_snippet-1.1.0-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file code_snippet-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: code_snippet-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 13.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.20.0 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.0

File hashes

Hashes for code_snippet-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 db24aefe63fff833de16f00dad08c87d2d778aca0870447c976faaefe4317ced
MD5 6d5b6e79110c058083bff4cb31b9d667
BLAKE2b-256 b7ee6c857d0995fbdc00374b38915ba653c910667166e4a96e65bb3b9e57fb7b

See more details on using hashes here.

Supported by

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