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

Commit f70fce5

Browse files
author
William McLendon
committed
DOC: Cleaning up README.md
1 parent 42ff469 commit f70fce5

File tree

4 files changed

+59
-3
lines changed

4 files changed

+59
-3
lines changed

Diff for: CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1717
#### Todo (for Unreleased)
1818
-->
1919

20+
## [0.5.1] 2021-12-30
21+
#### Changed
22+
- Documentation updates
23+
2024
## [0.5.0] 2021-12-20
2125
#### Added
2226
- Open Source License approved. Adding 3-Clause BSD license files and

Diff for: doc/source/index.rst

+53-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,59 @@ Indices and Tables
2626

2727
Overview
2828
========
29-
TODO: This needs to be expanded for RTD.
29+
The ``SetProgramOptions`` package extends the
30+
`ConfigParserEnhanced <https://pypi.org/project/configparserenhanced/>`_
31+
package by adding additional *operations* for handling command-line
32+
options.
33+
34+
The primary use case that provided the impetus to develop SetProgramOptions
35+
was to support complex configuration environments for a software project that
36+
is tested on a variety of platforms and architectures, including GPUs and HPC
37+
systems. This project is several million lines of code and has hundreds of
38+
CMake options in its configuration space.
39+
40+
We developed SetProgramOptions and SetProgramOptions to allow our build system
41+
to use optimized .ini files to manage our configuration space.
42+
43+
This package includes two classes:
44+
45+
1. SetProgramOptions - A general purpose command line handler that handles
46+
generic command line options.
47+
2. SetProgramOptionsCMake - A subclass of SetProgramOptions, this class further
48+
extends SetProgramOptions by adding CMake-specific operations to provide
49+
ease of use for CMake specific options. It also adds an additional generator
50+
option to allow the generation of either *bash* style command line options
51+
or a *CMake* source fragment file.
52+
53+
An example .ini file using ``SetProgramOptions`` might look like:
54+
55+
.. code-block:: ini
56+
:linenos:
57+
58+
[Directory *nix]
59+
opt-set ls
60+
61+
This configuration is the SetProgramOptions version of a hello world example.
62+
Here, the ``opt-set ls`` option is specifying a single command line option
63+
which in this case is the command `ls`.
64+
65+
We can expand this to add additional entries:
66+
67+
.. code-block:: ini
68+
:linenos:
69+
70+
[Directory *nix]
71+
opt-set ls
72+
opt-set -l
73+
opt-set -r
74+
opt-set -t
75+
opt-remove -r
76+
77+
When processed, this example would result in a concactenated string containing
78+
the command ``ls -l -t``. We threw in the ``opt-remove -r`` operation which
79+
*removed* the `-r` entry.
80+
81+
For more details on how this is used, see the Examples section below.
3082

3183

3284
Examples

Diff for: pyproject.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[tool.poetry]
22
name = "setprogramoptions"
33
description = "Program options configuration file reader using ConfigParserEnhanced."
4-
version = "0.5.0"
4+
version = "0.5.0.1"
55
license = "LICENSE"
66
readme = "README.md"
77
keywords = [

Diff for: src/setprogramoptions/version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,4 @@
4040
# Note: When updating this we should also update the
4141
# version string in the header docstrings for
4242
# SetProgramOptions and the pyproject.toml file.
43-
__version__ = "0.5.0"
43+
__version__ = "0.5.0.1"

0 commit comments

Comments
 (0)