Package: code-snippet
SnippetOverviewA tool to extract code snippets from source filesEssentially, 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 filesUses customisable markup syntaxWrites to templated output (e.g..mdcode blocks)Hides sections from outputPerforms validation to help avoid snippets breaking as code changesRationaleCode 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.snippetcan 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.ReleasesFor release notes and a history of changes of allproductionreleases, please see the following:ChangelogFor a the list of all available versions please, please see the:PyPI Release HistoryVersioningThe version scheme used followsPEP440andSemantic Versioning. For production quality releases the version will look as follows:<major>.<minor>.<patch>Beta releases are used to give early access to new functionality, for testing and to get feedback on experimental
features. As such these releases may not be stable and should not be used for production. Additionally any interfaces
introduced in a beta release may be removed or changed without notice. Forbetareleases the version will look as
follows:<major>.<minor>.<patch>-beta.<pre-release-number>InstallationIt is recommended that a virtual environment such asPipenvis
used for all installations to avoid Python dependency conflicts.To install the most recent production quality release use:pip install code-snippetTo install a specific release:pip install code-snippet==<version>UsageConfigurationPlace a config file in thetoml formatin your project directory (e.g.snippet.toml). Any value defined inthe config objectcan be overridden.As an example, basic configuration typically includes input and output directories:[snippet] 
input_glob = 'tests/unit/*.py' 
output_dir = 'docs/examples'RunRun the following command in your project:snippetAlternatively, run snippet from anywhere and specify a working directory and config file:snippet path/to/root --config=path/to/config.tomlConfig 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.For more information about how to use the tool, please have a look at theUsage pageThe full CLI options are:> 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 verbosityInterface definition and usage documentation (for developers of tooling) is available for the most recent
production release here:GitHub PagesProject StructureThe follow described the major aspects of the project structure:azure-pipelines/- CI configuration files for Azure Pipelines.docs/- Interface definition and usage documentation.examples/- Usage examples.snippet/- Python source files.news/- Collection of news files for unreleased changes.tests/- Unit and integration tests.Getting HelpFor interface definition and usage documentation, please seeGitHub Pages.For a list of known issues and possible work arounds, please seeKnown Issues.To raise a defect or enhancement please useGitHub Issues.To ask a question please use theMbed Forum.ContributingSnippet is an open source project and we are committed to fostering a welcoming community, please see ourCode of Conductfor more information.For ways to contribute to the project, please see theContributions GuidelinesFor a technical introduction into developing this package, please see theDevelopment Guide