git.schokokeks.org
Repositories
Help
Report an Issue
derivepassphrase.git
Code
Commits
Branches
Tags
Suche
Strukturansicht:
ca1e07c
Branches
Tags
documentation-tree
master
unstable/modularize-and-refactor-test-machinery
unstable/ssh-agent-socket-providers
wishlist
0.1.0
0.1.1
0.1.2
0.1.3
0.2.0
0.3.0
0.3.1
0.3.2
0.3.3
0.4.0
0.5.1
0.5.2
derivepassphrase.git
0.x
reference
derivepassphrase.cli
index.html
Deployed 05a21ba2ec99 to 0.x with MkDocs 1.6.1 and mike 2.1.3
Marco Ricci
commited
ca1e07c
at 2025-01-07 15:51:52
index.html
Blame
History
Raw
<!doctype html> <html lang="en" class="no-js"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="description" content="An almost faithful Python reimplementation of James Coglan's vault."> <meta name="author" content="Marco Ricci"> <link rel="canonical" href="https://the13thletter.info/derivepassphrase/0.x/reference/derivepassphrase.cli/"> <link rel="prev" href="../derivepassphrase-export-vault.1/"> <link rel="next" href="../derivepassphrase.exporter/"> <link rel="icon" href="../../assets/images/favicon.png"> <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.42"> <title>Submodule cli - derivepassphrase</title> <link rel="stylesheet" href="../../assets/stylesheets/main.0253249f.min.css"> <style>:root{--md-text-font:"Noto Sans";--md-code-font:"Noto Mono"}</style> <link rel="stylesheet" href="../../assets/_mkdocstrings.css"> <link rel="stylesheet" href="../../mkdocstrings_recommended_styles.css"> </head> <body dir="ltr"> <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off"> <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off"> <label class="md-overlay" for="__drawer"></label> <div data-md-component="skip"> <a href="#derivepassphrase.cli" class="md-skip"> Skip to content </a> </div> <div data-md-component="announce"> </div> <div data-md-color-scheme="default" data-md-component="outdated" hidden> </div> <div class="md-container" data-md-component="container"> <nav class="md-tabs" aria-label="Tabs" data-md-component="tabs"> <div class="md-grid"> <ul class="md-tabs__list"> <li class="md-tabs__item"> <a href="../.." class="md-tabs__link"> Overview </a> </li> <li class="md-tabs__item"> <a href="../../tutorials/" class="md-tabs__link"> Tutorials & Examples </a> </li> <li class="md-tabs__item"> <a href="../../how-tos/" class="md-tabs__link"> How-Tos </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href="../" class="md-tabs__link"> Reference </a> </li> <li class="md-tabs__item"> <a href="../../explanation/" class="md-tabs__link"> Design & Background </a> </li> <li class="md-tabs__item"> <a href="../../changelog/" class="md-tabs__link"> Changelog </a> </li> </ul> </div> </nav> <main class="md-main" data-md-component="main"> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" > <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0"> <label class="md-nav__title" for="__drawer"> <a href="../.." title="derivepassphrase" class="md-nav__button md-logo" aria-label="derivepassphrase" data-md-component="logo"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg> </a> derivepassphrase </label> <div class="md-nav__source"> <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source"> <div class="md-source__icon md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg> </div> <div class="md-source__repository"> the-13th-letter/derivepassphrase </div> </a> </div> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../.." class="md-nav__link"> <span class="md-ellipsis"> Overview </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" > <div class="md-nav__link md-nav__container"> <a href="../../tutorials/" class="md-nav__link "> <span class="md-ellipsis"> Tutorials & Examples </span> </a> <label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="0"> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_2"> <span class="md-nav__icon md-icon"></span> Tutorials & Examples </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../tutorials/basic-setup-passphrase/" class="md-nav__link"> <span class="md-ellipsis"> Setting up derivepassphrase vault for three accounts, with a master passphrase </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" > <div class="md-nav__link md-nav__container"> <a href="../../how-tos/" class="md-nav__link "> <span class="md-ellipsis"> How-Tos </span> </a> <label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="0"> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_3"> <span class="md-nav__icon md-icon"></span> How-Tos </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../how-tos/ssh-key/" class="md-nav__link"> <span class="md-ellipsis"> How to set up derivepassphrase vault with an SSH key </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" checked> <div class="md-nav__link md-nav__container"> <a href="../" class="md-nav__link "> <span class="md-ellipsis"> Reference </span> </a> <label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex=""> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="true"> <label class="md-nav__title" for="__nav_4"> <span class="md-nav__icon md-icon"></span> Reference </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_2" > <label class="md-nav__link" for="__nav_4_2" id="__nav_4_2_label" tabindex=""> <span class="md-ellipsis"> Man pages </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_2_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_4_2"> <span class="md-nav__icon md-icon"></span> Man pages </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../derivepassphrase.1/" class="md-nav__link"> <span class="md-ellipsis"> derivepassphrase(1) </span> </a> </li> <li class="md-nav__item"> <a href="../derivepassphrase-vault.1/" class="md-nav__link"> <span class="md-ellipsis"> derivepassphrase-vault(1) </span> </a> </li> <li class="md-nav__item"> <a href="../derivepassphrase-export.1/" class="md-nav__link"> <span class="md-ellipsis"> derivepassphrase-export(1) </span> </a> </li> <li class="md-nav__item"> <a href="../derivepassphrase-export-vault.1/" class="md-nav__link"> <span class="md-ellipsis"> derivepassphrase-export-vault(1) </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_3" checked> <label class="md-nav__link" for="__nav_4_3" id="__nav_4_3_label" tabindex=""> <span class="md-ellipsis"> API docs: Module derivepassphrase </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_3_label" aria-expanded="true"> <label class="md-nav__title" for="__nav_4_3"> <span class="md-nav__icon md-icon"></span> API docs: Module derivepassphrase </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc"> <label class="md-nav__link md-nav__link--active" for="__toc"> <span class="md-ellipsis"> Submodule cli </span> <span class="md-nav__icon md-icon"></span> </label> <a href="./" class="md-nav__link md-nav__link--active"> <span class="md-ellipsis"> Submodule cli </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class="md-nav__title" for="__toc"> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> <li class="md-nav__item"> <a href="#derivepassphrase.cli" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-module"></code> cli </span> </a> <nav class="md-nav" aria-label=" cli"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#derivepassphrase.cli.ClickEchoStderrHandler" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> ClickEchoStderrHandler </span> </a> <nav class="md-nav" aria-label=" ClickEchoStderrHandler"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#derivepassphrase.cli.ClickEchoStderrHandler.emit" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> emit </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.CLIofPackageFormatter" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> CLIofPackageFormatter </span> </a> <nav class="md-nav" aria-label=" CLIofPackageFormatter"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#derivepassphrase.cli.CLIofPackageFormatter.format" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> format </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.StandardCLILogging" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> StandardCLILogging </span> </a> <nav class="md-nav" aria-label=" StandardCLILogging"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#derivepassphrase.cli.StandardCLILogging.ensure_standard_logging" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> ensure_standard_logging </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.StandardCLILogging.ensure_standard_warnings_logging" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> ensure_standard_warnings_logging </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.StandardLoggingContextManager" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> StandardLoggingContextManager </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.StandardWarningsLoggingContextManager" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> StandardWarningsLoggingContextManager </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.OptionGroupOption" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> OptionGroupOption </span> </a> <nav class="md-nav" aria-label=" OptionGroupOption"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#derivepassphrase.cli.OptionGroupOption.option_group_name" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code> option_group_name </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.OptionGroupOption.epilog" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code> epilog </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.CommandWithHelpGroups" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> CommandWithHelpGroups </span> </a> <nav class="md-nav" aria-label=" CommandWithHelpGroups"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#derivepassphrase.cli.CommandWithHelpGroups.collect_usage_pieces" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> collect_usage_pieces </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.CommandWithHelpGroups.get_help_option" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> get_help_option </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.CommandWithHelpGroups.get_short_help_str" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> get_short_help_str </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.CommandWithHelpGroups.format_help_text" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> format_help_text </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.CommandWithHelpGroups.format_options" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> format_options </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.CommandWithHelpGroups.format_commands" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> format_commands </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.CommandWithHelpGroups.format_epilog" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> format_epilog </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.LoggingOption" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> LoggingOption </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.ZshComplete" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> ZshComplete </span> </a> <nav class="md-nav" aria-label=" ZshComplete"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#derivepassphrase.cli.ZshComplete.format_completion" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> format_completion </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.PassphraseGenerationOption" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> PassphraseGenerationOption </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.ConfigurationOption" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> ConfigurationOption </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.StorageManagementOption" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> StorageManagementOption </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.CompatibilityOption" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> CompatibilityOption </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.adjust_logging_level" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> adjust_logging_level </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.color_forcing_callback" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> color_forcing_callback </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.standard_logging_options" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> standard_logging_options </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.derivepassphrase" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> derivepassphrase </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.derivepassphrase_export" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> derivepassphrase_export </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.derivepassphrase_export_vault" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> derivepassphrase_export_vault </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.derivepassphrase_vault" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> derivepassphrase_vault </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="../derivepassphrase.exporter/" class="md-nav__link"> <span class="md-ellipsis"> Subpackage exporter </span> </a> </li> <li class="md-nav__item"> <a href="../derivepassphrase.sequin/" class="md-nav__link"> <span class="md-ellipsis"> Submodule sequin </span> </a> </li> <li class="md-nav__item"> <a href="../derivepassphrase.ssh_agent/" class="md-nav__link"> <span class="md-ellipsis"> Submodule ssh_agent </span> </a> </li> <li class="md-nav__item"> <a href="../derivepassphrase._types/" class="md-nav__link"> <span class="md-ellipsis"> Submodule _types </span> </a> </li> <li class="md-nav__item"> <a href="../derivepassphrase.vault/" class="md-nav__link"> <span class="md-ellipsis"> Submodule vault </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_4" > <label class="md-nav__link" for="__nav_4_4" id="__nav_4_4_label" tabindex=""> <span class="md-ellipsis"> Technical prerequisites </span> <span class="md-nav__icon md-icon"></span> </label> <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_4_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_4_4"> <span class="md-nav__icon md-icon"></span> Technical prerequisites </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../prerequisites-ssh-key/" class="md-nav__link"> <span class="md-ellipsis"> Using derivepassphrase vault with an SSH key </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" > <div class="md-nav__link md-nav__container"> <a href="../../explanation/" class="md-nav__link "> <span class="md-ellipsis"> Design & Background </span> </a> <label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="0"> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false"> <label class="md-nav__title" for="__nav_5"> <span class="md-nav__icon md-icon"></span> Design & Background </label> <ul class="md-nav__list" data-md-scrollfix> <li class="md-nav__item"> <a href="../../explanation/faq-altered-versions/" class="md-nav__link"> <span class="md-ellipsis"> "altered versions" license requirement </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="../../changelog/" class="md-nav__link"> <span class="md-ellipsis"> Changelog </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" > <div class="md-sidebar__scrollwrap"> <div class="md-sidebar__inner"> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class="md-nav__title" for="__toc"> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> <li class="md-nav__item"> <a href="#derivepassphrase.cli" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-module"></code> cli </span> </a> <nav class="md-nav" aria-label=" cli"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#derivepassphrase.cli.ClickEchoStderrHandler" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> ClickEchoStderrHandler </span> </a> <nav class="md-nav" aria-label=" ClickEchoStderrHandler"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#derivepassphrase.cli.ClickEchoStderrHandler.emit" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> emit </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.CLIofPackageFormatter" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> CLIofPackageFormatter </span> </a> <nav class="md-nav" aria-label=" CLIofPackageFormatter"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#derivepassphrase.cli.CLIofPackageFormatter.format" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> format </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.StandardCLILogging" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> StandardCLILogging </span> </a> <nav class="md-nav" aria-label=" StandardCLILogging"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#derivepassphrase.cli.StandardCLILogging.ensure_standard_logging" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> ensure_standard_logging </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.StandardCLILogging.ensure_standard_warnings_logging" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> ensure_standard_warnings_logging </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.StandardLoggingContextManager" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> StandardLoggingContextManager </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.StandardWarningsLoggingContextManager" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> StandardWarningsLoggingContextManager </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.OptionGroupOption" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> OptionGroupOption </span> </a> <nav class="md-nav" aria-label=" OptionGroupOption"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#derivepassphrase.cli.OptionGroupOption.option_group_name" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code> option_group_name </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.OptionGroupOption.epilog" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code> epilog </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.CommandWithHelpGroups" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> CommandWithHelpGroups </span> </a> <nav class="md-nav" aria-label=" CommandWithHelpGroups"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#derivepassphrase.cli.CommandWithHelpGroups.collect_usage_pieces" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> collect_usage_pieces </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.CommandWithHelpGroups.get_help_option" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> get_help_option </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.CommandWithHelpGroups.get_short_help_str" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> get_short_help_str </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.CommandWithHelpGroups.format_help_text" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> format_help_text </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.CommandWithHelpGroups.format_options" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> format_options </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.CommandWithHelpGroups.format_commands" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> format_commands </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.CommandWithHelpGroups.format_epilog" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> format_epilog </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.LoggingOption" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> LoggingOption </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.ZshComplete" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> ZshComplete </span> </a> <nav class="md-nav" aria-label=" ZshComplete"> <ul class="md-nav__list"> <li class="md-nav__item"> <a href="#derivepassphrase.cli.ZshComplete.format_completion" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> format_completion </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.PassphraseGenerationOption" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> PassphraseGenerationOption </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.ConfigurationOption" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> ConfigurationOption </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.StorageManagementOption" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> StorageManagementOption </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.CompatibilityOption" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code> CompatibilityOption </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.adjust_logging_level" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> adjust_logging_level </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.color_forcing_callback" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> color_forcing_callback </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.standard_logging_options" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> standard_logging_options </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.derivepassphrase" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> derivepassphrase </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.derivepassphrase_export" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> derivepassphrase_export </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.derivepassphrase_export_vault" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> derivepassphrase_export_vault </span> </a> </li> <li class="md-nav__item"> <a href="#derivepassphrase.cli.derivepassphrase_vault" class="md-nav__link"> <span class="md-ellipsis"> <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code> derivepassphrase_vault </span> </a> </li> </ul> </nav> </li> </ul> </nav> </div> </div> </div> <div class="md-content" data-md-component="content"> <article class="md-content__inner md-typeset"> <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/reference/derivepassphrase.cli.md" title="View source of this page" class="md-content__button md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 18c.56 0 1 .44 1 1s-.44 1-1 1-1-.44-1-1 .44-1 1-1m0-3c-2.73 0-5.06 1.66-6 4 .94 2.34 3.27 4 6 4s5.06-1.66 6-4c-.94-2.34-3.27-4-6-4m0 6.5a2.5 2.5 0 0 1-2.5-2.5 2.5 2.5 0 0 1 2.5-2.5 2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1-2.5 2.5M9.27 20H6V4h7v5h5v4.07c.7.08 1.36.25 2 .49V8l-6-6H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.5a8.2 8.2 0 0 1-1.23-2"/></svg> </a> <h1>Submodule cli</h1> <div class="doc doc-object doc-module"> <h2 id="derivepassphrase.cli" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-module"></code> <span class="doc doc-object-name doc-module-name">derivepassphrase.cli</span> <a href="#derivepassphrase.cli" class="headerlink" title="Permanent link">¶</a></h2> <div class="doc doc-contents first"> <p>Command-line interface for derivepassphrase.</p> <div class="doc doc-children"> <div class="doc doc-object doc-class"> <h3 id="derivepassphrase.cli.ClickEchoStderrHandler" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">ClickEchoStderrHandler</span> <a href="#derivepassphrase.cli.ClickEchoStderrHandler" class="headerlink" title="Permanent link">¶</a></h3> <div class="doc doc-contents "> <p class="doc doc-class-bases"> Bases: <code><a class="autorefs autorefs-external" title="logging.Handler" href="https://docs.python.org/3/library/logging.html#logging.Handler">Handler</a></code></p> <p>A <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/logging.html#logging.Handler"><code>logging.Handler</code></a> for <code>click</code> applications.</p> <p>Outputs log messages to <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/sys.html#sys.stderr"><code>sys.stderr</code></a> via <a class="autorefs autorefs-external" href="https://click.palletsprojects.com/en/8.1.x/api/#click.echo"><code>click.echo</code></a>.</p> <div class="doc doc-children"> <div class="doc doc-object doc-function"> <h4 id="derivepassphrase.cli.ClickEchoStderrHandler.emit" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">emit</span> <a href="#derivepassphrase.cli.ClickEchoStderrHandler.emit" class="headerlink" title="Permanent link">¶</a></h4> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">emit</span><span class="p">(</span><span class="n">record</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="logging.LogRecord" href="https://docs.python.org/3/library/logging.html#logging.LogRecord">LogRecord</a></span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span> </code></pre></div> <div class="doc doc-contents "> <p>Emit a log record.</p> <p>Format the log record, then emit it via <a class="autorefs autorefs-external" href="https://click.palletsprojects.com/en/8.1.x/api/#click.echo"><code>click.echo</code></a> to <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/sys.html#sys.stderr"><code>sys.stderr</code></a>.</p> </div> </div> </div> </div> </div> <div class="doc doc-object doc-class"> <h3 id="derivepassphrase.cli.CLIofPackageFormatter" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">CLIofPackageFormatter</span> <a href="#derivepassphrase.cli.CLIofPackageFormatter" class="headerlink" title="Permanent link">¶</a></h3> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">CLIofPackageFormatter</span><span class="p">(</span> <span class="o">*</span><span class="p">,</span> <span class="n">prog_name</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></span> <span class="o">=</span> <span class="n"><span title="derivepassphrase.cli.PROG_NAME">PROG_NAME</span></span><span class="p">,</span> <span class="n">package_name</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span> <span class="p">)</span> </code></pre></div> <div class="doc doc-contents "> <p class="doc doc-class-bases"> Bases: <code><a class="autorefs autorefs-external" title="logging.Formatter" href="https://docs.python.org/3/library/logging.html#logging.Formatter">Formatter</a></code></p> <p>A <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/logging.html#logging.LogRecord"><code>logging.LogRecord</code></a> formatter for the CLI of a Python package.</p> <p>Assuming a package <code>PKG</code> and loggers within the same hierarchy <code>PKG</code>, format all log records from that hierarchy for proper user feedback on the console. Intended for use with <a href="https://pypi.org/projects/click/"><code>click</code></a> and when <code>PKG</code> provides a command-line tool <code>PKG</code> and when logs from that package should show up as output of the command-line tool.</p> <p>Essentially, this prepends certain short strings to the log message lines to make them readable as standard error output.</p> <p>Because this log output is intended to be displayed on standard error as high-level diagnostic output, you are strongly discouraged from changing the output format to include more tokens besides the log message. Use a dedicated log file handler instead, without this formatter.</p> <div class="doc doc-children"> <div class="doc doc-object doc-function"> <h4 id="derivepassphrase.cli.CLIofPackageFormatter.format" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">format</span> <a href="#derivepassphrase.cli.CLIofPackageFormatter.format" class="headerlink" title="Permanent link">¶</a></h4> <div class="doc-signature highlight"><pre><span></span><code><span class="nb">format</span><span class="p">(</span><span class="nf">record</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="logging.LogRecord" href="https://docs.python.org/3/library/logging.html#logging.LogRecord">LogRecord</a></span><span class="p">)</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></span> </code></pre></div> <div class="doc doc-contents "> <p>Format a log record suitably for standard error console output.</p> <p>Prepend the formatted string <code>"PROG_NAME: LABEL"</code> to each line of the message, where <code>PROG_NAME</code> is the program name, and <code>LABEL</code> depends on the record’s level and on the logger name as follows:</p> <ul> <li>For records at level <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/logging.html#logging.DEBUG"><code>logging.DEBUG</code></a>, <code>LABEL</code> is <code>"Debug: "</code>.</li> <li>For records at level <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/logging.html#logging.INFO"><code>logging.INFO</code></a>, <code>LABEL</code> is the empty string.</li> <li>For records at level <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/logging.html#logging.WARNING"><code>logging.WARNING</code></a>, <code>LABEL</code> is <code>"Deprecation warning: "</code> if the logger is named <code>PKG.deprecation</code> (where <code>PKG</code> is the package name), else <code>"Warning: "</code>.</li> <li>For records at level <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/logging.html#logging.ERROR"><code>logging.ERROR</code></a> and <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/logging.html#logging.CRITICAL"><code>logging.CRITICAL</code></a> <code>"Error: "</code>, <code>LABEL</code> is the empty string.</li> </ul> <p>The level indication strings at level <code>WARNING</code> or above are highlighted. Use <a class="autorefs autorefs-external" href="https://click.palletsprojects.com/en/8.1.x/api/#click.echo"><code>click.echo</code></a> to output them and remove color output if necessary.</p> <p><span class="doc-section-title">Parameters:</span></p> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Description</th> <th>Default</th> </tr> </thead> <tbody> <tr class="doc-section-item"> <td> <code>record</code> </td> <td> <code><a class="autorefs autorefs-external" title="logging.LogRecord" href="https://docs.python.org/3/library/logging.html#logging.LogRecord">LogRecord</a></code> </td> <td> <div class="doc-md-description"> <p>A log record.</p> </div> </td> <td> <em>required</em> </td> </tr> </tbody> </table> <p><span class="doc-section-title">Returns:</span></p> <table> <thead> <tr> <th>Type</th> <th>Description</th> </tr> </thead> <tbody> <tr class="doc-section-item"> <td> <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></code> </td> <td> <div class="doc-md-description"> <p>A formatted log record.</p> </div> </td> </tr> </tbody> </table> <p><span class="doc-section-title">Raises:</span></p> <table> <thead> <tr> <th>Type</th> <th>Description</th> </tr> </thead> <tbody> <tr class="doc-section-item"> <td> <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#AssertionError">AssertionError</a></code> </td> <td> <div class="doc-md-description"> <p>The log level is not supported.</p> </div> </td> </tr> </tbody> </table> </div> </div> </div> </div> </div> <div class="doc doc-object doc-class"> <h3 id="derivepassphrase.cli.StandardCLILogging" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">StandardCLILogging</span> <a href="#derivepassphrase.cli.StandardCLILogging" class="headerlink" title="Permanent link">¶</a></h3> <div class="doc doc-contents "> <p>Set up CLI logging handlers upon instantiation.</p> <div class="doc doc-children"> <div class="doc doc-object doc-function"> <h4 id="derivepassphrase.cli.StandardCLILogging.ensure_standard_logging" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">ensure_standard_logging</span> <span class="doc doc-labels"> <small class="doc doc-label doc-label-classmethod"><code>classmethod</code></small> </span> <a href="#derivepassphrase.cli.StandardCLILogging.ensure_standard_logging" class="headerlink" title="Permanent link">¶</a></h4> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">ensure_standard_logging</span><span class="p">()</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-internal" title="derivepassphrase.cli.StandardLoggingContextManager" href="#derivepassphrase.cli.StandardLoggingContextManager">StandardLoggingContextManager</a></span> </code></pre></div> <div class="doc doc-contents "> <p>Return a context manager to ensure standard logging is set up.</p> </div> </div> <div class="doc doc-object doc-function"> <h4 id="derivepassphrase.cli.StandardCLILogging.ensure_standard_warnings_logging" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">ensure_standard_warnings_logging</span> <span class="doc doc-labels"> <small class="doc doc-label doc-label-classmethod"><code>classmethod</code></small> </span> <a href="#derivepassphrase.cli.StandardCLILogging.ensure_standard_warnings_logging" class="headerlink" title="Permanent link">¶</a></h4> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">ensure_standard_warnings_logging</span><span class="p">()</span> <span class="o">-></span> <span class="p">(</span> <span class="n"><a class="autorefs autorefs-internal" title="derivepassphrase.cli.StandardWarningsLoggingContextManager" href="#derivepassphrase.cli.StandardWarningsLoggingContextManager">StandardWarningsLoggingContextManager</a></span> <span class="p">)</span> </code></pre></div> <div class="doc doc-contents "> <p>Return a context manager to ensure warnings logging is set up.</p> </div> </div> </div> </div> </div> <div class="doc doc-object doc-class"> <h3 id="derivepassphrase.cli.StandardLoggingContextManager" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">StandardLoggingContextManager</span> <a href="#derivepassphrase.cli.StandardLoggingContextManager" class="headerlink" title="Permanent link">¶</a></h3> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">StandardLoggingContextManager</span><span class="p">(</span> <span class="n">handler</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="logging.Handler" href="https://docs.python.org/3/library/logging.html#logging.Handler">Handler</a></span><span class="p">,</span> <span class="n">root_logger</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span> <span class="p">)</span> </code></pre></div> <div class="doc doc-contents "> <p>A reentrant context manager setting up standard CLI logging.</p> <p>Ensures that the given handler (defaulting to the CLI logging handler) is added to the named logger (defaulting to the root logger), and if it had to be added, then that it will be removed upon exiting the context.</p> <p>Reentrant, but not thread safe, because it temporarily modifies global state.</p> <div class="doc doc-children"> </div> </div> </div> <div class="doc doc-object doc-class"> <h3 id="derivepassphrase.cli.StandardWarningsLoggingContextManager" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">StandardWarningsLoggingContextManager</span> <a href="#derivepassphrase.cli.StandardWarningsLoggingContextManager" class="headerlink" title="Permanent link">¶</a></h3> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">StandardWarningsLoggingContextManager</span><span class="p">(</span><span class="n">handler</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="logging.Handler" href="https://docs.python.org/3/library/logging.html#logging.Handler">Handler</a></span><span class="p">)</span> </code></pre></div> <div class="doc doc-contents "> <p class="doc doc-class-bases"> Bases: <code><a class="autorefs autorefs-internal" title="derivepassphrase.cli.StandardLoggingContextManager" href="#derivepassphrase.cli.StandardLoggingContextManager">StandardLoggingContextManager</a></code></p> <p>A reentrant context manager setting up standard warnings logging.</p> <p>Ensures that warnings are being diverted to the logging system, and that the given handler (defaulting to the CLI logging handler) is added to the warnings logger. If the handler had to be added, then it will be removed upon exiting the context.</p> <p>Reentrant, but not thread safe, because it temporarily modifies global state.</p> <div class="doc doc-children"> </div> </div> </div> <div class="doc doc-object doc-class"> <h3 id="derivepassphrase.cli.OptionGroupOption" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">OptionGroupOption</span> <a href="#derivepassphrase.cli.OptionGroupOption" class="headerlink" title="Permanent link">¶</a></h3> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">OptionGroupOption</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="typing_extensions.Any" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Any">Any</a></span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="typing_extensions.Any" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Any">Any</a></span><span class="p">)</span> </code></pre></div> <div class="doc doc-contents "> <p class="doc doc-class-bases"> Bases: <code><a class="autorefs autorefs-external" title="click.Option" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Option">Option</a></code></p> <p>A <a class="autorefs autorefs-external" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Option"><code>click.Option</code></a> with an associated group name and group epilog.</p> <p>Used by <a class="autorefs autorefs-internal" href="#derivepassphrase.cli.CommandWithHelpGroups"><code>CommandWithHelpGroups</code></a> to print help sections. Each subclass contains its own group name and epilog.</p> <p><span class="doc-section-title">Attributes:</span></p> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody> <tr class="doc-section-item"> <td><code><a class="autorefs autorefs-internal" title="derivepassphrase.cli.OptionGroupOption.option_group_name" href="#derivepassphrase.cli.OptionGroupOption.option_group_name">option_group_name</a></code></td> <td> <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#object">object</a></code> </td> <td> <div class="doc-md-description"> <p>The name of the option group. Used as a heading on the help text for options in this section.</p> </div> </td> </tr> <tr class="doc-section-item"> <td><code><a class="autorefs autorefs-internal" title="derivepassphrase.cli.OptionGroupOption.epilog" href="#derivepassphrase.cli.OptionGroupOption.epilog">epilog</a></code></td> <td> <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#object">object</a></code> </td> <td> <div class="doc-md-description"> <p>An epilog to print after listing the options in this section.</p> </div> </td> </tr> </tbody> </table> <div class="doc doc-children"> <div class="doc doc-object doc-attribute"> <h4 id="derivepassphrase.cli.OptionGroupOption.option_group_name" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code> <span class="doc doc-object-name doc-attribute-name">option_group_name</span> <span class="doc doc-labels"> <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small> <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small> </span> <a href="#derivepassphrase.cli.OptionGroupOption.option_group_name" class="headerlink" title="Permanent link">¶</a></h4> <div class="doc-signature highlight"><pre><span></span><code><span class="n">option_group_name</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#object">object</a></span> <span class="o">=</span> <span class="s1">''</span> </code></pre></div> <div class="doc doc-contents "> </div> </div> <div class="doc doc-object doc-attribute"> <h4 id="derivepassphrase.cli.OptionGroupOption.epilog" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code> <span class="doc doc-object-name doc-attribute-name">epilog</span> <span class="doc doc-labels"> <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small> <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small> </span> <a href="#derivepassphrase.cli.OptionGroupOption.epilog" class="headerlink" title="Permanent link">¶</a></h4> <div class="doc-signature highlight"><pre><span></span><code><span class="n">epilog</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#object">object</a></span> <span class="o">=</span> <span class="s1">''</span> </code></pre></div> <div class="doc doc-contents "> </div> </div> </div> </div> </div> <div class="doc doc-object doc-class"> <h3 id="derivepassphrase.cli.CommandWithHelpGroups" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">CommandWithHelpGroups</span> <a href="#derivepassphrase.cli.CommandWithHelpGroups" class="headerlink" title="Permanent link">¶</a></h3> <div class="doc doc-contents "> <p class="doc doc-class-bases"> Bases: <code><a class="autorefs autorefs-external" title="click.Command" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Command">Command</a></code></p> <p>A <a class="autorefs autorefs-external" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Command"><code>click.Command</code></a> with support for some help text customizations.</p> <p>Supports help/option groups, group epilogs, and help text objects (objects that stringify to help texts). The latter is primarily used to implement translations.</p> <p>Inspired by <a href="https://github.com/pallets/click/issues/373#issuecomment-515293746">a comment on <code>pallets/click#373</code></a> for help/option group support, and further modified to include group epilogs and help text objects.</p> <div class="doc doc-children"> <div class="doc doc-object doc-function"> <h4 id="derivepassphrase.cli.CommandWithHelpGroups.collect_usage_pieces" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">collect_usage_pieces</span> <a href="#derivepassphrase.cli.CommandWithHelpGroups.collect_usage_pieces" class="headerlink" title="Permanent link">¶</a></h4> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">collect_usage_pieces</span><span class="p">(</span><span class="n">ctx</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Context">Context</a></span><span class="p">)</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#list">list</a></span><span class="p">[</span><span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></span><span class="p">]</span> </code></pre></div> <div class="doc doc-contents "> <p>Return the pieces for the usage string.</p> <p>Based on code from click 8.1. Subject to the following license (3-clause BSD license):</p> <pre><code>Copyright 2024 Pallets Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. </code></pre> <p>Modifications are marked with respective comments. They too are released under the same license above. The original code did not contain any “noqa” or “pragma” comments.</p> <p><span class="doc-section-title">Parameters:</span></p> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Description</th> <th>Default</th> </tr> </thead> <tbody> <tr class="doc-section-item"> <td> <code>ctx</code> </td> <td> <code><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Context">Context</a></code> </td> <td> <div class="doc-md-description"> <p>The click context.</p> </div> </td> <td> <em>required</em> </td> </tr> </tbody> </table> </div> </div> <div class="doc doc-object doc-function"> <h4 id="derivepassphrase.cli.CommandWithHelpGroups.get_help_option" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">get_help_option</span> <a href="#derivepassphrase.cli.CommandWithHelpGroups.get_help_option" class="headerlink" title="Permanent link">¶</a></h4> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">get_help_option</span><span class="p">(</span><span class="n">ctx</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Context">Context</a></span><span class="p">)</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-external" title="click.Option" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Option">Option</a></span> <span class="o">|</span> <span class="kc">None</span> </code></pre></div> <div class="doc doc-contents "> <p>Return a standard help option object.</p> <p>Based on code from click 8.1. Subject to the following license (3-clause BSD license):</p> <pre><code>Copyright 2024 Pallets Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. </code></pre> <p>Modifications are marked with respective comments. They too are released under the same license above. The original code did not contain any “noqa” or “pragma” comments.</p> <p><span class="doc-section-title">Parameters:</span></p> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Description</th> <th>Default</th> </tr> </thead> <tbody> <tr class="doc-section-item"> <td> <code>ctx</code> </td> <td> <code><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Context">Context</a></code> </td> <td> <div class="doc-md-description"> <p>The click context.</p> </div> </td> <td> <em>required</em> </td> </tr> </tbody> </table> </div> </div> <div class="doc doc-object doc-function"> <h4 id="derivepassphrase.cli.CommandWithHelpGroups.get_short_help_str" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">get_short_help_str</span> <a href="#derivepassphrase.cli.CommandWithHelpGroups.get_short_help_str" class="headerlink" title="Permanent link">¶</a></h4> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">get_short_help_str</span><span class="p">(</span><span class="n">limit</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#int">int</a></span> <span class="o">=</span> <span class="mi">45</span><span class="p">)</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></span> </code></pre></div> <div class="doc doc-contents "> <p>Return the short help string for a command.</p> <p>If only a long help string is given, shorten it.</p> <p>Based on code from click 8.1. Subject to the following license (3-clause BSD license):</p> <pre><code>Copyright 2024 Pallets Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. </code></pre> <p>Modifications are marked with respective comments. They too are released under the same license above. The original code did not contain any “noqa” or “pragma” comments.</p> <p><span class="doc-section-title">Parameters:</span></p> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Description</th> <th>Default</th> </tr> </thead> <tbody> <tr class="doc-section-item"> <td> <code>limit</code> </td> <td> <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#int">int</a></code> </td> <td> <div class="doc-md-description"> <p>The maximum width of the short help string.</p> </div> </td> <td> <code>45</code> </td> </tr> </tbody> </table> </div> </div> <div class="doc doc-object doc-function"> <h4 id="derivepassphrase.cli.CommandWithHelpGroups.format_help_text" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">format_help_text</span> <a href="#derivepassphrase.cli.CommandWithHelpGroups.format_help_text" class="headerlink" title="Permanent link">¶</a></h4> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">format_help_text</span><span class="p">(</span> <span class="n">ctx</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Context">Context</a></span><span class="p">,</span> <span class="n">formatter</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="click.HelpFormatter" href="https://click.palletsprojects.com/en/8.1.x/api/#click.HelpFormatter">HelpFormatter</a></span> <span class="p">)</span> <span class="o">-></span> <span class="kc">None</span> </code></pre></div> <div class="doc doc-contents "> <p>Format the help text prologue, if any.</p> <p>Based on code from click 8.1. Subject to the following license (3-clause BSD license):</p> <pre><code>Copyright 2024 Pallets Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. </code></pre> <p>Modifications are marked with respective comments. They too are released under the same license above. The original code did not contain any “noqa” or “pragma” comments.</p> <p><span class="doc-section-title">Parameters:</span></p> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Description</th> <th>Default</th> </tr> </thead> <tbody> <tr class="doc-section-item"> <td> <code>ctx</code> </td> <td> <code><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Context">Context</a></code> </td> <td> <div class="doc-md-description"> <p>The click context.</p> </div> </td> <td> <em>required</em> </td> </tr> <tr class="doc-section-item"> <td> <code>formatter</code> </td> <td> <code><a class="autorefs autorefs-external" title="click.HelpFormatter" href="https://click.palletsprojects.com/en/8.1.x/api/#click.HelpFormatter">HelpFormatter</a></code> </td> <td> <div class="doc-md-description"> <p>The formatter for the <code>--help</code> listing.</p> </div> </td> <td> <em>required</em> </td> </tr> </tbody> </table> </div> </div> <div class="doc doc-object doc-function"> <h4 id="derivepassphrase.cli.CommandWithHelpGroups.format_options" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">format_options</span> <a href="#derivepassphrase.cli.CommandWithHelpGroups.format_options" class="headerlink" title="Permanent link">¶</a></h4> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">format_options</span><span class="p">(</span> <span class="n">ctx</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Context">Context</a></span><span class="p">,</span> <span class="n">formatter</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="click.HelpFormatter" href="https://click.palletsprojects.com/en/8.1.x/api/#click.HelpFormatter">HelpFormatter</a></span> <span class="p">)</span> <span class="o">-></span> <span class="kc">None</span> </code></pre></div> <div class="doc doc-contents "> <p>Format options on the help listing, grouped into sections.</p> <p>This is a callback for <a class="autorefs autorefs-external" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Command.get_help"><code>click.Command.get_help</code></a> that implements the <code>--help</code> listing, by calling appropriate methods of the <code>formatter</code>. We list all options (like the base implementation), but grouped into sections according to the concrete <a class="autorefs autorefs-external" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Option"><code>click.Option</code></a> subclass being used. If the option is an instance of some subclass of <a class="autorefs autorefs-internal" href="#derivepassphrase.cli.OptionGroupOption"><code>OptionGroupOption</code></a>, then the section heading and the epilog are taken from the <a class="autorefs autorefs-internal" href="#derivepassphrase.cli.OptionGroupOption.option_group_name"><code>option_group_name</code></a> and <a class="autorefs autorefs-internal" href="#derivepassphrase.cli.OptionGroupOption.epilog"><code>epilog</code></a> attributes; otherwise, the section heading is “Options” (or “Other options” if there are other option groups) and the epilog is empty.</p> <p>We unconditionally call <a class="autorefs autorefs-internal" href="#derivepassphrase.cli.CommandWithHelpGroups.format_commands"><code>format_commands</code></a>, and rely on it to act as a no-op if we aren’t actually a <a class="autorefs autorefs-external" href="https://click.palletsprojects.com/en/8.1.x/api/#click.MultiCommand"><code>click.MultiCommand</code></a>.</p> <p>Based on code from click 8.1. Subject to the following license (3-clause BSD license):</p> <pre><code>Copyright 2024 Pallets Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. </code></pre> <p>Modifications are released under the same license above.</p> <p><span class="doc-section-title">Parameters:</span></p> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Description</th> <th>Default</th> </tr> </thead> <tbody> <tr class="doc-section-item"> <td> <code>ctx</code> </td> <td> <code><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Context">Context</a></code> </td> <td> <div class="doc-md-description"> <p>The click context.</p> </div> </td> <td> <em>required</em> </td> </tr> <tr class="doc-section-item"> <td> <code>formatter</code> </td> <td> <code><a class="autorefs autorefs-external" title="click.HelpFormatter" href="https://click.palletsprojects.com/en/8.1.x/api/#click.HelpFormatter">HelpFormatter</a></code> </td> <td> <div class="doc-md-description"> <p>The formatter for the <code>--help</code> listing.</p> </div> </td> <td> <em>required</em> </td> </tr> </tbody> </table> </div> </div> <div class="doc doc-object doc-function"> <h4 id="derivepassphrase.cli.CommandWithHelpGroups.format_commands" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">format_commands</span> <a href="#derivepassphrase.cli.CommandWithHelpGroups.format_commands" class="headerlink" title="Permanent link">¶</a></h4> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">format_commands</span><span class="p">(</span> <span class="n">ctx</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Context">Context</a></span><span class="p">,</span> <span class="n">formatter</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="click.HelpFormatter" href="https://click.palletsprojects.com/en/8.1.x/api/#click.HelpFormatter">HelpFormatter</a></span> <span class="p">)</span> <span class="o">-></span> <span class="kc">None</span> </code></pre></div> <div class="doc doc-contents "> <p>Format the subcommands, if any.</p> <p>If called on a command object that isn’t derived from <a class="autorefs autorefs-external" href="https://click.palletsprojects.com/en/8.1.x/api/#click.MultiCommand"><code>click.MultiCommand</code></a>, then do nothing.</p> <p>Based on code from click 8.1. Subject to the following license (3-clause BSD license):</p> <pre><code>Copyright 2024 Pallets Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. </code></pre> <p>Modifications are marked with respective comments. They too are released under the same license above. The original code did not contain any “noqa” or “pragma” comments.</p> <p><span class="doc-section-title">Parameters:</span></p> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Description</th> <th>Default</th> </tr> </thead> <tbody> <tr class="doc-section-item"> <td> <code>ctx</code> </td> <td> <code><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Context">Context</a></code> </td> <td> <div class="doc-md-description"> <p>The click context.</p> </div> </td> <td> <em>required</em> </td> </tr> <tr class="doc-section-item"> <td> <code>formatter</code> </td> <td> <code><a class="autorefs autorefs-external" title="click.HelpFormatter" href="https://click.palletsprojects.com/en/8.1.x/api/#click.HelpFormatter">HelpFormatter</a></code> </td> <td> <div class="doc-md-description"> <p>The formatter for the <code>--help</code> listing.</p> </div> </td> <td> <em>required</em> </td> </tr> </tbody> </table> </div> </div> <div class="doc doc-object doc-function"> <h4 id="derivepassphrase.cli.CommandWithHelpGroups.format_epilog" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">format_epilog</span> <a href="#derivepassphrase.cli.CommandWithHelpGroups.format_epilog" class="headerlink" title="Permanent link">¶</a></h4> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">format_epilog</span><span class="p">(</span> <span class="n">ctx</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Context">Context</a></span><span class="p">,</span> <span class="n">formatter</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="click.HelpFormatter" href="https://click.palletsprojects.com/en/8.1.x/api/#click.HelpFormatter">HelpFormatter</a></span> <span class="p">)</span> <span class="o">-></span> <span class="kc">None</span> </code></pre></div> <div class="doc doc-contents "> <p>Format the epilog, if any.</p> <p>Based on code from click 8.1. Subject to the following license (3-clause BSD license):</p> <pre><code>Copyright 2024 Pallets Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. </code></pre> <p>Modifications are marked with respective comments. They too are released under the same license above.</p> <p><span class="doc-section-title">Parameters:</span></p> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Description</th> <th>Default</th> </tr> </thead> <tbody> <tr class="doc-section-item"> <td> <code>ctx</code> </td> <td> <code><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Context">Context</a></code> </td> <td> <div class="doc-md-description"> <p>The click context.</p> </div> </td> <td> <em>required</em> </td> </tr> <tr class="doc-section-item"> <td> <code>formatter</code> </td> <td> <code><a class="autorefs autorefs-external" title="click.HelpFormatter" href="https://click.palletsprojects.com/en/8.1.x/api/#click.HelpFormatter">HelpFormatter</a></code> </td> <td> <div class="doc-md-description"> <p>The formatter for the <code>--help</code> listing.</p> </div> </td> <td> <em>required</em> </td> </tr> </tbody> </table> </div> </div> </div> </div> </div> <div class="doc doc-object doc-class"> <h3 id="derivepassphrase.cli.LoggingOption" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">LoggingOption</span> <a href="#derivepassphrase.cli.LoggingOption" class="headerlink" title="Permanent link">¶</a></h3> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">LoggingOption</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="typing_extensions.Any" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Any">Any</a></span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="typing_extensions.Any" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Any">Any</a></span><span class="p">)</span> </code></pre></div> <div class="doc doc-contents "> <p class="doc doc-class-bases"> Bases: <code><a class="autorefs autorefs-internal" title="derivepassphrase.cli.OptionGroupOption" href="#derivepassphrase.cli.OptionGroupOption">OptionGroupOption</a></code></p> <p>Logging options for the CLI.</p> <div class="doc doc-children"> </div> </div> </div> <div class="doc doc-object doc-class"> <h3 id="derivepassphrase.cli.ZshComplete" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">ZshComplete</span> <a href="#derivepassphrase.cli.ZshComplete" class="headerlink" title="Permanent link">¶</a></h3> <div class="doc doc-contents "> <p class="doc doc-class-bases"> Bases: <code><span title="click.shell_completion.ZshComplete">ZshComplete</span></code></p> <p>Zsh completion class that supports colons.</p> <p><code>click</code>’s Zsh completion class (at least v8.1.7 and v8.1.8) uses completion helper functions (provided by Zsh) that parse each completion item into value-description pairs, separated by a colon. Correspondingly, any internal colons in the completion item’s value need to be escaped. <code>click</code> doesn’t do this. So, this subclass overrides those parts, and adds the missing escaping.</p> <div class="doc doc-children"> <div class="doc doc-object doc-function"> <h4 id="derivepassphrase.cli.ZshComplete.format_completion" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">format_completion</span> <a href="#derivepassphrase.cli.ZshComplete.format_completion" class="headerlink" title="Permanent link">¶</a></h4> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">format_completion</span><span class="p">(</span><span class="n">item</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="click.shell_completion.CompletionItem" href="https://click.palletsprojects.com/en/8.1.x/api/#click.shell_completion.CompletionItem">CompletionItem</a></span><span class="p">)</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></span> </code></pre></div> <div class="doc doc-contents "> <p>Return a suitable serialization of the CompletionItem.</p> <p>This serialization ensures colons in the item value are properly escaped.</p> </div> </div> </div> </div> </div> <div class="doc doc-object doc-class"> <h3 id="derivepassphrase.cli.PassphraseGenerationOption" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">PassphraseGenerationOption</span> <a href="#derivepassphrase.cli.PassphraseGenerationOption" class="headerlink" title="Permanent link">¶</a></h3> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">PassphraseGenerationOption</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="typing_extensions.Any" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Any">Any</a></span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="typing_extensions.Any" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Any">Any</a></span><span class="p">)</span> </code></pre></div> <div class="doc doc-contents "> <p class="doc doc-class-bases"> Bases: <code><a class="autorefs autorefs-internal" title="derivepassphrase.cli.OptionGroupOption" href="#derivepassphrase.cli.OptionGroupOption">OptionGroupOption</a></code></p> <p>Passphrase generation options for the CLI.</p> <div class="doc doc-children"> </div> </div> </div> <div class="doc doc-object doc-class"> <h3 id="derivepassphrase.cli.ConfigurationOption" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">ConfigurationOption</span> <a href="#derivepassphrase.cli.ConfigurationOption" class="headerlink" title="Permanent link">¶</a></h3> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">ConfigurationOption</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="typing_extensions.Any" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Any">Any</a></span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="typing_extensions.Any" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Any">Any</a></span><span class="p">)</span> </code></pre></div> <div class="doc doc-contents "> <p class="doc doc-class-bases"> Bases: <code><a class="autorefs autorefs-internal" title="derivepassphrase.cli.OptionGroupOption" href="#derivepassphrase.cli.OptionGroupOption">OptionGroupOption</a></code></p> <p>Configuration options for the CLI.</p> <div class="doc doc-children"> </div> </div> </div> <div class="doc doc-object doc-class"> <h3 id="derivepassphrase.cli.StorageManagementOption" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">StorageManagementOption</span> <a href="#derivepassphrase.cli.StorageManagementOption" class="headerlink" title="Permanent link">¶</a></h3> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">StorageManagementOption</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="typing_extensions.Any" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Any">Any</a></span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="typing_extensions.Any" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Any">Any</a></span><span class="p">)</span> </code></pre></div> <div class="doc doc-contents "> <p class="doc doc-class-bases"> Bases: <code><a class="autorefs autorefs-internal" title="derivepassphrase.cli.OptionGroupOption" href="#derivepassphrase.cli.OptionGroupOption">OptionGroupOption</a></code></p> <p>Storage management options for the CLI.</p> <div class="doc doc-children"> </div> </div> </div> <div class="doc doc-object doc-class"> <h3 id="derivepassphrase.cli.CompatibilityOption" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-class"></code> <span class="doc doc-object-name doc-class-name">CompatibilityOption</span> <a href="#derivepassphrase.cli.CompatibilityOption" class="headerlink" title="Permanent link">¶</a></h3> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">CompatibilityOption</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="typing_extensions.Any" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Any">Any</a></span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="typing_extensions.Any" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Any">Any</a></span><span class="p">)</span> </code></pre></div> <div class="doc doc-contents "> <p class="doc doc-class-bases"> Bases: <code><a class="autorefs autorefs-internal" title="derivepassphrase.cli.OptionGroupOption" href="#derivepassphrase.cli.OptionGroupOption">OptionGroupOption</a></code></p> <p>Compatibility and incompatibility options for the CLI.</p> <div class="doc doc-children"> </div> </div> </div> <div class="doc doc-object doc-function"> <h3 id="derivepassphrase.cli.adjust_logging_level" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">adjust_logging_level</span> <a href="#derivepassphrase.cli.adjust_logging_level" class="headerlink" title="Permanent link">¶</a></h3> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">adjust_logging_level</span><span class="p">(</span> <span class="n">ctx</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Context">Context</a></span><span class="p">,</span> <span class="o">/</span><span class="p">,</span> <span class="n">param</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="click.Parameter" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Parameter">Parameter</a></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#int">int</a></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="p">)</span> <span class="o">-></span> <span class="kc">None</span> </code></pre></div> <div class="doc doc-contents "> <p>Change the logs that are emitted to standard error.</p> <p>This modifies the <a class="autorefs autorefs-internal" href="#derivepassphrase.cli.StandardCLILogging"><code>StandardCLILogging</code></a> settings such that log records at the respective level are emitted, based on the <code>param</code> and the <code>value</code>.</p> </div> </div> <div class="doc doc-object doc-function"> <h3 id="derivepassphrase.cli.color_forcing_callback" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">color_forcing_callback</span> <a href="#derivepassphrase.cli.color_forcing_callback" class="headerlink" title="Permanent link">¶</a></h3> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">color_forcing_callback</span><span class="p">(</span> <span class="n">ctx</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Context">Context</a></span><span class="p">,</span> <span class="n">param</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="click.Parameter" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Parameter">Parameter</a></span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="typing_extensions.Any" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Any">Any</a></span> <span class="p">)</span> <span class="o">-></span> <span class="kc">None</span> </code></pre></div> <div class="doc doc-contents "> <p>Force the <code>click</code> context to honor <code>NO_COLOR</code> and <code>FORCE_COLOR</code>.</p> </div> </div> <div class="doc doc-object doc-function"> <h3 id="derivepassphrase.cli.standard_logging_options" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">standard_logging_options</span> <a href="#derivepassphrase.cli.standard_logging_options" class="headerlink" title="Permanent link">¶</a></h3> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">standard_logging_options</span><span class="p">(</span> <span class="n">f</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="typing.Callable" href="https://docs.python.org/3/library/typing.html#typing.Callable">Callable</a></span><span class="p">[</span><span class="n"><span title="derivepassphrase.cli.P">P</span></span><span class="p">,</span> <span class="n"><span title="derivepassphrase.cli.R">R</span></span><span class="p">]</span> <span class="p">)</span> <span class="o">-></span> <span class="n"><a class="autorefs autorefs-external" title="typing.Callable" href="https://docs.python.org/3/library/typing.html#typing.Callable">Callable</a></span><span class="p">[</span><span class="n"><span title="derivepassphrase.cli.P">P</span></span><span class="p">,</span> <span class="n"><span title="derivepassphrase.cli.R">R</span></span><span class="p">]</span> </code></pre></div> <div class="doc doc-contents "> <p>Decorate the function with standard logging click options.</p> <p>Adds the three click options <code>-v</code>/<code>--verbose</code>, <code>-q</code>/<code>--quiet</code> and <code>--debug</code>, which calls back into the <a class="autorefs autorefs-internal" href="#derivepassphrase.cli.adjust_logging_level"><code>adjust_logging_level</code></a> function (with different argument values).</p> <p><span class="doc-section-title">Parameters:</span></p> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Description</th> <th>Default</th> </tr> </thead> <tbody> <tr class="doc-section-item"> <td> <code>f</code> </td> <td> <code><a class="autorefs autorefs-external" title="typing.Callable" href="https://docs.python.org/3/library/typing.html#typing.Callable">Callable</a>[<span title="derivepassphrase.cli.P">P</span>, <span title="derivepassphrase.cli.R">R</span>]</code> </td> <td> <div class="doc-md-description"> <p>A callable to decorate.</p> </div> </td> <td> <em>required</em> </td> </tr> </tbody> </table> <p><span class="doc-section-title">Returns:</span></p> <table> <thead> <tr> <th>Type</th> <th>Description</th> </tr> </thead> <tbody> <tr class="doc-section-item"> <td> <code><a class="autorefs autorefs-external" title="typing.Callable" href="https://docs.python.org/3/library/typing.html#typing.Callable">Callable</a>[<span title="derivepassphrase.cli.P">P</span>, <span title="derivepassphrase.cli.R">R</span>]</code> </td> <td> <div class="doc-md-description"> <p>The decorated callable.</p> </div> </td> </tr> </tbody> </table> </div> </div> <div class="doc doc-object doc-function"> <h3 id="derivepassphrase.cli.derivepassphrase" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">derivepassphrase</span> <a href="#derivepassphrase.cli.derivepassphrase" class="headerlink" title="Permanent link">¶</a></h3> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">derivepassphrase</span><span class="p">(</span><span class="n">ctx</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Context">Context</a></span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span> </code></pre></div> <div class="doc doc-contents "> <p>Derive a strong passphrase, deterministically, from a master secret.</p> <p>This is a <a href="https://pypi.org/package/click/"><code>click</code></a>-powered command-line interface function, and not intended for programmatic use. See the derivepassphrase(1) manpage for full documentation of the interface. (See also <a class="autorefs autorefs-external" href="https://click.palletsprojects.com/en/8.1.x/api/#click.testing.CliRunner"><code>click.testing.CliRunner</code></a> for controlled, programmatic invocation.)</p> </div> </div> <div class="doc doc-object doc-function"> <h3 id="derivepassphrase.cli.derivepassphrase_export" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">derivepassphrase_export</span> <a href="#derivepassphrase.cli.derivepassphrase_export" class="headerlink" title="Permanent link">¶</a></h3> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">derivepassphrase_export</span><span class="p">(</span><span class="n">ctx</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Context">Context</a></span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span> </code></pre></div> <div class="doc doc-contents "> <p>Export a foreign configuration to standard output.</p> <p>This is a <a href="https://pypi.org/package/click/"><code>click</code></a>-powered command-line interface function, and not intended for programmatic use. See the derivepassphrase-export(1) manpage for full documentation of the interface. (See also <a class="autorefs autorefs-external" href="https://click.palletsprojects.com/en/8.1.x/api/#click.testing.CliRunner"><code>click.testing.CliRunner</code></a> for controlled, programmatic invocation.)</p> </div> </div> <div class="doc doc-object doc-function"> <h3 id="derivepassphrase.cli.derivepassphrase_export_vault" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">derivepassphrase_export_vault</span> <a href="#derivepassphrase.cli.derivepassphrase_export_vault" class="headerlink" title="Permanent link">¶</a></h3> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">derivepassphrase_export_vault</span><span class="p">(</span> <span class="n">ctx</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Context">Context</a></span><span class="p">,</span> <span class="o">/</span><span class="p">,</span> <span class="o">*</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#bytes">bytes</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-external" title="os.PathLike" href="https://docs.python.org/3/library/os.html#os.PathLike">PathLike</a></span><span class="p">[</span><span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></span><span class="p">],</span> <span class="n">formats</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="collections.abc.Sequence" href="https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence">Sequence</a></span><span class="p">[</span> <span class="n"><a class="autorefs autorefs-external" title="typing.Literal" href="https://docs.python.org/3/library/typing.html#typing.Literal">Literal</a></span><span class="p">[</span><span class="s2">"v0.2"</span><span class="p">,</span> <span class="s2">"v0.3"</span><span class="p">,</span> <span class="s2">"storeroom"</span><span class="p">]</span> <span class="p">]</span> <span class="o">=</span> <span class="p">(),</span> <span class="n">key</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#bytes">bytes</a></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="p">)</span> <span class="o">-></span> <span class="kc">None</span> </code></pre></div> <div class="doc doc-contents "> <p>Export a vault-native configuration to standard output.</p> <p>This is a <a href="https://pypi.org/package/click/"><code>click</code></a>-powered command-line interface function, and not intended for programmatic use. See the derivepassphrase-export-vault(1) manpage for full documentation of the interface. (See also <a class="autorefs autorefs-external" href="https://click.palletsprojects.com/en/8.1.x/api/#click.testing.CliRunner"><code>click.testing.CliRunner</code></a> for controlled, programmatic invocation.)</p> </div> </div> <div class="doc doc-object doc-function"> <h3 id="derivepassphrase.cli.derivepassphrase_vault" class="doc doc-heading"> <code class="doc-symbol doc-symbol-heading doc-symbol-function"></code> <span class="doc doc-object-name doc-function-name">derivepassphrase_vault</span> <a href="#derivepassphrase.cli.derivepassphrase_vault" class="headerlink" title="Permanent link">¶</a></h3> <div class="doc-signature highlight"><pre><span></span><code><span class="nf">derivepassphrase_vault</span><span class="p">(</span> <span class="n">ctx</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Context">Context</a></span><span class="p">,</span> <span class="o">/</span><span class="p">,</span> <span class="o">*</span><span class="p">,</span> <span class="n">service</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">use_phrase</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">use_key</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">length</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#int">int</a></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">repeat</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#int">int</a></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">lower</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#int">int</a></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">upper</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#int">int</a></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">number</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#int">int</a></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">space</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#int">int</a></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">dash</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#int">int</a></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">symbol</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#int">int</a></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">edit_notes</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">store_config_only</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">delete_service_settings</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">delete_globals</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">clear_all_settings</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">export_settings</span><span class="p">:</span> <span class="p">(</span> <span class="n"><a class="autorefs autorefs-external" title="typing.TextIO" href="https://docs.python.org/3/library/typing.html#typing.TextIO">TextIO</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-external" title="pathlib.Path" href="https://docs.python.org/3/library/pathlib.html#pathlib.Path">Path</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-external" title="os.PathLike" href="https://docs.python.org/3/library/os.html#os.PathLike">PathLike</a></span><span class="p">[</span><span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></span><span class="p">]</span> <span class="o">|</span> <span class="kc">None</span> <span class="p">)</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">import_settings</span><span class="p">:</span> <span class="p">(</span> <span class="n"><a class="autorefs autorefs-external" title="typing.TextIO" href="https://docs.python.org/3/library/typing.html#typing.TextIO">TextIO</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-external" title="pathlib.Path" href="https://docs.python.org/3/library/pathlib.html#pathlib.Path">Path</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-external" title="os.PathLike" href="https://docs.python.org/3/library/os.html#os.PathLike">PathLike</a></span><span class="p">[</span><span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></span><span class="p">]</span> <span class="o">|</span> <span class="kc">None</span> <span class="p">)</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">overwrite_config</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">unset_settings</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="collections.abc.Sequence" href="https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence">Sequence</a></span><span class="p">[</span><span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></span><span class="p">]</span> <span class="o">=</span> <span class="p">(),</span> <span class="n">export_as</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="typing.Literal" href="https://docs.python.org/3/library/typing.html#typing.Literal">Literal</a></span><span class="p">[</span><span class="s2">"json"</span><span class="p">,</span> <span class="s2">"sh"</span><span class="p">]</span> <span class="o">=</span> <span class="s2">"json"</span><span class="p">,</span> <span class="p">)</span> <span class="o">-></span> <span class="kc">None</span> </code></pre></div> <div class="doc doc-contents "> <p>Derive a passphrase using the vault(1) derivation scheme.</p> <p>This is a <a href="https://pypi.org/package/click/"><code>click</code></a>-powered command-line interface function, and not intended for programmatic use. See the derivepassphrase-vault(1) manpage for full documentation of the interface. (See also <a class="autorefs autorefs-external" href="https://click.palletsprojects.com/en/8.1.x/api/#click.testing.CliRunner"><code>click.testing.CliRunner</code></a> for controlled, programmatic invocation.)</p> <p><span class="doc-section-title">Parameters:</span></p> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Description</th> <th>Default</th> </tr> </thead> <tbody> <tr class="doc-section-item"> <td> <code>ctx</code> </td> <td> <code><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/8.1.x/api/#click.Context">Context</a></code> </td> <td> <div class="doc-md-description"> <p>The <code>click</code> context.</p> </div> </td> <td> <em>required</em> </td> </tr> </tbody> </table> <p><span class="doc-section-title">Other Parameters:</span></p> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody> <tr class="doc-section-item"> <td><code>service</code></td> <td> <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a> | None</code> </td> <td> <div class="doc-md-description"> <p>A service name. Required, unless operating on global settings or importing/exporting settings.</p> </div> </td> </tr> <tr class="doc-section-item"> <td><code>use_phrase</code></td> <td> <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></code> </td> <td> <div class="doc-md-description"> <p>Command-line argument <code>-p</code>/<code>--phrase</code>. If given, query the user for a passphrase instead of an SSH key.</p> </div> </td> </tr> <tr class="doc-section-item"> <td><code>use_key</code></td> <td> <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></code> </td> <td> <div class="doc-md-description"> <p>Command-line argument <code>-k</code>/<code>--key</code>. If given, query the user for an SSH key instead of a passphrase.</p> </div> </td> </tr> <tr class="doc-section-item"> <td><code>length</code></td> <td> <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#int">int</a> | None</code> </td> <td> <div class="doc-md-description"> <p>Command-line argument <code>-l</code>/<code>--length</code>. Override the default length of the generated passphrase.</p> </div> </td> </tr> <tr class="doc-section-item"> <td><code>repeat</code></td> <td> <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#int">int</a> | None</code> </td> <td> <div class="doc-md-description"> <p>Command-line argument <code>-r</code>/<code>--repeat</code>. Override the default repetition limit if positive, or disable the repetition limit if 0.</p> </div> </td> </tr> <tr class="doc-section-item"> <td><code>lower</code></td> <td> <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#int">int</a> | None</code> </td> <td> <div class="doc-md-description"> <p>Command-line argument <code>--lower</code>. Require a given amount of ASCII lowercase characters if positive, else forbid ASCII lowercase characters if 0.</p> </div> </td> </tr> <tr class="doc-section-item"> <td><code>upper</code></td> <td> <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#int">int</a> | None</code> </td> <td> <div class="doc-md-description"> <p>Command-line argument <code>--upper</code>. Same as <code>lower</code>, but for ASCII uppercase characters.</p> </div> </td> </tr> <tr class="doc-section-item"> <td><code>number</code></td> <td> <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#int">int</a> | None</code> </td> <td> <div class="doc-md-description"> <p>Command-line argument <code>--number</code>. Same as <code>lower</code>, but for ASCII digits.</p> </div> </td> </tr> <tr class="doc-section-item"> <td><code>space</code></td> <td> <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#int">int</a> | None</code> </td> <td> <div class="doc-md-description"> <p>Command-line argument <code>--space</code>. Same as <code>lower</code>, but for the space character.</p> </div> </td> </tr> <tr class="doc-section-item"> <td><code>dash</code></td> <td> <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#int">int</a> | None</code> </td> <td> <div class="doc-md-description"> <p>Command-line argument <code>--dash</code>. Same as <code>lower</code>, but for the hyphen-minus and underscore characters.</p> </div> </td> </tr> <tr class="doc-section-item"> <td><code>symbol</code></td> <td> <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#int">int</a> | None</code> </td> <td> <div class="doc-md-description"> <p>Command-line argument <code>--symbol</code>. Same as <code>lower</code>, but for all other ASCII printable characters (except backquote).</p> </div> </td> </tr> <tr class="doc-section-item"> <td><code>edit_notes</code></td> <td> <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></code> </td> <td> <div class="doc-md-description"> <p>Command-line argument <code>-n</code>/<code>--notes</code>. If given, spawn an editor to edit notes for <code>service</code>.</p> </div> </td> </tr> <tr class="doc-section-item"> <td><code>store_config_only</code></td> <td> <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></code> </td> <td> <div class="doc-md-description"> <p>Command-line argument <code>-c</code>/<code>--config</code>. If given, saves the other given settings (<code>--key</code>, …, <code>--symbol</code>) to the configuration file, either specifically for <code>service</code> or as global settings.</p> </div> </td> </tr> <tr class="doc-section-item"> <td><code>delete_service_settings</code></td> <td> <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></code> </td> <td> <div class="doc-md-description"> <p>Command-line argument <code>-x</code>/<code>--delete</code>. If given, removes the settings for <code>service</code> from the configuration file.</p> </div> </td> </tr> <tr class="doc-section-item"> <td><code>delete_globals</code></td> <td> <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></code> </td> <td> <div class="doc-md-description"> <p>Command-line argument <code>--delete-globals</code>. If given, removes the global settings from the configuration file.</p> </div> </td> </tr> <tr class="doc-section-item"> <td><code>clear_all_settings</code></td> <td> <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></code> </td> <td> <div class="doc-md-description"> <p>Command-line argument <code>-X</code>/<code>--clear</code>. If given, removes all settings from the configuration file.</p> </div> </td> </tr> <tr class="doc-section-item"> <td><code>export_settings</code></td> <td> <code><a class="autorefs autorefs-external" title="typing.TextIO" href="https://docs.python.org/3/library/typing.html#typing.TextIO">TextIO</a> | <a class="autorefs autorefs-external" title="pathlib.Path" href="https://docs.python.org/3/library/pathlib.html#pathlib.Path">Path</a> | <a class="autorefs autorefs-external" title="os.PathLike" href="https://docs.python.org/3/library/os.html#os.PathLike">PathLike</a>[<a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a>] | None</code> </td> <td> <div class="doc-md-description"> <p>Command-line argument <code>-e</code>/<code>--export</code>. If a file object, then it must be open for writing and accept <code>str</code> inputs. Otherwise, a filename to open for writing. Using <code>-</code> for standard output is supported.</p> </div> </td> </tr> <tr class="doc-section-item"> <td><code>import_settings</code></td> <td> <code><a class="autorefs autorefs-external" title="typing.TextIO" href="https://docs.python.org/3/library/typing.html#typing.TextIO">TextIO</a> | <a class="autorefs autorefs-external" title="pathlib.Path" href="https://docs.python.org/3/library/pathlib.html#pathlib.Path">Path</a> | <a class="autorefs autorefs-external" title="os.PathLike" href="https://docs.python.org/3/library/os.html#os.PathLike">PathLike</a>[<a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a>] | None</code> </td> <td> <div class="doc-md-description"> <p>Command-line argument <code>-i</code>/<code>--import</code>. If a file object, it must be open for reading and yield <code>str</code> values. Otherwise, a filename to open for reading. Using <code>-</code> for standard input is supported.</p> </div> </td> </tr> <tr class="doc-section-item"> <td><code>overwrite_config</code></td> <td> <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></code> </td> <td> <div class="doc-md-description"> <p>Command-line arguments <code>--overwrite-existing</code> (True) and <code>--merge-existing</code> (False). Controls whether config saving and config importing overwrite existing configurations, or merge them section-wise instead.</p> </div> </td> </tr> <tr class="doc-section-item"> <td><code>unset_settings</code></td> <td> <code><a class="autorefs autorefs-external" title="collections.abc.Sequence" href="https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence">Sequence</a>[<a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a>]</code> </td> <td> <div class="doc-md-description"> <p>Command-line argument <code>--unset</code>. If given together with <code>--config</code>, unsets the specified settings (in addition to any other changes requested).</p> </div> </td> </tr> <tr class="doc-section-item"> <td><code>export_as</code></td> <td> <code><a class="autorefs autorefs-external" title="typing.Literal" href="https://docs.python.org/3/library/typing.html#typing.Literal">Literal</a>['json', 'sh']</code> </td> <td> <div class="doc-md-description"> <p>Command-line argument <code>--export-as</code>. If given together with <code>--export</code>, selects the format to export the current configuration as: JSON (“json”, default) or POSIX sh (“sh”).</p> </div> </td> </tr> </tbody> </table> </div> </div> </div> </div> </div> </article> </div> </div> </main> <footer class="md-footer"> <nav class="md-footer__inner md-grid" aria-label="Footer" > <a href="../derivepassphrase-export-vault.1/" class="md-footer__link md-footer__link--prev" aria-label="Previous: derivepassphrase-export-vault(1)"> <div class="md-footer__button md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </div> <div class="md-footer__title"> <span class="md-footer__direction"> Previous </span> <div class="md-ellipsis"> derivepassphrase-export-vault(1) </div> </div> </a> <a href="../derivepassphrase.exporter/" class="md-footer__link md-footer__link--next" aria-label="Next: Subpackage exporter"> <div class="md-footer__title"> <span class="md-footer__direction"> Next </span> <div class="md-ellipsis"> Subpackage exporter </div> </div> <div class="md-footer__button md-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"/></svg> </div> </a> </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-copyright"> <div class="md-copyright__highlight"> Copyright © 2025 Marco Ricci (the-13th-letter) </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> and <a href="https://mkdocstrings.github.io/python/" target="_blank" rel="noopener"> mkdocstrings-python </a> </div> </div> </div> </footer> </div> <div class="md-dialog" data-md-component="dialog"> <div class="md-dialog__inner md-typeset"></div> </div> </body> </html>