# About ```{container} justify This section outlines, in order, the basic functionality that is needed to build configurable systems using `pconfigs`. ``` ```{rubric} Subsections :class: section-caption ``` - [Construction](construction) - {ref}`subsec-construct-an-instance` - {ref}`subsec-set-custom-config-values` - {ref}`subsec-copy-config-settings` - [Printing](printing) - {ref}`subsec-print-within-your-python-code` - {ref}`subsec-print-from-the-command-line` - [Environments](environments) - {ref}`subsec-use-penv-to-declare-environment-variables` - {ref}`subsec-set-default-values-for-optional-environment-variables` - {ref}`subsec-environment-variable-types-are-auto-cast` - [Properties](properties) - {ref}`subsec-define-computed-properties-with-pproperty` - {ref}`subsec-modify-user-input-values-with-pinputs` - {ref}`subsec-prevent-users-from-setting-computed-properties` - [Runnables](runnables) - {ref}`subsec-configure-a-runnable-class` - [Testing](testing) - {ref}`subsec-setup-a-project` - {ref}`subsec-test-pconfig-files` - {ref}`subsec-test-all-subdirectories` - {ref}`subsec-test-specific-pconfigs` - [Enums](enums) - {ref}`subsec-use-penum-to-print-interpretable-enum-values`