Skip to content
This repository has been archived by the owner on Sep 3, 2024. It is now read-only.

Commit

Permalink
DOC: Cleaning up README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
William McLendon committed Dec 30, 2021
1 parent 42ff469 commit f70fce5
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 3 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
#### Todo (for Unreleased)
-->

## [0.5.1] 2021-12-30
#### Changed
- Documentation updates

## [0.5.0] 2021-12-20
#### Added
- Open Source License approved. Adding 3-Clause BSD license files and
Expand Down
54 changes: 53 additions & 1 deletion doc/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,59 @@ Indices and Tables

Overview
========
TODO: This needs to be expanded for RTD.
The ``SetProgramOptions`` package extends the
`ConfigParserEnhanced <https://pypi.org/project/configparserenhanced/>`_
package by adding additional *operations* for handling command-line
options.

The primary use case that provided the impetus to develop SetProgramOptions
was to support complex configuration environments for a software project that
is tested on a variety of platforms and architectures, including GPUs and HPC
systems. This project is several million lines of code and has hundreds of
CMake options in its configuration space.

We developed SetProgramOptions and SetProgramOptions to allow our build system
to use optimized .ini files to manage our configuration space.

This package includes two classes:

1. SetProgramOptions - A general purpose command line handler that handles
generic command line options.
2. SetProgramOptionsCMake - A subclass of SetProgramOptions, this class further
extends SetProgramOptions by adding CMake-specific operations to provide
ease of use for CMake specific options. It also adds an additional generator
option to allow the generation of either *bash* style command line options
or a *CMake* source fragment file.

An example .ini file using ``SetProgramOptions`` might look like:

.. code-block:: ini
:linenos:
[Directory *nix]
opt-set ls
This configuration is the SetProgramOptions version of a hello world example.
Here, the ``opt-set ls`` option is specifying a single command line option
which in this case is the command `ls`.

We can expand this to add additional entries:

.. code-block:: ini
:linenos:
[Directory *nix]
opt-set ls
opt-set -l
opt-set -r
opt-set -t
opt-remove -r
When processed, this example would result in a concactenated string containing
the command ``ls -l -t``. We threw in the ``opt-remove -r`` operation which
*removed* the `-r` entry.

For more details on how this is used, see the Examples section below.


Examples
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[tool.poetry]
name = "setprogramoptions"
description = "Program options configuration file reader using ConfigParserEnhanced."
version = "0.5.0"
version = "0.5.0.1"
license = "LICENSE"
readme = "README.md"
keywords = [
Expand Down
2 changes: 1 addition & 1 deletion src/setprogramoptions/version.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,4 @@
# Note: When updating this we should also update the
# version string in the header docstrings for
# SetProgramOptions and the pyproject.toml file.
__version__ = "0.5.0"
__version__ = "0.5.0.1"

0 comments on commit f70fce5

Please sign in to comment.