Deployed ee6f43b6be48 to 0.x with MkDocs 1.6.1 and mike 2.1.3
Marco Ricci

Marco Ricci commited on 2025-06-24 22:13:29
Zeige 56 geänderte Dateien mit 412 Einfügungen und 16731 Löschungen.

... ...
@@ -265,7 +265,7 @@
265 265
   </label>
266 266
   
267 267
     <div class="md-nav__source">
268
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
268
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
269 269
   <div class="md-source__icon md-icon">
270 270
     
271 271
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -278,7 +278,7 @@
278 278
   </label>
279 279
   
280 280
     <div class="md-nav__source">
281
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
281
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
282 282
   <div class="md-source__icon md-icon">
283 283
     
284 284
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1225,6 +1225,30 @@
1225 1225
     </label>
1226 1226
     <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1227 1227
       
1228
+        <li class="md-nav__item">
1229
+  <a href="#v0.5.1" class="md-nav__link">
1230
+    <span class="md-ellipsis">
1231
+      0.5.1 (2025-06-24)
1232
+    </span>
1233
+  </a>
1234
+  
1235
+    <nav class="md-nav" aria-label="0.5.1 (2025-06-24)">
1236
+      <ul class="md-nav__list">
1237
+        
1238
+          <li class="md-nav__item">
1239
+  <a href="#fixed-in-v0.5.1" class="md-nav__link">
1240
+    <span class="md-ellipsis">
1241
+      Fixed
1242
+    </span>
1243
+  </a>
1244
+  
1245
+</li>
1246
+        
1247
+      </ul>
1248
+    </nav>
1249
+  
1250
+</li>
1251
+      
1228 1252
         <li class="md-nav__item">
1229 1253
   <a href="#v0.5" class="md-nav__link">
1230 1254
     <span class="md-ellipsis">
... ...
@@ -1727,6 +1751,30 @@
1727 1751
     </label>
1728 1752
     <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1729 1753
       
1754
+        <li class="md-nav__item">
1755
+  <a href="#v0.5.1" class="md-nav__link">
1756
+    <span class="md-ellipsis">
1757
+      0.5.1 (2025-06-24)
1758
+    </span>
1759
+  </a>
1760
+  
1761
+    <nav class="md-nav" aria-label="0.5.1 (2025-06-24)">
1762
+      <ul class="md-nav__list">
1763
+        
1764
+          <li class="md-nav__item">
1765
+  <a href="#fixed-in-v0.5.1" class="md-nav__link">
1766
+    <span class="md-ellipsis">
1767
+      Fixed
1768
+    </span>
1769
+  </a>
1770
+  
1771
+</li>
1772
+        
1773
+      </ul>
1774
+    </nav>
1775
+  
1776
+</li>
1777
+      
1730 1778
         <li class="md-nav__item">
1731 1779
   <a href="#v0.5" class="md-nav__link">
1732 1780
     <span class="md-ellipsis">
... ...
@@ -2101,7 +2149,7 @@
2101 2149
     
2102 2150
       
2103 2151
     
2104
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/changelog.md" title="View source of this page" class="md-content__button md-icon">
2152
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/master/docs/changelog.md" title="View source of this page" class="md-content__button md-icon">
2105 2153
       
2106 2154
       <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>
2107 2155
     </a>
... ...
@@ -2145,7 +2193,7 @@ Semantic Versioning and Keep a Changelog definitions.</p>
2145 2193
 <p class="admonition-title">Legend: symbols</p>
2146 2194
 <p><ul style="list-style-type: none;">
2147 2195
 <li><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14 12h-4v-2h4m0 6h-4v-2h4m6-6h-2.81a6 6 0 0 0-1.82-1.96L17 4.41 15.59 3l-2.17 2.17a6 6 0 0 0-2.83 0L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20z"/></svg></span> &mdash; a related bug entry from the wishlist page
2148
-<li><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.06 1.93C7.17 1.92 5.33 3.74 6.17 6H3a2 2 0 0 0-2 2v2a1 1 0 0 0 1 1h9V8h2v3h9a1 1 0 0 0 1-1V8a2 2 0 0 0-2-2h-3.17C19 2.73 14.6.42 12.57 3.24L12 4l-.57-.78c-.63-.89-1.5-1.28-2.37-1.29M9 4c.89 0 1.34 1.08.71 1.71S8 5.89 8 5a1 1 0 0 1 1-1m6 0c.89 0 1.34 1.08.71 1.71S14 5.89 14 5a1 1 0 0 1 1-1M2 12v8a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-8h-9v8h-2v-8z"/></svg></span> &mdash; a related wishlist entry from the wishlist page
2196
+<li><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M23 18h-3v-3h-2v3h-3v2h3v3h2v-3h3M6 2a2 2 0 0 0-2 2v16c0 1.11.89 2 2 2h7.81c-.36-.62-.61-1.3-.73-2H6V4h7v5h5v4.08c.33-.05.67-.08 1-.08.34 0 .67.03 1 .08V8l-6-6M8 12v2h8v-2m-8 4v2h5v-2Z"/></svg></span> &mdash; a related wishlist entry from the wishlist page
2149 2197
 </ul></p>
2150 2198
 </div>
2151 2199
 <aside>
... ...
@@ -2157,6 +2205,21 @@ specifically marked as such.)
2157 2205
 </aside>
2158 2206
 <!-- scriv changelog start -->
2159 2207
 
2208
+<h2 id="v0.5.1">0.5.1 (2025-06-24)<a class="headerlink" href="#v0.5.1" title="Permanent link">&para;</a></h2>
2209
+<h3 id="fixed-in-v0.5.1">Fixed<a class="headerlink" href="#fixed-in-v0.5.1" title="Permanent link">&para;</a></h3>
2210
+<ul>
2211
+<li>
2212
+<p>Add icons and more internal links (reference documentation, wishlist
2213
+    entries) to the changelog.</p>
2214
+</li>
2215
+<li>
2216
+<p>Change the upstream URLs for the issue/wishlist tracking and the source
2217
+    code away from the GitHub mirror, and to the private hosting sites.</p>
2218
+</li>
2219
+<li>
2220
+<p>Declare support for Python 3.14 (as of beta 3).</p>
2221
+</li>
2222
+</ul>
2160 2223
 <h2 id="v0.5">0.5 (2025-06-14)<a class="headerlink" href="#v0.5" title="Permanent link">&para;</a></h2>
2161 2224
 <h3 id="removed-in-v0.5">Removed<a class="headerlink" href="#removed-in-v0.5" title="Permanent link">&para;</a></h3>
2162 2225
 <ul>
... ...
@@ -2173,7 +2236,7 @@ Until a consensus is reached and automatic colored/styled output can be
2173 2236
 requested or rejected reliably across different terminal programs, we
2174 2237
 will rather emit only uncolored, unstyled, lowest-common-denominator
2175 2238
 device-independent output.
2176
-→<a href="../wishlist/conventional-configurable-text-styling/" title="Wish entry: “derivepassphrase vault should support conventional and configurable text styling”"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.06 1.93C7.17 1.92 5.33 3.74 6.17 6H3a2 2 0 0 0-2 2v2a1 1 0 0 0 1 1h9V8h2v3h9a1 1 0 0 0 1-1V8a2 2 0 0 0-2-2h-3.17C19 2.73 14.6.42 12.57 3.24L12 4l-.57-.78c-.63-.89-1.5-1.28-2.37-1.29M9 4c.89 0 1.34 1.08.71 1.71S8 5.89 8 5a1 1 0 0 1 1-1m6 0c.89 0 1.34 1.08.71 1.71S14 5.89 14 5a1 1 0 0 1 1-1M2 12v8a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-8h-9v8h-2v-8z"/></svg></span></a></p>
2239
+→<a href="../wishlist/conventional-configurable-text-styling/" title="Wish entry: “derivepassphrase vault should support conventional and configurable text styling”"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M23 18h-3v-3h-2v3h-3v2h3v3h2v-3h3M6 2a2 2 0 0 0-2 2v16c0 1.11.89 2 2 2h7.81c-.36-.62-.61-1.3-.73-2H6V4h7v5h5v4.08c.33-.05.67-.08 1-.08.34 0 .67.03 1 .08V8l-6-6M8 12v2h8v-2m-8 4v2h5v-2Z"/></svg></span></a></p>
2177 2240
 </li>
2178 2241
 </ul>
2179 2242
 <h3 id="added-in-v0.5">Added<a class="headerlink" href="#added-in-v0.5" title="Permanent link">&para;</a></h3>
... ...
@@ -2224,7 +2287,7 @@ type in, and because they do not have practical security implications.</p>
2224 2287
 <p>For <a href="../reference/derivepassphrase-vault.1/"><code>derivepassphrase vault</code></a>, support printing the service
2225 2288
     notes before the passphrase, as an alternative, instead of always
2226 2289
     printing them <em>after</em> the passphrase.
2227
-    →<a href="../wishlist/print-service-notes-above/" title="Wish entry: “derivepassphrase vault should be able to print service notes above the passphrase”"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.06 1.93C7.17 1.92 5.33 3.74 6.17 6H3a2 2 0 0 0-2 2v2a1 1 0 0 0 1 1h9V8h2v3h9a1 1 0 0 0 1-1V8a2 2 0 0 0-2-2h-3.17C19 2.73 14.6.42 12.57 3.24L12 4l-.57-.78c-.63-.89-1.5-1.28-2.37-1.29M9 4c.89 0 1.34 1.08.71 1.71S8 5.89 8 5a1 1 0 0 1 1-1m6 0c.89 0 1.34 1.08.71 1.71S14 5.89 14 5a1 1 0 0 1 1-1M2 12v8a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-8h-9v8h-2v-8z"/></svg></span></a></p>
2290
+    →<a href="../wishlist/print-service-notes-above/" title="Wish entry: “derivepassphrase vault should be able to print service notes above the passphrase”"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M23 18h-3v-3h-2v3h-3v2h3v3h2v-3h3M6 2a2 2 0 0 0-2 2v16c0 1.11.89 2 2 2h7.81c-.36-.62-.61-1.3-.73-2H6V4h7v5h5v4.08c.33-.05.67-.08 1-.08.34 0 .67.03 1 .08V8l-6-6M8 12v2h8v-2m-8 4v2h5v-2Z"/></svg></span></a></p>
2228 2291
 </li>
2229 2292
 <li>
2230 2293
 <p>In the <code>--version</code> option of <a href="../reference/derivepassphrase.1/"><code>derivepassphrase</code></a> and each
... ...
@@ -2232,7 +2295,7 @@ type in, and because they do not have practical security implications.</p>
2232 2295
     as supported subcommands, derivation schemes, foreign configuration
2233 2296
     formats and active <a href="https://peps.python.org/pep-0508/">PEP 508 extras</a>.
2234 2297
     (Each subcommand only reports the items relevant to that subcommand.)
2235
-    →<a href="../wishlist/report-build-flags-and-features/" title="Wish entry: “derivepassphrase should report its build flags and supported features”"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.06 1.93C7.17 1.92 5.33 3.74 6.17 6H3a2 2 0 0 0-2 2v2a1 1 0 0 0 1 1h9V8h2v3h9a1 1 0 0 0 1-1V8a2 2 0 0 0-2-2h-3.17C19 2.73 14.6.42 12.57 3.24L12 4l-.57-.78c-.63-.89-1.5-1.28-2.37-1.29M9 4c.89 0 1.34 1.08.71 1.71S8 5.89 8 5a1 1 0 0 1 1-1m6 0c.89 0 1.34 1.08.71 1.71S14 5.89 14 5a1 1 0 0 1 1-1M2 12v8a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-8h-9v8h-2v-8z"/></svg></span></a></p>
2298
+    →<a href="../wishlist/report-build-flags-and-features/" title="Wish entry: “derivepassphrase should report its build flags and supported features”"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M23 18h-3v-3h-2v3h-3v2h3v3h2v-3h3M6 2a2 2 0 0 0-2 2v16c0 1.11.89 2 2 2h7.81c-.36-.62-.61-1.3-.73-2H6V4h7v5h5v4.08c.33-.05.67-.08 1-.08.34 0 .67.03 1 .08V8l-6-6M8 12v2h8v-2m-8 4v2h5v-2Z"/></svg></span></a></p>
2236 2299
 </li>
2237 2300
 <li>
2238 2301
 <p>For developers: Rewrite the tests concerning <a href="../reference/derivepassphrase-vault.1/"><code>derivepassphrase
... ...
@@ -2336,7 +2399,7 @@ made.</p>
2336 2399
     better built-in query functionality for the effective configuration is
2337 2400
     available, because users should not be rewarded for meddling around in
2338 2401
     data files.
2339
-    →<a href="../wishlist/pretty-print-json/" title="Wish entry: “derivepassphrase vault should store and export the vault configuration in pretty-printed JSON”"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.06 1.93C7.17 1.92 5.33 3.74 6.17 6H3a2 2 0 0 0-2 2v2a1 1 0 0 0 1 1h9V8h2v3h9a1 1 0 0 0 1-1V8a2 2 0 0 0-2-2h-3.17C19 2.73 14.6.42 12.57 3.24L12 4l-.57-.78c-.63-.89-1.5-1.28-2.37-1.29M9 4c.89 0 1.34 1.08.71 1.71S8 5.89 8 5a1 1 0 0 1 1-1m6 0c.89 0 1.34 1.08.71 1.71S14 5.89 14 5a1 1 0 0 1 1-1M2 12v8a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-8h-9v8h-2v-8z"/></svg></span></a></p>
2402
+    →<a href="../wishlist/pretty-print-json/" title="Wish entry: “derivepassphrase vault should store and export the vault configuration in pretty-printed JSON”"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M23 18h-3v-3h-2v3h-3v2h3v3h2v-3h3M6 2a2 2 0 0 0-2 2v16c0 1.11.89 2 2 2h7.81c-.36-.62-.61-1.3-.73-2H6V4h7v5h5v4.08c.33-.05.67-.08 1-.08.34 0 .67.03 1 .08V8l-6-6M8 12v2h8v-2m-8 4v2h5v-2Z"/></svg></span></a></p>
2340 2403
 </li>
2341 2404
 </ul>
2342 2405
 <h3 id="fixed-in-v0.5">Fixed<a class="headerlink" href="#fixed-in-v0.5" title="Permanent link">&para;</a></h3>
... ...
@@ -2351,7 +2414,7 @@ made.</p>
2351 2414
 <p>For <a href="../reference/derivepassphrase-vault.1/"><code>derivepassphrase vault</code></a>, when exporting a vault
2352 2415
     configuration, export a pretty-printed configuration, to ease debugging
2353 2416
     and introspection.
2354
-    →<a href="../wishlist/pretty-print-json/" title="Wish entry: “derivepassphrase vault should store and export the vault configuration in pretty-printed JSON”"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.06 1.93C7.17 1.92 5.33 3.74 6.17 6H3a2 2 0 0 0-2 2v2a1 1 0 0 0 1 1h9V8h2v3h9a1 1 0 0 0 1-1V8a2 2 0 0 0-2-2h-3.17C19 2.73 14.6.42 12.57 3.24L12 4l-.57-.78c-.63-.89-1.5-1.28-2.37-1.29M9 4c.89 0 1.34 1.08.71 1.71S8 5.89 8 5a1 1 0 0 1 1-1m6 0c.89 0 1.34 1.08.71 1.71S14 5.89 14 5a1 1 0 0 1 1-1M2 12v8a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-8h-9v8h-2v-8z"/></svg></span></a></p>
2417
+    →<a href="../wishlist/pretty-print-json/" title="Wish entry: “derivepassphrase vault should store and export the vault configuration in pretty-printed JSON”"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M23 18h-3v-3h-2v3h-3v2h3v3h2v-3h3M6 2a2 2 0 0 0-2 2v16c0 1.11.89 2 2 2h7.81c-.36-.62-.61-1.3-.73-2H6V4h7v5h5v4.08c.33-.05.67-.08 1-.08.34 0 .67.03 1 .08V8l-6-6M8 12v2h8v-2m-8 4v2h5v-2Z"/></svg></span></a></p>
2355 2418
 </li>
2356 2419
 <li>
2357 2420
 <p>For <a href="../reference/derivepassphrase-vault.1/"><code>derivepassphrase vault</code></a>, also print the service notes
... ...
@@ -2521,7 +2584,7 @@ They may still otherwise be used normally.</p>
2521 2584
 <li>Add SSH agent spawning support to the test suite.
2522 2585
     Use this support to test the agent functionality on all known major SSH
2523 2586
     agent implementations automatically.
2524
-    →<a href="../wishlist/test-suite-isolated-ssh-agent/" title="Wish entry: “Support and isolate OpenSSH's ssh-agent and PuTTY's pageant in the test suite”"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.06 1.93C7.17 1.92 5.33 3.74 6.17 6H3a2 2 0 0 0-2 2v2a1 1 0 0 0 1 1h9V8h2v3h9a1 1 0 0 0 1-1V8a2 2 0 0 0-2-2h-3.17C19 2.73 14.6.42 12.57 3.24L12 4l-.57-.78c-.63-.89-1.5-1.28-2.37-1.29M9 4c.89 0 1.34 1.08.71 1.71S8 5.89 8 5a1 1 0 0 1 1-1m6 0c.89 0 1.34 1.08.71 1.71S14 5.89 14 5a1 1 0 0 1 1-1M2 12v8a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-8h-9v8h-2v-8z"/></svg></span></a></li>
2587
+    →<a href="../wishlist/test-suite-isolated-ssh-agent/" title="Wish entry: “Support and isolate OpenSSH's ssh-agent and PuTTY's pageant in the test suite”"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M23 18h-3v-3h-2v3h-3v2h3v3h2v-3h3M6 2a2 2 0 0 0-2 2v16c0 1.11.89 2 2 2h7.81c-.36-.62-.61-1.3-.73-2H6V4h7v5h5v4.08c.33-.05.67-.08 1-.08.34 0 .67.03 1 .08V8l-6-6M8 12v2h8v-2m-8 4v2h5v-2Z"/></svg></span></a></li>
2525 2588
 <li>Add <a href="https://pypi.org/project/hypothesis/">hypothesis</a>-based tests to the test suite.</li>
2526 2589
 <li>Update README to add explanations for virtual environments and package
2527 2590
     extras.</li>
... ...
@@ -2628,7 +2691,7 @@ settings from disk.</p>
2628 2691
     storeroom formats.</p>
2629 2692
 <p>This feature requires the <code>cryptography</code> Python module, but is available
2630 2693
 even if <code>vault</code> is not installed.
2631
-→<a href="../wishlist/export-vault-formats/" title="Wish entry: “Support data export from vault v0.2, vault v0.3, and storeroom storage formats”"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.06 1.93C7.17 1.92 5.33 3.74 6.17 6H3a2 2 0 0 0-2 2v2a1 1 0 0 0 1 1h9V8h2v3h9a1 1 0 0 0 1-1V8a2 2 0 0 0-2-2h-3.17C19 2.73 14.6.42 12.57 3.24L12 4l-.57-.78c-.63-.89-1.5-1.28-2.37-1.29M9 4c.89 0 1.34 1.08.71 1.71S8 5.89 8 5a1 1 0 0 1 1-1m6 0c.89 0 1.34 1.08.71 1.71S14 5.89 14 5a1 1 0 0 1 1-1M2 12v8a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-8h-9v8h-2v-8z"/></svg></span></a></p>
2694
+→<a href="../wishlist/export-vault-formats/" title="Wish entry: “Support data export from vault v0.2, vault v0.3, and storeroom storage formats”"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M23 18h-3v-3h-2v3h-3v2h3v3h2v-3h3M6 2a2 2 0 0 0-2 2v16c0 1.11.89 2 2 2h7.81c-.36-.62-.61-1.3-.73-2H6V4h7v5h5v4.08c.33-.05.67-.08 1-.08.34 0 .67.03 1 .08V8l-6-6M8 12v2h8v-2m-8 4v2h5v-2Z"/></svg></span></a></p>
2632 2695
 </li>
2633 2696
 </ul>
2634 2697
 <h3 id="fixed-in-v0.2.0">Fixed<a class="headerlink" href="#fixed-in-v0.2.0" title="Permanent link">&para;</a></h3>
... ...
@@ -2667,13 +2730,13 @@ even if <code>vault</code> is not installed.
2667 2730
 instead of globally.
2668 2731
 Automatically fall back to, and migrate, the old global settings file if
2669 2732
 no subsystem-specific configuration was found.
2670
-→<a href="../wishlist/other-derivation-schemes/" title="Wish entry: “Consider implementing passphrase schemes other than vault's”"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.06 1.93C7.17 1.92 5.33 3.74 6.17 6H3a2 2 0 0 0-2 2v2a1 1 0 0 0 1 1h9V8h2v3h9a1 1 0 0 0 1-1V8a2 2 0 0 0-2-2h-3.17C19 2.73 14.6.42 12.57 3.24L12 4l-.57-.78c-.63-.89-1.5-1.28-2.37-1.29M9 4c.89 0 1.34 1.08.71 1.71S8 5.89 8 5a1 1 0 0 1 1-1m6 0c.89 0 1.34 1.08.71 1.71S14 5.89 14 5a1 1 0 0 1 1-1M2 12v8a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-8h-9v8h-2v-8z"/></svg></span></a>
2671
-<a href="../wishlist/scheme-specific-cli-and-config/" title="Wish entry: “Move vault-specific command-line interface into a separate CLI subcommand and matching configuration file”"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.06 1.93C7.17 1.92 5.33 3.74 6.17 6H3a2 2 0 0 0-2 2v2a1 1 0 0 0 1 1h9V8h2v3h9a1 1 0 0 0 1-1V8a2 2 0 0 0-2-2h-3.17C19 2.73 14.6.42 12.57 3.24L12 4l-.57-.78c-.63-.89-1.5-1.28-2.37-1.29M9 4c.89 0 1.34 1.08.71 1.71S8 5.89 8 5a1 1 0 0 1 1-1m6 0c.89 0 1.34 1.08.71 1.71S14 5.89 14 5a1 1 0 0 1 1-1M2 12v8a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-8h-9v8h-2v-8z"/></svg></span></a></p>
2733
+→<a href="../wishlist/other-derivation-schemes/" title="Wish entry: “Consider implementing passphrase schemes other than vault's”"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M23 18h-3v-3h-2v3h-3v2h3v3h2v-3h3M6 2a2 2 0 0 0-2 2v16c0 1.11.89 2 2 2h7.81c-.36-.62-.61-1.3-.73-2H6V4h7v5h5v4.08c.33-.05.67-.08 1-.08.34 0 .67.03 1 .08V8l-6-6M8 12v2h8v-2m-8 4v2h5v-2Z"/></svg></span></a>
2734
+<a href="../wishlist/scheme-specific-cli-and-config/" title="Wish entry: “Move vault-specific command-line interface into a separate CLI subcommand and matching configuration file”"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M23 18h-3v-3h-2v3h-3v2h3v3h2v-3h3M6 2a2 2 0 0 0-2 2v16c0 1.11.89 2 2 2h7.81c-.36-.62-.61-1.3-.73-2H6V4h7v5h5v4.08c.33-.05.67-.08 1-.08.34 0 .67.03 1 .08V8l-6-6M8 12v2h8v-2m-8 4v2h5v-2Z"/></svg></span></a></p>
2672 2735
 </li>
2673 2736
 <li>
2674 2737
 <p>Make <code>derivepassphrase_export</code> a subcommand: <a href="../reference/derivepassphrase-export.1/"><code>derivepassphrase
2675 2738
     export</code></a>.
2676
-    →<a href="../wishlist/exporter-script-as-subcommand/" title="Wish entry: “Make the exporter a subcommand of derivepassphrase”"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.06 1.93C7.17 1.92 5.33 3.74 6.17 6H3a2 2 0 0 0-2 2v2a1 1 0 0 0 1 1h9V8h2v3h9a1 1 0 0 0 1-1V8a2 2 0 0 0-2-2h-3.17C19 2.73 14.6.42 12.57 3.24L12 4l-.57-.78c-.63-.89-1.5-1.28-2.37-1.29M9 4c.89 0 1.34 1.08.71 1.71S8 5.89 8 5a1 1 0 0 1 1-1m6 0c.89 0 1.34 1.08.71 1.71S14 5.89 14 5a1 1 0 0 1 1-1M2 12v8a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-8h-9v8h-2v-8z"/></svg></span></a></p>
2739
+    →<a href="../wishlist/exporter-script-as-subcommand/" title="Wish entry: “Make the exporter a subcommand of derivepassphrase”"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M23 18h-3v-3h-2v3h-3v2h3v3h2v-3h3M6 2a2 2 0 0 0-2 2v16c0 1.11.89 2 2 2h7.81c-.36-.62-.61-1.3-.73-2H6V4h7v5h5v4.08c.33-.05.67-.08 1-.08.34 0 .67.03 1 .08V8l-6-6M8 12v2h8v-2m-8 4v2h5v-2Z"/></svg></span></a></p>
2677 2740
 </li>
2678 2741
 </ul>
2679 2742
 <h3 id="deprecated-in-v0.2.0">Deprecated<a class="headerlink" href="#deprecated-in-v0.2.0" title="Permanent link">&para;</a></h3>
... ...
@@ -278,7 +278,7 @@
278 278
   </label>
279 279
   
280 280
     <div class="md-nav__source">
281
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
281
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
282 282
   <div class="md-source__icon md-icon">
283 283
     
284 284
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1353,7 +1353,7 @@
1353 1353
     
1354 1354
       
1355 1355
     
1356
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/explanation/faq-altered-versions.md" title="View source of this page" class="md-content__button md-icon">
1356
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/master/docs/explanation/faq-altered-versions.md" title="View source of this page" class="md-content__button md-icon">
1357 1357
       
1358 1358
       <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>
1359 1359
     </a>
... ...
@@ -278,7 +278,7 @@
278 278
   </label>
279 279
   
280 280
     <div class="md-nav__source">
281
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
281
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
282 282
   <div class="md-source__icon md-icon">
283 283
     
284 284
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1465,7 +1465,7 @@
1465 1465
     
1466 1466
       
1467 1467
     
1468
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/explanation/faq-vault-interchangable-passphrases.md" title="View source of this page" class="md-content__button md-icon">
1468
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/master/docs/explanation/faq-vault-interchangable-passphrases.md" title="View source of this page" class="md-content__button md-icon">
1469 1469
       
1470 1470
       <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>
1471 1471
     </a>
... ...
@@ -273,7 +273,7 @@
273 273
   </label>
274 274
   
275 275
     <div class="md-nav__source">
276
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
276
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
277 277
   <div class="md-source__icon md-icon">
278 278
     
279 279
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1336,7 +1336,7 @@
1336 1336
     
1337 1337
       
1338 1338
     
1339
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/explanation/index.md" title="View source of this page" class="md-content__button md-icon">
1339
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/master/docs/explanation/index.md" title="View source of this page" class="md-content__button md-icon">
1340 1340
       
1341 1341
       <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>
1342 1342
     </a>
... ...
@@ -273,7 +273,7 @@
273 273
   </label>
274 274
   
275 275
     <div class="md-nav__source">
276
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
276
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
277 277
   <div class="md-source__icon md-icon">
278 278
     
279 279
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1336,7 +1336,7 @@
1336 1336
     
1337 1337
       
1338 1338
     
1339
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/how-tos/index.md" title="View source of this page" class="md-content__button md-icon">
1339
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/master/docs/how-tos/index.md" title="View source of this page" class="md-content__button md-icon">
1340 1340
       
1341 1341
       <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>
1342 1342
     </a>
... ...
@@ -278,7 +278,7 @@
278 278
   </label>
279 279
   
280 280
     <div class="md-nav__source">
281
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
281
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
282 282
   <div class="md-source__icon md-icon">
283 283
     
284 284
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1429,7 +1429,7 @@
1429 1429
     
1430 1430
       
1431 1431
     
1432
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/how-tos/ssh-key.md" title="View source of this page" class="md-content__button md-icon">
1432
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/master/docs/how-tos/ssh-key.md" title="View source of this page" class="md-content__button md-icon">
1433 1433
       
1434 1434
       <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>
1435 1435
     </a>
... ...
@@ -276,7 +276,7 @@
276 276
   </label>
277 277
   
278 278
     <div class="md-nav__source">
279
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
279
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
280 280
   <div class="md-source__icon md-icon">
281 281
     
282 282
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1488,7 +1488,7 @@
1488 1488
     
1489 1489
       
1490 1490
     
1491
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/index.md" title="View source of this page" class="md-content__button md-icon">
1491
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/master/docs/index.md" title="View source of this page" class="md-content__button md-icon">
1492 1492
       
1493 1493
       <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>
1494 1494
     </a>
... ...
@@ -1553,7 +1553,7 @@ Then use <code>pip install derivepassphrase</code> in general, or <code>pip inst
1553 1553
 </code></pre></div>
1554 1554
 <h3 id="ssh-agent-support">SSH agent support<a class="headerlink" href="#ssh-agent-support" title="Permanent link">&para;</a></h3>
1555 1555
 <p>On UNIX-like systems with OpenSSH or PuTTY installed, you can use an Ed25519, Ed448 or RSA key from the agent instead of a master passphrase.
1556
-(<a href="https://github.com/the-13th-letter/derivepassphrase/issues/13" title="Issue 13: Support PuTTY/Pageant (and maybe OpenSSH/ssh-agent) on Windows">On Windows there are problems establishing communication channels with the agent.</a>)</p>
1556
+(<a href="https://the13thletter.info/derivepassphrase/0.x/wishlist/windows-ssh-agent-support/" title="Bug entry: Support PuTTY/Pageant (and maybe OpenSSH/ssh-agent) on Windows">On Windows there are problems establishing communication channels with the agent.</a>)</p>
1557 1557
 <div class="highlight"><pre><span></span><code><span class="gp">$ </span>derivepassphrase<span class="w"> </span>vault<span class="w"> </span>-k<span class="w"> </span>my-email-account
1558 1558
 <span class="go">Suitable SSH keys:</span>
1559 1559
 <span class="go">[1] ssh-rsa ...feXycsvJZ2uaYRjMdZeJGNAnHLUGLkBscw5aI8=  test key without passphrase</span>
... ...
@@ -278,7 +278,7 @@
278 278
   </label>
279 279
   
280 280
     <div class="md-nav__source">
281
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
281
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
282 282
   <div class="md-source__icon md-icon">
283 283
     
284 284
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1627,7 +1627,7 @@
1627 1627
     
1628 1628
       
1629 1629
     
1630
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/pycompatibility.md" title="View source of this page" class="md-content__button md-icon">
1630
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/master/docs/pycompatibility.md" title="View source of this page" class="md-content__button md-icon">
1631 1631
       
1632 1632
       <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>
1633 1633
     </a>
... ...
@@ -278,7 +278,7 @@
278 278
   </label>
279 279
   
280 280
     <div class="md-nav__source">
281
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
281
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
282 282
   <div class="md-source__icon md-icon">
283 283
     
284 284
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1644,7 +1644,7 @@
1644 1644
     
1645 1645
       
1646 1646
     
1647
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/reference/derivepassphrase-export-vault.1.md" title="View source of this page" class="md-content__button md-icon">
1647
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/master/docs/reference/derivepassphrase-export-vault.1.md" title="View source of this page" class="md-content__button md-icon">
1648 1648
       
1649 1649
       <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>
1650 1650
     </a>
... ...
@@ -278,7 +278,7 @@
278 278
   </label>
279 279
   
280 280
     <div class="md-nav__source">
281
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
281
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
282 282
   <div class="md-source__icon md-icon">
283 283
     
284 284
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1614,7 +1614,7 @@
1614 1614
     
1615 1615
       
1616 1616
     
1617
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/reference/derivepassphrase-export.1.md" title="View source of this page" class="md-content__button md-icon">
1617
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/master/docs/reference/derivepassphrase-export.1.md" title="View source of this page" class="md-content__button md-icon">
1618 1618
       
1619 1619
       <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>
1620 1620
     </a>
... ...
@@ -278,7 +278,7 @@
278 278
   </label>
279 279
   
280 280
     <div class="md-nav__source">
281
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
281
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
282 282
   <div class="md-source__icon md-icon">
283 283
     
284 284
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1872,7 +1872,7 @@
1872 1872
     
1873 1873
       
1874 1874
     
1875
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/reference/derivepassphrase-vault.1.md" title="View source of this page" class="md-content__button md-icon">
1875
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/master/docs/reference/derivepassphrase-vault.1.md" title="View source of this page" class="md-content__button md-icon">
1876 1876
       
1877 1877
       <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>
1878 1878
     </a>
... ...
@@ -278,7 +278,7 @@
278 278
   </label>
279 279
   
280 280
     <div class="md-nav__source">
281
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
281
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
282 282
   <div class="md-source__icon md-icon">
283 283
     
284 284
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1614,7 +1614,7 @@
1614 1614
     
1615 1615
       
1616 1616
     
1617
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/reference/derivepassphrase.1.md" title="View source of this page" class="md-content__button md-icon">
1617
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/master/docs/reference/derivepassphrase.1.md" title="View source of this page" class="md-content__button md-icon">
1618 1618
       
1619 1619
       <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>
1620 1620
     </a>
... ...
@@ -1,3595 +0,0 @@
1
-
2
-<!doctype html>
3
-<html lang="en" class="no-js">
4
-  <head>
5
-    
6
-      <meta charset="utf-8">
7
-      <meta name="viewport" content="width=device-width,initial-scale=1">
8
-      
9
-        <meta name="description" content="An almost faithful Python reimplementation of James Coglan's vault.">
10
-      
11
-      
12
-        <meta name="author" content="Marco Ricci">
13
-      
14
-      
15
-        <link rel="canonical" href="https://the13thletter.info/derivepassphrase/0.x/reference/derivepassphrase._internals.cli_helpers/">
16
-      
17
-      
18
-      
19
-      
20
-      <link rel="icon" href="../../assets/images/favicon.png">
21
-      <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.14">
22
-    
23
-    
24
-      
25
-        <title>Derivepassphrase. internals.cli helpers - derivepassphrase</title>
26
-      
27
-    
28
-    
29
-      <link rel="stylesheet" href="../../assets/stylesheets/main.342714a4.min.css">
30
-      
31
-      
32
-
33
-
34
-    
35
-    
36
-    
37
-  
38
-    
39
-    
40
-        <style>:root{--md-text-font:"Noto Sans";--md-code-font:"Noto Mono"}</style>
41
-  
42
-
43
-    
44
-      <link rel="stylesheet" href="../../assets/_mkdocstrings.css">
45
-    
46
-      <link rel="stylesheet" href="../../mkdocstrings_recommended_styles.css">
47
-    
48
-      <link rel="stylesheet" href="../../wishlist_styling.css">
49
-    
50
-    
51
-    
52
-    
53
-    
54
-  </head>
55
-  
56
-  
57
-    <body dir="ltr">
58
-  
59
-    
60
-    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
61
-    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
62
-    <label class="md-overlay" for="__drawer"></label>
63
-    <div data-md-component="skip">
64
-      
65
-        
66
-        <a href="#derivepassphrase._internals.cli_helpers" class="md-skip">
67
-          Skip to content
68
-        </a>
69
-      
70
-    </div>
71
-    <div data-md-component="announce">
72
-      
73
-    </div>
74
-    
75
-      <div data-md-color-scheme="default" data-md-component="outdated" hidden>
76
-        
77
-      </div>
78
-    
79
-    
80
-      
81
-    
82
-    <div class="md-container" data-md-component="container">
83
-      
84
-      
85
-        
86
-          
87
-            
88
-<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
89
-  <div class="md-grid">
90
-    <ul class="md-tabs__list">
91
-      
92
-        
93
-  
94
-  
95
-  
96
-  
97
-    <li class="md-tabs__item">
98
-      <a href="../.." class="md-tabs__link">
99
-        
100
-  
101
-  
102
-    
103
-  
104
-  Overview
105
-
106
-      </a>
107
-    </li>
108
-  
109
-
110
-      
111
-        
112
-  
113
-  
114
-  
115
-  
116
-    
117
-    
118
-      <li class="md-tabs__item">
119
-        <a href="../../tutorials/" class="md-tabs__link">
120
-          
121
-  
122
-  
123
-    
124
-  
125
-  Tutorials & Examples
126
-
127
-        </a>
128
-      </li>
129
-    
130
-  
131
-
132
-      
133
-        
134
-  
135
-  
136
-  
137
-  
138
-    
139
-    
140
-      <li class="md-tabs__item">
141
-        <a href="../../how-tos/" class="md-tabs__link">
142
-          
143
-  
144
-  
145
-    
146
-  
147
-  How-Tos
148
-
149
-        </a>
150
-      </li>
151
-    
152
-  
153
-
154
-      
155
-        
156
-  
157
-  
158
-  
159
-  
160
-    
161
-    
162
-      <li class="md-tabs__item">
163
-        <a href="../" class="md-tabs__link">
164
-          
165
-  
166
-  
167
-    
168
-  
169
-  Reference
170
-
171
-        </a>
172
-      </li>
173
-    
174
-  
175
-
176
-      
177
-        
178
-  
179
-  
180
-  
181
-  
182
-    
183
-    
184
-      <li class="md-tabs__item">
185
-        <a href="../../explanation/" class="md-tabs__link">
186
-          
187
-  
188
-  
189
-    
190
-  
191
-  Design & Background
192
-
193
-        </a>
194
-      </li>
195
-    
196
-  
197
-
198
-      
199
-        
200
-  
201
-  
202
-  
203
-  
204
-    
205
-    
206
-      <li class="md-tabs__item">
207
-        <a href="../../changelog/" class="md-tabs__link">
208
-          
209
-  
210
-  
211
-    
212
-  
213
-  Changelog
214
-
215
-        </a>
216
-      </li>
217
-    
218
-  
219
-
220
-      
221
-        
222
-  
223
-  
224
-  
225
-  
226
-    
227
-    
228
-      <li class="md-tabs__item">
229
-        <a href="../../wishlist/" class="md-tabs__link">
230
-          
231
-  
232
-  
233
-    
234
-  
235
-  Wishlist
236
-
237
-        </a>
238
-      </li>
239
-    
240
-  
241
-
242
-      
243
-    </ul>
244
-  </div>
245
-</nav>
246
-          
247
-        
248
-      
249
-      <main class="md-main" data-md-component="main">
250
-        <div class="md-main__inner md-grid">
251
-          
252
-            
253
-              
254
-              <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
255
-                <div class="md-sidebar__scrollwrap">
256
-                  <div class="md-sidebar__inner">
257
-                    
258
-
259
-
260
-  
261
-
262
-
263
-<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
264
-  <label class="md-nav__title" for="__drawer">
265
-    <a href="../.." title="derivepassphrase" class="md-nav__button md-logo" aria-label="derivepassphrase" data-md-component="logo">
266
-      
267
-  
268
-  <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>
269
-
270
-    </a>
271
-    derivepassphrase
272
-  </label>
273
-  
274
-    <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
276
-  <div class="md-source__icon md-icon">
277
-    
278
-    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
279
-  </div>
280
-  <div class="md-source__repository">
281
-    the-13th-letter/derivepassphrase
282
-  </div>
283
-</a>
284
-    </div>
285
-  
286
-  <ul class="md-nav__list" data-md-scrollfix>
287
-    
288
-      
289
-      
290
-  
291
-  
292
-  
293
-  
294
-    <li class="md-nav__item">
295
-      <a href="../.." class="md-nav__link">
296
-        
297
-  
298
-  
299
-  <span class="md-ellipsis">
300
-    Overview
301
-    
302
-  </span>
303
-  
304
-
305
-      </a>
306
-    </li>
307
-  
308
-
309
-    
310
-      
311
-      
312
-  
313
-  
314
-  
315
-  
316
-    
317
-    
318
-      
319
-        
320
-          
321
-        
322
-      
323
-        
324
-      
325
-    
326
-    
327
-    
328
-      
329
-      
330
-        
331
-      
332
-    
333
-    
334
-    <li class="md-nav__item md-nav__item--nested">
335
-      
336
-        
337
-        
338
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
339
-        
340
-          
341
-          <div class="md-nav__link md-nav__container">
342
-            <a href="../../tutorials/" class="md-nav__link ">
343
-              
344
-  
345
-  
346
-  <span class="md-ellipsis">
347
-    Tutorials & Examples
348
-    
349
-  </span>
350
-  
351
-
352
-            </a>
353
-            
354
-              
355
-              <label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="0">
356
-                <span class="md-nav__icon md-icon"></span>
357
-              </label>
358
-            
359
-          </div>
360
-        
361
-        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
362
-          <label class="md-nav__title" for="__nav_2">
363
-            <span class="md-nav__icon md-icon"></span>
364
-            Tutorials & Examples
365
-          </label>
366
-          <ul class="md-nav__list" data-md-scrollfix>
367
-            
368
-              
369
-            
370
-              
371
-                
372
-  
373
-  
374
-  
375
-  
376
-    <li class="md-nav__item">
377
-      <a href="../../tutorials/basic-setup-passphrase/" class="md-nav__link">
378
-        
379
-  
380
-  
381
-  <span class="md-ellipsis">
382
-    Setting up derivepassphrase vault for three accounts, with a master passphrase
383
-    
384
-  </span>
385
-  
386
-
387
-      </a>
388
-    </li>
389
-  
390
-
391
-              
392
-            
393
-          </ul>
394
-        </nav>
395
-      
396
-    </li>
397
-  
398
-
399
-    
400
-      
401
-      
402
-  
403
-  
404
-  
405
-  
406
-    
407
-    
408
-      
409
-        
410
-          
411
-        
412
-      
413
-        
414
-      
415
-    
416
-    
417
-    
418
-      
419
-      
420
-        
421
-      
422
-    
423
-    
424
-    <li class="md-nav__item md-nav__item--nested">
425
-      
426
-        
427
-        
428
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
429
-        
430
-          
431
-          <div class="md-nav__link md-nav__container">
432
-            <a href="../../how-tos/" class="md-nav__link ">
433
-              
434
-  
435
-  
436
-  <span class="md-ellipsis">
437
-    How-Tos
438
-    
439
-  </span>
440
-  
441
-
442
-            </a>
443
-            
444
-              
445
-              <label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="0">
446
-                <span class="md-nav__icon md-icon"></span>
447
-              </label>
448
-            
449
-          </div>
450
-        
451
-        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
452
-          <label class="md-nav__title" for="__nav_3">
453
-            <span class="md-nav__icon md-icon"></span>
454
-            How-Tos
455
-          </label>
456
-          <ul class="md-nav__list" data-md-scrollfix>
457
-            
458
-              
459
-            
460
-              
461
-                
462
-  
463
-  
464
-  
465
-  
466
-    <li class="md-nav__item">
467
-      <a href="../../how-tos/ssh-key/" class="md-nav__link">
468
-        
469
-  
470
-  
471
-  <span class="md-ellipsis">
472
-    How to set up derivepassphrase vault with an SSH key
473
-    
474
-  </span>
475
-  
476
-
477
-      </a>
478
-    </li>
479
-  
480
-
481
-              
482
-            
483
-          </ul>
484
-        </nav>
485
-      
486
-    </li>
487
-  
488
-
489
-    
490
-      
491
-      
492
-  
493
-  
494
-  
495
-  
496
-    
497
-    
498
-      
499
-        
500
-          
501
-        
502
-      
503
-        
504
-      
505
-        
506
-      
507
-        
508
-      
509
-    
510
-    
511
-    
512
-      
513
-      
514
-        
515
-      
516
-    
517
-    
518
-    <li class="md-nav__item md-nav__item--nested">
519
-      
520
-        
521
-        
522
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
523
-        
524
-          
525
-          <div class="md-nav__link md-nav__container">
526
-            <a href="../" class="md-nav__link ">
527
-              
528
-  
529
-  
530
-  <span class="md-ellipsis">
531
-    Reference
532
-    
533
-  </span>
534
-  
535
-
536
-            </a>
537
-            
538
-              
539
-              <label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="0">
540
-                <span class="md-nav__icon md-icon"></span>
541
-              </label>
542
-            
543
-          </div>
544
-        
545
-        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
546
-          <label class="md-nav__title" for="__nav_4">
547
-            <span class="md-nav__icon md-icon"></span>
548
-            Reference
549
-          </label>
550
-          <ul class="md-nav__list" data-md-scrollfix>
551
-            
552
-              
553
-            
554
-              
555
-                
556
-  
557
-  
558
-  
559
-  
560
-    
561
-    
562
-      
563
-        
564
-      
565
-        
566
-      
567
-        
568
-      
569
-        
570
-      
571
-    
572
-    
573
-    
574
-      
575
-      
576
-        
577
-      
578
-    
579
-    
580
-    <li class="md-nav__item md-nav__item--nested">
581
-      
582
-        
583
-        
584
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_2" >
585
-        
586
-          
587
-          <label class="md-nav__link" for="__nav_4_2" id="__nav_4_2_label" tabindex="0">
588
-            
589
-  
590
-  
591
-  <span class="md-ellipsis">
592
-    Man pages
593
-    
594
-  </span>
595
-  
596
-
597
-            <span class="md-nav__icon md-icon"></span>
598
-          </label>
599
-        
600
-        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_2_label" aria-expanded="false">
601
-          <label class="md-nav__title" for="__nav_4_2">
602
-            <span class="md-nav__icon md-icon"></span>
603
-            Man pages
604
-          </label>
605
-          <ul class="md-nav__list" data-md-scrollfix>
606
-            
607
-              
608
-                
609
-  
610
-  
611
-  
612
-  
613
-    <li class="md-nav__item">
614
-      <a href="../derivepassphrase.1/" class="md-nav__link">
615
-        
616
-  
617
-  
618
-  <span class="md-ellipsis">
619
-    derivepassphrase(1)
620
-    
621
-  </span>
622
-  
623
-
624
-      </a>
625
-    </li>
626
-  
627
-
628
-              
629
-            
630
-              
631
-                
632
-  
633
-  
634
-  
635
-  
636
-    <li class="md-nav__item">
637
-      <a href="../derivepassphrase-vault.1/" class="md-nav__link">
638
-        
639
-  
640
-  
641
-  <span class="md-ellipsis">
642
-    derivepassphrase-vault(1)
643
-    
644
-  </span>
645
-  
646
-
647
-      </a>
648
-    </li>
649
-  
650
-
651
-              
652
-            
653
-              
654
-                
655
-  
656
-  
657
-  
658
-  
659
-    <li class="md-nav__item">
660
-      <a href="../derivepassphrase-export.1/" class="md-nav__link">
661
-        
662
-  
663
-  
664
-  <span class="md-ellipsis">
665
-    derivepassphrase-export(1)
666
-    
667
-  </span>
668
-  
669
-
670
-      </a>
671
-    </li>
672
-  
673
-
674
-              
675
-            
676
-              
677
-                
678
-  
679
-  
680
-  
681
-  
682
-    <li class="md-nav__item">
683
-      <a href="../derivepassphrase-export-vault.1/" class="md-nav__link">
684
-        
685
-  
686
-  
687
-  <span class="md-ellipsis">
688
-    derivepassphrase-export-vault(1)
689
-    
690
-  </span>
691
-  
692
-
693
-      </a>
694
-    </li>
695
-  
696
-
697
-              
698
-            
699
-          </ul>
700
-        </nav>
701
-      
702
-    </li>
703
-  
704
-
705
-              
706
-            
707
-              
708
-                
709
-  
710
-  
711
-  
712
-  
713
-    
714
-    
715
-      
716
-        
717
-      
718
-        
719
-      
720
-        
721
-      
722
-        
723
-      
724
-        
725
-      
726
-        
727
-      
728
-    
729
-    
730
-    
731
-      
732
-      
733
-        
734
-      
735
-    
736
-    
737
-    <li class="md-nav__item md-nav__item--nested">
738
-      
739
-        
740
-        
741
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_3" >
742
-        
743
-          
744
-          <label class="md-nav__link" for="__nav_4_3" id="__nav_4_3_label" tabindex="0">
745
-            
746
-  
747
-  
748
-  <span class="md-ellipsis">
749
-    API docs: Module derivepassphrase
750
-    
751
-  </span>
752
-  
753
-
754
-            <span class="md-nav__icon md-icon"></span>
755
-          </label>
756
-        
757
-        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_3_label" aria-expanded="false">
758
-          <label class="md-nav__title" for="__nav_4_3">
759
-            <span class="md-nav__icon md-icon"></span>
760
-            API docs: Module derivepassphrase
761
-          </label>
762
-          <ul class="md-nav__list" data-md-scrollfix>
763
-            
764
-              
765
-                
766
-  
767
-  
768
-  
769
-  
770
-    <li class="md-nav__item">
771
-      <a href="../derivepassphrase.cli/" class="md-nav__link">
772
-        
773
-  
774
-  
775
-  <span class="md-ellipsis">
776
-    Submodule cli
777
-    
778
-  </span>
779
-  
780
-
781
-      </a>
782
-    </li>
783
-  
784
-
785
-              
786
-            
787
-              
788
-                
789
-  
790
-  
791
-  
792
-  
793
-    <li class="md-nav__item">
794
-      <a href="../derivepassphrase.exporter/" class="md-nav__link">
795
-        
796
-  
797
-  
798
-  <span class="md-ellipsis">
799
-    Subpackage exporter
800
-    
801
-  </span>
802
-  
803
-
804
-      </a>
805
-    </li>
806
-  
807
-
808
-              
809
-            
810
-              
811
-                
812
-  
813
-  
814
-  
815
-  
816
-    <li class="md-nav__item">
817
-      <a href="../derivepassphrase.sequin/" class="md-nav__link">
818
-        
819
-  
820
-  
821
-  <span class="md-ellipsis">
822
-    Submodule sequin
823
-    
824
-  </span>
825
-  
826
-
827
-      </a>
828
-    </li>
829
-  
830
-
831
-              
832
-            
833
-              
834
-                
835
-  
836
-  
837
-  
838
-  
839
-    <li class="md-nav__item">
840
-      <a href="../derivepassphrase.ssh_agent/" class="md-nav__link">
841
-        
842
-  
843
-  
844
-  <span class="md-ellipsis">
845
-    Submodule ssh_agent
846
-    
847
-  </span>
848
-  
849
-
850
-      </a>
851
-    </li>
852
-  
853
-
854
-              
855
-            
856
-              
857
-                
858
-  
859
-  
860
-  
861
-  
862
-    <li class="md-nav__item">
863
-      <a href="../derivepassphrase._types/" class="md-nav__link">
864
-        
865
-  
866
-  
867
-  <span class="md-ellipsis">
868
-    Submodule _types
869
-    
870
-  </span>
871
-  
872
-
873
-      </a>
874
-    </li>
875
-  
876
-
877
-              
878
-            
879
-              
880
-                
881
-  
882
-  
883
-  
884
-  
885
-    <li class="md-nav__item">
886
-      <a href="../derivepassphrase.vault/" class="md-nav__link">
887
-        
888
-  
889
-  
890
-  <span class="md-ellipsis">
891
-    Submodule vault
892
-    
893
-  </span>
894
-  
895
-
896
-      </a>
897
-    </li>
898
-  
899
-
900
-              
901
-            
902
-          </ul>
903
-        </nav>
904
-      
905
-    </li>
906
-  
907
-
908
-              
909
-            
910
-              
911
-                
912
-  
913
-  
914
-  
915
-  
916
-    
917
-    
918
-      
919
-        
920
-      
921
-    
922
-    
923
-    
924
-      
925
-      
926
-        
927
-      
928
-    
929
-    
930
-    <li class="md-nav__item md-nav__item--nested">
931
-      
932
-        
933
-        
934
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_4" >
935
-        
936
-          
937
-          <label class="md-nav__link" for="__nav_4_4" id="__nav_4_4_label" tabindex="0">
938
-            
939
-  
940
-  
941
-  <span class="md-ellipsis">
942
-    Technical prerequisites
943
-    
944
-  </span>
945
-  
946
-
947
-            <span class="md-nav__icon md-icon"></span>
948
-          </label>
949
-        
950
-        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_4_label" aria-expanded="false">
951
-          <label class="md-nav__title" for="__nav_4_4">
952
-            <span class="md-nav__icon md-icon"></span>
953
-            Technical prerequisites
954
-          </label>
955
-          <ul class="md-nav__list" data-md-scrollfix>
956
-            
957
-              
958
-                
959
-  
960
-  
961
-  
962
-  
963
-    <li class="md-nav__item">
964
-      <a href="../prerequisites-ssh-key/" class="md-nav__link">
965
-        
966
-  
967
-  
968
-  <span class="md-ellipsis">
969
-    Using derivepassphrase vault with an SSH key
970
-    
971
-  </span>
972
-  
973
-
974
-      </a>
975
-    </li>
976
-  
977
-
978
-              
979
-            
980
-          </ul>
981
-        </nav>
982
-      
983
-    </li>
984
-  
985
-
986
-              
987
-            
988
-          </ul>
989
-        </nav>
990
-      
991
-    </li>
992
-  
993
-
994
-    
995
-      
996
-      
997
-  
998
-  
999
-  
1000
-  
1001
-    
1002
-    
1003
-      
1004
-        
1005
-          
1006
-        
1007
-      
1008
-        
1009
-      
1010
-        
1011
-      
1012
-    
1013
-    
1014
-    
1015
-      
1016
-      
1017
-        
1018
-      
1019
-    
1020
-    
1021
-    <li class="md-nav__item md-nav__item--nested">
1022
-      
1023
-        
1024
-        
1025
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
1026
-        
1027
-          
1028
-          <div class="md-nav__link md-nav__container">
1029
-            <a href="../../explanation/" class="md-nav__link ">
1030
-              
1031
-  
1032
-  
1033
-  <span class="md-ellipsis">
1034
-    Design & Background
1035
-    
1036
-  </span>
1037
-  
1038
-
1039
-            </a>
1040
-            
1041
-              
1042
-              <label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="0">
1043
-                <span class="md-nav__icon md-icon"></span>
1044
-              </label>
1045
-            
1046
-          </div>
1047
-        
1048
-        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
1049
-          <label class="md-nav__title" for="__nav_5">
1050
-            <span class="md-nav__icon md-icon"></span>
1051
-            Design & Background
1052
-          </label>
1053
-          <ul class="md-nav__list" data-md-scrollfix>
1054
-            
1055
-              
1056
-            
1057
-              
1058
-                
1059
-  
1060
-  
1061
-  
1062
-  
1063
-    <li class="md-nav__item">
1064
-      <a href="../../explanation/faq-altered-versions/" class="md-nav__link">
1065
-        
1066
-  
1067
-  
1068
-  <span class="md-ellipsis">
1069
-    "altered versions" license requirement
1070
-    
1071
-  </span>
1072
-  
1073
-
1074
-      </a>
1075
-    </li>
1076
-  
1077
-
1078
-              
1079
-            
1080
-              
1081
-                
1082
-  
1083
-  
1084
-  
1085
-  
1086
-    <li class="md-nav__item">
1087
-      <a href="../../explanation/faq-vault-interchangable-passphrases/" class="md-nav__link">
1088
-        
1089
-  
1090
-  
1091
-  <span class="md-ellipsis">
1092
-    "interchangable passphrases" in vault
1093
-    
1094
-  </span>
1095
-  
1096
-
1097
-      </a>
1098
-    </li>
1099
-  
1100
-
1101
-              
1102
-            
1103
-          </ul>
1104
-        </nav>
1105
-      
1106
-    </li>
1107
-  
1108
-
1109
-    
1110
-      
1111
-      
1112
-  
1113
-  
1114
-  
1115
-  
1116
-    
1117
-    
1118
-      
1119
-        
1120
-      
1121
-        
1122
-      
1123
-        
1124
-      
1125
-    
1126
-    
1127
-    
1128
-      
1129
-      
1130
-        
1131
-      
1132
-    
1133
-    
1134
-    <li class="md-nav__item md-nav__item--nested">
1135
-      
1136
-        
1137
-        
1138
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
1139
-        
1140
-          
1141
-          <label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
1142
-            
1143
-  
1144
-  
1145
-  <span class="md-ellipsis">
1146
-    Changelog
1147
-    
1148
-  </span>
1149
-  
1150
-
1151
-            <span class="md-nav__icon md-icon"></span>
1152
-          </label>
1153
-        
1154
-        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
1155
-          <label class="md-nav__title" for="__nav_6">
1156
-            <span class="md-nav__icon md-icon"></span>
1157
-            Changelog
1158
-          </label>
1159
-          <ul class="md-nav__list" data-md-scrollfix>
1160
-            
1161
-              
1162
-                
1163
-  
1164
-  
1165
-  
1166
-  
1167
-    <li class="md-nav__item">
1168
-      <a href="../../changelog/" class="md-nav__link">
1169
-        
1170
-  
1171
-  
1172
-  <span class="md-ellipsis">
1173
-    Changelog
1174
-    
1175
-  </span>
1176
-  
1177
-
1178
-      </a>
1179
-    </li>
1180
-  
1181
-
1182
-              
1183
-            
1184
-              
1185
-                
1186
-  
1187
-  
1188
-  
1189
-  
1190
-    <li class="md-nav__item">
1191
-      <a href="../../upgrade-notes/" class="md-nav__link">
1192
-        
1193
-  
1194
-  
1195
-  <span class="md-ellipsis">
1196
-    Upgrade notes
1197
-    
1198
-  </span>
1199
-  
1200
-
1201
-      </a>
1202
-    </li>
1203
-  
1204
-
1205
-              
1206
-            
1207
-              
1208
-                
1209
-  
1210
-  
1211
-  
1212
-  
1213
-    <li class="md-nav__item">
1214
-      <a href="../../pycompatibility/" class="md-nav__link">
1215
-        
1216
-  
1217
-  
1218
-  <span class="md-ellipsis">
1219
-    Python compatibility
1220
-    
1221
-  </span>
1222
-  
1223
-
1224
-      </a>
1225
-    </li>
1226
-  
1227
-
1228
-              
1229
-            
1230
-          </ul>
1231
-        </nav>
1232
-      
1233
-    </li>
1234
-  
1235
-
1236
-    
1237
-      
1238
-      
1239
-  
1240
-  
1241
-  
1242
-  
1243
-    
1244
-    
1245
-      
1246
-        
1247
-          
1248
-        
1249
-      
1250
-    
1251
-    
1252
-    
1253
-      
1254
-      
1255
-        
1256
-      
1257
-    
1258
-    
1259
-    <li class="md-nav__item md-nav__item--nested">
1260
-      
1261
-        
1262
-        
1263
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
1264
-        
1265
-          
1266
-          <div class="md-nav__link md-nav__container">
1267
-            <a href="../../wishlist/" class="md-nav__link ">
1268
-              
1269
-  
1270
-  
1271
-  <span class="md-ellipsis">
1272
-    Wishlist
1273
-    
1274
-  </span>
1275
-  
1276
-
1277
-            </a>
1278
-            
1279
-          </div>
1280
-        
1281
-        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
1282
-          <label class="md-nav__title" for="__nav_7">
1283
-            <span class="md-nav__icon md-icon"></span>
1284
-            Wishlist
1285
-          </label>
1286
-          <ul class="md-nav__list" data-md-scrollfix>
1287
-            
1288
-              
1289
-            
1290
-          </ul>
1291
-        </nav>
1292
-      
1293
-    </li>
1294
-  
1295
-
1296
-    
1297
-  </ul>
1298
-</nav>
1299
-                  </div>
1300
-                </div>
1301
-              </div>
1302
-            
1303
-            
1304
-              
1305
-              <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
1306
-                <div class="md-sidebar__scrollwrap">
1307
-                  <div class="md-sidebar__inner">
1308
-                    
1309
-
1310
-<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1311
-  
1312
-  
1313
-  
1314
-    
1315
-  
1316
-  
1317
-    <label class="md-nav__title" for="__toc">
1318
-      <span class="md-nav__icon md-icon"></span>
1319
-      Table of contents
1320
-    </label>
1321
-    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1322
-      
1323
-        <li class="md-nav__item">
1324
-  <a href="#derivepassphrase._internals.cli_helpers.LOCK_SIZE" class="md-nav__link">
1325
-    <span class="md-ellipsis">
1326
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;LOCK_SIZE
1327
-    </span>
1328
-  </a>
1329
-  
1330
-</li>
1331
-      
1332
-        <li class="md-nav__item">
1333
-  <a href="#derivepassphrase._internals.cli_helpers.ConfigurationMutex" class="md-nav__link">
1334
-    <span class="md-ellipsis">
1335
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;ConfigurationMutex
1336
-    </span>
1337
-  </a>
1338
-  
1339
-    <nav class="md-nav" aria-label=" ConfigurationMutex">
1340
-      <ul class="md-nav__list">
1341
-        
1342
-          <li class="md-nav__item">
1343
-  <a href="#derivepassphrase._internals.cli_helpers.ConfigurationMutex.lock" class="md-nav__link">
1344
-    <span class="md-ellipsis">
1345
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;lock
1346
-    </span>
1347
-  </a>
1348
-  
1349
-</li>
1350
-        
1351
-          <li class="md-nav__item">
1352
-  <a href="#derivepassphrase._internals.cli_helpers.ConfigurationMutex.unlock" class="md-nav__link">
1353
-    <span class="md-ellipsis">
1354
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;unlock
1355
-    </span>
1356
-  </a>
1357
-  
1358
-</li>
1359
-        
1360
-          <li class="md-nav__item">
1361
-  <a href="#derivepassphrase._internals.cli_helpers.ConfigurationMutex.write_lock_fileobj" class="md-nav__link">
1362
-    <span class="md-ellipsis">
1363
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;write_lock_fileobj
1364
-    </span>
1365
-  </a>
1366
-  
1367
-</li>
1368
-        
1369
-          <li class="md-nav__item">
1370
-  <a href="#derivepassphrase._internals.cli_helpers.ConfigurationMutex.write_lock_file" class="md-nav__link">
1371
-    <span class="md-ellipsis">
1372
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;write_lock_file
1373
-    </span>
1374
-  </a>
1375
-  
1376
-</li>
1377
-        
1378
-          <li class="md-nav__item">
1379
-  <a href="#derivepassphrase._internals.cli_helpers.ConfigurationMutex.write_lock_condition" class="md-nav__link">
1380
-    <span class="md-ellipsis">
1381
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;write_lock_condition
1382
-    </span>
1383
-  </a>
1384
-  
1385
-</li>
1386
-        
1387
-          <li class="md-nav__item">
1388
-  <a href="#derivepassphrase._internals.cli_helpers.ConfigurationMutex.__enter__" class="md-nav__link">
1389
-    <span class="md-ellipsis">
1390
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;__enter__
1391
-    </span>
1392
-  </a>
1393
-  
1394
-</li>
1395
-        
1396
-          <li class="md-nav__item">
1397
-  <a href="#derivepassphrase._internals.cli_helpers.ConfigurationMutex.__exit__" class="md-nav__link">
1398
-    <span class="md-ellipsis">
1399
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;__exit__
1400
-    </span>
1401
-  </a>
1402
-  
1403
-</li>
1404
-        
1405
-      </ul>
1406
-    </nav>
1407
-  
1408
-</li>
1409
-      
1410
-        <li class="md-nav__item">
1411
-  <a href="#derivepassphrase._internals.cli_helpers.ORIGIN" class="md-nav__link">
1412
-    <span class="md-ellipsis">
1413
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;ORIGIN
1414
-    </span>
1415
-  </a>
1416
-  
1417
-    <nav class="md-nav" aria-label=" ORIGIN">
1418
-      <ul class="md-nav__list">
1419
-        
1420
-          <li class="md-nav__item">
1421
-  <a href="#derivepassphrase._internals.cli_helpers.ORIGIN.INTERACTIVE" class="md-nav__link">
1422
-    <span class="md-ellipsis">
1423
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;INTERACTIVE
1424
-    </span>
1425
-  </a>
1426
-  
1427
-</li>
1428
-        
1429
-      </ul>
1430
-    </nav>
1431
-  
1432
-</li>
1433
-      
1434
-        <li class="md-nav__item">
1435
-  <a href="#derivepassphrase._internals.cli_helpers.shell_complete_path" class="md-nav__link">
1436
-    <span class="md-ellipsis">
1437
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;shell_complete_path
1438
-    </span>
1439
-  </a>
1440
-  
1441
-</li>
1442
-      
1443
-        <li class="md-nav__item">
1444
-  <a href="#derivepassphrase._internals.cli_helpers.is_completable_item" class="md-nav__link">
1445
-    <span class="md-ellipsis">
1446
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;is_completable_item
1447
-    </span>
1448
-  </a>
1449
-  
1450
-</li>
1451
-      
1452
-        <li class="md-nav__item">
1453
-  <a href="#derivepassphrase._internals.cli_helpers.shell_complete_service" class="md-nav__link">
1454
-    <span class="md-ellipsis">
1455
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;shell_complete_service
1456
-    </span>
1457
-  </a>
1458
-  
1459
-</li>
1460
-      
1461
-        <li class="md-nav__item">
1462
-  <a href="#derivepassphrase._internals.cli_helpers.configuration_mutex" class="md-nav__link">
1463
-    <span class="md-ellipsis">
1464
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;configuration_mutex
1465
-    </span>
1466
-  </a>
1467
-  
1468
-</li>
1469
-      
1470
-        <li class="md-nav__item">
1471
-  <a href="#derivepassphrase._internals.cli_helpers.get_tempdir" class="md-nav__link">
1472
-    <span class="md-ellipsis">
1473
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;get_tempdir
1474
-    </span>
1475
-  </a>
1476
-  
1477
-</li>
1478
-      
1479
-        <li class="md-nav__item">
1480
-  <a href="#derivepassphrase._internals.cli_helpers.config_filename" class="md-nav__link">
1481
-    <span class="md-ellipsis">
1482
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;config_filename
1483
-    </span>
1484
-  </a>
1485
-  
1486
-</li>
1487
-      
1488
-        <li class="md-nav__item">
1489
-  <a href="#derivepassphrase._internals.cli_helpers.load_config" class="md-nav__link">
1490
-    <span class="md-ellipsis">
1491
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;load_config
1492
-    </span>
1493
-  </a>
1494
-  
1495
-</li>
1496
-      
1497
-        <li class="md-nav__item">
1498
-  <a href="#derivepassphrase._internals.cli_helpers.migrate_and_load_old_config" class="md-nav__link">
1499
-    <span class="md-ellipsis">
1500
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;migrate_and_load_old_config
1501
-    </span>
1502
-  </a>
1503
-  
1504
-</li>
1505
-      
1506
-        <li class="md-nav__item">
1507
-  <a href="#derivepassphrase._internals.cli_helpers.save_config" class="md-nav__link">
1508
-    <span class="md-ellipsis">
1509
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;save_config
1510
-    </span>
1511
-  </a>
1512
-  
1513
-</li>
1514
-      
1515
-        <li class="md-nav__item">
1516
-  <a href="#derivepassphrase._internals.cli_helpers.load_user_config" class="md-nav__link">
1517
-    <span class="md-ellipsis">
1518
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;load_user_config
1519
-    </span>
1520
-  </a>
1521
-  
1522
-</li>
1523
-      
1524
-        <li class="md-nav__item">
1525
-  <a href="#derivepassphrase._internals.cli_helpers.get_suitable_ssh_keys" class="md-nav__link">
1526
-    <span class="md-ellipsis">
1527
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;get_suitable_ssh_keys
1528
-    </span>
1529
-  </a>
1530
-  
1531
-</li>
1532
-      
1533
-        <li class="md-nav__item">
1534
-  <a href="#derivepassphrase._internals.cli_helpers.prompt_for_selection" class="md-nav__link">
1535
-    <span class="md-ellipsis">
1536
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;prompt_for_selection
1537
-    </span>
1538
-  </a>
1539
-  
1540
-</li>
1541
-      
1542
-        <li class="md-nav__item">
1543
-  <a href="#derivepassphrase._internals.cli_helpers.select_ssh_key" class="md-nav__link">
1544
-    <span class="md-ellipsis">
1545
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;select_ssh_key
1546
-    </span>
1547
-  </a>
1548
-  
1549
-</li>
1550
-      
1551
-        <li class="md-nav__item">
1552
-  <a href="#derivepassphrase._internals.cli_helpers.prompt_for_passphrase" class="md-nav__link">
1553
-    <span class="md-ellipsis">
1554
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;prompt_for_passphrase
1555
-    </span>
1556
-  </a>
1557
-  
1558
-</li>
1559
-      
1560
-        <li class="md-nav__item">
1561
-  <a href="#derivepassphrase._internals.cli_helpers.toml_key" class="md-nav__link">
1562
-    <span class="md-ellipsis">
1563
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;toml_key
1564
-    </span>
1565
-  </a>
1566
-  
1567
-</li>
1568
-      
1569
-        <li class="md-nav__item">
1570
-  <a href="#derivepassphrase._internals.cli_helpers.check_for_misleading_passphrase" class="md-nav__link">
1571
-    <span class="md-ellipsis">
1572
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;check_for_misleading_passphrase
1573
-    </span>
1574
-  </a>
1575
-  
1576
-</li>
1577
-      
1578
-        <li class="md-nav__item">
1579
-  <a href="#derivepassphrase._internals.cli_helpers.default_error_callback" class="md-nav__link">
1580
-    <span class="md-ellipsis">
1581
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;default_error_callback
1582
-    </span>
1583
-  </a>
1584
-  
1585
-</li>
1586
-      
1587
-        <li class="md-nav__item">
1588
-  <a href="#derivepassphrase._internals.cli_helpers.key_to_phrase" class="md-nav__link">
1589
-    <span class="md-ellipsis">
1590
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;key_to_phrase
1591
-    </span>
1592
-  </a>
1593
-  
1594
-</li>
1595
-      
1596
-        <li class="md-nav__item">
1597
-  <a href="#derivepassphrase._internals.cli_helpers.print_config_as_sh_script" class="md-nav__link">
1598
-    <span class="md-ellipsis">
1599
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;print_config_as_sh_script
1600
-    </span>
1601
-  </a>
1602
-  
1603
-</li>
1604
-      
1605
-    </ul>
1606
-  
1607
-</nav>
1608
-                  </div>
1609
-                </div>
1610
-              </div>
1611
-            
1612
-          
1613
-          
1614
-            <div class="md-content" data-md-component="content">
1615
-              <article class="md-content__inner md-typeset">
1616
-                
1617
-                  
1618
-
1619
-
1620
-  
1621
-  
1622
-    
1623
-      
1624
-    
1625
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/reference/derivepassphrase._internals.cli_helpers.md" title="View source of this page" class="md-content__button md-icon">
1626
-      
1627
-      <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>
1628
-    </a>
1629
-  
1630
-
1631
-
1632
-<div class="doc doc-object doc-module">
1633
-
1634
-
1635
-
1636
-<h1 id="derivepassphrase._internals.cli_helpers" class="doc doc-heading">
1637
-<code class="doc-symbol doc-symbol-heading doc-symbol-module"></code>            <span class="doc doc-object-name doc-module-name">derivepassphrase._internals.cli_helpers</span>
1638
-
1639
-
1640
-<a href="#derivepassphrase._internals.cli_helpers" class="headerlink" title="Permanent link">&para;</a></h1>
1641
-
1642
-    <div class="doc doc-contents first">
1643
-
1644
-        <p>Helper functions for the derivepassphrase command-line.</p>
1645
-
1646
-
1647
-<details class="warning" open>
1648
-  <summary>Warning</summary>
1649
-  <p>Non-public module (implementation detail), provided for didactical and
1650
-educational purposes only. Subject to change without notice, including
1651
-removal.</p>
1652
-</details>
1653
-
1654
-
1655
-
1656
-
1657
-
1658
-
1659
-
1660
-
1661
-  <div class="doc doc-children">
1662
-
1663
-
1664
-
1665
-
1666
-
1667
-
1668
-
1669
-<div class="doc doc-object doc-attribute">
1670
-
1671
-
1672
-
1673
-<h2 id="derivepassphrase._internals.cli_helpers.LOCK_SIZE" class="doc doc-heading">
1674
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">LOCK_SIZE</span>
1675
-
1676
-
1677
-  <span class="doc doc-labels">
1678
-      <small class="doc doc-label doc-label-module-attribute"><code>module-attribute</code></small>
1679
-  </span>
1680
-
1681
-<a href="#derivepassphrase._internals.cli_helpers.LOCK_SIZE" class="headerlink" title="Permanent link">&para;</a></h2>
1682
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">LOCK_SIZE</span> <span class="o">=</span> <span class="mi">4096</span>
1683
-</code></pre></div>
1684
-
1685
-    <div class="doc doc-contents ">
1686
-
1687
-        <p>The size of the record to lock at the beginning of the file, for locking
1688
-implementations that lock byte ranges instead of whole files.</p>
1689
-<p>While POSIX specifies that <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/fcntl.html#module-fcntl"><code>fcntl</code></a> locks shall support a size of zero to
1690
-denote &ldquo;any conceivable file size&rdquo;, the locking system available in
1691
-<a class="autorefs autorefs-external" href="https://docs.python.org/3/library/msvcrt.html#module-msvcrt"><code>msvcrt</code></a> does not support this, and requires an explicit size.</p>
1692
-
1693
-    </div>
1694
-
1695
-</div>
1696
-
1697
-
1698
-<div class="doc doc-object doc-class">
1699
-
1700
-
1701
-
1702
-<h2 id="derivepassphrase._internals.cli_helpers.ConfigurationMutex" class="doc doc-heading">
1703
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">ConfigurationMutex</span>
1704
-
1705
-
1706
-<a href="#derivepassphrase._internals.cli_helpers.ConfigurationMutex" class="headerlink" title="Permanent link">&para;</a></h2>
1707
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">ConfigurationMutex</span><span class="p">()</span>
1708
-</code></pre></div>
1709
-
1710
-    <div class="doc doc-contents ">
1711
-
1712
-
1713
-
1714
-        <p>A mutual exclusion context manager for configuration edits.</p>
1715
-<p>See <a class="autorefs autorefs-internal" title="            configuration_mutex" href="#derivepassphrase._internals.cli_helpers.configuration_mutex"><code>configuration_mutex</code></a>.</p>
1716
-
1717
-
1718
-
1719
-
1720
-
1721
-
1722
-
1723
-
1724
-
1725
-
1726
-  <div class="doc doc-children">
1727
-
1728
-
1729
-
1730
-
1731
-
1732
-
1733
-
1734
-<div class="doc doc-object doc-attribute">
1735
-
1736
-
1737
-
1738
-<h3 id="derivepassphrase._internals.cli_helpers.ConfigurationMutex.lock" class="doc doc-heading">
1739
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">lock</span>
1740
-
1741
-
1742
-  <span class="doc doc-labels">
1743
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
1744
-  </span>
1745
-
1746
-<a href="#derivepassphrase._internals.cli_helpers.ConfigurationMutex.lock" class="headerlink" title="Permanent link">&para;</a></h3>
1747
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">lock</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="kc">None</span><span class="p">]</span> <span class="o">=</span> <span class="n"><span title="derivepassphrase._internals.cli_helpers.ConfigurationMutex.__init__.lock_func">lock_func</span></span>
1748
-</code></pre></div>
1749
-
1750
-    <div class="doc doc-contents ">
1751
-
1752
-        <p>A function to lock the mutex exclusively.</p>
1753
-<p>This implementation uses a file descriptor of a well-known file,
1754
-which is opened before locking and closed after unlocking (and on
1755
-error when locking). On Windows, we use <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/msvcrt.html#msvcrt.locking"><code>msvcrt.locking</code></a>, on
1756
-other systems, we use <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/fcntl.html#fcntl.flock"><code>fcntl.flock</code></a>.</p>
1757
-
1758
-
1759
-<details class="note" open>
1760
-  <summary>Note</summary>
1761
-  <p>This is a normal Python function, not a method.</p>
1762
-</details>
1763
-
1764
-<details class="warning" open>
1765
-  <summary>Warning</summary>
1766
-  <p>You really should not have to change this. <em>If you absolutely
1767
-must</em>, then it is <em>your responsibility</em> to ensure that
1768
-<a class="autorefs autorefs-internal" title="            lock
1769
-
1770
-
1771
-  
1772
-      instance-attribute
1773
-  " href="#derivepassphrase._internals.cli_helpers.ConfigurationMutex.lock"><code>lock</code></a> and <a class="autorefs autorefs-internal" title="            unlock
1774
-
1775
-
1776
-  
1777
-      instance-attribute
1778
-  " href="#derivepassphrase._internals.cli_helpers.ConfigurationMutex.unlock"><code>unlock</code></a> are still compatible.</p>
1779
-</details>
1780
-    </div>
1781
-
1782
-</div>
1783
-
1784
-<div class="doc doc-object doc-attribute">
1785
-
1786
-
1787
-
1788
-<h3 id="derivepassphrase._internals.cli_helpers.ConfigurationMutex.unlock" class="doc doc-heading">
1789
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">unlock</span>
1790
-
1791
-
1792
-  <span class="doc doc-labels">
1793
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
1794
-  </span>
1795
-
1796
-<a href="#derivepassphrase._internals.cli_helpers.ConfigurationMutex.unlock" class="headerlink" title="Permanent link">&para;</a></h3>
1797
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">unlock</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="kc">None</span><span class="p">]</span> <span class="o">=</span> <span class="n"><span title="derivepassphrase._internals.cli_helpers.ConfigurationMutex.__init__.unlock_func">unlock_func</span></span>
1798
-</code></pre></div>
1799
-
1800
-    <div class="doc doc-contents ">
1801
-
1802
-        <p>A function to unlock the mutex.</p>
1803
-<p>This implementation uses a file descriptor of a well-known file,
1804
-which is opened before locking and closed after unlocking (and on
1805
-error when locking). It will fail if the file descriptor is
1806
-unavailable. On Windows, we use <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/msvcrt.html#msvcrt.locking"><code>msvcrt.locking</code></a>, on other
1807
-systems, we use <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/fcntl.html#fcntl.flock"><code>fcntl.flock</code></a>.</p>
1808
-
1809
-
1810
-<details class="note" open>
1811
-  <summary>Note</summary>
1812
-  <p>This is a normal Python function, not a method.</p>
1813
-</details>
1814
-
1815
-<details class="warning" open>
1816
-  <summary>Warning</summary>
1817
-  <p>You really should not have to change this. <em>If you absolutely
1818
-must</em>, then it is <em>your responsibility</em> to ensure that
1819
-<a class="autorefs autorefs-internal" title="            lock
1820
-
1821
-
1822
-  
1823
-      instance-attribute
1824
-  " href="#derivepassphrase._internals.cli_helpers.ConfigurationMutex.lock"><code>lock</code></a> and <a class="autorefs autorefs-internal" title="            unlock
1825
-
1826
-
1827
-  
1828
-      instance-attribute
1829
-  " href="#derivepassphrase._internals.cli_helpers.ConfigurationMutex.unlock"><code>unlock</code></a> are still compatible.</p>
1830
-</details>
1831
-    </div>
1832
-
1833
-</div>
1834
-
1835
-<div class="doc doc-object doc-attribute">
1836
-
1837
-
1838
-
1839
-<h3 id="derivepassphrase._internals.cli_helpers.ConfigurationMutex.write_lock_fileobj" class="doc doc-heading">
1840
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">write_lock_fileobj</span>
1841
-
1842
-
1843
-  <span class="doc doc-labels">
1844
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
1845
-  </span>
1846
-
1847
-<a href="#derivepassphrase._internals.cli_helpers.ConfigurationMutex.write_lock_fileobj" class="headerlink" title="Permanent link">&para;</a></h3>
1848
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">write_lock_fileobj</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="typing.BinaryIO" href="https://docs.python.org/3/library/typing.html#typing.BinaryIO">BinaryIO</a></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
1849
-</code></pre></div>
1850
-
1851
-    <div class="doc doc-contents ">
1852
-
1853
-        <p>The file object, if currently locked by this context manager.</p>
1854
-
1855
-    </div>
1856
-
1857
-</div>
1858
-
1859
-<div class="doc doc-object doc-attribute">
1860
-
1861
-
1862
-
1863
-<h3 id="derivepassphrase._internals.cli_helpers.ConfigurationMutex.write_lock_file" class="doc doc-heading">
1864
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">write_lock_file</span>
1865
-
1866
-
1867
-  <span class="doc doc-labels">
1868
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
1869
-  </span>
1870
-
1871
-<a href="#derivepassphrase._internals.cli_helpers.ConfigurationMutex.write_lock_file" class="headerlink" title="Permanent link">&para;</a></h3>
1872
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">write_lock_file</span><span class="p">:</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-internal" title="            config_filename (derivepassphrase._internals.cli_helpers.config_filename)" href="#derivepassphrase._internals.cli_helpers.config_filename">config_filename</a></span><span class="p">(</span><span class="s1">&#39;write lock&#39;</span><span class="p">)</span>
1873
-</code></pre></div>
1874
-
1875
-    <div class="doc doc-contents ">
1876
-
1877
-        <p>The filename to lock.</p>
1878
-
1879
-    </div>
1880
-
1881
-</div>
1882
-
1883
-<div class="doc doc-object doc-attribute">
1884
-
1885
-
1886
-
1887
-<h3 id="derivepassphrase._internals.cli_helpers.ConfigurationMutex.write_lock_condition" class="doc doc-heading">
1888
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">write_lock_condition</span>
1889
-
1890
-
1891
-  <span class="doc doc-labels">
1892
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
1893
-  </span>
1894
-
1895
-<a href="#derivepassphrase._internals.cli_helpers.ConfigurationMutex.write_lock_condition" class="headerlink" title="Permanent link">&para;</a></h3>
1896
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">write_lock_condition</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="threading.Condition" href="https://docs.python.org/3/library/threading.html#threading.Condition">Condition</a></span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-external" title="threading.Condition" href="https://docs.python.org/3/library/threading.html#threading.Condition">Condition</a></span><span class="p">(</span><span class="n"><a class="autorefs autorefs-external" title="threading.Lock" href="https://docs.python.org/3/library/threading.html#threading.Lock">Lock</a></span><span class="p">())</span>
1897
-</code></pre></div>
1898
-
1899
-    <div class="doc doc-contents ">
1900
-
1901
-        <p>The lock protecting access to the file object.</p>
1902
-
1903
-    </div>
1904
-
1905
-</div>
1906
-
1907
-
1908
-
1909
-<div class="doc doc-object doc-function">
1910
-
1911
-
1912
-<h3 id="derivepassphrase._internals.cli_helpers.ConfigurationMutex.__enter__" class="doc doc-heading">
1913
-<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code>            <span class="doc doc-object-name doc-function-name">__enter__</span>
1914
-
1915
-
1916
-<a href="#derivepassphrase._internals.cli_helpers.ConfigurationMutex.__enter__" class="headerlink" title="Permanent link">&para;</a></h3>
1917
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">__enter__</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n"><a class="autorefs autorefs-external" title="typing_extensions.Self" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Self">Self</a></span>
1918
-</code></pre></div>
1919
-
1920
-    <div class="doc doc-contents ">
1921
-
1922
-        <p>Enter the context, locking the configuration file.</p>
1923
-
1924
-
1925
-    </div>
1926
-
1927
-</div>
1928
-
1929
-<div class="doc doc-object doc-function">
1930
-
1931
-
1932
-<h3 id="derivepassphrase._internals.cli_helpers.ConfigurationMutex.__exit__" class="doc doc-heading">
1933
-<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code>            <span class="doc doc-object-name doc-function-name">__exit__</span>
1934
-
1935
-
1936
-<a href="#derivepassphrase._internals.cli_helpers.ConfigurationMutex.__exit__" class="headerlink" title="Permanent link">&para;</a></h3>
1937
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">__exit__</span><span class="p">(</span>
1938
-    <span class="n">exc_type</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#type">type</a></span><span class="p">[</span><span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#BaseException">BaseException</a></span><span class="p">]</span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span>
1939
-    <span class="n">exc_value</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#BaseException">BaseException</a></span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span>
1940
-    <span class="n">exc_tb</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="types.TracebackType" href="https://docs.python.org/3/library/types.html#types.TracebackType">TracebackType</a></span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</span>
1941
-<span class="p">)</span> <span class="o">-&gt;</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="kc">False</span><span class="p">]</span>
1942
-</code></pre></div>
1943
-
1944
-    <div class="doc doc-contents ">
1945
-
1946
-        <p>Exit the context, releasing the lock on the configuration file.</p>
1947
-
1948
-
1949
-    </div>
1950
-
1951
-</div>
1952
-
1953
-
1954
-
1955
-  </div>
1956
-
1957
-    </div>
1958
-
1959
-</div>
1960
-
1961
-<div class="doc doc-object doc-class">
1962
-
1963
-
1964
-
1965
-<h2 id="derivepassphrase._internals.cli_helpers.ORIGIN" class="doc doc-heading">
1966
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">ORIGIN</span>
1967
-
1968
-
1969
-<a href="#derivepassphrase._internals.cli_helpers.ORIGIN" class="headerlink" title="Permanent link">&para;</a></h2>
1970
-
1971
-
1972
-    <div class="doc doc-contents ">
1973
-            <p class="doc doc-class-bases">
1974
-              Bases: <code><a class="autorefs autorefs-external" title="enum.Enum" href="https://docs.python.org/3/library/enum.html#enum.Enum">Enum</a></code></p>
1975
-
1976
-
1977
-
1978
-        <p>The origin of a setting, if not from the user configuration file.</p>
1979
-
1980
-
1981
-<p><span class="doc-section-title">Attributes:</span></p>
1982
-    <table>
1983
-      <thead>
1984
-        <tr>
1985
-          <th>Name</th>
1986
-          <th>Type</th>
1987
-          <th>Description</th>
1988
-        </tr>
1989
-      </thead>
1990
-      <tbody>
1991
-          <tr class="doc-section-item">
1992
-            <td><code><a class="autorefs autorefs-internal" title="            INTERACTIVE
1993
-
1994
-
1995
-  
1996
-      class-attribute
1997
-      instance-attribute
1998
-   (derivepassphrase._internals.cli_helpers.ORIGIN.INTERACTIVE)" href="#derivepassphrase._internals.cli_helpers.ORIGIN.INTERACTIVE">INTERACTIVE</a></code></td>
1999
-            <td>
2000
-                  <code><a class="autorefs autorefs-internal" title="            Label (derivepassphrase._internals.cli_messages.Label)" href="../derivepassphrase._internals.cli_messages/#derivepassphrase._internals.cli_messages.Label">Label</a></code>
2001
-            </td>
2002
-            <td>
2003
-              <div class="doc-md-description">
2004
-                <p>interactive input</p>
2005
-              </div>
2006
-            </td>
2007
-          </tr>
2008
-      </tbody>
2009
-    </table>
2010
-
2011
-
2012
-
2013
-
2014
-
2015
-
2016
-
2017
-
2018
-
2019
-
2020
-  <div class="doc doc-children">
2021
-
2022
-
2023
-
2024
-
2025
-
2026
-
2027
-
2028
-<div class="doc doc-object doc-attribute">
2029
-
2030
-
2031
-
2032
-<h3 id="derivepassphrase._internals.cli_helpers.ORIGIN.INTERACTIVE" class="doc doc-heading">
2033
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">INTERACTIVE</span>
2034
-
2035
-
2036
-  <span class="doc doc-labels">
2037
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
2038
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
2039
-  </span>
2040
-
2041
-<a href="#derivepassphrase._internals.cli_helpers.ORIGIN.INTERACTIVE" class="headerlink" title="Permanent link">&para;</a></h3>
2042
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">INTERACTIVE</span> <span class="o">=</span> <span class="n"><span title="derivepassphrase._internals.cli_messages.Label.SETTINGS_ORIGIN_INTERACTIVE">SETTINGS_ORIGIN_INTERACTIVE</span></span>
2043
-</code></pre></div>
2044
-
2045
-    <div class="doc doc-contents ">
2046
-
2047
-        
2048
-
2049
-    </div>
2050
-
2051
-</div>
2052
-
2053
-
2054
-
2055
-
2056
-
2057
-  </div>
2058
-
2059
-    </div>
2060
-
2061
-</div>
2062
-
2063
-
2064
-<div class="doc doc-object doc-function">
2065
-
2066
-
2067
-<h2 id="derivepassphrase._internals.cli_helpers.shell_complete_path" class="doc doc-heading">
2068
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">shell_complete_path</span>
2069
-
2070
-
2071
-<a href="#derivepassphrase._internals.cli_helpers.shell_complete_path" class="headerlink" title="Permanent link">&para;</a></h2>
2072
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">shell_complete_path</span><span class="p">(</span>
2073
-    <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/stable/api/#click.Context">Context</a></span><span class="p">,</span> <span class="n">parameter</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="click.Parameter" href="https://click.palletsprojects.com/en/stable/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" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></span>
2074
-<span class="p">)</span> <span class="o">-&gt;</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="o">|</span> <span class="n"><a class="autorefs autorefs-external" title="click.shell_completion.CompletionItem" href="https://click.palletsprojects.com/en/stable/api/#click.shell_completion.CompletionItem">CompletionItem</a></span><span class="p">]</span>
2075
-</code></pre></div>
2076
-
2077
-    <div class="doc doc-contents ">
2078
-
2079
-        <p>Request standard path completion for the <code>path</code> argument.</p>
2080
-
2081
-
2082
-    </div>
2083
-
2084
-</div>
2085
-
2086
-<div class="doc doc-object doc-function">
2087
-
2088
-
2089
-<h2 id="derivepassphrase._internals.cli_helpers.is_completable_item" class="doc doc-heading">
2090
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">is_completable_item</span>
2091
-
2092
-
2093
-<a href="#derivepassphrase._internals.cli_helpers.is_completable_item" class="headerlink" title="Permanent link">&para;</a></h2>
2094
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">is_completable_item</span><span class="p">(</span><span class="n">obj</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="p">)</span> <span class="o">-&gt;</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></span>
2095
-</code></pre></div>
2096
-
2097
-    <div class="doc doc-contents ">
2098
-
2099
-        <p>Return whether the item is completable on the command-line.</p>
2100
-<p>The item is completable if and only if it contains no ASCII control
2101
-characters (U+0000 through U+001F, and U+007F).</p>
2102
-
2103
-
2104
-    </div>
2105
-
2106
-</div>
2107
-
2108
-<div class="doc doc-object doc-function">
2109
-
2110
-
2111
-<h2 id="derivepassphrase._internals.cli_helpers.shell_complete_service" class="doc doc-heading">
2112
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">shell_complete_service</span>
2113
-
2114
-
2115
-<a href="#derivepassphrase._internals.cli_helpers.shell_complete_service" class="headerlink" title="Permanent link">&para;</a></h2>
2116
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">shell_complete_service</span><span class="p">(</span>
2117
-    <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/stable/api/#click.Context">Context</a></span><span class="p">,</span> <span class="n">parameter</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="click.Parameter" href="https://click.palletsprojects.com/en/stable/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" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></span>
2118
-<span class="p">)</span> <span class="o">-&gt;</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="o">|</span> <span class="n"><a class="autorefs autorefs-external" title="click.shell_completion.CompletionItem" href="https://click.palletsprojects.com/en/stable/api/#click.shell_completion.CompletionItem">CompletionItem</a></span><span class="p">]</span>
2119
-</code></pre></div>
2120
-
2121
-    <div class="doc doc-contents ">
2122
-
2123
-        <p>Return known vault service names as completion items.</p>
2124
-<p>Service names are looked up in the vault configuration file.  All
2125
-errors will be suppressed.  Additionally, any service names deemed
2126
-not completable as per <a class="autorefs autorefs-internal" title="            is_completable_item" href="#derivepassphrase._internals.cli_helpers.is_completable_item"><code>is_completable_item</code></a> will be silently
2127
-skipped.</p>
2128
-
2129
-
2130
-    </div>
2131
-
2132
-</div>
2133
-
2134
-<div class="doc doc-object doc-function">
2135
-
2136
-
2137
-<h2 id="derivepassphrase._internals.cli_helpers.configuration_mutex" class="doc doc-heading">
2138
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">configuration_mutex</span>
2139
-
2140
-
2141
-<a href="#derivepassphrase._internals.cli_helpers.configuration_mutex" class="headerlink" title="Permanent link">&para;</a></h2>
2142
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">configuration_mutex</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="p">(</span>
2143
-    <span class="n"><a class="autorefs autorefs-external" title="contextlib.AbstractContextManager" href="https://docs.python.org/3/library/contextlib.html#contextlib.AbstractContextManager">AbstractContextManager</a></span><span class="p">[</span><span class="n"><a class="autorefs autorefs-external" title="contextlib.AbstractContextManager" href="https://docs.python.org/3/library/contextlib.html#contextlib.AbstractContextManager">AbstractContextManager</a></span><span class="p">]</span>
2144
-<span class="p">)</span>
2145
-</code></pre></div>
2146
-
2147
-    <div class="doc doc-contents ">
2148
-
2149
-        <p>Enter a mutually exclusive context for configuration writes.</p>
2150
-<p>Within this context, no other cooperating instance of
2151
-<code>derivepassphrase</code> will attempt to write to its configuration
2152
-directory.  We achieve this by locking a specific temporary file
2153
-(whose name depends on the location of the configuration directory)
2154
-for the duration of the context.</p>
2155
-
2156
-
2157
-    <p><span class="doc-section-title">Returns:</span></p>
2158
-    <table>
2159
-      <thead>
2160
-        <tr>
2161
-          <th>Type</th>
2162
-          <th>Description</th>
2163
-        </tr>
2164
-      </thead>
2165
-      <tbody>
2166
-          <tr class="doc-section-item">
2167
-            <td>
2168
-                  <code><a class="autorefs autorefs-external" title="contextlib.AbstractContextManager" href="https://docs.python.org/3/library/contextlib.html#contextlib.AbstractContextManager">AbstractContextManager</a>[<a class="autorefs autorefs-external" title="contextlib.AbstractContextManager" href="https://docs.python.org/3/library/contextlib.html#contextlib.AbstractContextManager">AbstractContextManager</a>]</code>
2169
-            </td>
2170
-            <td>
2171
-              <div class="doc-md-description">
2172
-                <p>A reusable but not reentrant context manager, ensuring mutual
2173
-exclusion (while within its context) with all other
2174
-<code>derivepassphrase</code> instances using the same configuration
2175
-directory.</p>
2176
-<p>Upon entering the context, the context manager returns itself.</p>
2177
-              </div>
2178
-            </td>
2179
-          </tr>
2180
-      </tbody>
2181
-    </table>
2182
-
2183
-
2184
-<details class="note" open>
2185
-  <summary>Locking specifics</summary>
2186
-  <p>The directory for the lock file is determined via
2187
-<a class="autorefs autorefs-internal" title="            get_tempdir" href="#derivepassphrase._internals.cli_helpers.get_tempdir"><code>get_tempdir</code></a>.  The lock filename is
2188
-<code>derivepassphrase-lock-&lt;hash&gt;.txt</code>, where <code>&lt;hash&gt;</code> is computed
2189
-as follows.  First, canonicalize the path to the configuration
2190
-directory with <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/pathlib.html#pathlib.Path.resolve"><code>pathlib.Path.resolve</code></a>.  Then encode the
2191
-result as per the filesystem encoding (<a class="autorefs autorefs-external" href="https://docs.python.org/3/library/os.html#os.fsencode"><code>os.fsencode</code></a>), and
2192
-hash it with SHA256.  Finally, convert the result to standard
2193
-base32 and use the first twelve characters, in lowercase, as
2194
-<code>&lt;hash&gt;</code>.</p>
2195
-<p>We use <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/msvcrt.html#msvcrt.locking"><code>msvcrt.locking</code></a> on Windows platforms (<code>sys.platform
2196
-== "win32"</code>) and <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/fcntl.html#fcntl.flock"><code>fcntl.flock</code></a> on all others.  All locks are
2197
-exclusive locks.  If the locking system requires a byte range,
2198
-we lock the first <a class="autorefs autorefs-internal" title="            LOCK_SIZE
2199
-
2200
-
2201
-  
2202
-      module-attribute
2203
-  " href="#derivepassphrase._internals.cli_helpers.LOCK_SIZE"><code>LOCK_SIZE</code></a> bytes.  For maximum
2204
-portability between locking implementations, we first open the
2205
-lock file for writing, which is sometimes necessary to lock
2206
-a file exclusively.  Thus locking will fail if we lack
2207
-permission to write to an already-existing lockfile.</p>
2208
-</details>
2209
-
2210
-    </div>
2211
-
2212
-</div>
2213
-
2214
-<div class="doc doc-object doc-function">
2215
-
2216
-
2217
-<h2 id="derivepassphrase._internals.cli_helpers.get_tempdir" class="doc doc-heading">
2218
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">get_tempdir</span>
2219
-
2220
-
2221
-<a href="#derivepassphrase._internals.cli_helpers.get_tempdir" class="headerlink" title="Permanent link">&para;</a></h2>
2222
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">get_tempdir</span><span class="p">()</span> <span class="o">-&gt;</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>
2223
-</code></pre></div>
2224
-
2225
-    <div class="doc doc-contents ">
2226
-
2227
-        <p>Return a suitable temporary directory.</p>
2228
-<p>We implement the same algorithm as <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/tempfile.html#tempfile.gettempdir"><code>tempfile.gettempdir</code></a>, except
2229
-that we default to the <code>derivepassphrase</code> configuration directory
2230
-instead of the current directory if no other choice is suitable, and
2231
-that we return <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/pathlib.html#pathlib.Path"><code>pathlib.Path</code></a> objects directly.</p>
2232
-
2233
-
2234
-    </div>
2235
-
2236
-</div>
2237
-
2238
-<div class="doc doc-object doc-function">
2239
-
2240
-
2241
-<h2 id="derivepassphrase._internals.cli_helpers.config_filename" class="doc doc-heading">
2242
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">config_filename</span>
2243
-
2244
-
2245
-<a href="#derivepassphrase._internals.cli_helpers.config_filename" class="headerlink" title="Permanent link">&para;</a></h2>
2246
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">config_filename</span><span class="p">(</span>
2247
-    <span class="n">subsystem</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="s2">&quot;old settings.json&quot;</span><span class="p">,</span>
2248
-<span class="p">)</span> <span class="o">-&gt;</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>
2249
-</code></pre></div>
2250
-
2251
-    <div class="doc doc-contents ">
2252
-
2253
-        <p>Return the filename of the configuration file for the subsystem.</p>
2254
-<p>The (implicit default) file is currently named <code>settings.json</code>,
2255
-located within the configuration directory as determined by the
2256
-<code>DERIVEPASSPHRASE_PATH</code> environment variable, or by
2257
-<a class="autorefs autorefs-external" href="https://click.palletsprojects.com/en/stable/api/#click.get_app_dir"><code>click.get_app_dir</code></a> in POSIX mode.  Depending on the requested
2258
-subsystem, this will usually be a different file within that
2259
-directory.</p>
2260
-
2261
-
2262
-<p><span class="doc-section-title">Parameters:</span></p>
2263
-    <table>
2264
-      <thead>
2265
-        <tr>
2266
-          <th>Name</th>
2267
-          <th>Type</th>
2268
-          <th>Description</th>
2269
-          <th>Default</th>
2270
-        </tr>
2271
-      </thead>
2272
-      <tbody>
2273
-          <tr class="doc-section-item">
2274
-            <td>
2275
-                <code>subsystem</code>
2276
-            </td>
2277
-            <td>
2278
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a> | None</code>
2279
-            </td>
2280
-            <td>
2281
-              <div class="doc-md-description">
2282
-                <p>Name of the configuration subsystem whose configuration
2283
-filename to return.  If not given, return the old filename
2284
-from before the subcommand migration.  If <code>None</code>, return the
2285
-configuration directory instead.</p>
2286
-              </div>
2287
-            </td>
2288
-            <td>
2289
-                  <code>&#39;old settings.json&#39;</code>
2290
-            </td>
2291
-          </tr>
2292
-      </tbody>
2293
-    </table>
2294
-
2295
-
2296
-<p><span class="doc-section-title">Raises:</span></p>
2297
-    <table>
2298
-      <thead>
2299
-        <tr>
2300
-          <th>Type</th>
2301
-          <th>Description</th>
2302
-        </tr>
2303
-      </thead>
2304
-      <tbody>
2305
-          <tr class="doc-section-item">
2306
-            <td>
2307
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#AssertionError">AssertionError</a></code>
2308
-            </td>
2309
-            <td>
2310
-              <div class="doc-md-description">
2311
-                <p>An unknown subsystem was passed.</p>
2312
-              </div>
2313
-            </td>
2314
-          </tr>
2315
-      </tbody>
2316
-    </table>
2317
-
2318
-
2319
-<details class="deprecated" open>
2320
-  <summary>Deprecated</summary>
2321
-  <p>Since v0.2.0: The implicit default subsystem and the old
2322
-configuration filename are deprecated, and will be removed in v1.0.
2323
-The subsystem will be mandatory to specify.</p>
2324
-</details>
2325
-
2326
-    </div>
2327
-
2328
-</div>
2329
-
2330
-<div class="doc doc-object doc-function">
2331
-
2332
-
2333
-<h2 id="derivepassphrase._internals.cli_helpers.load_config" class="doc doc-heading">
2334
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">load_config</span>
2335
-
2336
-
2337
-<a href="#derivepassphrase._internals.cli_helpers.load_config" class="headerlink" title="Permanent link">&para;</a></h2>
2338
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">load_config</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n"><a class="autorefs autorefs-internal" title="            VaultConfig (derivepassphrase._types.VaultConfig)" href="../derivepassphrase._types/#derivepassphrase._types.VaultConfig">VaultConfig</a></span>
2339
-</code></pre></div>
2340
-
2341
-    <div class="doc doc-contents ">
2342
-
2343
-        <p>Load a vault(1)-compatible config from the application directory.</p>
2344
-<p>The filename is obtained via <a class="autorefs autorefs-internal" title="            config_filename" href="#derivepassphrase._internals.cli_helpers.config_filename"><code>config_filename</code></a>.  This must be
2345
-an unencrypted JSON file.</p>
2346
-
2347
-
2348
-    <p><span class="doc-section-title">Returns:</span></p>
2349
-    <table>
2350
-      <thead>
2351
-        <tr>
2352
-          <th>Type</th>
2353
-          <th>Description</th>
2354
-        </tr>
2355
-      </thead>
2356
-      <tbody>
2357
-          <tr class="doc-section-item">
2358
-            <td>
2359
-                  <code><a class="autorefs autorefs-internal" title="            VaultConfig (derivepassphrase._types.VaultConfig)" href="../derivepassphrase._types/#derivepassphrase._types.VaultConfig">VaultConfig</a></code>
2360
-            </td>
2361
-            <td>
2362
-              <div class="doc-md-description">
2363
-                <p>The vault settings.  See <a class="autorefs autorefs-internal" title="            VaultConfig" href="../derivepassphrase._types/#derivepassphrase._types.VaultConfig"><code>_types.VaultConfig</code></a> for details.</p>
2364
-              </div>
2365
-            </td>
2366
-          </tr>
2367
-      </tbody>
2368
-    </table>
2369
-
2370
-
2371
-<p><span class="doc-section-title">Raises:</span></p>
2372
-    <table>
2373
-      <thead>
2374
-        <tr>
2375
-          <th>Type</th>
2376
-          <th>Description</th>
2377
-        </tr>
2378
-      </thead>
2379
-      <tbody>
2380
-          <tr class="doc-section-item">
2381
-            <td>
2382
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#OSError">OSError</a></code>
2383
-            </td>
2384
-            <td>
2385
-              <div class="doc-md-description">
2386
-                <p>There was an OS error accessing the file.</p>
2387
-              </div>
2388
-            </td>
2389
-          </tr>
2390
-          <tr class="doc-section-item">
2391
-            <td>
2392
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#ValueError">ValueError</a></code>
2393
-            </td>
2394
-            <td>
2395
-              <div class="doc-md-description">
2396
-                <p>The data loaded from the file is not a vault(1)-compatible
2397
-config.</p>
2398
-              </div>
2399
-            </td>
2400
-          </tr>
2401
-      </tbody>
2402
-    </table>
2403
-
2404
-
2405
-    </div>
2406
-
2407
-</div>
2408
-
2409
-<div class="doc doc-object doc-function">
2410
-
2411
-
2412
-<h2 id="derivepassphrase._internals.cli_helpers.migrate_and_load_old_config" class="doc doc-heading">
2413
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">migrate_and_load_old_config</span>
2414
-
2415
-
2416
-<a href="#derivepassphrase._internals.cli_helpers.migrate_and_load_old_config" class="headerlink" title="Permanent link">&para;</a></h2>
2417
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">migrate_and_load_old_config</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="p">(</span>
2418
-    <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#tuple">tuple</a></span><span class="p">[</span><span class="n"><a class="autorefs autorefs-internal" title="            VaultConfig (derivepassphrase._types.VaultConfig)" href="../derivepassphrase._types/#derivepassphrase._types.VaultConfig">VaultConfig</a></span><span class="p">,</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#OSError">OSError</a></span> <span class="o">|</span> <span class="kc">None</span><span class="p">]</span>
2419
-<span class="p">)</span>
2420
-</code></pre></div>
2421
-
2422
-    <div class="doc doc-contents ">
2423
-
2424
-        <p>Load and migrate a vault(1)-compatible config.</p>
2425
-<p>The (old) filename is obtained via <a class="autorefs autorefs-internal" title="            config_filename" href="#derivepassphrase._internals.cli_helpers.config_filename"><code>config_filename</code></a>.  This
2426
-must be an unencrypted JSON file.  After loading, the file is
2427
-migrated to the new standard filename.</p>
2428
-
2429
-
2430
-    <p><span class="doc-section-title">Returns:</span></p>
2431
-    <table>
2432
-      <thead>
2433
-        <tr>
2434
-          <th>Type</th>
2435
-          <th>Description</th>
2436
-        </tr>
2437
-      </thead>
2438
-      <tbody>
2439
-          <tr class="doc-section-item">
2440
-            <td>
2441
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#tuple">tuple</a>[<a class="autorefs autorefs-internal" title="            VaultConfig (derivepassphrase._types.VaultConfig)" href="../derivepassphrase._types/#derivepassphrase._types.VaultConfig">VaultConfig</a>, <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#OSError">OSError</a> | None]</code>
2442
-            </td>
2443
-            <td>
2444
-              <div class="doc-md-description">
2445
-                <p>The vault settings, and an optional exception encountered during
2446
-migration.  See <a class="autorefs autorefs-internal" title="            VaultConfig" href="../derivepassphrase._types/#derivepassphrase._types.VaultConfig"><code>_types.VaultConfig</code></a> for details on the
2447
-former.</p>
2448
-              </div>
2449
-            </td>
2450
-          </tr>
2451
-      </tbody>
2452
-    </table>
2453
-
2454
-
2455
-<p><span class="doc-section-title">Raises:</span></p>
2456
-    <table>
2457
-      <thead>
2458
-        <tr>
2459
-          <th>Type</th>
2460
-          <th>Description</th>
2461
-        </tr>
2462
-      </thead>
2463
-      <tbody>
2464
-          <tr class="doc-section-item">
2465
-            <td>
2466
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#OSError">OSError</a></code>
2467
-            </td>
2468
-            <td>
2469
-              <div class="doc-md-description">
2470
-                <p>There was an OS error accessing the old file.</p>
2471
-              </div>
2472
-            </td>
2473
-          </tr>
2474
-          <tr class="doc-section-item">
2475
-            <td>
2476
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#ValueError">ValueError</a></code>
2477
-            </td>
2478
-            <td>
2479
-              <div class="doc-md-description">
2480
-                <p>The data loaded from the file is not a vault(1)-compatible
2481
-config.</p>
2482
-              </div>
2483
-            </td>
2484
-          </tr>
2485
-      </tbody>
2486
-    </table>
2487
-
2488
-
2489
-    </div>
2490
-
2491
-</div>
2492
-
2493
-<div class="doc doc-object doc-function">
2494
-
2495
-
2496
-<h2 id="derivepassphrase._internals.cli_helpers.save_config" class="doc doc-heading">
2497
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">save_config</span>
2498
-
2499
-
2500
-<a href="#derivepassphrase._internals.cli_helpers.save_config" class="headerlink" title="Permanent link">&para;</a></h2>
2501
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">save_config</span><span class="p">(</span><span class="n">config</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-internal" title="            VaultConfig (derivepassphrase._types.VaultConfig)" href="../derivepassphrase._types/#derivepassphrase._types.VaultConfig">VaultConfig</a></span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
2502
-</code></pre></div>
2503
-
2504
-    <div class="doc doc-contents ">
2505
-
2506
-        <p>Save a vault(1)-compatible config to the application directory.</p>
2507
-<p>The filename is obtained via <a class="autorefs autorefs-internal" title="            config_filename" href="#derivepassphrase._internals.cli_helpers.config_filename"><code>config_filename</code></a>.  The config
2508
-will be stored as an unencrypted JSON file.</p>
2509
-
2510
-
2511
-<p><span class="doc-section-title">Parameters:</span></p>
2512
-    <table>
2513
-      <thead>
2514
-        <tr>
2515
-          <th>Name</th>
2516
-          <th>Type</th>
2517
-          <th>Description</th>
2518
-          <th>Default</th>
2519
-        </tr>
2520
-      </thead>
2521
-      <tbody>
2522
-          <tr class="doc-section-item">
2523
-            <td>
2524
-                <code>config</code>
2525
-            </td>
2526
-            <td>
2527
-                  <code><a class="autorefs autorefs-internal" title="            VaultConfig (derivepassphrase._types.VaultConfig)" href="../derivepassphrase._types/#derivepassphrase._types.VaultConfig">VaultConfig</a></code>
2528
-            </td>
2529
-            <td>
2530
-              <div class="doc-md-description">
2531
-                <p>vault configuration to save.</p>
2532
-              </div>
2533
-            </td>
2534
-            <td>
2535
-                <em>required</em>
2536
-            </td>
2537
-          </tr>
2538
-      </tbody>
2539
-    </table>
2540
-
2541
-
2542
-<p><span class="doc-section-title">Raises:</span></p>
2543
-    <table>
2544
-      <thead>
2545
-        <tr>
2546
-          <th>Type</th>
2547
-          <th>Description</th>
2548
-        </tr>
2549
-      </thead>
2550
-      <tbody>
2551
-          <tr class="doc-section-item">
2552
-            <td>
2553
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#OSError">OSError</a></code>
2554
-            </td>
2555
-            <td>
2556
-              <div class="doc-md-description">
2557
-                <p>There was an OS error accessing or writing the file.</p>
2558
-              </div>
2559
-            </td>
2560
-          </tr>
2561
-          <tr class="doc-section-item">
2562
-            <td>
2563
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#ValueError">ValueError</a></code>
2564
-            </td>
2565
-            <td>
2566
-              <div class="doc-md-description">
2567
-                <p>The data cannot be stored as a vault(1)-compatible config.</p>
2568
-              </div>
2569
-            </td>
2570
-          </tr>
2571
-      </tbody>
2572
-    </table>
2573
-
2574
-
2575
-    </div>
2576
-
2577
-</div>
2578
-
2579
-<div class="doc doc-object doc-function">
2580
-
2581
-
2582
-<h2 id="derivepassphrase._internals.cli_helpers.load_user_config" class="doc doc-heading">
2583
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">load_user_config</span>
2584
-
2585
-
2586
-<a href="#derivepassphrase._internals.cli_helpers.load_user_config" class="headerlink" title="Permanent link">&para;</a></h2>
2587
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">load_user_config</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#dict">dict</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"><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>
2588
-</code></pre></div>
2589
-
2590
-    <div class="doc doc-contents ">
2591
-
2592
-        <p>Load the user config from the application directory.</p>
2593
-<p>The filename is obtained via <a class="autorefs autorefs-internal" title="            config_filename" href="#derivepassphrase._internals.cli_helpers.config_filename"><code>config_filename</code></a>.</p>
2594
-
2595
-
2596
-    <p><span class="doc-section-title">Returns:</span></p>
2597
-    <table>
2598
-      <thead>
2599
-        <tr>
2600
-          <th>Type</th>
2601
-          <th>Description</th>
2602
-        </tr>
2603
-      </thead>
2604
-      <tbody>
2605
-          <tr class="doc-section-item">
2606
-            <td>
2607
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#dict">dict</a>[<a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a>, <a class="autorefs autorefs-external" title="typing_extensions.Any" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Any">Any</a>]</code>
2608
-            </td>
2609
-            <td>
2610
-              <div class="doc-md-description">
2611
-                <p>The user configuration, as a nested <code>dict</code>.</p>
2612
-              </div>
2613
-            </td>
2614
-          </tr>
2615
-      </tbody>
2616
-    </table>
2617
-
2618
-
2619
-<p><span class="doc-section-title">Raises:</span></p>
2620
-    <table>
2621
-      <thead>
2622
-        <tr>
2623
-          <th>Type</th>
2624
-          <th>Description</th>
2625
-        </tr>
2626
-      </thead>
2627
-      <tbody>
2628
-          <tr class="doc-section-item">
2629
-            <td>
2630
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#OSError">OSError</a></code>
2631
-            </td>
2632
-            <td>
2633
-              <div class="doc-md-description">
2634
-                <p>There was an OS error accessing the file.</p>
2635
-              </div>
2636
-            </td>
2637
-          </tr>
2638
-          <tr class="doc-section-item">
2639
-            <td>
2640
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#ValueError">ValueError</a></code>
2641
-            </td>
2642
-            <td>
2643
-              <div class="doc-md-description">
2644
-                <p>The data loaded from the file is not a valid configuration
2645
-file.</p>
2646
-              </div>
2647
-            </td>
2648
-          </tr>
2649
-      </tbody>
2650
-    </table>
2651
-
2652
-
2653
-    </div>
2654
-
2655
-</div>
2656
-
2657
-<div class="doc doc-object doc-function">
2658
-
2659
-
2660
-<h2 id="derivepassphrase._internals.cli_helpers.get_suitable_ssh_keys" class="doc doc-heading">
2661
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">get_suitable_ssh_keys</span>
2662
-
2663
-
2664
-<a href="#derivepassphrase._internals.cli_helpers.get_suitable_ssh_keys" class="headerlink" title="Permanent link">&para;</a></h2>
2665
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">get_suitable_ssh_keys</span><span class="p">(</span>
2666
-    <span class="n">conn</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-internal" title="            SSHAgentClient (derivepassphrase.ssh_agent.SSHAgentClient)" href="../derivepassphrase.ssh_agent/#derivepassphrase.ssh_agent.SSHAgentClient">SSHAgentClient</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-external" title="socket.socket" href="https://docs.python.org/3/library/socket.html#socket.socket">socket</a></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
2667
-<span class="p">)</span> <span class="o">-&gt;</span> <span class="n"><a class="autorefs autorefs-external" title="collections.abc.Iterator" href="https://docs.python.org/3/library/collections.abc.html#collections.abc.Iterator">Iterator</a></span><span class="p">[</span><span class="n"><a class="autorefs autorefs-internal" title="            SSHKeyCommentPair (derivepassphrase._types.SSHKeyCommentPair)" href="../derivepassphrase._types/#derivepassphrase._types.SSHKeyCommentPair">SSHKeyCommentPair</a></span><span class="p">]</span>
2668
-</code></pre></div>
2669
-
2670
-    <div class="doc doc-contents ">
2671
-
2672
-        <p>Yield all SSH keys suitable for passphrase derivation.</p>
2673
-<p>Suitable SSH keys are queried from the running SSH agent (see
2674
-<a class="autorefs autorefs-internal" title="            list_keys" href="../derivepassphrase.ssh_agent/#derivepassphrase.ssh_agent.SSHAgentClient.list_keys"><code>ssh_agent.SSHAgentClient.list_keys</code></a>).</p>
2675
-
2676
-
2677
-<p><span class="doc-section-title">Parameters:</span></p>
2678
-    <table>
2679
-      <thead>
2680
-        <tr>
2681
-          <th>Name</th>
2682
-          <th>Type</th>
2683
-          <th>Description</th>
2684
-          <th>Default</th>
2685
-        </tr>
2686
-      </thead>
2687
-      <tbody>
2688
-          <tr class="doc-section-item">
2689
-            <td>
2690
-                <code>conn</code>
2691
-            </td>
2692
-            <td>
2693
-                  <code><a class="autorefs autorefs-internal" title="            SSHAgentClient (derivepassphrase.ssh_agent.SSHAgentClient)" href="../derivepassphrase.ssh_agent/#derivepassphrase.ssh_agent.SSHAgentClient">SSHAgentClient</a> | <a class="autorefs autorefs-external" title="socket.socket" href="https://docs.python.org/3/library/socket.html#socket.socket">socket</a> | None</code>
2694
-            </td>
2695
-            <td>
2696
-              <div class="doc-md-description">
2697
-                <p>An optional connection hint to the SSH agent.  See
2698
-<a class="autorefs autorefs-internal" title="            ensure_agent_subcontext
2699
-
2700
-
2701
-  
2702
-      classmethod
2703
-  " href="../derivepassphrase.ssh_agent/#derivepassphrase.ssh_agent.SSHAgentClient.ensure_agent_subcontext"><code>ssh_agent.SSHAgentClient.ensure_agent_subcontext</code></a>.</p>
2704
-              </div>
2705
-            </td>
2706
-            <td>
2707
-                  <code>None</code>
2708
-            </td>
2709
-          </tr>
2710
-      </tbody>
2711
-    </table>
2712
-
2713
-
2714
-    <p><span class="doc-section-title">Yields:</span></p>
2715
-    <table>
2716
-      <thead>
2717
-        <tr>
2718
-          <th>Type</th>
2719
-          <th>Description</th>
2720
-        </tr>
2721
-      </thead>
2722
-      <tbody>
2723
-          <tr class="doc-section-item">
2724
-            <td>
2725
-                  <code><a class="autorefs autorefs-internal" title="            SSHKeyCommentPair (derivepassphrase._types.SSHKeyCommentPair)" href="../derivepassphrase._types/#derivepassphrase._types.SSHKeyCommentPair">SSHKeyCommentPair</a></code>
2726
-            </td>
2727
-            <td>
2728
-              <div class="doc-md-description">
2729
-                <p>Every SSH key from the SSH agent that is suitable for passphrase
2730
-derivation.</p>
2731
-              </div>
2732
-            </td>
2733
-          </tr>
2734
-      </tbody>
2735
-    </table>
2736
-
2737
-
2738
-<p><span class="doc-section-title">Raises:</span></p>
2739
-    <table>
2740
-      <thead>
2741
-        <tr>
2742
-          <th>Type</th>
2743
-          <th>Description</th>
2744
-        </tr>
2745
-      </thead>
2746
-      <tbody>
2747
-          <tr class="doc-section-item">
2748
-            <td>
2749
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#KeyError">KeyError</a></code>
2750
-            </td>
2751
-            <td>
2752
-              <div class="doc-md-description">
2753
-                <p><code>conn</code> was <code>None</code>, and the <code>SSH_AUTH_SOCK</code> environment
2754
-variable was not found.</p>
2755
-              </div>
2756
-            </td>
2757
-          </tr>
2758
-          <tr class="doc-section-item">
2759
-            <td>
2760
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#NotImplementedError">NotImplementedError</a></code>
2761
-            </td>
2762
-            <td>
2763
-              <div class="doc-md-description">
2764
-                <p><code>conn</code> was <code>None</code>, and this Python does not support
2765
-<a class="autorefs autorefs-external" href="https://docs.python.org/3/library/socket.html#socket.AF_UNIX"><code>socket.AF_UNIX</code></a>, so the SSH agent client cannot be
2766
-automatically set up.</p>
2767
-              </div>
2768
-            </td>
2769
-          </tr>
2770
-          <tr class="doc-section-item">
2771
-            <td>
2772
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#OSError">OSError</a></code>
2773
-            </td>
2774
-            <td>
2775
-              <div class="doc-md-description">
2776
-                <p><code>conn</code> was a socket or <code>None</code>, and there was an error
2777
-setting up a socket connection to the agent.</p>
2778
-              </div>
2779
-            </td>
2780
-          </tr>
2781
-          <tr class="doc-section-item">
2782
-            <td>
2783
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#LookupError">LookupError</a></code>
2784
-            </td>
2785
-            <td>
2786
-              <div class="doc-md-description">
2787
-                <p>No keys usable for passphrase derivation are loaded into the
2788
-SSH agent.</p>
2789
-              </div>
2790
-            </td>
2791
-          </tr>
2792
-          <tr class="doc-section-item">
2793
-            <td>
2794
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#RuntimeError">RuntimeError</a></code>
2795
-            </td>
2796
-            <td>
2797
-              <div class="doc-md-description">
2798
-                <p>There was an error communicating with the SSH agent.</p>
2799
-              </div>
2800
-            </td>
2801
-          </tr>
2802
-          <tr class="doc-section-item">
2803
-            <td>
2804
-                  <code><a class="autorefs autorefs-internal" title="            SSHAgentFailedError (derivepassphrase.ssh_agent.SSHAgentFailedError)" href="../derivepassphrase.ssh_agent/#derivepassphrase.ssh_agent.SSHAgentFailedError">SSHAgentFailedError</a></code>
2805
-            </td>
2806
-            <td>
2807
-              <div class="doc-md-description">
2808
-                <p>The agent failed to supply a list of loaded keys.</p>
2809
-              </div>
2810
-            </td>
2811
-          </tr>
2812
-      </tbody>
2813
-    </table>
2814
-
2815
-
2816
-    </div>
2817
-
2818
-</div>
2819
-
2820
-<div class="doc doc-object doc-function">
2821
-
2822
-
2823
-<h2 id="derivepassphrase._internals.cli_helpers.prompt_for_selection" class="doc doc-heading">
2824
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">prompt_for_selection</span>
2825
-
2826
-
2827
-<a href="#derivepassphrase._internals.cli_helpers.prompt_for_selection" class="headerlink" title="Permanent link">&para;</a></h2>
2828
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">prompt_for_selection</span><span class="p">(</span>
2829
-    <span class="n">items</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="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="p">],</span>
2830
-    <span class="n">heading</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="s2">&quot;Possible choices:&quot;</span><span class="p">,</span>
2831
-    <span class="n">single_choice_prompt</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="s2">&quot;Confirm this choice?&quot;</span><span class="p">,</span>
2832
-    <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/stable/api/#click.Context">Context</a></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
2833
-<span class="p">)</span> <span class="o">-&gt;</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#int">int</a></span>
2834
-</code></pre></div>
2835
-
2836
-    <div class="doc doc-contents ">
2837
-
2838
-        <p>Prompt user for a choice among the given items.</p>
2839
-<p>Print the heading, if any, then present the items to the user.  If
2840
-there are multiple items, prompt the user for a selection, validate
2841
-the choice, then return the list index of the selected item.  If
2842
-there is only a single item, request confirmation for that item
2843
-instead, and return the correct index.</p>
2844
-
2845
-
2846
-<p><span class="doc-section-title">Parameters:</span></p>
2847
-    <table>
2848
-      <thead>
2849
-        <tr>
2850
-          <th>Name</th>
2851
-          <th>Type</th>
2852
-          <th>Description</th>
2853
-          <th>Default</th>
2854
-        </tr>
2855
-      </thead>
2856
-      <tbody>
2857
-          <tr class="doc-section-item">
2858
-            <td>
2859
-                <code>items</code>
2860
-            </td>
2861
-            <td>
2862
-                  <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> | <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#bytes">bytes</a>]</code>
2863
-            </td>
2864
-            <td>
2865
-              <div class="doc-md-description">
2866
-                <p>The list of items to choose from.</p>
2867
-              </div>
2868
-            </td>
2869
-            <td>
2870
-                <em>required</em>
2871
-            </td>
2872
-          </tr>
2873
-          <tr class="doc-section-item">
2874
-            <td>
2875
-                <code>heading</code>
2876
-            </td>
2877
-            <td>
2878
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></code>
2879
-            </td>
2880
-            <td>
2881
-              <div class="doc-md-description">
2882
-                <p>A heading for the list of items, to print immediately
2883
-before.  Defaults to a reasonable standard heading.  If
2884
-explicitly empty, print no heading.</p>
2885
-              </div>
2886
-            </td>
2887
-            <td>
2888
-                  <code>&#39;Possible choices:&#39;</code>
2889
-            </td>
2890
-          </tr>
2891
-          <tr class="doc-section-item">
2892
-            <td>
2893
-                <code>single_choice_prompt</code>
2894
-            </td>
2895
-            <td>
2896
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></code>
2897
-            </td>
2898
-            <td>
2899
-              <div class="doc-md-description">
2900
-                <p>The confirmation prompt if there is only a single possible
2901
-choice.  Defaults to a reasonable standard prompt.</p>
2902
-              </div>
2903
-            </td>
2904
-            <td>
2905
-                  <code>&#39;Confirm this choice?&#39;</code>
2906
-            </td>
2907
-          </tr>
2908
-          <tr class="doc-section-item">
2909
-            <td>
2910
-                <code>ctx</code>
2911
-            </td>
2912
-            <td>
2913
-                  <code><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/stable/api/#click.Context">Context</a> | None</code>
2914
-            </td>
2915
-            <td>
2916
-              <div class="doc-md-description">
2917
-                <p>An optional <code>click</code> context, from which output device
2918
-properties and color preferences will be queried.</p>
2919
-              </div>
2920
-            </td>
2921
-            <td>
2922
-                  <code>None</code>
2923
-            </td>
2924
-          </tr>
2925
-      </tbody>
2926
-    </table>
2927
-
2928
-
2929
-    <p><span class="doc-section-title">Returns:</span></p>
2930
-    <table>
2931
-      <thead>
2932
-        <tr>
2933
-          <th>Type</th>
2934
-          <th>Description</th>
2935
-        </tr>
2936
-      </thead>
2937
-      <tbody>
2938
-          <tr class="doc-section-item">
2939
-            <td>
2940
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#int">int</a></code>
2941
-            </td>
2942
-            <td>
2943
-              <div class="doc-md-description">
2944
-                <p>An index into the items sequence, indicating the user&rsquo;s
2945
-selection.</p>
2946
-              </div>
2947
-            </td>
2948
-          </tr>
2949
-      </tbody>
2950
-    </table>
2951
-
2952
-
2953
-<p><span class="doc-section-title">Raises:</span></p>
2954
-    <table>
2955
-      <thead>
2956
-        <tr>
2957
-          <th>Type</th>
2958
-          <th>Description</th>
2959
-        </tr>
2960
-      </thead>
2961
-      <tbody>
2962
-          <tr class="doc-section-item">
2963
-            <td>
2964
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#IndexError">IndexError</a></code>
2965
-            </td>
2966
-            <td>
2967
-              <div class="doc-md-description">
2968
-                <p>The user made an invalid or empty selection, or requested an
2969
-abort.</p>
2970
-              </div>
2971
-            </td>
2972
-          </tr>
2973
-      </tbody>
2974
-    </table>
2975
-
2976
-
2977
-    </div>
2978
-
2979
-</div>
2980
-
2981
-<div class="doc doc-object doc-function">
2982
-
2983
-
2984
-<h2 id="derivepassphrase._internals.cli_helpers.select_ssh_key" class="doc doc-heading">
2985
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">select_ssh_key</span>
2986
-
2987
-
2988
-<a href="#derivepassphrase._internals.cli_helpers.select_ssh_key" class="headerlink" title="Permanent link">&para;</a></h2>
2989
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">select_ssh_key</span><span class="p">(</span>
2990
-    <span class="n">conn</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-internal" title="            SSHAgentClient (derivepassphrase.ssh_agent.SSHAgentClient)" href="../derivepassphrase.ssh_agent/#derivepassphrase.ssh_agent.SSHAgentClient">SSHAgentClient</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-external" title="socket.socket" href="https://docs.python.org/3/library/socket.html#socket.socket">socket</a></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
2991
-    <span class="o">/</span><span class="p">,</span>
2992
-    <span class="o">*</span><span class="p">,</span>
2993
-    <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/stable/api/#click.Context">Context</a></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
2994
-<span class="p">)</span> <span class="o">-&gt;</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" href="https://docs.python.org/3/library/stdtypes.html#bytearray">bytearray</a></span>
2995
-</code></pre></div>
2996
-
2997
-    <div class="doc doc-contents ">
2998
-
2999
-        <p>Interactively select an SSH key for passphrase derivation.</p>
3000
-<p>Suitable SSH keys are queried from the running SSH agent (see
3001
-<a class="autorefs autorefs-internal" title="            list_keys" href="../derivepassphrase.ssh_agent/#derivepassphrase.ssh_agent.SSHAgentClient.list_keys"><code>ssh_agent.SSHAgentClient.list_keys</code></a>), then the user is prompted
3002
-interactively (see <a class="autorefs autorefs-external" href="https://click.palletsprojects.com/en/stable/api/#click.prompt"><code>click.prompt</code></a>) for a selection.</p>
3003
-
3004
-
3005
-<p><span class="doc-section-title">Parameters:</span></p>
3006
-    <table>
3007
-      <thead>
3008
-        <tr>
3009
-          <th>Name</th>
3010
-          <th>Type</th>
3011
-          <th>Description</th>
3012
-          <th>Default</th>
3013
-        </tr>
3014
-      </thead>
3015
-      <tbody>
3016
-          <tr class="doc-section-item">
3017
-            <td>
3018
-                <code>conn</code>
3019
-            </td>
3020
-            <td>
3021
-                  <code><a class="autorefs autorefs-internal" title="            SSHAgentClient (derivepassphrase.ssh_agent.SSHAgentClient)" href="../derivepassphrase.ssh_agent/#derivepassphrase.ssh_agent.SSHAgentClient">SSHAgentClient</a> | <a class="autorefs autorefs-external" title="socket.socket" href="https://docs.python.org/3/library/socket.html#socket.socket">socket</a> | None</code>
3022
-            </td>
3023
-            <td>
3024
-              <div class="doc-md-description">
3025
-                <p>An optional connection hint to the SSH agent.  See
3026
-<a class="autorefs autorefs-internal" title="            ensure_agent_subcontext
3027
-
3028
-
3029
-  
3030
-      classmethod
3031
-  " href="../derivepassphrase.ssh_agent/#derivepassphrase.ssh_agent.SSHAgentClient.ensure_agent_subcontext"><code>ssh_agent.SSHAgentClient.ensure_agent_subcontext</code></a>.</p>
3032
-              </div>
3033
-            </td>
3034
-            <td>
3035
-                  <code>None</code>
3036
-            </td>
3037
-          </tr>
3038
-          <tr class="doc-section-item">
3039
-            <td>
3040
-                <code>ctx</code>
3041
-            </td>
3042
-            <td>
3043
-                  <code><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/stable/api/#click.Context">Context</a> | None</code>
3044
-            </td>
3045
-            <td>
3046
-              <div class="doc-md-description">
3047
-                <p>An <code>click</code> context, queried for output device properties and
3048
-color preferences when issuing the prompt.</p>
3049
-              </div>
3050
-            </td>
3051
-            <td>
3052
-                  <code>None</code>
3053
-            </td>
3054
-          </tr>
3055
-      </tbody>
3056
-    </table>
3057
-
3058
-
3059
-    <p><span class="doc-section-title">Returns:</span></p>
3060
-    <table>
3061
-      <thead>
3062
-        <tr>
3063
-          <th>Type</th>
3064
-          <th>Description</th>
3065
-        </tr>
3066
-      </thead>
3067
-      <tbody>
3068
-          <tr class="doc-section-item">
3069
-            <td>
3070
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#bytes">bytes</a> | <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#bytearray">bytearray</a></code>
3071
-            </td>
3072
-            <td>
3073
-              <div class="doc-md-description">
3074
-                <p>The selected SSH key.</p>
3075
-              </div>
3076
-            </td>
3077
-          </tr>
3078
-      </tbody>
3079
-    </table>
3080
-
3081
-
3082
-<p><span class="doc-section-title">Raises:</span></p>
3083
-    <table>
3084
-      <thead>
3085
-        <tr>
3086
-          <th>Type</th>
3087
-          <th>Description</th>
3088
-        </tr>
3089
-      </thead>
3090
-      <tbody>
3091
-          <tr class="doc-section-item">
3092
-            <td>
3093
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#KeyError">KeyError</a></code>
3094
-            </td>
3095
-            <td>
3096
-              <div class="doc-md-description">
3097
-                <p><code>conn</code> was <code>None</code>, and the <code>SSH_AUTH_SOCK</code> environment
3098
-variable was not found.</p>
3099
-              </div>
3100
-            </td>
3101
-          </tr>
3102
-          <tr class="doc-section-item">
3103
-            <td>
3104
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#NotImplementedError">NotImplementedError</a></code>
3105
-            </td>
3106
-            <td>
3107
-              <div class="doc-md-description">
3108
-                <p><code>conn</code> was <code>None</code>, and this Python does not support
3109
-<a class="autorefs autorefs-external" href="https://docs.python.org/3/library/socket.html#socket.AF_UNIX"><code>socket.AF_UNIX</code></a>, so the SSH agent client cannot be
3110
-automatically set up.</p>
3111
-              </div>
3112
-            </td>
3113
-          </tr>
3114
-          <tr class="doc-section-item">
3115
-            <td>
3116
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#OSError">OSError</a></code>
3117
-            </td>
3118
-            <td>
3119
-              <div class="doc-md-description">
3120
-                <p><code>conn</code> was a socket or <code>None</code>, and there was an error
3121
-setting up a socket connection to the agent.</p>
3122
-              </div>
3123
-            </td>
3124
-          </tr>
3125
-          <tr class="doc-section-item">
3126
-            <td>
3127
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#IndexError">IndexError</a></code>
3128
-            </td>
3129
-            <td>
3130
-              <div class="doc-md-description">
3131
-                <p>The user made an invalid or empty selection, or requested an
3132
-abort.</p>
3133
-              </div>
3134
-            </td>
3135
-          </tr>
3136
-          <tr class="doc-section-item">
3137
-            <td>
3138
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#LookupError">LookupError</a></code>
3139
-            </td>
3140
-            <td>
3141
-              <div class="doc-md-description">
3142
-                <p>No keys usable for passphrase derivation are loaded into the
3143
-SSH agent.</p>
3144
-              </div>
3145
-            </td>
3146
-          </tr>
3147
-          <tr class="doc-section-item">
3148
-            <td>
3149
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#RuntimeError">RuntimeError</a></code>
3150
-            </td>
3151
-            <td>
3152
-              <div class="doc-md-description">
3153
-                <p>There was an error communicating with the SSH agent.</p>
3154
-              </div>
3155
-            </td>
3156
-          </tr>
3157
-          <tr class="doc-section-item">
3158
-            <td>
3159
-                  <code><span title="SSHAgentFailedError">SSHAgentFailedError</span></code>
3160
-            </td>
3161
-            <td>
3162
-              <div class="doc-md-description">
3163
-                <p>The agent failed to supply a list of loaded keys.</p>
3164
-              </div>
3165
-            </td>
3166
-          </tr>
3167
-      </tbody>
3168
-    </table>
3169
-
3170
-
3171
-    </div>
3172
-
3173
-</div>
3174
-
3175
-<div class="doc doc-object doc-function">
3176
-
3177
-
3178
-<h2 id="derivepassphrase._internals.cli_helpers.prompt_for_passphrase" class="doc doc-heading">
3179
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">prompt_for_passphrase</span>
3180
-
3181
-
3182
-<a href="#derivepassphrase._internals.cli_helpers.prompt_for_passphrase" class="headerlink" title="Permanent link">&para;</a></h2>
3183
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">prompt_for_passphrase</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></span>
3184
-</code></pre></div>
3185
-
3186
-    <div class="doc doc-contents ">
3187
-
3188
-        <p>Interactively prompt for the passphrase.</p>
3189
-<p>Calls <a class="autorefs autorefs-external" href="https://click.palletsprojects.com/en/stable/api/#click.prompt"><code>click.prompt</code></a> internally.  Moved into a separate function
3190
-mainly for testing/mocking purposes.</p>
3191
-
3192
-
3193
-    <p><span class="doc-section-title">Returns:</span></p>
3194
-    <table>
3195
-      <thead>
3196
-        <tr>
3197
-          <th>Type</th>
3198
-          <th>Description</th>
3199
-        </tr>
3200
-      </thead>
3201
-      <tbody>
3202
-          <tr class="doc-section-item">
3203
-            <td>
3204
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></code>
3205
-            </td>
3206
-            <td>
3207
-              <div class="doc-md-description">
3208
-                <p>The user input.</p>
3209
-              </div>
3210
-            </td>
3211
-          </tr>
3212
-      </tbody>
3213
-    </table>
3214
-
3215
-
3216
-    </div>
3217
-
3218
-</div>
3219
-
3220
-<div class="doc doc-object doc-function">
3221
-
3222
-
3223
-<h2 id="derivepassphrase._internals.cli_helpers.toml_key" class="doc doc-heading">
3224
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">toml_key</span>
3225
-
3226
-
3227
-<a href="#derivepassphrase._internals.cli_helpers.toml_key" class="headerlink" title="Permanent link">&para;</a></h2>
3228
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">toml_key</span><span class="p">(</span><span class="o">*</span><span class="n">parts</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">-&gt;</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></span>
3229
-</code></pre></div>
3230
-
3231
-    <div class="doc doc-contents ">
3232
-
3233
-        <p>Return a formatted TOML key, given its parts.</p>
3234
-
3235
-
3236
-    </div>
3237
-
3238
-</div>
3239
-
3240
-<div class="doc doc-object doc-function">
3241
-
3242
-
3243
-<h2 id="derivepassphrase._internals.cli_helpers.check_for_misleading_passphrase" class="doc doc-heading">
3244
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">check_for_misleading_passphrase</span>
3245
-
3246
-
3247
-<a href="#derivepassphrase._internals.cli_helpers.check_for_misleading_passphrase" class="headerlink" title="Permanent link">&para;</a></h2>
3248
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">check_for_misleading_passphrase</span><span class="p">(</span>
3249
-    <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#tuple">tuple</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="o">|</span> <span class="n"><a class="autorefs autorefs-internal" title="            ORIGIN (derivepassphrase._internals.cli_helpers.ORIGIN)" href="#derivepassphrase._internals.cli_helpers.ORIGIN">ORIGIN</a></span><span class="p">,</span>
3250
-    <span class="n">value</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="collections.abc.Mapping" href="https://docs.python.org/3/library/collections.abc.html#collections.abc.Mapping">Mapping</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"><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>
3251
-    <span class="o">*</span><span class="p">,</span>
3252
-    <span class="n">main_config</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#dict">dict</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"><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>
3253
-    <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/stable/api/#click.Context">Context</a></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span>
3254
-<span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
3255
-</code></pre></div>
3256
-
3257
-    <div class="doc doc-contents ">
3258
-
3259
-        <p>Check for a misleading passphrase according to user configuration.</p>
3260
-<p>Look up the desired Unicode normalization form in the user
3261
-configuration, and if the passphrase is not normalized according to
3262
-this form, issue a warning to the user.</p>
3263
-
3264
-
3265
-<p><span class="doc-section-title">Parameters:</span></p>
3266
-    <table>
3267
-      <thead>
3268
-        <tr>
3269
-          <th>Name</th>
3270
-          <th>Type</th>
3271
-          <th>Description</th>
3272
-          <th>Default</th>
3273
-        </tr>
3274
-      </thead>
3275
-      <tbody>
3276
-          <tr class="doc-section-item">
3277
-            <td>
3278
-                <code>key</code>
3279
-            </td>
3280
-            <td>
3281
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#tuple">tuple</a>[<a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a>, ...] | <a class="autorefs autorefs-internal" title="            ORIGIN (derivepassphrase._internals.cli_helpers.ORIGIN)" href="#derivepassphrase._internals.cli_helpers.ORIGIN">ORIGIN</a></code>
3282
-            </td>
3283
-            <td>
3284
-              <div class="doc-md-description">
3285
-                <p>A vault configuration key or an origin of the
3286
-value/configuration section, e.g. <a class="autorefs autorefs-internal" title="            INTERACTIVE
3287
-
3288
-
3289
-  
3290
-      class-attribute
3291
-      instance-attribute
3292
-  " href="#derivepassphrase._internals.cli_helpers.ORIGIN.INTERACTIVE"><code>ORIGIN.INTERACTIVE</code></a>,
3293
-or <code>("global",)</code>, or <code>("services", "foo")</code>.</p>
3294
-              </div>
3295
-            </td>
3296
-            <td>
3297
-                <em>required</em>
3298
-            </td>
3299
-          </tr>
3300
-          <tr class="doc-section-item">
3301
-            <td>
3302
-                <code>value</code>
3303
-            </td>
3304
-            <td>
3305
-                  <code><a class="autorefs autorefs-external" title="collections.abc.Mapping" href="https://docs.python.org/3/library/collections.abc.html#collections.abc.Mapping">Mapping</a>[<a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a>, <a class="autorefs autorefs-external" title="typing_extensions.Any" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Any">Any</a>]</code>
3306
-            </td>
3307
-            <td>
3308
-              <div class="doc-md-description">
3309
-                <p>The vault configuration section maybe containing
3310
-a passphrase to vet.</p>
3311
-              </div>
3312
-            </td>
3313
-            <td>
3314
-                <em>required</em>
3315
-            </td>
3316
-          </tr>
3317
-          <tr class="doc-section-item">
3318
-            <td>
3319
-                <code>main_config</code>
3320
-            </td>
3321
-            <td>
3322
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#dict">dict</a>[<a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a>, <a class="autorefs autorefs-external" title="typing_extensions.Any" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Any">Any</a>]</code>
3323
-            </td>
3324
-            <td>
3325
-              <div class="doc-md-description">
3326
-                <p>The parsed main user configuration.</p>
3327
-              </div>
3328
-            </td>
3329
-            <td>
3330
-                <em>required</em>
3331
-            </td>
3332
-          </tr>
3333
-          <tr class="doc-section-item">
3334
-            <td>
3335
-                <code>ctx</code>
3336
-            </td>
3337
-            <td>
3338
-                  <code><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/stable/api/#click.Context">Context</a> | None</code>
3339
-            </td>
3340
-            <td>
3341
-              <div class="doc-md-description">
3342
-                <p>The click context.  This is necessary to pass output options
3343
-set on the context to the logging machinery.</p>
3344
-              </div>
3345
-            </td>
3346
-            <td>
3347
-                  <code>None</code>
3348
-            </td>
3349
-          </tr>
3350
-      </tbody>
3351
-    </table>
3352
-
3353
-
3354
-<p><span class="doc-section-title">Raises:</span></p>
3355
-    <table>
3356
-      <thead>
3357
-        <tr>
3358
-          <th>Type</th>
3359
-          <th>Description</th>
3360
-        </tr>
3361
-      </thead>
3362
-      <tbody>
3363
-          <tr class="doc-section-item">
3364
-            <td>
3365
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#AssertionError">AssertionError</a></code>
3366
-            </td>
3367
-            <td>
3368
-              <div class="doc-md-description">
3369
-                <p>The main user configuration is invalid.</p>
3370
-              </div>
3371
-            </td>
3372
-          </tr>
3373
-      </tbody>
3374
-    </table>
3375
-
3376
-
3377
-    </div>
3378
-
3379
-</div>
3380
-
3381
-<div class="doc doc-object doc-function">
3382
-
3383
-
3384
-<h2 id="derivepassphrase._internals.cli_helpers.default_error_callback" class="doc doc-heading">
3385
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">default_error_callback</span>
3386
-
3387
-
3388
-<a href="#derivepassphrase._internals.cli_helpers.default_error_callback" class="headerlink" title="Permanent link">&para;</a></h2>
3389
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">default_error_callback</span><span class="p">(</span>
3390
-    <span class="n">message</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="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>
3391
-<span class="p">)</span> <span class="o">-&gt;</span> <span class="n"><a class="autorefs autorefs-external" title="typing.NoReturn" href="https://docs.python.org/3/library/typing.html#typing.NoReturn">NoReturn</a></span>
3392
-</code></pre></div>
3393
-
3394
-    <div class="doc doc-contents ">
3395
-
3396
-        <p>Calls <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/sys.html#sys.exit"><code>sys.exit</code></a> on its first argument, ignoring the rest.</p>
3397
-
3398
-
3399
-    </div>
3400
-
3401
-</div>
3402
-
3403
-<div class="doc doc-object doc-function">
3404
-
3405
-
3406
-<h2 id="derivepassphrase._internals.cli_helpers.key_to_phrase" class="doc doc-heading">
3407
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">key_to_phrase</span>
3408
-
3409
-
3410
-<a href="#derivepassphrase._internals.cli_helpers.key_to_phrase" class="headerlink" title="Permanent link">&para;</a></h2>
3411
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">key_to_phrase</span><span class="p">(</span>
3412
-    <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" title="typing_extensions.Buffer" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Buffer">Buffer</a></span><span class="p">,</span>
3413
-    <span class="o">/</span><span class="p">,</span>
3414
-    <span class="o">*</span><span class="p">,</span>
3415
-    <span class="n">error_callback</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>
3416
-        <span class="o">...</span><span class="p">,</span> <span class="n"><a class="autorefs autorefs-external" title="typing.NoReturn" href="https://docs.python.org/3/library/typing.html#typing.NoReturn">NoReturn</a></span>
3417
-    <span class="p">]</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            default_error_callback (derivepassphrase._internals.cli_helpers.default_error_callback)" href="#derivepassphrase._internals.cli_helpers.default_error_callback">default_error_callback</a></span><span class="p">,</span>
3418
-<span class="p">)</span> <span class="o">-&gt;</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#bytes">bytes</a></span>
3419
-</code></pre></div>
3420
-
3421
-    <div class="doc doc-contents ">
3422
-
3423
-        <p>Return the equivalent master passphrase, or abort.</p>
3424
-<p>This wrapper around <a class="autorefs autorefs-internal" title="            phrase_from_key
3425
-
3426
-
3427
-  
3428
-      classmethod
3429
-  " href="../derivepassphrase.vault/#derivepassphrase.vault.Vault.phrase_from_key"><code>vault.Vault.phrase_from_key</code></a> emits
3430
-user-facing error messages if no equivalent master passphrase can be
3431
-obtained from the key, because this is the first point of contact
3432
-with the SSH agent.</p>
3433
-
3434
-
3435
-    </div>
3436
-
3437
-</div>
3438
-
3439
-<div class="doc doc-object doc-function">
3440
-
3441
-
3442
-<h2 id="derivepassphrase._internals.cli_helpers.print_config_as_sh_script" class="doc doc-heading">
3443
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">print_config_as_sh_script</span>
3444
-
3445
-
3446
-<a href="#derivepassphrase._internals.cli_helpers.print_config_as_sh_script" class="headerlink" title="Permanent link">&para;</a></h2>
3447
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">print_config_as_sh_script</span><span class="p">(</span>
3448
-    <span class="n">config</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-internal" title="            VaultConfig (derivepassphrase._types.VaultConfig)" href="../derivepassphrase._types/#derivepassphrase._types.VaultConfig">VaultConfig</a></span><span class="p">,</span>
3449
-    <span class="o">/</span><span class="p">,</span>
3450
-    <span class="o">*</span><span class="p">,</span>
3451
-    <span class="n">outfile</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="p">,</span>
3452
-    <span class="n">prog_name_list</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>
3453
-<span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
3454
-</code></pre></div>
3455
-
3456
-    <div class="doc doc-contents ">
3457
-
3458
-        <p>Print the given vault configuration as a sh(1) script.</p>
3459
-<p>This implements the <code>--export-as=sh</code> option of <code>derivepassphrase vault</code>.</p>
3460
-
3461
-
3462
-<p><span class="doc-section-title">Parameters:</span></p>
3463
-    <table>
3464
-      <thead>
3465
-        <tr>
3466
-          <th>Name</th>
3467
-          <th>Type</th>
3468
-          <th>Description</th>
3469
-          <th>Default</th>
3470
-        </tr>
3471
-      </thead>
3472
-      <tbody>
3473
-          <tr class="doc-section-item">
3474
-            <td>
3475
-                <code>config</code>
3476
-            </td>
3477
-            <td>
3478
-                  <code><a class="autorefs autorefs-internal" title="            VaultConfig (derivepassphrase._types.VaultConfig)" href="../derivepassphrase._types/#derivepassphrase._types.VaultConfig">VaultConfig</a></code>
3479
-            </td>
3480
-            <td>
3481
-              <div class="doc-md-description">
3482
-                <p>The configuration to serialize.</p>
3483
-              </div>
3484
-            </td>
3485
-            <td>
3486
-                <em>required</em>
3487
-            </td>
3488
-          </tr>
3489
-          <tr class="doc-section-item">
3490
-            <td>
3491
-                <code>outfile</code>
3492
-            </td>
3493
-            <td>
3494
-                  <code><a class="autorefs autorefs-external" title="typing.TextIO" href="https://docs.python.org/3/library/typing.html#typing.TextIO">TextIO</a></code>
3495
-            </td>
3496
-            <td>
3497
-              <div class="doc-md-description">
3498
-                <p>A file object to write the output to.</p>
3499
-              </div>
3500
-            </td>
3501
-            <td>
3502
-                <em>required</em>
3503
-            </td>
3504
-          </tr>
3505
-          <tr class="doc-section-item">
3506
-            <td>
3507
-                <code>prog_name_list</code>
3508
-            </td>
3509
-            <td>
3510
-                  <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>
3511
-            </td>
3512
-            <td>
3513
-              <div class="doc-md-description">
3514
-                <p>A list of (subcommand) names for the command emitting this
3515
-output, e.g. <code>["derivepassphrase", "vault"]</code>.</p>
3516
-              </div>
3517
-            </td>
3518
-            <td>
3519
-                <em>required</em>
3520
-            </td>
3521
-          </tr>
3522
-      </tbody>
3523
-    </table>
3524
-
3525
-
3526
-    </div>
3527
-
3528
-</div>
3529
-
3530
-
3531
-
3532
-  </div>
3533
-
3534
-    </div>
3535
-
3536
-</div>
3537
-
3538
-
3539
-
3540
-
3541
-
3542
-
3543
-
3544
-
3545
-
3546
-
3547
-
3548
-
3549
-                
3550
-              </article>
3551
-            </div>
3552
-          
3553
-          
3554
-        </div>
3555
-        
3556
-      </main>
3557
-      
3558
-        <footer class="md-footer">
3559
-  
3560
-    
3561
-  
3562
-  <div class="md-footer-meta md-typeset">
3563
-    <div class="md-footer-meta__inner md-grid">
3564
-      <div class="md-copyright">
3565
-  
3566
-    <div class="md-copyright__highlight">
3567
-      Copyright &copy; 2025 Marco Ricci (the-13th-letter)
3568
-    </div>
3569
-  
3570
-  
3571
-    Made with
3572
-    <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
3573
-      Material for MkDocs
3574
-    </a>
3575
-    and
3576
-    <a href="https://mkdocstrings.github.io/python/" target="_blank" rel="noopener">
3577
-        mkdocstrings-python
3578
-    </a>
3579
-  
3580
-</div>
3581
-      
3582
-    </div>
3583
-  </div>
3584
-</footer>
3585
-      
3586
-    </div>
3587
-    <div class="md-dialog" data-md-component="dialog">
3588
-      <div class="md-dialog__inner md-typeset"></div>
3589
-    </div>
3590
-    
3591
-    
3592
-    
3593
-    
3594
-  </body>
3595
-</html>
3596 0
\ No newline at end of file
... ...
@@ -1,3795 +0,0 @@
1
-
2
-<!doctype html>
3
-<html lang="en" class="no-js">
4
-  <head>
5
-    
6
-      <meta charset="utf-8">
7
-      <meta name="viewport" content="width=device-width,initial-scale=1">
8
-      
9
-        <meta name="description" content="An almost faithful Python reimplementation of James Coglan's vault.">
10
-      
11
-      
12
-        <meta name="author" content="Marco Ricci">
13
-      
14
-      
15
-        <link rel="canonical" href="https://the13thletter.info/derivepassphrase/0.x/reference/derivepassphrase._internals.cli_machinery/">
16
-      
17
-      
18
-      
19
-      
20
-      <link rel="icon" href="../../assets/images/favicon.png">
21
-      <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.14">
22
-    
23
-    
24
-      
25
-        <title>Derivepassphrase. internals.cli machinery - derivepassphrase</title>
26
-      
27
-    
28
-    
29
-      <link rel="stylesheet" href="../../assets/stylesheets/main.342714a4.min.css">
30
-      
31
-      
32
-
33
-
34
-    
35
-    
36
-    
37
-  
38
-    
39
-    
40
-        <style>:root{--md-text-font:"Noto Sans";--md-code-font:"Noto Mono"}</style>
41
-  
42
-
43
-    
44
-      <link rel="stylesheet" href="../../assets/_mkdocstrings.css">
45
-    
46
-      <link rel="stylesheet" href="../../mkdocstrings_recommended_styles.css">
47
-    
48
-      <link rel="stylesheet" href="../../wishlist_styling.css">
49
-    
50
-    
51
-    
52
-    
53
-    
54
-  </head>
55
-  
56
-  
57
-    <body dir="ltr">
58
-  
59
-    
60
-    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
61
-    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
62
-    <label class="md-overlay" for="__drawer"></label>
63
-    <div data-md-component="skip">
64
-      
65
-        
66
-        <a href="#derivepassphrase._internals.cli_machinery" class="md-skip">
67
-          Skip to content
68
-        </a>
69
-      
70
-    </div>
71
-    <div data-md-component="announce">
72
-      
73
-    </div>
74
-    
75
-      <div data-md-color-scheme="default" data-md-component="outdated" hidden>
76
-        
77
-      </div>
78
-    
79
-    
80
-      
81
-    
82
-    <div class="md-container" data-md-component="container">
83
-      
84
-      
85
-        
86
-          
87
-            
88
-<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
89
-  <div class="md-grid">
90
-    <ul class="md-tabs__list">
91
-      
92
-        
93
-  
94
-  
95
-  
96
-  
97
-    <li class="md-tabs__item">
98
-      <a href="../.." class="md-tabs__link">
99
-        
100
-  
101
-  
102
-    
103
-  
104
-  Overview
105
-
106
-      </a>
107
-    </li>
108
-  
109
-
110
-      
111
-        
112
-  
113
-  
114
-  
115
-  
116
-    
117
-    
118
-      <li class="md-tabs__item">
119
-        <a href="../../tutorials/" class="md-tabs__link">
120
-          
121
-  
122
-  
123
-    
124
-  
125
-  Tutorials & Examples
126
-
127
-        </a>
128
-      </li>
129
-    
130
-  
131
-
132
-      
133
-        
134
-  
135
-  
136
-  
137
-  
138
-    
139
-    
140
-      <li class="md-tabs__item">
141
-        <a href="../../how-tos/" class="md-tabs__link">
142
-          
143
-  
144
-  
145
-    
146
-  
147
-  How-Tos
148
-
149
-        </a>
150
-      </li>
151
-    
152
-  
153
-
154
-      
155
-        
156
-  
157
-  
158
-  
159
-  
160
-    
161
-    
162
-      <li class="md-tabs__item">
163
-        <a href="../" class="md-tabs__link">
164
-          
165
-  
166
-  
167
-    
168
-  
169
-  Reference
170
-
171
-        </a>
172
-      </li>
173
-    
174
-  
175
-
176
-      
177
-        
178
-  
179
-  
180
-  
181
-  
182
-    
183
-    
184
-      <li class="md-tabs__item">
185
-        <a href="../../explanation/" class="md-tabs__link">
186
-          
187
-  
188
-  
189
-    
190
-  
191
-  Design & Background
192
-
193
-        </a>
194
-      </li>
195
-    
196
-  
197
-
198
-      
199
-        
200
-  
201
-  
202
-  
203
-  
204
-    
205
-    
206
-      <li class="md-tabs__item">
207
-        <a href="../../changelog/" class="md-tabs__link">
208
-          
209
-  
210
-  
211
-    
212
-  
213
-  Changelog
214
-
215
-        </a>
216
-      </li>
217
-    
218
-  
219
-
220
-      
221
-        
222
-  
223
-  
224
-  
225
-  
226
-    
227
-    
228
-      <li class="md-tabs__item">
229
-        <a href="../../wishlist/" class="md-tabs__link">
230
-          
231
-  
232
-  
233
-    
234
-  
235
-  Wishlist
236
-
237
-        </a>
238
-      </li>
239
-    
240
-  
241
-
242
-      
243
-    </ul>
244
-  </div>
245
-</nav>
246
-          
247
-        
248
-      
249
-      <main class="md-main" data-md-component="main">
250
-        <div class="md-main__inner md-grid">
251
-          
252
-            
253
-              
254
-              <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
255
-                <div class="md-sidebar__scrollwrap">
256
-                  <div class="md-sidebar__inner">
257
-                    
258
-
259
-
260
-  
261
-
262
-
263
-<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
264
-  <label class="md-nav__title" for="__drawer">
265
-    <a href="../.." title="derivepassphrase" class="md-nav__button md-logo" aria-label="derivepassphrase" data-md-component="logo">
266
-      
267
-  
268
-  <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>
269
-
270
-    </a>
271
-    derivepassphrase
272
-  </label>
273
-  
274
-    <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
276
-  <div class="md-source__icon md-icon">
277
-    
278
-    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
279
-  </div>
280
-  <div class="md-source__repository">
281
-    the-13th-letter/derivepassphrase
282
-  </div>
283
-</a>
284
-    </div>
285
-  
286
-  <ul class="md-nav__list" data-md-scrollfix>
287
-    
288
-      
289
-      
290
-  
291
-  
292
-  
293
-  
294
-    <li class="md-nav__item">
295
-      <a href="../.." class="md-nav__link">
296
-        
297
-  
298
-  
299
-  <span class="md-ellipsis">
300
-    Overview
301
-    
302
-  </span>
303
-  
304
-
305
-      </a>
306
-    </li>
307
-  
308
-
309
-    
310
-      
311
-      
312
-  
313
-  
314
-  
315
-  
316
-    
317
-    
318
-      
319
-        
320
-          
321
-        
322
-      
323
-        
324
-      
325
-    
326
-    
327
-    
328
-      
329
-      
330
-        
331
-      
332
-    
333
-    
334
-    <li class="md-nav__item md-nav__item--nested">
335
-      
336
-        
337
-        
338
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
339
-        
340
-          
341
-          <div class="md-nav__link md-nav__container">
342
-            <a href="../../tutorials/" class="md-nav__link ">
343
-              
344
-  
345
-  
346
-  <span class="md-ellipsis">
347
-    Tutorials & Examples
348
-    
349
-  </span>
350
-  
351
-
352
-            </a>
353
-            
354
-              
355
-              <label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="0">
356
-                <span class="md-nav__icon md-icon"></span>
357
-              </label>
358
-            
359
-          </div>
360
-        
361
-        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
362
-          <label class="md-nav__title" for="__nav_2">
363
-            <span class="md-nav__icon md-icon"></span>
364
-            Tutorials & Examples
365
-          </label>
366
-          <ul class="md-nav__list" data-md-scrollfix>
367
-            
368
-              
369
-            
370
-              
371
-                
372
-  
373
-  
374
-  
375
-  
376
-    <li class="md-nav__item">
377
-      <a href="../../tutorials/basic-setup-passphrase/" class="md-nav__link">
378
-        
379
-  
380
-  
381
-  <span class="md-ellipsis">
382
-    Setting up derivepassphrase vault for three accounts, with a master passphrase
383
-    
384
-  </span>
385
-  
386
-
387
-      </a>
388
-    </li>
389
-  
390
-
391
-              
392
-            
393
-          </ul>
394
-        </nav>
395
-      
396
-    </li>
397
-  
398
-
399
-    
400
-      
401
-      
402
-  
403
-  
404
-  
405
-  
406
-    
407
-    
408
-      
409
-        
410
-          
411
-        
412
-      
413
-        
414
-      
415
-    
416
-    
417
-    
418
-      
419
-      
420
-        
421
-      
422
-    
423
-    
424
-    <li class="md-nav__item md-nav__item--nested">
425
-      
426
-        
427
-        
428
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
429
-        
430
-          
431
-          <div class="md-nav__link md-nav__container">
432
-            <a href="../../how-tos/" class="md-nav__link ">
433
-              
434
-  
435
-  
436
-  <span class="md-ellipsis">
437
-    How-Tos
438
-    
439
-  </span>
440
-  
441
-
442
-            </a>
443
-            
444
-              
445
-              <label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="0">
446
-                <span class="md-nav__icon md-icon"></span>
447
-              </label>
448
-            
449
-          </div>
450
-        
451
-        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
452
-          <label class="md-nav__title" for="__nav_3">
453
-            <span class="md-nav__icon md-icon"></span>
454
-            How-Tos
455
-          </label>
456
-          <ul class="md-nav__list" data-md-scrollfix>
457
-            
458
-              
459
-            
460
-              
461
-                
462
-  
463
-  
464
-  
465
-  
466
-    <li class="md-nav__item">
467
-      <a href="../../how-tos/ssh-key/" class="md-nav__link">
468
-        
469
-  
470
-  
471
-  <span class="md-ellipsis">
472
-    How to set up derivepassphrase vault with an SSH key
473
-    
474
-  </span>
475
-  
476
-
477
-      </a>
478
-    </li>
479
-  
480
-
481
-              
482
-            
483
-          </ul>
484
-        </nav>
485
-      
486
-    </li>
487
-  
488
-
489
-    
490
-      
491
-      
492
-  
493
-  
494
-  
495
-  
496
-    
497
-    
498
-      
499
-        
500
-          
501
-        
502
-      
503
-        
504
-      
505
-        
506
-      
507
-        
508
-      
509
-    
510
-    
511
-    
512
-      
513
-      
514
-        
515
-      
516
-    
517
-    
518
-    <li class="md-nav__item md-nav__item--nested">
519
-      
520
-        
521
-        
522
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
523
-        
524
-          
525
-          <div class="md-nav__link md-nav__container">
526
-            <a href="../" class="md-nav__link ">
527
-              
528
-  
529
-  
530
-  <span class="md-ellipsis">
531
-    Reference
532
-    
533
-  </span>
534
-  
535
-
536
-            </a>
537
-            
538
-              
539
-              <label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="0">
540
-                <span class="md-nav__icon md-icon"></span>
541
-              </label>
542
-            
543
-          </div>
544
-        
545
-        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
546
-          <label class="md-nav__title" for="__nav_4">
547
-            <span class="md-nav__icon md-icon"></span>
548
-            Reference
549
-          </label>
550
-          <ul class="md-nav__list" data-md-scrollfix>
551
-            
552
-              
553
-            
554
-              
555
-                
556
-  
557
-  
558
-  
559
-  
560
-    
561
-    
562
-      
563
-        
564
-      
565
-        
566
-      
567
-        
568
-      
569
-        
570
-      
571
-    
572
-    
573
-    
574
-      
575
-      
576
-        
577
-      
578
-    
579
-    
580
-    <li class="md-nav__item md-nav__item--nested">
581
-      
582
-        
583
-        
584
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_2" >
585
-        
586
-          
587
-          <label class="md-nav__link" for="__nav_4_2" id="__nav_4_2_label" tabindex="0">
588
-            
589
-  
590
-  
591
-  <span class="md-ellipsis">
592
-    Man pages
593
-    
594
-  </span>
595
-  
596
-
597
-            <span class="md-nav__icon md-icon"></span>
598
-          </label>
599
-        
600
-        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_2_label" aria-expanded="false">
601
-          <label class="md-nav__title" for="__nav_4_2">
602
-            <span class="md-nav__icon md-icon"></span>
603
-            Man pages
604
-          </label>
605
-          <ul class="md-nav__list" data-md-scrollfix>
606
-            
607
-              
608
-                
609
-  
610
-  
611
-  
612
-  
613
-    <li class="md-nav__item">
614
-      <a href="../derivepassphrase.1/" class="md-nav__link">
615
-        
616
-  
617
-  
618
-  <span class="md-ellipsis">
619
-    derivepassphrase(1)
620
-    
621
-  </span>
622
-  
623
-
624
-      </a>
625
-    </li>
626
-  
627
-
628
-              
629
-            
630
-              
631
-                
632
-  
633
-  
634
-  
635
-  
636
-    <li class="md-nav__item">
637
-      <a href="../derivepassphrase-vault.1/" class="md-nav__link">
638
-        
639
-  
640
-  
641
-  <span class="md-ellipsis">
642
-    derivepassphrase-vault(1)
643
-    
644
-  </span>
645
-  
646
-
647
-      </a>
648
-    </li>
649
-  
650
-
651
-              
652
-            
653
-              
654
-                
655
-  
656
-  
657
-  
658
-  
659
-    <li class="md-nav__item">
660
-      <a href="../derivepassphrase-export.1/" class="md-nav__link">
661
-        
662
-  
663
-  
664
-  <span class="md-ellipsis">
665
-    derivepassphrase-export(1)
666
-    
667
-  </span>
668
-  
669
-
670
-      </a>
671
-    </li>
672
-  
673
-
674
-              
675
-            
676
-              
677
-                
678
-  
679
-  
680
-  
681
-  
682
-    <li class="md-nav__item">
683
-      <a href="../derivepassphrase-export-vault.1/" class="md-nav__link">
684
-        
685
-  
686
-  
687
-  <span class="md-ellipsis">
688
-    derivepassphrase-export-vault(1)
689
-    
690
-  </span>
691
-  
692
-
693
-      </a>
694
-    </li>
695
-  
696
-
697
-              
698
-            
699
-          </ul>
700
-        </nav>
701
-      
702
-    </li>
703
-  
704
-
705
-              
706
-            
707
-              
708
-                
709
-  
710
-  
711
-  
712
-  
713
-    
714
-    
715
-      
716
-        
717
-      
718
-        
719
-      
720
-        
721
-      
722
-        
723
-      
724
-        
725
-      
726
-        
727
-      
728
-    
729
-    
730
-    
731
-      
732
-      
733
-        
734
-      
735
-    
736
-    
737
-    <li class="md-nav__item md-nav__item--nested">
738
-      
739
-        
740
-        
741
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_3" >
742
-        
743
-          
744
-          <label class="md-nav__link" for="__nav_4_3" id="__nav_4_3_label" tabindex="0">
745
-            
746
-  
747
-  
748
-  <span class="md-ellipsis">
749
-    API docs: Module derivepassphrase
750
-    
751
-  </span>
752
-  
753
-
754
-            <span class="md-nav__icon md-icon"></span>
755
-          </label>
756
-        
757
-        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_3_label" aria-expanded="false">
758
-          <label class="md-nav__title" for="__nav_4_3">
759
-            <span class="md-nav__icon md-icon"></span>
760
-            API docs: Module derivepassphrase
761
-          </label>
762
-          <ul class="md-nav__list" data-md-scrollfix>
763
-            
764
-              
765
-                
766
-  
767
-  
768
-  
769
-  
770
-    <li class="md-nav__item">
771
-      <a href="../derivepassphrase.cli/" class="md-nav__link">
772
-        
773
-  
774
-  
775
-  <span class="md-ellipsis">
776
-    Submodule cli
777
-    
778
-  </span>
779
-  
780
-
781
-      </a>
782
-    </li>
783
-  
784
-
785
-              
786
-            
787
-              
788
-                
789
-  
790
-  
791
-  
792
-  
793
-    <li class="md-nav__item">
794
-      <a href="../derivepassphrase.exporter/" class="md-nav__link">
795
-        
796
-  
797
-  
798
-  <span class="md-ellipsis">
799
-    Subpackage exporter
800
-    
801
-  </span>
802
-  
803
-
804
-      </a>
805
-    </li>
806
-  
807
-
808
-              
809
-            
810
-              
811
-                
812
-  
813
-  
814
-  
815
-  
816
-    <li class="md-nav__item">
817
-      <a href="../derivepassphrase.sequin/" class="md-nav__link">
818
-        
819
-  
820
-  
821
-  <span class="md-ellipsis">
822
-    Submodule sequin
823
-    
824
-  </span>
825
-  
826
-
827
-      </a>
828
-    </li>
829
-  
830
-
831
-              
832
-            
833
-              
834
-                
835
-  
836
-  
837
-  
838
-  
839
-    <li class="md-nav__item">
840
-      <a href="../derivepassphrase.ssh_agent/" class="md-nav__link">
841
-        
842
-  
843
-  
844
-  <span class="md-ellipsis">
845
-    Submodule ssh_agent
846
-    
847
-  </span>
848
-  
849
-
850
-      </a>
851
-    </li>
852
-  
853
-
854
-              
855
-            
856
-              
857
-                
858
-  
859
-  
860
-  
861
-  
862
-    <li class="md-nav__item">
863
-      <a href="../derivepassphrase._types/" class="md-nav__link">
864
-        
865
-  
866
-  
867
-  <span class="md-ellipsis">
868
-    Submodule _types
869
-    
870
-  </span>
871
-  
872
-
873
-      </a>
874
-    </li>
875
-  
876
-
877
-              
878
-            
879
-              
880
-                
881
-  
882
-  
883
-  
884
-  
885
-    <li class="md-nav__item">
886
-      <a href="../derivepassphrase.vault/" class="md-nav__link">
887
-        
888
-  
889
-  
890
-  <span class="md-ellipsis">
891
-    Submodule vault
892
-    
893
-  </span>
894
-  
895
-
896
-      </a>
897
-    </li>
898
-  
899
-
900
-              
901
-            
902
-          </ul>
903
-        </nav>
904
-      
905
-    </li>
906
-  
907
-
908
-              
909
-            
910
-              
911
-                
912
-  
913
-  
914
-  
915
-  
916
-    
917
-    
918
-      
919
-        
920
-      
921
-    
922
-    
923
-    
924
-      
925
-      
926
-        
927
-      
928
-    
929
-    
930
-    <li class="md-nav__item md-nav__item--nested">
931
-      
932
-        
933
-        
934
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_4" >
935
-        
936
-          
937
-          <label class="md-nav__link" for="__nav_4_4" id="__nav_4_4_label" tabindex="0">
938
-            
939
-  
940
-  
941
-  <span class="md-ellipsis">
942
-    Technical prerequisites
943
-    
944
-  </span>
945
-  
946
-
947
-            <span class="md-nav__icon md-icon"></span>
948
-          </label>
949
-        
950
-        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_4_label" aria-expanded="false">
951
-          <label class="md-nav__title" for="__nav_4_4">
952
-            <span class="md-nav__icon md-icon"></span>
953
-            Technical prerequisites
954
-          </label>
955
-          <ul class="md-nav__list" data-md-scrollfix>
956
-            
957
-              
958
-                
959
-  
960
-  
961
-  
962
-  
963
-    <li class="md-nav__item">
964
-      <a href="../prerequisites-ssh-key/" class="md-nav__link">
965
-        
966
-  
967
-  
968
-  <span class="md-ellipsis">
969
-    Using derivepassphrase vault with an SSH key
970
-    
971
-  </span>
972
-  
973
-
974
-      </a>
975
-    </li>
976
-  
977
-
978
-              
979
-            
980
-          </ul>
981
-        </nav>
982
-      
983
-    </li>
984
-  
985
-
986
-              
987
-            
988
-          </ul>
989
-        </nav>
990
-      
991
-    </li>
992
-  
993
-
994
-    
995
-      
996
-      
997
-  
998
-  
999
-  
1000
-  
1001
-    
1002
-    
1003
-      
1004
-        
1005
-          
1006
-        
1007
-      
1008
-        
1009
-      
1010
-        
1011
-      
1012
-    
1013
-    
1014
-    
1015
-      
1016
-      
1017
-        
1018
-      
1019
-    
1020
-    
1021
-    <li class="md-nav__item md-nav__item--nested">
1022
-      
1023
-        
1024
-        
1025
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
1026
-        
1027
-          
1028
-          <div class="md-nav__link md-nav__container">
1029
-            <a href="../../explanation/" class="md-nav__link ">
1030
-              
1031
-  
1032
-  
1033
-  <span class="md-ellipsis">
1034
-    Design & Background
1035
-    
1036
-  </span>
1037
-  
1038
-
1039
-            </a>
1040
-            
1041
-              
1042
-              <label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="0">
1043
-                <span class="md-nav__icon md-icon"></span>
1044
-              </label>
1045
-            
1046
-          </div>
1047
-        
1048
-        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
1049
-          <label class="md-nav__title" for="__nav_5">
1050
-            <span class="md-nav__icon md-icon"></span>
1051
-            Design & Background
1052
-          </label>
1053
-          <ul class="md-nav__list" data-md-scrollfix>
1054
-            
1055
-              
1056
-            
1057
-              
1058
-                
1059
-  
1060
-  
1061
-  
1062
-  
1063
-    <li class="md-nav__item">
1064
-      <a href="../../explanation/faq-altered-versions/" class="md-nav__link">
1065
-        
1066
-  
1067
-  
1068
-  <span class="md-ellipsis">
1069
-    "altered versions" license requirement
1070
-    
1071
-  </span>
1072
-  
1073
-
1074
-      </a>
1075
-    </li>
1076
-  
1077
-
1078
-              
1079
-            
1080
-              
1081
-                
1082
-  
1083
-  
1084
-  
1085
-  
1086
-    <li class="md-nav__item">
1087
-      <a href="../../explanation/faq-vault-interchangable-passphrases/" class="md-nav__link">
1088
-        
1089
-  
1090
-  
1091
-  <span class="md-ellipsis">
1092
-    "interchangable passphrases" in vault
1093
-    
1094
-  </span>
1095
-  
1096
-
1097
-      </a>
1098
-    </li>
1099
-  
1100
-
1101
-              
1102
-            
1103
-          </ul>
1104
-        </nav>
1105
-      
1106
-    </li>
1107
-  
1108
-
1109
-    
1110
-      
1111
-      
1112
-  
1113
-  
1114
-  
1115
-  
1116
-    
1117
-    
1118
-      
1119
-        
1120
-      
1121
-        
1122
-      
1123
-        
1124
-      
1125
-    
1126
-    
1127
-    
1128
-      
1129
-      
1130
-        
1131
-      
1132
-    
1133
-    
1134
-    <li class="md-nav__item md-nav__item--nested">
1135
-      
1136
-        
1137
-        
1138
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
1139
-        
1140
-          
1141
-          <label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
1142
-            
1143
-  
1144
-  
1145
-  <span class="md-ellipsis">
1146
-    Changelog
1147
-    
1148
-  </span>
1149
-  
1150
-
1151
-            <span class="md-nav__icon md-icon"></span>
1152
-          </label>
1153
-        
1154
-        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
1155
-          <label class="md-nav__title" for="__nav_6">
1156
-            <span class="md-nav__icon md-icon"></span>
1157
-            Changelog
1158
-          </label>
1159
-          <ul class="md-nav__list" data-md-scrollfix>
1160
-            
1161
-              
1162
-                
1163
-  
1164
-  
1165
-  
1166
-  
1167
-    <li class="md-nav__item">
1168
-      <a href="../../changelog/" class="md-nav__link">
1169
-        
1170
-  
1171
-  
1172
-  <span class="md-ellipsis">
1173
-    Changelog
1174
-    
1175
-  </span>
1176
-  
1177
-
1178
-      </a>
1179
-    </li>
1180
-  
1181
-
1182
-              
1183
-            
1184
-              
1185
-                
1186
-  
1187
-  
1188
-  
1189
-  
1190
-    <li class="md-nav__item">
1191
-      <a href="../../upgrade-notes/" class="md-nav__link">
1192
-        
1193
-  
1194
-  
1195
-  <span class="md-ellipsis">
1196
-    Upgrade notes
1197
-    
1198
-  </span>
1199
-  
1200
-
1201
-      </a>
1202
-    </li>
1203
-  
1204
-
1205
-              
1206
-            
1207
-              
1208
-                
1209
-  
1210
-  
1211
-  
1212
-  
1213
-    <li class="md-nav__item">
1214
-      <a href="../../pycompatibility/" class="md-nav__link">
1215
-        
1216
-  
1217
-  
1218
-  <span class="md-ellipsis">
1219
-    Python compatibility
1220
-    
1221
-  </span>
1222
-  
1223
-
1224
-      </a>
1225
-    </li>
1226
-  
1227
-
1228
-              
1229
-            
1230
-          </ul>
1231
-        </nav>
1232
-      
1233
-    </li>
1234
-  
1235
-
1236
-    
1237
-      
1238
-      
1239
-  
1240
-  
1241
-  
1242
-  
1243
-    
1244
-    
1245
-      
1246
-        
1247
-          
1248
-        
1249
-      
1250
-    
1251
-    
1252
-    
1253
-      
1254
-      
1255
-        
1256
-      
1257
-    
1258
-    
1259
-    <li class="md-nav__item md-nav__item--nested">
1260
-      
1261
-        
1262
-        
1263
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
1264
-        
1265
-          
1266
-          <div class="md-nav__link md-nav__container">
1267
-            <a href="../../wishlist/" class="md-nav__link ">
1268
-              
1269
-  
1270
-  
1271
-  <span class="md-ellipsis">
1272
-    Wishlist
1273
-    
1274
-  </span>
1275
-  
1276
-
1277
-            </a>
1278
-            
1279
-          </div>
1280
-        
1281
-        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
1282
-          <label class="md-nav__title" for="__nav_7">
1283
-            <span class="md-nav__icon md-icon"></span>
1284
-            Wishlist
1285
-          </label>
1286
-          <ul class="md-nav__list" data-md-scrollfix>
1287
-            
1288
-              
1289
-            
1290
-          </ul>
1291
-        </nav>
1292
-      
1293
-    </li>
1294
-  
1295
-
1296
-    
1297
-  </ul>
1298
-</nav>
1299
-                  </div>
1300
-                </div>
1301
-              </div>
1302
-            
1303
-            
1304
-              
1305
-              <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
1306
-                <div class="md-sidebar__scrollwrap">
1307
-                  <div class="md-sidebar__inner">
1308
-                    
1309
-
1310
-<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1311
-  
1312
-  
1313
-  
1314
-    
1315
-  
1316
-  
1317
-    <label class="md-nav__title" for="__toc">
1318
-      <span class="md-nav__icon md-icon"></span>
1319
-      Table of contents
1320
-    </label>
1321
-    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1322
-      
1323
-        <li class="md-nav__item">
1324
-  <a href="#derivepassphrase._internals.cli_machinery.ClickEchoStderrHandler" class="md-nav__link">
1325
-    <span class="md-ellipsis">
1326
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;ClickEchoStderrHandler
1327
-    </span>
1328
-  </a>
1329
-  
1330
-    <nav class="md-nav" aria-label=" ClickEchoStderrHandler">
1331
-      <ul class="md-nav__list">
1332
-        
1333
-          <li class="md-nav__item">
1334
-  <a href="#derivepassphrase._internals.cli_machinery.ClickEchoStderrHandler.emit" class="md-nav__link">
1335
-    <span class="md-ellipsis">
1336
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;emit
1337
-    </span>
1338
-  </a>
1339
-  
1340
-</li>
1341
-        
1342
-      </ul>
1343
-    </nav>
1344
-  
1345
-</li>
1346
-      
1347
-        <li class="md-nav__item">
1348
-  <a href="#derivepassphrase._internals.cli_machinery.CLIofPackageFormatter" class="md-nav__link">
1349
-    <span class="md-ellipsis">
1350
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;CLIofPackageFormatter
1351
-    </span>
1352
-  </a>
1353
-  
1354
-    <nav class="md-nav" aria-label=" CLIofPackageFormatter">
1355
-      <ul class="md-nav__list">
1356
-        
1357
-          <li class="md-nav__item">
1358
-  <a href="#derivepassphrase._internals.cli_machinery.CLIofPackageFormatter.format" class="md-nav__link">
1359
-    <span class="md-ellipsis">
1360
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;format
1361
-    </span>
1362
-  </a>
1363
-  
1364
-</li>
1365
-        
1366
-      </ul>
1367
-    </nav>
1368
-  
1369
-</li>
1370
-      
1371
-        <li class="md-nav__item">
1372
-  <a href="#derivepassphrase._internals.cli_machinery.StandardCLILogging" class="md-nav__link">
1373
-    <span class="md-ellipsis">
1374
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;StandardCLILogging
1375
-    </span>
1376
-  </a>
1377
-  
1378
-    <nav class="md-nav" aria-label=" StandardCLILogging">
1379
-      <ul class="md-nav__list">
1380
-        
1381
-          <li class="md-nav__item">
1382
-  <a href="#derivepassphrase._internals.cli_machinery.StandardCLILogging.ensure_standard_logging" class="md-nav__link">
1383
-    <span class="md-ellipsis">
1384
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;ensure_standard_logging
1385
-    </span>
1386
-  </a>
1387
-  
1388
-</li>
1389
-        
1390
-          <li class="md-nav__item">
1391
-  <a href="#derivepassphrase._internals.cli_machinery.StandardCLILogging.ensure_standard_warnings_logging" class="md-nav__link">
1392
-    <span class="md-ellipsis">
1393
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;ensure_standard_warnings_logging
1394
-    </span>
1395
-  </a>
1396
-  
1397
-</li>
1398
-        
1399
-      </ul>
1400
-    </nav>
1401
-  
1402
-</li>
1403
-      
1404
-        <li class="md-nav__item">
1405
-  <a href="#derivepassphrase._internals.cli_machinery.StandardLoggingContextManager" class="md-nav__link">
1406
-    <span class="md-ellipsis">
1407
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;StandardLoggingContextManager
1408
-    </span>
1409
-  </a>
1410
-  
1411
-</li>
1412
-      
1413
-        <li class="md-nav__item">
1414
-  <a href="#derivepassphrase._internals.cli_machinery.StandardWarningsLoggingContextManager" class="md-nav__link">
1415
-    <span class="md-ellipsis">
1416
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;StandardWarningsLoggingContextManager
1417
-    </span>
1418
-  </a>
1419
-  
1420
-</li>
1421
-      
1422
-        <li class="md-nav__item">
1423
-  <a href="#derivepassphrase._internals.cli_machinery.OptionGroupOption" class="md-nav__link">
1424
-    <span class="md-ellipsis">
1425
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;OptionGroupOption
1426
-    </span>
1427
-  </a>
1428
-  
1429
-    <nav class="md-nav" aria-label=" OptionGroupOption">
1430
-      <ul class="md-nav__list">
1431
-        
1432
-          <li class="md-nav__item">
1433
-  <a href="#derivepassphrase._internals.cli_machinery.OptionGroupOption.option_group_name" class="md-nav__link">
1434
-    <span class="md-ellipsis">
1435
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;option_group_name
1436
-    </span>
1437
-  </a>
1438
-  
1439
-</li>
1440
-        
1441
-          <li class="md-nav__item">
1442
-  <a href="#derivepassphrase._internals.cli_machinery.OptionGroupOption.epilog" class="md-nav__link">
1443
-    <span class="md-ellipsis">
1444
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;epilog
1445
-    </span>
1446
-  </a>
1447
-  
1448
-</li>
1449
-        
1450
-      </ul>
1451
-    </nav>
1452
-  
1453
-</li>
1454
-      
1455
-        <li class="md-nav__item">
1456
-  <a href="#derivepassphrase._internals.cli_machinery.CommandWithHelpGroups" class="md-nav__link">
1457
-    <span class="md-ellipsis">
1458
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;CommandWithHelpGroups
1459
-    </span>
1460
-  </a>
1461
-  
1462
-    <nav class="md-nav" aria-label=" CommandWithHelpGroups">
1463
-      <ul class="md-nav__list">
1464
-        
1465
-          <li class="md-nav__item">
1466
-  <a href="#derivepassphrase._internals.cli_machinery.CommandWithHelpGroups.collect_usage_pieces" class="md-nav__link">
1467
-    <span class="md-ellipsis">
1468
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;collect_usage_pieces
1469
-    </span>
1470
-  </a>
1471
-  
1472
-</li>
1473
-        
1474
-          <li class="md-nav__item">
1475
-  <a href="#derivepassphrase._internals.cli_machinery.CommandWithHelpGroups.get_help_option" class="md-nav__link">
1476
-    <span class="md-ellipsis">
1477
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;get_help_option
1478
-    </span>
1479
-  </a>
1480
-  
1481
-</li>
1482
-        
1483
-          <li class="md-nav__item">
1484
-  <a href="#derivepassphrase._internals.cli_machinery.CommandWithHelpGroups.get_short_help_str" class="md-nav__link">
1485
-    <span class="md-ellipsis">
1486
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;get_short_help_str
1487
-    </span>
1488
-  </a>
1489
-  
1490
-</li>
1491
-        
1492
-          <li class="md-nav__item">
1493
-  <a href="#derivepassphrase._internals.cli_machinery.CommandWithHelpGroups.format_help_text" class="md-nav__link">
1494
-    <span class="md-ellipsis">
1495
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;format_help_text
1496
-    </span>
1497
-  </a>
1498
-  
1499
-</li>
1500
-        
1501
-          <li class="md-nav__item">
1502
-  <a href="#derivepassphrase._internals.cli_machinery.CommandWithHelpGroups.format_options" class="md-nav__link">
1503
-    <span class="md-ellipsis">
1504
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;format_options
1505
-    </span>
1506
-  </a>
1507
-  
1508
-</li>
1509
-        
1510
-          <li class="md-nav__item">
1511
-  <a href="#derivepassphrase._internals.cli_machinery.CommandWithHelpGroups.format_commands" class="md-nav__link">
1512
-    <span class="md-ellipsis">
1513
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;format_commands
1514
-    </span>
1515
-  </a>
1516
-  
1517
-</li>
1518
-        
1519
-          <li class="md-nav__item">
1520
-  <a href="#derivepassphrase._internals.cli_machinery.CommandWithHelpGroups.format_epilog" class="md-nav__link">
1521
-    <span class="md-ellipsis">
1522
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;format_epilog
1523
-    </span>
1524
-  </a>
1525
-  
1526
-</li>
1527
-        
1528
-      </ul>
1529
-    </nav>
1530
-  
1531
-</li>
1532
-      
1533
-        <li class="md-nav__item">
1534
-  <a href="#derivepassphrase._internals.cli_machinery.DefaultToVaultGroup" class="md-nav__link">
1535
-    <span class="md-ellipsis">
1536
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;DefaultToVaultGroup
1537
-    </span>
1538
-  </a>
1539
-  
1540
-    <nav class="md-nav" aria-label=" DefaultToVaultGroup">
1541
-      <ul class="md-nav__list">
1542
-        
1543
-          <li class="md-nav__item">
1544
-  <a href="#derivepassphrase._internals.cli_machinery.DefaultToVaultGroup.resolve_command" class="md-nav__link">
1545
-    <span class="md-ellipsis">
1546
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;resolve_command
1547
-    </span>
1548
-  </a>
1549
-  
1550
-</li>
1551
-        
1552
-      </ul>
1553
-    </nav>
1554
-  
1555
-</li>
1556
-      
1557
-        <li class="md-nav__item">
1558
-  <a href="#derivepassphrase._internals.cli_machinery.TopLevelCLIEntryPoint" class="md-nav__link">
1559
-    <span class="md-ellipsis">
1560
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;TopLevelCLIEntryPoint
1561
-    </span>
1562
-  </a>
1563
-  
1564
-    <nav class="md-nav" aria-label=" TopLevelCLIEntryPoint">
1565
-      <ul class="md-nav__list">
1566
-        
1567
-          <li class="md-nav__item">
1568
-  <a href="#derivepassphrase._internals.cli_machinery.TopLevelCLIEntryPoint.__call__" class="md-nav__link">
1569
-    <span class="md-ellipsis">
1570
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;__call__
1571
-    </span>
1572
-  </a>
1573
-  
1574
-</li>
1575
-        
1576
-      </ul>
1577
-    </nav>
1578
-  
1579
-</li>
1580
-      
1581
-        <li class="md-nav__item">
1582
-  <a href="#derivepassphrase._internals.cli_machinery.PassphraseGenerationOption" class="md-nav__link">
1583
-    <span class="md-ellipsis">
1584
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;PassphraseGenerationOption
1585
-    </span>
1586
-  </a>
1587
-  
1588
-</li>
1589
-      
1590
-        <li class="md-nav__item">
1591
-  <a href="#derivepassphrase._internals.cli_machinery.ConfigurationOption" class="md-nav__link">
1592
-    <span class="md-ellipsis">
1593
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;ConfigurationOption
1594
-    </span>
1595
-  </a>
1596
-  
1597
-</li>
1598
-      
1599
-        <li class="md-nav__item">
1600
-  <a href="#derivepassphrase._internals.cli_machinery.StorageManagementOption" class="md-nav__link">
1601
-    <span class="md-ellipsis">
1602
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;StorageManagementOption
1603
-    </span>
1604
-  </a>
1605
-  
1606
-</li>
1607
-      
1608
-        <li class="md-nav__item">
1609
-  <a href="#derivepassphrase._internals.cli_machinery.CompatibilityOption" class="md-nav__link">
1610
-    <span class="md-ellipsis">
1611
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;CompatibilityOption
1612
-    </span>
1613
-  </a>
1614
-  
1615
-</li>
1616
-      
1617
-        <li class="md-nav__item">
1618
-  <a href="#derivepassphrase._internals.cli_machinery.LoggingOption" class="md-nav__link">
1619
-    <span class="md-ellipsis">
1620
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;LoggingOption
1621
-    </span>
1622
-  </a>
1623
-  
1624
-</li>
1625
-      
1626
-        <li class="md-nav__item">
1627
-  <a href="#derivepassphrase._internals.cli_machinery.ZshComplete" class="md-nav__link">
1628
-    <span class="md-ellipsis">
1629
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;ZshComplete
1630
-    </span>
1631
-  </a>
1632
-  
1633
-    <nav class="md-nav" aria-label=" ZshComplete">
1634
-      <ul class="md-nav__list">
1635
-        
1636
-          <li class="md-nav__item">
1637
-  <a href="#derivepassphrase._internals.cli_machinery.ZshComplete.format_completion" class="md-nav__link">
1638
-    <span class="md-ellipsis">
1639
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;format_completion
1640
-    </span>
1641
-  </a>
1642
-  
1643
-</li>
1644
-        
1645
-      </ul>
1646
-    </nav>
1647
-  
1648
-</li>
1649
-      
1650
-        <li class="md-nav__item">
1651
-  <a href="#derivepassphrase._internals.cli_machinery.adjust_logging_level" class="md-nav__link">
1652
-    <span class="md-ellipsis">
1653
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;adjust_logging_level
1654
-    </span>
1655
-  </a>
1656
-  
1657
-</li>
1658
-      
1659
-        <li class="md-nav__item">
1660
-  <a href="#derivepassphrase._internals.cli_machinery.color_forcing_callback" class="md-nav__link">
1661
-    <span class="md-ellipsis">
1662
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;color_forcing_callback
1663
-    </span>
1664
-  </a>
1665
-  
1666
-</li>
1667
-      
1668
-        <li class="md-nav__item">
1669
-  <a href="#derivepassphrase._internals.cli_machinery.validate_occurrence_constraint" class="md-nav__link">
1670
-    <span class="md-ellipsis">
1671
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;validate_occurrence_constraint
1672
-    </span>
1673
-  </a>
1674
-  
1675
-</li>
1676
-      
1677
-        <li class="md-nav__item">
1678
-  <a href="#derivepassphrase._internals.cli_machinery.validate_length" class="md-nav__link">
1679
-    <span class="md-ellipsis">
1680
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;validate_length
1681
-    </span>
1682
-  </a>
1683
-  
1684
-</li>
1685
-      
1686
-        <li class="md-nav__item">
1687
-  <a href="#derivepassphrase._internals.cli_machinery.standard_logging_options" class="md-nav__link">
1688
-    <span class="md-ellipsis">
1689
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;standard_logging_options
1690
-    </span>
1691
-  </a>
1692
-  
1693
-</li>
1694
-      
1695
-    </ul>
1696
-  
1697
-</nav>
1698
-                  </div>
1699
-                </div>
1700
-              </div>
1701
-            
1702
-          
1703
-          
1704
-            <div class="md-content" data-md-component="content">
1705
-              <article class="md-content__inner md-typeset">
1706
-                
1707
-                  
1708
-
1709
-
1710
-  
1711
-  
1712
-    
1713
-      
1714
-    
1715
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/reference/derivepassphrase._internals.cli_machinery.md" title="View source of this page" class="md-content__button md-icon">
1716
-      
1717
-      <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>
1718
-    </a>
1719
-  
1720
-
1721
-
1722
-<div class="doc doc-object doc-module">
1723
-
1724
-
1725
-
1726
-<h1 id="derivepassphrase._internals.cli_machinery" class="doc doc-heading">
1727
-<code class="doc-symbol doc-symbol-heading doc-symbol-module"></code>            <span class="doc doc-object-name doc-module-name">derivepassphrase._internals.cli_machinery</span>
1728
-
1729
-
1730
-<a href="#derivepassphrase._internals.cli_machinery" class="headerlink" title="Permanent link">&para;</a></h1>
1731
-
1732
-    <div class="doc doc-contents first">
1733
-
1734
-        <p>Command-line machinery for derivepassphrase.</p>
1735
-
1736
-
1737
-<details class="warning" open>
1738
-  <summary>Warning</summary>
1739
-  <p>Non-public module (implementation detail), provided for didactical and
1740
-educational purposes only. Subject to change without notice, including
1741
-removal.</p>
1742
-</details>
1743
-
1744
-
1745
-
1746
-
1747
-
1748
-
1749
-
1750
-
1751
-  <div class="doc doc-children">
1752
-
1753
-
1754
-
1755
-
1756
-
1757
-
1758
-
1759
-
1760
-<div class="doc doc-object doc-class">
1761
-
1762
-
1763
-
1764
-<h2 id="derivepassphrase._internals.cli_machinery.ClickEchoStderrHandler" class="doc doc-heading">
1765
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">ClickEchoStderrHandler</span>
1766
-
1767
-
1768
-<a href="#derivepassphrase._internals.cli_machinery.ClickEchoStderrHandler" class="headerlink" title="Permanent link">&para;</a></h2>
1769
-
1770
-
1771
-    <div class="doc doc-contents ">
1772
-            <p class="doc doc-class-bases">
1773
-              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>
1774
-
1775
-
1776
-
1777
-        <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>
1778
-<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/stable/api/#click.echo"><code>click.echo</code></a>.</p>
1779
-
1780
-
1781
-
1782
-
1783
-
1784
-
1785
-
1786
-
1787
-
1788
-
1789
-  <div class="doc doc-children">
1790
-
1791
-
1792
-
1793
-
1794
-
1795
-
1796
-
1797
-
1798
-
1799
-<div class="doc doc-object doc-function">
1800
-
1801
-
1802
-<h3 id="derivepassphrase._internals.cli_machinery.ClickEchoStderrHandler.emit" class="doc doc-heading">
1803
-<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code>            <span class="doc doc-object-name doc-function-name">emit</span>
1804
-
1805
-
1806
-<a href="#derivepassphrase._internals.cli_machinery.ClickEchoStderrHandler.emit" class="headerlink" title="Permanent link">&para;</a></h3>
1807
-<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">-&gt;</span> <span class="kc">None</span>
1808
-</code></pre></div>
1809
-
1810
-    <div class="doc doc-contents ">
1811
-
1812
-        <p>Emit a log record.</p>
1813
-<p>Format the log record, then emit it via <a class="autorefs autorefs-external" href="https://click.palletsprojects.com/en/stable/api/#click.echo"><code>click.echo</code></a> to
1814
-<a class="autorefs autorefs-external" href="https://docs.python.org/3/library/sys.html#sys.stderr"><code>sys.stderr</code></a>.</p>
1815
-
1816
-
1817
-    </div>
1818
-
1819
-</div>
1820
-
1821
-
1822
-
1823
-  </div>
1824
-
1825
-    </div>
1826
-
1827
-</div>
1828
-
1829
-<div class="doc doc-object doc-class">
1830
-
1831
-
1832
-
1833
-<h2 id="derivepassphrase._internals.cli_machinery.CLIofPackageFormatter" class="doc doc-heading">
1834
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">CLIofPackageFormatter</span>
1835
-
1836
-
1837
-<a href="#derivepassphrase._internals.cli_machinery.CLIofPackageFormatter" class="headerlink" title="Permanent link">&para;</a></h2>
1838
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">CLIofPackageFormatter</span><span class="p">(</span>
1839
-    <span class="o">*</span><span class="p">,</span>
1840
-    <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._internals.cli_machinery.PROG_NAME">PROG_NAME</span></span><span class="p">,</span>
1841
-    <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>
1842
-<span class="p">)</span>
1843
-</code></pre></div>
1844
-
1845
-    <div class="doc doc-contents ">
1846
-            <p class="doc doc-class-bases">
1847
-              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>
1848
-
1849
-
1850
-
1851
-        <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>
1852
-<p>Assuming a package <code>PKG</code> and loggers within the same hierarchy
1853
-<code>PKG</code>, format all log records from that hierarchy for proper user
1854
-feedback on the console.  Intended for use with <a href="https://pypi.org/projects/click/"><code>click</code></a> and
1855
-when <code>PKG</code> provides a command-line tool <code>PKG</code> and when logs from
1856
-that package should show up as output of the command-line tool.</p>
1857
-<p>Essentially, this prepends certain short strings to the log message
1858
-lines to make them readable as standard error output.</p>
1859
-<p>Because this log output is intended to be displayed on standard
1860
-error as high-level diagnostic output, you are strongly discouraged
1861
-from changing the output format to include more tokens besides the
1862
-log message.  Use a dedicated log file handler instead, without this
1863
-formatter.</p>
1864
-
1865
-
1866
-
1867
-
1868
-
1869
-
1870
-
1871
-
1872
-
1873
-
1874
-  <div class="doc doc-children">
1875
-
1876
-
1877
-
1878
-
1879
-
1880
-
1881
-
1882
-
1883
-
1884
-<div class="doc doc-object doc-function">
1885
-
1886
-
1887
-<h3 id="derivepassphrase._internals.cli_machinery.CLIofPackageFormatter.format" class="doc doc-heading">
1888
-<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code>            <span class="doc doc-object-name doc-function-name">format</span>
1889
-
1890
-
1891
-<a href="#derivepassphrase._internals.cli_machinery.CLIofPackageFormatter.format" class="headerlink" title="Permanent link">&para;</a></h3>
1892
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">format</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">-&gt;</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></span>
1893
-</code></pre></div>
1894
-
1895
-    <div class="doc doc-contents ">
1896
-
1897
-        <p>Format a log record suitably for standard error console output.</p>
1898
-<p>Prepend the formatted string <code>"PROG_NAME: LABEL"</code> to each line
1899
-of the message, where <code>PROG_NAME</code> is the program name, and
1900
-<code>LABEL</code> depends on the record&rsquo;s level and on the logger name as
1901
-follows:</p>
1902
-<ul>
1903
-<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
1904
-    <code>"Debug: "</code>.</li>
1905
-<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
1906
-    empty string.</li>
1907
-<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
1908
-    <code>"Deprecation warning: "</code> if the logger is named
1909
-    <code>PKG.deprecation</code> (where <code>PKG</code> is the package name), else
1910
-    <code>"Warning: "</code>.</li>
1911
-<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
1912
-    <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
1913
-    string.</li>
1914
-</ul>
1915
-<p>The level indication strings at level <code>WARNING</code> or above are
1916
-highlighted.  Use <a class="autorefs autorefs-external" href="https://click.palletsprojects.com/en/stable/api/#click.echo"><code>click.echo</code></a> to output them and remove
1917
-color output if necessary.</p>
1918
-
1919
-
1920
-<p><span class="doc-section-title">Parameters:</span></p>
1921
-    <table>
1922
-      <thead>
1923
-        <tr>
1924
-          <th>Name</th>
1925
-          <th>Type</th>
1926
-          <th>Description</th>
1927
-          <th>Default</th>
1928
-        </tr>
1929
-      </thead>
1930
-      <tbody>
1931
-          <tr class="doc-section-item">
1932
-            <td>
1933
-                <code>record</code>
1934
-            </td>
1935
-            <td>
1936
-                  <code><a class="autorefs autorefs-external" title="logging.LogRecord" href="https://docs.python.org/3/library/logging.html#logging.LogRecord">LogRecord</a></code>
1937
-            </td>
1938
-            <td>
1939
-              <div class="doc-md-description">
1940
-                <p>A log record.</p>
1941
-              </div>
1942
-            </td>
1943
-            <td>
1944
-                <em>required</em>
1945
-            </td>
1946
-          </tr>
1947
-      </tbody>
1948
-    </table>
1949
-
1950
-
1951
-    <p><span class="doc-section-title">Returns:</span></p>
1952
-    <table>
1953
-      <thead>
1954
-        <tr>
1955
-          <th>Type</th>
1956
-          <th>Description</th>
1957
-        </tr>
1958
-      </thead>
1959
-      <tbody>
1960
-          <tr class="doc-section-item">
1961
-            <td>
1962
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></code>
1963
-            </td>
1964
-            <td>
1965
-              <div class="doc-md-description">
1966
-                <p>A formatted log record.</p>
1967
-              </div>
1968
-            </td>
1969
-          </tr>
1970
-      </tbody>
1971
-    </table>
1972
-
1973
-
1974
-<p><span class="doc-section-title">Raises:</span></p>
1975
-    <table>
1976
-      <thead>
1977
-        <tr>
1978
-          <th>Type</th>
1979
-          <th>Description</th>
1980
-        </tr>
1981
-      </thead>
1982
-      <tbody>
1983
-          <tr class="doc-section-item">
1984
-            <td>
1985
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#AssertionError">AssertionError</a></code>
1986
-            </td>
1987
-            <td>
1988
-              <div class="doc-md-description">
1989
-                <p>The log level is not supported.</p>
1990
-              </div>
1991
-            </td>
1992
-          </tr>
1993
-      </tbody>
1994
-    </table>
1995
-
1996
-
1997
-    </div>
1998
-
1999
-</div>
2000
-
2001
-
2002
-
2003
-  </div>
2004
-
2005
-    </div>
2006
-
2007
-</div>
2008
-
2009
-<div class="doc doc-object doc-class">
2010
-
2011
-
2012
-
2013
-<h2 id="derivepassphrase._internals.cli_machinery.StandardCLILogging" class="doc doc-heading">
2014
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">StandardCLILogging</span>
2015
-
2016
-
2017
-<a href="#derivepassphrase._internals.cli_machinery.StandardCLILogging" class="headerlink" title="Permanent link">&para;</a></h2>
2018
-
2019
-
2020
-    <div class="doc doc-contents ">
2021
-
2022
-
2023
-
2024
-        <p>Set up CLI logging handlers upon instantiation.</p>
2025
-
2026
-
2027
-
2028
-
2029
-
2030
-
2031
-
2032
-
2033
-
2034
-
2035
-  <div class="doc doc-children">
2036
-
2037
-
2038
-
2039
-
2040
-
2041
-
2042
-
2043
-
2044
-
2045
-<div class="doc doc-object doc-function">
2046
-
2047
-
2048
-<h3 id="derivepassphrase._internals.cli_machinery.StandardCLILogging.ensure_standard_logging" class="doc doc-heading">
2049
-<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code>            <span class="doc doc-object-name doc-function-name">ensure_standard_logging</span>
2050
-
2051
-
2052
-  <span class="doc doc-labels">
2053
-      <small class="doc doc-label doc-label-classmethod"><code>classmethod</code></small>
2054
-  </span>
2055
-
2056
-<a href="#derivepassphrase._internals.cli_machinery.StandardCLILogging.ensure_standard_logging" class="headerlink" title="Permanent link">&para;</a></h3>
2057
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">ensure_standard_logging</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n"><a class="autorefs autorefs-internal" title="            StandardLoggingContextManager (derivepassphrase._internals.cli_machinery.StandardLoggingContextManager)" href="#derivepassphrase._internals.cli_machinery.StandardLoggingContextManager">StandardLoggingContextManager</a></span>
2058
-</code></pre></div>
2059
-
2060
-    <div class="doc doc-contents ">
2061
-
2062
-        <p>Return a context manager to ensure standard logging is set up.</p>
2063
-
2064
-
2065
-    </div>
2066
-
2067
-</div>
2068
-
2069
-<div class="doc doc-object doc-function">
2070
-
2071
-
2072
-<h3 id="derivepassphrase._internals.cli_machinery.StandardCLILogging.ensure_standard_warnings_logging" class="doc doc-heading">
2073
-<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>
2074
-
2075
-
2076
-  <span class="doc doc-labels">
2077
-      <small class="doc doc-label doc-label-classmethod"><code>classmethod</code></small>
2078
-  </span>
2079
-
2080
-<a href="#derivepassphrase._internals.cli_machinery.StandardCLILogging.ensure_standard_warnings_logging" class="headerlink" title="Permanent link">&para;</a></h3>
2081
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">ensure_standard_warnings_logging</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="p">(</span>
2082
-    <span class="n"><a class="autorefs autorefs-internal" title="            StandardWarningsLoggingContextManager (derivepassphrase._internals.cli_machinery.StandardWarningsLoggingContextManager)" href="#derivepassphrase._internals.cli_machinery.StandardWarningsLoggingContextManager">StandardWarningsLoggingContextManager</a></span>
2083
-<span class="p">)</span>
2084
-</code></pre></div>
2085
-
2086
-    <div class="doc doc-contents ">
2087
-
2088
-        <p>Return a context manager to ensure warnings logging is set up.</p>
2089
-
2090
-
2091
-    </div>
2092
-
2093
-</div>
2094
-
2095
-
2096
-
2097
-  </div>
2098
-
2099
-    </div>
2100
-
2101
-</div>
2102
-
2103
-<div class="doc doc-object doc-class">
2104
-
2105
-
2106
-
2107
-<h2 id="derivepassphrase._internals.cli_machinery.StandardLoggingContextManager" class="doc doc-heading">
2108
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">StandardLoggingContextManager</span>
2109
-
2110
-
2111
-<a href="#derivepassphrase._internals.cli_machinery.StandardLoggingContextManager" class="headerlink" title="Permanent link">&para;</a></h2>
2112
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">StandardLoggingContextManager</span><span class="p">(</span>
2113
-    <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>
2114
-<span class="p">)</span>
2115
-</code></pre></div>
2116
-
2117
-    <div class="doc doc-contents ">
2118
-
2119
-
2120
-
2121
-        <p>A reentrant context manager setting up standard CLI logging.</p>
2122
-<p>Ensures that the given handler (defaulting to the CLI logging
2123
-handler) is added to the named logger (defaulting to the root
2124
-logger), and if it had to be added, then that it will be removed
2125
-upon exiting the context.</p>
2126
-<p>Reentrant, but not thread safe, because it temporarily modifies
2127
-global state.</p>
2128
-
2129
-
2130
-
2131
-
2132
-
2133
-
2134
-
2135
-
2136
-
2137
-
2138
-  <div class="doc doc-children">
2139
-
2140
-
2141
-
2142
-
2143
-
2144
-
2145
-
2146
-
2147
-
2148
-
2149
-
2150
-  </div>
2151
-
2152
-    </div>
2153
-
2154
-</div>
2155
-
2156
-<div class="doc doc-object doc-class">
2157
-
2158
-
2159
-
2160
-<h2 id="derivepassphrase._internals.cli_machinery.StandardWarningsLoggingContextManager" class="doc doc-heading">
2161
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">StandardWarningsLoggingContextManager</span>
2162
-
2163
-
2164
-<a href="#derivepassphrase._internals.cli_machinery.StandardWarningsLoggingContextManager" class="headerlink" title="Permanent link">&para;</a></h2>
2165
-<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>
2166
-</code></pre></div>
2167
-
2168
-    <div class="doc doc-contents ">
2169
-            <p class="doc doc-class-bases">
2170
-              Bases: <code><a class="autorefs autorefs-internal" title="            StandardLoggingContextManager (derivepassphrase._internals.cli_machinery.StandardLoggingContextManager)" href="#derivepassphrase._internals.cli_machinery.StandardLoggingContextManager">StandardLoggingContextManager</a></code></p>
2171
-
2172
-
2173
-
2174
-        <p>A reentrant context manager setting up standard warnings logging.</p>
2175
-<p>Ensures that warnings are being diverted to the logging system, and
2176
-that the given handler (defaulting to the CLI logging handler) is
2177
-added to the warnings logger. If the handler had to be added, then
2178
-it will be removed upon exiting the context.</p>
2179
-<p>Reentrant, but not thread safe, because it temporarily modifies
2180
-global state.</p>
2181
-
2182
-
2183
-
2184
-
2185
-
2186
-
2187
-
2188
-
2189
-
2190
-
2191
-  <div class="doc doc-children">
2192
-
2193
-
2194
-
2195
-
2196
-
2197
-
2198
-
2199
-
2200
-
2201
-
2202
-
2203
-  </div>
2204
-
2205
-    </div>
2206
-
2207
-</div>
2208
-
2209
-<div class="doc doc-object doc-class">
2210
-
2211
-
2212
-
2213
-<h2 id="derivepassphrase._internals.cli_machinery.OptionGroupOption" class="doc doc-heading">
2214
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">OptionGroupOption</span>
2215
-
2216
-
2217
-<a href="#derivepassphrase._internals.cli_machinery.OptionGroupOption" class="headerlink" title="Permanent link">&para;</a></h2>
2218
-<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>
2219
-</code></pre></div>
2220
-
2221
-    <div class="doc doc-contents ">
2222
-            <p class="doc doc-class-bases">
2223
-              Bases: <code><a class="autorefs autorefs-external" title="click.Option" href="https://click.palletsprojects.com/en/stable/api/#click.Option">Option</a></code></p>
2224
-
2225
-
2226
-
2227
-        <p>A <a class="autorefs autorefs-external" href="https://click.palletsprojects.com/en/stable/api/#click.Option"><code>click.Option</code></a> with an associated group name and group epilog.</p>
2228
-<p>Used by <a class="autorefs autorefs-internal" title="            CommandWithHelpGroups" href="#derivepassphrase._internals.cli_machinery.CommandWithHelpGroups"><code>CommandWithHelpGroups</code></a> to print help sections.  Each
2229
-subclass contains its own group name and epilog.</p>
2230
-
2231
-
2232
-<p><span class="doc-section-title">Attributes:</span></p>
2233
-    <table>
2234
-      <thead>
2235
-        <tr>
2236
-          <th>Name</th>
2237
-          <th>Type</th>
2238
-          <th>Description</th>
2239
-        </tr>
2240
-      </thead>
2241
-      <tbody>
2242
-          <tr class="doc-section-item">
2243
-            <td><code><a class="autorefs autorefs-internal" title="            option_group_name
2244
-
2245
-
2246
-  
2247
-      class-attribute
2248
-      instance-attribute
2249
-   (derivepassphrase._internals.cli_machinery.OptionGroupOption.option_group_name)" href="#derivepassphrase._internals.cli_machinery.OptionGroupOption.option_group_name">option_group_name</a></code></td>
2250
-            <td>
2251
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#object">object</a></code>
2252
-            </td>
2253
-            <td>
2254
-              <div class="doc-md-description">
2255
-                <p>The name of the option group.  Used as a heading on the help
2256
-text for options in this section.</p>
2257
-              </div>
2258
-            </td>
2259
-          </tr>
2260
-          <tr class="doc-section-item">
2261
-            <td><code><a class="autorefs autorefs-internal" title="            epilog
2262
-
2263
-
2264
-  
2265
-      class-attribute
2266
-      instance-attribute
2267
-   (derivepassphrase._internals.cli_machinery.OptionGroupOption.epilog)" href="#derivepassphrase._internals.cli_machinery.OptionGroupOption.epilog">epilog</a></code></td>
2268
-            <td>
2269
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#object">object</a></code>
2270
-            </td>
2271
-            <td>
2272
-              <div class="doc-md-description">
2273
-                <p>An epilog to print after listing the options in this
2274
-section.</p>
2275
-              </div>
2276
-            </td>
2277
-          </tr>
2278
-      </tbody>
2279
-    </table>
2280
-
2281
-
2282
-
2283
-
2284
-
2285
-
2286
-
2287
-
2288
-
2289
-
2290
-  <div class="doc doc-children">
2291
-
2292
-
2293
-
2294
-
2295
-
2296
-
2297
-
2298
-<div class="doc doc-object doc-attribute">
2299
-
2300
-
2301
-
2302
-<h3 id="derivepassphrase._internals.cli_machinery.OptionGroupOption.option_group_name" class="doc doc-heading">
2303
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">option_group_name</span>
2304
-
2305
-
2306
-  <span class="doc doc-labels">
2307
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
2308
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
2309
-  </span>
2310
-
2311
-<a href="#derivepassphrase._internals.cli_machinery.OptionGroupOption.option_group_name" class="headerlink" title="Permanent link">&para;</a></h3>
2312
-<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">&#39;&#39;</span>
2313
-</code></pre></div>
2314
-
2315
-    <div class="doc doc-contents ">
2316
-
2317
-        
2318
-
2319
-    </div>
2320
-
2321
-</div>
2322
-
2323
-<div class="doc doc-object doc-attribute">
2324
-
2325
-
2326
-
2327
-<h3 id="derivepassphrase._internals.cli_machinery.OptionGroupOption.epilog" class="doc doc-heading">
2328
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">epilog</span>
2329
-
2330
-
2331
-  <span class="doc doc-labels">
2332
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
2333
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
2334
-  </span>
2335
-
2336
-<a href="#derivepassphrase._internals.cli_machinery.OptionGroupOption.epilog" class="headerlink" title="Permanent link">&para;</a></h3>
2337
-<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">&#39;&#39;</span>
2338
-</code></pre></div>
2339
-
2340
-    <div class="doc doc-contents ">
2341
-
2342
-        
2343
-
2344
-    </div>
2345
-
2346
-</div>
2347
-
2348
-
2349
-
2350
-
2351
-
2352
-  </div>
2353
-
2354
-    </div>
2355
-
2356
-</div>
2357
-
2358
-<div class="doc doc-object doc-class">
2359
-
2360
-
2361
-
2362
-<h2 id="derivepassphrase._internals.cli_machinery.CommandWithHelpGroups" class="doc doc-heading">
2363
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">CommandWithHelpGroups</span>
2364
-
2365
-
2366
-<a href="#derivepassphrase._internals.cli_machinery.CommandWithHelpGroups" class="headerlink" title="Permanent link">&para;</a></h2>
2367
-
2368
-
2369
-    <div class="doc doc-contents ">
2370
-            <p class="doc doc-class-bases">
2371
-              Bases: <code><a class="autorefs autorefs-external" title="click.Command" href="https://click.palletsprojects.com/en/stable/api/#click.Command">Command</a></code></p>
2372
-
2373
-
2374
-
2375
-        <p>A <a class="autorefs autorefs-external" href="https://click.palletsprojects.com/en/stable/api/#click.Command"><code>click.Command</code></a> with support for some help text customizations.</p>
2376
-<p>Supports help/option groups, group epilogs, and help text objects
2377
-(objects that stringify to help texts).  The latter is primarily
2378
-used to implement translations.</p>
2379
-<p>Inspired by <a href="https://github.com/pallets/click/issues/373#issuecomment-515293746">a comment on <code>pallets/click#373</code></a> for
2380
-help/option group support, and further modified to include group
2381
-epilogs and help text objects.</p>
2382
-
2383
-
2384
-
2385
-
2386
-
2387
-
2388
-
2389
-
2390
-
2391
-
2392
-  <div class="doc doc-children">
2393
-
2394
-
2395
-
2396
-
2397
-
2398
-
2399
-
2400
-
2401
-
2402
-<div class="doc doc-object doc-function">
2403
-
2404
-
2405
-<h3 id="derivepassphrase._internals.cli_machinery.CommandWithHelpGroups.collect_usage_pieces" class="doc doc-heading">
2406
-<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code>            <span class="doc doc-object-name doc-function-name">collect_usage_pieces</span>
2407
-
2408
-
2409
-<a href="#derivepassphrase._internals.cli_machinery.CommandWithHelpGroups.collect_usage_pieces" class="headerlink" title="Permanent link">&para;</a></h3>
2410
-<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/stable/api/#click.Context">Context</a></span><span class="p">)</span> <span class="o">-&gt;</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>
2411
-</code></pre></div>
2412
-
2413
-    <div class="doc doc-contents ">
2414
-
2415
-        <p>Return the pieces for the usage string.</p>
2416
-
2417
-
2418
-<p><span class="doc-section-title">Parameters:</span></p>
2419
-    <table>
2420
-      <thead>
2421
-        <tr>
2422
-          <th>Name</th>
2423
-          <th>Type</th>
2424
-          <th>Description</th>
2425
-          <th>Default</th>
2426
-        </tr>
2427
-      </thead>
2428
-      <tbody>
2429
-          <tr class="doc-section-item">
2430
-            <td>
2431
-                <code>ctx</code>
2432
-            </td>
2433
-            <td>
2434
-                  <code><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/stable/api/#click.Context">Context</a></code>
2435
-            </td>
2436
-            <td>
2437
-              <div class="doc-md-description">
2438
-                <p>The click context.</p>
2439
-              </div>
2440
-            </td>
2441
-            <td>
2442
-                <em>required</em>
2443
-            </td>
2444
-          </tr>
2445
-      </tbody>
2446
-    </table>
2447
-
2448
-
2449
-    </div>
2450
-
2451
-</div>
2452
-
2453
-<div class="doc doc-object doc-function">
2454
-
2455
-
2456
-<h3 id="derivepassphrase._internals.cli_machinery.CommandWithHelpGroups.get_help_option" class="doc doc-heading">
2457
-<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code>            <span class="doc doc-object-name doc-function-name">get_help_option</span>
2458
-
2459
-
2460
-<a href="#derivepassphrase._internals.cli_machinery.CommandWithHelpGroups.get_help_option" class="headerlink" title="Permanent link">&para;</a></h3>
2461
-<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/stable/api/#click.Context">Context</a></span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n"><a class="autorefs autorefs-external" title="click.Option" href="https://click.palletsprojects.com/en/stable/api/#click.Option">Option</a></span> <span class="o">|</span> <span class="kc">None</span>
2462
-</code></pre></div>
2463
-
2464
-    <div class="doc doc-contents ">
2465
-
2466
-        <p>Return a standard help option object.</p>
2467
-
2468
-
2469
-<p><span class="doc-section-title">Parameters:</span></p>
2470
-    <table>
2471
-      <thead>
2472
-        <tr>
2473
-          <th>Name</th>
2474
-          <th>Type</th>
2475
-          <th>Description</th>
2476
-          <th>Default</th>
2477
-        </tr>
2478
-      </thead>
2479
-      <tbody>
2480
-          <tr class="doc-section-item">
2481
-            <td>
2482
-                <code>ctx</code>
2483
-            </td>
2484
-            <td>
2485
-                  <code><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/stable/api/#click.Context">Context</a></code>
2486
-            </td>
2487
-            <td>
2488
-              <div class="doc-md-description">
2489
-                <p>The click context.</p>
2490
-              </div>
2491
-            </td>
2492
-            <td>
2493
-                <em>required</em>
2494
-            </td>
2495
-          </tr>
2496
-      </tbody>
2497
-    </table>
2498
-
2499
-
2500
-    </div>
2501
-
2502
-</div>
2503
-
2504
-<div class="doc doc-object doc-function">
2505
-
2506
-
2507
-<h3 id="derivepassphrase._internals.cli_machinery.CommandWithHelpGroups.get_short_help_str" class="doc doc-heading">
2508
-<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>
2509
-
2510
-
2511
-<a href="#derivepassphrase._internals.cli_machinery.CommandWithHelpGroups.get_short_help_str" class="headerlink" title="Permanent link">&para;</a></h3>
2512
-<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">-&gt;</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></span>
2513
-</code></pre></div>
2514
-
2515
-    <div class="doc doc-contents ">
2516
-
2517
-        <p>Return the short help string for a command.</p>
2518
-<p>If only a long help string is given, shorten it.</p>
2519
-
2520
-
2521
-<p><span class="doc-section-title">Parameters:</span></p>
2522
-    <table>
2523
-      <thead>
2524
-        <tr>
2525
-          <th>Name</th>
2526
-          <th>Type</th>
2527
-          <th>Description</th>
2528
-          <th>Default</th>
2529
-        </tr>
2530
-      </thead>
2531
-      <tbody>
2532
-          <tr class="doc-section-item">
2533
-            <td>
2534
-                <code>limit</code>
2535
-            </td>
2536
-            <td>
2537
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#int">int</a></code>
2538
-            </td>
2539
-            <td>
2540
-              <div class="doc-md-description">
2541
-                <p>The maximum width of the short help string.</p>
2542
-              </div>
2543
-            </td>
2544
-            <td>
2545
-                  <code>45</code>
2546
-            </td>
2547
-          </tr>
2548
-      </tbody>
2549
-    </table>
2550
-
2551
-
2552
-    </div>
2553
-
2554
-</div>
2555
-
2556
-<div class="doc doc-object doc-function">
2557
-
2558
-
2559
-<h3 id="derivepassphrase._internals.cli_machinery.CommandWithHelpGroups.format_help_text" class="doc doc-heading">
2560
-<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code>            <span class="doc doc-object-name doc-function-name">format_help_text</span>
2561
-
2562
-
2563
-<a href="#derivepassphrase._internals.cli_machinery.CommandWithHelpGroups.format_help_text" class="headerlink" title="Permanent link">&para;</a></h3>
2564
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">format_help_text</span><span class="p">(</span>
2565
-    <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/stable/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/stable/api/#click.HelpFormatter">HelpFormatter</a></span>
2566
-<span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
2567
-</code></pre></div>
2568
-
2569
-    <div class="doc doc-contents ">
2570
-
2571
-        <p>Format the help text prologue, if any.</p>
2572
-
2573
-
2574
-<p><span class="doc-section-title">Parameters:</span></p>
2575
-    <table>
2576
-      <thead>
2577
-        <tr>
2578
-          <th>Name</th>
2579
-          <th>Type</th>
2580
-          <th>Description</th>
2581
-          <th>Default</th>
2582
-        </tr>
2583
-      </thead>
2584
-      <tbody>
2585
-          <tr class="doc-section-item">
2586
-            <td>
2587
-                <code>ctx</code>
2588
-            </td>
2589
-            <td>
2590
-                  <code><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/stable/api/#click.Context">Context</a></code>
2591
-            </td>
2592
-            <td>
2593
-              <div class="doc-md-description">
2594
-                <p>The click context.</p>
2595
-              </div>
2596
-            </td>
2597
-            <td>
2598
-                <em>required</em>
2599
-            </td>
2600
-          </tr>
2601
-          <tr class="doc-section-item">
2602
-            <td>
2603
-                <code>formatter</code>
2604
-            </td>
2605
-            <td>
2606
-                  <code><a class="autorefs autorefs-external" title="click.HelpFormatter" href="https://click.palletsprojects.com/en/stable/api/#click.HelpFormatter">HelpFormatter</a></code>
2607
-            </td>
2608
-            <td>
2609
-              <div class="doc-md-description">
2610
-                <p>The formatter for the <code>--help</code> listing.</p>
2611
-              </div>
2612
-            </td>
2613
-            <td>
2614
-                <em>required</em>
2615
-            </td>
2616
-          </tr>
2617
-      </tbody>
2618
-    </table>
2619
-
2620
-
2621
-    </div>
2622
-
2623
-</div>
2624
-
2625
-<div class="doc doc-object doc-function">
2626
-
2627
-
2628
-<h3 id="derivepassphrase._internals.cli_machinery.CommandWithHelpGroups.format_options" class="doc doc-heading">
2629
-<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code>            <span class="doc doc-object-name doc-function-name">format_options</span>
2630
-
2631
-
2632
-<a href="#derivepassphrase._internals.cli_machinery.CommandWithHelpGroups.format_options" class="headerlink" title="Permanent link">&para;</a></h3>
2633
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">format_options</span><span class="p">(</span>
2634
-    <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/stable/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/stable/api/#click.HelpFormatter">HelpFormatter</a></span>
2635
-<span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
2636
-</code></pre></div>
2637
-
2638
-    <div class="doc doc-contents ">
2639
-
2640
-        <p>Format options on the help listing, grouped into sections.</p>
2641
-<p>This is a callback for <a class="autorefs autorefs-external" href="https://click.palletsprojects.com/en/stable/api/#click.Command.get_help"><code>click.Command.get_help</code></a> that
2642
-implements the <code>--help</code> listing, by calling appropriate methods
2643
-of the <code>formatter</code>.  We list all options (like the base
2644
-implementation), but grouped into sections according to the
2645
-concrete <a class="autorefs autorefs-external" href="https://click.palletsprojects.com/en/stable/api/#click.Option"><code>click.Option</code></a> subclass being used.  If the option
2646
-is an instance of some subclass of <a class="autorefs autorefs-internal" title="            OptionGroupOption" href="#derivepassphrase._internals.cli_machinery.OptionGroupOption"><code>OptionGroupOption</code></a>, then
2647
-the section heading and the epilog are taken from the
2648
-<a class="autorefs autorefs-internal" title="            option_group_name
2649
-
2650
-
2651
-  
2652
-      class-attribute
2653
-      instance-attribute
2654
-  " href="#derivepassphrase._internals.cli_machinery.OptionGroupOption.option_group_name"><code>option_group_name</code></a> and
2655
-<a class="autorefs autorefs-internal" title="            epilog
2656
-
2657
-
2658
-  
2659
-      class-attribute
2660
-      instance-attribute
2661
-  " href="#derivepassphrase._internals.cli_machinery.OptionGroupOption.epilog"><code>epilog</code></a> attributes; otherwise, the
2662
-section heading is &ldquo;Options&rdquo; (or &ldquo;Other options&rdquo; if there are
2663
-other option groups) and the epilog is empty.</p>
2664
-<p>We unconditionally call <a class="autorefs autorefs-internal" title="            format_commands" href="#derivepassphrase._internals.cli_machinery.CommandWithHelpGroups.format_commands"><code>format_commands</code></a>, and rely on it to
2665
-act as a no-op if we aren&rsquo;t actually a <a class="autorefs autorefs-external" href="https://click.palletsprojects.com/en/stable/api/#click.MultiCommand"><code>click.MultiCommand</code></a>.</p>
2666
-
2667
-
2668
-<p><span class="doc-section-title">Parameters:</span></p>
2669
-    <table>
2670
-      <thead>
2671
-        <tr>
2672
-          <th>Name</th>
2673
-          <th>Type</th>
2674
-          <th>Description</th>
2675
-          <th>Default</th>
2676
-        </tr>
2677
-      </thead>
2678
-      <tbody>
2679
-          <tr class="doc-section-item">
2680
-            <td>
2681
-                <code>ctx</code>
2682
-            </td>
2683
-            <td>
2684
-                  <code><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/stable/api/#click.Context">Context</a></code>
2685
-            </td>
2686
-            <td>
2687
-              <div class="doc-md-description">
2688
-                <p>The click context.</p>
2689
-              </div>
2690
-            </td>
2691
-            <td>
2692
-                <em>required</em>
2693
-            </td>
2694
-          </tr>
2695
-          <tr class="doc-section-item">
2696
-            <td>
2697
-                <code>formatter</code>
2698
-            </td>
2699
-            <td>
2700
-                  <code><a class="autorefs autorefs-external" title="click.HelpFormatter" href="https://click.palletsprojects.com/en/stable/api/#click.HelpFormatter">HelpFormatter</a></code>
2701
-            </td>
2702
-            <td>
2703
-              <div class="doc-md-description">
2704
-                <p>The formatter for the <code>--help</code> listing.</p>
2705
-              </div>
2706
-            </td>
2707
-            <td>
2708
-                <em>required</em>
2709
-            </td>
2710
-          </tr>
2711
-      </tbody>
2712
-    </table>
2713
-
2714
-
2715
-    </div>
2716
-
2717
-</div>
2718
-
2719
-<div class="doc doc-object doc-function">
2720
-
2721
-
2722
-<h3 id="derivepassphrase._internals.cli_machinery.CommandWithHelpGroups.format_commands" class="doc doc-heading">
2723
-<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code>            <span class="doc doc-object-name doc-function-name">format_commands</span>
2724
-
2725
-
2726
-<a href="#derivepassphrase._internals.cli_machinery.CommandWithHelpGroups.format_commands" class="headerlink" title="Permanent link">&para;</a></h3>
2727
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">format_commands</span><span class="p">(</span>
2728
-    <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/stable/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/stable/api/#click.HelpFormatter">HelpFormatter</a></span>
2729
-<span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
2730
-</code></pre></div>
2731
-
2732
-    <div class="doc doc-contents ">
2733
-
2734
-        <p>Format the subcommands, if any.</p>
2735
-<p>If called on a command object that isn&rsquo;t derived from
2736
-<a class="autorefs autorefs-external" href="https://click.palletsprojects.com/en/stable/api/#click.Group"><code>click.Group</code></a>, then do nothing.</p>
2737
-
2738
-
2739
-<p><span class="doc-section-title">Parameters:</span></p>
2740
-    <table>
2741
-      <thead>
2742
-        <tr>
2743
-          <th>Name</th>
2744
-          <th>Type</th>
2745
-          <th>Description</th>
2746
-          <th>Default</th>
2747
-        </tr>
2748
-      </thead>
2749
-      <tbody>
2750
-          <tr class="doc-section-item">
2751
-            <td>
2752
-                <code>ctx</code>
2753
-            </td>
2754
-            <td>
2755
-                  <code><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/stable/api/#click.Context">Context</a></code>
2756
-            </td>
2757
-            <td>
2758
-              <div class="doc-md-description">
2759
-                <p>The click context.</p>
2760
-              </div>
2761
-            </td>
2762
-            <td>
2763
-                <em>required</em>
2764
-            </td>
2765
-          </tr>
2766
-          <tr class="doc-section-item">
2767
-            <td>
2768
-                <code>formatter</code>
2769
-            </td>
2770
-            <td>
2771
-                  <code><a class="autorefs autorefs-external" title="click.HelpFormatter" href="https://click.palletsprojects.com/en/stable/api/#click.HelpFormatter">HelpFormatter</a></code>
2772
-            </td>
2773
-            <td>
2774
-              <div class="doc-md-description">
2775
-                <p>The formatter for the <code>--help</code> listing.</p>
2776
-              </div>
2777
-            </td>
2778
-            <td>
2779
-                <em>required</em>
2780
-            </td>
2781
-          </tr>
2782
-      </tbody>
2783
-    </table>
2784
-
2785
-
2786
-    </div>
2787
-
2788
-</div>
2789
-
2790
-<div class="doc doc-object doc-function">
2791
-
2792
-
2793
-<h3 id="derivepassphrase._internals.cli_machinery.CommandWithHelpGroups.format_epilog" class="doc doc-heading">
2794
-<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code>            <span class="doc doc-object-name doc-function-name">format_epilog</span>
2795
-
2796
-
2797
-<a href="#derivepassphrase._internals.cli_machinery.CommandWithHelpGroups.format_epilog" class="headerlink" title="Permanent link">&para;</a></h3>
2798
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">format_epilog</span><span class="p">(</span>
2799
-    <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/stable/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/stable/api/#click.HelpFormatter">HelpFormatter</a></span>
2800
-<span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
2801
-</code></pre></div>
2802
-
2803
-    <div class="doc doc-contents ">
2804
-
2805
-        <p>Format the epilog, if any.</p>
2806
-
2807
-
2808
-<p><span class="doc-section-title">Parameters:</span></p>
2809
-    <table>
2810
-      <thead>
2811
-        <tr>
2812
-          <th>Name</th>
2813
-          <th>Type</th>
2814
-          <th>Description</th>
2815
-          <th>Default</th>
2816
-        </tr>
2817
-      </thead>
2818
-      <tbody>
2819
-          <tr class="doc-section-item">
2820
-            <td>
2821
-                <code>ctx</code>
2822
-            </td>
2823
-            <td>
2824
-                  <code><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/stable/api/#click.Context">Context</a></code>
2825
-            </td>
2826
-            <td>
2827
-              <div class="doc-md-description">
2828
-                <p>The click context.</p>
2829
-              </div>
2830
-            </td>
2831
-            <td>
2832
-                <em>required</em>
2833
-            </td>
2834
-          </tr>
2835
-          <tr class="doc-section-item">
2836
-            <td>
2837
-                <code>formatter</code>
2838
-            </td>
2839
-            <td>
2840
-                  <code><a class="autorefs autorefs-external" title="click.HelpFormatter" href="https://click.palletsprojects.com/en/stable/api/#click.HelpFormatter">HelpFormatter</a></code>
2841
-            </td>
2842
-            <td>
2843
-              <div class="doc-md-description">
2844
-                <p>The formatter for the <code>--help</code> listing.</p>
2845
-              </div>
2846
-            </td>
2847
-            <td>
2848
-                <em>required</em>
2849
-            </td>
2850
-          </tr>
2851
-      </tbody>
2852
-    </table>
2853
-
2854
-
2855
-    </div>
2856
-
2857
-</div>
2858
-
2859
-
2860
-
2861
-  </div>
2862
-
2863
-    </div>
2864
-
2865
-</div>
2866
-
2867
-<div class="doc doc-object doc-class">
2868
-
2869
-
2870
-
2871
-<h2 id="derivepassphrase._internals.cli_machinery.DefaultToVaultGroup" class="doc doc-heading">
2872
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">DefaultToVaultGroup</span>
2873
-
2874
-
2875
-<a href="#derivepassphrase._internals.cli_machinery.DefaultToVaultGroup" class="headerlink" title="Permanent link">&para;</a></h2>
2876
-
2877
-
2878
-    <div class="doc doc-contents ">
2879
-            <p class="doc doc-class-bases">
2880
-              Bases: <code><a class="autorefs autorefs-internal" title="            CommandWithHelpGroups (derivepassphrase._internals.cli_machinery.CommandWithHelpGroups)" href="#derivepassphrase._internals.cli_machinery.CommandWithHelpGroups">CommandWithHelpGroups</a></code>, <code><a class="autorefs autorefs-external" title="click.Group" href="https://click.palletsprojects.com/en/stable/api/#click.Group">Group</a></code></p>
2881
-
2882
-
2883
-
2884
-        <p>A helper class to implement the default-to-&ldquo;vault&rdquo;-subcommand behavior.</p>
2885
-<p>Modifies internal <a class="autorefs autorefs-external" href="https://click.palletsprojects.com/en/stable/api/#click.MultiCommand"><code>click.MultiCommand</code></a> methods, and thus is both
2886
-an implementation detail and a kludge.</p>
2887
-
2888
-
2889
-
2890
-
2891
-
2892
-
2893
-
2894
-
2895
-
2896
-
2897
-  <div class="doc doc-children">
2898
-
2899
-
2900
-
2901
-
2902
-
2903
-
2904
-
2905
-
2906
-
2907
-<div class="doc doc-object doc-function">
2908
-
2909
-
2910
-<h3 id="derivepassphrase._internals.cli_machinery.DefaultToVaultGroup.resolve_command" class="doc doc-heading">
2911
-<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code>            <span class="doc doc-object-name doc-function-name">resolve_command</span>
2912
-
2913
-
2914
-<a href="#derivepassphrase._internals.cli_machinery.DefaultToVaultGroup.resolve_command" class="headerlink" title="Permanent link">&para;</a></h3>
2915
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">resolve_command</span><span class="p">(</span>
2916
-    <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/stable/api/#click.Context">Context</a></span><span class="p">,</span> <span class="n">args</span><span class="p">:</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>
2917
-<span class="p">)</span> <span class="o">-&gt;</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#tuple">tuple</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="o">|</span> <span class="kc">None</span><span class="p">,</span> <span class="n"><a class="autorefs autorefs-external" title="click.Command" href="https://click.palletsprojects.com/en/stable/api/#click.Command">Command</a></span> <span class="o">|</span> <span class="kc">None</span><span class="p">,</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>
2918
-</code></pre></div>
2919
-
2920
-    <div class="doc doc-contents ">
2921
-
2922
-        <p>Resolve a command, defaulting to &ldquo;vault&rdquo; instead of erroring out.</p>
2923
-
2924
-
2925
-    </div>
2926
-
2927
-</div>
2928
-
2929
-
2930
-
2931
-  </div>
2932
-
2933
-    </div>
2934
-
2935
-</div>
2936
-
2937
-<div class="doc doc-object doc-class">
2938
-
2939
-
2940
-
2941
-<h2 id="derivepassphrase._internals.cli_machinery.TopLevelCLIEntryPoint" class="doc doc-heading">
2942
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">TopLevelCLIEntryPoint</span>
2943
-
2944
-
2945
-<a href="#derivepassphrase._internals.cli_machinery.TopLevelCLIEntryPoint" class="headerlink" title="Permanent link">&para;</a></h2>
2946
-
2947
-
2948
-    <div class="doc doc-contents ">
2949
-            <p class="doc doc-class-bases">
2950
-              Bases: <code><a class="autorefs autorefs-internal" title="            DefaultToVaultGroup (derivepassphrase._internals.cli_machinery.DefaultToVaultGroup)" href="#derivepassphrase._internals.cli_machinery.DefaultToVaultGroup">DefaultToVaultGroup</a></code></p>
2951
-
2952
-
2953
-
2954
-        <p>A minor variation of DefaultToVaultGroup for the top-level command.</p>
2955
-<p>When called as a function, this sets up the environment properly
2956
-before invoking the actual callbacks.  Currently, this means setting
2957
-up the logging subsystem and the delegation of Python warnings to
2958
-the logging subsystem.</p>
2959
-<p>The environment setup can be bypassed by calling the <code>.main</code> method
2960
-directly.</p>
2961
-
2962
-
2963
-
2964
-
2965
-
2966
-
2967
-
2968
-
2969
-
2970
-
2971
-  <div class="doc doc-children">
2972
-
2973
-
2974
-
2975
-
2976
-
2977
-
2978
-
2979
-
2980
-
2981
-<div class="doc doc-object doc-function">
2982
-
2983
-
2984
-<h3 id="derivepassphrase._internals.cli_machinery.TopLevelCLIEntryPoint.__call__" class="doc doc-heading">
2985
-<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code>            <span class="doc doc-object-name doc-function-name">__call__</span>
2986
-
2987
-
2988
-<a href="#derivepassphrase._internals.cli_machinery.TopLevelCLIEntryPoint.__call__" class="headerlink" title="Permanent link">&para;</a></h3>
2989
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">__call__</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> <span class="o">-&gt;</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>
2990
-</code></pre></div>
2991
-
2992
-    <div class="doc doc-contents ">
2993
-
2994
-        
2995
-
2996
-
2997
-    </div>
2998
-
2999
-</div>
3000
-
3001
-
3002
-
3003
-  </div>
3004
-
3005
-    </div>
3006
-
3007
-</div>
3008
-
3009
-<div class="doc doc-object doc-class">
3010
-
3011
-
3012
-
3013
-<h2 id="derivepassphrase._internals.cli_machinery.PassphraseGenerationOption" class="doc doc-heading">
3014
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">PassphraseGenerationOption</span>
3015
-
3016
-
3017
-<a href="#derivepassphrase._internals.cli_machinery.PassphraseGenerationOption" class="headerlink" title="Permanent link">&para;</a></h2>
3018
-<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>
3019
-</code></pre></div>
3020
-
3021
-    <div class="doc doc-contents ">
3022
-            <p class="doc doc-class-bases">
3023
-              Bases: <code><a class="autorefs autorefs-internal" title="            OptionGroupOption (derivepassphrase._internals.cli_machinery.OptionGroupOption)" href="#derivepassphrase._internals.cli_machinery.OptionGroupOption">OptionGroupOption</a></code></p>
3024
-
3025
-
3026
-
3027
-        <p>Passphrase generation options for the CLI.</p>
3028
-
3029
-
3030
-
3031
-
3032
-
3033
-
3034
-
3035
-
3036
-
3037
-
3038
-  <div class="doc doc-children">
3039
-
3040
-
3041
-
3042
-
3043
-
3044
-
3045
-
3046
-
3047
-
3048
-
3049
-
3050
-  </div>
3051
-
3052
-    </div>
3053
-
3054
-</div>
3055
-
3056
-<div class="doc doc-object doc-class">
3057
-
3058
-
3059
-
3060
-<h2 id="derivepassphrase._internals.cli_machinery.ConfigurationOption" class="doc doc-heading">
3061
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">ConfigurationOption</span>
3062
-
3063
-
3064
-<a href="#derivepassphrase._internals.cli_machinery.ConfigurationOption" class="headerlink" title="Permanent link">&para;</a></h2>
3065
-<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>
3066
-</code></pre></div>
3067
-
3068
-    <div class="doc doc-contents ">
3069
-            <p class="doc doc-class-bases">
3070
-              Bases: <code><a class="autorefs autorefs-internal" title="            OptionGroupOption (derivepassphrase._internals.cli_machinery.OptionGroupOption)" href="#derivepassphrase._internals.cli_machinery.OptionGroupOption">OptionGroupOption</a></code></p>
3071
-
3072
-
3073
-
3074
-        <p>Configuration options for the CLI.</p>
3075
-
3076
-
3077
-
3078
-
3079
-
3080
-
3081
-
3082
-
3083
-
3084
-
3085
-  <div class="doc doc-children">
3086
-
3087
-
3088
-
3089
-
3090
-
3091
-
3092
-
3093
-
3094
-
3095
-
3096
-
3097
-  </div>
3098
-
3099
-    </div>
3100
-
3101
-</div>
3102
-
3103
-<div class="doc doc-object doc-class">
3104
-
3105
-
3106
-
3107
-<h2 id="derivepassphrase._internals.cli_machinery.StorageManagementOption" class="doc doc-heading">
3108
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">StorageManagementOption</span>
3109
-
3110
-
3111
-<a href="#derivepassphrase._internals.cli_machinery.StorageManagementOption" class="headerlink" title="Permanent link">&para;</a></h2>
3112
-<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>
3113
-</code></pre></div>
3114
-
3115
-    <div class="doc doc-contents ">
3116
-            <p class="doc doc-class-bases">
3117
-              Bases: <code><a class="autorefs autorefs-internal" title="            OptionGroupOption (derivepassphrase._internals.cli_machinery.OptionGroupOption)" href="#derivepassphrase._internals.cli_machinery.OptionGroupOption">OptionGroupOption</a></code></p>
3118
-
3119
-
3120
-
3121
-        <p>Storage management options for the CLI.</p>
3122
-
3123
-
3124
-
3125
-
3126
-
3127
-
3128
-
3129
-
3130
-
3131
-
3132
-  <div class="doc doc-children">
3133
-
3134
-
3135
-
3136
-
3137
-
3138
-
3139
-
3140
-
3141
-
3142
-
3143
-
3144
-  </div>
3145
-
3146
-    </div>
3147
-
3148
-</div>
3149
-
3150
-<div class="doc doc-object doc-class">
3151
-
3152
-
3153
-
3154
-<h2 id="derivepassphrase._internals.cli_machinery.CompatibilityOption" class="doc doc-heading">
3155
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">CompatibilityOption</span>
3156
-
3157
-
3158
-<a href="#derivepassphrase._internals.cli_machinery.CompatibilityOption" class="headerlink" title="Permanent link">&para;</a></h2>
3159
-<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>
3160
-</code></pre></div>
3161
-
3162
-    <div class="doc doc-contents ">
3163
-            <p class="doc doc-class-bases">
3164
-              Bases: <code><a class="autorefs autorefs-internal" title="            OptionGroupOption (derivepassphrase._internals.cli_machinery.OptionGroupOption)" href="#derivepassphrase._internals.cli_machinery.OptionGroupOption">OptionGroupOption</a></code></p>
3165
-
3166
-
3167
-
3168
-        <p>Compatibility and incompatibility options for the CLI.</p>
3169
-
3170
-
3171
-
3172
-
3173
-
3174
-
3175
-
3176
-
3177
-
3178
-
3179
-  <div class="doc doc-children">
3180
-
3181
-
3182
-
3183
-
3184
-
3185
-
3186
-
3187
-
3188
-
3189
-
3190
-
3191
-  </div>
3192
-
3193
-    </div>
3194
-
3195
-</div>
3196
-
3197
-<div class="doc doc-object doc-class">
3198
-
3199
-
3200
-
3201
-<h2 id="derivepassphrase._internals.cli_machinery.LoggingOption" class="doc doc-heading">
3202
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">LoggingOption</span>
3203
-
3204
-
3205
-<a href="#derivepassphrase._internals.cli_machinery.LoggingOption" class="headerlink" title="Permanent link">&para;</a></h2>
3206
-<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>
3207
-</code></pre></div>
3208
-
3209
-    <div class="doc doc-contents ">
3210
-            <p class="doc doc-class-bases">
3211
-              Bases: <code><a class="autorefs autorefs-internal" title="            OptionGroupOption (derivepassphrase._internals.cli_machinery.OptionGroupOption)" href="#derivepassphrase._internals.cli_machinery.OptionGroupOption">OptionGroupOption</a></code></p>
3212
-
3213
-
3214
-
3215
-        <p>Logging options for the CLI.</p>
3216
-
3217
-
3218
-
3219
-
3220
-
3221
-
3222
-
3223
-
3224
-
3225
-
3226
-  <div class="doc doc-children">
3227
-
3228
-
3229
-
3230
-
3231
-
3232
-
3233
-
3234
-
3235
-
3236
-
3237
-
3238
-  </div>
3239
-
3240
-    </div>
3241
-
3242
-</div>
3243
-
3244
-<div class="doc doc-object doc-class">
3245
-
3246
-
3247
-
3248
-<h2 id="derivepassphrase._internals.cli_machinery.ZshComplete" class="doc doc-heading">
3249
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">ZshComplete</span>
3250
-
3251
-
3252
-<a href="#derivepassphrase._internals.cli_machinery.ZshComplete" class="headerlink" title="Permanent link">&para;</a></h2>
3253
-
3254
-
3255
-    <div class="doc doc-contents ">
3256
-            <p class="doc doc-class-bases">
3257
-              Bases: <code><span title="click.shell_completion.ZshComplete">ZshComplete</span></code></p>
3258
-
3259
-
3260
-
3261
-        <p>Zsh completion class that supports colons.</p>
3262
-<p><code>click</code>&rsquo;s Zsh completion class (at least v8.1.7 and v8.1.8) uses
3263
-some completion helper functions (provided by Zsh) that parse each
3264
-completion item into value-description pairs, separated by a colon.
3265
-Other completion helper functions don&rsquo;t.  Correspondingly, any
3266
-internal colons in the completion item&rsquo;s value sometimes need to be
3267
-escaped, and sometimes don&rsquo;t.</p>
3268
-<p>The &ldquo;right&rdquo; way to fix this is to modify the Zsh completion script
3269
-to only use one type of serialization: either escaped, or unescaped.
3270
-However, the Zsh completion script itself may already be installed
3271
-in the user&rsquo;s Zsh settings, and we have no way of knowing that.
3272
-Therefore, it is better to change the <code>format_completion</code> method to
3273
-adaptively and &ldquo;smartly&rdquo; emit colon-escaped output or not, based on
3274
-whether the completion script will be using it.</p>
3275
-
3276
-
3277
-
3278
-
3279
-
3280
-
3281
-
3282
-
3283
-
3284
-
3285
-  <div class="doc doc-children">
3286
-
3287
-
3288
-
3289
-
3290
-
3291
-
3292
-
3293
-
3294
-
3295
-<div class="doc doc-object doc-function">
3296
-
3297
-
3298
-<h3 id="derivepassphrase._internals.cli_machinery.ZshComplete.format_completion" class="doc doc-heading">
3299
-<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code>            <span class="doc doc-object-name doc-function-name">format_completion</span>
3300
-
3301
-
3302
-<a href="#derivepassphrase._internals.cli_machinery.ZshComplete.format_completion" class="headerlink" title="Permanent link">&para;</a></h3>
3303
-<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/stable/api/#click.shell_completion.CompletionItem">CompletionItem</a></span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></span>
3304
-</code></pre></div>
3305
-
3306
-    <div class="doc doc-contents ">
3307
-
3308
-        <p>Return a suitable serialization of the CompletionItem.</p>
3309
-<p>This serialization ensures colons in the item value are properly
3310
-escaped if and only if the completion script will attempt to
3311
-pass a colon-separated key/description pair to the underlying
3312
-Zsh machinery.  This is the case if and only if the help text is
3313
-non-degenerate.</p>
3314
-
3315
-
3316
-    </div>
3317
-
3318
-</div>
3319
-
3320
-
3321
-
3322
-  </div>
3323
-
3324
-    </div>
3325
-
3326
-</div>
3327
-
3328
-
3329
-<div class="doc doc-object doc-function">
3330
-
3331
-
3332
-<h2 id="derivepassphrase._internals.cli_machinery.adjust_logging_level" class="doc doc-heading">
3333
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">adjust_logging_level</span>
3334
-
3335
-
3336
-<a href="#derivepassphrase._internals.cli_machinery.adjust_logging_level" class="headerlink" title="Permanent link">&para;</a></h2>
3337
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">adjust_logging_level</span><span class="p">(</span>
3338
-    <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/stable/api/#click.Context">Context</a></span><span class="p">,</span>
3339
-    <span class="o">/</span><span class="p">,</span>
3340
-    <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/stable/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>
3341
-    <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>
3342
-<span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
3343
-</code></pre></div>
3344
-
3345
-    <div class="doc doc-contents ">
3346
-
3347
-        <p>Change the logs that are emitted to standard error.</p>
3348
-<p>This modifies the <a class="autorefs autorefs-internal" title="            StandardCLILogging" href="#derivepassphrase._internals.cli_machinery.StandardCLILogging"><code>StandardCLILogging</code></a> settings such that log
3349
-records at the respective level are emitted, based on the <code>param</code>
3350
-and the <code>value</code>.</p>
3351
-
3352
-
3353
-    </div>
3354
-
3355
-</div>
3356
-
3357
-<div class="doc doc-object doc-function">
3358
-
3359
-
3360
-<h2 id="derivepassphrase._internals.cli_machinery.color_forcing_callback" class="doc doc-heading">
3361
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">color_forcing_callback</span>
3362
-
3363
-
3364
-<a href="#derivepassphrase._internals.cli_machinery.color_forcing_callback" class="headerlink" title="Permanent link">&para;</a></h2>
3365
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">color_forcing_callback</span><span class="p">(</span>
3366
-    <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/stable/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/stable/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>
3367
-<span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span>
3368
-</code></pre></div>
3369
-
3370
-    <div class="doc doc-contents ">
3371
-
3372
-        <p>Disable automatic color (and text highlighting).</p>
3373
-<p>Ideally, we would default to color and text styling if outputting to
3374
-a TTY, or monochrome/unstyled otherwise. We would also support the
3375
-<code>NO_COLOR</code> and <code>FORCE_COLOR</code> environment variables to override this
3376
-auto-detection, and perhaps the <code>TTY_COMPATIBLE</code> variable too.</p>
3377
-<p>Alas, this is not sensible to support at the moment, because the
3378
-conventions are still in flux. And settling on a specific
3379
-interpretation of the conventions would likely prove very difficult
3380
-to change later on in a backward-compatible way. We thus opt for
3381
-a conservative approach and use device-indepedendent text output
3382
-without any color or text styling whatsoever.</p>
3383
-
3384
-
3385
-    </div>
3386
-
3387
-</div>
3388
-
3389
-<div class="doc doc-object doc-function">
3390
-
3391
-
3392
-<h2 id="derivepassphrase._internals.cli_machinery.validate_occurrence_constraint" class="doc doc-heading">
3393
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">validate_occurrence_constraint</span>
3394
-
3395
-
3396
-<a href="#derivepassphrase._internals.cli_machinery.validate_occurrence_constraint" class="headerlink" title="Permanent link">&para;</a></h2>
3397
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">validate_occurrence_constraint</span><span class="p">(</span>
3398
-    <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/stable/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/stable/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>
3399
-<span class="p">)</span> <span class="o">-&gt;</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>
3400
-</code></pre></div>
3401
-
3402
-    <div class="doc doc-contents ">
3403
-
3404
-        <p>Check that the occurrence constraint is valid (int, 0 or larger).</p>
3405
-
3406
-
3407
-<p><span class="doc-section-title">Parameters:</span></p>
3408
-    <table>
3409
-      <thead>
3410
-        <tr>
3411
-          <th>Name</th>
3412
-          <th>Type</th>
3413
-          <th>Description</th>
3414
-          <th>Default</th>
3415
-        </tr>
3416
-      </thead>
3417
-      <tbody>
3418
-          <tr class="doc-section-item">
3419
-            <td>
3420
-                <code>ctx</code>
3421
-            </td>
3422
-            <td>
3423
-                  <code><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/stable/api/#click.Context">Context</a></code>
3424
-            </td>
3425
-            <td>
3426
-              <div class="doc-md-description">
3427
-                <p>The <code>click</code> context.</p>
3428
-              </div>
3429
-            </td>
3430
-            <td>
3431
-                <em>required</em>
3432
-            </td>
3433
-          </tr>
3434
-          <tr class="doc-section-item">
3435
-            <td>
3436
-                <code>param</code>
3437
-            </td>
3438
-            <td>
3439
-                  <code><a class="autorefs autorefs-external" title="click.Parameter" href="https://click.palletsprojects.com/en/stable/api/#click.Parameter">Parameter</a></code>
3440
-            </td>
3441
-            <td>
3442
-              <div class="doc-md-description">
3443
-                <p>The current command-line parameter.</p>
3444
-              </div>
3445
-            </td>
3446
-            <td>
3447
-                <em>required</em>
3448
-            </td>
3449
-          </tr>
3450
-          <tr class="doc-section-item">
3451
-            <td>
3452
-                <code>value</code>
3453
-            </td>
3454
-            <td>
3455
-                  <code><a class="autorefs autorefs-external" title="typing_extensions.Any" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Any">Any</a></code>
3456
-            </td>
3457
-            <td>
3458
-              <div class="doc-md-description">
3459
-                <p>The parameter value to be checked.</p>
3460
-              </div>
3461
-            </td>
3462
-            <td>
3463
-                <em>required</em>
3464
-            </td>
3465
-          </tr>
3466
-      </tbody>
3467
-    </table>
3468
-
3469
-
3470
-    <p><span class="doc-section-title">Returns:</span></p>
3471
-    <table>
3472
-      <thead>
3473
-        <tr>
3474
-          <th>Type</th>
3475
-          <th>Description</th>
3476
-        </tr>
3477
-      </thead>
3478
-      <tbody>
3479
-          <tr class="doc-section-item">
3480
-            <td>
3481
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#int">int</a> | None</code>
3482
-            </td>
3483
-            <td>
3484
-              <div class="doc-md-description">
3485
-                <p>The parsed parameter value.</p>
3486
-              </div>
3487
-            </td>
3488
-          </tr>
3489
-      </tbody>
3490
-    </table>
3491
-
3492
-
3493
-<p><span class="doc-section-title">Raises:</span></p>
3494
-    <table>
3495
-      <thead>
3496
-        <tr>
3497
-          <th>Type</th>
3498
-          <th>Description</th>
3499
-        </tr>
3500
-      </thead>
3501
-      <tbody>
3502
-          <tr class="doc-section-item">
3503
-            <td>
3504
-                  <code><a class="autorefs autorefs-external" title="click.BadParameter" href="https://click.palletsprojects.com/en/stable/api/#click.BadParameter">BadParameter</a></code>
3505
-            </td>
3506
-            <td>
3507
-              <div class="doc-md-description">
3508
-                <p>The parameter value is invalid.</p>
3509
-              </div>
3510
-            </td>
3511
-          </tr>
3512
-      </tbody>
3513
-    </table>
3514
-
3515
-
3516
-    </div>
3517
-
3518
-</div>
3519
-
3520
-<div class="doc doc-object doc-function">
3521
-
3522
-
3523
-<h2 id="derivepassphrase._internals.cli_machinery.validate_length" class="doc doc-heading">
3524
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">validate_length</span>
3525
-
3526
-
3527
-<a href="#derivepassphrase._internals.cli_machinery.validate_length" class="headerlink" title="Permanent link">&para;</a></h2>
3528
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">validate_length</span><span class="p">(</span>
3529
-    <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/stable/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/stable/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>
3530
-<span class="p">)</span> <span class="o">-&gt;</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>
3531
-</code></pre></div>
3532
-
3533
-    <div class="doc doc-contents ">
3534
-
3535
-        <p>Check that the length is valid (int, 1 or larger).</p>
3536
-
3537
-
3538
-<p><span class="doc-section-title">Parameters:</span></p>
3539
-    <table>
3540
-      <thead>
3541
-        <tr>
3542
-          <th>Name</th>
3543
-          <th>Type</th>
3544
-          <th>Description</th>
3545
-          <th>Default</th>
3546
-        </tr>
3547
-      </thead>
3548
-      <tbody>
3549
-          <tr class="doc-section-item">
3550
-            <td>
3551
-                <code>ctx</code>
3552
-            </td>
3553
-            <td>
3554
-                  <code><a class="autorefs autorefs-external" title="click.Context" href="https://click.palletsprojects.com/en/stable/api/#click.Context">Context</a></code>
3555
-            </td>
3556
-            <td>
3557
-              <div class="doc-md-description">
3558
-                <p>The <code>click</code> context.</p>
3559
-              </div>
3560
-            </td>
3561
-            <td>
3562
-                <em>required</em>
3563
-            </td>
3564
-          </tr>
3565
-          <tr class="doc-section-item">
3566
-            <td>
3567
-                <code>param</code>
3568
-            </td>
3569
-            <td>
3570
-                  <code><a class="autorefs autorefs-external" title="click.Parameter" href="https://click.palletsprojects.com/en/stable/api/#click.Parameter">Parameter</a></code>
3571
-            </td>
3572
-            <td>
3573
-              <div class="doc-md-description">
3574
-                <p>The current command-line parameter.</p>
3575
-              </div>
3576
-            </td>
3577
-            <td>
3578
-                <em>required</em>
3579
-            </td>
3580
-          </tr>
3581
-          <tr class="doc-section-item">
3582
-            <td>
3583
-                <code>value</code>
3584
-            </td>
3585
-            <td>
3586
-                  <code><a class="autorefs autorefs-external" title="typing_extensions.Any" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Any">Any</a></code>
3587
-            </td>
3588
-            <td>
3589
-              <div class="doc-md-description">
3590
-                <p>The parameter value to be checked.</p>
3591
-              </div>
3592
-            </td>
3593
-            <td>
3594
-                <em>required</em>
3595
-            </td>
3596
-          </tr>
3597
-      </tbody>
3598
-    </table>
3599
-
3600
-
3601
-    <p><span class="doc-section-title">Returns:</span></p>
3602
-    <table>
3603
-      <thead>
3604
-        <tr>
3605
-          <th>Type</th>
3606
-          <th>Description</th>
3607
-        </tr>
3608
-      </thead>
3609
-      <tbody>
3610
-          <tr class="doc-section-item">
3611
-            <td>
3612
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#int">int</a> | None</code>
3613
-            </td>
3614
-            <td>
3615
-              <div class="doc-md-description">
3616
-                <p>The parsed parameter value.</p>
3617
-              </div>
3618
-            </td>
3619
-          </tr>
3620
-      </tbody>
3621
-    </table>
3622
-
3623
-
3624
-<p><span class="doc-section-title">Raises:</span></p>
3625
-    <table>
3626
-      <thead>
3627
-        <tr>
3628
-          <th>Type</th>
3629
-          <th>Description</th>
3630
-        </tr>
3631
-      </thead>
3632
-      <tbody>
3633
-          <tr class="doc-section-item">
3634
-            <td>
3635
-                  <code><a class="autorefs autorefs-external" title="click.BadParameter" href="https://click.palletsprojects.com/en/stable/api/#click.BadParameter">BadParameter</a></code>
3636
-            </td>
3637
-            <td>
3638
-              <div class="doc-md-description">
3639
-                <p>The parameter value is invalid.</p>
3640
-              </div>
3641
-            </td>
3642
-          </tr>
3643
-      </tbody>
3644
-    </table>
3645
-
3646
-
3647
-    </div>
3648
-
3649
-</div>
3650
-
3651
-<div class="doc doc-object doc-function">
3652
-
3653
-
3654
-<h2 id="derivepassphrase._internals.cli_machinery.standard_logging_options" class="doc doc-heading">
3655
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">standard_logging_options</span>
3656
-
3657
-
3658
-<a href="#derivepassphrase._internals.cli_machinery.standard_logging_options" class="headerlink" title="Permanent link">&para;</a></h2>
3659
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">standard_logging_options</span><span class="p">(</span>
3660
-    <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._internals.cli_machinery.P">P</span></span><span class="p">,</span> <span class="n"><span title="derivepassphrase._internals.cli_machinery.R">R</span></span><span class="p">],</span>
3661
-<span class="p">)</span> <span class="o">-&gt;</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._internals.cli_machinery.P">P</span></span><span class="p">,</span> <span class="n"><span title="derivepassphrase._internals.cli_machinery.R">R</span></span><span class="p">]</span>
3662
-</code></pre></div>
3663
-
3664
-    <div class="doc doc-contents ">
3665
-
3666
-        <p>Decorate the function with standard logging click options.</p>
3667
-<p>Adds the three click options <code>-v</code>/<code>--verbose</code>, <code>-q</code>/<code>--quiet</code> and
3668
-<code>--debug</code>, which calls back into the <a class="autorefs autorefs-internal" title="            adjust_logging_level" href="#derivepassphrase._internals.cli_machinery.adjust_logging_level"><code>adjust_logging_level</code></a>
3669
-function (with different argument values).</p>
3670
-
3671
-
3672
-<p><span class="doc-section-title">Parameters:</span></p>
3673
-    <table>
3674
-      <thead>
3675
-        <tr>
3676
-          <th>Name</th>
3677
-          <th>Type</th>
3678
-          <th>Description</th>
3679
-          <th>Default</th>
3680
-        </tr>
3681
-      </thead>
3682
-      <tbody>
3683
-          <tr class="doc-section-item">
3684
-            <td>
3685
-                <code>f</code>
3686
-            </td>
3687
-            <td>
3688
-                  <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._internals.cli_machinery.P">P</span>, <span title="derivepassphrase._internals.cli_machinery.R">R</span>]</code>
3689
-            </td>
3690
-            <td>
3691
-              <div class="doc-md-description">
3692
-                <p>A callable to decorate.</p>
3693
-              </div>
3694
-            </td>
3695
-            <td>
3696
-                <em>required</em>
3697
-            </td>
3698
-          </tr>
3699
-      </tbody>
3700
-    </table>
3701
-
3702
-
3703
-    <p><span class="doc-section-title">Returns:</span></p>
3704
-    <table>
3705
-      <thead>
3706
-        <tr>
3707
-          <th>Type</th>
3708
-          <th>Description</th>
3709
-        </tr>
3710
-      </thead>
3711
-      <tbody>
3712
-          <tr class="doc-section-item">
3713
-            <td>
3714
-                  <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._internals.cli_machinery.P">P</span>, <span title="derivepassphrase._internals.cli_machinery.R">R</span>]</code>
3715
-            </td>
3716
-            <td>
3717
-              <div class="doc-md-description">
3718
-                <p>The decorated callable.</p>
3719
-              </div>
3720
-            </td>
3721
-          </tr>
3722
-      </tbody>
3723
-    </table>
3724
-
3725
-
3726
-    </div>
3727
-
3728
-</div>
3729
-
3730
-
3731
-
3732
-  </div>
3733
-
3734
-    </div>
3735
-
3736
-</div>
3737
-
3738
-
3739
-
3740
-
3741
-
3742
-
3743
-
3744
-
3745
-
3746
-
3747
-
3748
-
3749
-                
3750
-              </article>
3751
-            </div>
3752
-          
3753
-          
3754
-        </div>
3755
-        
3756
-      </main>
3757
-      
3758
-        <footer class="md-footer">
3759
-  
3760
-    
3761
-  
3762
-  <div class="md-footer-meta md-typeset">
3763
-    <div class="md-footer-meta__inner md-grid">
3764
-      <div class="md-copyright">
3765
-  
3766
-    <div class="md-copyright__highlight">
3767
-      Copyright &copy; 2025 Marco Ricci (the-13th-letter)
3768
-    </div>
3769
-  
3770
-  
3771
-    Made with
3772
-    <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
3773
-      Material for MkDocs
3774
-    </a>
3775
-    and
3776
-    <a href="https://mkdocstrings.github.io/python/" target="_blank" rel="noopener">
3777
-        mkdocstrings-python
3778
-    </a>
3779
-  
3780
-</div>
3781
-      
3782
-    </div>
3783
-  </div>
3784
-</footer>
3785
-      
3786
-    </div>
3787
-    <div class="md-dialog" data-md-component="dialog">
3788
-      <div class="md-dialog__inner md-typeset"></div>
3789
-    </div>
3790
-    
3791
-    
3792
-    
3793
-    
3794
-  </body>
3795
-</html>
3796 0
\ No newline at end of file
... ...
@@ -1,9127 +0,0 @@
1
-
2
-<!doctype html>
3
-<html lang="en" class="no-js">
4
-  <head>
5
-    
6
-      <meta charset="utf-8">
7
-      <meta name="viewport" content="width=device-width,initial-scale=1">
8
-      
9
-        <meta name="description" content="An almost faithful Python reimplementation of James Coglan's vault.">
10
-      
11
-      
12
-        <meta name="author" content="Marco Ricci">
13
-      
14
-      
15
-        <link rel="canonical" href="https://the13thletter.info/derivepassphrase/0.x/reference/derivepassphrase._internals.cli_messages/">
16
-      
17
-      
18
-      
19
-      
20
-      <link rel="icon" href="../../assets/images/favicon.png">
21
-      <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.14">
22
-    
23
-    
24
-      
25
-        <title>Derivepassphrase. internals.cli messages - derivepassphrase</title>
26
-      
27
-    
28
-    
29
-      <link rel="stylesheet" href="../../assets/stylesheets/main.342714a4.min.css">
30
-      
31
-      
32
-
33
-
34
-    
35
-    
36
-    
37
-  
38
-    
39
-    
40
-        <style>:root{--md-text-font:"Noto Sans";--md-code-font:"Noto Mono"}</style>
41
-  
42
-
43
-    
44
-      <link rel="stylesheet" href="../../assets/_mkdocstrings.css">
45
-    
46
-      <link rel="stylesheet" href="../../mkdocstrings_recommended_styles.css">
47
-    
48
-      <link rel="stylesheet" href="../../wishlist_styling.css">
49
-    
50
-    
51
-    
52
-    
53
-    
54
-  </head>
55
-  
56
-  
57
-    <body dir="ltr">
58
-  
59
-    
60
-    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
61
-    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
62
-    <label class="md-overlay" for="__drawer"></label>
63
-    <div data-md-component="skip">
64
-      
65
-        
66
-        <a href="#derivepassphrase._internals.cli_messages" class="md-skip">
67
-          Skip to content
68
-        </a>
69
-      
70
-    </div>
71
-    <div data-md-component="announce">
72
-      
73
-    </div>
74
-    
75
-      <div data-md-color-scheme="default" data-md-component="outdated" hidden>
76
-        
77
-      </div>
78
-    
79
-    
80
-      
81
-    
82
-    <div class="md-container" data-md-component="container">
83
-      
84
-      
85
-        
86
-          
87
-            
88
-<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
89
-  <div class="md-grid">
90
-    <ul class="md-tabs__list">
91
-      
92
-        
93
-  
94
-  
95
-  
96
-  
97
-    <li class="md-tabs__item">
98
-      <a href="../.." class="md-tabs__link">
99
-        
100
-  
101
-  
102
-    
103
-  
104
-  Overview
105
-
106
-      </a>
107
-    </li>
108
-  
109
-
110
-      
111
-        
112
-  
113
-  
114
-  
115
-  
116
-    
117
-    
118
-      <li class="md-tabs__item">
119
-        <a href="../../tutorials/" class="md-tabs__link">
120
-          
121
-  
122
-  
123
-    
124
-  
125
-  Tutorials & Examples
126
-
127
-        </a>
128
-      </li>
129
-    
130
-  
131
-
132
-      
133
-        
134
-  
135
-  
136
-  
137
-  
138
-    
139
-    
140
-      <li class="md-tabs__item">
141
-        <a href="../../how-tos/" class="md-tabs__link">
142
-          
143
-  
144
-  
145
-    
146
-  
147
-  How-Tos
148
-
149
-        </a>
150
-      </li>
151
-    
152
-  
153
-
154
-      
155
-        
156
-  
157
-  
158
-  
159
-  
160
-    
161
-    
162
-      <li class="md-tabs__item">
163
-        <a href="../" class="md-tabs__link">
164
-          
165
-  
166
-  
167
-    
168
-  
169
-  Reference
170
-
171
-        </a>
172
-      </li>
173
-    
174
-  
175
-
176
-      
177
-        
178
-  
179
-  
180
-  
181
-  
182
-    
183
-    
184
-      <li class="md-tabs__item">
185
-        <a href="../../explanation/" class="md-tabs__link">
186
-          
187
-  
188
-  
189
-    
190
-  
191
-  Design & Background
192
-
193
-        </a>
194
-      </li>
195
-    
196
-  
197
-
198
-      
199
-        
200
-  
201
-  
202
-  
203
-  
204
-    
205
-    
206
-      <li class="md-tabs__item">
207
-        <a href="../../changelog/" class="md-tabs__link">
208
-          
209
-  
210
-  
211
-    
212
-  
213
-  Changelog
214
-
215
-        </a>
216
-      </li>
217
-    
218
-  
219
-
220
-      
221
-        
222
-  
223
-  
224
-  
225
-  
226
-    
227
-    
228
-      <li class="md-tabs__item">
229
-        <a href="../../wishlist/" class="md-tabs__link">
230
-          
231
-  
232
-  
233
-    
234
-  
235
-  Wishlist
236
-
237
-        </a>
238
-      </li>
239
-    
240
-  
241
-
242
-      
243
-    </ul>
244
-  </div>
245
-</nav>
246
-          
247
-        
248
-      
249
-      <main class="md-main" data-md-component="main">
250
-        <div class="md-main__inner md-grid">
251
-          
252
-            
253
-              
254
-              <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
255
-                <div class="md-sidebar__scrollwrap">
256
-                  <div class="md-sidebar__inner">
257
-                    
258
-
259
-
260
-  
261
-
262
-
263
-<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
264
-  <label class="md-nav__title" for="__drawer">
265
-    <a href="../.." title="derivepassphrase" class="md-nav__button md-logo" aria-label="derivepassphrase" data-md-component="logo">
266
-      
267
-  
268
-  <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>
269
-
270
-    </a>
271
-    derivepassphrase
272
-  </label>
273
-  
274
-    <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
276
-  <div class="md-source__icon md-icon">
277
-    
278
-    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
279
-  </div>
280
-  <div class="md-source__repository">
281
-    the-13th-letter/derivepassphrase
282
-  </div>
283
-</a>
284
-    </div>
285
-  
286
-  <ul class="md-nav__list" data-md-scrollfix>
287
-    
288
-      
289
-      
290
-  
291
-  
292
-  
293
-  
294
-    <li class="md-nav__item">
295
-      <a href="../.." class="md-nav__link">
296
-        
297
-  
298
-  
299
-  <span class="md-ellipsis">
300
-    Overview
301
-    
302
-  </span>
303
-  
304
-
305
-      </a>
306
-    </li>
307
-  
308
-
309
-    
310
-      
311
-      
312
-  
313
-  
314
-  
315
-  
316
-    
317
-    
318
-      
319
-        
320
-          
321
-        
322
-      
323
-        
324
-      
325
-    
326
-    
327
-    
328
-      
329
-      
330
-        
331
-      
332
-    
333
-    
334
-    <li class="md-nav__item md-nav__item--nested">
335
-      
336
-        
337
-        
338
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
339
-        
340
-          
341
-          <div class="md-nav__link md-nav__container">
342
-            <a href="../../tutorials/" class="md-nav__link ">
343
-              
344
-  
345
-  
346
-  <span class="md-ellipsis">
347
-    Tutorials & Examples
348
-    
349
-  </span>
350
-  
351
-
352
-            </a>
353
-            
354
-              
355
-              <label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="0">
356
-                <span class="md-nav__icon md-icon"></span>
357
-              </label>
358
-            
359
-          </div>
360
-        
361
-        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
362
-          <label class="md-nav__title" for="__nav_2">
363
-            <span class="md-nav__icon md-icon"></span>
364
-            Tutorials & Examples
365
-          </label>
366
-          <ul class="md-nav__list" data-md-scrollfix>
367
-            
368
-              
369
-            
370
-              
371
-                
372
-  
373
-  
374
-  
375
-  
376
-    <li class="md-nav__item">
377
-      <a href="../../tutorials/basic-setup-passphrase/" class="md-nav__link">
378
-        
379
-  
380
-  
381
-  <span class="md-ellipsis">
382
-    Setting up derivepassphrase vault for three accounts, with a master passphrase
383
-    
384
-  </span>
385
-  
386
-
387
-      </a>
388
-    </li>
389
-  
390
-
391
-              
392
-            
393
-          </ul>
394
-        </nav>
395
-      
396
-    </li>
397
-  
398
-
399
-    
400
-      
401
-      
402
-  
403
-  
404
-  
405
-  
406
-    
407
-    
408
-      
409
-        
410
-          
411
-        
412
-      
413
-        
414
-      
415
-    
416
-    
417
-    
418
-      
419
-      
420
-        
421
-      
422
-    
423
-    
424
-    <li class="md-nav__item md-nav__item--nested">
425
-      
426
-        
427
-        
428
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
429
-        
430
-          
431
-          <div class="md-nav__link md-nav__container">
432
-            <a href="../../how-tos/" class="md-nav__link ">
433
-              
434
-  
435
-  
436
-  <span class="md-ellipsis">
437
-    How-Tos
438
-    
439
-  </span>
440
-  
441
-
442
-            </a>
443
-            
444
-              
445
-              <label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="0">
446
-                <span class="md-nav__icon md-icon"></span>
447
-              </label>
448
-            
449
-          </div>
450
-        
451
-        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
452
-          <label class="md-nav__title" for="__nav_3">
453
-            <span class="md-nav__icon md-icon"></span>
454
-            How-Tos
455
-          </label>
456
-          <ul class="md-nav__list" data-md-scrollfix>
457
-            
458
-              
459
-            
460
-              
461
-                
462
-  
463
-  
464
-  
465
-  
466
-    <li class="md-nav__item">
467
-      <a href="../../how-tos/ssh-key/" class="md-nav__link">
468
-        
469
-  
470
-  
471
-  <span class="md-ellipsis">
472
-    How to set up derivepassphrase vault with an SSH key
473
-    
474
-  </span>
475
-  
476
-
477
-      </a>
478
-    </li>
479
-  
480
-
481
-              
482
-            
483
-          </ul>
484
-        </nav>
485
-      
486
-    </li>
487
-  
488
-
489
-    
490
-      
491
-      
492
-  
493
-  
494
-  
495
-  
496
-    
497
-    
498
-      
499
-        
500
-          
501
-        
502
-      
503
-        
504
-      
505
-        
506
-      
507
-        
508
-      
509
-    
510
-    
511
-    
512
-      
513
-      
514
-        
515
-      
516
-    
517
-    
518
-    <li class="md-nav__item md-nav__item--nested">
519
-      
520
-        
521
-        
522
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
523
-        
524
-          
525
-          <div class="md-nav__link md-nav__container">
526
-            <a href="../" class="md-nav__link ">
527
-              
528
-  
529
-  
530
-  <span class="md-ellipsis">
531
-    Reference
532
-    
533
-  </span>
534
-  
535
-
536
-            </a>
537
-            
538
-              
539
-              <label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="0">
540
-                <span class="md-nav__icon md-icon"></span>
541
-              </label>
542
-            
543
-          </div>
544
-        
545
-        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
546
-          <label class="md-nav__title" for="__nav_4">
547
-            <span class="md-nav__icon md-icon"></span>
548
-            Reference
549
-          </label>
550
-          <ul class="md-nav__list" data-md-scrollfix>
551
-            
552
-              
553
-            
554
-              
555
-                
556
-  
557
-  
558
-  
559
-  
560
-    
561
-    
562
-      
563
-        
564
-      
565
-        
566
-      
567
-        
568
-      
569
-        
570
-      
571
-    
572
-    
573
-    
574
-      
575
-      
576
-        
577
-      
578
-    
579
-    
580
-    <li class="md-nav__item md-nav__item--nested">
581
-      
582
-        
583
-        
584
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_2" >
585
-        
586
-          
587
-          <label class="md-nav__link" for="__nav_4_2" id="__nav_4_2_label" tabindex="0">
588
-            
589
-  
590
-  
591
-  <span class="md-ellipsis">
592
-    Man pages
593
-    
594
-  </span>
595
-  
596
-
597
-            <span class="md-nav__icon md-icon"></span>
598
-          </label>
599
-        
600
-        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_2_label" aria-expanded="false">
601
-          <label class="md-nav__title" for="__nav_4_2">
602
-            <span class="md-nav__icon md-icon"></span>
603
-            Man pages
604
-          </label>
605
-          <ul class="md-nav__list" data-md-scrollfix>
606
-            
607
-              
608
-                
609
-  
610
-  
611
-  
612
-  
613
-    <li class="md-nav__item">
614
-      <a href="../derivepassphrase.1/" class="md-nav__link">
615
-        
616
-  
617
-  
618
-  <span class="md-ellipsis">
619
-    derivepassphrase(1)
620
-    
621
-  </span>
622
-  
623
-
624
-      </a>
625
-    </li>
626
-  
627
-
628
-              
629
-            
630
-              
631
-                
632
-  
633
-  
634
-  
635
-  
636
-    <li class="md-nav__item">
637
-      <a href="../derivepassphrase-vault.1/" class="md-nav__link">
638
-        
639
-  
640
-  
641
-  <span class="md-ellipsis">
642
-    derivepassphrase-vault(1)
643
-    
644
-  </span>
645
-  
646
-
647
-      </a>
648
-    </li>
649
-  
650
-
651
-              
652
-            
653
-              
654
-                
655
-  
656
-  
657
-  
658
-  
659
-    <li class="md-nav__item">
660
-      <a href="../derivepassphrase-export.1/" class="md-nav__link">
661
-        
662
-  
663
-  
664
-  <span class="md-ellipsis">
665
-    derivepassphrase-export(1)
666
-    
667
-  </span>
668
-  
669
-
670
-      </a>
671
-    </li>
672
-  
673
-
674
-              
675
-            
676
-              
677
-                
678
-  
679
-  
680
-  
681
-  
682
-    <li class="md-nav__item">
683
-      <a href="../derivepassphrase-export-vault.1/" class="md-nav__link">
684
-        
685
-  
686
-  
687
-  <span class="md-ellipsis">
688
-    derivepassphrase-export-vault(1)
689
-    
690
-  </span>
691
-  
692
-
693
-      </a>
694
-    </li>
695
-  
696
-
697
-              
698
-            
699
-          </ul>
700
-        </nav>
701
-      
702
-    </li>
703
-  
704
-
705
-              
706
-            
707
-              
708
-                
709
-  
710
-  
711
-  
712
-  
713
-    
714
-    
715
-      
716
-        
717
-      
718
-        
719
-      
720
-        
721
-      
722
-        
723
-      
724
-        
725
-      
726
-        
727
-      
728
-    
729
-    
730
-    
731
-      
732
-      
733
-        
734
-      
735
-    
736
-    
737
-    <li class="md-nav__item md-nav__item--nested">
738
-      
739
-        
740
-        
741
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_3" >
742
-        
743
-          
744
-          <label class="md-nav__link" for="__nav_4_3" id="__nav_4_3_label" tabindex="0">
745
-            
746
-  
747
-  
748
-  <span class="md-ellipsis">
749
-    API docs: Module derivepassphrase
750
-    
751
-  </span>
752
-  
753
-
754
-            <span class="md-nav__icon md-icon"></span>
755
-          </label>
756
-        
757
-        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_3_label" aria-expanded="false">
758
-          <label class="md-nav__title" for="__nav_4_3">
759
-            <span class="md-nav__icon md-icon"></span>
760
-            API docs: Module derivepassphrase
761
-          </label>
762
-          <ul class="md-nav__list" data-md-scrollfix>
763
-            
764
-              
765
-                
766
-  
767
-  
768
-  
769
-  
770
-    <li class="md-nav__item">
771
-      <a href="../derivepassphrase.cli/" class="md-nav__link">
772
-        
773
-  
774
-  
775
-  <span class="md-ellipsis">
776
-    Submodule cli
777
-    
778
-  </span>
779
-  
780
-
781
-      </a>
782
-    </li>
783
-  
784
-
785
-              
786
-            
787
-              
788
-                
789
-  
790
-  
791
-  
792
-  
793
-    <li class="md-nav__item">
794
-      <a href="../derivepassphrase.exporter/" class="md-nav__link">
795
-        
796
-  
797
-  
798
-  <span class="md-ellipsis">
799
-    Subpackage exporter
800
-    
801
-  </span>
802
-  
803
-
804
-      </a>
805
-    </li>
806
-  
807
-
808
-              
809
-            
810
-              
811
-                
812
-  
813
-  
814
-  
815
-  
816
-    <li class="md-nav__item">
817
-      <a href="../derivepassphrase.sequin/" class="md-nav__link">
818
-        
819
-  
820
-  
821
-  <span class="md-ellipsis">
822
-    Submodule sequin
823
-    
824
-  </span>
825
-  
826
-
827
-      </a>
828
-    </li>
829
-  
830
-
831
-              
832
-            
833
-              
834
-                
835
-  
836
-  
837
-  
838
-  
839
-    <li class="md-nav__item">
840
-      <a href="../derivepassphrase.ssh_agent/" class="md-nav__link">
841
-        
842
-  
843
-  
844
-  <span class="md-ellipsis">
845
-    Submodule ssh_agent
846
-    
847
-  </span>
848
-  
849
-
850
-      </a>
851
-    </li>
852
-  
853
-
854
-              
855
-            
856
-              
857
-                
858
-  
859
-  
860
-  
861
-  
862
-    <li class="md-nav__item">
863
-      <a href="../derivepassphrase._types/" class="md-nav__link">
864
-        
865
-  
866
-  
867
-  <span class="md-ellipsis">
868
-    Submodule _types
869
-    
870
-  </span>
871
-  
872
-
873
-      </a>
874
-    </li>
875
-  
876
-
877
-              
878
-            
879
-              
880
-                
881
-  
882
-  
883
-  
884
-  
885
-    <li class="md-nav__item">
886
-      <a href="../derivepassphrase.vault/" class="md-nav__link">
887
-        
888
-  
889
-  
890
-  <span class="md-ellipsis">
891
-    Submodule vault
892
-    
893
-  </span>
894
-  
895
-
896
-      </a>
897
-    </li>
898
-  
899
-
900
-              
901
-            
902
-          </ul>
903
-        </nav>
904
-      
905
-    </li>
906
-  
907
-
908
-              
909
-            
910
-              
911
-                
912
-  
913
-  
914
-  
915
-  
916
-    
917
-    
918
-      
919
-        
920
-      
921
-    
922
-    
923
-    
924
-      
925
-      
926
-        
927
-      
928
-    
929
-    
930
-    <li class="md-nav__item md-nav__item--nested">
931
-      
932
-        
933
-        
934
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_4" >
935
-        
936
-          
937
-          <label class="md-nav__link" for="__nav_4_4" id="__nav_4_4_label" tabindex="0">
938
-            
939
-  
940
-  
941
-  <span class="md-ellipsis">
942
-    Technical prerequisites
943
-    
944
-  </span>
945
-  
946
-
947
-            <span class="md-nav__icon md-icon"></span>
948
-          </label>
949
-        
950
-        <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_4_label" aria-expanded="false">
951
-          <label class="md-nav__title" for="__nav_4_4">
952
-            <span class="md-nav__icon md-icon"></span>
953
-            Technical prerequisites
954
-          </label>
955
-          <ul class="md-nav__list" data-md-scrollfix>
956
-            
957
-              
958
-                
959
-  
960
-  
961
-  
962
-  
963
-    <li class="md-nav__item">
964
-      <a href="../prerequisites-ssh-key/" class="md-nav__link">
965
-        
966
-  
967
-  
968
-  <span class="md-ellipsis">
969
-    Using derivepassphrase vault with an SSH key
970
-    
971
-  </span>
972
-  
973
-
974
-      </a>
975
-    </li>
976
-  
977
-
978
-              
979
-            
980
-          </ul>
981
-        </nav>
982
-      
983
-    </li>
984
-  
985
-
986
-              
987
-            
988
-          </ul>
989
-        </nav>
990
-      
991
-    </li>
992
-  
993
-
994
-    
995
-      
996
-      
997
-  
998
-  
999
-  
1000
-  
1001
-    
1002
-    
1003
-      
1004
-        
1005
-          
1006
-        
1007
-      
1008
-        
1009
-      
1010
-        
1011
-      
1012
-    
1013
-    
1014
-    
1015
-      
1016
-      
1017
-        
1018
-      
1019
-    
1020
-    
1021
-    <li class="md-nav__item md-nav__item--nested">
1022
-      
1023
-        
1024
-        
1025
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
1026
-        
1027
-          
1028
-          <div class="md-nav__link md-nav__container">
1029
-            <a href="../../explanation/" class="md-nav__link ">
1030
-              
1031
-  
1032
-  
1033
-  <span class="md-ellipsis">
1034
-    Design & Background
1035
-    
1036
-  </span>
1037
-  
1038
-
1039
-            </a>
1040
-            
1041
-              
1042
-              <label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="0">
1043
-                <span class="md-nav__icon md-icon"></span>
1044
-              </label>
1045
-            
1046
-          </div>
1047
-        
1048
-        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
1049
-          <label class="md-nav__title" for="__nav_5">
1050
-            <span class="md-nav__icon md-icon"></span>
1051
-            Design & Background
1052
-          </label>
1053
-          <ul class="md-nav__list" data-md-scrollfix>
1054
-            
1055
-              
1056
-            
1057
-              
1058
-                
1059
-  
1060
-  
1061
-  
1062
-  
1063
-    <li class="md-nav__item">
1064
-      <a href="../../explanation/faq-altered-versions/" class="md-nav__link">
1065
-        
1066
-  
1067
-  
1068
-  <span class="md-ellipsis">
1069
-    "altered versions" license requirement
1070
-    
1071
-  </span>
1072
-  
1073
-
1074
-      </a>
1075
-    </li>
1076
-  
1077
-
1078
-              
1079
-            
1080
-              
1081
-                
1082
-  
1083
-  
1084
-  
1085
-  
1086
-    <li class="md-nav__item">
1087
-      <a href="../../explanation/faq-vault-interchangable-passphrases/" class="md-nav__link">
1088
-        
1089
-  
1090
-  
1091
-  <span class="md-ellipsis">
1092
-    "interchangable passphrases" in vault
1093
-    
1094
-  </span>
1095
-  
1096
-
1097
-      </a>
1098
-    </li>
1099
-  
1100
-
1101
-              
1102
-            
1103
-          </ul>
1104
-        </nav>
1105
-      
1106
-    </li>
1107
-  
1108
-
1109
-    
1110
-      
1111
-      
1112
-  
1113
-  
1114
-  
1115
-  
1116
-    
1117
-    
1118
-      
1119
-        
1120
-      
1121
-        
1122
-      
1123
-        
1124
-      
1125
-    
1126
-    
1127
-    
1128
-      
1129
-      
1130
-        
1131
-      
1132
-    
1133
-    
1134
-    <li class="md-nav__item md-nav__item--nested">
1135
-      
1136
-        
1137
-        
1138
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
1139
-        
1140
-          
1141
-          <label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
1142
-            
1143
-  
1144
-  
1145
-  <span class="md-ellipsis">
1146
-    Changelog
1147
-    
1148
-  </span>
1149
-  
1150
-
1151
-            <span class="md-nav__icon md-icon"></span>
1152
-          </label>
1153
-        
1154
-        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
1155
-          <label class="md-nav__title" for="__nav_6">
1156
-            <span class="md-nav__icon md-icon"></span>
1157
-            Changelog
1158
-          </label>
1159
-          <ul class="md-nav__list" data-md-scrollfix>
1160
-            
1161
-              
1162
-                
1163
-  
1164
-  
1165
-  
1166
-  
1167
-    <li class="md-nav__item">
1168
-      <a href="../../changelog/" class="md-nav__link">
1169
-        
1170
-  
1171
-  
1172
-  <span class="md-ellipsis">
1173
-    Changelog
1174
-    
1175
-  </span>
1176
-  
1177
-
1178
-      </a>
1179
-    </li>
1180
-  
1181
-
1182
-              
1183
-            
1184
-              
1185
-                
1186
-  
1187
-  
1188
-  
1189
-  
1190
-    <li class="md-nav__item">
1191
-      <a href="../../upgrade-notes/" class="md-nav__link">
1192
-        
1193
-  
1194
-  
1195
-  <span class="md-ellipsis">
1196
-    Upgrade notes
1197
-    
1198
-  </span>
1199
-  
1200
-
1201
-      </a>
1202
-    </li>
1203
-  
1204
-
1205
-              
1206
-            
1207
-              
1208
-                
1209
-  
1210
-  
1211
-  
1212
-  
1213
-    <li class="md-nav__item">
1214
-      <a href="../../pycompatibility/" class="md-nav__link">
1215
-        
1216
-  
1217
-  
1218
-  <span class="md-ellipsis">
1219
-    Python compatibility
1220
-    
1221
-  </span>
1222
-  
1223
-
1224
-      </a>
1225
-    </li>
1226
-  
1227
-
1228
-              
1229
-            
1230
-          </ul>
1231
-        </nav>
1232
-      
1233
-    </li>
1234
-  
1235
-
1236
-    
1237
-      
1238
-      
1239
-  
1240
-  
1241
-  
1242
-  
1243
-    
1244
-    
1245
-      
1246
-        
1247
-          
1248
-        
1249
-      
1250
-    
1251
-    
1252
-    
1253
-      
1254
-      
1255
-        
1256
-      
1257
-    
1258
-    
1259
-    <li class="md-nav__item md-nav__item--nested">
1260
-      
1261
-        
1262
-        
1263
-        <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
1264
-        
1265
-          
1266
-          <div class="md-nav__link md-nav__container">
1267
-            <a href="../../wishlist/" class="md-nav__link ">
1268
-              
1269
-  
1270
-  
1271
-  <span class="md-ellipsis">
1272
-    Wishlist
1273
-    
1274
-  </span>
1275
-  
1276
-
1277
-            </a>
1278
-            
1279
-          </div>
1280
-        
1281
-        <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
1282
-          <label class="md-nav__title" for="__nav_7">
1283
-            <span class="md-nav__icon md-icon"></span>
1284
-            Wishlist
1285
-          </label>
1286
-          <ul class="md-nav__list" data-md-scrollfix>
1287
-            
1288
-              
1289
-            
1290
-          </ul>
1291
-        </nav>
1292
-      
1293
-    </li>
1294
-  
1295
-
1296
-    
1297
-  </ul>
1298
-</nav>
1299
-                  </div>
1300
-                </div>
1301
-              </div>
1302
-            
1303
-            
1304
-              
1305
-              <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
1306
-                <div class="md-sidebar__scrollwrap">
1307
-                  <div class="md-sidebar__inner">
1308
-                    
1309
-
1310
-<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1311
-  
1312
-  
1313
-  
1314
-    
1315
-  
1316
-  
1317
-    <label class="md-nav__title" for="__toc">
1318
-      <span class="md-nav__icon md-icon"></span>
1319
-      Table of contents
1320
-    </label>
1321
-    <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1322
-      
1323
-        <li class="md-nav__item">
1324
-  <a href="#derivepassphrase._internals.cli_messages.MsgTemplate" class="md-nav__link">
1325
-    <span class="md-ellipsis">
1326
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;MsgTemplate
1327
-    </span>
1328
-  </a>
1329
-  
1330
-</li>
1331
-      
1332
-        <li class="md-nav__item">
1333
-  <a href="#derivepassphrase._internals.cli_messages.MSG_TEMPLATE_CLASSES" class="md-nav__link">
1334
-    <span class="md-ellipsis">
1335
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;MSG_TEMPLATE_CLASSES
1336
-    </span>
1337
-  </a>
1338
-  
1339
-</li>
1340
-      
1341
-        <li class="md-nav__item">
1342
-  <a href="#derivepassphrase._internals.cli_messages.DebugTranslations" class="md-nav__link">
1343
-    <span class="md-ellipsis">
1344
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;DebugTranslations
1345
-    </span>
1346
-  </a>
1347
-  
1348
-</li>
1349
-      
1350
-        <li class="md-nav__item">
1351
-  <a href="#derivepassphrase._internals.cli_messages.TranslatableString" class="md-nav__link">
1352
-    <span class="md-ellipsis">
1353
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;TranslatableString
1354
-    </span>
1355
-  </a>
1356
-  
1357
-    <nav class="md-nav" aria-label=" TranslatableString">
1358
-      <ul class="md-nav__list">
1359
-        
1360
-          <li class="md-nav__item">
1361
-  <a href="#derivepassphrase._internals.cli_messages.TranslatableString.l10n_context" class="md-nav__link">
1362
-    <span class="md-ellipsis">
1363
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;l10n_context
1364
-    </span>
1365
-  </a>
1366
-  
1367
-</li>
1368
-        
1369
-          <li class="md-nav__item">
1370
-  <a href="#derivepassphrase._internals.cli_messages.TranslatableString.singular" class="md-nav__link">
1371
-    <span class="md-ellipsis">
1372
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;singular
1373
-    </span>
1374
-  </a>
1375
-  
1376
-</li>
1377
-        
1378
-          <li class="md-nav__item">
1379
-  <a href="#derivepassphrase._internals.cli_messages.TranslatableString.plural" class="md-nav__link">
1380
-    <span class="md-ellipsis">
1381
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;plural
1382
-    </span>
1383
-  </a>
1384
-  
1385
-</li>
1386
-        
1387
-          <li class="md-nav__item">
1388
-  <a href="#derivepassphrase._internals.cli_messages.TranslatableString.flags" class="md-nav__link">
1389
-    <span class="md-ellipsis">
1390
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;flags
1391
-    </span>
1392
-  </a>
1393
-  
1394
-</li>
1395
-        
1396
-          <li class="md-nav__item">
1397
-  <a href="#derivepassphrase._internals.cli_messages.TranslatableString.translator_comments" class="md-nav__link">
1398
-    <span class="md-ellipsis">
1399
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;translator_comments
1400
-    </span>
1401
-  </a>
1402
-  
1403
-</li>
1404
-        
1405
-          <li class="md-nav__item">
1406
-  <a href="#derivepassphrase._internals.cli_messages.TranslatableString.fields" class="md-nav__link">
1407
-    <span class="md-ellipsis">
1408
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;fields
1409
-    </span>
1410
-  </a>
1411
-  
1412
-</li>
1413
-        
1414
-          <li class="md-nav__item">
1415
-  <a href="#derivepassphrase._internals.cli_messages.TranslatableString.maybe_without_filename" class="md-nav__link">
1416
-    <span class="md-ellipsis">
1417
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;maybe_without_filename
1418
-    </span>
1419
-  </a>
1420
-  
1421
-</li>
1422
-        
1423
-          <li class="md-nav__item">
1424
-  <a href="#derivepassphrase._internals.cli_messages.TranslatableString.rewrapped" class="md-nav__link">
1425
-    <span class="md-ellipsis">
1426
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;rewrapped
1427
-    </span>
1428
-  </a>
1429
-  
1430
-</li>
1431
-        
1432
-          <li class="md-nav__item">
1433
-  <a href="#derivepassphrase._internals.cli_messages.TranslatableString.with_comments" class="md-nav__link">
1434
-    <span class="md-ellipsis">
1435
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;with_comments
1436
-    </span>
1437
-  </a>
1438
-  
1439
-</li>
1440
-        
1441
-          <li class="md-nav__item">
1442
-  <a href="#derivepassphrase._internals.cli_messages.TranslatableString.validate_flags" class="md-nav__link">
1443
-    <span class="md-ellipsis">
1444
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;validate_flags
1445
-    </span>
1446
-  </a>
1447
-  
1448
-</li>
1449
-        
1450
-      </ul>
1451
-    </nav>
1452
-  
1453
-</li>
1454
-      
1455
-        <li class="md-nav__item">
1456
-  <a href="#derivepassphrase._internals.cli_messages.TranslatedString" class="md-nav__link">
1457
-    <span class="md-ellipsis">
1458
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;TranslatedString
1459
-    </span>
1460
-  </a>
1461
-  
1462
-    <nav class="md-nav" aria-label=" TranslatedString">
1463
-      <ul class="md-nav__list">
1464
-        
1465
-          <li class="md-nav__item">
1466
-  <a href="#derivepassphrase._internals.cli_messages.TranslatedString.__bool__" class="md-nav__link">
1467
-    <span class="md-ellipsis">
1468
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;__bool__
1469
-    </span>
1470
-  </a>
1471
-  
1472
-</li>
1473
-        
1474
-          <li class="md-nav__item">
1475
-  <a href="#derivepassphrase._internals.cli_messages.TranslatedString.__eq__" class="md-nav__link">
1476
-    <span class="md-ellipsis">
1477
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;__eq__
1478
-    </span>
1479
-  </a>
1480
-  
1481
-</li>
1482
-        
1483
-          <li class="md-nav__item">
1484
-  <a href="#derivepassphrase._internals.cli_messages.TranslatedString.__hash__" class="md-nav__link">
1485
-    <span class="md-ellipsis">
1486
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;__hash__
1487
-    </span>
1488
-  </a>
1489
-  
1490
-</li>
1491
-        
1492
-          <li class="md-nav__item">
1493
-  <a href="#derivepassphrase._internals.cli_messages.TranslatedString.__str__" class="md-nav__link">
1494
-    <span class="md-ellipsis">
1495
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;__str__
1496
-    </span>
1497
-  </a>
1498
-  
1499
-</li>
1500
-        
1501
-          <li class="md-nav__item">
1502
-  <a href="#derivepassphrase._internals.cli_messages.TranslatedString.maybe_without_filename" class="md-nav__link">
1503
-    <span class="md-ellipsis">
1504
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;maybe_without_filename
1505
-    </span>
1506
-  </a>
1507
-  
1508
-</li>
1509
-        
1510
-      </ul>
1511
-    </nav>
1512
-  
1513
-</li>
1514
-      
1515
-        <li class="md-nav__item">
1516
-  <a href="#derivepassphrase._internals.cli_messages.TranslatableStringConstructor" class="md-nav__link">
1517
-    <span class="md-ellipsis">
1518
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;TranslatableStringConstructor
1519
-    </span>
1520
-  </a>
1521
-  
1522
-    <nav class="md-nav" aria-label=" TranslatableStringConstructor">
1523
-      <ul class="md-nav__list">
1524
-        
1525
-          <li class="md-nav__item">
1526
-  <a href="#derivepassphrase._internals.cli_messages.TranslatableStringConstructor.__call__" class="md-nav__link">
1527
-    <span class="md-ellipsis">
1528
-      <code class="doc-symbol doc-symbol-toc doc-symbol-method"></code>&nbsp;__call__
1529
-    </span>
1530
-  </a>
1531
-  
1532
-</li>
1533
-        
1534
-      </ul>
1535
-    </nav>
1536
-  
1537
-</li>
1538
-      
1539
-        <li class="md-nav__item">
1540
-  <a href="#derivepassphrase._internals.cli_messages.Label" class="md-nav__link">
1541
-    <span class="md-ellipsis">
1542
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;Label
1543
-    </span>
1544
-  </a>
1545
-  
1546
-    <nav class="md-nav" aria-label=" Label">
1547
-      <ul class="md-nav__list">
1548
-        
1549
-          <li class="md-nav__item">
1550
-  <a href="#derivepassphrase._internals.cli_messages.Label.DEPRECATION_WARNING_LABEL" class="md-nav__link">
1551
-    <span class="md-ellipsis">
1552
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DEPRECATION_WARNING_LABEL
1553
-    </span>
1554
-  </a>
1555
-  
1556
-</li>
1557
-        
1558
-          <li class="md-nav__item">
1559
-  <a href="#derivepassphrase._internals.cli_messages.Label.WARNING_LABEL" class="md-nav__link">
1560
-    <span class="md-ellipsis">
1561
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;WARNING_LABEL
1562
-    </span>
1563
-  </a>
1564
-  
1565
-</li>
1566
-        
1567
-          <li class="md-nav__item">
1568
-  <a href="#derivepassphrase._internals.cli_messages.Label.CANNOT_UPDATE_SETTINGS_METAVAR_SETTINGS_TYPE_GLOBAL" class="md-nav__link">
1569
-    <span class="md-ellipsis">
1570
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;CANNOT_UPDATE_SETTINGS_METAVAR_SETTINGS_TYPE_GLOBAL
1571
-    </span>
1572
-  </a>
1573
-  
1574
-</li>
1575
-        
1576
-          <li class="md-nav__item">
1577
-  <a href="#derivepassphrase._internals.cli_messages.Label.CANNOT_UPDATE_SETTINGS_METAVAR_SETTINGS_TYPE_SERVICE" class="md-nav__link">
1578
-    <span class="md-ellipsis">
1579
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;CANNOT_UPDATE_SETTINGS_METAVAR_SETTINGS_TYPE_SERVICE
1580
-    </span>
1581
-  </a>
1582
-  
1583
-</li>
1584
-        
1585
-          <li class="md-nav__item">
1586
-  <a href="#derivepassphrase._internals.cli_messages.Label.CONFIGURATION_EPILOG" class="md-nav__link">
1587
-    <span class="md-ellipsis">
1588
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;CONFIGURATION_EPILOG
1589
-    </span>
1590
-  </a>
1591
-  
1592
-</li>
1593
-        
1594
-          <li class="md-nav__item">
1595
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_02" class="md-nav__link">
1596
-    <span class="md-ellipsis">
1597
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_02
1598
-    </span>
1599
-  </a>
1600
-  
1601
-</li>
1602
-        
1603
-          <li class="md-nav__item">
1604
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_03" class="md-nav__link">
1605
-    <span class="md-ellipsis">
1606
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_03
1607
-    </span>
1608
-  </a>
1609
-  
1610
-</li>
1611
-        
1612
-          <li class="md-nav__item">
1613
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_EPILOG_01" class="md-nav__link">
1614
-    <span class="md-ellipsis">
1615
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_EPILOG_01
1616
-    </span>
1617
-  </a>
1618
-  
1619
-</li>
1620
-        
1621
-          <li class="md-nav__item">
1622
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_EXPORT_02" class="md-nav__link">
1623
-    <span class="md-ellipsis">
1624
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_EXPORT_02
1625
-    </span>
1626
-  </a>
1627
-  
1628
-</li>
1629
-        
1630
-          <li class="md-nav__item">
1631
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_EXPORT_03" class="md-nav__link">
1632
-    <span class="md-ellipsis">
1633
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_EXPORT_03
1634
-    </span>
1635
-  </a>
1636
-  
1637
-</li>
1638
-        
1639
-          <li class="md-nav__item">
1640
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_EXPORT_VAULT_02" class="md-nav__link">
1641
-    <span class="md-ellipsis">
1642
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_EXPORT_VAULT_02
1643
-    </span>
1644
-  </a>
1645
-  
1646
-</li>
1647
-        
1648
-          <li class="md-nav__item">
1649
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_EXPORT_VAULT_03" class="md-nav__link">
1650
-    <span class="md-ellipsis">
1651
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_EXPORT_VAULT_03
1652
-    </span>
1653
-  </a>
1654
-  
1655
-</li>
1656
-        
1657
-          <li class="md-nav__item">
1658
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_02" class="md-nav__link">
1659
-    <span class="md-ellipsis">
1660
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_02
1661
-    </span>
1662
-  </a>
1663
-  
1664
-</li>
1665
-        
1666
-          <li class="md-nav__item">
1667
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_EPILOG_01" class="md-nav__link">
1668
-    <span class="md-ellipsis">
1669
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_EPILOG_01
1670
-    </span>
1671
-  </a>
1672
-  
1673
-</li>
1674
-        
1675
-          <li class="md-nav__item">
1676
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_EPILOG_02" class="md-nav__link">
1677
-    <span class="md-ellipsis">
1678
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_EPILOG_02
1679
-    </span>
1680
-  </a>
1681
-  
1682
-</li>
1683
-        
1684
-          <li class="md-nav__item">
1685
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_NOTES_INSTRUCTION_TEXT" class="md-nav__link">
1686
-    <span class="md-ellipsis">
1687
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_NOTES_INSTRUCTION_TEXT
1688
-    </span>
1689
-  </a>
1690
-  
1691
-</li>
1692
-        
1693
-          <li class="md-nav__item">
1694
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_NOTES_LEGACY_INSTRUCTION_TEXT" class="md-nav__link">
1695
-    <span class="md-ellipsis">
1696
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_NOTES_LEGACY_INSTRUCTION_TEXT
1697
-    </span>
1698
-  </a>
1699
-  
1700
-</li>
1701
-        
1702
-          <li class="md-nav__item">
1703
-  <a href="#derivepassphrase._internals.cli_messages.Label.PASSPHRASE_GENERATION_EPILOG" class="md-nav__link">
1704
-    <span class="md-ellipsis">
1705
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;PASSPHRASE_GENERATION_EPILOG
1706
-    </span>
1707
-  </a>
1708
-  
1709
-</li>
1710
-        
1711
-          <li class="md-nav__item">
1712
-  <a href="#derivepassphrase._internals.cli_messages.Label.STORAGE_MANAGEMENT_EPILOG" class="md-nav__link">
1713
-    <span class="md-ellipsis">
1714
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;STORAGE_MANAGEMENT_EPILOG
1715
-    </span>
1716
-  </a>
1717
-  
1718
-</li>
1719
-        
1720
-          <li class="md-nav__item">
1721
-  <a href="#derivepassphrase._internals.cli_messages.Label.DEPRECATED_COMMAND_LABEL" class="md-nav__link">
1722
-    <span class="md-ellipsis">
1723
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DEPRECATED_COMMAND_LABEL
1724
-    </span>
1725
-  </a>
1726
-  
1727
-</li>
1728
-        
1729
-          <li class="md-nav__item">
1730
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_NOTES_MARKER" class="md-nav__link">
1731
-    <span class="md-ellipsis">
1732
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_NOTES_MARKER
1733
-    </span>
1734
-  </a>
1735
-  
1736
-</li>
1737
-        
1738
-          <li class="md-nav__item">
1739
-  <a href="#derivepassphrase._internals.cli_messages.Label.EXPORT_VAULT_FORMAT_METAVAR_FMT" class="md-nav__link">
1740
-    <span class="md-ellipsis">
1741
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;EXPORT_VAULT_FORMAT_METAVAR_FMT
1742
-    </span>
1743
-  </a>
1744
-  
1745
-</li>
1746
-        
1747
-          <li class="md-nav__item">
1748
-  <a href="#derivepassphrase._internals.cli_messages.Label.EXPORT_VAULT_KEY_METAVAR_K" class="md-nav__link">
1749
-    <span class="md-ellipsis">
1750
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;EXPORT_VAULT_KEY_METAVAR_K
1751
-    </span>
1752
-  </a>
1753
-  
1754
-</li>
1755
-        
1756
-          <li class="md-nav__item">
1757
-  <a href="#derivepassphrase._internals.cli_messages.Label.EXPORT_VAULT_METAVAR_PATH" class="md-nav__link">
1758
-    <span class="md-ellipsis">
1759
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;EXPORT_VAULT_METAVAR_PATH
1760
-    </span>
1761
-  </a>
1762
-  
1763
-</li>
1764
-        
1765
-          <li class="md-nav__item">
1766
-  <a href="#derivepassphrase._internals.cli_messages.Label.PASSPHRASE_GENERATION_METAVAR_NUMBER" class="md-nav__link">
1767
-    <span class="md-ellipsis">
1768
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;PASSPHRASE_GENERATION_METAVAR_NUMBER
1769
-    </span>
1770
-  </a>
1771
-  
1772
-</li>
1773
-        
1774
-          <li class="md-nav__item">
1775
-  <a href="#derivepassphrase._internals.cli_messages.Label.STORAGE_MANAGEMENT_METAVAR_PATH" class="md-nav__link">
1776
-    <span class="md-ellipsis">
1777
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;STORAGE_MANAGEMENT_METAVAR_PATH
1778
-    </span>
1779
-  </a>
1780
-  
1781
-</li>
1782
-        
1783
-          <li class="md-nav__item">
1784
-  <a href="#derivepassphrase._internals.cli_messages.Label.VAULT_METAVAR_SERVICE" class="md-nav__link">
1785
-    <span class="md-ellipsis">
1786
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;VAULT_METAVAR_SERVICE
1787
-    </span>
1788
-  </a>
1789
-  
1790
-</li>
1791
-        
1792
-          <li class="md-nav__item">
1793
-  <a href="#derivepassphrase._internals.cli_messages.Label.DEBUG_OPTION_HELP_TEXT" class="md-nav__link">
1794
-    <span class="md-ellipsis">
1795
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DEBUG_OPTION_HELP_TEXT
1796
-    </span>
1797
-  </a>
1798
-  
1799
-</li>
1800
-        
1801
-          <li class="md-nav__item">
1802
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_01" class="md-nav__link">
1803
-    <span class="md-ellipsis">
1804
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_01
1805
-    </span>
1806
-  </a>
1807
-  
1808
-</li>
1809
-        
1810
-          <li class="md-nav__item">
1811
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_EXPORT_01" class="md-nav__link">
1812
-    <span class="md-ellipsis">
1813
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_EXPORT_01
1814
-    </span>
1815
-  </a>
1816
-  
1817
-</li>
1818
-        
1819
-          <li class="md-nav__item">
1820
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_EXPORT_VAULT_01" class="md-nav__link">
1821
-    <span class="md-ellipsis">
1822
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_EXPORT_VAULT_01
1823
-    </span>
1824
-  </a>
1825
-  
1826
-</li>
1827
-        
1828
-          <li class="md-nav__item">
1829
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_01" class="md-nav__link">
1830
-    <span class="md-ellipsis">
1831
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_01
1832
-    </span>
1833
-  </a>
1834
-  
1835
-</li>
1836
-        
1837
-          <li class="md-nav__item">
1838
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_CONFIG_HELP_TEXT" class="md-nav__link">
1839
-    <span class="md-ellipsis">
1840
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_CONFIG_HELP_TEXT
1841
-    </span>
1842
-  </a>
1843
-  
1844
-</li>
1845
-        
1846
-          <li class="md-nav__item">
1847
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_DASH_HELP_TEXT" class="md-nav__link">
1848
-    <span class="md-ellipsis">
1849
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_DASH_HELP_TEXT
1850
-    </span>
1851
-  </a>
1852
-  
1853
-</li>
1854
-        
1855
-          <li class="md-nav__item">
1856
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_DELETE_ALL_HELP_TEXT" class="md-nav__link">
1857
-    <span class="md-ellipsis">
1858
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_DELETE_ALL_HELP_TEXT
1859
-    </span>
1860
-  </a>
1861
-  
1862
-</li>
1863
-        
1864
-          <li class="md-nav__item">
1865
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_DELETE_GLOBALS_HELP_TEXT" class="md-nav__link">
1866
-    <span class="md-ellipsis">
1867
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_DELETE_GLOBALS_HELP_TEXT
1868
-    </span>
1869
-  </a>
1870
-  
1871
-</li>
1872
-        
1873
-          <li class="md-nav__item">
1874
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_DELETE_HELP_TEXT" class="md-nav__link">
1875
-    <span class="md-ellipsis">
1876
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_DELETE_HELP_TEXT
1877
-    </span>
1878
-  </a>
1879
-  
1880
-</li>
1881
-        
1882
-          <li class="md-nav__item">
1883
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_EDITOR_INTERFACE_HELP_TEXT" class="md-nav__link">
1884
-    <span class="md-ellipsis">
1885
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_EDITOR_INTERFACE_HELP_TEXT
1886
-    </span>
1887
-  </a>
1888
-  
1889
-</li>
1890
-        
1891
-          <li class="md-nav__item">
1892
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_EXPORT_AS_HELP_TEXT" class="md-nav__link">
1893
-    <span class="md-ellipsis">
1894
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_EXPORT_AS_HELP_TEXT
1895
-    </span>
1896
-  </a>
1897
-  
1898
-</li>
1899
-        
1900
-          <li class="md-nav__item">
1901
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_EXPORT_HELP_TEXT" class="md-nav__link">
1902
-    <span class="md-ellipsis">
1903
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_EXPORT_HELP_TEXT
1904
-    </span>
1905
-  </a>
1906
-  
1907
-</li>
1908
-        
1909
-          <li class="md-nav__item">
1910
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_IMPORT_HELP_TEXT" class="md-nav__link">
1911
-    <span class="md-ellipsis">
1912
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_IMPORT_HELP_TEXT
1913
-    </span>
1914
-  </a>
1915
-  
1916
-</li>
1917
-        
1918
-          <li class="md-nav__item">
1919
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_KEY_HELP_TEXT" class="md-nav__link">
1920
-    <span class="md-ellipsis">
1921
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_KEY_HELP_TEXT
1922
-    </span>
1923
-  </a>
1924
-  
1925
-</li>
1926
-        
1927
-          <li class="md-nav__item">
1928
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_LENGTH_HELP_TEXT" class="md-nav__link">
1929
-    <span class="md-ellipsis">
1930
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_LENGTH_HELP_TEXT
1931
-    </span>
1932
-  </a>
1933
-  
1934
-</li>
1935
-        
1936
-          <li class="md-nav__item">
1937
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_LOWER_HELP_TEXT" class="md-nav__link">
1938
-    <span class="md-ellipsis">
1939
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_LOWER_HELP_TEXT
1940
-    </span>
1941
-  </a>
1942
-  
1943
-</li>
1944
-        
1945
-          <li class="md-nav__item">
1946
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_NOTES_HELP_TEXT" class="md-nav__link">
1947
-    <span class="md-ellipsis">
1948
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_NOTES_HELP_TEXT
1949
-    </span>
1950
-  </a>
1951
-  
1952
-</li>
1953
-        
1954
-          <li class="md-nav__item">
1955
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_NUMBER_HELP_TEXT" class="md-nav__link">
1956
-    <span class="md-ellipsis">
1957
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_NUMBER_HELP_TEXT
1958
-    </span>
1959
-  </a>
1960
-  
1961
-</li>
1962
-        
1963
-          <li class="md-nav__item">
1964
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_OVERWRITE_HELP_TEXT" class="md-nav__link">
1965
-    <span class="md-ellipsis">
1966
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_OVERWRITE_HELP_TEXT
1967
-    </span>
1968
-  </a>
1969
-  
1970
-</li>
1971
-        
1972
-          <li class="md-nav__item">
1973
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_PHRASE_HELP_TEXT" class="md-nav__link">
1974
-    <span class="md-ellipsis">
1975
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_PHRASE_HELP_TEXT
1976
-    </span>
1977
-  </a>
1978
-  
1979
-</li>
1980
-        
1981
-          <li class="md-nav__item">
1982
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_PRINT_NOTES_BEFORE_HELP_TEXT" class="md-nav__link">
1983
-    <span class="md-ellipsis">
1984
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_PRINT_NOTES_BEFORE_HELP_TEXT
1985
-    </span>
1986
-  </a>
1987
-  
1988
-</li>
1989
-        
1990
-          <li class="md-nav__item">
1991
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_REPEAT_HELP_TEXT" class="md-nav__link">
1992
-    <span class="md-ellipsis">
1993
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_REPEAT_HELP_TEXT
1994
-    </span>
1995
-  </a>
1996
-  
1997
-</li>
1998
-        
1999
-          <li class="md-nav__item">
2000
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_SPACE_HELP_TEXT" class="md-nav__link">
2001
-    <span class="md-ellipsis">
2002
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_SPACE_HELP_TEXT
2003
-    </span>
2004
-  </a>
2005
-  
2006
-</li>
2007
-        
2008
-          <li class="md-nav__item">
2009
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_SYMBOL_HELP_TEXT" class="md-nav__link">
2010
-    <span class="md-ellipsis">
2011
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_SYMBOL_HELP_TEXT
2012
-    </span>
2013
-  </a>
2014
-  
2015
-</li>
2016
-        
2017
-          <li class="md-nav__item">
2018
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_UNSET_HELP_TEXT" class="md-nav__link">
2019
-    <span class="md-ellipsis">
2020
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_UNSET_HELP_TEXT
2021
-    </span>
2022
-  </a>
2023
-  
2024
-</li>
2025
-        
2026
-          <li class="md-nav__item">
2027
-  <a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_UPPER_HELP_TEXT" class="md-nav__link">
2028
-    <span class="md-ellipsis">
2029
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVEPASSPHRASE_VAULT_UPPER_HELP_TEXT
2030
-    </span>
2031
-  </a>
2032
-  
2033
-</li>
2034
-        
2035
-          <li class="md-nav__item">
2036
-  <a href="#derivepassphrase._internals.cli_messages.Label.EXPORT_VAULT_FORMAT_DEFAULTS_HELP_TEXT" class="md-nav__link">
2037
-    <span class="md-ellipsis">
2038
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;EXPORT_VAULT_FORMAT_DEFAULTS_HELP_TEXT
2039
-    </span>
2040
-  </a>
2041
-  
2042
-</li>
2043
-        
2044
-          <li class="md-nav__item">
2045
-  <a href="#derivepassphrase._internals.cli_messages.Label.EXPORT_VAULT_FORMAT_HELP_TEXT" class="md-nav__link">
2046
-    <span class="md-ellipsis">
2047
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;EXPORT_VAULT_FORMAT_HELP_TEXT
2048
-    </span>
2049
-  </a>
2050
-  
2051
-</li>
2052
-        
2053
-          <li class="md-nav__item">
2054
-  <a href="#derivepassphrase._internals.cli_messages.Label.EXPORT_VAULT_KEY_DEFAULTS_HELP_TEXT" class="md-nav__link">
2055
-    <span class="md-ellipsis">
2056
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;EXPORT_VAULT_KEY_DEFAULTS_HELP_TEXT
2057
-    </span>
2058
-  </a>
2059
-  
2060
-</li>
2061
-        
2062
-          <li class="md-nav__item">
2063
-  <a href="#derivepassphrase._internals.cli_messages.Label.EXPORT_VAULT_KEY_HELP_TEXT" class="md-nav__link">
2064
-    <span class="md-ellipsis">
2065
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;EXPORT_VAULT_KEY_HELP_TEXT
2066
-    </span>
2067
-  </a>
2068
-  
2069
-</li>
2070
-        
2071
-          <li class="md-nav__item">
2072
-  <a href="#derivepassphrase._internals.cli_messages.Label.HELP_OPTION_HELP_TEXT" class="md-nav__link">
2073
-    <span class="md-ellipsis">
2074
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;HELP_OPTION_HELP_TEXT
2075
-    </span>
2076
-  </a>
2077
-  
2078
-</li>
2079
-        
2080
-          <li class="md-nav__item">
2081
-  <a href="#derivepassphrase._internals.cli_messages.Label.QUIET_OPTION_HELP_TEXT" class="md-nav__link">
2082
-    <span class="md-ellipsis">
2083
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;QUIET_OPTION_HELP_TEXT
2084
-    </span>
2085
-  </a>
2086
-  
2087
-</li>
2088
-        
2089
-          <li class="md-nav__item">
2090
-  <a href="#derivepassphrase._internals.cli_messages.Label.VERBOSE_OPTION_HELP_TEXT" class="md-nav__link">
2091
-    <span class="md-ellipsis">
2092
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;VERBOSE_OPTION_HELP_TEXT
2093
-    </span>
2094
-  </a>
2095
-  
2096
-</li>
2097
-        
2098
-          <li class="md-nav__item">
2099
-  <a href="#derivepassphrase._internals.cli_messages.Label.VERSION_OPTION_HELP_TEXT" class="md-nav__link">
2100
-    <span class="md-ellipsis">
2101
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;VERSION_OPTION_HELP_TEXT
2102
-    </span>
2103
-  </a>
2104
-  
2105
-</li>
2106
-        
2107
-          <li class="md-nav__item">
2108
-  <a href="#derivepassphrase._internals.cli_messages.Label.COMMANDS_LABEL" class="md-nav__link">
2109
-    <span class="md-ellipsis">
2110
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;COMMANDS_LABEL
2111
-    </span>
2112
-  </a>
2113
-  
2114
-</li>
2115
-        
2116
-          <li class="md-nav__item">
2117
-  <a href="#derivepassphrase._internals.cli_messages.Label.COMPATIBILITY_OPTION_LABEL" class="md-nav__link">
2118
-    <span class="md-ellipsis">
2119
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;COMPATIBILITY_OPTION_LABEL
2120
-    </span>
2121
-  </a>
2122
-  
2123
-</li>
2124
-        
2125
-          <li class="md-nav__item">
2126
-  <a href="#derivepassphrase._internals.cli_messages.Label.CONFIGURATION_LABEL" class="md-nav__link">
2127
-    <span class="md-ellipsis">
2128
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;CONFIGURATION_LABEL
2129
-    </span>
2130
-  </a>
2131
-  
2132
-</li>
2133
-        
2134
-          <li class="md-nav__item">
2135
-  <a href="#derivepassphrase._internals.cli_messages.Label.LOGGING_LABEL" class="md-nav__link">
2136
-    <span class="md-ellipsis">
2137
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;LOGGING_LABEL
2138
-    </span>
2139
-  </a>
2140
-  
2141
-</li>
2142
-        
2143
-          <li class="md-nav__item">
2144
-  <a href="#derivepassphrase._internals.cli_messages.Label.OPTIONS_LABEL" class="md-nav__link">
2145
-    <span class="md-ellipsis">
2146
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;OPTIONS_LABEL
2147
-    </span>
2148
-  </a>
2149
-  
2150
-</li>
2151
-        
2152
-          <li class="md-nav__item">
2153
-  <a href="#derivepassphrase._internals.cli_messages.Label.OTHER_OPTIONS_LABEL" class="md-nav__link">
2154
-    <span class="md-ellipsis">
2155
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;OTHER_OPTIONS_LABEL
2156
-    </span>
2157
-  </a>
2158
-  
2159
-</li>
2160
-        
2161
-          <li class="md-nav__item">
2162
-  <a href="#derivepassphrase._internals.cli_messages.Label.PASSPHRASE_GENERATION_LABEL" class="md-nav__link">
2163
-    <span class="md-ellipsis">
2164
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;PASSPHRASE_GENERATION_LABEL
2165
-    </span>
2166
-  </a>
2167
-  
2168
-</li>
2169
-        
2170
-          <li class="md-nav__item">
2171
-  <a href="#derivepassphrase._internals.cli_messages.Label.STORAGE_MANAGEMENT_LABEL" class="md-nav__link">
2172
-    <span class="md-ellipsis">
2173
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;STORAGE_MANAGEMENT_LABEL
2174
-    </span>
2175
-  </a>
2176
-  
2177
-</li>
2178
-        
2179
-          <li class="md-nav__item">
2180
-  <a href="#derivepassphrase._internals.cli_messages.Label.VERSION_INFO_MAJOR_LIBRARY_TEXT" class="md-nav__link">
2181
-    <span class="md-ellipsis">
2182
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;VERSION_INFO_MAJOR_LIBRARY_TEXT
2183
-    </span>
2184
-  </a>
2185
-  
2186
-</li>
2187
-        
2188
-          <li class="md-nav__item">
2189
-  <a href="#derivepassphrase._internals.cli_messages.Label.ENABLED_PEP508_EXTRAS" class="md-nav__link">
2190
-    <span class="md-ellipsis">
2191
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;ENABLED_PEP508_EXTRAS
2192
-    </span>
2193
-  </a>
2194
-  
2195
-</li>
2196
-        
2197
-          <li class="md-nav__item">
2198
-  <a href="#derivepassphrase._internals.cli_messages.Label.SUPPORTED_DERIVATION_SCHEMES" class="md-nav__link">
2199
-    <span class="md-ellipsis">
2200
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;SUPPORTED_DERIVATION_SCHEMES
2201
-    </span>
2202
-  </a>
2203
-  
2204
-</li>
2205
-        
2206
-          <li class="md-nav__item">
2207
-  <a href="#derivepassphrase._internals.cli_messages.Label.SUPPORTED_FEATURES" class="md-nav__link">
2208
-    <span class="md-ellipsis">
2209
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;SUPPORTED_FEATURES
2210
-    </span>
2211
-  </a>
2212
-  
2213
-</li>
2214
-        
2215
-          <li class="md-nav__item">
2216
-  <a href="#derivepassphrase._internals.cli_messages.Label.SUPPORTED_FOREIGN_CONFIGURATION_FORMATS" class="md-nav__link">
2217
-    <span class="md-ellipsis">
2218
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;SUPPORTED_FOREIGN_CONFIGURATION_FORMATS
2219
-    </span>
2220
-  </a>
2221
-  
2222
-</li>
2223
-        
2224
-          <li class="md-nav__item">
2225
-  <a href="#derivepassphrase._internals.cli_messages.Label.SUPPORTED_SUBCOMMANDS" class="md-nav__link">
2226
-    <span class="md-ellipsis">
2227
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;SUPPORTED_SUBCOMMANDS
2228
-    </span>
2229
-  </a>
2230
-  
2231
-</li>
2232
-        
2233
-          <li class="md-nav__item">
2234
-  <a href="#derivepassphrase._internals.cli_messages.Label.UNAVAILABLE_DERIVATION_SCHEMES" class="md-nav__link">
2235
-    <span class="md-ellipsis">
2236
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;UNAVAILABLE_DERIVATION_SCHEMES
2237
-    </span>
2238
-  </a>
2239
-  
2240
-</li>
2241
-        
2242
-          <li class="md-nav__item">
2243
-  <a href="#derivepassphrase._internals.cli_messages.Label.UNAVAILABLE_FEATURES" class="md-nav__link">
2244
-    <span class="md-ellipsis">
2245
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;UNAVAILABLE_FEATURES
2246
-    </span>
2247
-  </a>
2248
-  
2249
-</li>
2250
-        
2251
-          <li class="md-nav__item">
2252
-  <a href="#derivepassphrase._internals.cli_messages.Label.UNAVAILABLE_FOREIGN_CONFIGURATION_FORMATS" class="md-nav__link">
2253
-    <span class="md-ellipsis">
2254
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;UNAVAILABLE_FOREIGN_CONFIGURATION_FORMATS
2255
-    </span>
2256
-  </a>
2257
-  
2258
-</li>
2259
-        
2260
-          <li class="md-nav__item">
2261
-  <a href="#derivepassphrase._internals.cli_messages.Label.CONFIRM_THIS_CHOICE_PROMPT_TEXT" class="md-nav__link">
2262
-    <span class="md-ellipsis">
2263
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;CONFIRM_THIS_CHOICE_PROMPT_TEXT
2264
-    </span>
2265
-  </a>
2266
-  
2267
-</li>
2268
-        
2269
-          <li class="md-nav__item">
2270
-  <a href="#derivepassphrase._internals.cli_messages.Label.SUITABLE_SSH_KEYS_LABEL" class="md-nav__link">
2271
-    <span class="md-ellipsis">
2272
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;SUITABLE_SSH_KEYS_LABEL
2273
-    </span>
2274
-  </a>
2275
-  
2276
-</li>
2277
-        
2278
-          <li class="md-nav__item">
2279
-  <a href="#derivepassphrase._internals.cli_messages.Label.YOUR_SELECTION_PROMPT_TEXT" class="md-nav__link">
2280
-    <span class="md-ellipsis">
2281
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;YOUR_SELECTION_PROMPT_TEXT
2282
-    </span>
2283
-  </a>
2284
-  
2285
-</li>
2286
-        
2287
-      </ul>
2288
-    </nav>
2289
-  
2290
-</li>
2291
-      
2292
-        <li class="md-nav__item">
2293
-  <a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate" class="md-nav__link">
2294
-    <span class="md-ellipsis">
2295
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;DebugMsgTemplate
2296
-    </span>
2297
-  </a>
2298
-  
2299
-    <nav class="md-nav" aria-label=" DebugMsgTemplate">
2300
-      <ul class="md-nav__list">
2301
-        
2302
-          <li class="md-nav__item">
2303
-  <a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.BUCKET_ITEM_FOUND" class="md-nav__link">
2304
-    <span class="md-ellipsis">
2305
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;BUCKET_ITEM_FOUND
2306
-    </span>
2307
-  </a>
2308
-  
2309
-</li>
2310
-        
2311
-          <li class="md-nav__item">
2312
-  <a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.DECRYPT_BUCKET_ITEM_INFO" class="md-nav__link">
2313
-    <span class="md-ellipsis">
2314
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DECRYPT_BUCKET_ITEM_INFO
2315
-    </span>
2316
-  </a>
2317
-  
2318
-</li>
2319
-        
2320
-          <li class="md-nav__item">
2321
-  <a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.DECRYPT_BUCKET_ITEM_KEY_INFO" class="md-nav__link">
2322
-    <span class="md-ellipsis">
2323
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DECRYPT_BUCKET_ITEM_KEY_INFO
2324
-    </span>
2325
-  </a>
2326
-  
2327
-</li>
2328
-        
2329
-          <li class="md-nav__item">
2330
-  <a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.DECRYPT_BUCKET_ITEM_MAC_INFO" class="md-nav__link">
2331
-    <span class="md-ellipsis">
2332
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DECRYPT_BUCKET_ITEM_MAC_INFO
2333
-    </span>
2334
-  </a>
2335
-  
2336
-</li>
2337
-        
2338
-          <li class="md-nav__item">
2339
-  <a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.DECRYPT_BUCKET_ITEM_SESSION_KEYS_INFO" class="md-nav__link">
2340
-    <span class="md-ellipsis">
2341
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DECRYPT_BUCKET_ITEM_SESSION_KEYS_INFO
2342
-    </span>
2343
-  </a>
2344
-  
2345
-</li>
2346
-        
2347
-          <li class="md-nav__item">
2348
-  <a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.DECRYPT_BUCKET_ITEM_SESSION_KEYS_MAC_INFO" class="md-nav__link">
2349
-    <span class="md-ellipsis">
2350
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DECRYPT_BUCKET_ITEM_SESSION_KEYS_MAC_INFO
2351
-    </span>
2352
-  </a>
2353
-  
2354
-</li>
2355
-        
2356
-          <li class="md-nav__item">
2357
-  <a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.DERIVED_MASTER_KEYS_KEYS" class="md-nav__link">
2358
-    <span class="md-ellipsis">
2359
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DERIVED_MASTER_KEYS_KEYS
2360
-    </span>
2361
-  </a>
2362
-  
2363
-</li>
2364
-        
2365
-          <li class="md-nav__item">
2366
-  <a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.DIRECTORY_CONTENTS_CHECK_OK" class="md-nav__link">
2367
-    <span class="md-ellipsis">
2368
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DIRECTORY_CONTENTS_CHECK_OK
2369
-    </span>
2370
-  </a>
2371
-  
2372
-</li>
2373
-        
2374
-          <li class="md-nav__item">
2375
-  <a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.MASTER_KEYS_DATA_MAC_INFO" class="md-nav__link">
2376
-    <span class="md-ellipsis">
2377
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;MASTER_KEYS_DATA_MAC_INFO
2378
-    </span>
2379
-  </a>
2380
-  
2381
-</li>
2382
-        
2383
-          <li class="md-nav__item">
2384
-  <a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.POSTPONING_DIRECTORY_CONTENTS_CHECK" class="md-nav__link">
2385
-    <span class="md-ellipsis">
2386
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;POSTPONING_DIRECTORY_CONTENTS_CHECK
2387
-    </span>
2388
-  </a>
2389
-  
2390
-</li>
2391
-        
2392
-          <li class="md-nav__item">
2393
-  <a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.SETTING_CONFIG_STRUCTURE_CONTENTS" class="md-nav__link">
2394
-    <span class="md-ellipsis">
2395
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;SETTING_CONFIG_STRUCTURE_CONTENTS
2396
-    </span>
2397
-  </a>
2398
-  
2399
-</li>
2400
-        
2401
-          <li class="md-nav__item">
2402
-  <a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.SETTING_CONFIG_STRUCTURE_CONTENTS_EMPTY_DIRECTORY" class="md-nav__link">
2403
-    <span class="md-ellipsis">
2404
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;SETTING_CONFIG_STRUCTURE_CONTENTS_EMPTY_DIRECTORY
2405
-    </span>
2406
-  </a>
2407
-  
2408
-</li>
2409
-        
2410
-          <li class="md-nav__item">
2411
-  <a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_CHECKING_MAC_DETAILS" class="md-nav__link">
2412
-    <span class="md-ellipsis">
2413
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;VAULT_NATIVE_CHECKING_MAC_DETAILS
2414
-    </span>
2415
-  </a>
2416
-  
2417
-</li>
2418
-        
2419
-          <li class="md-nav__item">
2420
-  <a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_EVP_BYTESTOKEY_INIT" class="md-nav__link">
2421
-    <span class="md-ellipsis">
2422
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;VAULT_NATIVE_EVP_BYTESTOKEY_INIT
2423
-    </span>
2424
-  </a>
2425
-  
2426
-</li>
2427
-        
2428
-          <li class="md-nav__item">
2429
-  <a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_EVP_BYTESTOKEY_RESULT" class="md-nav__link">
2430
-    <span class="md-ellipsis">
2431
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;VAULT_NATIVE_EVP_BYTESTOKEY_RESULT
2432
-    </span>
2433
-  </a>
2434
-  
2435
-</li>
2436
-        
2437
-          <li class="md-nav__item">
2438
-  <a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_EVP_BYTESTOKEY_ROUND" class="md-nav__link">
2439
-    <span class="md-ellipsis">
2440
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;VAULT_NATIVE_EVP_BYTESTOKEY_ROUND
2441
-    </span>
2442
-  </a>
2443
-  
2444
-</li>
2445
-        
2446
-          <li class="md-nav__item">
2447
-  <a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_PADDED_PLAINTEXT" class="md-nav__link">
2448
-    <span class="md-ellipsis">
2449
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;VAULT_NATIVE_PADDED_PLAINTEXT
2450
-    </span>
2451
-  </a>
2452
-  
2453
-</li>
2454
-        
2455
-          <li class="md-nav__item">
2456
-  <a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_PARSE_BUFFER" class="md-nav__link">
2457
-    <span class="md-ellipsis">
2458
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;VAULT_NATIVE_PARSE_BUFFER
2459
-    </span>
2460
-  </a>
2461
-  
2462
-</li>
2463
-        
2464
-          <li class="md-nav__item">
2465
-  <a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_PBKDF2_CALL" class="md-nav__link">
2466
-    <span class="md-ellipsis">
2467
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;VAULT_NATIVE_PBKDF2_CALL
2468
-    </span>
2469
-  </a>
2470
-  
2471
-</li>
2472
-        
2473
-          <li class="md-nav__item">
2474
-  <a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_PLAINTEXT" class="md-nav__link">
2475
-    <span class="md-ellipsis">
2476
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;VAULT_NATIVE_PLAINTEXT
2477
-    </span>
2478
-  </a>
2479
-  
2480
-</li>
2481
-        
2482
-          <li class="md-nav__item">
2483
-  <a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_V02_PAYLOAD_MAC_POSTPROCESSING" class="md-nav__link">
2484
-    <span class="md-ellipsis">
2485
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;VAULT_NATIVE_V02_PAYLOAD_MAC_POSTPROCESSING
2486
-    </span>
2487
-  </a>
2488
-  
2489
-</li>
2490
-        
2491
-      </ul>
2492
-    </nav>
2493
-  
2494
-</li>
2495
-      
2496
-        <li class="md-nav__item">
2497
-  <a href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate" class="md-nav__link">
2498
-    <span class="md-ellipsis">
2499
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;InfoMsgTemplate
2500
-    </span>
2501
-  </a>
2502
-  
2503
-    <nav class="md-nav" aria-label=" InfoMsgTemplate">
2504
-      <ul class="md-nav__list">
2505
-        
2506
-          <li class="md-nav__item">
2507
-  <a href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate.ASSEMBLING_CONFIG_STRUCTURE" class="md-nav__link">
2508
-    <span class="md-ellipsis">
2509
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;ASSEMBLING_CONFIG_STRUCTURE
2510
-    </span>
2511
-  </a>
2512
-  
2513
-</li>
2514
-        
2515
-          <li class="md-nav__item">
2516
-  <a href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate.CANNOT_LOAD_AS_VAULT_CONFIG" class="md-nav__link">
2517
-    <span class="md-ellipsis">
2518
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;CANNOT_LOAD_AS_VAULT_CONFIG
2519
-    </span>
2520
-  </a>
2521
-  
2522
-</li>
2523
-        
2524
-          <li class="md-nav__item">
2525
-  <a href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate.CHECKING_CONFIG_STRUCTURE_CONSISTENCY" class="md-nav__link">
2526
-    <span class="md-ellipsis">
2527
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;CHECKING_CONFIG_STRUCTURE_CONSISTENCY
2528
-    </span>
2529
-  </a>
2530
-  
2531
-</li>
2532
-        
2533
-          <li class="md-nav__item">
2534
-  <a href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate.DECRYPTING_BUCKET" class="md-nav__link">
2535
-    <span class="md-ellipsis">
2536
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;DECRYPTING_BUCKET
2537
-    </span>
2538
-  </a>
2539
-  
2540
-</li>
2541
-        
2542
-          <li class="md-nav__item">
2543
-  <a href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate.PARSING_MASTER_KEYS_DATA" class="md-nav__link">
2544
-    <span class="md-ellipsis">
2545
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;PARSING_MASTER_KEYS_DATA
2546
-    </span>
2547
-  </a>
2548
-  
2549
-</li>
2550
-        
2551
-          <li class="md-nav__item">
2552
-  <a href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate.PIP_INSTALL_EXTRA" class="md-nav__link">
2553
-    <span class="md-ellipsis">
2554
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;PIP_INSTALL_EXTRA
2555
-    </span>
2556
-  </a>
2557
-  
2558
-</li>
2559
-        
2560
-          <li class="md-nav__item">
2561
-  <a href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate.SUCCESSFULLY_MIGRATED" class="md-nav__link">
2562
-    <span class="md-ellipsis">
2563
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;SUCCESSFULLY_MIGRATED
2564
-    </span>
2565
-  </a>
2566
-  
2567
-</li>
2568
-        
2569
-          <li class="md-nav__item">
2570
-  <a href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate.VAULT_NATIVE_CHECKING_MAC" class="md-nav__link">
2571
-    <span class="md-ellipsis">
2572
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;VAULT_NATIVE_CHECKING_MAC
2573
-    </span>
2574
-  </a>
2575
-  
2576
-</li>
2577
-        
2578
-          <li class="md-nav__item">
2579
-  <a href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate.VAULT_NATIVE_DECRYPTING_CONTENTS" class="md-nav__link">
2580
-    <span class="md-ellipsis">
2581
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;VAULT_NATIVE_DECRYPTING_CONTENTS
2582
-    </span>
2583
-  </a>
2584
-  
2585
-</li>
2586
-        
2587
-          <li class="md-nav__item">
2588
-  <a href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate.VAULT_NATIVE_DERIVING_KEYS" class="md-nav__link">
2589
-    <span class="md-ellipsis">
2590
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;VAULT_NATIVE_DERIVING_KEYS
2591
-    </span>
2592
-  </a>
2593
-  
2594
-</li>
2595
-        
2596
-          <li class="md-nav__item">
2597
-  <a href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate.VAULT_NATIVE_PARSING_IV_PAYLOAD_MAC" class="md-nav__link">
2598
-    <span class="md-ellipsis">
2599
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;VAULT_NATIVE_PARSING_IV_PAYLOAD_MAC
2600
-    </span>
2601
-  </a>
2602
-  
2603
-</li>
2604
-        
2605
-      </ul>
2606
-    </nav>
2607
-  
2608
-</li>
2609
-      
2610
-        <li class="md-nav__item">
2611
-  <a href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate" class="md-nav__link">
2612
-    <span class="md-ellipsis">
2613
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;WarnMsgTemplate
2614
-    </span>
2615
-  </a>
2616
-  
2617
-    <nav class="md-nav" aria-label=" WarnMsgTemplate">
2618
-      <ul class="md-nav__list">
2619
-        
2620
-          <li class="md-nav__item">
2621
-  <a href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate.EMPTY_SERVICE_NOT_SUPPORTED" class="md-nav__link">
2622
-    <span class="md-ellipsis">
2623
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;EMPTY_SERVICE_NOT_SUPPORTED
2624
-    </span>
2625
-  </a>
2626
-  
2627
-</li>
2628
-        
2629
-          <li class="md-nav__item">
2630
-  <a href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate.EMPTY_SERVICE_SETTINGS_INACCESSIBLE" class="md-nav__link">
2631
-    <span class="md-ellipsis">
2632
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;EMPTY_SERVICE_SETTINGS_INACCESSIBLE
2633
-    </span>
2634
-  </a>
2635
-  
2636
-</li>
2637
-        
2638
-          <li class="md-nav__item">
2639
-  <a href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate.FAILED_TO_MIGRATE_CONFIG" class="md-nav__link">
2640
-    <span class="md-ellipsis">
2641
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;FAILED_TO_MIGRATE_CONFIG
2642
-    </span>
2643
-  </a>
2644
-  
2645
-</li>
2646
-        
2647
-          <li class="md-nav__item">
2648
-  <a href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate.GLOBAL_PASSPHRASE_INEFFECTIVE" class="md-nav__link">
2649
-    <span class="md-ellipsis">
2650
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;GLOBAL_PASSPHRASE_INEFFECTIVE
2651
-    </span>
2652
-  </a>
2653
-  
2654
-</li>
2655
-        
2656
-          <li class="md-nav__item">
2657
-  <a href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate.PASSPHRASE_NOT_NORMALIZED" class="md-nav__link">
2658
-    <span class="md-ellipsis">
2659
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;PASSPHRASE_NOT_NORMALIZED
2660
-    </span>
2661
-  </a>
2662
-  
2663
-</li>
2664
-        
2665
-          <li class="md-nav__item">
2666
-  <a href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate.SERVICE_NAME_INCOMPLETABLE" class="md-nav__link">
2667
-    <span class="md-ellipsis">
2668
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;SERVICE_NAME_INCOMPLETABLE
2669
-    </span>
2670
-  </a>
2671
-  
2672
-</li>
2673
-        
2674
-          <li class="md-nav__item">
2675
-  <a href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate.SERVICE_PASSPHRASE_INEFFECTIVE" class="md-nav__link">
2676
-    <span class="md-ellipsis">
2677
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;SERVICE_PASSPHRASE_INEFFECTIVE
2678
-    </span>
2679
-  </a>
2680
-  
2681
-</li>
2682
-        
2683
-          <li class="md-nav__item">
2684
-  <a href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate.STEP_REMOVE_INEFFECTIVE_VALUE" class="md-nav__link">
2685
-    <span class="md-ellipsis">
2686
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;STEP_REMOVE_INEFFECTIVE_VALUE
2687
-    </span>
2688
-  </a>
2689
-  
2690
-</li>
2691
-        
2692
-          <li class="md-nav__item">
2693
-  <a href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate.STEP_REPLACE_INVALID_VALUE" class="md-nav__link">
2694
-    <span class="md-ellipsis">
2695
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;STEP_REPLACE_INVALID_VALUE
2696
-    </span>
2697
-  </a>
2698
-  
2699
-</li>
2700
-        
2701
-          <li class="md-nav__item">
2702
-  <a href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate.V01_STYLE_CONFIG" class="md-nav__link">
2703
-    <span class="md-ellipsis">
2704
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;V01_STYLE_CONFIG
2705
-    </span>
2706
-  </a>
2707
-  
2708
-</li>
2709
-        
2710
-          <li class="md-nav__item">
2711
-  <a href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate.V10_SUBCOMMAND_REQUIRED" class="md-nav__link">
2712
-    <span class="md-ellipsis">
2713
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;V10_SUBCOMMAND_REQUIRED
2714
-    </span>
2715
-  </a>
2716
-  
2717
-</li>
2718
-        
2719
-      </ul>
2720
-    </nav>
2721
-  
2722
-</li>
2723
-      
2724
-        <li class="md-nav__item">
2725
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate" class="md-nav__link">
2726
-    <span class="md-ellipsis">
2727
-      <code class="doc-symbol doc-symbol-toc doc-symbol-class"></code>&nbsp;ErrMsgTemplate
2728
-    </span>
2729
-  </a>
2730
-  
2731
-    <nav class="md-nav" aria-label=" ErrMsgTemplate">
2732
-      <ul class="md-nav__list">
2733
-        
2734
-          <li class="md-nav__item">
2735
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.AGENT_REFUSED_LIST_KEYS" class="md-nav__link">
2736
-    <span class="md-ellipsis">
2737
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;AGENT_REFUSED_LIST_KEYS
2738
-    </span>
2739
-  </a>
2740
-  
2741
-</li>
2742
-        
2743
-          <li class="md-nav__item">
2744
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.AGENT_REFUSED_SIGNATURE" class="md-nav__link">
2745
-    <span class="md-ellipsis">
2746
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;AGENT_REFUSED_SIGNATURE
2747
-    </span>
2748
-  </a>
2749
-  
2750
-</li>
2751
-        
2752
-          <li class="md-nav__item">
2753
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_CONNECT_TO_AGENT" class="md-nav__link">
2754
-    <span class="md-ellipsis">
2755
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;CANNOT_CONNECT_TO_AGENT
2756
-    </span>
2757
-  </a>
2758
-  
2759
-</li>
2760
-        
2761
-          <li class="md-nav__item">
2762
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_DECODEIMPORT_VAULT_SETTINGS" class="md-nav__link">
2763
-    <span class="md-ellipsis">
2764
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;CANNOT_DECODEIMPORT_VAULT_SETTINGS
2765
-    </span>
2766
-  </a>
2767
-  
2768
-</li>
2769
-        
2770
-          <li class="md-nav__item">
2771
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_EXPORT_VAULT_SETTINGS" class="md-nav__link">
2772
-    <span class="md-ellipsis">
2773
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;CANNOT_EXPORT_VAULT_SETTINGS
2774
-    </span>
2775
-  </a>
2776
-  
2777
-</li>
2778
-        
2779
-          <li class="md-nav__item">
2780
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_IMPORT_VAULT_SETTINGS" class="md-nav__link">
2781
-    <span class="md-ellipsis">
2782
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;CANNOT_IMPORT_VAULT_SETTINGS
2783
-    </span>
2784
-  </a>
2785
-  
2786
-</li>
2787
-        
2788
-          <li class="md-nav__item">
2789
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_LOAD_USER_CONFIG" class="md-nav__link">
2790
-    <span class="md-ellipsis">
2791
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;CANNOT_LOAD_USER_CONFIG
2792
-    </span>
2793
-  </a>
2794
-  
2795
-</li>
2796
-        
2797
-          <li class="md-nav__item">
2798
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_LOAD_VAULT_SETTINGS" class="md-nav__link">
2799
-    <span class="md-ellipsis">
2800
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;CANNOT_LOAD_VAULT_SETTINGS
2801
-    </span>
2802
-  </a>
2803
-  
2804
-</li>
2805
-        
2806
-          <li class="md-nav__item">
2807
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_PARSE_AS_VAULT_CONFIG" class="md-nav__link">
2808
-    <span class="md-ellipsis">
2809
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;CANNOT_PARSE_AS_VAULT_CONFIG
2810
-    </span>
2811
-  </a>
2812
-  
2813
-</li>
2814
-        
2815
-          <li class="md-nav__item">
2816
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_PARSE_AS_VAULT_CONFIG_OSERROR" class="md-nav__link">
2817
-    <span class="md-ellipsis">
2818
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;CANNOT_PARSE_AS_VAULT_CONFIG_OSERROR
2819
-    </span>
2820
-  </a>
2821
-  
2822
-</li>
2823
-        
2824
-          <li class="md-nav__item">
2825
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_STORE_VAULT_SETTINGS" class="md-nav__link">
2826
-    <span class="md-ellipsis">
2827
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;CANNOT_STORE_VAULT_SETTINGS
2828
-    </span>
2829
-  </a>
2830
-  
2831
-</li>
2832
-        
2833
-          <li class="md-nav__item">
2834
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_UNDERSTAND_AGENT" class="md-nav__link">
2835
-    <span class="md-ellipsis">
2836
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;CANNOT_UNDERSTAND_AGENT
2837
-    </span>
2838
-  </a>
2839
-  
2840
-</li>
2841
-        
2842
-          <li class="md-nav__item">
2843
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_UPDATE_SETTINGS_NO_SETTINGS" class="md-nav__link">
2844
-    <span class="md-ellipsis">
2845
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;CANNOT_UPDATE_SETTINGS_NO_SETTINGS
2846
-    </span>
2847
-  </a>
2848
-  
2849
-</li>
2850
-        
2851
-          <li class="md-nav__item">
2852
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.INVALID_USER_CONFIG" class="md-nav__link">
2853
-    <span class="md-ellipsis">
2854
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;INVALID_USER_CONFIG
2855
-    </span>
2856
-  </a>
2857
-  
2858
-</li>
2859
-        
2860
-          <li class="md-nav__item">
2861
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.INVALID_VAULT_CONFIG" class="md-nav__link">
2862
-    <span class="md-ellipsis">
2863
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;INVALID_VAULT_CONFIG
2864
-    </span>
2865
-  </a>
2866
-  
2867
-</li>
2868
-        
2869
-          <li class="md-nav__item">
2870
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.MISSING_MODULE" class="md-nav__link">
2871
-    <span class="md-ellipsis">
2872
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;MISSING_MODULE
2873
-    </span>
2874
-  </a>
2875
-  
2876
-</li>
2877
-        
2878
-          <li class="md-nav__item">
2879
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.NO_AF_UNIX" class="md-nav__link">
2880
-    <span class="md-ellipsis">
2881
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;NO_AF_UNIX
2882
-    </span>
2883
-  </a>
2884
-  
2885
-</li>
2886
-        
2887
-          <li class="md-nav__item">
2888
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.NO_KEY_OR_PHRASE" class="md-nav__link">
2889
-    <span class="md-ellipsis">
2890
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;NO_KEY_OR_PHRASE
2891
-    </span>
2892
-  </a>
2893
-  
2894
-</li>
2895
-        
2896
-          <li class="md-nav__item">
2897
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.NO_SSH_AGENT_FOUND" class="md-nav__link">
2898
-    <span class="md-ellipsis">
2899
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;NO_SSH_AGENT_FOUND
2900
-    </span>
2901
-  </a>
2902
-  
2903
-</li>
2904
-        
2905
-          <li class="md-nav__item">
2906
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.NO_SUITABLE_SSH_KEYS" class="md-nav__link">
2907
-    <span class="md-ellipsis">
2908
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;NO_SUITABLE_SSH_KEYS
2909
-    </span>
2910
-  </a>
2911
-  
2912
-</li>
2913
-        
2914
-          <li class="md-nav__item">
2915
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.PARAMS_MUTUALLY_EXCLUSIVE" class="md-nav__link">
2916
-    <span class="md-ellipsis">
2917
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;PARAMS_MUTUALLY_EXCLUSIVE
2918
-    </span>
2919
-  </a>
2920
-  
2921
-</li>
2922
-        
2923
-          <li class="md-nav__item">
2924
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.PARAMS_NEEDS_SERVICE" class="md-nav__link">
2925
-    <span class="md-ellipsis">
2926
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;PARAMS_NEEDS_SERVICE
2927
-    </span>
2928
-  </a>
2929
-  
2930
-</li>
2931
-        
2932
-          <li class="md-nav__item">
2933
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.PARAMS_NEEDS_SERVICE_OR_CONFIG" class="md-nav__link">
2934
-    <span class="md-ellipsis">
2935
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;PARAMS_NEEDS_SERVICE_OR_CONFIG
2936
-    </span>
2937
-  </a>
2938
-  
2939
-</li>
2940
-        
2941
-          <li class="md-nav__item">
2942
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.PARAMS_NO_SERVICE" class="md-nav__link">
2943
-    <span class="md-ellipsis">
2944
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;PARAMS_NO_SERVICE
2945
-    </span>
2946
-  </a>
2947
-  
2948
-</li>
2949
-        
2950
-          <li class="md-nav__item">
2951
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.SERVICE_REQUIRED" class="md-nav__link">
2952
-    <span class="md-ellipsis">
2953
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;SERVICE_REQUIRED
2954
-    </span>
2955
-  </a>
2956
-  
2957
-</li>
2958
-        
2959
-          <li class="md-nav__item">
2960
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.SET_AND_UNSET_SAME_SETTING" class="md-nav__link">
2961
-    <span class="md-ellipsis">
2962
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;SET_AND_UNSET_SAME_SETTING
2963
-    </span>
2964
-  </a>
2965
-  
2966
-</li>
2967
-        
2968
-          <li class="md-nav__item">
2969
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.SSH_KEY_NOT_LOADED" class="md-nav__link">
2970
-    <span class="md-ellipsis">
2971
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;SSH_KEY_NOT_LOADED
2972
-    </span>
2973
-  </a>
2974
-  
2975
-</li>
2976
-        
2977
-          <li class="md-nav__item">
2978
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.USER_ABORTED_EDIT" class="md-nav__link">
2979
-    <span class="md-ellipsis">
2980
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;USER_ABORTED_EDIT
2981
-    </span>
2982
-  </a>
2983
-  
2984
-</li>
2985
-        
2986
-          <li class="md-nav__item">
2987
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.USER_ABORTED_PASSPHRASE" class="md-nav__link">
2988
-    <span class="md-ellipsis">
2989
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;USER_ABORTED_PASSPHRASE
2990
-    </span>
2991
-  </a>
2992
-  
2993
-</li>
2994
-        
2995
-          <li class="md-nav__item">
2996
-  <a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.USER_ABORTED_SSH_KEY_SELECTION" class="md-nav__link">
2997
-    <span class="md-ellipsis">
2998
-      <code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;USER_ABORTED_SSH_KEY_SELECTION
2999
-    </span>
3000
-  </a>
3001
-  
3002
-</li>
3003
-        
3004
-      </ul>
3005
-    </nav>
3006
-  
3007
-</li>
3008
-      
3009
-        <li class="md-nav__item">
3010
-  <a href="#derivepassphrase._internals.cli_messages.load_translations" class="md-nav__link">
3011
-    <span class="md-ellipsis">
3012
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;load_translations
3013
-    </span>
3014
-  </a>
3015
-  
3016
-</li>
3017
-      
3018
-        <li class="md-nav__item">
3019
-  <a href="#derivepassphrase._internals.cli_messages.translatable" class="md-nav__link">
3020
-    <span class="md-ellipsis">
3021
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;translatable
3022
-    </span>
3023
-  </a>
3024
-  
3025
-</li>
3026
-      
3027
-        <li class="md-nav__item">
3028
-  <a href="#derivepassphrase._internals.cli_messages.commented" class="md-nav__link">
3029
-    <span class="md-ellipsis">
3030
-      <code class="doc-symbol doc-symbol-toc doc-symbol-function"></code>&nbsp;commented
3031
-    </span>
3032
-  </a>
3033
-  
3034
-</li>
3035
-      
3036
-    </ul>
3037
-  
3038
-</nav>
3039
-                  </div>
3040
-                </div>
3041
-              </div>
3042
-            
3043
-          
3044
-          
3045
-            <div class="md-content" data-md-component="content">
3046
-              <article class="md-content__inner md-typeset">
3047
-                
3048
-                  
3049
-
3050
-
3051
-  
3052
-  
3053
-    
3054
-      
3055
-    
3056
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/reference/derivepassphrase._internals.cli_messages.md" title="View source of this page" class="md-content__button md-icon">
3057
-      
3058
-      <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>
3059
-    </a>
3060
-  
3061
-
3062
-
3063
-<div class="doc doc-object doc-module">
3064
-
3065
-
3066
-
3067
-<h1 id="derivepassphrase._internals.cli_messages" class="doc doc-heading">
3068
-<code class="doc-symbol doc-symbol-heading doc-symbol-module"></code>            <span class="doc doc-object-name doc-module-name">derivepassphrase._internals.cli_messages</span>
3069
-
3070
-
3071
-<a href="#derivepassphrase._internals.cli_messages" class="headerlink" title="Permanent link">&para;</a></h1>
3072
-
3073
-    <div class="doc doc-contents first">
3074
-
3075
-        <p>Messages for the command-line interface of <code>derivepassphrase</code>.</p>
3076
-<p>Also contains some machinery related to internationalization and
3077
-localization.</p>
3078
-<div class="admonition warning">
3079
-<p class="admonition-title">Warning</p>
3080
-<p>Non-public module (implementation detail), provided for didactical and
3081
-educational purposes only.  Subject to change without notice, including
3082
-removal.</p>
3083
-</div>
3084
-
3085
-
3086
-
3087
-
3088
-
3089
-
3090
-
3091
-
3092
-
3093
-  <div class="doc doc-children">
3094
-
3095
-
3096
-
3097
-
3098
-
3099
-
3100
-
3101
-<div class="doc doc-object doc-attribute">
3102
-
3103
-
3104
-
3105
-<h2 id="derivepassphrase._internals.cli_messages.MsgTemplate" class="doc doc-heading">
3106
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">MsgTemplate</span>
3107
-
3108
-
3109
-  <span class="doc doc-labels">
3110
-      <small class="doc doc-label doc-label-module-attribute"><code>module-attribute</code></small>
3111
-  </span>
3112
-
3113
-<a href="#derivepassphrase._internals.cli_messages.MsgTemplate" class="headerlink" title="Permanent link">&para;</a></h2>
3114
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">MsgTemplate</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="typing_extensions.TypeAlias" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.TypeAlias">TypeAlias</a></span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-external" title="typing.Union" href="https://docs.python.org/3/library/typing.html#typing.Union">Union</a></span><span class="p">[</span>
3115
-    <span class="n"><a class="autorefs autorefs-internal" title="            Label (derivepassphrase._internals.cli_messages.Label)" href="#derivepassphrase._internals.cli_messages.Label">Label</a></span><span class="p">,</span>
3116
-    <span class="n"><a class="autorefs autorefs-internal" title="            DebugMsgTemplate (derivepassphrase._internals.cli_messages.DebugMsgTemplate)" href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate">DebugMsgTemplate</a></span><span class="p">,</span>
3117
-    <span class="n"><a class="autorefs autorefs-internal" title="            InfoMsgTemplate (derivepassphrase._internals.cli_messages.InfoMsgTemplate)" href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate">InfoMsgTemplate</a></span><span class="p">,</span>
3118
-    <span class="n"><a class="autorefs autorefs-internal" title="            WarnMsgTemplate (derivepassphrase._internals.cli_messages.WarnMsgTemplate)" href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate">WarnMsgTemplate</a></span><span class="p">,</span>
3119
-    <span class="n"><a class="autorefs autorefs-internal" title="            ErrMsgTemplate (derivepassphrase._internals.cli_messages.ErrMsgTemplate)" href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate">ErrMsgTemplate</a></span><span class="p">,</span>
3120
-<span class="p">]</span>
3121
-</code></pre></div>
3122
-
3123
-    <div class="doc doc-contents ">
3124
-
3125
-        <p>A type alias for all enums containing translatable strings as values.</p>
3126
-
3127
-    </div>
3128
-
3129
-</div>
3130
-
3131
-<div class="doc doc-object doc-attribute">
3132
-
3133
-
3134
-
3135
-<h2 id="derivepassphrase._internals.cli_messages.MSG_TEMPLATE_CLASSES" class="doc doc-heading">
3136
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">MSG_TEMPLATE_CLASSES</span>
3137
-
3138
-
3139
-  <span class="doc doc-labels">
3140
-      <small class="doc doc-label doc-label-module-attribute"><code>module-attribute</code></small>
3141
-  </span>
3142
-
3143
-<a href="#derivepassphrase._internals.cli_messages.MSG_TEMPLATE_CLASSES" class="headerlink" title="Permanent link">&para;</a></h2>
3144
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">MSG_TEMPLATE_CLASSES</span> <span class="o">=</span> <span class="p">(</span>
3145
-    <span class="n"><a class="autorefs autorefs-internal" title="            Label (derivepassphrase._internals.cli_messages.Label)" href="#derivepassphrase._internals.cli_messages.Label">Label</a></span><span class="p">,</span>
3146
-    <span class="n"><a class="autorefs autorefs-internal" title="            DebugMsgTemplate (derivepassphrase._internals.cli_messages.DebugMsgTemplate)" href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate">DebugMsgTemplate</a></span><span class="p">,</span>
3147
-    <span class="n"><a class="autorefs autorefs-internal" title="            InfoMsgTemplate (derivepassphrase._internals.cli_messages.InfoMsgTemplate)" href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate">InfoMsgTemplate</a></span><span class="p">,</span>
3148
-    <span class="n"><a class="autorefs autorefs-internal" title="            WarnMsgTemplate (derivepassphrase._internals.cli_messages.WarnMsgTemplate)" href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate">WarnMsgTemplate</a></span><span class="p">,</span>
3149
-    <span class="n"><a class="autorefs autorefs-internal" title="            ErrMsgTemplate (derivepassphrase._internals.cli_messages.ErrMsgTemplate)" href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate">ErrMsgTemplate</a></span><span class="p">,</span>
3150
-<span class="p">)</span>
3151
-</code></pre></div>
3152
-
3153
-    <div class="doc doc-contents ">
3154
-
3155
-        <p>A collection all enums containing translatable strings as values.</p>
3156
-
3157
-    </div>
3158
-
3159
-</div>
3160
-
3161
-
3162
-<div class="doc doc-object doc-class">
3163
-
3164
-
3165
-
3166
-<h2 id="derivepassphrase._internals.cli_messages.DebugTranslations" class="doc doc-heading">
3167
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">DebugTranslations</span>
3168
-
3169
-
3170
-<a href="#derivepassphrase._internals.cli_messages.DebugTranslations" class="headerlink" title="Permanent link">&para;</a></h2>
3171
-
3172
-
3173
-    <div class="doc doc-contents ">
3174
-            <p class="doc doc-class-bases">
3175
-              Bases: <code><a class="autorefs autorefs-external" title="gettext.NullTranslations" href="https://docs.python.org/3/library/gettext.html#gettext.NullTranslations">NullTranslations</a></code></p>
3176
-
3177
-
3178
-
3179
-        <p>A debug object indicating which known message is being requested.</p>
3180
-<p>Each call to the <code>*gettext</code> methods will return the enum name if the
3181
-message is a known translatable message for the <code>derivepassphrase</code>
3182
-command-line interface, or the message itself otherwise.</p>
3183
-
3184
-
3185
-
3186
-
3187
-
3188
-
3189
-
3190
-
3191
-
3192
-
3193
-  <div class="doc doc-children">
3194
-
3195
-
3196
-
3197
-
3198
-
3199
-
3200
-
3201
-
3202
-
3203
-
3204
-
3205
-  </div>
3206
-
3207
-    </div>
3208
-
3209
-</div>
3210
-
3211
-<div class="doc doc-object doc-class">
3212
-
3213
-
3214
-
3215
-<h2 id="derivepassphrase._internals.cli_messages.TranslatableString" class="doc doc-heading">
3216
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">TranslatableString</span>
3217
-
3218
-
3219
-<a href="#derivepassphrase._internals.cli_messages.TranslatableString" class="headerlink" title="Permanent link">&para;</a></h2>
3220
-
3221
-
3222
-    <div class="doc doc-contents ">
3223
-            <p class="doc doc-class-bases">
3224
-              Bases: <code><a class="autorefs autorefs-external" title="typing.NamedTuple" href="https://docs.python.org/3/library/typing.html#typing.NamedTuple">NamedTuple</a></code></p>
3225
-
3226
-
3227
-
3228
-        <p>Translatable string as used by the <code>derivepassphrase</code> command-line.</p>
3229
-<p>For typing purposes.</p>
3230
-
3231
-
3232
-<p><span class="doc-section-title">Attributes:</span></p>
3233
-    <table>
3234
-      <thead>
3235
-        <tr>
3236
-          <th>Name</th>
3237
-          <th>Type</th>
3238
-          <th>Description</th>
3239
-        </tr>
3240
-      </thead>
3241
-      <tbody>
3242
-          <tr class="doc-section-item">
3243
-            <td><code><a class="autorefs autorefs-internal" title="            l10n_context
3244
-
3245
-
3246
-  
3247
-      instance-attribute
3248
-   (derivepassphrase._internals.cli_messages.TranslatableString.l10n_context)" href="#derivepassphrase._internals.cli_messages.TranslatableString.l10n_context">l10n_context</a></code></td>
3249
-            <td>
3250
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></code>
3251
-            </td>
3252
-            <td>
3253
-              <div class="doc-md-description">
3254
-                <p>The localization context, as per <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/gettext.html#module-gettext"><code>gettext</code></a>.  Used to
3255
-disambiguate different uses of the same translatable string.</p>
3256
-              </div>
3257
-            </td>
3258
-          </tr>
3259
-          <tr class="doc-section-item">
3260
-            <td><code><a class="autorefs autorefs-internal" title="            singular
3261
-
3262
-
3263
-  
3264
-      instance-attribute
3265
-   (derivepassphrase._internals.cli_messages.TranslatableString.singular)" href="#derivepassphrase._internals.cli_messages.TranslatableString.singular">singular</a></code></td>
3266
-            <td>
3267
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></code>
3268
-            </td>
3269
-            <td>
3270
-              <div class="doc-md-description">
3271
-                <p>The translatable message, base case.</p>
3272
-              </div>
3273
-            </td>
3274
-          </tr>
3275
-          <tr class="doc-section-item">
3276
-            <td><code><a class="autorefs autorefs-internal" title="            plural
3277
-
3278
-
3279
-  
3280
-      class-attribute
3281
-      instance-attribute
3282
-   (derivepassphrase._internals.cli_messages.TranslatableString.plural)" href="#derivepassphrase._internals.cli_messages.TranslatableString.plural">plural</a></code></td>
3283
-            <td>
3284
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></code>
3285
-            </td>
3286
-            <td>
3287
-              <div class="doc-md-description">
3288
-                <p>The translatable message, plural case.  Usually unset.</p>
3289
-              </div>
3290
-            </td>
3291
-          </tr>
3292
-          <tr class="doc-section-item">
3293
-            <td><code><a class="autorefs autorefs-internal" title="            translator_comments
3294
-
3295
-
3296
-  
3297
-      class-attribute
3298
-      instance-attribute
3299
-   (derivepassphrase._internals.cli_messages.TranslatableString.translator_comments)" href="#derivepassphrase._internals.cli_messages.TranslatableString.translator_comments">translator_comments</a></code></td>
3300
-            <td>
3301
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></code>
3302
-            </td>
3303
-            <td>
3304
-              <div class="doc-md-description">
3305
-                <p>Explicit commentary for the translator.</p>
3306
-              </div>
3307
-            </td>
3308
-          </tr>
3309
-          <tr class="doc-section-item">
3310
-            <td><code><a class="autorefs autorefs-internal" title="            flags
3311
-
3312
-
3313
-  
3314
-      class-attribute
3315
-      instance-attribute
3316
-   (derivepassphrase._internals.cli_messages.TranslatableString.flags)" href="#derivepassphrase._internals.cli_messages.TranslatableString.flags">flags</a></code></td>
3317
-            <td>
3318
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#frozenset">frozenset</a>[<a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a>]</code>
3319
-            </td>
3320
-            <td>
3321
-              <div class="doc-md-description">
3322
-                <p><code>.mo</code> file flags for this message, e.g. to indicate the
3323
-string formatting style in use.</p>
3324
-              </div>
3325
-            </td>
3326
-          </tr>
3327
-      </tbody>
3328
-    </table>
3329
-
3330
-
3331
-
3332
-
3333
-
3334
-
3335
-
3336
-
3337
-
3338
-
3339
-  <div class="doc doc-children">
3340
-
3341
-
3342
-
3343
-
3344
-
3345
-
3346
-
3347
-<div class="doc doc-object doc-attribute">
3348
-
3349
-
3350
-
3351
-<h3 id="derivepassphrase._internals.cli_messages.TranslatableString.l10n_context" class="doc doc-heading">
3352
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">l10n_context</span>
3353
-
3354
-
3355
-  <span class="doc doc-labels">
3356
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
3357
-  </span>
3358
-
3359
-<a href="#derivepassphrase._internals.cli_messages.TranslatableString.l10n_context" class="headerlink" title="Permanent link">&para;</a></h3>
3360
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">l10n_context</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>
3361
-</code></pre></div>
3362
-
3363
-    <div class="doc doc-contents ">
3364
-
3365
-        
3366
-
3367
-    </div>
3368
-
3369
-</div>
3370
-
3371
-<div class="doc doc-object doc-attribute">
3372
-
3373
-
3374
-
3375
-<h3 id="derivepassphrase._internals.cli_messages.TranslatableString.singular" class="doc doc-heading">
3376
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">singular</span>
3377
-
3378
-
3379
-  <span class="doc doc-labels">
3380
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
3381
-  </span>
3382
-
3383
-<a href="#derivepassphrase._internals.cli_messages.TranslatableString.singular" class="headerlink" title="Permanent link">&para;</a></h3>
3384
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">singular</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>
3385
-</code></pre></div>
3386
-
3387
-    <div class="doc doc-contents ">
3388
-
3389
-        
3390
-
3391
-    </div>
3392
-
3393
-</div>
3394
-
3395
-<div class="doc doc-object doc-attribute">
3396
-
3397
-
3398
-
3399
-<h3 id="derivepassphrase._internals.cli_messages.TranslatableString.plural" class="doc doc-heading">
3400
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">plural</span>
3401
-
3402
-
3403
-  <span class="doc doc-labels">
3404
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
3405
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
3406
-  </span>
3407
-
3408
-<a href="#derivepassphrase._internals.cli_messages.TranslatableString.plural" class="headerlink" title="Permanent link">&para;</a></h3>
3409
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">plural</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="s1">&#39;&#39;</span>
3410
-</code></pre></div>
3411
-
3412
-    <div class="doc doc-contents ">
3413
-
3414
-        
3415
-
3416
-    </div>
3417
-
3418
-</div>
3419
-
3420
-<div class="doc doc-object doc-attribute">
3421
-
3422
-
3423
-
3424
-<h3 id="derivepassphrase._internals.cli_messages.TranslatableString.flags" class="doc doc-heading">
3425
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">flags</span>
3426
-
3427
-
3428
-  <span class="doc doc-labels">
3429
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
3430
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
3431
-  </span>
3432
-
3433
-<a href="#derivepassphrase._internals.cli_messages.TranslatableString.flags" class="headerlink" title="Permanent link">&para;</a></h3>
3434
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">flags</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#frozenset">frozenset</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="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#frozenset">frozenset</a></span><span class="p">()</span>
3435
-</code></pre></div>
3436
-
3437
-    <div class="doc doc-contents ">
3438
-
3439
-        
3440
-
3441
-    </div>
3442
-
3443
-</div>
3444
-
3445
-<div class="doc doc-object doc-attribute">
3446
-
3447
-
3448
-
3449
-<h3 id="derivepassphrase._internals.cli_messages.TranslatableString.translator_comments" class="doc doc-heading">
3450
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">translator_comments</span>
3451
-
3452
-
3453
-  <span class="doc doc-labels">
3454
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
3455
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
3456
-  </span>
3457
-
3458
-<a href="#derivepassphrase._internals.cli_messages.TranslatableString.translator_comments" class="headerlink" title="Permanent link">&para;</a></h3>
3459
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">translator_comments</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="s1">&#39;&#39;</span>
3460
-</code></pre></div>
3461
-
3462
-    <div class="doc doc-contents ">
3463
-
3464
-        
3465
-
3466
-    </div>
3467
-
3468
-</div>
3469
-
3470
-
3471
-
3472
-<div class="doc doc-object doc-function">
3473
-
3474
-
3475
-<h3 id="derivepassphrase._internals.cli_messages.TranslatableString.fields" class="doc doc-heading">
3476
-<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code>            <span class="doc doc-object-name doc-function-name">fields</span>
3477
-
3478
-
3479
-<a href="#derivepassphrase._internals.cli_messages.TranslatableString.fields" class="headerlink" title="Permanent link">&para;</a></h3>
3480
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">fields</span><span class="p">()</span> <span class="o">-&gt;</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>
3481
-</code></pre></div>
3482
-
3483
-    <div class="doc doc-contents ">
3484
-
3485
-        <p>Return the replacement fields this template requires.</p>
3486
-
3487
-
3488
-<p><span class="doc-section-title">Raises:</span></p>
3489
-    <table>
3490
-      <thead>
3491
-        <tr>
3492
-          <th>Type</th>
3493
-          <th>Description</th>
3494
-        </tr>
3495
-      </thead>
3496
-      <tbody>
3497
-          <tr class="doc-section-item">
3498
-            <td>
3499
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#NotImplementedError">NotImplementedError</a></code>
3500
-            </td>
3501
-            <td>
3502
-              <div class="doc-md-description">
3503
-                <p>Replacement field discovery for %-formatting is not
3504
-implemented.</p>
3505
-              </div>
3506
-            </td>
3507
-          </tr>
3508
-      </tbody>
3509
-    </table>
3510
-
3511
-
3512
-    </div>
3513
-
3514
-</div>
3515
-
3516
-<div class="doc doc-object doc-function">
3517
-
3518
-
3519
-<h3 id="derivepassphrase._internals.cli_messages.TranslatableString.maybe_without_filename" class="doc doc-heading">
3520
-<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code>            <span class="doc doc-object-name doc-function-name">maybe_without_filename</span>
3521
-
3522
-
3523
-<a href="#derivepassphrase._internals.cli_messages.TranslatableString.maybe_without_filename" class="headerlink" title="Permanent link">&para;</a></h3>
3524
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">maybe_without_filename</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n"><a class="autorefs autorefs-external" title="typing_extensions.Self" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Self">Self</a></span>
3525
-</code></pre></div>
3526
-
3527
-    <div class="doc doc-contents ">
3528
-
3529
-        <p>Return a new translatable string without the &ldquo;filename&rdquo; field.</p>
3530
-<p>Only acts upon translatable strings containing the exact
3531
-contents <code>": {filename!r}"</code>.  The specified part will be
3532
-removed.  This is correct usage in English for messages like
3533
-<code>"Cannot open file: {error}: {filename!r}."</code>, but not
3534
-necessarily in other languages.</p>
3535
-
3536
-
3537
-    </div>
3538
-
3539
-</div>
3540
-
3541
-<div class="doc doc-object doc-function">
3542
-
3543
-
3544
-<h3 id="derivepassphrase._internals.cli_messages.TranslatableString.rewrapped" class="doc doc-heading">
3545
-<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code>            <span class="doc doc-object-name doc-function-name">rewrapped</span>
3546
-
3547
-
3548
-<a href="#derivepassphrase._internals.cli_messages.TranslatableString.rewrapped" class="headerlink" title="Permanent link">&para;</a></h3>
3549
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">rewrapped</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n"><a class="autorefs autorefs-external" title="typing_extensions.Self" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Self">Self</a></span>
3550
-</code></pre></div>
3551
-
3552
-    <div class="doc doc-contents ">
3553
-
3554
-        <p>Return a rewrapped version of self.</p>
3555
-<p>Normalizes all parts assumed to contain English prose.</p>
3556
-
3557
-
3558
-    </div>
3559
-
3560
-</div>
3561
-
3562
-<div class="doc doc-object doc-function">
3563
-
3564
-
3565
-<h3 id="derivepassphrase._internals.cli_messages.TranslatableString.with_comments" class="doc doc-heading">
3566
-<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code>            <span class="doc doc-object-name doc-function-name">with_comments</span>
3567
-
3568
-
3569
-<a href="#derivepassphrase._internals.cli_messages.TranslatableString.with_comments" class="headerlink" title="Permanent link">&para;</a></h3>
3570
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">with_comments</span><span class="p">(</span><span class="n">comments</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">-&gt;</span> <span class="n"><a class="autorefs autorefs-external" title="typing_extensions.Self" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Self">Self</a></span>
3571
-</code></pre></div>
3572
-
3573
-    <div class="doc doc-contents ">
3574
-
3575
-        <p>Add or replace the string&rsquo;s translator comments.</p>
3576
-<p>The comments are assumed to contain English prose, and will be
3577
-normalized.</p>
3578
-
3579
-
3580
-    <p><span class="doc-section-title">Returns:</span></p>
3581
-    <table>
3582
-      <thead>
3583
-        <tr>
3584
-          <th>Type</th>
3585
-          <th>Description</th>
3586
-        </tr>
3587
-      </thead>
3588
-      <tbody>
3589
-          <tr class="doc-section-item">
3590
-            <td>
3591
-                  <code><a class="autorefs autorefs-external" title="typing_extensions.Self" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Self">Self</a></code>
3592
-            </td>
3593
-            <td>
3594
-              <div class="doc-md-description">
3595
-                <p>A new <a class="autorefs autorefs-internal" title="            TranslatableString" href="#derivepassphrase._internals.cli_messages.TranslatableString"><code>TranslatableString</code></a> with the specified comments.</p>
3596
-              </div>
3597
-            </td>
3598
-          </tr>
3599
-      </tbody>
3600
-    </table>
3601
-
3602
-
3603
-    </div>
3604
-
3605
-</div>
3606
-
3607
-<div class="doc doc-object doc-function">
3608
-
3609
-
3610
-<h3 id="derivepassphrase._internals.cli_messages.TranslatableString.validate_flags" class="doc doc-heading">
3611
-<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code>            <span class="doc doc-object-name doc-function-name">validate_flags</span>
3612
-
3613
-
3614
-<a href="#derivepassphrase._internals.cli_messages.TranslatableString.validate_flags" class="headerlink" title="Permanent link">&para;</a></h3>
3615
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">validate_flags</span><span class="p">(</span><span class="o">*</span><span class="n">extra_flags</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">-&gt;</span> <span class="n"><a class="autorefs autorefs-external" title="typing_extensions.Self" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Self">Self</a></span>
3616
-</code></pre></div>
3617
-
3618
-    <div class="doc doc-contents ">
3619
-
3620
-        <p>Add all flags, then validate them against the string.</p>
3621
-
3622
-
3623
-    <p><span class="doc-section-title">Returns:</span></p>
3624
-    <table>
3625
-      <thead>
3626
-        <tr>
3627
-          <th>Type</th>
3628
-          <th>Description</th>
3629
-        </tr>
3630
-      </thead>
3631
-      <tbody>
3632
-          <tr class="doc-section-item">
3633
-            <td>
3634
-                  <code><a class="autorefs autorefs-external" title="typing_extensions.Self" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Self">Self</a></code>
3635
-            </td>
3636
-            <td>
3637
-              <div class="doc-md-description">
3638
-                <p>A new <a class="autorefs autorefs-internal" title="            TranslatableString" href="#derivepassphrase._internals.cli_messages.TranslatableString"><code>TranslatableString</code></a> with the extra flags added,
3639
-and all flags validated.</p>
3640
-              </div>
3641
-            </td>
3642
-          </tr>
3643
-      </tbody>
3644
-    </table>
3645
-
3646
-
3647
-<p><span class="doc-section-title">Raises:</span></p>
3648
-    <table>
3649
-      <thead>
3650
-        <tr>
3651
-          <th>Type</th>
3652
-          <th>Description</th>
3653
-        </tr>
3654
-      </thead>
3655
-      <tbody>
3656
-          <tr class="doc-section-item">
3657
-            <td>
3658
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#ValueError">ValueError</a></code>
3659
-            </td>
3660
-            <td>
3661
-              <div class="doc-md-description">
3662
-                <p>The flags failed to validate.  See the exact error
3663
-message for details.</p>
3664
-              </div>
3665
-            </td>
3666
-          </tr>
3667
-      </tbody>
3668
-    </table>
3669
-
3670
-
3671
-<p><span class="doc-section-title">Examples:</span></p>
3672
-    <div class="highlight"><pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">TranslatableString</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;all OK&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">validate_flags</span><span class="p">()</span>
3673
-<span class="gp">...</span>
3674
-<span class="go">TranslatableString(l10n_context=&#39;&#39;, singular=&#39;all OK&#39;, plural=&#39;&#39;,</span>
3675
-<span class="go">                   flags=frozenset(), translator_comments=&#39;&#39;)</span>
3676
-<span class="gp">&gt;&gt;&gt; </span><span class="n">TranslatableString</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;20% OK&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">validate_flags</span><span class="p">(</span>
3677
-<span class="gp">... </span>    <span class="s1">&#39;no-python-format&#39;</span>
3678
-<span class="gp">... </span><span class="p">)</span>
3679
-<span class="gp">...</span>
3680
-<span class="go">TranslatableString(l10n_context=&#39;&#39;, singular=&#39;20% OK&#39;, plural=&#39;&#39;,</span>
3681
-<span class="go">                   flags=frozenset({&#39;no-python-format&#39;}),</span>
3682
-<span class="go">                   translator_comments=&#39;&#39;)</span>
3683
-<span class="gp">&gt;&gt;&gt; </span><span class="n">TranslatableString</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;</span><span class="si">%d</span><span class="s1"> items&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">validate_flags</span><span class="p">()</span>
3684
-<span class="gp">...</span>
3685
-<span class="gt">Traceback (most recent call last):</span>
3686
-<span class="w">    </span><span class="o">...</span>
3687
-<span class="gr">ValueError</span>: <span class="n">Missing flag for how to deal with percent character ...</span>
3688
-<span class="gp">&gt;&gt;&gt; </span><span class="n">TranslatableString</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;</span><span class="si">{braces}</span><span class="s1">&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">validate_flags</span><span class="p">()</span>
3689
-<span class="gp">...</span>
3690
-<span class="gt">Traceback (most recent call last):</span>
3691
-<span class="w">    </span><span class="o">...</span>
3692
-<span class="gr">ValueError</span>: <span class="n">Missing flag for how to deal with brace character ...</span>
3693
-<span class="gp">&gt;&gt;&gt; </span><span class="n">TranslatableString</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;no braces&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">validate_flags</span><span class="p">(</span>
3694
-<span class="gp">... </span>    <span class="s1">&#39;python-brace-format&#39;</span>
3695
-<span class="gp">... </span><span class="p">)</span>
3696
-<span class="gp">...</span>
3697
-<span class="gt">Traceback (most recent call last):</span>
3698
-<span class="w">    </span><span class="o">...</span>
3699
-<span class="gr">ValueError</span>: <span class="n">Missing format string parameters ...</span>
3700
-</code></pre></div>
3701
-
3702
-
3703
-    </div>
3704
-
3705
-</div>
3706
-
3707
-
3708
-
3709
-  </div>
3710
-
3711
-    </div>
3712
-
3713
-</div>
3714
-
3715
-<div class="doc doc-object doc-class">
3716
-
3717
-
3718
-
3719
-<h2 id="derivepassphrase._internals.cli_messages.TranslatedString" class="doc doc-heading">
3720
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">TranslatedString</span>
3721
-
3722
-
3723
-<a href="#derivepassphrase._internals.cli_messages.TranslatedString" class="headerlink" title="Permanent link">&para;</a></h2>
3724
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">TranslatedString</span><span class="p">(</span>
3725
-    <span class="n">template</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-internal" title="            TranslatableString (derivepassphrase._internals.cli_messages.TranslatableString)" href="#derivepassphrase._internals.cli_messages.TranslatableString">TranslatableString</a></span> <span class="o">|</span> <span class="n"><a class="autorefs autorefs-internal" title="            MsgTemplate
3726
-
3727
-
3728
-  
3729
-      module-attribute
3730
-   (derivepassphrase._internals.cli_messages.MsgTemplate)" href="#derivepassphrase._internals.cli_messages.MsgTemplate">MsgTemplate</a></span><span class="p">,</span>
3731
-    <span class="n">args_dict</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="collections.abc.Mapping" href="https://docs.python.org/3/library/collections.abc.html#collections.abc.Mapping">Mapping</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"><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"><a class="autorefs autorefs-external" title="types.MappingProxyType" href="https://docs.python.org/3/library/types.html#types.MappingProxyType">MappingProxyType</a></span><span class="p">({}),</span>
3732
-    <span class="o">/</span><span class="p">,</span>
3733
-    <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>
3734
-<span class="p">)</span>
3735
-</code></pre></div>
3736
-
3737
-    <div class="doc doc-contents ">
3738
-
3739
-
3740
-
3741
-        <p>A string object that stringifies to its translation.</p>
3742
-<p>The translation and replacement value rendering is only performed
3743
-when this string object is actually stringified.</p>
3744
-
3745
-
3746
-
3747
-<p><span class="doc-section-title">Parameters:</span></p>
3748
-    <table>
3749
-      <thead>
3750
-        <tr>
3751
-          <th>Name</th>
3752
-          <th>Type</th>
3753
-          <th>Description</th>
3754
-          <th>Default</th>
3755
-        </tr>
3756
-      </thead>
3757
-      <tbody>
3758
-          <tr class="doc-section-item">
3759
-            <td>
3760
-                <code>template</code>
3761
-            </td>
3762
-            <td>
3763
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a> | <a class="autorefs autorefs-internal" title="            TranslatableString (derivepassphrase._internals.cli_messages.TranslatableString)" href="#derivepassphrase._internals.cli_messages.TranslatableString">TranslatableString</a> | <a class="autorefs autorefs-internal" title="            MsgTemplate
3764
-
3765
-
3766
-  
3767
-      module-attribute
3768
-   (derivepassphrase._internals.cli_messages.MsgTemplate)" href="#derivepassphrase._internals.cli_messages.MsgTemplate">MsgTemplate</a></code>
3769
-            </td>
3770
-            <td>
3771
-              <div class="doc-md-description">
3772
-                <p>A template string, suitable for <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str.format"><code>str.format</code></a>.  If
3773
-a string, use it directly.  If
3774
-a <a class="autorefs autorefs-internal" title="            TranslatableString" href="#derivepassphrase._internals.cli_messages.TranslatableString"><code>TranslatableString</code></a>, or a known enum value whose
3775
-value is a <code>TranslatableString</code>, then use that string&rsquo;s
3776
-&ldquo;singular&rdquo; entry.</p>
3777
-              </div>
3778
-            </td>
3779
-            <td>
3780
-                <em>required</em>
3781
-            </td>
3782
-          </tr>
3783
-          <tr class="doc-section-item">
3784
-            <td>
3785
-                <code>args_dict</code>
3786
-            </td>
3787
-            <td>
3788
-                  <code><a class="autorefs autorefs-external" title="collections.abc.Mapping" href="https://docs.python.org/3/library/collections.abc.html#collections.abc.Mapping">Mapping</a>[<a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a>, <a class="autorefs autorefs-external" title="typing_extensions.Any" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Any">Any</a>]</code>
3789
-            </td>
3790
-            <td>
3791
-              <div class="doc-md-description">
3792
-                <p>Keyword arguments to be passed to <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str.format"><code>str.format</code></a>.</p>
3793
-              </div>
3794
-            </td>
3795
-            <td>
3796
-                  <code><a class="autorefs autorefs-external" title="types.MappingProxyType" href="https://docs.python.org/3/library/types.html#types.MappingProxyType">MappingProxyType</a>({})</code>
3797
-            </td>
3798
-          </tr>
3799
-          <tr class="doc-section-item">
3800
-            <td>
3801
-                <code>kwargs</code>
3802
-            </td>
3803
-            <td>
3804
-                  <code><a class="autorefs autorefs-external" title="typing_extensions.Any" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Any">Any</a></code>
3805
-            </td>
3806
-            <td>
3807
-              <div class="doc-md-description">
3808
-                <p>More keyword arguments to be passed to <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str.format"><code>str.format</code></a>.</p>
3809
-              </div>
3810
-            </td>
3811
-            <td>
3812
-                  <code>{}</code>
3813
-            </td>
3814
-          </tr>
3815
-      </tbody>
3816
-    </table>
3817
-
3818
-
3819
-
3820
-
3821
-
3822
-
3823
-
3824
-
3825
-
3826
-
3827
-  <div class="doc doc-children">
3828
-
3829
-
3830
-
3831
-
3832
-
3833
-
3834
-
3835
-
3836
-
3837
-<div class="doc doc-object doc-function">
3838
-
3839
-
3840
-<h3 id="derivepassphrase._internals.cli_messages.TranslatedString.__bool__" class="doc doc-heading">
3841
-<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code>            <span class="doc doc-object-name doc-function-name">__bool__</span>
3842
-
3843
-
3844
-<a href="#derivepassphrase._internals.cli_messages.TranslatedString.__bool__" class="headerlink" title="Permanent link">&para;</a></h3>
3845
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">__bool__</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></span>
3846
-</code></pre></div>
3847
-
3848
-    <div class="doc doc-contents ">
3849
-
3850
-        <p>Return true if the rendered string is truthy.</p>
3851
-
3852
-
3853
-    </div>
3854
-
3855
-</div>
3856
-
3857
-<div class="doc doc-object doc-function">
3858
-
3859
-
3860
-<h3 id="derivepassphrase._internals.cli_messages.TranslatedString.__eq__" class="doc doc-heading">
3861
-<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code>            <span class="doc doc-object-name doc-function-name">__eq__</span>
3862
-
3863
-
3864
-<a href="#derivepassphrase._internals.cli_messages.TranslatedString.__eq__" class="headerlink" title="Permanent link">&para;</a></h3>
3865
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">__eq__</span><span class="p">(</span><span class="n">other</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="p">)</span> <span class="o">-&gt;</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#bool">bool</a></span>
3866
-</code></pre></div>
3867
-
3868
-    <div class="doc doc-contents ">
3869
-
3870
-        <p>Return true if the rendered string is equal to <code>other</code>.</p>
3871
-
3872
-
3873
-    </div>
3874
-
3875
-</div>
3876
-
3877
-<div class="doc doc-object doc-function">
3878
-
3879
-
3880
-<h3 id="derivepassphrase._internals.cli_messages.TranslatedString.__hash__" class="doc doc-heading">
3881
-<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code>            <span class="doc doc-object-name doc-function-name">__hash__</span>
3882
-
3883
-
3884
-<a href="#derivepassphrase._internals.cli_messages.TranslatedString.__hash__" class="headerlink" title="Permanent link">&para;</a></h3>
3885
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">__hash__</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#int">int</a></span>
3886
-</code></pre></div>
3887
-
3888
-    <div class="doc doc-contents ">
3889
-
3890
-        <p>Return the hash of the rendered string.</p>
3891
-
3892
-
3893
-    </div>
3894
-
3895
-</div>
3896
-
3897
-<div class="doc doc-object doc-function">
3898
-
3899
-
3900
-<h3 id="derivepassphrase._internals.cli_messages.TranslatedString.__str__" class="doc doc-heading">
3901
-<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code>            <span class="doc doc-object-name doc-function-name">__str__</span>
3902
-
3903
-
3904
-<a href="#derivepassphrase._internals.cli_messages.TranslatedString.__str__" class="headerlink" title="Permanent link">&para;</a></h3>
3905
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">__str__</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a></span>
3906
-</code></pre></div>
3907
-
3908
-    <div class="doc doc-contents ">
3909
-
3910
-        <p>Return the rendered translation of this string.</p>
3911
-<p>First, look up the translation of the string&rsquo;s template.  Then
3912
-fill in the replacement fields.  Cache the result for future
3913
-calls.</p>
3914
-
3915
-
3916
-    </div>
3917
-
3918
-</div>
3919
-
3920
-<div class="doc doc-object doc-function">
3921
-
3922
-
3923
-<h3 id="derivepassphrase._internals.cli_messages.TranslatedString.maybe_without_filename" class="doc doc-heading">
3924
-<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code>            <span class="doc doc-object-name doc-function-name">maybe_without_filename</span>
3925
-
3926
-
3927
-<a href="#derivepassphrase._internals.cli_messages.TranslatedString.maybe_without_filename" class="headerlink" title="Permanent link">&para;</a></h3>
3928
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">maybe_without_filename</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n"><a class="autorefs autorefs-external" title="typing_extensions.Self" href="https://typing-extensions.readthedocs.io/en/latest/index.html#typing_extensions.Self">Self</a></span>
3929
-</code></pre></div>
3930
-
3931
-    <div class="doc doc-contents ">
3932
-
3933
-        <p>Return a new string without the &ldquo;filename&rdquo; field.</p>
3934
-<p>Only acts upon translated strings containing the exact contents
3935
-<code>": {filename!r}"</code>.  The specified part will be removed.  This
3936
-acts upon the string <em>before</em> translation, i.e., the string
3937
-without the filename will be used as a translation base.</p>
3938
-
3939
-
3940
-    </div>
3941
-
3942
-</div>
3943
-
3944
-
3945
-
3946
-  </div>
3947
-
3948
-    </div>
3949
-
3950
-</div>
3951
-
3952
-<div class="doc doc-object doc-class">
3953
-
3954
-
3955
-
3956
-<h2 id="derivepassphrase._internals.cli_messages.TranslatableStringConstructor" class="doc doc-heading">
3957
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">TranslatableStringConstructor</span>
3958
-
3959
-
3960
-<a href="#derivepassphrase._internals.cli_messages.TranslatableStringConstructor" class="headerlink" title="Permanent link">&para;</a></h2>
3961
-
3962
-
3963
-    <div class="doc doc-contents ">
3964
-            <p class="doc doc-class-bases">
3965
-              Bases: <code><a class="autorefs autorefs-external" title="typing.Protocol" href="https://docs.python.org/3/library/typing.html#typing.Protocol">Protocol</a></code></p>
3966
-
3967
-
3968
-
3969
-        <p>Construct a <a class="autorefs autorefs-internal" title="            TranslatableString" href="#derivepassphrase._internals.cli_messages.TranslatableString"><code>TranslatableString</code></a>.</p>
3970
-
3971
-
3972
-
3973
-
3974
-
3975
-
3976
-
3977
-
3978
-
3979
-
3980
-  <div class="doc doc-children">
3981
-
3982
-
3983
-
3984
-
3985
-
3986
-
3987
-
3988
-
3989
-
3990
-<div class="doc doc-object doc-function">
3991
-
3992
-
3993
-<h3 id="derivepassphrase._internals.cli_messages.TranslatableStringConstructor.__call__" class="doc doc-heading">
3994
-<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code>            <span class="doc doc-object-name doc-function-name">__call__</span>
3995
-
3996
-
3997
-<a href="#derivepassphrase._internals.cli_messages.TranslatableStringConstructor.__call__" class="headerlink" title="Permanent link">&para;</a></h3>
3998
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">__call__</span><span class="p">(</span>
3999
-    <span class="n">context</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>
4000
-    <span class="n">single</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>
4001
-    <span class="o">/</span><span class="p">,</span>
4002
-    <span class="n">flags</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="collections.abc.Iterable" href="https://docs.python.org/3/library/collections.abc.html#collections.abc.Iterable">Iterable</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>
4003
-    <span class="n">plural</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="s2">&quot;&quot;</span><span class="p">,</span>
4004
-    <span class="n">comments</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="s2">&quot;&quot;</span><span class="p">,</span>
4005
-<span class="p">)</span> <span class="o">-&gt;</span> <span class="n"><a class="autorefs autorefs-internal" title="            TranslatableString (derivepassphrase._internals.cli_messages.TranslatableString)" href="#derivepassphrase._internals.cli_messages.TranslatableString">TranslatableString</a></span>
4006
-</code></pre></div>
4007
-
4008
-    <div class="doc doc-contents ">
4009
-
4010
-        <p>Return a <a class="autorefs autorefs-internal" title="            TranslatableString" href="#derivepassphrase._internals.cli_messages.TranslatableString"><code>TranslatableString</code></a> from these parts.</p>
4011
-<p>Usually some form of validation or normalization is performed
4012
-first on these parts.</p>
4013
-<p>The main implementation of this is in <a class="autorefs autorefs-internal" title="            translatable" href="#derivepassphrase._internals.cli_messages.translatable"><code>translatable</code></a>.</p>
4014
-
4015
-
4016
-    </div>
4017
-
4018
-</div>
4019
-
4020
-
4021
-
4022
-  </div>
4023
-
4024
-    </div>
4025
-
4026
-</div>
4027
-
4028
-<div class="doc doc-object doc-class">
4029
-
4030
-
4031
-
4032
-<h2 id="derivepassphrase._internals.cli_messages.Label" class="doc doc-heading">
4033
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">Label</span>
4034
-
4035
-
4036
-<a href="#derivepassphrase._internals.cli_messages.Label" class="headerlink" title="Permanent link">&para;</a></h2>
4037
-
4038
-
4039
-    <div class="doc doc-contents ">
4040
-            <p class="doc doc-class-bases">
4041
-              Bases: <code><a class="autorefs autorefs-external" title="enum.Enum" href="https://docs.python.org/3/library/enum.html#enum.Enum">Enum</a></code></p>
4042
-
4043
-
4044
-
4045
-        <p>Labels for the <code>derivepassphrase</code> command-line.</p>
4046
-<p>Includes help text (long-form and short-form), help metavar names,
4047
-diagnostic labels and interactive prompts.</p>
4048
-
4049
-
4050
-
4051
-
4052
-
4053
-
4054
-
4055
-
4056
-
4057
-
4058
-  <div class="doc doc-children">
4059
-
4060
-
4061
-
4062
-
4063
-
4064
-
4065
-
4066
-<div class="doc doc-object doc-attribute">
4067
-
4068
-
4069
-
4070
-<h3 id="derivepassphrase._internals.cli_messages.Label.DEPRECATION_WARNING_LABEL" class="doc doc-heading">
4071
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DEPRECATION_WARNING_LABEL</span>
4072
-
4073
-
4074
-  <span class="doc doc-labels">
4075
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4076
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4077
-  </span>
4078
-
4079
-<a href="#derivepassphrase._internals.cli_messages.Label.DEPRECATION_WARNING_LABEL" class="headerlink" title="Permanent link">&para;</a></h3>
4080
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DEPRECATION_WARNING_LABEL</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
4081
-    <span class="s1">&#39;This is a short label that will be prepended to a warning message, e.g., &quot;Deprecation warning: A subcommand will be required in v1.0.&quot;&#39;</span>
4082
-<span class="p">)(</span><span class="s2">&quot;Label :: Diagnostics :: Marker&quot;</span><span class="p">,</span> <span class="s2">&quot;Deprecation warning&quot;</span><span class="p">)</span>
4083
-</code></pre></div>
4084
-
4085
-    <div class="doc doc-contents ">
4086
-
4087
-        
4088
-
4089
-    </div>
4090
-
4091
-</div>
4092
-
4093
-<div class="doc doc-object doc-attribute">
4094
-
4095
-
4096
-
4097
-<h3 id="derivepassphrase._internals.cli_messages.Label.WARNING_LABEL" class="doc doc-heading">
4098
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">WARNING_LABEL</span>
4099
-
4100
-
4101
-  <span class="doc doc-labels">
4102
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4103
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4104
-  </span>
4105
-
4106
-<a href="#derivepassphrase._internals.cli_messages.Label.WARNING_LABEL" class="headerlink" title="Permanent link">&para;</a></h3>
4107
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">WARNING_LABEL</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
4108
-    <span class="s1">&#39;This is a short label that will be prepended to a warning message, e.g., &quot;Warning: An empty service name is not supported by vault(1).&quot;&#39;</span>
4109
-<span class="p">)(</span><span class="s2">&quot;Label :: Diagnostics :: Marker&quot;</span><span class="p">,</span> <span class="s2">&quot;Warning&quot;</span><span class="p">)</span>
4110
-</code></pre></div>
4111
-
4112
-    <div class="doc doc-contents ">
4113
-
4114
-        
4115
-
4116
-    </div>
4117
-
4118
-</div>
4119
-
4120
-<div class="doc doc-object doc-attribute">
4121
-
4122
-
4123
-
4124
-<h3 id="derivepassphrase._internals.cli_messages.Label.CANNOT_UPDATE_SETTINGS_METAVAR_SETTINGS_TYPE_GLOBAL" class="doc doc-heading">
4125
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">CANNOT_UPDATE_SETTINGS_METAVAR_SETTINGS_TYPE_GLOBAL</span>
4126
-
4127
-
4128
-  <span class="doc doc-labels">
4129
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4130
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4131
-  </span>
4132
-
4133
-<a href="#derivepassphrase._internals.cli_messages.Label.CANNOT_UPDATE_SETTINGS_METAVAR_SETTINGS_TYPE_GLOBAL" class="headerlink" title="Permanent link">&para;</a></h3>
4134
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">CANNOT_UPDATE_SETTINGS_METAVAR_SETTINGS_TYPE_GLOBAL</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
4135
-    <span class="s1">&#39;This is one of two values of the settings_type metavar used in the CANNOT_UPDATE_SETTINGS_NO_SETTINGS entry.  It is only used there.  The full sentence then reads: &quot;Cannot update the global settings without any given settings.&quot;&#39;</span>
4136
-<span class="p">)(</span>
4137
-    <span class="s2">&quot;Label :: Error message :: Metavar&quot;</span><span class="p">,</span> <span class="s2">&quot;global settings&quot;</span>
4138
-<span class="p">)</span>
4139
-</code></pre></div>
4140
-
4141
-    <div class="doc doc-contents ">
4142
-
4143
-        
4144
-
4145
-    </div>
4146
-
4147
-</div>
4148
-
4149
-<div class="doc doc-object doc-attribute">
4150
-
4151
-
4152
-
4153
-<h3 id="derivepassphrase._internals.cli_messages.Label.CANNOT_UPDATE_SETTINGS_METAVAR_SETTINGS_TYPE_SERVICE" class="doc doc-heading">
4154
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">CANNOT_UPDATE_SETTINGS_METAVAR_SETTINGS_TYPE_SERVICE</span>
4155
-
4156
-
4157
-  <span class="doc doc-labels">
4158
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4159
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4160
-  </span>
4161
-
4162
-<a href="#derivepassphrase._internals.cli_messages.Label.CANNOT_UPDATE_SETTINGS_METAVAR_SETTINGS_TYPE_SERVICE" class="headerlink" title="Permanent link">&para;</a></h3>
4163
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">CANNOT_UPDATE_SETTINGS_METAVAR_SETTINGS_TYPE_SERVICE</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
4164
-    <span class="s1">&#39;This is one of two values of the settings_type metavar used in the CANNOT_UPDATE_SETTINGS_NO_SETTINGS entry.  It is only used there.  The full sentence then reads: &quot;Cannot update the service-specific settings without any given settings.&quot;&#39;</span>
4165
-<span class="p">)(</span>
4166
-    <span class="s2">&quot;Label :: Error message :: Metavar&quot;</span><span class="p">,</span>
4167
-    <span class="s2">&quot;service-specific settings&quot;</span><span class="p">,</span>
4168
-<span class="p">)</span>
4169
-</code></pre></div>
4170
-
4171
-    <div class="doc doc-contents ">
4172
-
4173
-        
4174
-
4175
-    </div>
4176
-
4177
-</div>
4178
-
4179
-<div class="doc doc-object doc-attribute">
4180
-
4181
-
4182
-
4183
-<h3 id="derivepassphrase._internals.cli_messages.Label.CONFIGURATION_EPILOG" class="doc doc-heading">
4184
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">CONFIGURATION_EPILOG</span>
4185
-
4186
-
4187
-  <span class="doc doc-labels">
4188
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4189
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4190
-  </span>
4191
-
4192
-<a href="#derivepassphrase._internals.cli_messages.Label.CONFIGURATION_EPILOG" class="headerlink" title="Permanent link">&para;</a></h3>
4193
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">CONFIGURATION_EPILOG</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
4194
-    <span class="s2">&quot;Label :: Help text :: Explanation&quot;</span><span class="p">,</span>
4195
-    <span class="s2">&quot;Use $VISUAL or $EDITOR to configure the spawned editor.&quot;</span><span class="p">,</span>
4196
-<span class="p">)</span>
4197
-</code></pre></div>
4198
-
4199
-    <div class="doc doc-contents ">
4200
-
4201
-        
4202
-
4203
-    </div>
4204
-
4205
-</div>
4206
-
4207
-<div class="doc doc-object doc-attribute">
4208
-
4209
-
4210
-
4211
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_02" class="doc doc-heading">
4212
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_02</span>
4213
-
4214
-
4215
-  <span class="doc doc-labels">
4216
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4217
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4218
-  </span>
4219
-
4220
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_02" class="headerlink" title="Permanent link">&para;</a></h3>
4221
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_02</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
4222
-    <span class="s2">&quot;Label :: Help text :: Explanation&quot;</span><span class="p">,</span>
4223
-    <span class="s1">&#39;The currently implemented subcommands are &quot;vault&quot; (for the scheme used by vault) and &quot;export&quot; (for exporting foreign configuration data).  See the respective `--help` output for instructions.  If no subcommand is given, we default to &quot;vault&quot;.&#39;</span><span class="p">,</span>
4224
-<span class="p">)</span>
4225
-</code></pre></div>
4226
-
4227
-    <div class="doc doc-contents ">
4228
-
4229
-        
4230
-
4231
-    </div>
4232
-
4233
-</div>
4234
-
4235
-<div class="doc doc-object doc-attribute">
4236
-
4237
-
4238
-
4239
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_03" class="doc doc-heading">
4240
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_03</span>
4241
-
4242
-
4243
-  <span class="doc doc-labels">
4244
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4245
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4246
-  </span>
4247
-
4248
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_03" class="headerlink" title="Permanent link">&para;</a></h3>
4249
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_03</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
4250
-    <span class="s2">&quot;Label :: Help text :: Explanation&quot;</span><span class="p">,</span>
4251
-    <span class="s1">&#39;Deprecation notice: Defaulting to &quot;vault&quot; is deprecated.  Starting in v1.0, the subcommand must be specified explicitly.&#39;</span><span class="p">,</span>
4252
-<span class="p">)</span>
4253
-</code></pre></div>
4254
-
4255
-    <div class="doc doc-contents ">
4256
-
4257
-        
4258
-
4259
-    </div>
4260
-
4261
-</div>
4262
-
4263
-<div class="doc doc-object doc-attribute">
4264
-
4265
-
4266
-
4267
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_EPILOG_01" class="doc doc-heading">
4268
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_EPILOG_01</span>
4269
-
4270
-
4271
-  <span class="doc doc-labels">
4272
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4273
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4274
-  </span>
4275
-
4276
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_EPILOG_01" class="headerlink" title="Permanent link">&para;</a></h3>
4277
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_EPILOG_01</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
4278
-    <span class="s2">&quot;Label :: Help text :: Explanation&quot;</span><span class="p">,</span>
4279
-    <span class="s2">&quot;Configuration is stored in a directory according to the `DERIVEPASSPHRASE_PATH` variable, which defaults to `~/.derivepassphrase` on UNIX-like systems and `C:</span><span class="se">\\</span><span class="s2">Users</span><span class="se">\\</span><span class="s2">&lt;user&gt;</span><span class="se">\\</span><span class="s2">AppData</span><span class="se">\\</span><span class="s2">Roaming</span><span class="se">\\</span><span class="s2">Derivepassphrase` on Windows.&quot;</span><span class="p">,</span>
4280
-<span class="p">)</span>
4281
-</code></pre></div>
4282
-
4283
-    <div class="doc doc-contents ">
4284
-
4285
-        
4286
-
4287
-    </div>
4288
-
4289
-</div>
4290
-
4291
-<div class="doc doc-object doc-attribute">
4292
-
4293
-
4294
-
4295
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_EXPORT_02" class="doc doc-heading">
4296
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_EXPORT_02</span>
4297
-
4298
-
4299
-  <span class="doc doc-labels">
4300
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4301
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4302
-  </span>
4303
-
4304
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_EXPORT_02" class="headerlink" title="Permanent link">&para;</a></h3>
4305
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_EXPORT_02</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
4306
-    <span class="s2">&quot;Label :: Help text :: Explanation&quot;</span><span class="p">,</span>
4307
-    <span class="s1">&#39;The only available subcommand is &quot;vault&quot;, which implements the vault-native configuration scheme.  If no subcommand is given, we default to &quot;vault&quot;.&#39;</span><span class="p">,</span>
4308
-<span class="p">)</span>
4309
-</code></pre></div>
4310
-
4311
-    <div class="doc doc-contents ">
4312
-
4313
-        
4314
-
4315
-    </div>
4316
-
4317
-</div>
4318
-
4319
-<div class="doc doc-object doc-attribute">
4320
-
4321
-
4322
-
4323
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_EXPORT_03" class="doc doc-heading">
4324
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_EXPORT_03</span>
4325
-
4326
-
4327
-  <span class="doc doc-labels">
4328
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4329
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4330
-  </span>
4331
-
4332
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_EXPORT_03" class="headerlink" title="Permanent link">&para;</a></h3>
4333
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_EXPORT_03</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            DERIVEPASSPHRASE_03
4334
-
4335
-
4336
-  
4337
-      class-attribute
4338
-      instance-attribute
4339
-   (derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_03)" href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_03">DERIVEPASSPHRASE_03</a></span>
4340
-</code></pre></div>
4341
-
4342
-    <div class="doc doc-contents ">
4343
-
4344
-        
4345
-
4346
-    </div>
4347
-
4348
-</div>
4349
-
4350
-<div class="doc doc-object doc-attribute">
4351
-
4352
-
4353
-
4354
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_EXPORT_VAULT_02" class="doc doc-heading">
4355
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_EXPORT_VAULT_02</span>
4356
-
4357
-
4358
-  <span class="doc doc-labels">
4359
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4360
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4361
-  </span>
4362
-
4363
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_EXPORT_VAULT_02" class="headerlink" title="Permanent link">&para;</a></h3>
4364
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_EXPORT_VAULT_02</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
4365
-    <span class="s2">&quot;The metavar is Label.EXPORT_VAULT_METAVAR_PATH.&quot;</span>
4366
-<span class="p">)(</span>
4367
-    <span class="s2">&quot;Label :: Help text :: Explanation&quot;</span><span class="p">,</span>
4368
-    <span class="s1">&#39;Depending on the configuration format, </span><span class="si">{path_metavar}</span><span class="s1"> may either be a file or a directory.  We support the vault &quot;v0.2&quot;, &quot;v0.3&quot; and &quot;storeroom&quot; formats.&#39;</span><span class="p">,</span>
4369
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
4370
-<span class="p">)</span>
4371
-</code></pre></div>
4372
-
4373
-    <div class="doc doc-contents ">
4374
-
4375
-        
4376
-
4377
-    </div>
4378
-
4379
-</div>
4380
-
4381
-<div class="doc doc-object doc-attribute">
4382
-
4383
-
4384
-
4385
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_EXPORT_VAULT_03" class="doc doc-heading">
4386
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_EXPORT_VAULT_03</span>
4387
-
4388
-
4389
-  <span class="doc doc-labels">
4390
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4391
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4392
-  </span>
4393
-
4394
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_EXPORT_VAULT_03" class="headerlink" title="Permanent link">&para;</a></h3>
4395
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_EXPORT_VAULT_03</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
4396
-    <span class="s2">&quot;The metavar is Label.EXPORT_VAULT_METAVAR_PATH.&quot;</span>
4397
-<span class="p">)(</span>
4398
-    <span class="s2">&quot;Label :: Help text :: Explanation&quot;</span><span class="p">,</span>
4399
-    <span class="s2">&quot;If </span><span class="si">{path_metavar}</span><span class="s2"> is explicitly given as `VAULT_PATH`, then use the `VAULT_PATH` environment variable to determine the correct path.  (Use `./VAULT_PATH` or similar to indicate a file/directory actually named `VAULT_PATH`.)&quot;</span><span class="p">,</span>
4400
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
4401
-<span class="p">)</span>
4402
-</code></pre></div>
4403
-
4404
-    <div class="doc doc-contents ">
4405
-
4406
-        
4407
-
4408
-    </div>
4409
-
4410
-</div>
4411
-
4412
-<div class="doc doc-object doc-attribute">
4413
-
4414
-
4415
-
4416
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_02" class="doc doc-heading">
4417
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_02</span>
4418
-
4419
-
4420
-  <span class="doc doc-labels">
4421
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4422
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4423
-  </span>
4424
-
4425
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_02" class="headerlink" title="Permanent link">&para;</a></h3>
4426
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_02</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
4427
-    <span class="s2">&quot;The metavar is Label.VAULT_METAVAR_SERVICE.&quot;</span>
4428
-<span class="p">)(</span>
4429
-    <span class="s2">&quot;Label :: Help text :: Explanation&quot;</span><span class="p">,</span>
4430
-    <span class="s2">&quot;If operating on global settings, or importing/exporting settings, then </span><span class="si">{service_metavar}</span><span class="s2"> must be omitted.  Otherwise it is required.&quot;</span><span class="p">,</span>
4431
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
4432
-<span class="p">)</span>
4433
-</code></pre></div>
4434
-
4435
-    <div class="doc doc-contents ">
4436
-
4437
-        
4438
-
4439
-    </div>
4440
-
4441
-</div>
4442
-
4443
-<div class="doc doc-object doc-attribute">
4444
-
4445
-
4446
-
4447
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_EPILOG_01" class="doc doc-heading">
4448
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_EPILOG_01</span>
4449
-
4450
-
4451
-  <span class="doc doc-labels">
4452
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4453
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4454
-  </span>
4455
-
4456
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_EPILOG_01" class="headerlink" title="Permanent link">&para;</a></h3>
4457
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_EPILOG_01</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
4458
-    <span class="s2">&quot;Label :: Help text :: Explanation&quot;</span><span class="p">,</span>
4459
-    <span class="s2">&quot;WARNING: There is NO WAY to retrieve the generated passphrases if the master passphrase, the SSH key, or the exact passphrase settings are lost, short of trying out all possible combinations.  You are STRONGLY advised to keep independent backups of the settings and the SSH key, if any.&quot;</span><span class="p">,</span>
4460
-<span class="p">)</span>
4461
-</code></pre></div>
4462
-
4463
-    <div class="doc doc-contents ">
4464
-
4465
-        
4466
-
4467
-    </div>
4468
-
4469
-</div>
4470
-
4471
-<div class="doc doc-object doc-attribute">
4472
-
4473
-
4474
-
4475
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_EPILOG_02" class="doc doc-heading">
4476
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_EPILOG_02</span>
4477
-
4478
-
4479
-  <span class="doc doc-labels">
4480
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4481
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4482
-  </span>
4483
-
4484
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_EPILOG_02" class="headerlink" title="Permanent link">&para;</a></h3>
4485
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_EPILOG_02</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
4486
-    <span class="s2">&quot;Label :: Help text :: Explanation&quot;</span><span class="p">,</span>
4487
-    <span class="s2">&quot;The configuration is NOT encrypted, and you are STRONGLY discouraged from using a stored passphrase.&quot;</span><span class="p">,</span>
4488
-<span class="p">)</span>
4489
-</code></pre></div>
4490
-
4491
-    <div class="doc doc-contents ">
4492
-
4493
-        
4494
-
4495
-    </div>
4496
-
4497
-</div>
4498
-
4499
-<div class="doc doc-object doc-attribute">
4500
-
4501
-
4502
-
4503
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_NOTES_INSTRUCTION_TEXT" class="doc doc-heading">
4504
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_NOTES_INSTRUCTION_TEXT</span>
4505
-
4506
-
4507
-  <span class="doc doc-labels">
4508
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4509
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4510
-  </span>
4511
-
4512
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_NOTES_INSTRUCTION_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
4513
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_NOTES_INSTRUCTION_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
4514
-    <span class="s1">&#39;This instruction text is shown above the user</span><span class="se">\&#39;</span><span class="s1">s old stored notes for this service, if any, if the recommended &quot;modern&quot; editor interface is used.  The next line is the cut marking defined in Label.DERIVEPASSPHRASE_VAULT_NOTES_MARKER.&#39;</span>
4515
-<span class="p">)(</span>
4516
-    <span class="s2">&quot;Label :: Help text :: Explanation&quot;</span><span class="p">,</span>
4517
-    <span class="s2">&quot;</span><span class="se">\x08\n</span><span class="s2"># Enter notes below the line with the cut mark (ASCII scissors and</span><span class="se">\n</span><span class="s2"># dashes).  Lines above the cut mark (such as this one) will be ignored.</span><span class="se">\n</span><span class="s2">#</span><span class="se">\n</span><span class="s2"># If you wish to clear the notes, leave everything beyond the cut mark</span><span class="se">\n</span><span class="s2"># blank.  However, if you leave the *entire* file blank, also removing</span><span class="se">\n</span><span class="s2"># the cut mark, then the edit is aborted, and the old notes contents are</span><span class="se">\n</span><span class="s2"># retained.</span><span class="se">\n</span><span class="s2">#</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span>
4518
-<span class="p">)</span>
4519
-</code></pre></div>
4520
-
4521
-    <div class="doc doc-contents ">
4522
-
4523
-        
4524
-
4525
-    </div>
4526
-
4527
-</div>
4528
-
4529
-<div class="doc doc-object doc-attribute">
4530
-
4531
-
4532
-
4533
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_NOTES_LEGACY_INSTRUCTION_TEXT" class="doc doc-heading">
4534
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_NOTES_LEGACY_INSTRUCTION_TEXT</span>
4535
-
4536
-
4537
-  <span class="doc doc-labels">
4538
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4539
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4540
-  </span>
4541
-
4542
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_NOTES_LEGACY_INSTRUCTION_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
4543
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_NOTES_LEGACY_INSTRUCTION_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
4544
-    <span class="s1">&#39;This instruction text is shown if the vault(1)-compatible &quot;legacy&quot; editor interface is used and no previous notes exist.  The interface does not support commentary in the notes, so we fill this with obvious placeholder text instead.  (Please replace this with what *your* language/culture would obviously recognize as placeholder text.)&#39;</span>
4545
-<span class="p">)(</span>
4546
-    <span class="s2">&quot;Label :: Help text :: Explanation&quot;</span><span class="p">,</span> <span class="s2">&quot;INSERT NOTES HERE&quot;</span>
4547
-<span class="p">)</span>
4548
-</code></pre></div>
4549
-
4550
-    <div class="doc doc-contents ">
4551
-
4552
-        
4553
-
4554
-    </div>
4555
-
4556
-</div>
4557
-
4558
-<div class="doc doc-object doc-attribute">
4559
-
4560
-
4561
-
4562
-<h3 id="derivepassphrase._internals.cli_messages.Label.PASSPHRASE_GENERATION_EPILOG" class="doc doc-heading">
4563
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">PASSPHRASE_GENERATION_EPILOG</span>
4564
-
4565
-
4566
-  <span class="doc doc-labels">
4567
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4568
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4569
-  </span>
4570
-
4571
-<a href="#derivepassphrase._internals.cli_messages.Label.PASSPHRASE_GENERATION_EPILOG" class="headerlink" title="Permanent link">&para;</a></h3>
4572
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">PASSPHRASE_GENERATION_EPILOG</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
4573
-    <span class="s2">&quot;The metavar is Label.PASSPHRASE_GENERATION_METAVAR_NUMBER.&quot;</span>
4574
-<span class="p">)(</span>
4575
-    <span class="s2">&quot;Label :: Help text :: Explanation&quot;</span><span class="p">,</span>
4576
-    <span class="s2">&quot;Use </span><span class="si">{metavar}</span><span class="s2">=0 to exclude a character type from the output.&quot;</span><span class="p">,</span>
4577
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
4578
-<span class="p">)</span>
4579
-</code></pre></div>
4580
-
4581
-    <div class="doc doc-contents ">
4582
-
4583
-        
4584
-
4585
-    </div>
4586
-
4587
-</div>
4588
-
4589
-<div class="doc doc-object doc-attribute">
4590
-
4591
-
4592
-
4593
-<h3 id="derivepassphrase._internals.cli_messages.Label.STORAGE_MANAGEMENT_EPILOG" class="doc doc-heading">
4594
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">STORAGE_MANAGEMENT_EPILOG</span>
4595
-
4596
-
4597
-  <span class="doc doc-labels">
4598
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4599
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4600
-  </span>
4601
-
4602
-<a href="#derivepassphrase._internals.cli_messages.Label.STORAGE_MANAGEMENT_EPILOG" class="headerlink" title="Permanent link">&para;</a></h3>
4603
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">STORAGE_MANAGEMENT_EPILOG</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
4604
-    <span class="s2">&quot;The metavar is Label.STORAGE_MANAGEMENT_METAVAR_PATH.&quot;</span>
4605
-<span class="p">)(</span>
4606
-    <span class="s2">&quot;Label :: Help text :: Explanation&quot;</span><span class="p">,</span>
4607
-    <span class="s1">&#39;Using &quot;-&quot; as </span><span class="si">{metavar}</span><span class="s1"> for standard input/standard output is supported.&#39;</span><span class="p">,</span>
4608
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
4609
-<span class="p">)</span>
4610
-</code></pre></div>
4611
-
4612
-    <div class="doc doc-contents ">
4613
-
4614
-        
4615
-
4616
-    </div>
4617
-
4618
-</div>
4619
-
4620
-<div class="doc doc-object doc-attribute">
4621
-
4622
-
4623
-
4624
-<h3 id="derivepassphrase._internals.cli_messages.Label.DEPRECATED_COMMAND_LABEL" class="doc doc-heading">
4625
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DEPRECATED_COMMAND_LABEL</span>
4626
-
4627
-
4628
-  <span class="doc doc-labels">
4629
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4630
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4631
-  </span>
4632
-
4633
-<a href="#derivepassphrase._internals.cli_messages.Label.DEPRECATED_COMMAND_LABEL" class="headerlink" title="Permanent link">&para;</a></h3>
4634
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DEPRECATED_COMMAND_LABEL</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
4635
-    <span class="s2">&quot;We use this format string to indicate, at the beginning of a command&#39;s help text, that this command is deprecated.&quot;</span>
4636
-<span class="p">)(</span>
4637
-    <span class="s2">&quot;Label :: Help text :: Marker&quot;</span><span class="p">,</span>
4638
-    <span class="s2">&quot;(Deprecated) </span><span class="si">{text}</span><span class="s2">&quot;</span><span class="p">,</span>
4639
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
4640
-<span class="p">)</span>
4641
-</code></pre></div>
4642
-
4643
-    <div class="doc doc-contents ">
4644
-
4645
-        
4646
-
4647
-    </div>
4648
-
4649
-</div>
4650
-
4651
-<div class="doc doc-object doc-attribute">
4652
-
4653
-
4654
-
4655
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_NOTES_MARKER" class="doc doc-heading">
4656
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_NOTES_MARKER</span>
4657
-
4658
-
4659
-  <span class="doc doc-labels">
4660
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4661
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4662
-  </span>
4663
-
4664
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_NOTES_MARKER" class="headerlink" title="Permanent link">&para;</a></h3>
4665
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_NOTES_MARKER</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
4666
-    <span class="s2">&quot;The marker for separating the text from Label.DERIVEPASSPHRASE_VAULT_NOTES_INSTRUCTION_TEXT from the user&#39;s input (below the marker).  The first line starting with this label marks the separation point.&quot;</span>
4667
-<span class="p">)(</span>
4668
-    <span class="s2">&quot;Label :: Help text :: Marker&quot;</span><span class="p">,</span>
4669
-    <span class="s2">&quot;# - - - - - &gt;8 - - - - - &gt;8 - - - - - &gt;8 - - - - - &gt;8 - - - - -&quot;</span><span class="p">,</span>
4670
-<span class="p">)</span>
4671
-</code></pre></div>
4672
-
4673
-    <div class="doc doc-contents ">
4674
-
4675
-        
4676
-
4677
-    </div>
4678
-
4679
-</div>
4680
-
4681
-<div class="doc doc-object doc-attribute">
4682
-
4683
-
4684
-
4685
-<h3 id="derivepassphrase._internals.cli_messages.Label.EXPORT_VAULT_FORMAT_METAVAR_FMT" class="doc doc-heading">
4686
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">EXPORT_VAULT_FORMAT_METAVAR_FMT</span>
4687
-
4688
-
4689
-  <span class="doc doc-labels">
4690
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4691
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4692
-  </span>
4693
-
4694
-<a href="#derivepassphrase._internals.cli_messages.Label.EXPORT_VAULT_FORMAT_METAVAR_FMT" class="headerlink" title="Permanent link">&para;</a></h3>
4695
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">EXPORT_VAULT_FORMAT_METAVAR_FMT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
4696
-    <span class="s1">&#39;This text is used as </span><span class="si">{metavar}</span><span class="s1"> in Label.EXPORT_VAULT_FORMAT_HELP_TEXT, yielding e.g. &quot;Try the following storage format FMT.&quot;&#39;</span>
4697
-<span class="p">)(</span><span class="s2">&quot;Label :: Help text :: Metavar :: export vault&quot;</span><span class="p">,</span> <span class="s2">&quot;FMT&quot;</span><span class="p">)</span>
4698
-</code></pre></div>
4699
-
4700
-    <div class="doc doc-contents ">
4701
-
4702
-        
4703
-
4704
-    </div>
4705
-
4706
-</div>
4707
-
4708
-<div class="doc doc-object doc-attribute">
4709
-
4710
-
4711
-
4712
-<h3 id="derivepassphrase._internals.cli_messages.Label.EXPORT_VAULT_KEY_METAVAR_K" class="doc doc-heading">
4713
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">EXPORT_VAULT_KEY_METAVAR_K</span>
4714
-
4715
-
4716
-  <span class="doc doc-labels">
4717
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4718
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4719
-  </span>
4720
-
4721
-<a href="#derivepassphrase._internals.cli_messages.Label.EXPORT_VAULT_KEY_METAVAR_K" class="headerlink" title="Permanent link">&para;</a></h3>
4722
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">EXPORT_VAULT_KEY_METAVAR_K</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
4723
-    <span class="s1">&#39;This text is used as </span><span class="si">{metavar}</span><span class="s1"> in Label.EXPORT_VAULT_KEY_HELP_TEXT, yielding e.g. &quot;Use K as the storage master key.&quot;&#39;</span>
4724
-<span class="p">)(</span><span class="s2">&quot;Label :: Help text :: Metavar :: export vault&quot;</span><span class="p">,</span> <span class="s2">&quot;K&quot;</span><span class="p">)</span>
4725
-</code></pre></div>
4726
-
4727
-    <div class="doc doc-contents ">
4728
-
4729
-        
4730
-
4731
-    </div>
4732
-
4733
-</div>
4734
-
4735
-<div class="doc doc-object doc-attribute">
4736
-
4737
-
4738
-
4739
-<h3 id="derivepassphrase._internals.cli_messages.Label.EXPORT_VAULT_METAVAR_PATH" class="doc doc-heading">
4740
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">EXPORT_VAULT_METAVAR_PATH</span>
4741
-
4742
-
4743
-  <span class="doc doc-labels">
4744
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4745
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4746
-  </span>
4747
-
4748
-<a href="#derivepassphrase._internals.cli_messages.Label.EXPORT_VAULT_METAVAR_PATH" class="headerlink" title="Permanent link">&para;</a></h3>
4749
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">EXPORT_VAULT_METAVAR_PATH</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
4750
-    <span class="s1">&#39;Used as &quot;path_metavar&quot; in Label.DERIVEPASSPHRASE_EXPORT_VAULT_02 and others, yielding e.g. &quot;Depending on the configuration format, PATH may either be a file or a directory.&quot;&#39;</span>
4751
-<span class="p">)(</span><span class="s2">&quot;Label :: Help text :: Metavar :: export vault&quot;</span><span class="p">,</span> <span class="s2">&quot;PATH&quot;</span><span class="p">)</span>
4752
-</code></pre></div>
4753
-
4754
-    <div class="doc doc-contents ">
4755
-
4756
-        
4757
-
4758
-    </div>
4759
-
4760
-</div>
4761
-
4762
-<div class="doc doc-object doc-attribute">
4763
-
4764
-
4765
-
4766
-<h3 id="derivepassphrase._internals.cli_messages.Label.PASSPHRASE_GENERATION_METAVAR_NUMBER" class="doc doc-heading">
4767
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">PASSPHRASE_GENERATION_METAVAR_NUMBER</span>
4768
-
4769
-
4770
-  <span class="doc doc-labels">
4771
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4772
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4773
-  </span>
4774
-
4775
-<a href="#derivepassphrase._internals.cli_messages.Label.PASSPHRASE_GENERATION_METAVAR_NUMBER" class="headerlink" title="Permanent link">&para;</a></h3>
4776
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">PASSPHRASE_GENERATION_METAVAR_NUMBER</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
4777
-    <span class="s1">&#39;This metavar is used in Label.PASSPHRASE_GENERATION_EPILOG, Label.DERIVEPASSPHRASE_VAULT_LENGTH_HELP_TEXT and others, yielding e.g. &quot;Ensure a passphrase length of NUMBER characters.&quot;.  &#39;</span>
4778
-<span class="p">)(</span><span class="s2">&quot;Label :: Help text :: Metavar :: vault&quot;</span><span class="p">,</span> <span class="s2">&quot;NUMBER&quot;</span><span class="p">)</span>
4779
-</code></pre></div>
4780
-
4781
-    <div class="doc doc-contents ">
4782
-
4783
-        
4784
-
4785
-    </div>
4786
-
4787
-</div>
4788
-
4789
-<div class="doc doc-object doc-attribute">
4790
-
4791
-
4792
-
4793
-<h3 id="derivepassphrase._internals.cli_messages.Label.STORAGE_MANAGEMENT_METAVAR_PATH" class="doc doc-heading">
4794
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">STORAGE_MANAGEMENT_METAVAR_PATH</span>
4795
-
4796
-
4797
-  <span class="doc doc-labels">
4798
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4799
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4800
-  </span>
4801
-
4802
-<a href="#derivepassphrase._internals.cli_messages.Label.STORAGE_MANAGEMENT_METAVAR_PATH" class="headerlink" title="Permanent link">&para;</a></h3>
4803
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">STORAGE_MANAGEMENT_METAVAR_PATH</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
4804
-    <span class="s1">&#39;This metavar is used in Label.STORAGE_MANAGEMENT_EPILOG, Label.DERIVEPASSPHRASE_VAULT_IMPORT_HELP_TEXT and others, yielding e.g. &quot;Ensure a passphrase length of NUMBER characters.&quot;.  &#39;</span>
4805
-<span class="p">)(</span><span class="s2">&quot;Label :: Help text :: Metavar :: vault&quot;</span><span class="p">,</span> <span class="s2">&quot;PATH&quot;</span><span class="p">)</span>
4806
-</code></pre></div>
4807
-
4808
-    <div class="doc doc-contents ">
4809
-
4810
-        
4811
-
4812
-    </div>
4813
-
4814
-</div>
4815
-
4816
-<div class="doc doc-object doc-attribute">
4817
-
4818
-
4819
-
4820
-<h3 id="derivepassphrase._internals.cli_messages.Label.VAULT_METAVAR_SERVICE" class="doc doc-heading">
4821
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">VAULT_METAVAR_SERVICE</span>
4822
-
4823
-
4824
-  <span class="doc doc-labels">
4825
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4826
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4827
-  </span>
4828
-
4829
-<a href="#derivepassphrase._internals.cli_messages.Label.VAULT_METAVAR_SERVICE" class="headerlink" title="Permanent link">&para;</a></h3>
4830
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">VAULT_METAVAR_SERVICE</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
4831
-    <span class="s1">&#39;This metavar is used as &quot;service_metavar&quot; in multiple help texts, such as Label.DERIVEPASSPHRASE_VAULT_CONFIG_HELP_TEXT, Label.DERIVEPASSPHRASE_VAULT_02, ErrMsgTemplate.SERVICE_REQUIRED, etc.  Sample texts are &quot;Deriving a passphrase requires a SERVICE.&quot;, &quot;save the given settings for SERVICE, or global&quot; and &quot;If operating on global settings, or importing/exporting settings, then SERVICE must be omitted.&quot;&#39;</span>
4832
-<span class="p">)(</span><span class="s2">&quot;Label :: Help text :: Metavar :: vault&quot;</span><span class="p">,</span> <span class="s2">&quot;SERVICE&quot;</span><span class="p">)</span>
4833
-</code></pre></div>
4834
-
4835
-    <div class="doc doc-contents ">
4836
-
4837
-        
4838
-
4839
-    </div>
4840
-
4841
-</div>
4842
-
4843
-<div class="doc doc-object doc-attribute">
4844
-
4845
-
4846
-
4847
-<h3 id="derivepassphrase._internals.cli_messages.Label.DEBUG_OPTION_HELP_TEXT" class="doc doc-heading">
4848
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DEBUG_OPTION_HELP_TEXT</span>
4849
-
4850
-
4851
-  <span class="doc doc-labels">
4852
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4853
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4854
-  </span>
4855
-
4856
-<a href="#derivepassphrase._internals.cli_messages.Label.DEBUG_OPTION_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
4857
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DEBUG_OPTION_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
4858
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
4859
-    <span class="s2">&quot;Also emit debug information.  Implies --verbose.&quot;</span><span class="p">,</span>
4860
-<span class="p">)</span>
4861
-</code></pre></div>
4862
-
4863
-    <div class="doc doc-contents ">
4864
-
4865
-        
4866
-
4867
-    </div>
4868
-
4869
-</div>
4870
-
4871
-<div class="doc doc-object doc-attribute">
4872
-
4873
-
4874
-
4875
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_01" class="doc doc-heading">
4876
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_01</span>
4877
-
4878
-
4879
-  <span class="doc doc-labels">
4880
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4881
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4882
-  </span>
4883
-
4884
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_01" class="headerlink" title="Permanent link">&para;</a></h3>
4885
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_01</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
4886
-    <span class="s2">&quot;This is the first paragraph of the command help text, but it also appears (in truncated form, if necessary) as one-line help text for this command.  The translation should thus be as meaningful as possible even if truncated.&quot;</span>
4887
-<span class="p">)(</span>
4888
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
4889
-    <span class="s2">&quot;Derive a strong passphrase, deterministically, from a master secret.&quot;</span><span class="p">,</span>
4890
-<span class="p">)</span>
4891
-</code></pre></div>
4892
-
4893
-    <div class="doc doc-contents ">
4894
-
4895
-        
4896
-
4897
-    </div>
4898
-
4899
-</div>
4900
-
4901
-<div class="doc doc-object doc-attribute">
4902
-
4903
-
4904
-
4905
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_EXPORT_01" class="doc doc-heading">
4906
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_EXPORT_01</span>
4907
-
4908
-
4909
-  <span class="doc doc-labels">
4910
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4911
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4912
-  </span>
4913
-
4914
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_EXPORT_01" class="headerlink" title="Permanent link">&para;</a></h3>
4915
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_EXPORT_01</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
4916
-    <span class="s2">&quot;This is the first paragraph of the command help text, but it also appears (in truncated form, if necessary) as one-line help text for this command.  The translation should thus be as meaningful as possible even if truncated.&quot;</span>
4917
-<span class="p">)(</span>
4918
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
4919
-    <span class="s2">&quot;Export a foreign configuration to standard output.&quot;</span><span class="p">,</span>
4920
-<span class="p">)</span>
4921
-</code></pre></div>
4922
-
4923
-    <div class="doc doc-contents ">
4924
-
4925
-        
4926
-
4927
-    </div>
4928
-
4929
-</div>
4930
-
4931
-<div class="doc doc-object doc-attribute">
4932
-
4933
-
4934
-
4935
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_EXPORT_VAULT_01" class="doc doc-heading">
4936
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_EXPORT_VAULT_01</span>
4937
-
4938
-
4939
-  <span class="doc doc-labels">
4940
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4941
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4942
-  </span>
4943
-
4944
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_EXPORT_VAULT_01" class="headerlink" title="Permanent link">&para;</a></h3>
4945
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_EXPORT_VAULT_01</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
4946
-    <span class="s2">&quot;This is the first paragraph of the command help text, but it also appears (in truncated form, if necessary) as one-line help text for this command.  The translation should thus be as meaningful as possible even if truncated.&quot;</span>
4947
-<span class="p">)(</span>
4948
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
4949
-    <span class="s2">&quot;Export a vault-native configuration to standard output.&quot;</span><span class="p">,</span>
4950
-<span class="p">)</span>
4951
-</code></pre></div>
4952
-
4953
-    <div class="doc doc-contents ">
4954
-
4955
-        
4956
-
4957
-    </div>
4958
-
4959
-</div>
4960
-
4961
-<div class="doc doc-object doc-attribute">
4962
-
4963
-
4964
-
4965
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_01" class="doc doc-heading">
4966
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_01</span>
4967
-
4968
-
4969
-  <span class="doc doc-labels">
4970
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
4971
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
4972
-  </span>
4973
-
4974
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_01" class="headerlink" title="Permanent link">&para;</a></h3>
4975
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_01</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
4976
-    <span class="s2">&quot;This is the first paragraph of the command help text, but it also appears (in truncated form, if necessary) as one-line help text for this command.  The translation should thus be as meaningful as possible even if truncated.&quot;</span>
4977
-<span class="p">)(</span>
4978
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
4979
-    <span class="s2">&quot;Derive a passphrase using the vault derivation scheme.&quot;</span><span class="p">,</span>
4980
-<span class="p">)</span>
4981
-</code></pre></div>
4982
-
4983
-    <div class="doc doc-contents ">
4984
-
4985
-        
4986
-
4987
-    </div>
4988
-
4989
-</div>
4990
-
4991
-<div class="doc doc-object doc-attribute">
4992
-
4993
-
4994
-
4995
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_CONFIG_HELP_TEXT" class="doc doc-heading">
4996
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_CONFIG_HELP_TEXT</span>
4997
-
4998
-
4999
-  <span class="doc doc-labels">
5000
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5001
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5002
-  </span>
5003
-
5004
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_CONFIG_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5005
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_CONFIG_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
5006
-    <span class="s2">&quot;The metavar is Label.VAULT_METAVAR_SERVICE.&quot;</span>
5007
-<span class="p">)(</span>
5008
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5009
-    <span class="s2">&quot;Save the given settings for </span><span class="si">{service_metavar}</span><span class="s2">, or global.&quot;</span><span class="p">,</span>
5010
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
5011
-<span class="p">)</span>
5012
-</code></pre></div>
5013
-
5014
-    <div class="doc doc-contents ">
5015
-
5016
-        
5017
-
5018
-    </div>
5019
-
5020
-</div>
5021
-
5022
-<div class="doc doc-object doc-attribute">
5023
-
5024
-
5025
-
5026
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_DASH_HELP_TEXT" class="doc doc-heading">
5027
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_DASH_HELP_TEXT</span>
5028
-
5029
-
5030
-  <span class="doc doc-labels">
5031
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5032
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5033
-  </span>
5034
-
5035
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_DASH_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5036
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_DASH_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
5037
-    <span class="s2">&quot;The metavar is Label.PASSPHRASE_GENERATION_METAVAR_NUMBER.&quot;</span>
5038
-<span class="p">)(</span>
5039
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5040
-    <span class="s1">&#39;Ensure at least </span><span class="si">{metavar}</span><span class="s1"> &quot;-&quot; or &quot;_&quot; characters.&#39;</span><span class="p">,</span>
5041
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
5042
-<span class="p">)</span>
5043
-</code></pre></div>
5044
-
5045
-    <div class="doc doc-contents ">
5046
-
5047
-        
5048
-
5049
-    </div>
5050
-
5051
-</div>
5052
-
5053
-<div class="doc doc-object doc-attribute">
5054
-
5055
-
5056
-
5057
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_DELETE_ALL_HELP_TEXT" class="doc doc-heading">
5058
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_DELETE_ALL_HELP_TEXT</span>
5059
-
5060
-
5061
-  <span class="doc doc-labels">
5062
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5063
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5064
-  </span>
5065
-
5066
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_DELETE_ALL_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5067
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_DELETE_ALL_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
5068
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5069
-    <span class="s2">&quot;Delete all settings.&quot;</span><span class="p">,</span>
5070
-<span class="p">)</span>
5071
-</code></pre></div>
5072
-
5073
-    <div class="doc doc-contents ">
5074
-
5075
-        
5076
-
5077
-    </div>
5078
-
5079
-</div>
5080
-
5081
-<div class="doc doc-object doc-attribute">
5082
-
5083
-
5084
-
5085
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_DELETE_GLOBALS_HELP_TEXT" class="doc doc-heading">
5086
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_DELETE_GLOBALS_HELP_TEXT</span>
5087
-
5088
-
5089
-  <span class="doc doc-labels">
5090
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5091
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5092
-  </span>
5093
-
5094
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_DELETE_GLOBALS_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5095
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_DELETE_GLOBALS_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
5096
-    <span class="s2">&quot;&quot;</span>
5097
-<span class="p">)(</span>
5098
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5099
-    <span class="s2">&quot;Delete the global settings.&quot;</span><span class="p">,</span>
5100
-<span class="p">)</span>
5101
-</code></pre></div>
5102
-
5103
-    <div class="doc doc-contents ">
5104
-
5105
-        
5106
-
5107
-    </div>
5108
-
5109
-</div>
5110
-
5111
-<div class="doc doc-object doc-attribute">
5112
-
5113
-
5114
-
5115
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_DELETE_HELP_TEXT" class="doc doc-heading">
5116
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_DELETE_HELP_TEXT</span>
5117
-
5118
-
5119
-  <span class="doc doc-labels">
5120
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5121
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5122
-  </span>
5123
-
5124
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_DELETE_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5125
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_DELETE_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
5126
-    <span class="s2">&quot;The metavar is Label.VAULT_METAVAR_SERVICE.&quot;</span>
5127
-<span class="p">)(</span>
5128
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5129
-    <span class="s2">&quot;Delete the settings for </span><span class="si">{service_metavar}</span><span class="s2">.&quot;</span><span class="p">,</span>
5130
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
5131
-<span class="p">)</span>
5132
-</code></pre></div>
5133
-
5134
-    <div class="doc doc-contents ">
5135
-
5136
-        
5137
-
5138
-    </div>
5139
-
5140
-</div>
5141
-
5142
-<div class="doc doc-object doc-attribute">
5143
-
5144
-
5145
-
5146
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_EDITOR_INTERFACE_HELP_TEXT" class="doc doc-heading">
5147
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_EDITOR_INTERFACE_HELP_TEXT</span>
5148
-
5149
-
5150
-  <span class="doc doc-labels">
5151
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5152
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5153
-  </span>
5154
-
5155
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_EDITOR_INTERFACE_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5156
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_EDITOR_INTERFACE_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
5157
-    <span class="s1">&#39;The corresponding option is displayed as &quot;--modern-editor-interface / --vault-legacy-editor-interface&quot;, so you may want to hint that the default (legacy) is the second of those options.  Though the vault(1) legacy editor interface clearly has deficiencies and (in my opinion) should only be used for compatibility purposes, the one-line help text should try not to sound too judgmental, if possible.&#39;</span>
5158
-<span class="p">)(</span>
5159
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5160
-    <span class="s2">&quot;Edit notes using the modern editor interface or the vault-like legacy one (default).&quot;</span><span class="p">,</span>
5161
-<span class="p">)</span>
5162
-</code></pre></div>
5163
-
5164
-    <div class="doc doc-contents ">
5165
-
5166
-        
5167
-
5168
-    </div>
5169
-
5170
-</div>
5171
-
5172
-<div class="doc doc-object doc-attribute">
5173
-
5174
-
5175
-
5176
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_EXPORT_AS_HELP_TEXT" class="doc doc-heading">
5177
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_EXPORT_AS_HELP_TEXT</span>
5178
-
5179
-
5180
-  <span class="doc doc-labels">
5181
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5182
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5183
-  </span>
5184
-
5185
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_EXPORT_AS_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5186
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_EXPORT_AS_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
5187
-    <span class="s1">&#39;The corresponding option is displayed as &quot;--export-as=json|sh&quot;, so json refers to the JSON format (default) and sh refers to the POSIX sh format.  Please ensure that it is clear what the &quot;json&quot; and &quot;sh&quot; refer to in your translation... even if you cannot use texutal correspondence like the English text does.&#39;</span>
5188
-<span class="p">)(</span>
5189
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5190
-    <span class="s2">&quot;When exporting, export as JSON (default) or as POSIX sh.&quot;</span><span class="p">,</span>
5191
-<span class="p">)</span>
5192
-</code></pre></div>
5193
-
5194
-    <div class="doc doc-contents ">
5195
-
5196
-        
5197
-
5198
-    </div>
5199
-
5200
-</div>
5201
-
5202
-<div class="doc doc-object doc-attribute">
5203
-
5204
-
5205
-
5206
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_EXPORT_HELP_TEXT" class="doc doc-heading">
5207
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_EXPORT_HELP_TEXT</span>
5208
-
5209
-
5210
-  <span class="doc doc-labels">
5211
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5212
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5213
-  </span>
5214
-
5215
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_EXPORT_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5216
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_EXPORT_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
5217
-    <span class="s2">&quot;The metavar is Label.STORAGE_MANAGEMENT_METAVAR_PATH.&quot;</span>
5218
-<span class="p">)(</span>
5219
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5220
-    <span class="s2">&quot;Export all saved settings to </span><span class="si">{metavar}</span><span class="s2">.&quot;</span><span class="p">,</span>
5221
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
5222
-<span class="p">)</span>
5223
-</code></pre></div>
5224
-
5225
-    <div class="doc doc-contents ">
5226
-
5227
-        
5228
-
5229
-    </div>
5230
-
5231
-</div>
5232
-
5233
-<div class="doc doc-object doc-attribute">
5234
-
5235
-
5236
-
5237
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_IMPORT_HELP_TEXT" class="doc doc-heading">
5238
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_IMPORT_HELP_TEXT</span>
5239
-
5240
-
5241
-  <span class="doc doc-labels">
5242
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5243
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5244
-  </span>
5245
-
5246
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_IMPORT_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5247
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_IMPORT_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
5248
-    <span class="s2">&quot;The metavar is Label.STORAGE_MANAGEMENT_METAVAR_PATH.&quot;</span>
5249
-<span class="p">)(</span>
5250
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5251
-    <span class="s2">&quot;Import saved settings from </span><span class="si">{metavar}</span><span class="s2">.&quot;</span><span class="p">,</span>
5252
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
5253
-<span class="p">)</span>
5254
-</code></pre></div>
5255
-
5256
-    <div class="doc doc-contents ">
5257
-
5258
-        
5259
-
5260
-    </div>
5261
-
5262
-</div>
5263
-
5264
-<div class="doc doc-object doc-attribute">
5265
-
5266
-
5267
-
5268
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_KEY_HELP_TEXT" class="doc doc-heading">
5269
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_KEY_HELP_TEXT</span>
5270
-
5271
-
5272
-  <span class="doc doc-labels">
5273
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5274
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5275
-  </span>
5276
-
5277
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_KEY_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5278
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_KEY_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
5279
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5280
-    <span class="s2">&quot;Select a suitable SSH key from the SSH agent.&quot;</span><span class="p">,</span>
5281
-<span class="p">)</span>
5282
-</code></pre></div>
5283
-
5284
-    <div class="doc doc-contents ">
5285
-
5286
-        
5287
-
5288
-    </div>
5289
-
5290
-</div>
5291
-
5292
-<div class="doc doc-object doc-attribute">
5293
-
5294
-
5295
-
5296
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_LENGTH_HELP_TEXT" class="doc doc-heading">
5297
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_LENGTH_HELP_TEXT</span>
5298
-
5299
-
5300
-  <span class="doc doc-labels">
5301
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5302
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5303
-  </span>
5304
-
5305
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_LENGTH_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5306
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_LENGTH_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
5307
-    <span class="s2">&quot;The metavar is Label.PASSPHRASE_GENERATION_METAVAR_NUMBER.&quot;</span>
5308
-<span class="p">)(</span>
5309
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5310
-    <span class="s2">&quot;Ensure a passphrase length of </span><span class="si">{metavar}</span><span class="s2"> characters.&quot;</span><span class="p">,</span>
5311
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
5312
-<span class="p">)</span>
5313
-</code></pre></div>
5314
-
5315
-    <div class="doc doc-contents ">
5316
-
5317
-        
5318
-
5319
-    </div>
5320
-
5321
-</div>
5322
-
5323
-<div class="doc doc-object doc-attribute">
5324
-
5325
-
5326
-
5327
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_LOWER_HELP_TEXT" class="doc doc-heading">
5328
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_LOWER_HELP_TEXT</span>
5329
-
5330
-
5331
-  <span class="doc doc-labels">
5332
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5333
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5334
-  </span>
5335
-
5336
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_LOWER_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5337
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_LOWER_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
5338
-    <span class="s2">&quot;The metavar is Label.PASSPHRASE_GENERATION_METAVAR_NUMBER.&quot;</span>
5339
-<span class="p">)(</span>
5340
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5341
-    <span class="s2">&quot;Ensure at least </span><span class="si">{metavar}</span><span class="s2"> lowercase characters.&quot;</span><span class="p">,</span>
5342
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
5343
-<span class="p">)</span>
5344
-</code></pre></div>
5345
-
5346
-    <div class="doc doc-contents ">
5347
-
5348
-        
5349
-
5350
-    </div>
5351
-
5352
-</div>
5353
-
5354
-<div class="doc doc-object doc-attribute">
5355
-
5356
-
5357
-
5358
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_NOTES_HELP_TEXT" class="doc doc-heading">
5359
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_NOTES_HELP_TEXT</span>
5360
-
5361
-
5362
-  <span class="doc doc-labels">
5363
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5364
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5365
-  </span>
5366
-
5367
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_NOTES_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5368
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_NOTES_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
5369
-    <span class="s2">&quot;The metavar is Label.VAULT_METAVAR_SERVICE.&quot;</span>
5370
-<span class="p">)(</span>
5371
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5372
-    <span class="s2">&quot;With --config and </span><span class="si">{service_metavar}</span><span class="s2">, spawn an editor to edit notes.&quot;</span><span class="p">,</span>
5373
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
5374
-<span class="p">)</span>
5375
-</code></pre></div>
5376
-
5377
-    <div class="doc doc-contents ">
5378
-
5379
-        
5380
-
5381
-    </div>
5382
-
5383
-</div>
5384
-
5385
-<div class="doc doc-object doc-attribute">
5386
-
5387
-
5388
-
5389
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_NUMBER_HELP_TEXT" class="doc doc-heading">
5390
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_NUMBER_HELP_TEXT</span>
5391
-
5392
-
5393
-  <span class="doc doc-labels">
5394
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5395
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5396
-  </span>
5397
-
5398
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_NUMBER_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5399
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_NUMBER_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
5400
-    <span class="s2">&quot;The metavar is Label.PASSPHRASE_GENERATION_METAVAR_NUMBER.&quot;</span>
5401
-<span class="p">)(</span>
5402
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5403
-    <span class="s2">&quot;Ensure at least </span><span class="si">{metavar}</span><span class="s2"> digits.&quot;</span><span class="p">,</span>
5404
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
5405
-<span class="p">)</span>
5406
-</code></pre></div>
5407
-
5408
-    <div class="doc doc-contents ">
5409
-
5410
-        
5411
-
5412
-    </div>
5413
-
5414
-</div>
5415
-
5416
-<div class="doc doc-object doc-attribute">
5417
-
5418
-
5419
-
5420
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_OVERWRITE_HELP_TEXT" class="doc doc-heading">
5421
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_OVERWRITE_HELP_TEXT</span>
5422
-
5423
-
5424
-  <span class="doc doc-labels">
5425
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5426
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5427
-  </span>
5428
-
5429
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_OVERWRITE_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5430
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_OVERWRITE_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
5431
-    <span class="s1">&#39;The corresponding option is displayed as &quot;--overwrite-existing / --merge-existing&quot;, so you may want to hint that the default (merge) is the second of those options.&#39;</span>
5432
-<span class="p">)(</span>
5433
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5434
-    <span class="s2">&quot;Overwrite or merge (default) the existing configuration.&quot;</span><span class="p">,</span>
5435
-<span class="p">)</span>
5436
-</code></pre></div>
5437
-
5438
-    <div class="doc doc-contents ">
5439
-
5440
-        
5441
-
5442
-    </div>
5443
-
5444
-</div>
5445
-
5446
-<div class="doc doc-object doc-attribute">
5447
-
5448
-
5449
-
5450
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_PHRASE_HELP_TEXT" class="doc doc-heading">
5451
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_PHRASE_HELP_TEXT</span>
5452
-
5453
-
5454
-  <span class="doc doc-labels">
5455
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5456
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5457
-  </span>
5458
-
5459
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_PHRASE_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5460
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_PHRASE_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
5461
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5462
-    <span class="s2">&quot;Prompt for a master passphrase.&quot;</span><span class="p">,</span>
5463
-<span class="p">)</span>
5464
-</code></pre></div>
5465
-
5466
-    <div class="doc doc-contents ">
5467
-
5468
-        
5469
-
5470
-    </div>
5471
-
5472
-</div>
5473
-
5474
-<div class="doc doc-object doc-attribute">
5475
-
5476
-
5477
-
5478
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_PRINT_NOTES_BEFORE_HELP_TEXT" class="doc doc-heading">
5479
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_PRINT_NOTES_BEFORE_HELP_TEXT</span>
5480
-
5481
-
5482
-  <span class="doc doc-labels">
5483
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5484
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5485
-  </span>
5486
-
5487
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_PRINT_NOTES_BEFORE_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5488
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_PRINT_NOTES_BEFORE_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
5489
-    <span class="s1">&#39;The corresponding option is displayed as &quot;--print-notes-before / --print-notes-after&quot;, so you may want to hint that the default (after) is the second of those options.&#39;</span>
5490
-<span class="p">)(</span>
5491
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5492
-    <span class="s2">&quot;Print the notes for </span><span class="si">{service_metavar}</span><span class="s2"> (if any) before or after (default) the derived passphrase.&quot;</span><span class="p">,</span>
5493
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
5494
-<span class="p">)</span>
5495
-</code></pre></div>
5496
-
5497
-    <div class="doc doc-contents ">
5498
-
5499
-        
5500
-
5501
-    </div>
5502
-
5503
-</div>
5504
-
5505
-<div class="doc doc-object doc-attribute">
5506
-
5507
-
5508
-
5509
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_REPEAT_HELP_TEXT" class="doc doc-heading">
5510
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_REPEAT_HELP_TEXT</span>
5511
-
5512
-
5513
-  <span class="doc doc-labels">
5514
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5515
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5516
-  </span>
5517
-
5518
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_REPEAT_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5519
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_REPEAT_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
5520
-    <span class="s2">&quot;The metavar is Label.PASSPHRASE_GENERATION_METAVAR_NUMBER.&quot;</span>
5521
-<span class="p">)(</span>
5522
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5523
-    <span class="s2">&quot;Restrict runs of identical characters to at most </span><span class="si">{metavar}</span><span class="s2"> characters.&quot;</span><span class="p">,</span>
5524
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
5525
-<span class="p">)</span>
5526
-</code></pre></div>
5527
-
5528
-    <div class="doc doc-contents ">
5529
-
5530
-        
5531
-
5532
-    </div>
5533
-
5534
-</div>
5535
-
5536
-<div class="doc doc-object doc-attribute">
5537
-
5538
-
5539
-
5540
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_SPACE_HELP_TEXT" class="doc doc-heading">
5541
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_SPACE_HELP_TEXT</span>
5542
-
5543
-
5544
-  <span class="doc doc-labels">
5545
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5546
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5547
-  </span>
5548
-
5549
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_SPACE_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5550
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_SPACE_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
5551
-    <span class="s2">&quot;The metavar is Label.PASSPHRASE_GENERATION_METAVAR_NUMBER.&quot;</span>
5552
-<span class="p">)(</span>
5553
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5554
-    <span class="s2">&quot;Ensure at least </span><span class="si">{metavar}</span><span class="s2"> spaces.&quot;</span><span class="p">,</span>
5555
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
5556
-<span class="p">)</span>
5557
-</code></pre></div>
5558
-
5559
-    <div class="doc doc-contents ">
5560
-
5561
-        
5562
-
5563
-    </div>
5564
-
5565
-</div>
5566
-
5567
-<div class="doc doc-object doc-attribute">
5568
-
5569
-
5570
-
5571
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_SYMBOL_HELP_TEXT" class="doc doc-heading">
5572
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_SYMBOL_HELP_TEXT</span>
5573
-
5574
-
5575
-  <span class="doc doc-labels">
5576
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5577
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5578
-  </span>
5579
-
5580
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_SYMBOL_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5581
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_SYMBOL_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
5582
-    <span class="s2">&quot;The metavar is Label.PASSPHRASE_GENERATION_METAVAR_NUMBER.&quot;</span>
5583
-<span class="p">)(</span>
5584
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5585
-    <span class="s2">&quot;Ensure at least </span><span class="si">{metavar}</span><span class="s2"> symbol characters.&quot;</span><span class="p">,</span>
5586
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
5587
-<span class="p">)</span>
5588
-</code></pre></div>
5589
-
5590
-    <div class="doc doc-contents ">
5591
-
5592
-        
5593
-
5594
-    </div>
5595
-
5596
-</div>
5597
-
5598
-<div class="doc doc-object doc-attribute">
5599
-
5600
-
5601
-
5602
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_UNSET_HELP_TEXT" class="doc doc-heading">
5603
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_UNSET_HELP_TEXT</span>
5604
-
5605
-
5606
-  <span class="doc doc-labels">
5607
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5608
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5609
-  </span>
5610
-
5611
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_UNSET_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5612
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_UNSET_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
5613
-    <span class="s1">&#39;The corresponding option is displayed as &quot;--unset=phrase|key|...|symbol&quot;, so the &quot;given setting&quot; is referring to &quot;phrase&quot;, &quot;key&quot;, &quot;lower&quot;, ..., or &quot;symbol&quot;, respectively.  &quot;with --config&quot; here means that the user must also specify &quot;--config&quot; for this option to have any effect.&#39;</span>
5614
-<span class="p">)(</span>
5615
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5616
-    <span class="s2">&quot;With --config, also unset the given setting.  May be specified multiple times.&quot;</span><span class="p">,</span>
5617
-<span class="p">)</span>
5618
-</code></pre></div>
5619
-
5620
-    <div class="doc doc-contents ">
5621
-
5622
-        
5623
-
5624
-    </div>
5625
-
5626
-</div>
5627
-
5628
-<div class="doc doc-object doc-attribute">
5629
-
5630
-
5631
-
5632
-<h3 id="derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_UPPER_HELP_TEXT" class="doc doc-heading">
5633
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVEPASSPHRASE_VAULT_UPPER_HELP_TEXT</span>
5634
-
5635
-
5636
-  <span class="doc doc-labels">
5637
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5638
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5639
-  </span>
5640
-
5641
-<a href="#derivepassphrase._internals.cli_messages.Label.DERIVEPASSPHRASE_VAULT_UPPER_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5642
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVEPASSPHRASE_VAULT_UPPER_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
5643
-    <span class="s2">&quot;The metavar is Label.PASSPHRASE_GENERATION_METAVAR_NUMBER.&quot;</span>
5644
-<span class="p">)(</span>
5645
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5646
-    <span class="s2">&quot;Ensure at least </span><span class="si">{metavar}</span><span class="s2"> uppercase characters.&quot;</span><span class="p">,</span>
5647
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
5648
-<span class="p">)</span>
5649
-</code></pre></div>
5650
-
5651
-    <div class="doc doc-contents ">
5652
-
5653
-        
5654
-
5655
-    </div>
5656
-
5657
-</div>
5658
-
5659
-<div class="doc doc-object doc-attribute">
5660
-
5661
-
5662
-
5663
-<h3 id="derivepassphrase._internals.cli_messages.Label.EXPORT_VAULT_FORMAT_DEFAULTS_HELP_TEXT" class="doc doc-heading">
5664
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">EXPORT_VAULT_FORMAT_DEFAULTS_HELP_TEXT</span>
5665
-
5666
-
5667
-  <span class="doc doc-labels">
5668
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5669
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5670
-  </span>
5671
-
5672
-<a href="#derivepassphrase._internals.cli_messages.Label.EXPORT_VAULT_FORMAT_DEFAULTS_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5673
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">EXPORT_VAULT_FORMAT_DEFAULTS_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
5674
-    <span class="s1">&#39;See EXPORT_VAULT_FORMAT_HELP_TEXT.  The format names/labels &quot;v0.3&quot;, &quot;v0.2&quot; and &quot;storeroom&quot; should not be translated.&#39;</span>
5675
-<span class="p">)(</span>
5676
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5677
-    <span class="s2">&quot;Default: v0.3, v0.2, storeroom.&quot;</span><span class="p">,</span>
5678
-<span class="p">)</span>
5679
-</code></pre></div>
5680
-
5681
-    <div class="doc doc-contents ">
5682
-
5683
-        
5684
-
5685
-    </div>
5686
-
5687
-</div>
5688
-
5689
-<div class="doc doc-object doc-attribute">
5690
-
5691
-
5692
-
5693
-<h3 id="derivepassphrase._internals.cli_messages.Label.EXPORT_VAULT_FORMAT_HELP_TEXT" class="doc doc-heading">
5694
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">EXPORT_VAULT_FORMAT_HELP_TEXT</span>
5695
-
5696
-
5697
-  <span class="doc doc-labels">
5698
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5699
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5700
-  </span>
5701
-
5702
-<a href="#derivepassphrase._internals.cli_messages.Label.EXPORT_VAULT_FORMAT_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5703
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">EXPORT_VAULT_FORMAT_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
5704
-    <span class="s2">&quot;The defaults_hint is Label.EXPORT_VAULT_FORMAT_DEFAULTS_HELP_TEXT, the metavar is Label.EXPORT_VAULT_FORMAT_METAVAR_FMT.&quot;</span>
5705
-<span class="p">)(</span>
5706
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5707
-    <span class="s2">&quot;Try the following storage format </span><span class="si">{metavar}</span><span class="s2">.  If specified multiple times, the formats will be tried in order.  </span><span class="si">{defaults_hint}</span><span class="s2">&quot;</span><span class="p">,</span>
5708
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
5709
-<span class="p">)</span>
5710
-</code></pre></div>
5711
-
5712
-    <div class="doc doc-contents ">
5713
-
5714
-        
5715
-
5716
-    </div>
5717
-
5718
-</div>
5719
-
5720
-<div class="doc doc-object doc-attribute">
5721
-
5722
-
5723
-
5724
-<h3 id="derivepassphrase._internals.cli_messages.Label.EXPORT_VAULT_KEY_DEFAULTS_HELP_TEXT" class="doc doc-heading">
5725
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">EXPORT_VAULT_KEY_DEFAULTS_HELP_TEXT</span>
5726
-
5727
-
5728
-  <span class="doc doc-labels">
5729
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5730
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5731
-  </span>
5732
-
5733
-<a href="#derivepassphrase._internals.cli_messages.Label.EXPORT_VAULT_KEY_DEFAULTS_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5734
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">EXPORT_VAULT_KEY_DEFAULTS_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
5735
-    <span class="s2">&quot;See EXPORT_VAULT_KEY_HELP_TEXT.&quot;</span>
5736
-<span class="p">)(</span>
5737
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5738
-    <span class="s2">&quot;Default: check the VAULT_KEY, LOGNAME, USER, or USERNAME environment variables.&quot;</span><span class="p">,</span>
5739
-<span class="p">)</span>
5740
-</code></pre></div>
5741
-
5742
-    <div class="doc doc-contents ">
5743
-
5744
-        
5745
-
5746
-    </div>
5747
-
5748
-</div>
5749
-
5750
-<div class="doc doc-object doc-attribute">
5751
-
5752
-
5753
-
5754
-<h3 id="derivepassphrase._internals.cli_messages.Label.EXPORT_VAULT_KEY_HELP_TEXT" class="doc doc-heading">
5755
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">EXPORT_VAULT_KEY_HELP_TEXT</span>
5756
-
5757
-
5758
-  <span class="doc doc-labels">
5759
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5760
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5761
-  </span>
5762
-
5763
-<a href="#derivepassphrase._internals.cli_messages.Label.EXPORT_VAULT_KEY_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5764
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">EXPORT_VAULT_KEY_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
5765
-    <span class="s2">&quot;The defaults_hint is Label.EXPORT_VAULT_KEY_DEFAULTS_HELP_TEXT, the metavar is Label.EXPORT_VAULT_KEY_METAVAR_K.&quot;</span>
5766
-<span class="p">)(</span>
5767
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5768
-    <span class="s2">&quot;Use </span><span class="si">{metavar}</span><span class="s2"> as the storage master key.  </span><span class="si">{defaults_hint}</span><span class="s2">&quot;</span><span class="p">,</span>
5769
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
5770
-<span class="p">)</span>
5771
-</code></pre></div>
5772
-
5773
-    <div class="doc doc-contents ">
5774
-
5775
-        
5776
-
5777
-    </div>
5778
-
5779
-</div>
5780
-
5781
-<div class="doc doc-object doc-attribute">
5782
-
5783
-
5784
-
5785
-<h3 id="derivepassphrase._internals.cli_messages.Label.HELP_OPTION_HELP_TEXT" class="doc doc-heading">
5786
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">HELP_OPTION_HELP_TEXT</span>
5787
-
5788
-
5789
-  <span class="doc doc-labels">
5790
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5791
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5792
-  </span>
5793
-
5794
-<a href="#derivepassphrase._internals.cli_messages.Label.HELP_OPTION_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5795
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">HELP_OPTION_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
5796
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5797
-    <span class="s2">&quot;Show this help text, then exit.&quot;</span><span class="p">,</span>
5798
-<span class="p">)</span>
5799
-</code></pre></div>
5800
-
5801
-    <div class="doc doc-contents ">
5802
-
5803
-        
5804
-
5805
-    </div>
5806
-
5807
-</div>
5808
-
5809
-<div class="doc doc-object doc-attribute">
5810
-
5811
-
5812
-
5813
-<h3 id="derivepassphrase._internals.cli_messages.Label.QUIET_OPTION_HELP_TEXT" class="doc doc-heading">
5814
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">QUIET_OPTION_HELP_TEXT</span>
5815
-
5816
-
5817
-  <span class="doc doc-labels">
5818
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5819
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5820
-  </span>
5821
-
5822
-<a href="#derivepassphrase._internals.cli_messages.Label.QUIET_OPTION_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5823
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">QUIET_OPTION_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
5824
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5825
-    <span class="s2">&quot;Suppress even warnings; emit only errors.&quot;</span><span class="p">,</span>
5826
-<span class="p">)</span>
5827
-</code></pre></div>
5828
-
5829
-    <div class="doc doc-contents ">
5830
-
5831
-        
5832
-
5833
-    </div>
5834
-
5835
-</div>
5836
-
5837
-<div class="doc doc-object doc-attribute">
5838
-
5839
-
5840
-
5841
-<h3 id="derivepassphrase._internals.cli_messages.Label.VERBOSE_OPTION_HELP_TEXT" class="doc doc-heading">
5842
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">VERBOSE_OPTION_HELP_TEXT</span>
5843
-
5844
-
5845
-  <span class="doc doc-labels">
5846
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5847
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5848
-  </span>
5849
-
5850
-<a href="#derivepassphrase._internals.cli_messages.Label.VERBOSE_OPTION_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5851
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">VERBOSE_OPTION_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
5852
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5853
-    <span class="s2">&quot;Emit extra/progress information to standard error.&quot;</span><span class="p">,</span>
5854
-<span class="p">)</span>
5855
-</code></pre></div>
5856
-
5857
-    <div class="doc doc-contents ">
5858
-
5859
-        
5860
-
5861
-    </div>
5862
-
5863
-</div>
5864
-
5865
-<div class="doc doc-object doc-attribute">
5866
-
5867
-
5868
-
5869
-<h3 id="derivepassphrase._internals.cli_messages.Label.VERSION_OPTION_HELP_TEXT" class="doc doc-heading">
5870
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">VERSION_OPTION_HELP_TEXT</span>
5871
-
5872
-
5873
-  <span class="doc doc-labels">
5874
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5875
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5876
-  </span>
5877
-
5878
-<a href="#derivepassphrase._internals.cli_messages.Label.VERSION_OPTION_HELP_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
5879
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">VERSION_OPTION_HELP_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
5880
-    <span class="s2">&quot;Label :: Help text :: One-line description&quot;</span><span class="p">,</span>
5881
-    <span class="s2">&quot;Show version and feature information, then exit.&quot;</span><span class="p">,</span>
5882
-<span class="p">)</span>
5883
-</code></pre></div>
5884
-
5885
-    <div class="doc doc-contents ">
5886
-
5887
-        
5888
-
5889
-    </div>
5890
-
5891
-</div>
5892
-
5893
-<div class="doc doc-object doc-attribute">
5894
-
5895
-
5896
-
5897
-<h3 id="derivepassphrase._internals.cli_messages.Label.COMMANDS_LABEL" class="doc doc-heading">
5898
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">COMMANDS_LABEL</span>
5899
-
5900
-
5901
-  <span class="doc doc-labels">
5902
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5903
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5904
-  </span>
5905
-
5906
-<a href="#derivepassphrase._internals.cli_messages.Label.COMMANDS_LABEL" class="headerlink" title="Permanent link">&para;</a></h3>
5907
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">COMMANDS_LABEL</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
5908
-    <span class="s2">&quot;Label :: Help text :: Option group name&quot;</span><span class="p">,</span> <span class="s2">&quot;Commands&quot;</span>
5909
-<span class="p">)</span>
5910
-</code></pre></div>
5911
-
5912
-    <div class="doc doc-contents ">
5913
-
5914
-        
5915
-
5916
-    </div>
5917
-
5918
-</div>
5919
-
5920
-<div class="doc doc-object doc-attribute">
5921
-
5922
-
5923
-
5924
-<h3 id="derivepassphrase._internals.cli_messages.Label.COMPATIBILITY_OPTION_LABEL" class="doc doc-heading">
5925
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">COMPATIBILITY_OPTION_LABEL</span>
5926
-
5927
-
5928
-  <span class="doc doc-labels">
5929
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5930
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5931
-  </span>
5932
-
5933
-<a href="#derivepassphrase._internals.cli_messages.Label.COMPATIBILITY_OPTION_LABEL" class="headerlink" title="Permanent link">&para;</a></h3>
5934
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">COMPATIBILITY_OPTION_LABEL</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
5935
-    <span class="s2">&quot;Label :: Help text :: Option group name&quot;</span><span class="p">,</span>
5936
-    <span class="s2">&quot;Compatibility and extension options&quot;</span><span class="p">,</span>
5937
-<span class="p">)</span>
5938
-</code></pre></div>
5939
-
5940
-    <div class="doc doc-contents ">
5941
-
5942
-        
5943
-
5944
-    </div>
5945
-
5946
-</div>
5947
-
5948
-<div class="doc doc-object doc-attribute">
5949
-
5950
-
5951
-
5952
-<h3 id="derivepassphrase._internals.cli_messages.Label.CONFIGURATION_LABEL" class="doc doc-heading">
5953
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">CONFIGURATION_LABEL</span>
5954
-
5955
-
5956
-  <span class="doc doc-labels">
5957
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5958
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5959
-  </span>
5960
-
5961
-<a href="#derivepassphrase._internals.cli_messages.Label.CONFIGURATION_LABEL" class="headerlink" title="Permanent link">&para;</a></h3>
5962
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">CONFIGURATION_LABEL</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
5963
-    <span class="s2">&quot;Label :: Help text :: Option group name&quot;</span><span class="p">,</span>
5964
-    <span class="s2">&quot;Configuration&quot;</span><span class="p">,</span>
5965
-<span class="p">)</span>
5966
-</code></pre></div>
5967
-
5968
-    <div class="doc doc-contents ">
5969
-
5970
-        
5971
-
5972
-    </div>
5973
-
5974
-</div>
5975
-
5976
-<div class="doc doc-object doc-attribute">
5977
-
5978
-
5979
-
5980
-<h3 id="derivepassphrase._internals.cli_messages.Label.LOGGING_LABEL" class="doc doc-heading">
5981
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">LOGGING_LABEL</span>
5982
-
5983
-
5984
-  <span class="doc doc-labels">
5985
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
5986
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
5987
-  </span>
5988
-
5989
-<a href="#derivepassphrase._internals.cli_messages.Label.LOGGING_LABEL" class="headerlink" title="Permanent link">&para;</a></h3>
5990
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">LOGGING_LABEL</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
5991
-    <span class="s2">&quot;Label :: Help text :: Option group name&quot;</span><span class="p">,</span> <span class="s2">&quot;Logging&quot;</span>
5992
-<span class="p">)</span>
5993
-</code></pre></div>
5994
-
5995
-    <div class="doc doc-contents ">
5996
-
5997
-        
5998
-
5999
-    </div>
6000
-
6001
-</div>
6002
-
6003
-<div class="doc doc-object doc-attribute">
6004
-
6005
-
6006
-
6007
-<h3 id="derivepassphrase._internals.cli_messages.Label.OPTIONS_LABEL" class="doc doc-heading">
6008
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">OPTIONS_LABEL</span>
6009
-
6010
-
6011
-  <span class="doc doc-labels">
6012
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6013
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6014
-  </span>
6015
-
6016
-<a href="#derivepassphrase._internals.cli_messages.Label.OPTIONS_LABEL" class="headerlink" title="Permanent link">&para;</a></h3>
6017
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">OPTIONS_LABEL</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
6018
-    <span class="s2">&quot;Label :: Help text :: Option group name&quot;</span><span class="p">,</span> <span class="s2">&quot;Options&quot;</span>
6019
-<span class="p">)</span>
6020
-</code></pre></div>
6021
-
6022
-    <div class="doc doc-contents ">
6023
-
6024
-        
6025
-
6026
-    </div>
6027
-
6028
-</div>
6029
-
6030
-<div class="doc doc-object doc-attribute">
6031
-
6032
-
6033
-
6034
-<h3 id="derivepassphrase._internals.cli_messages.Label.OTHER_OPTIONS_LABEL" class="doc doc-heading">
6035
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">OTHER_OPTIONS_LABEL</span>
6036
-
6037
-
6038
-  <span class="doc doc-labels">
6039
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6040
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6041
-  </span>
6042
-
6043
-<a href="#derivepassphrase._internals.cli_messages.Label.OTHER_OPTIONS_LABEL" class="headerlink" title="Permanent link">&para;</a></h3>
6044
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">OTHER_OPTIONS_LABEL</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
6045
-    <span class="s2">&quot;Label :: Help text :: Option group name&quot;</span><span class="p">,</span>
6046
-    <span class="s2">&quot;Other options&quot;</span><span class="p">,</span>
6047
-<span class="p">)</span>
6048
-</code></pre></div>
6049
-
6050
-    <div class="doc doc-contents ">
6051
-
6052
-        
6053
-
6054
-    </div>
6055
-
6056
-</div>
6057
-
6058
-<div class="doc doc-object doc-attribute">
6059
-
6060
-
6061
-
6062
-<h3 id="derivepassphrase._internals.cli_messages.Label.PASSPHRASE_GENERATION_LABEL" class="doc doc-heading">
6063
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">PASSPHRASE_GENERATION_LABEL</span>
6064
-
6065
-
6066
-  <span class="doc doc-labels">
6067
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6068
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6069
-  </span>
6070
-
6071
-<a href="#derivepassphrase._internals.cli_messages.Label.PASSPHRASE_GENERATION_LABEL" class="headerlink" title="Permanent link">&para;</a></h3>
6072
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">PASSPHRASE_GENERATION_LABEL</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
6073
-    <span class="s2">&quot;Label :: Help text :: Option group name&quot;</span><span class="p">,</span>
6074
-    <span class="s2">&quot;Passphrase generation&quot;</span><span class="p">,</span>
6075
-<span class="p">)</span>
6076
-</code></pre></div>
6077
-
6078
-    <div class="doc doc-contents ">
6079
-
6080
-        
6081
-
6082
-    </div>
6083
-
6084
-</div>
6085
-
6086
-<div class="doc doc-object doc-attribute">
6087
-
6088
-
6089
-
6090
-<h3 id="derivepassphrase._internals.cli_messages.Label.STORAGE_MANAGEMENT_LABEL" class="doc doc-heading">
6091
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">STORAGE_MANAGEMENT_LABEL</span>
6092
-
6093
-
6094
-  <span class="doc doc-labels">
6095
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6096
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6097
-  </span>
6098
-
6099
-<a href="#derivepassphrase._internals.cli_messages.Label.STORAGE_MANAGEMENT_LABEL" class="headerlink" title="Permanent link">&para;</a></h3>
6100
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">STORAGE_MANAGEMENT_LABEL</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
6101
-    <span class="s2">&quot;Label :: Help text :: Option group name&quot;</span><span class="p">,</span>
6102
-    <span class="s2">&quot;Storage management&quot;</span><span class="p">,</span>
6103
-<span class="p">)</span>
6104
-</code></pre></div>
6105
-
6106
-    <div class="doc doc-contents ">
6107
-
6108
-        
6109
-
6110
-    </div>
6111
-
6112
-</div>
6113
-
6114
-<div class="doc doc-object doc-attribute">
6115
-
6116
-
6117
-
6118
-<h3 id="derivepassphrase._internals.cli_messages.Label.VERSION_INFO_MAJOR_LIBRARY_TEXT" class="doc doc-heading">
6119
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">VERSION_INFO_MAJOR_LIBRARY_TEXT</span>
6120
-
6121
-
6122
-  <span class="doc doc-labels">
6123
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6124
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6125
-  </span>
6126
-
6127
-<a href="#derivepassphrase._internals.cli_messages.Label.VERSION_INFO_MAJOR_LIBRARY_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
6128
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">VERSION_INFO_MAJOR_LIBRARY_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
6129
-    <span class="s1">&#39;This message reports on the version of a major library currently in use, such as &quot;cryptography&quot;.&#39;</span>
6130
-<span class="p">)(</span>
6131
-    <span class="s2">&quot;Label :: Info Message&quot;</span><span class="p">,</span>
6132
-    <span class="s2">&quot;Using </span><span class="si">{dependency_name_and_version}</span><span class="s2">&quot;</span><span class="p">,</span>
6133
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
6134
-<span class="p">)</span>
6135
-</code></pre></div>
6136
-
6137
-    <div class="doc doc-contents ">
6138
-
6139
-        
6140
-
6141
-    </div>
6142
-
6143
-</div>
6144
-
6145
-<div class="doc doc-object doc-attribute">
6146
-
6147
-
6148
-
6149
-<h3 id="derivepassphrase._internals.cli_messages.Label.ENABLED_PEP508_EXTRAS" class="doc doc-heading">
6150
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">ENABLED_PEP508_EXTRAS</span>
6151
-
6152
-
6153
-  <span class="doc doc-labels">
6154
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6155
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6156
-  </span>
6157
-
6158
-<a href="#derivepassphrase._internals.cli_messages.Label.ENABLED_PEP508_EXTRAS" class="headerlink" title="Permanent link">&para;</a></h3>
6159
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">ENABLED_PEP508_EXTRAS</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
6160
-    <span class="s2">&quot;This is part of the version output, emitting lists of enabled PEP 508 extras.  A comma-separated English list of items follows, with standard English punctuation.&quot;</span>
6161
-<span class="p">)(</span>
6162
-    <span class="s2">&quot;Label :: Info Message:: Table row header&quot;</span><span class="p">,</span>
6163
-    <span class="s2">&quot;PEP 508 extras:&quot;</span><span class="p">,</span>
6164
-<span class="p">)</span>
6165
-</code></pre></div>
6166
-
6167
-    <div class="doc doc-contents ">
6168
-
6169
-        
6170
-
6171
-    </div>
6172
-
6173
-</div>
6174
-
6175
-<div class="doc doc-object doc-attribute">
6176
-
6177
-
6178
-
6179
-<h3 id="derivepassphrase._internals.cli_messages.Label.SUPPORTED_DERIVATION_SCHEMES" class="doc doc-heading">
6180
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">SUPPORTED_DERIVATION_SCHEMES</span>
6181
-
6182
-
6183
-  <span class="doc doc-labels">
6184
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6185
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6186
-  </span>
6187
-
6188
-<a href="#derivepassphrase._internals.cli_messages.Label.SUPPORTED_DERIVATION_SCHEMES" class="headerlink" title="Permanent link">&para;</a></h3>
6189
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">SUPPORTED_DERIVATION_SCHEMES</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
6190
-    <span class="s2">&quot;This is part of the version output, emitting lists of supported derivation schemes.  A comma-separated English list of items follows, with standard English punctuation.&quot;</span>
6191
-<span class="p">)(</span>
6192
-    <span class="s2">&quot;Label :: Info Message:: Table row header&quot;</span><span class="p">,</span>
6193
-    <span class="s2">&quot;Supported derivation schemes:&quot;</span><span class="p">,</span>
6194
-<span class="p">)</span>
6195
-</code></pre></div>
6196
-
6197
-    <div class="doc doc-contents ">
6198
-
6199
-        
6200
-
6201
-    </div>
6202
-
6203
-</div>
6204
-
6205
-<div class="doc doc-object doc-attribute">
6206
-
6207
-
6208
-
6209
-<h3 id="derivepassphrase._internals.cli_messages.Label.SUPPORTED_FEATURES" class="doc doc-heading">
6210
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">SUPPORTED_FEATURES</span>
6211
-
6212
-
6213
-  <span class="doc doc-labels">
6214
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6215
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6216
-  </span>
6217
-
6218
-<a href="#derivepassphrase._internals.cli_messages.Label.SUPPORTED_FEATURES" class="headerlink" title="Permanent link">&para;</a></h3>
6219
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">SUPPORTED_FEATURES</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
6220
-    <span class="s2">&quot;This is part of the version output, emitting lists of supported features for this subcommand.  A comma-separated English list of items follows, with standard English punctuation.&quot;</span>
6221
-<span class="p">)(</span>
6222
-    <span class="s2">&quot;Label :: Info Message:: Table row header&quot;</span><span class="p">,</span>
6223
-    <span class="s2">&quot;Supported features:&quot;</span><span class="p">,</span>
6224
-<span class="p">)</span>
6225
-</code></pre></div>
6226
-
6227
-    <div class="doc doc-contents ">
6228
-
6229
-        
6230
-
6231
-    </div>
6232
-
6233
-</div>
6234
-
6235
-<div class="doc doc-object doc-attribute">
6236
-
6237
-
6238
-
6239
-<h3 id="derivepassphrase._internals.cli_messages.Label.SUPPORTED_FOREIGN_CONFIGURATION_FORMATS" class="doc doc-heading">
6240
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">SUPPORTED_FOREIGN_CONFIGURATION_FORMATS</span>
6241
-
6242
-
6243
-  <span class="doc doc-labels">
6244
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6245
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6246
-  </span>
6247
-
6248
-<a href="#derivepassphrase._internals.cli_messages.Label.SUPPORTED_FOREIGN_CONFIGURATION_FORMATS" class="headerlink" title="Permanent link">&para;</a></h3>
6249
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">SUPPORTED_FOREIGN_CONFIGURATION_FORMATS</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
6250
-    <span class="s2">&quot;This is part of the version output, emitting lists of supported foreign configuration formats.  A comma-separated English list of items follows, with standard English punctuation.&quot;</span>
6251
-<span class="p">)(</span>
6252
-    <span class="s2">&quot;Label :: Info Message:: Table row header&quot;</span><span class="p">,</span>
6253
-    <span class="s2">&quot;Supported foreign configuration formats:&quot;</span><span class="p">,</span>
6254
-<span class="p">)</span>
6255
-</code></pre></div>
6256
-
6257
-    <div class="doc doc-contents ">
6258
-
6259
-        
6260
-
6261
-    </div>
6262
-
6263
-</div>
6264
-
6265
-<div class="doc doc-object doc-attribute">
6266
-
6267
-
6268
-
6269
-<h3 id="derivepassphrase._internals.cli_messages.Label.SUPPORTED_SUBCOMMANDS" class="doc doc-heading">
6270
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">SUPPORTED_SUBCOMMANDS</span>
6271
-
6272
-
6273
-  <span class="doc doc-labels">
6274
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6275
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6276
-  </span>
6277
-
6278
-<a href="#derivepassphrase._internals.cli_messages.Label.SUPPORTED_SUBCOMMANDS" class="headerlink" title="Permanent link">&para;</a></h3>
6279
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">SUPPORTED_SUBCOMMANDS</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
6280
-    <span class="s2">&quot;This is part of the version output, emitting lists of supported subcommands.  A comma-separated English list of items follows, with standard English punctuation.&quot;</span>
6281
-<span class="p">)(</span>
6282
-    <span class="s2">&quot;Label :: Info Message:: Table row header&quot;</span><span class="p">,</span>
6283
-    <span class="s2">&quot;Supported subcommands:&quot;</span><span class="p">,</span>
6284
-<span class="p">)</span>
6285
-</code></pre></div>
6286
-
6287
-    <div class="doc doc-contents ">
6288
-
6289
-        
6290
-
6291
-    </div>
6292
-
6293
-</div>
6294
-
6295
-<div class="doc doc-object doc-attribute">
6296
-
6297
-
6298
-
6299
-<h3 id="derivepassphrase._internals.cli_messages.Label.UNAVAILABLE_DERIVATION_SCHEMES" class="doc doc-heading">
6300
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">UNAVAILABLE_DERIVATION_SCHEMES</span>
6301
-
6302
-
6303
-  <span class="doc doc-labels">
6304
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6305
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6306
-  </span>
6307
-
6308
-<a href="#derivepassphrase._internals.cli_messages.Label.UNAVAILABLE_DERIVATION_SCHEMES" class="headerlink" title="Permanent link">&para;</a></h3>
6309
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">UNAVAILABLE_DERIVATION_SCHEMES</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
6310
-    <span class="s2">&quot;This is part of the version output, emitting lists of known, unavailable derivation schemes.  A comma-separated English list of items follows, with standard English punctuation.&quot;</span>
6311
-<span class="p">)(</span>
6312
-    <span class="s2">&quot;Label :: Info Message:: Table row header&quot;</span><span class="p">,</span>
6313
-    <span class="s2">&quot;Known derivation schemes:&quot;</span><span class="p">,</span>
6314
-<span class="p">)</span>
6315
-</code></pre></div>
6316
-
6317
-    <div class="doc doc-contents ">
6318
-
6319
-        
6320
-
6321
-    </div>
6322
-
6323
-</div>
6324
-
6325
-<div class="doc doc-object doc-attribute">
6326
-
6327
-
6328
-
6329
-<h3 id="derivepassphrase._internals.cli_messages.Label.UNAVAILABLE_FEATURES" class="doc doc-heading">
6330
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">UNAVAILABLE_FEATURES</span>
6331
-
6332
-
6333
-  <span class="doc doc-labels">
6334
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6335
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6336
-  </span>
6337
-
6338
-<a href="#derivepassphrase._internals.cli_messages.Label.UNAVAILABLE_FEATURES" class="headerlink" title="Permanent link">&para;</a></h3>
6339
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">UNAVAILABLE_FEATURES</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
6340
-    <span class="s2">&quot;This is part of the version output, emitting lists of known, unavailable features for this subcommand.  A comma-separated English list of items follows, with standard English punctuation.&quot;</span>
6341
-<span class="p">)(</span>
6342
-    <span class="s2">&quot;Label :: Info Message:: Table row header&quot;</span><span class="p">,</span>
6343
-    <span class="s2">&quot;Known features:&quot;</span><span class="p">,</span>
6344
-<span class="p">)</span>
6345
-</code></pre></div>
6346
-
6347
-    <div class="doc doc-contents ">
6348
-
6349
-        
6350
-
6351
-    </div>
6352
-
6353
-</div>
6354
-
6355
-<div class="doc doc-object doc-attribute">
6356
-
6357
-
6358
-
6359
-<h3 id="derivepassphrase._internals.cli_messages.Label.UNAVAILABLE_FOREIGN_CONFIGURATION_FORMATS" class="doc doc-heading">
6360
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">UNAVAILABLE_FOREIGN_CONFIGURATION_FORMATS</span>
6361
-
6362
-
6363
-  <span class="doc doc-labels">
6364
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6365
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6366
-  </span>
6367
-
6368
-<a href="#derivepassphrase._internals.cli_messages.Label.UNAVAILABLE_FOREIGN_CONFIGURATION_FORMATS" class="headerlink" title="Permanent link">&para;</a></h3>
6369
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">UNAVAILABLE_FOREIGN_CONFIGURATION_FORMATS</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
6370
-    <span class="s2">&quot;This is part of the version output, emitting lists of known, unavailable foreign configuration formats.  A comma-separated English list of items follows, with standard English punctuation.&quot;</span>
6371
-<span class="p">)(</span>
6372
-    <span class="s2">&quot;Label :: Info Message:: Table row header&quot;</span><span class="p">,</span>
6373
-    <span class="s2">&quot;Known foreign configuration formats:&quot;</span><span class="p">,</span>
6374
-<span class="p">)</span>
6375
-</code></pre></div>
6376
-
6377
-    <div class="doc doc-contents ">
6378
-
6379
-        
6380
-
6381
-    </div>
6382
-
6383
-</div>
6384
-
6385
-<div class="doc doc-object doc-attribute">
6386
-
6387
-
6388
-
6389
-<h3 id="derivepassphrase._internals.cli_messages.Label.CONFIRM_THIS_CHOICE_PROMPT_TEXT" class="doc doc-heading">
6390
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">CONFIRM_THIS_CHOICE_PROMPT_TEXT</span>
6391
-
6392
-
6393
-  <span class="doc doc-labels">
6394
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6395
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6396
-  </span>
6397
-
6398
-<a href="#derivepassphrase._internals.cli_messages.Label.CONFIRM_THIS_CHOICE_PROMPT_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
6399
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">CONFIRM_THIS_CHOICE_PROMPT_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
6400
-    <span class="s1">&#39;There is no support for &quot;yes&quot; or &quot;no&quot; in other languages than English, so it is advised that your translation makes it clear that only the strings &quot;y&quot;, &quot;yes&quot;, &quot;n&quot; or &quot;no&quot; are supported, even if the prompt becomes a bit longer.&#39;</span>
6401
-<span class="p">)(</span>
6402
-    <span class="s2">&quot;Label :: Interactive prompt&quot;</span><span class="p">,</span>
6403
-    <span class="s2">&quot;Confirm this choice? (y/N)&quot;</span><span class="p">,</span>
6404
-<span class="p">)</span>
6405
-</code></pre></div>
6406
-
6407
-    <div class="doc doc-contents ">
6408
-
6409
-        
6410
-
6411
-    </div>
6412
-
6413
-</div>
6414
-
6415
-<div class="doc doc-object doc-attribute">
6416
-
6417
-
6418
-
6419
-<h3 id="derivepassphrase._internals.cli_messages.Label.SUITABLE_SSH_KEYS_LABEL" class="doc doc-heading">
6420
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">SUITABLE_SSH_KEYS_LABEL</span>
6421
-
6422
-
6423
-  <span class="doc doc-labels">
6424
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6425
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6426
-  </span>
6427
-
6428
-<a href="#derivepassphrase._internals.cli_messages.Label.SUITABLE_SSH_KEYS_LABEL" class="headerlink" title="Permanent link">&para;</a></h3>
6429
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">SUITABLE_SSH_KEYS_LABEL</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
6430
-    <span class="s2">&quot;This label is the heading of the list of suitable SSH keys.&quot;</span>
6431
-<span class="p">)(</span><span class="s2">&quot;Label :: Interactive prompt&quot;</span><span class="p">,</span> <span class="s2">&quot;Suitable SSH keys:&quot;</span><span class="p">)</span>
6432
-</code></pre></div>
6433
-
6434
-    <div class="doc doc-contents ">
6435
-
6436
-        
6437
-
6438
-    </div>
6439
-
6440
-</div>
6441
-
6442
-<div class="doc doc-object doc-attribute">
6443
-
6444
-
6445
-
6446
-<h3 id="derivepassphrase._internals.cli_messages.Label.YOUR_SELECTION_PROMPT_TEXT" class="doc doc-heading">
6447
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">YOUR_SELECTION_PROMPT_TEXT</span>
6448
-
6449
-
6450
-  <span class="doc doc-labels">
6451
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6452
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6453
-  </span>
6454
-
6455
-<a href="#derivepassphrase._internals.cli_messages.Label.YOUR_SELECTION_PROMPT_TEXT" class="headerlink" title="Permanent link">&para;</a></h3>
6456
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">YOUR_SELECTION_PROMPT_TEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
6457
-    <span class="s2">&quot;Label :: Interactive prompt&quot;</span><span class="p">,</span>
6458
-    <span class="s2">&quot;Your selection? (1-</span><span class="si">{n}</span><span class="s2">, leave empty to abort)&quot;</span><span class="p">,</span>
6459
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
6460
-<span class="p">)</span>
6461
-</code></pre></div>
6462
-
6463
-    <div class="doc doc-contents ">
6464
-
6465
-        
6466
-
6467
-    </div>
6468
-
6469
-</div>
6470
-
6471
-
6472
-
6473
-
6474
-
6475
-  </div>
6476
-
6477
-    </div>
6478
-
6479
-</div>
6480
-
6481
-<div class="doc doc-object doc-class">
6482
-
6483
-
6484
-
6485
-<h2 id="derivepassphrase._internals.cli_messages.DebugMsgTemplate" class="doc doc-heading">
6486
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">DebugMsgTemplate</span>
6487
-
6488
-
6489
-<a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate" class="headerlink" title="Permanent link">&para;</a></h2>
6490
-
6491
-
6492
-    <div class="doc doc-contents ">
6493
-            <p class="doc doc-class-bases">
6494
-              Bases: <code><a class="autorefs autorefs-external" title="enum.Enum" href="https://docs.python.org/3/library/enum.html#enum.Enum">Enum</a></code></p>
6495
-
6496
-
6497
-
6498
-        <p>Debug messages for the <code>derivepassphrase</code> command-line.</p>
6499
-
6500
-
6501
-
6502
-
6503
-
6504
-
6505
-
6506
-
6507
-
6508
-
6509
-  <div class="doc doc-children">
6510
-
6511
-
6512
-
6513
-
6514
-
6515
-
6516
-
6517
-<div class="doc doc-object doc-attribute">
6518
-
6519
-
6520
-
6521
-<h3 id="derivepassphrase._internals.cli_messages.DebugMsgTemplate.BUCKET_ITEM_FOUND" class="doc doc-heading">
6522
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">BUCKET_ITEM_FOUND</span>
6523
-
6524
-
6525
-  <span class="doc doc-labels">
6526
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6527
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6528
-  </span>
6529
-
6530
-<a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.BUCKET_ITEM_FOUND" class="headerlink" title="Permanent link">&para;</a></h3>
6531
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">BUCKET_ITEM_FOUND</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
6532
-    <span class="s1">&#39;This message is emitted by the vault configuration exporter for &quot;storeroom&quot;-type configuration directories.  The system stores entries in different &quot;buckets&quot; of a hash table.  Here, we report on a single item (path and value) we discovered after decrypting the whole bucket.  (We ensure the path and value are printable as-is.)&#39;</span>
6533
-<span class="p">)(</span>
6534
-    <span class="s2">&quot;Debug message&quot;</span><span class="p">,</span>
6535
-    <span class="s2">&quot;Found bucket item: </span><span class="si">{path}</span><span class="s2"> -&gt; </span><span class="si">{value}</span><span class="s2">&quot;</span><span class="p">,</span>
6536
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
6537
-<span class="p">)</span>
6538
-</code></pre></div>
6539
-
6540
-    <div class="doc doc-contents ">
6541
-
6542
-        
6543
-
6544
-    </div>
6545
-
6546
-</div>
6547
-
6548
-<div class="doc doc-object doc-attribute">
6549
-
6550
-
6551
-
6552
-<h3 id="derivepassphrase._internals.cli_messages.DebugMsgTemplate.DECRYPT_BUCKET_ITEM_INFO" class="doc doc-heading">
6553
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DECRYPT_BUCKET_ITEM_INFO</span>
6554
-
6555
-
6556
-  <span class="doc doc-labels">
6557
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6558
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6559
-  </span>
6560
-
6561
-<a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.DECRYPT_BUCKET_ITEM_INFO" class="headerlink" title="Permanent link">&para;</a></h3>
6562
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DECRYPT_BUCKET_ITEM_INFO</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
6563
-    <span class="s1">&#39;&quot;AES256-CBC&quot; and &quot;PKCS#7&quot; are, in essence, names of formats, and should not be translated.  &quot;IV&quot; means &quot;initialization vector&quot;, and is specifically a cryptographic term, as are &quot;plaintext&quot; and &quot;ciphertext&quot;.&#39;</span>
6564
-<span class="p">)(</span>
6565
-    <span class="s2">&quot;Debug message&quot;</span><span class="p">,</span>
6566
-    <span class="s2">&quot;Decrypt bucket item contents:</span><span class="se">\n\n\x08\n</span><span class="s2">  Encryption key (master key): </span><span class="si">{enc_key}</span><span class="se">\n</span><span class="s2">  Encryption cipher: AES256-CBC with PKCS#7 padding</span><span class="se">\n</span><span class="s2">  Encryption IV: </span><span class="si">{iv}</span><span class="se">\n</span><span class="s2">  Encrypted ciphertext: </span><span class="si">{ciphertext}</span><span class="se">\n</span><span class="s2">  Plaintext: </span><span class="si">{plaintext}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span>
6567
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
6568
-<span class="p">)</span>
6569
-</code></pre></div>
6570
-
6571
-    <div class="doc doc-contents ">
6572
-
6573
-        
6574
-
6575
-    </div>
6576
-
6577
-</div>
6578
-
6579
-<div class="doc doc-object doc-attribute">
6580
-
6581
-
6582
-
6583
-<h3 id="derivepassphrase._internals.cli_messages.DebugMsgTemplate.DECRYPT_BUCKET_ITEM_KEY_INFO" class="doc doc-heading">
6584
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DECRYPT_BUCKET_ITEM_KEY_INFO</span>
6585
-
6586
-
6587
-  <span class="doc doc-labels">
6588
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6589
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6590
-  </span>
6591
-
6592
-<a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.DECRYPT_BUCKET_ITEM_KEY_INFO" class="headerlink" title="Permanent link">&para;</a></h3>
6593
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DECRYPT_BUCKET_ITEM_KEY_INFO</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
6594
-    <span class="s2">&quot;Debug message&quot;</span><span class="p">,</span>
6595
-    <span class="s2">&quot;Decrypt bucket item:</span><span class="se">\n\n\x08\n</span><span class="s2">  Plaintext: </span><span class="si">{plaintext}</span><span class="se">\n</span><span class="s2">  Encryption key (master key): </span><span class="si">{enc_key}</span><span class="se">\n</span><span class="s2">  Signing key (master key): </span><span class="si">{sign_key}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span>
6596
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
6597
-<span class="p">)</span>
6598
-</code></pre></div>
6599
-
6600
-    <div class="doc doc-contents ">
6601
-
6602
-        
6603
-
6604
-    </div>
6605
-
6606
-</div>
6607
-
6608
-<div class="doc doc-object doc-attribute">
6609
-
6610
-
6611
-
6612
-<h3 id="derivepassphrase._internals.cli_messages.DebugMsgTemplate.DECRYPT_BUCKET_ITEM_MAC_INFO" class="doc doc-heading">
6613
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DECRYPT_BUCKET_ITEM_MAC_INFO</span>
6614
-
6615
-
6616
-  <span class="doc doc-labels">
6617
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6618
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6619
-  </span>
6620
-
6621
-<a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.DECRYPT_BUCKET_ITEM_MAC_INFO" class="headerlink" title="Permanent link">&para;</a></h3>
6622
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DECRYPT_BUCKET_ITEM_MAC_INFO</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
6623
-    <span class="s1">&#39;The MAC stands for &quot;message authentication code&quot;, which guarantees the authenticity of the message to anyone who holds the corresponding key, similar to a digital signature.  The acronym &quot;MAC&quot; is assumed to be well-known to the English target audience, or at least discoverable by them; they *are* asking for debug output, after all.  Please use your judgement as to whether to translate this term or not, expanded or not.&#39;</span>
6624
-<span class="p">)(</span>
6625
-    <span class="s2">&quot;Debug message&quot;</span><span class="p">,</span>
6626
-    <span class="s2">&quot;Decrypt bucket item contents:</span><span class="se">\n\n\x08\n</span><span class="s2">  MAC key: </span><span class="si">{sign_key}</span><span class="se">\n</span><span class="s2">  Authenticated content: </span><span class="si">{ciphertext}</span><span class="se">\n</span><span class="s2">  Claimed MAC value: </span><span class="si">{claimed_mac}</span><span class="se">\n</span><span class="s2">  Computed MAC value: </span><span class="si">{actual_mac}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span>
6627
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
6628
-<span class="p">)</span>
6629
-</code></pre></div>
6630
-
6631
-    <div class="doc doc-contents ">
6632
-
6633
-        
6634
-
6635
-    </div>
6636
-
6637
-</div>
6638
-
6639
-<div class="doc doc-object doc-attribute">
6640
-
6641
-
6642
-
6643
-<h3 id="derivepassphrase._internals.cli_messages.DebugMsgTemplate.DECRYPT_BUCKET_ITEM_SESSION_KEYS_INFO" class="doc doc-heading">
6644
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DECRYPT_BUCKET_ITEM_SESSION_KEYS_INFO</span>
6645
-
6646
-
6647
-  <span class="doc doc-labels">
6648
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6649
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6650
-  </span>
6651
-
6652
-<a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.DECRYPT_BUCKET_ITEM_SESSION_KEYS_INFO" class="headerlink" title="Permanent link">&para;</a></h3>
6653
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DECRYPT_BUCKET_ITEM_SESSION_KEYS_INFO</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
6654
-    <span class="s1">&#39;&quot;AES256-CBC&quot; and &quot;PKCS#7&quot; are, in essence, names of formats, and should not be translated.  &quot;IV&quot; means &quot;initialization vector&quot;, and is specifically a cryptographic term, as are &quot;plaintext&quot; and &quot;ciphertext&quot;.&#39;</span>
6655
-<span class="p">)(</span>
6656
-    <span class="s2">&quot;Debug message&quot;</span><span class="p">,</span>
6657
-    <span class="s2">&quot;Decrypt bucket item session keys:</span><span class="se">\n\n\x08\n</span><span class="s2">  Encryption key (master key): </span><span class="si">{enc_key}</span><span class="se">\n</span><span class="s2">  Encryption cipher: AES256-CBC with PKCS#7 padding</span><span class="se">\n</span><span class="s2">  Encryption IV: </span><span class="si">{iv}</span><span class="se">\n</span><span class="s2">  Encrypted ciphertext: </span><span class="si">{ciphertext}</span><span class="se">\n</span><span class="s2">  Plaintext: </span><span class="si">{plaintext}</span><span class="se">\n</span><span class="s2">  Parsed plaintext: </span><span class="si">{code}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span>
6658
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
6659
-<span class="p">)</span>
6660
-</code></pre></div>
6661
-
6662
-    <div class="doc doc-contents ">
6663
-
6664
-        
6665
-
6666
-    </div>
6667
-
6668
-</div>
6669
-
6670
-<div class="doc doc-object doc-attribute">
6671
-
6672
-
6673
-
6674
-<h3 id="derivepassphrase._internals.cli_messages.DebugMsgTemplate.DECRYPT_BUCKET_ITEM_SESSION_KEYS_MAC_INFO" class="doc doc-heading">
6675
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DECRYPT_BUCKET_ITEM_SESSION_KEYS_MAC_INFO</span>
6676
-
6677
-
6678
-  <span class="doc doc-labels">
6679
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6680
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6681
-  </span>
6682
-
6683
-<a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.DECRYPT_BUCKET_ITEM_SESSION_KEYS_MAC_INFO" class="headerlink" title="Permanent link">&para;</a></h3>
6684
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DECRYPT_BUCKET_ITEM_SESSION_KEYS_MAC_INFO</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
6685
-    <span class="s1">&#39;The MAC stands for &quot;message authentication code&quot;, which guarantees the authenticity of the message to anyone who holds the corresponding key, similar to a digital signature.  The acronym &quot;MAC&quot; is assumed to be well-known to the English target audience, or at least discoverable by them; they *are* asking for debug output, after all.  Please use your judgement as to whether to translate this term or not, expanded or not.&#39;</span>
6686
-<span class="p">)(</span>
6687
-    <span class="s2">&quot;Debug message&quot;</span><span class="p">,</span>
6688
-    <span class="s2">&quot;Decrypt bucket item session keys:</span><span class="se">\n\n\x08\n</span><span class="s2">  MAC key (master key): </span><span class="si">{sign_key}</span><span class="se">\n</span><span class="s2">  Authenticated content: </span><span class="si">{ciphertext}</span><span class="se">\n</span><span class="s2">  Claimed MAC value: </span><span class="si">{claimed_mac}</span><span class="se">\n</span><span class="s2">  Computed MAC value: </span><span class="si">{actual_mac}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span>
6689
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
6690
-<span class="p">)</span>
6691
-</code></pre></div>
6692
-
6693
-    <div class="doc doc-contents ">
6694
-
6695
-        
6696
-
6697
-    </div>
6698
-
6699
-</div>
6700
-
6701
-<div class="doc doc-object doc-attribute">
6702
-
6703
-
6704
-
6705
-<h3 id="derivepassphrase._internals.cli_messages.DebugMsgTemplate.DERIVED_MASTER_KEYS_KEYS" class="doc doc-heading">
6706
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DERIVED_MASTER_KEYS_KEYS</span>
6707
-
6708
-
6709
-  <span class="doc doc-labels">
6710
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6711
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6712
-  </span>
6713
-
6714
-<a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.DERIVED_MASTER_KEYS_KEYS" class="headerlink" title="Permanent link">&para;</a></h3>
6715
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DERIVED_MASTER_KEYS_KEYS</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
6716
-    <span class="s2">&quot;Debug message&quot;</span><span class="p">,</span>
6717
-    <span class="s2">&quot;Derived master keys&#39; keys:</span><span class="se">\n\n\x08\n</span><span class="s2">  Encryption key: </span><span class="si">{enc_key}</span><span class="se">\n</span><span class="s2">  Signing key: </span><span class="si">{sign_key}</span><span class="se">\n</span><span class="s2">  Password: </span><span class="si">{pw_bytes}</span><span class="se">\n</span><span class="s2">  Function call: pbkdf2(algorithm=</span><span class="si">{algorithm!r}</span><span class="s2">, length=</span><span class="si">{length!r}</span><span class="s2">, salt=</span><span class="si">{salt!r}</span><span class="s2">, iterations=</span><span class="si">{iterations!r}</span><span class="s2">)</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span>
6718
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
6719
-<span class="p">)</span>
6720
-</code></pre></div>
6721
-
6722
-    <div class="doc doc-contents ">
6723
-
6724
-        
6725
-
6726
-    </div>
6727
-
6728
-</div>
6729
-
6730
-<div class="doc doc-object doc-attribute">
6731
-
6732
-
6733
-
6734
-<h3 id="derivepassphrase._internals.cli_messages.DebugMsgTemplate.DIRECTORY_CONTENTS_CHECK_OK" class="doc doc-heading">
6735
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DIRECTORY_CONTENTS_CHECK_OK</span>
6736
-
6737
-
6738
-  <span class="doc doc-labels">
6739
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6740
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6741
-  </span>
6742
-
6743
-<a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.DIRECTORY_CONTENTS_CHECK_OK" class="headerlink" title="Permanent link">&para;</a></h3>
6744
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DIRECTORY_CONTENTS_CHECK_OK</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
6745
-    <span class="s1">&#39;This message is emitted by the vault configuration exporter for &quot;storeroom&quot;-type configuration directories, while &quot;assembling&quot; the items stored in the configuration according to the item</span><span class="se">\&#39;</span><span class="s1">s &quot;path&quot;.  Each &quot;directory&quot; in the path contains a list of children it claims to contain, and this list must be matched against the actual discovered items.  Now, at the end, we actually confirm the claim.  (We would have already thrown an error here otherwise.)&#39;</span>
6746
-<span class="p">)(</span>
6747
-    <span class="s2">&quot;Debug message&quot;</span><span class="p">,</span>
6748
-    <span class="s2">&quot;Directory contents check OK: </span><span class="si">{path}</span><span class="s2"> -&gt; </span><span class="si">{contents}</span><span class="s2">&quot;</span><span class="p">,</span>
6749
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
6750
-<span class="p">)</span>
6751
-</code></pre></div>
6752
-
6753
-    <div class="doc doc-contents ">
6754
-
6755
-        
6756
-
6757
-    </div>
6758
-
6759
-</div>
6760
-
6761
-<div class="doc doc-object doc-attribute">
6762
-
6763
-
6764
-
6765
-<h3 id="derivepassphrase._internals.cli_messages.DebugMsgTemplate.MASTER_KEYS_DATA_MAC_INFO" class="doc doc-heading">
6766
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">MASTER_KEYS_DATA_MAC_INFO</span>
6767
-
6768
-
6769
-  <span class="doc doc-labels">
6770
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6771
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6772
-  </span>
6773
-
6774
-<a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.MASTER_KEYS_DATA_MAC_INFO" class="headerlink" title="Permanent link">&para;</a></h3>
6775
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">MASTER_KEYS_DATA_MAC_INFO</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
6776
-    <span class="s1">&#39;The MAC stands for &quot;message authentication code&quot;, which guarantees the authenticity of the message to anyone who holds the corresponding key, similar to a digital signature.  The acronym &quot;MAC&quot; is assumed to be well-known to the English target audience, or at least discoverable by them; they *are* asking for debug output, after all.  Please use your judgement as to whether to translate this term or not, expanded or not.&#39;</span>
6777
-<span class="p">)(</span>
6778
-    <span class="s2">&quot;Debug message&quot;</span><span class="p">,</span>
6779
-    <span class="s2">&quot;Master keys data:</span><span class="se">\n\n\x08\n</span><span class="s2">  MAC key: </span><span class="si">{sign_key}</span><span class="se">\n</span><span class="s2">  Authenticated content: </span><span class="si">{ciphertext}</span><span class="se">\n</span><span class="s2">  Claimed MAC value: </span><span class="si">{claimed_mac}</span><span class="se">\n</span><span class="s2">  Computed MAC value: </span><span class="si">{actual_mac}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span>
6780
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
6781
-<span class="p">)</span>
6782
-</code></pre></div>
6783
-
6784
-    <div class="doc doc-contents ">
6785
-
6786
-        
6787
-
6788
-    </div>
6789
-
6790
-</div>
6791
-
6792
-<div class="doc doc-object doc-attribute">
6793
-
6794
-
6795
-
6796
-<h3 id="derivepassphrase._internals.cli_messages.DebugMsgTemplate.POSTPONING_DIRECTORY_CONTENTS_CHECK" class="doc doc-heading">
6797
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">POSTPONING_DIRECTORY_CONTENTS_CHECK</span>
6798
-
6799
-
6800
-  <span class="doc doc-labels">
6801
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6802
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6803
-  </span>
6804
-
6805
-<a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.POSTPONING_DIRECTORY_CONTENTS_CHECK" class="headerlink" title="Permanent link">&para;</a></h3>
6806
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">POSTPONING_DIRECTORY_CONTENTS_CHECK</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
6807
-    <span class="s1">&#39;This message is emitted by the vault configuration exporter for &quot;storeroom&quot;-type configuration directories, while &quot;assembling&quot; the items stored in the configuration according to the item</span><span class="se">\&#39;</span><span class="s1">s &quot;path&quot;.  Each &quot;directory&quot; in the path contains a list of children it claims to contain, and this list must be matched against the actual discovered items.  When emitting this message, we merely indicate that we saved the &quot;claimed&quot; list for this directory for later.&#39;</span>
6808
-<span class="p">)(</span>
6809
-    <span class="s2">&quot;Debug message&quot;</span><span class="p">,</span>
6810
-    <span class="s2">&quot;Postponing directory contents check: </span><span class="si">{path}</span><span class="s2"> -&gt; </span><span class="si">{contents}</span><span class="s2">&quot;</span><span class="p">,</span>
6811
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
6812
-<span class="p">)</span>
6813
-</code></pre></div>
6814
-
6815
-    <div class="doc doc-contents ">
6816
-
6817
-        
6818
-
6819
-    </div>
6820
-
6821
-</div>
6822
-
6823
-<div class="doc doc-object doc-attribute">
6824
-
6825
-
6826
-
6827
-<h3 id="derivepassphrase._internals.cli_messages.DebugMsgTemplate.SETTING_CONFIG_STRUCTURE_CONTENTS" class="doc doc-heading">
6828
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">SETTING_CONFIG_STRUCTURE_CONTENTS</span>
6829
-
6830
-
6831
-  <span class="doc doc-labels">
6832
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6833
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6834
-  </span>
6835
-
6836
-<a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.SETTING_CONFIG_STRUCTURE_CONTENTS" class="headerlink" title="Permanent link">&para;</a></h3>
6837
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">SETTING_CONFIG_STRUCTURE_CONTENTS</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
6838
-    <span class="s1">&#39;This message is emitted by the vault configuration exporter for &quot;storeroom&quot;-type configuration directories, while &quot;assembling&quot; the items stored in the configuration according to the item</span><span class="se">\&#39;</span><span class="s1">s &quot;path&quot;.  We confirm that we set the entry at the given path to the given value.&#39;</span>
6839
-<span class="p">)(</span>
6840
-    <span class="s2">&quot;Debug message&quot;</span><span class="p">,</span>
6841
-    <span class="s2">&quot;Setting contents: </span><span class="si">{path}</span><span class="s2"> -&gt; </span><span class="si">{value}</span><span class="s2">&quot;</span><span class="p">,</span>
6842
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
6843
-<span class="p">)</span>
6844
-</code></pre></div>
6845
-
6846
-    <div class="doc doc-contents ">
6847
-
6848
-        
6849
-
6850
-    </div>
6851
-
6852
-</div>
6853
-
6854
-<div class="doc doc-object doc-attribute">
6855
-
6856
-
6857
-
6858
-<h3 id="derivepassphrase._internals.cli_messages.DebugMsgTemplate.SETTING_CONFIG_STRUCTURE_CONTENTS_EMPTY_DIRECTORY" class="doc doc-heading">
6859
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">SETTING_CONFIG_STRUCTURE_CONTENTS_EMPTY_DIRECTORY</span>
6860
-
6861
-
6862
-  <span class="doc doc-labels">
6863
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6864
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6865
-  </span>
6866
-
6867
-<a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.SETTING_CONFIG_STRUCTURE_CONTENTS_EMPTY_DIRECTORY" class="headerlink" title="Permanent link">&para;</a></h3>
6868
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">SETTING_CONFIG_STRUCTURE_CONTENTS_EMPTY_DIRECTORY</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
6869
-    <span class="s1">&#39;This message is emitted by the vault configuration exporter for &quot;storeroom&quot;-type configuration directories, while &quot;assembling&quot; the items stored in the configuration according to the item</span><span class="se">\&#39;</span><span class="s1">s &quot;path&quot;.  We confirm that we set up a currently empty directory at the given path.&#39;</span>
6870
-<span class="p">)(</span>
6871
-    <span class="s2">&quot;Debug message&quot;</span><span class="p">,</span>
6872
-    <span class="s2">&quot;Setting contents (empty directory): </span><span class="si">{path}</span><span class="s2">&quot;</span><span class="p">,</span>
6873
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
6874
-<span class="p">)</span>
6875
-</code></pre></div>
6876
-
6877
-    <div class="doc doc-contents ">
6878
-
6879
-        
6880
-
6881
-    </div>
6882
-
6883
-</div>
6884
-
6885
-<div class="doc doc-object doc-attribute">
6886
-
6887
-
6888
-
6889
-<h3 id="derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_CHECKING_MAC_DETAILS" class="doc doc-heading">
6890
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">VAULT_NATIVE_CHECKING_MAC_DETAILS</span>
6891
-
6892
-
6893
-  <span class="doc doc-labels">
6894
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6895
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6896
-  </span>
6897
-
6898
-<a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_CHECKING_MAC_DETAILS" class="headerlink" title="Permanent link">&para;</a></h3>
6899
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">VAULT_NATIVE_CHECKING_MAC_DETAILS</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
6900
-    <span class="s1">&#39;This message is emitted by the vault configuration exporter for &quot;native&quot;-type configuration directories.  It is preceded by the info message VAULT_NATIVE_PARSING_IV_PAYLOAD_MAC; see the commentary there concerning the terms and thoughts on translating them.&#39;</span>
6901
-<span class="p">)(</span>
6902
-    <span class="s2">&quot;Debug message&quot;</span><span class="p">,</span>
6903
-    <span class="s2">&quot;MAC details:</span><span class="se">\n\n\x08\n</span><span class="s2">  MAC input: </span><span class="si">{mac_input}</span><span class="se">\n</span><span class="s2">  Expected MAC: </span><span class="si">{mac}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span>
6904
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
6905
-<span class="p">)</span>
6906
-</code></pre></div>
6907
-
6908
-    <div class="doc doc-contents ">
6909
-
6910
-        
6911
-
6912
-    </div>
6913
-
6914
-</div>
6915
-
6916
-<div class="doc doc-object doc-attribute">
6917
-
6918
-
6919
-
6920
-<h3 id="derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_EVP_BYTESTOKEY_INIT" class="doc doc-heading">
6921
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">VAULT_NATIVE_EVP_BYTESTOKEY_INIT</span>
6922
-
6923
-
6924
-  <span class="doc doc-labels">
6925
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6926
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6927
-  </span>
6928
-
6929
-<a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_EVP_BYTESTOKEY_INIT" class="headerlink" title="Permanent link">&para;</a></h3>
6930
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">VAULT_NATIVE_EVP_BYTESTOKEY_INIT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
6931
-    <span class="s1">&#39;This message is emitted by the vault configuration exporter for &quot;native&quot;-type configuration directories: in v0.2, the non-standard and deprecated &quot;EVP_bytestokey&quot; function from OpenSSL must be reimplemented from scratch.  The terms &quot;salt&quot; and &quot;IV&quot; (initialization vector) are cryptographic terms.&#39;</span>
6932
-<span class="p">)(</span>
6933
-    <span class="s2">&quot;Debug message&quot;</span><span class="p">,</span>
6934
-    <span class="s2">&quot;evp_bytestokey_md5 (initialization):</span><span class="se">\n\n\x08\n</span><span class="s2">  Input: </span><span class="si">{data}</span><span class="se">\n</span><span class="s2">  Salt: </span><span class="si">{salt}</span><span class="se">\n</span><span class="s2">  Key size: </span><span class="si">{key_size}</span><span class="se">\n</span><span class="s2">  IV size: </span><span class="si">{iv_size}</span><span class="se">\n</span><span class="s2">  Buffer length: </span><span class="si">{buffer_length}</span><span class="se">\n</span><span class="s2">  Buffer: </span><span class="si">{buffer}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span>
6935
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
6936
-<span class="p">)</span>
6937
-</code></pre></div>
6938
-
6939
-    <div class="doc doc-contents ">
6940
-
6941
-        
6942
-
6943
-    </div>
6944
-
6945
-</div>
6946
-
6947
-<div class="doc doc-object doc-attribute">
6948
-
6949
-
6950
-
6951
-<h3 id="derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_EVP_BYTESTOKEY_RESULT" class="doc doc-heading">
6952
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">VAULT_NATIVE_EVP_BYTESTOKEY_RESULT</span>
6953
-
6954
-
6955
-  <span class="doc doc-labels">
6956
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6957
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6958
-  </span>
6959
-
6960
-<a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_EVP_BYTESTOKEY_RESULT" class="headerlink" title="Permanent link">&para;</a></h3>
6961
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">VAULT_NATIVE_EVP_BYTESTOKEY_RESULT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
6962
-    <span class="s1">&#39;This message is emitted by the vault configuration exporter for &quot;native&quot;-type configuration directories: in v0.2, the non-standard and deprecated &quot;EVP_bytestokey&quot; function from OpenSSL must be reimplemented from scratch.  The terms &quot;salt&quot; and &quot;IV&quot; (initialization vector) are cryptographic terms.This function reports on the final results.&#39;</span>
6963
-<span class="p">)(</span>
6964
-    <span class="s2">&quot;Debug message&quot;</span><span class="p">,</span>
6965
-    <span class="s2">&quot;evp_bytestokey_md5 (result):</span><span class="se">\n\n\x08\n</span><span class="s2">  Encryption key: </span><span class="si">{enc_key}</span><span class="se">\n</span><span class="s2">  IV: </span><span class="si">{iv}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span>
6966
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
6967
-<span class="p">)</span>
6968
-</code></pre></div>
6969
-
6970
-    <div class="doc doc-contents ">
6971
-
6972
-        
6973
-
6974
-    </div>
6975
-
6976
-</div>
6977
-
6978
-<div class="doc doc-object doc-attribute">
6979
-
6980
-
6981
-
6982
-<h3 id="derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_EVP_BYTESTOKEY_ROUND" class="doc doc-heading">
6983
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">VAULT_NATIVE_EVP_BYTESTOKEY_ROUND</span>
6984
-
6985
-
6986
-  <span class="doc doc-labels">
6987
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
6988
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
6989
-  </span>
6990
-
6991
-<a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_EVP_BYTESTOKEY_ROUND" class="headerlink" title="Permanent link">&para;</a></h3>
6992
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">VAULT_NATIVE_EVP_BYTESTOKEY_ROUND</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
6993
-    <span class="s1">&#39;This message is emitted by the vault configuration exporter for &quot;native&quot;-type configuration directories: in v0.2, the non-standard and deprecated &quot;EVP_bytestokey&quot; function from OpenSSL must be reimplemented from scratch.  The terms &quot;salt&quot; and &quot;IV&quot; (initialization vector) are cryptographic terms.This function reports on the updated buffer length and contents after executing one round of hashing.&#39;</span>
6994
-<span class="p">)(</span>
6995
-    <span class="s2">&quot;Debug message&quot;</span><span class="p">,</span>
6996
-    <span class="s2">&quot;evp_bytestokey_md5 (round update):</span><span class="se">\n\n\x08\n</span><span class="s2">  Buffer length: </span><span class="si">{buffer_length}</span><span class="se">\n</span><span class="s2">  Buffer: </span><span class="si">{buffer}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span>
6997
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
6998
-<span class="p">)</span>
6999
-</code></pre></div>
7000
-
7001
-    <div class="doc doc-contents ">
7002
-
7003
-        
7004
-
7005
-    </div>
7006
-
7007
-</div>
7008
-
7009
-<div class="doc doc-object doc-attribute">
7010
-
7011
-
7012
-
7013
-<h3 id="derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_PADDED_PLAINTEXT" class="doc doc-heading">
7014
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">VAULT_NATIVE_PADDED_PLAINTEXT</span>
7015
-
7016
-
7017
-  <span class="doc doc-labels">
7018
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7019
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7020
-  </span>
7021
-
7022
-<a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_PADDED_PLAINTEXT" class="headerlink" title="Permanent link">&para;</a></h3>
7023
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">VAULT_NATIVE_PADDED_PLAINTEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
7024
-    <span class="s1">&#39;This message is emitted by the vault configuration exporter for &quot;native&quot;-type configuration directories.  &quot;padding&quot; and &quot;plaintext&quot; are cryptographic terms.&#39;</span>
7025
-<span class="p">)(</span>
7026
-    <span class="s2">&quot;Debug message&quot;</span><span class="p">,</span>
7027
-    <span class="s2">&quot;Padded plaintext: </span><span class="si">{contents}</span><span class="s2">&quot;</span><span class="p">,</span>
7028
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
7029
-<span class="p">)</span>
7030
-</code></pre></div>
7031
-
7032
-    <div class="doc doc-contents ">
7033
-
7034
-        
7035
-
7036
-    </div>
7037
-
7038
-</div>
7039
-
7040
-<div class="doc doc-object doc-attribute">
7041
-
7042
-
7043
-
7044
-<h3 id="derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_PARSE_BUFFER" class="doc doc-heading">
7045
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">VAULT_NATIVE_PARSE_BUFFER</span>
7046
-
7047
-
7048
-  <span class="doc doc-labels">
7049
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7050
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7051
-  </span>
7052
-
7053
-<a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_PARSE_BUFFER" class="headerlink" title="Permanent link">&para;</a></h3>
7054
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">VAULT_NATIVE_PARSE_BUFFER</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
7055
-    <span class="s1">&#39;This message is emitted by the vault configuration exporter for &quot;native&quot;-type configuration directories.  It is preceded by the info message VAULT_NATIVE_PARSING_IV_PAYLOAD_MAC; see the commentary there concerning the terms and thoughts on translating them.&#39;</span>
7056
-<span class="p">)(</span>
7057
-    <span class="s2">&quot;Debug message&quot;</span><span class="p">,</span>
7058
-    <span class="s2">&quot;Buffer: </span><span class="si">{contents}</span><span class="se">\n\n\x08\n</span><span class="s2">  IV: </span><span class="si">{iv}</span><span class="se">\n</span><span class="s2">  Payload (ciphertext): </span><span class="si">{payload}</span><span class="se">\n</span><span class="s2">  MAC: </span><span class="si">{mac}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span>
7059
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
7060
-<span class="p">)</span>
7061
-</code></pre></div>
7062
-
7063
-    <div class="doc doc-contents ">
7064
-
7065
-        
7066
-
7067
-    </div>
7068
-
7069
-</div>
7070
-
7071
-<div class="doc doc-object doc-attribute">
7072
-
7073
-
7074
-
7075
-<h3 id="derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_PBKDF2_CALL" class="doc doc-heading">
7076
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">VAULT_NATIVE_PBKDF2_CALL</span>
7077
-
7078
-
7079
-  <span class="doc doc-labels">
7080
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7081
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7082
-  </span>
7083
-
7084
-<a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_PBKDF2_CALL" class="headerlink" title="Permanent link">&para;</a></h3>
7085
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">VAULT_NATIVE_PBKDF2_CALL</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
7086
-    <span class="s2">&quot;Debug message&quot;</span><span class="p">,</span>
7087
-    <span class="s2">&quot;Master key derivation:</span><span class="se">\n\n\x08\n</span><span class="s2">  PBKDF2 call: PBKDF2-HMAC(password=</span><span class="si">{password!r}</span><span class="s2">, salt=</span><span class="si">{salt!r}</span><span class="s2">, iterations=</span><span class="si">{iterations!r}</span><span class="s2">, key_size=</span><span class="si">{key_size!r}</span><span class="s2">, algorithm=</span><span class="si">{algorithm!r}</span><span class="s2">)</span><span class="se">\n</span><span class="s2">  Result (binary): </span><span class="si">{raw_result}</span><span class="se">\n</span><span class="s2">  Result (hex key): </span><span class="si">{result_key!r}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span>
7088
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
7089
-<span class="p">)</span>
7090
-</code></pre></div>
7091
-
7092
-    <div class="doc doc-contents ">
7093
-
7094
-        
7095
-
7096
-    </div>
7097
-
7098
-</div>
7099
-
7100
-<div class="doc doc-object doc-attribute">
7101
-
7102
-
7103
-
7104
-<h3 id="derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_PLAINTEXT" class="doc doc-heading">
7105
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">VAULT_NATIVE_PLAINTEXT</span>
7106
-
7107
-
7108
-  <span class="doc doc-labels">
7109
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7110
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7111
-  </span>
7112
-
7113
-<a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_PLAINTEXT" class="headerlink" title="Permanent link">&para;</a></h3>
7114
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">VAULT_NATIVE_PLAINTEXT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
7115
-    <span class="s1">&#39;This message is emitted by the vault configuration exporter for &quot;native&quot;-type configuration directories.  &quot;plaintext&quot; is a cryptographic term.&#39;</span>
7116
-<span class="p">)(</span>
7117
-    <span class="s2">&quot;Debug message&quot;</span><span class="p">,</span>
7118
-    <span class="s2">&quot;Plaintext: </span><span class="si">{contents}</span><span class="s2">&quot;</span><span class="p">,</span>
7119
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
7120
-<span class="p">)</span>
7121
-</code></pre></div>
7122
-
7123
-    <div class="doc doc-contents ">
7124
-
7125
-        
7126
-
7127
-    </div>
7128
-
7129
-</div>
7130
-
7131
-<div class="doc doc-object doc-attribute">
7132
-
7133
-
7134
-
7135
-<h3 id="derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_V02_PAYLOAD_MAC_POSTPROCESSING" class="doc doc-heading">
7136
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">VAULT_NATIVE_V02_PAYLOAD_MAC_POSTPROCESSING</span>
7137
-
7138
-
7139
-  <span class="doc doc-labels">
7140
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7141
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7142
-  </span>
7143
-
7144
-<a href="#derivepassphrase._internals.cli_messages.DebugMsgTemplate.VAULT_NATIVE_V02_PAYLOAD_MAC_POSTPROCESSING" class="headerlink" title="Permanent link">&para;</a></h3>
7145
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">VAULT_NATIVE_V02_PAYLOAD_MAC_POSTPROCESSING</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
7146
-    <span class="s1">&#39;This message is emitted by the vault configuration exporter for &quot;native&quot;-type configuration directories.  It is preceded by the info message VAULT_NATIVE_PARSING_IV_PAYLOAD_MAC and the debug message PARSING_NATIVE_PARSE_BUFFER; see the commentary there concerning the terms and thoughts on translating them.&#39;</span>
7147
-<span class="p">)(</span>
7148
-    <span class="s2">&quot;Debug message&quot;</span><span class="p">,</span>
7149
-    <span class="s2">&quot;Postprocessing buffer (v0.2):</span><span class="se">\n\n\x08\n</span><span class="s2">  Payload: </span><span class="si">{payload}</span><span class="s2"> (decoded from base64)</span><span class="se">\n</span><span class="s2">  MAC: </span><span class="si">{mac}</span><span class="s2"> (decoded from hex)</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span>
7150
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
7151
-<span class="p">)</span>
7152
-</code></pre></div>
7153
-
7154
-    <div class="doc doc-contents ">
7155
-
7156
-        
7157
-
7158
-    </div>
7159
-
7160
-</div>
7161
-
7162
-
7163
-
7164
-
7165
-
7166
-  </div>
7167
-
7168
-    </div>
7169
-
7170
-</div>
7171
-
7172
-<div class="doc doc-object doc-class">
7173
-
7174
-
7175
-
7176
-<h2 id="derivepassphrase._internals.cli_messages.InfoMsgTemplate" class="doc doc-heading">
7177
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">InfoMsgTemplate</span>
7178
-
7179
-
7180
-<a href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate" class="headerlink" title="Permanent link">&para;</a></h2>
7181
-
7182
-
7183
-    <div class="doc doc-contents ">
7184
-            <p class="doc doc-class-bases">
7185
-              Bases: <code><a class="autorefs autorefs-external" title="enum.Enum" href="https://docs.python.org/3/library/enum.html#enum.Enum">Enum</a></code></p>
7186
-
7187
-
7188
-
7189
-        <p>Info messages for the <code>derivepassphrase</code> command-line.</p>
7190
-
7191
-
7192
-
7193
-
7194
-
7195
-
7196
-
7197
-
7198
-
7199
-
7200
-  <div class="doc doc-children">
7201
-
7202
-
7203
-
7204
-
7205
-
7206
-
7207
-
7208
-<div class="doc doc-object doc-attribute">
7209
-
7210
-
7211
-
7212
-<h3 id="derivepassphrase._internals.cli_messages.InfoMsgTemplate.ASSEMBLING_CONFIG_STRUCTURE" class="doc doc-heading">
7213
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">ASSEMBLING_CONFIG_STRUCTURE</span>
7214
-
7215
-
7216
-  <span class="doc doc-labels">
7217
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7218
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7219
-  </span>
7220
-
7221
-<a href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate.ASSEMBLING_CONFIG_STRUCTURE" class="headerlink" title="Permanent link">&para;</a></h3>
7222
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">ASSEMBLING_CONFIG_STRUCTURE</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
7223
-    <span class="s1">&#39;This message is emitted by the vault configuration exporter for &quot;storeroom&quot;-type configuration directories.  The system stores entries in different &quot;buckets&quot; of a hash table.  After the respective items in the buckets have been decrypted, we then have a list of item paths plus contents to populate.  This must be done in a certain order (we don</span><span class="se">\&#39;</span><span class="s1">t yet have an existing directory tree to rely on, but rather must build it on-the-fly), hence the term &quot;assembling&quot;.&#39;</span>
7224
-<span class="p">)(</span><span class="s2">&quot;Info message&quot;</span><span class="p">,</span> <span class="s2">&quot;Assembling config structure.&quot;</span><span class="p">)</span>
7225
-</code></pre></div>
7226
-
7227
-    <div class="doc doc-contents ">
7228
-
7229
-        
7230
-
7231
-    </div>
7232
-
7233
-</div>
7234
-
7235
-<div class="doc doc-object doc-attribute">
7236
-
7237
-
7238
-
7239
-<h3 id="derivepassphrase._internals.cli_messages.InfoMsgTemplate.CANNOT_LOAD_AS_VAULT_CONFIG" class="doc doc-heading">
7240
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">CANNOT_LOAD_AS_VAULT_CONFIG</span>
7241
-
7242
-
7243
-  <span class="doc doc-labels">
7244
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7245
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7246
-  </span>
7247
-
7248
-<a href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate.CANNOT_LOAD_AS_VAULT_CONFIG" class="headerlink" title="Permanent link">&para;</a></h3>
7249
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">CANNOT_LOAD_AS_VAULT_CONFIG</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
7250
-    <span class="s1">&#39;&quot;fmt&quot; is a string such as &quot;v0.2&quot; or &quot;storeroom&quot;, indicating the format which we tried to load the vault configuration as.&#39;</span>
7251
-<span class="p">)(</span>
7252
-    <span class="s2">&quot;Info message&quot;</span><span class="p">,</span>
7253
-    <span class="s2">&quot;Cannot load </span><span class="si">{path!r}</span><span class="s2"> as a </span><span class="si">{fmt}</span><span class="s2"> vault configuration.&quot;</span><span class="p">,</span>
7254
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
7255
-<span class="p">)</span>
7256
-</code></pre></div>
7257
-
7258
-    <div class="doc doc-contents ">
7259
-
7260
-        
7261
-
7262
-    </div>
7263
-
7264
-</div>
7265
-
7266
-<div class="doc doc-object doc-attribute">
7267
-
7268
-
7269
-
7270
-<h3 id="derivepassphrase._internals.cli_messages.InfoMsgTemplate.CHECKING_CONFIG_STRUCTURE_CONSISTENCY" class="doc doc-heading">
7271
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">CHECKING_CONFIG_STRUCTURE_CONSISTENCY</span>
7272
-
7273
-
7274
-  <span class="doc doc-labels">
7275
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7276
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7277
-  </span>
7278
-
7279
-<a href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate.CHECKING_CONFIG_STRUCTURE_CONSISTENCY" class="headerlink" title="Permanent link">&para;</a></h3>
7280
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">CHECKING_CONFIG_STRUCTURE_CONSISTENCY</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
7281
-    <span class="s1">&#39;This message is emitted by the vault configuration exporter for &quot;storeroom&quot;-type configuration directories.  Having &quot;assembled&quot; the configuration items according to their claimed paths and contents, we then check if the assembled structure is internally consistent.&#39;</span>
7282
-<span class="p">)(</span><span class="s2">&quot;Info message&quot;</span><span class="p">,</span> <span class="s2">&quot;Checking config structure consistency.&quot;</span><span class="p">)</span>
7283
-</code></pre></div>
7284
-
7285
-    <div class="doc doc-contents ">
7286
-
7287
-        
7288
-
7289
-    </div>
7290
-
7291
-</div>
7292
-
7293
-<div class="doc doc-object doc-attribute">
7294
-
7295
-
7296
-
7297
-<h3 id="derivepassphrase._internals.cli_messages.InfoMsgTemplate.DECRYPTING_BUCKET" class="doc doc-heading">
7298
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">DECRYPTING_BUCKET</span>
7299
-
7300
-
7301
-  <span class="doc doc-labels">
7302
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7303
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7304
-  </span>
7305
-
7306
-<a href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate.DECRYPTING_BUCKET" class="headerlink" title="Permanent link">&para;</a></h3>
7307
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">DECRYPTING_BUCKET</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
7308
-    <span class="s1">&#39;This message is emitted by the vault configuration exporter for &quot;storeroom&quot;-type configuration directories.  The system stores entries in different &quot;buckets&quot; of a hash table.  We parse the directory bucket by bucket.  All buckets are numbered in hexadecimal, and typically there are 32 buckets, so 2-digit hex numbers.&#39;</span>
7309
-<span class="p">)(</span>
7310
-    <span class="s2">&quot;Info message&quot;</span><span class="p">,</span>
7311
-    <span class="s2">&quot;Decrypting bucket </span><span class="si">{bucket_number}</span><span class="s2">.&quot;</span><span class="p">,</span>
7312
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
7313
-<span class="p">)</span>
7314
-</code></pre></div>
7315
-
7316
-    <div class="doc doc-contents ">
7317
-
7318
-        
7319
-
7320
-    </div>
7321
-
7322
-</div>
7323
-
7324
-<div class="doc doc-object doc-attribute">
7325
-
7326
-
7327
-
7328
-<h3 id="derivepassphrase._internals.cli_messages.InfoMsgTemplate.PARSING_MASTER_KEYS_DATA" class="doc doc-heading">
7329
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">PARSING_MASTER_KEYS_DATA</span>
7330
-
7331
-
7332
-  <span class="doc doc-labels">
7333
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7334
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7335
-  </span>
7336
-
7337
-<a href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate.PARSING_MASTER_KEYS_DATA" class="headerlink" title="Permanent link">&para;</a></h3>
7338
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">PARSING_MASTER_KEYS_DATA</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
7339
-    <span class="s1">&#39;This message is emitted by the vault configuration exporter for &quot;storeroom&quot;-type configuration directories.  `.keys` is a filename, from which data about the master keys for this configuration are loaded.&#39;</span>
7340
-<span class="p">)(</span><span class="s2">&quot;Info message&quot;</span><span class="p">,</span> <span class="s2">&quot;Parsing master keys data from `.keys`.&quot;</span><span class="p">)</span>
7341
-</code></pre></div>
7342
-
7343
-    <div class="doc doc-contents ">
7344
-
7345
-        
7346
-
7347
-    </div>
7348
-
7349
-</div>
7350
-
7351
-<div class="doc doc-object doc-attribute">
7352
-
7353
-
7354
-
7355
-<h3 id="derivepassphrase._internals.cli_messages.InfoMsgTemplate.PIP_INSTALL_EXTRA" class="doc doc-heading">
7356
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">PIP_INSTALL_EXTRA</span>
7357
-
7358
-
7359
-  <span class="doc doc-labels">
7360
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7361
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7362
-  </span>
7363
-
7364
-<a href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate.PIP_INSTALL_EXTRA" class="headerlink" title="Permanent link">&para;</a></h3>
7365
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">PIP_INSTALL_EXTRA</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
7366
-    <span class="s1">&#39;This message immediately follows an error message about a missing library that needs to be installed.  The Python Package Index (PyPI) supports declaring sets of optional dependencies as &quot;extras&quot;, so users installing from PyPI can request reinstallation with a named &quot;extra&quot; being enabled.  This would then let the installer take care of the missing libraries automatically, hence this suggestion to PyPI users.&#39;</span>
7367
-<span class="p">)(</span>
7368
-    <span class="s2">&quot;Info message&quot;</span><span class="p">,</span>
7369
-    <span class="s2">&quot;For users installing from PyPI, see the </span><span class="si">{extra_name!r}</span><span class="s2"> extra.&quot;</span><span class="p">,</span>
7370
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
7371
-<span class="p">)</span>
7372
-</code></pre></div>
7373
-
7374
-    <div class="doc doc-contents ">
7375
-
7376
-        
7377
-
7378
-    </div>
7379
-
7380
-</div>
7381
-
7382
-<div class="doc doc-object doc-attribute">
7383
-
7384
-
7385
-
7386
-<h3 id="derivepassphrase._internals.cli_messages.InfoMsgTemplate.SUCCESSFULLY_MIGRATED" class="doc doc-heading">
7387
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">SUCCESSFULLY_MIGRATED</span>
7388
-
7389
-
7390
-  <span class="doc doc-labels">
7391
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7392
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7393
-  </span>
7394
-
7395
-<a href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate.SUCCESSFULLY_MIGRATED" class="headerlink" title="Permanent link">&para;</a></h3>
7396
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">SUCCESSFULLY_MIGRATED</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
7397
-    <span class="s1">&#39;This info message immediately follows the &quot;Using deprecated v0.1-style ...&quot; deprecation warning.&#39;</span>
7398
-<span class="p">)(</span>
7399
-    <span class="s2">&quot;Info message&quot;</span><span class="p">,</span>
7400
-    <span class="s2">&quot;Successfully migrated to </span><span class="si">{path!r}</span><span class="s2">.&quot;</span><span class="p">,</span>
7401
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
7402
-<span class="p">)</span>
7403
-</code></pre></div>
7404
-
7405
-    <div class="doc doc-contents ">
7406
-
7407
-        
7408
-
7409
-    </div>
7410
-
7411
-</div>
7412
-
7413
-<div class="doc doc-object doc-attribute">
7414
-
7415
-
7416
-
7417
-<h3 id="derivepassphrase._internals.cli_messages.InfoMsgTemplate.VAULT_NATIVE_CHECKING_MAC" class="doc doc-heading">
7418
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">VAULT_NATIVE_CHECKING_MAC</span>
7419
-
7420
-
7421
-  <span class="doc doc-labels">
7422
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7423
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7424
-  </span>
7425
-
7426
-<a href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate.VAULT_NATIVE_CHECKING_MAC" class="headerlink" title="Permanent link">&para;</a></h3>
7427
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">VAULT_NATIVE_CHECKING_MAC</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
7428
-    <span class="s2">&quot;Info message&quot;</span><span class="p">,</span> <span class="s2">&quot;Checking MAC.&quot;</span>
7429
-<span class="p">)</span>
7430
-</code></pre></div>
7431
-
7432
-    <div class="doc doc-contents ">
7433
-
7434
-        
7435
-
7436
-    </div>
7437
-
7438
-</div>
7439
-
7440
-<div class="doc doc-object doc-attribute">
7441
-
7442
-
7443
-
7444
-<h3 id="derivepassphrase._internals.cli_messages.InfoMsgTemplate.VAULT_NATIVE_DECRYPTING_CONTENTS" class="doc doc-heading">
7445
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">VAULT_NATIVE_DECRYPTING_CONTENTS</span>
7446
-
7447
-
7448
-  <span class="doc doc-labels">
7449
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7450
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7451
-  </span>
7452
-
7453
-<a href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate.VAULT_NATIVE_DECRYPTING_CONTENTS" class="headerlink" title="Permanent link">&para;</a></h3>
7454
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">VAULT_NATIVE_DECRYPTING_CONTENTS</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
7455
-    <span class="s2">&quot;Info message&quot;</span><span class="p">,</span> <span class="s2">&quot;Decrypting contents.&quot;</span>
7456
-<span class="p">)</span>
7457
-</code></pre></div>
7458
-
7459
-    <div class="doc doc-contents ">
7460
-
7461
-        
7462
-
7463
-    </div>
7464
-
7465
-</div>
7466
-
7467
-<div class="doc doc-object doc-attribute">
7468
-
7469
-
7470
-
7471
-<h3 id="derivepassphrase._internals.cli_messages.InfoMsgTemplate.VAULT_NATIVE_DERIVING_KEYS" class="doc doc-heading">
7472
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">VAULT_NATIVE_DERIVING_KEYS</span>
7473
-
7474
-
7475
-  <span class="doc doc-labels">
7476
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7477
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7478
-  </span>
7479
-
7480
-<a href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate.VAULT_NATIVE_DERIVING_KEYS" class="headerlink" title="Permanent link">&para;</a></h3>
7481
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">VAULT_NATIVE_DERIVING_KEYS</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
7482
-    <span class="s2">&quot;Info message&quot;</span><span class="p">,</span>
7483
-    <span class="s2">&quot;Deriving an encryption and signing key.&quot;</span><span class="p">,</span>
7484
-<span class="p">)</span>
7485
-</code></pre></div>
7486
-
7487
-    <div class="doc doc-contents ">
7488
-
7489
-        
7490
-
7491
-    </div>
7492
-
7493
-</div>
7494
-
7495
-<div class="doc doc-object doc-attribute">
7496
-
7497
-
7498
-
7499
-<h3 id="derivepassphrase._internals.cli_messages.InfoMsgTemplate.VAULT_NATIVE_PARSING_IV_PAYLOAD_MAC" class="doc doc-heading">
7500
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">VAULT_NATIVE_PARSING_IV_PAYLOAD_MAC</span>
7501
-
7502
-
7503
-  <span class="doc doc-labels">
7504
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7505
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7506
-  </span>
7507
-
7508
-<a href="#derivepassphrase._internals.cli_messages.InfoMsgTemplate.VAULT_NATIVE_PARSING_IV_PAYLOAD_MAC" class="headerlink" title="Permanent link">&para;</a></h3>
7509
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">VAULT_NATIVE_PARSING_IV_PAYLOAD_MAC</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
7510
-    <span class="s1">&#39;This message is emitted by the vault configuration exporter for &quot;native&quot;-type configuration directories.  &quot;IV&quot; means &quot;initialization vector&quot;, and &quot;MAC&quot; means &quot;message authentication code&quot;.  They are specifically cryptographic terms, as is &quot;payload&quot;.  The acronyms &quot;IV&quot; and &quot;MAC&quot; are assumed to be well-known to the English target audience, or at least discoverable by them; they *are* asking for debug output, after all.  Please use your judgement as to whether to translate these terms or not, expanded or not.&#39;</span>
7511
-<span class="p">)(</span>
7512
-    <span class="s2">&quot;Info message&quot;</span><span class="p">,</span>
7513
-    <span class="s2">&quot;Parsing IV, payload and MAC from the file contents.&quot;</span><span class="p">,</span>
7514
-<span class="p">)</span>
7515
-</code></pre></div>
7516
-
7517
-    <div class="doc doc-contents ">
7518
-
7519
-        
7520
-
7521
-    </div>
7522
-
7523
-</div>
7524
-
7525
-
7526
-
7527
-
7528
-
7529
-  </div>
7530
-
7531
-    </div>
7532
-
7533
-</div>
7534
-
7535
-<div class="doc doc-object doc-class">
7536
-
7537
-
7538
-
7539
-<h2 id="derivepassphrase._internals.cli_messages.WarnMsgTemplate" class="doc doc-heading">
7540
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">WarnMsgTemplate</span>
7541
-
7542
-
7543
-<a href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate" class="headerlink" title="Permanent link">&para;</a></h2>
7544
-
7545
-
7546
-    <div class="doc doc-contents ">
7547
-            <p class="doc doc-class-bases">
7548
-              Bases: <code><a class="autorefs autorefs-external" title="enum.Enum" href="https://docs.python.org/3/library/enum.html#enum.Enum">Enum</a></code></p>
7549
-
7550
-
7551
-
7552
-        <p>Warning messages for the <code>derivepassphrase</code> command-line.</p>
7553
-
7554
-
7555
-
7556
-
7557
-
7558
-
7559
-
7560
-
7561
-
7562
-
7563
-  <div class="doc doc-children">
7564
-
7565
-
7566
-
7567
-
7568
-
7569
-
7570
-
7571
-<div class="doc doc-object doc-attribute">
7572
-
7573
-
7574
-
7575
-<h3 id="derivepassphrase._internals.cli_messages.WarnMsgTemplate.EMPTY_SERVICE_NOT_SUPPORTED" class="doc doc-heading">
7576
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">EMPTY_SERVICE_NOT_SUPPORTED</span>
7577
-
7578
-
7579
-  <span class="doc doc-labels">
7580
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7581
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7582
-  </span>
7583
-
7584
-<a href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate.EMPTY_SERVICE_NOT_SUPPORTED" class="headerlink" title="Permanent link">&para;</a></h3>
7585
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">EMPTY_SERVICE_NOT_SUPPORTED</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
7586
-    <span class="s2">&quot;Warning message&quot;</span><span class="p">,</span>
7587
-    <span class="s2">&quot;An empty </span><span class="si">{service_metavar}</span><span class="s2"> is not supported by vault(1).  For compatibility, this will be treated as if </span><span class="si">{service_metavar}</span><span class="s2"> was not supplied, i.e., it will error out, or operate on global settings.&quot;</span><span class="p">,</span>
7588
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
7589
-<span class="p">)</span>
7590
-</code></pre></div>
7591
-
7592
-    <div class="doc doc-contents ">
7593
-
7594
-        
7595
-
7596
-    </div>
7597
-
7598
-</div>
7599
-
7600
-<div class="doc doc-object doc-attribute">
7601
-
7602
-
7603
-
7604
-<h3 id="derivepassphrase._internals.cli_messages.WarnMsgTemplate.EMPTY_SERVICE_SETTINGS_INACCESSIBLE" class="doc doc-heading">
7605
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">EMPTY_SERVICE_SETTINGS_INACCESSIBLE</span>
7606
-
7607
-
7608
-  <span class="doc doc-labels">
7609
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7610
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7611
-  </span>
7612
-
7613
-<a href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate.EMPTY_SERVICE_SETTINGS_INACCESSIBLE" class="headerlink" title="Permanent link">&para;</a></h3>
7614
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">EMPTY_SERVICE_SETTINGS_INACCESSIBLE</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
7615
-    <span class="s2">&quot;Warning message&quot;</span><span class="p">,</span>
7616
-    <span class="s1">&#39;An empty </span><span class="si">{service_metavar}</span><span class="s1"> is not supported by vault(1).  The empty-string service settings will be inaccessible and ineffective.  To ensure that vault(1) and </span><span class="si">{PROG_NAME}</span><span class="s1"> see the settings, move them into the &quot;global&quot; section.&#39;</span><span class="p">,</span>
7617
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
7618
-<span class="p">)</span>
7619
-</code></pre></div>
7620
-
7621
-    <div class="doc doc-contents ">
7622
-
7623
-        
7624
-
7625
-    </div>
7626
-
7627
-</div>
7628
-
7629
-<div class="doc doc-object doc-attribute">
7630
-
7631
-
7632
-
7633
-<h3 id="derivepassphrase._internals.cli_messages.WarnMsgTemplate.FAILED_TO_MIGRATE_CONFIG" class="doc doc-heading">
7634
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">FAILED_TO_MIGRATE_CONFIG</span>
7635
-
7636
-
7637
-  <span class="doc doc-labels">
7638
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7639
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7640
-  </span>
7641
-
7642
-<a href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate.FAILED_TO_MIGRATE_CONFIG" class="headerlink" title="Permanent link">&para;</a></h3>
7643
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">FAILED_TO_MIGRATE_CONFIG</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
7644
-    <span class="s1">&#39;&quot;error&quot; is supplied by the operating system (errno/strerror).&#39;</span>
7645
-<span class="p">)(</span>
7646
-    <span class="s2">&quot;Warning message&quot;</span><span class="p">,</span>
7647
-    <span class="s2">&quot;Failed to migrate to </span><span class="si">{path!r}</span><span class="s2">: </span><span class="si">{error}</span><span class="s2">: </span><span class="si">{filename!r}</span><span class="s2">.&quot;</span><span class="p">,</span>
7648
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
7649
-<span class="p">)</span>
7650
-</code></pre></div>
7651
-
7652
-    <div class="doc doc-contents ">
7653
-
7654
-        
7655
-
7656
-    </div>
7657
-
7658
-</div>
7659
-
7660
-<div class="doc doc-object doc-attribute">
7661
-
7662
-
7663
-
7664
-<h3 id="derivepassphrase._internals.cli_messages.WarnMsgTemplate.GLOBAL_PASSPHRASE_INEFFECTIVE" class="doc doc-heading">
7665
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">GLOBAL_PASSPHRASE_INEFFECTIVE</span>
7666
-
7667
-
7668
-  <span class="doc doc-labels">
7669
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7670
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7671
-  </span>
7672
-
7673
-<a href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate.GLOBAL_PASSPHRASE_INEFFECTIVE" class="headerlink" title="Permanent link">&para;</a></h3>
7674
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">GLOBAL_PASSPHRASE_INEFFECTIVE</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
7675
-    <span class="s2">&quot;Warning message&quot;</span><span class="p">,</span>
7676
-    <span class="s2">&quot;Setting a global passphrase is ineffective because a key is also set.&quot;</span><span class="p">,</span>
7677
-<span class="p">)</span>
7678
-</code></pre></div>
7679
-
7680
-    <div class="doc doc-contents ">
7681
-
7682
-        
7683
-
7684
-    </div>
7685
-
7686
-</div>
7687
-
7688
-<div class="doc doc-object doc-attribute">
7689
-
7690
-
7691
-
7692
-<h3 id="derivepassphrase._internals.cli_messages.WarnMsgTemplate.PASSPHRASE_NOT_NORMALIZED" class="doc doc-heading">
7693
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">PASSPHRASE_NOT_NORMALIZED</span>
7694
-
7695
-
7696
-  <span class="doc doc-labels">
7697
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7698
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7699
-  </span>
7700
-
7701
-<a href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate.PASSPHRASE_NOT_NORMALIZED" class="headerlink" title="Permanent link">&para;</a></h3>
7702
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">PASSPHRASE_NOT_NORMALIZED</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
7703
-    <span class="s1">&#39;The key is a (vault) configuration key, in JSONPath syntax, typically &quot;$.global&quot; for the global passphrase or &quot;$.services.service_name&quot; or &quot;$.services[&quot;service with spaces&quot;]&quot; for the services &quot;service_name&quot; and &quot;service with spaces&quot;, respectively.  Alternatively, it may be the value of Label.SETTINGS_ORIGIN_INTERACTIVE if the passphrase was entered interactively.  The form is one of the four Unicode normalization forms: NFC, NFD, NFKC, NFKD.  The asterisks are not special.  Please feel free to substitute any other appropriate way to mark up emphasis of the word &quot;displays&quot;.&#39;</span>
7704
-<span class="p">)(</span>
7705
-    <span class="s2">&quot;Warning message&quot;</span><span class="p">,</span>
7706
-    <span class="s2">&quot;The </span><span class="si">{key}</span><span class="s2"> passphrase is not </span><span class="si">{form}</span><span class="s2">-normalized.  Its serialization as a byte string may not be what you expect it to be, even if it *displays* correctly.  Please make sure to double-check any derived passphrases for unexpected results.&quot;</span><span class="p">,</span>
7707
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
7708
-<span class="p">)</span>
7709
-</code></pre></div>
7710
-
7711
-    <div class="doc doc-contents ">
7712
-
7713
-        
7714
-
7715
-    </div>
7716
-
7717
-</div>
7718
-
7719
-<div class="doc doc-object doc-attribute">
7720
-
7721
-
7722
-
7723
-<h3 id="derivepassphrase._internals.cli_messages.WarnMsgTemplate.SERVICE_NAME_INCOMPLETABLE" class="doc doc-heading">
7724
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">SERVICE_NAME_INCOMPLETABLE</span>
7725
-
7726
-
7727
-  <span class="doc doc-labels">
7728
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7729
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7730
-  </span>
7731
-
7732
-<a href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate.SERVICE_NAME_INCOMPLETABLE" class="headerlink" title="Permanent link">&para;</a></h3>
7733
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">SERVICE_NAME_INCOMPLETABLE</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
7734
-    <span class="s2">&quot;Warning message&quot;</span><span class="p">,</span>
7735
-    <span class="s2">&quot;The service name </span><span class="si">{service!r}</span><span class="s2"> contains an ASCII control character, which is not supported by our shell completion code.  This service name will therefore not be available for completion on the command-line.  You may of course still type it in manually in whatever format your shell accepts, but we highly recommend choosing a different service name instead.&quot;</span><span class="p">,</span>
7736
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
7737
-<span class="p">)</span>
7738
-</code></pre></div>
7739
-
7740
-    <div class="doc doc-contents ">
7741
-
7742
-        
7743
-
7744
-    </div>
7745
-
7746
-</div>
7747
-
7748
-<div class="doc doc-object doc-attribute">
7749
-
7750
-
7751
-
7752
-<h3 id="derivepassphrase._internals.cli_messages.WarnMsgTemplate.SERVICE_PASSPHRASE_INEFFECTIVE" class="doc doc-heading">
7753
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">SERVICE_PASSPHRASE_INEFFECTIVE</span>
7754
-
7755
-
7756
-  <span class="doc doc-labels">
7757
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7758
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7759
-  </span>
7760
-
7761
-<a href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate.SERVICE_PASSPHRASE_INEFFECTIVE" class="headerlink" title="Permanent link">&para;</a></h3>
7762
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">SERVICE_PASSPHRASE_INEFFECTIVE</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
7763
-    <span class="s2">&quot;The key that is set need not necessarily be set at the service level; it may be a global key as well.&quot;</span>
7764
-<span class="p">)(</span>
7765
-    <span class="s2">&quot;Warning message&quot;</span><span class="p">,</span>
7766
-    <span class="s2">&quot;Setting a service passphrase is ineffective because a key is also set: </span><span class="si">{service}</span><span class="s2">.&quot;</span><span class="p">,</span>
7767
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
7768
-<span class="p">)</span>
7769
-</code></pre></div>
7770
-
7771
-    <div class="doc doc-contents ">
7772
-
7773
-        
7774
-
7775
-    </div>
7776
-
7777
-</div>
7778
-
7779
-<div class="doc doc-object doc-attribute">
7780
-
7781
-
7782
-
7783
-<h3 id="derivepassphrase._internals.cli_messages.WarnMsgTemplate.STEP_REMOVE_INEFFECTIVE_VALUE" class="doc doc-heading">
7784
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">STEP_REMOVE_INEFFECTIVE_VALUE</span>
7785
-
7786
-
7787
-  <span class="doc doc-labels">
7788
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7789
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7790
-  </span>
7791
-
7792
-<a href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate.STEP_REMOVE_INEFFECTIVE_VALUE" class="headerlink" title="Permanent link">&para;</a></h3>
7793
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">STEP_REMOVE_INEFFECTIVE_VALUE</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
7794
-    <span class="s2">&quot;Warning message&quot;</span><span class="p">,</span>
7795
-    <span class="s2">&quot;Removing ineffective setting </span><span class="si">{path}</span><span class="s2"> = </span><span class="si">{old}</span><span class="s2">.&quot;</span><span class="p">,</span>
7796
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
7797
-<span class="p">)</span>
7798
-</code></pre></div>
7799
-
7800
-    <div class="doc doc-contents ">
7801
-
7802
-        
7803
-
7804
-    </div>
7805
-
7806
-</div>
7807
-
7808
-<div class="doc doc-object doc-attribute">
7809
-
7810
-
7811
-
7812
-<h3 id="derivepassphrase._internals.cli_messages.WarnMsgTemplate.STEP_REPLACE_INVALID_VALUE" class="doc doc-heading">
7813
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">STEP_REPLACE_INVALID_VALUE</span>
7814
-
7815
-
7816
-  <span class="doc doc-labels">
7817
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7818
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7819
-  </span>
7820
-
7821
-<a href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate.STEP_REPLACE_INVALID_VALUE" class="headerlink" title="Permanent link">&para;</a></h3>
7822
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">STEP_REPLACE_INVALID_VALUE</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
7823
-    <span class="s2">&quot;Warning message&quot;</span><span class="p">,</span>
7824
-    <span class="s2">&quot;Replacing invalid value </span><span class="si">{old}</span><span class="s2"> for key </span><span class="si">{path}</span><span class="s2"> with </span><span class="si">{new}</span><span class="s2">.&quot;</span><span class="p">,</span>
7825
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
7826
-<span class="p">)</span>
7827
-</code></pre></div>
7828
-
7829
-    <div class="doc doc-contents ">
7830
-
7831
-        
7832
-
7833
-    </div>
7834
-
7835
-</div>
7836
-
7837
-<div class="doc doc-object doc-attribute">
7838
-
7839
-
7840
-
7841
-<h3 id="derivepassphrase._internals.cli_messages.WarnMsgTemplate.V01_STYLE_CONFIG" class="doc doc-heading">
7842
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">V01_STYLE_CONFIG</span>
7843
-
7844
-
7845
-  <span class="doc doc-labels">
7846
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7847
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7848
-  </span>
7849
-
7850
-<a href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate.V01_STYLE_CONFIG" class="headerlink" title="Permanent link">&para;</a></h3>
7851
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">V01_STYLE_CONFIG</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
7852
-    <span class="s2">&quot;Warning message :: Deprecation&quot;</span><span class="p">,</span>
7853
-    <span class="s2">&quot;Using deprecated v0.1-style config file </span><span class="si">{old!r}</span><span class="s2">, instead of v0.2-style </span><span class="si">{new!r}</span><span class="s2">.  Support for v0.1-style config filenames will be removed in v1.0.&quot;</span><span class="p">,</span>
7854
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
7855
-<span class="p">)</span>
7856
-</code></pre></div>
7857
-
7858
-    <div class="doc doc-contents ">
7859
-
7860
-        
7861
-
7862
-    </div>
7863
-
7864
-</div>
7865
-
7866
-<div class="doc doc-object doc-attribute">
7867
-
7868
-
7869
-
7870
-<h3 id="derivepassphrase._internals.cli_messages.WarnMsgTemplate.V10_SUBCOMMAND_REQUIRED" class="doc doc-heading">
7871
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">V10_SUBCOMMAND_REQUIRED</span>
7872
-
7873
-
7874
-  <span class="doc doc-labels">
7875
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7876
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7877
-  </span>
7878
-
7879
-<a href="#derivepassphrase._internals.cli_messages.WarnMsgTemplate.V10_SUBCOMMAND_REQUIRED" class="headerlink" title="Permanent link">&para;</a></h3>
7880
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">V10_SUBCOMMAND_REQUIRED</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
7881
-    <span class="s1">&#39;This deprecation warning may be issued at any level, i.e. we may actually be talking about subcommands, or sub-subcommands, or sub-sub-subcommands, etc., which is what the &quot;here&quot; is supposed to indicate.&#39;</span>
7882
-<span class="p">)(</span>
7883
-    <span class="s2">&quot;Warning message :: Deprecation&quot;</span><span class="p">,</span>
7884
-    <span class="s1">&#39;A subcommand will be required here in v1.0.  See --help for available subcommands.  Defaulting to subcommand &quot;vault&quot;.&#39;</span><span class="p">,</span>
7885
-<span class="p">)</span>
7886
-</code></pre></div>
7887
-
7888
-    <div class="doc doc-contents ">
7889
-
7890
-        
7891
-
7892
-    </div>
7893
-
7894
-</div>
7895
-
7896
-
7897
-
7898
-
7899
-
7900
-  </div>
7901
-
7902
-    </div>
7903
-
7904
-</div>
7905
-
7906
-<div class="doc doc-object doc-class">
7907
-
7908
-
7909
-
7910
-<h2 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate" class="doc doc-heading">
7911
-<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>            <span class="doc doc-object-name doc-class-name">ErrMsgTemplate</span>
7912
-
7913
-
7914
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate" class="headerlink" title="Permanent link">&para;</a></h2>
7915
-
7916
-
7917
-    <div class="doc doc-contents ">
7918
-            <p class="doc doc-class-bases">
7919
-              Bases: <code><a class="autorefs autorefs-external" title="enum.Enum" href="https://docs.python.org/3/library/enum.html#enum.Enum">Enum</a></code></p>
7920
-
7921
-
7922
-
7923
-        <p>Error messages for the <code>derivepassphrase</code> command-line.</p>
7924
-
7925
-
7926
-
7927
-
7928
-
7929
-
7930
-
7931
-
7932
-
7933
-
7934
-  <div class="doc doc-children">
7935
-
7936
-
7937
-
7938
-
7939
-
7940
-
7941
-
7942
-<div class="doc doc-object doc-attribute">
7943
-
7944
-
7945
-
7946
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.AGENT_REFUSED_LIST_KEYS" class="doc doc-heading">
7947
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">AGENT_REFUSED_LIST_KEYS</span>
7948
-
7949
-
7950
-  <span class="doc doc-labels">
7951
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7952
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7953
-  </span>
7954
-
7955
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.AGENT_REFUSED_LIST_KEYS" class="headerlink" title="Permanent link">&para;</a></h3>
7956
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">AGENT_REFUSED_LIST_KEYS</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
7957
-    <span class="s1">&#39;&quot;loaded keys&quot; being keys loaded into the agent.&#39;</span>
7958
-<span class="p">)(</span>
7959
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
7960
-    <span class="s2">&quot;The SSH agent failed to or refused to supply a list of loaded keys.&quot;</span><span class="p">,</span>
7961
-<span class="p">)</span>
7962
-</code></pre></div>
7963
-
7964
-    <div class="doc doc-contents ">
7965
-
7966
-        
7967
-
7968
-    </div>
7969
-
7970
-</div>
7971
-
7972
-<div class="doc doc-object doc-attribute">
7973
-
7974
-
7975
-
7976
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.AGENT_REFUSED_SIGNATURE" class="doc doc-heading">
7977
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">AGENT_REFUSED_SIGNATURE</span>
7978
-
7979
-
7980
-  <span class="doc doc-labels">
7981
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
7982
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
7983
-  </span>
7984
-
7985
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.AGENT_REFUSED_SIGNATURE" class="headerlink" title="Permanent link">&para;</a></h3>
7986
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">AGENT_REFUSED_SIGNATURE</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
7987
-    <span class="s2">&quot;The message to be signed is the vault UUID, but there&#39;s no space to explain that here, so ideally the error message does not go into detail.&quot;</span>
7988
-<span class="p">)(</span>
7989
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
7990
-    <span class="s2">&quot;The SSH agent failed to or refused to issue a signature with the selected key, necessary for deriving a service passphrase.&quot;</span><span class="p">,</span>
7991
-<span class="p">)</span>
7992
-</code></pre></div>
7993
-
7994
-    <div class="doc doc-contents ">
7995
-
7996
-        
7997
-
7998
-    </div>
7999
-
8000
-</div>
8001
-
8002
-<div class="doc doc-object doc-attribute">
8003
-
8004
-
8005
-
8006
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_CONNECT_TO_AGENT" class="doc doc-heading">
8007
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">CANNOT_CONNECT_TO_AGENT</span>
8008
-
8009
-
8010
-  <span class="doc doc-labels">
8011
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8012
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8013
-  </span>
8014
-
8015
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_CONNECT_TO_AGENT" class="headerlink" title="Permanent link">&para;</a></h3>
8016
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">CANNOT_CONNECT_TO_AGENT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
8017
-    <span class="s1">&#39;&quot;error&quot; is supplied by the operating system (errno/strerror).&#39;</span>
8018
-<span class="p">)(</span>
8019
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8020
-    <span class="s2">&quot;Cannot connect to the SSH agent: </span><span class="si">{error}</span><span class="s2">: </span><span class="si">{filename!r}</span><span class="s2">.&quot;</span><span class="p">,</span>
8021
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
8022
-<span class="p">)</span>
8023
-</code></pre></div>
8024
-
8025
-    <div class="doc doc-contents ">
8026
-
8027
-        
8028
-
8029
-    </div>
8030
-
8031
-</div>
8032
-
8033
-<div class="doc doc-object doc-attribute">
8034
-
8035
-
8036
-
8037
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_DECODEIMPORT_VAULT_SETTINGS" class="doc doc-heading">
8038
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">CANNOT_DECODEIMPORT_VAULT_SETTINGS</span>
8039
-
8040
-
8041
-  <span class="doc doc-labels">
8042
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8043
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8044
-  </span>
8045
-
8046
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_DECODEIMPORT_VAULT_SETTINGS" class="headerlink" title="Permanent link">&para;</a></h3>
8047
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">CANNOT_DECODEIMPORT_VAULT_SETTINGS</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
8048
-    <span class="s1">&#39;&quot;error&quot; is supplied by the operating system (errno/strerror).&#39;</span>
8049
-<span class="p">)(</span>
8050
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8051
-    <span class="s2">&quot;Cannot import vault settings: cannot decode JSON: </span><span class="si">{error}</span><span class="s2">.&quot;</span><span class="p">,</span>
8052
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
8053
-<span class="p">)</span>
8054
-</code></pre></div>
8055
-
8056
-    <div class="doc doc-contents ">
8057
-
8058
-        
8059
-
8060
-    </div>
8061
-
8062
-</div>
8063
-
8064
-<div class="doc doc-object doc-attribute">
8065
-
8066
-
8067
-
8068
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_EXPORT_VAULT_SETTINGS" class="doc doc-heading">
8069
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">CANNOT_EXPORT_VAULT_SETTINGS</span>
8070
-
8071
-
8072
-  <span class="doc doc-labels">
8073
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8074
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8075
-  </span>
8076
-
8077
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_EXPORT_VAULT_SETTINGS" class="headerlink" title="Permanent link">&para;</a></h3>
8078
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">CANNOT_EXPORT_VAULT_SETTINGS</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
8079
-    <span class="s1">&#39;&quot;error&quot; is supplied by the operating system (errno/strerror).&#39;</span>
8080
-<span class="p">)(</span>
8081
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8082
-    <span class="s2">&quot;Cannot export vault settings: </span><span class="si">{error}</span><span class="s2">: </span><span class="si">{filename!r}</span><span class="s2">.&quot;</span><span class="p">,</span>
8083
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
8084
-<span class="p">)</span>
8085
-</code></pre></div>
8086
-
8087
-    <div class="doc doc-contents ">
8088
-
8089
-        
8090
-
8091
-    </div>
8092
-
8093
-</div>
8094
-
8095
-<div class="doc doc-object doc-attribute">
8096
-
8097
-
8098
-
8099
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_IMPORT_VAULT_SETTINGS" class="doc doc-heading">
8100
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">CANNOT_IMPORT_VAULT_SETTINGS</span>
8101
-
8102
-
8103
-  <span class="doc doc-labels">
8104
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8105
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8106
-  </span>
8107
-
8108
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_IMPORT_VAULT_SETTINGS" class="headerlink" title="Permanent link">&para;</a></h3>
8109
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">CANNOT_IMPORT_VAULT_SETTINGS</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
8110
-    <span class="s1">&#39;&quot;error&quot; is supplied by the operating system (errno/strerror).&#39;</span>
8111
-<span class="p">)(</span>
8112
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8113
-    <span class="s2">&quot;Cannot import vault settings: </span><span class="si">{error}</span><span class="s2">: </span><span class="si">{filename!r}</span><span class="s2">.&quot;</span><span class="p">,</span>
8114
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
8115
-<span class="p">)</span>
8116
-</code></pre></div>
8117
-
8118
-    <div class="doc doc-contents ">
8119
-
8120
-        
8121
-
8122
-    </div>
8123
-
8124
-</div>
8125
-
8126
-<div class="doc doc-object doc-attribute">
8127
-
8128
-
8129
-
8130
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_LOAD_USER_CONFIG" class="doc doc-heading">
8131
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">CANNOT_LOAD_USER_CONFIG</span>
8132
-
8133
-
8134
-  <span class="doc doc-labels">
8135
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8136
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8137
-  </span>
8138
-
8139
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_LOAD_USER_CONFIG" class="headerlink" title="Permanent link">&para;</a></h3>
8140
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">CANNOT_LOAD_USER_CONFIG</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
8141
-    <span class="s1">&#39;&quot;error&quot; is supplied by the operating system (errno/strerror).&#39;</span>
8142
-<span class="p">)(</span>
8143
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8144
-    <span class="s2">&quot;Cannot load user config: </span><span class="si">{error}</span><span class="s2">: </span><span class="si">{filename!r}</span><span class="s2">.&quot;</span><span class="p">,</span>
8145
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
8146
-<span class="p">)</span>
8147
-</code></pre></div>
8148
-
8149
-    <div class="doc doc-contents ">
8150
-
8151
-        
8152
-
8153
-    </div>
8154
-
8155
-</div>
8156
-
8157
-<div class="doc doc-object doc-attribute">
8158
-
8159
-
8160
-
8161
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_LOAD_VAULT_SETTINGS" class="doc doc-heading">
8162
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">CANNOT_LOAD_VAULT_SETTINGS</span>
8163
-
8164
-
8165
-  <span class="doc doc-labels">
8166
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8167
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8168
-  </span>
8169
-
8170
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_LOAD_VAULT_SETTINGS" class="headerlink" title="Permanent link">&para;</a></h3>
8171
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">CANNOT_LOAD_VAULT_SETTINGS</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
8172
-    <span class="s1">&#39;&quot;error&quot; is supplied by the operating system (errno/strerror).&#39;</span>
8173
-<span class="p">)(</span>
8174
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8175
-    <span class="s2">&quot;Cannot load vault settings: </span><span class="si">{error}</span><span class="s2">: </span><span class="si">{filename!r}</span><span class="s2">.&quot;</span><span class="p">,</span>
8176
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
8177
-<span class="p">)</span>
8178
-</code></pre></div>
8179
-
8180
-    <div class="doc doc-contents ">
8181
-
8182
-        
8183
-
8184
-    </div>
8185
-
8186
-</div>
8187
-
8188
-<div class="doc doc-object doc-attribute">
8189
-
8190
-
8191
-
8192
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_PARSE_AS_VAULT_CONFIG" class="doc doc-heading">
8193
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">CANNOT_PARSE_AS_VAULT_CONFIG</span>
8194
-
8195
-
8196
-  <span class="doc doc-labels">
8197
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8198
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8199
-  </span>
8200
-
8201
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_PARSE_AS_VAULT_CONFIG" class="headerlink" title="Permanent link">&para;</a></h3>
8202
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">CANNOT_PARSE_AS_VAULT_CONFIG</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
8203
-    <span class="s1">&#39;Unlike the &quot;Cannot load </span><span class="si">{path!r}</span><span class="s1"> as a </span><span class="si">{fmt}</span><span class="s1"> vault configuration.&quot; message, *this* error message is emitted when we have tried loading the path in each of our supported formats, and failed.  The user will thus see the above &quot;Cannot load ...&quot; warning message potentially multiple times, and this error message at the very bottom.&#39;</span>
8204
-<span class="p">)(</span>
8205
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8206
-    <span class="s2">&quot;Cannot parse </span><span class="si">{path!r}</span><span class="s2"> as a valid vault-native configuration file/directory.&quot;</span><span class="p">,</span>
8207
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
8208
-<span class="p">)</span>
8209
-</code></pre></div>
8210
-
8211
-    <div class="doc doc-contents ">
8212
-
8213
-        
8214
-
8215
-    </div>
8216
-
8217
-</div>
8218
-
8219
-<div class="doc doc-object doc-attribute">
8220
-
8221
-
8222
-
8223
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_PARSE_AS_VAULT_CONFIG_OSERROR" class="doc doc-heading">
8224
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">CANNOT_PARSE_AS_VAULT_CONFIG_OSERROR</span>
8225
-
8226
-
8227
-  <span class="doc doc-labels">
8228
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8229
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8230
-  </span>
8231
-
8232
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_PARSE_AS_VAULT_CONFIG_OSERROR" class="headerlink" title="Permanent link">&para;</a></h3>
8233
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">CANNOT_PARSE_AS_VAULT_CONFIG_OSERROR</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
8234
-    <span class="s1">&#39;&quot;error&quot; is supplied by the operating system (errno/strerror).&#39;</span>
8235
-<span class="p">)(</span>
8236
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8237
-    <span class="s2">&quot;Cannot parse </span><span class="si">{path!r}</span><span class="s2"> as a valid vault-native configuration file/directory: </span><span class="si">{error}</span><span class="s2">: </span><span class="si">{filename!r}</span><span class="s2">.&quot;</span><span class="p">,</span>
8238
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
8239
-<span class="p">)</span>
8240
-</code></pre></div>
8241
-
8242
-    <div class="doc doc-contents ">
8243
-
8244
-        
8245
-
8246
-    </div>
8247
-
8248
-</div>
8249
-
8250
-<div class="doc doc-object doc-attribute">
8251
-
8252
-
8253
-
8254
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_STORE_VAULT_SETTINGS" class="doc doc-heading">
8255
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">CANNOT_STORE_VAULT_SETTINGS</span>
8256
-
8257
-
8258
-  <span class="doc doc-labels">
8259
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8260
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8261
-  </span>
8262
-
8263
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_STORE_VAULT_SETTINGS" class="headerlink" title="Permanent link">&para;</a></h3>
8264
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">CANNOT_STORE_VAULT_SETTINGS</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
8265
-    <span class="s1">&#39;&quot;error&quot; is supplied by the operating system (errno/strerror).&#39;</span>
8266
-<span class="p">)(</span>
8267
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8268
-    <span class="s2">&quot;Cannot store vault settings: </span><span class="si">{error}</span><span class="s2">: </span><span class="si">{filename!r}</span><span class="s2">.&quot;</span><span class="p">,</span>
8269
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
8270
-<span class="p">)</span>
8271
-</code></pre></div>
8272
-
8273
-    <div class="doc doc-contents ">
8274
-
8275
-        
8276
-
8277
-    </div>
8278
-
8279
-</div>
8280
-
8281
-<div class="doc doc-object doc-attribute">
8282
-
8283
-
8284
-
8285
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_UNDERSTAND_AGENT" class="doc doc-heading">
8286
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">CANNOT_UNDERSTAND_AGENT</span>
8287
-
8288
-
8289
-  <span class="doc doc-labels">
8290
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8291
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8292
-  </span>
8293
-
8294
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_UNDERSTAND_AGENT" class="headerlink" title="Permanent link">&para;</a></h3>
8295
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">CANNOT_UNDERSTAND_AGENT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
8296
-    <span class="s2">&quot;This error message is used whenever we cannot make any sense of a response from the SSH agent because the response is ill-formed (truncated, improperly encoded, etc.) or otherwise violates the communications protocol.  Well-formed responses that adhere to the protocol, even if they indicate that the requested operation failed, are handled with a different error message.&quot;</span>
8297
-<span class="p">)(</span>
8298
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8299
-    <span class="s2">&quot;Cannot understand the SSH agent&#39;s response because it violates the communication protocol.&quot;</span><span class="p">,</span>
8300
-<span class="p">)</span>
8301
-</code></pre></div>
8302
-
8303
-    <div class="doc doc-contents ">
8304
-
8305
-        
8306
-
8307
-    </div>
8308
-
8309
-</div>
8310
-
8311
-<div class="doc doc-object doc-attribute">
8312
-
8313
-
8314
-
8315
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_UPDATE_SETTINGS_NO_SETTINGS" class="doc doc-heading">
8316
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">CANNOT_UPDATE_SETTINGS_NO_SETTINGS</span>
8317
-
8318
-
8319
-  <span class="doc doc-labels">
8320
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8321
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8322
-  </span>
8323
-
8324
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.CANNOT_UPDATE_SETTINGS_NO_SETTINGS" class="headerlink" title="Permanent link">&para;</a></h3>
8325
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">CANNOT_UPDATE_SETTINGS_NO_SETTINGS</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
8326
-    <span class="s1">&#39;The settings_type metavar contains translations for either &quot;global settings&quot; or &quot;service-specific settings&quot;; see the CANNOT_UPDATE_SETTINGS_METAVAR_SETTINGS_TYPE_GLOBAL and CANNOT_UPDATE_SETTINGS_METAVAR_SETTINGS_TYPE_SERVICE entries.  The first sentence will thus read either &quot;Cannot update the global settings without any given settings.&quot; or &quot;Cannot update the service-specific settings without any given settings.&quot;.  You may update this entry, and the two metavar entries, in any way you see fit that achieves the desired translations of the first sentence.&#39;</span>
8327
-<span class="p">)(</span>
8328
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8329
-    <span class="s2">&quot;Cannot update the </span><span class="si">{settings_type}</span><span class="s2"> without any given settings.  You must specify at least one of --lower, ..., --symbol, --notes, or --phrase or --key.&quot;</span><span class="p">,</span>
8330
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
8331
-<span class="p">)</span>
8332
-</code></pre></div>
8333
-
8334
-    <div class="doc doc-contents ">
8335
-
8336
-        
8337
-
8338
-    </div>
8339
-
8340
-</div>
8341
-
8342
-<div class="doc doc-object doc-attribute">
8343
-
8344
-
8345
-
8346
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.INVALID_USER_CONFIG" class="doc doc-heading">
8347
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">INVALID_USER_CONFIG</span>
8348
-
8349
-
8350
-  <span class="doc doc-labels">
8351
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8352
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8353
-  </span>
8354
-
8355
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.INVALID_USER_CONFIG" class="headerlink" title="Permanent link">&para;</a></h3>
8356
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">INVALID_USER_CONFIG</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
8357
-    <span class="s1">&#39;&quot;error&quot; is supplied by the operating system (errno/strerror).&#39;</span>
8358
-<span class="p">)(</span>
8359
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8360
-    <span class="s2">&quot;The user configuration file is invalid.  </span><span class="si">{error}</span><span class="s2">: </span><span class="si">{filename!r}</span><span class="s2">.&quot;</span><span class="p">,</span>
8361
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
8362
-<span class="p">)</span>
8363
-</code></pre></div>
8364
-
8365
-    <div class="doc doc-contents ">
8366
-
8367
-        
8368
-
8369
-    </div>
8370
-
8371
-</div>
8372
-
8373
-<div class="doc doc-object doc-attribute">
8374
-
8375
-
8376
-
8377
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.INVALID_VAULT_CONFIG" class="doc doc-heading">
8378
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">INVALID_VAULT_CONFIG</span>
8379
-
8380
-
8381
-  <span class="doc doc-labels">
8382
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8383
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8384
-  </span>
8385
-
8386
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.INVALID_VAULT_CONFIG" class="headerlink" title="Permanent link">&para;</a></h3>
8387
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">INVALID_VAULT_CONFIG</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
8388
-    <span class="s2">&quot;This error message is a reaction to a validator function saying *that* the configuration is not valid, but not *how* it is not valid.  The configuration file is principally parsable, however.&quot;</span>
8389
-<span class="p">)(</span>
8390
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8391
-    <span class="s2">&quot;Invalid vault config: </span><span class="si">{config!r}</span><span class="s2">.&quot;</span><span class="p">,</span>
8392
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
8393
-<span class="p">)</span>
8394
-</code></pre></div>
8395
-
8396
-    <div class="doc doc-contents ">
8397
-
8398
-        
8399
-
8400
-    </div>
8401
-
8402
-</div>
8403
-
8404
-<div class="doc doc-object doc-attribute">
8405
-
8406
-
8407
-
8408
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.MISSING_MODULE" class="doc doc-heading">
8409
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">MISSING_MODULE</span>
8410
-
8411
-
8412
-  <span class="doc doc-labels">
8413
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8414
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8415
-  </span>
8416
-
8417
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.MISSING_MODULE" class="headerlink" title="Permanent link">&para;</a></h3>
8418
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">MISSING_MODULE</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
8419
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8420
-    <span class="s2">&quot;Cannot load the required Python module </span><span class="si">{module!r}</span><span class="s2">.&quot;</span><span class="p">,</span>
8421
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
8422
-<span class="p">)</span>
8423
-</code></pre></div>
8424
-
8425
-    <div class="doc doc-contents ">
8426
-
8427
-        
8428
-
8429
-    </div>
8430
-
8431
-</div>
8432
-
8433
-<div class="doc doc-object doc-attribute">
8434
-
8435
-
8436
-
8437
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.NO_AF_UNIX" class="doc doc-heading">
8438
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">NO_AF_UNIX</span>
8439
-
8440
-
8441
-  <span class="doc doc-labels">
8442
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8443
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8444
-  </span>
8445
-
8446
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.NO_AF_UNIX" class="headerlink" title="Permanent link">&para;</a></h3>
8447
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">NO_AF_UNIX</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
8448
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8449
-    <span class="s2">&quot;Cannot connect to an SSH agent because this Python version does not support UNIX domain sockets.&quot;</span><span class="p">,</span>
8450
-<span class="p">)</span>
8451
-</code></pre></div>
8452
-
8453
-    <div class="doc doc-contents ">
8454
-
8455
-        
8456
-
8457
-    </div>
8458
-
8459
-</div>
8460
-
8461
-<div class="doc doc-object doc-attribute">
8462
-
8463
-
8464
-
8465
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.NO_KEY_OR_PHRASE" class="doc doc-heading">
8466
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">NO_KEY_OR_PHRASE</span>
8467
-
8468
-
8469
-  <span class="doc doc-labels">
8470
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8471
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8472
-  </span>
8473
-
8474
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.NO_KEY_OR_PHRASE" class="headerlink" title="Permanent link">&para;</a></h3>
8475
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">NO_KEY_OR_PHRASE</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
8476
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8477
-    <span class="s2">&quot;No passphrase or key was given in the configuration.  In this case, the --phrase or --key argument is required.&quot;</span><span class="p">,</span>
8478
-<span class="p">)</span>
8479
-</code></pre></div>
8480
-
8481
-    <div class="doc doc-contents ">
8482
-
8483
-        
8484
-
8485
-    </div>
8486
-
8487
-</div>
8488
-
8489
-<div class="doc doc-object doc-attribute">
8490
-
8491
-
8492
-
8493
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.NO_SSH_AGENT_FOUND" class="doc doc-heading">
8494
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">NO_SSH_AGENT_FOUND</span>
8495
-
8496
-
8497
-  <span class="doc doc-labels">
8498
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8499
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8500
-  </span>
8501
-
8502
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.NO_SSH_AGENT_FOUND" class="headerlink" title="Permanent link">&para;</a></h3>
8503
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">NO_SSH_AGENT_FOUND</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
8504
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8505
-    <span class="s2">&quot;Cannot find any running SSH agent because SSH_AUTH_SOCK is not set.&quot;</span><span class="p">,</span>
8506
-<span class="p">)</span>
8507
-</code></pre></div>
8508
-
8509
-    <div class="doc doc-contents ">
8510
-
8511
-        
8512
-
8513
-    </div>
8514
-
8515
-</div>
8516
-
8517
-<div class="doc doc-object doc-attribute">
8518
-
8519
-
8520
-
8521
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.NO_SUITABLE_SSH_KEYS" class="doc doc-heading">
8522
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">NO_SUITABLE_SSH_KEYS</span>
8523
-
8524
-
8525
-  <span class="doc doc-labels">
8526
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8527
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8528
-  </span>
8529
-
8530
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.NO_SUITABLE_SSH_KEYS" class="headerlink" title="Permanent link">&para;</a></h3>
8531
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">NO_SUITABLE_SSH_KEYS</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
8532
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8533
-    <span class="s2">&quot;The SSH agent contains no keys suitable for </span><span class="si">{PROG_NAME}</span><span class="s2">.&quot;</span><span class="p">,</span>
8534
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
8535
-<span class="p">)</span>
8536
-</code></pre></div>
8537
-
8538
-    <div class="doc doc-contents ">
8539
-
8540
-        
8541
-
8542
-    </div>
8543
-
8544
-</div>
8545
-
8546
-<div class="doc doc-object doc-attribute">
8547
-
8548
-
8549
-
8550
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.PARAMS_MUTUALLY_EXCLUSIVE" class="doc doc-heading">
8551
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">PARAMS_MUTUALLY_EXCLUSIVE</span>
8552
-
8553
-
8554
-  <span class="doc doc-labels">
8555
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8556
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8557
-  </span>
8558
-
8559
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.PARAMS_MUTUALLY_EXCLUSIVE" class="headerlink" title="Permanent link">&para;</a></h3>
8560
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">PARAMS_MUTUALLY_EXCLUSIVE</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
8561
-    <span class="s1">&#39;The params are long-form command-line option names.  Typical example: &quot;--key is mutually exclusive with --phrase.&quot;&#39;</span>
8562
-<span class="p">)(</span>
8563
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8564
-    <span class="s2">&quot;</span><span class="si">{param1}</span><span class="s2"> is mutually exclusive with </span><span class="si">{param2}</span><span class="s2">.&quot;</span><span class="p">,</span>
8565
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
8566
-<span class="p">)</span>
8567
-</code></pre></div>
8568
-
8569
-    <div class="doc doc-contents ">
8570
-
8571
-        
8572
-
8573
-    </div>
8574
-
8575
-</div>
8576
-
8577
-<div class="doc doc-object doc-attribute">
8578
-
8579
-
8580
-
8581
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.PARAMS_NEEDS_SERVICE" class="doc doc-heading">
8582
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">PARAMS_NEEDS_SERVICE</span>
8583
-
8584
-
8585
-  <span class="doc doc-labels">
8586
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8587
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8588
-  </span>
8589
-
8590
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.PARAMS_NEEDS_SERVICE" class="headerlink" title="Permanent link">&para;</a></h3>
8591
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">PARAMS_NEEDS_SERVICE</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
8592
-    <span class="s2">&quot;The param is a long-form command-line option name, the metavar is Label.VAULT_METAVAR_SERVICE.&quot;</span>
8593
-<span class="p">)(</span>
8594
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8595
-    <span class="s2">&quot;</span><span class="si">{param}</span><span class="s2"> requires a </span><span class="si">{service_metavar}</span><span class="s2">.&quot;</span><span class="p">,</span>
8596
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
8597
-<span class="p">)</span>
8598
-</code></pre></div>
8599
-
8600
-    <div class="doc doc-contents ">
8601
-
8602
-        
8603
-
8604
-    </div>
8605
-
8606
-</div>
8607
-
8608
-<div class="doc doc-object doc-attribute">
8609
-
8610
-
8611
-
8612
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.PARAMS_NEEDS_SERVICE_OR_CONFIG" class="doc doc-heading">
8613
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">PARAMS_NEEDS_SERVICE_OR_CONFIG</span>
8614
-
8615
-
8616
-  <span class="doc doc-labels">
8617
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8618
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8619
-  </span>
8620
-
8621
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.PARAMS_NEEDS_SERVICE_OR_CONFIG" class="headerlink" title="Permanent link">&para;</a></h3>
8622
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">PARAMS_NEEDS_SERVICE_OR_CONFIG</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
8623
-    <span class="s2">&quot;The param is a long-form command-line option name, the metavar is Label.VAULT_METAVAR_SERVICE.&quot;</span>
8624
-<span class="p">)(</span>
8625
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8626
-    <span class="s2">&quot;</span><span class="si">{param}</span><span class="s2"> requires a </span><span class="si">{service_metavar}</span><span class="s2"> or --config.&quot;</span><span class="p">,</span>
8627
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
8628
-<span class="p">)</span>
8629
-</code></pre></div>
8630
-
8631
-    <div class="doc doc-contents ">
8632
-
8633
-        
8634
-
8635
-    </div>
8636
-
8637
-</div>
8638
-
8639
-<div class="doc doc-object doc-attribute">
8640
-
8641
-
8642
-
8643
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.PARAMS_NO_SERVICE" class="doc doc-heading">
8644
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">PARAMS_NO_SERVICE</span>
8645
-
8646
-
8647
-  <span class="doc doc-labels">
8648
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8649
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8650
-  </span>
8651
-
8652
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.PARAMS_NO_SERVICE" class="headerlink" title="Permanent link">&para;</a></h3>
8653
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">PARAMS_NO_SERVICE</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
8654
-    <span class="s2">&quot;The param is a long-form command-line option name, the metavar is Label.VAULT_METAVAR_SERVICE.&quot;</span>
8655
-<span class="p">)(</span>
8656
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8657
-    <span class="s2">&quot;</span><span class="si">{param}</span><span class="s2"> does not take a </span><span class="si">{service_metavar}</span><span class="s2"> argument.&quot;</span><span class="p">,</span>
8658
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
8659
-<span class="p">)</span>
8660
-</code></pre></div>
8661
-
8662
-    <div class="doc doc-contents ">
8663
-
8664
-        
8665
-
8666
-    </div>
8667
-
8668
-</div>
8669
-
8670
-<div class="doc doc-object doc-attribute">
8671
-
8672
-
8673
-
8674
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.SERVICE_REQUIRED" class="doc doc-heading">
8675
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">SERVICE_REQUIRED</span>
8676
-
8677
-
8678
-  <span class="doc doc-labels">
8679
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8680
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8681
-  </span>
8682
-
8683
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.SERVICE_REQUIRED" class="headerlink" title="Permanent link">&para;</a></h3>
8684
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">SERVICE_REQUIRED</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
8685
-    <span class="s2">&quot;The metavar is Label.VAULT_METAVAR_SERVICE.&quot;</span>
8686
-<span class="p">)(</span>
8687
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8688
-    <span class="s2">&quot;Deriving a passphrase requires a </span><span class="si">{service_metavar}</span><span class="s2">.&quot;</span><span class="p">,</span>
8689
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
8690
-<span class="p">)</span>
8691
-</code></pre></div>
8692
-
8693
-    <div class="doc doc-contents ">
8694
-
8695
-        
8696
-
8697
-    </div>
8698
-
8699
-</div>
8700
-
8701
-<div class="doc doc-object doc-attribute">
8702
-
8703
-
8704
-
8705
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.SET_AND_UNSET_SAME_SETTING" class="doc doc-heading">
8706
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">SET_AND_UNSET_SAME_SETTING</span>
8707
-
8708
-
8709
-  <span class="doc doc-labels">
8710
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8711
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8712
-  </span>
8713
-
8714
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.SET_AND_UNSET_SAME_SETTING" class="headerlink" title="Permanent link">&para;</a></h3>
8715
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">SET_AND_UNSET_SAME_SETTING</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
8716
-    <span class="s1">&#39;The rephrasing &quot;Attempted to unset and set the same setting (--unset=</span><span class="si">{setting}</span><span class="s1"> --</span><span class="si">{setting}</span><span class="s1">=...) at the same time.&quot;may or may not be more suitable as a basis for translation instead.&#39;</span>
8717
-<span class="p">)(</span>
8718
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8719
-    <span class="s2">&quot;Attempted to unset and set --</span><span class="si">{setting}</span><span class="s2"> at the same time.&quot;</span><span class="p">,</span>
8720
-    <span class="n"><span title="derivepassphrase._internals.cli_messages.commented(flags)">flags</span></span><span class="o">=</span><span class="s2">&quot;python-brace-format&quot;</span><span class="p">,</span>
8721
-<span class="p">)</span>
8722
-</code></pre></div>
8723
-
8724
-    <div class="doc doc-contents ">
8725
-
8726
-        
8727
-
8728
-    </div>
8729
-
8730
-</div>
8731
-
8732
-<div class="doc doc-object doc-attribute">
8733
-
8734
-
8735
-
8736
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.SSH_KEY_NOT_LOADED" class="doc doc-heading">
8737
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">SSH_KEY_NOT_LOADED</span>
8738
-
8739
-
8740
-  <span class="doc doc-labels">
8741
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8742
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8743
-  </span>
8744
-
8745
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.SSH_KEY_NOT_LOADED" class="headerlink" title="Permanent link">&para;</a></h3>
8746
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">SSH_KEY_NOT_LOADED</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">)(</span>
8747
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8748
-    <span class="s2">&quot;The requested SSH key is not loaded into the agent.&quot;</span><span class="p">,</span>
8749
-<span class="p">)</span>
8750
-</code></pre></div>
8751
-
8752
-    <div class="doc doc-contents ">
8753
-
8754
-        
8755
-
8756
-    </div>
8757
-
8758
-</div>
8759
-
8760
-<div class="doc doc-object doc-attribute">
8761
-
8762
-
8763
-
8764
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.USER_ABORTED_EDIT" class="doc doc-heading">
8765
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">USER_ABORTED_EDIT</span>
8766
-
8767
-
8768
-  <span class="doc doc-labels">
8769
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8770
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8771
-  </span>
8772
-
8773
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.USER_ABORTED_EDIT" class="headerlink" title="Permanent link">&para;</a></h3>
8774
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">USER_ABORTED_EDIT</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
8775
-    <span class="s2">&quot;The user requested to edit the notes for a service, but aborted the request mid-editing.&quot;</span>
8776
-<span class="p">)(</span>
8777
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8778
-    <span class="s2">&quot;Not saving any new notes: the user aborted the request.&quot;</span><span class="p">,</span>
8779
-<span class="p">)</span>
8780
-</code></pre></div>
8781
-
8782
-    <div class="doc doc-contents ">
8783
-
8784
-        
8785
-
8786
-    </div>
8787
-
8788
-</div>
8789
-
8790
-<div class="doc doc-object doc-attribute">
8791
-
8792
-
8793
-
8794
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.USER_ABORTED_PASSPHRASE" class="doc doc-heading">
8795
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">USER_ABORTED_PASSPHRASE</span>
8796
-
8797
-
8798
-  <span class="doc doc-labels">
8799
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8800
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8801
-  </span>
8802
-
8803
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.USER_ABORTED_PASSPHRASE" class="headerlink" title="Permanent link">&para;</a></h3>
8804
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">USER_ABORTED_PASSPHRASE</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
8805
-    <span class="s2">&quot;The user was prompted for a master passphrase, but aborted the request.&quot;</span>
8806
-<span class="p">)(</span>
8807
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8808
-    <span class="s2">&quot;No passphrase was given; the user aborted the request.&quot;</span><span class="p">,</span>
8809
-<span class="p">)</span>
8810
-</code></pre></div>
8811
-
8812
-    <div class="doc doc-contents ">
8813
-
8814
-        
8815
-
8816
-    </div>
8817
-
8818
-</div>
8819
-
8820
-<div class="doc doc-object doc-attribute">
8821
-
8822
-
8823
-
8824
-<h3 id="derivepassphrase._internals.cli_messages.ErrMsgTemplate.USER_ABORTED_SSH_KEY_SELECTION" class="doc doc-heading">
8825
-<code class="doc-symbol doc-symbol-heading doc-symbol-attribute"></code>            <span class="doc doc-object-name doc-attribute-name">USER_ABORTED_SSH_KEY_SELECTION</span>
8826
-
8827
-
8828
-  <span class="doc doc-labels">
8829
-      <small class="doc doc-label doc-label-class-attribute"><code>class-attribute</code></small>
8830
-      <small class="doc doc-label doc-label-instance-attribute"><code>instance-attribute</code></small>
8831
-  </span>
8832
-
8833
-<a href="#derivepassphrase._internals.cli_messages.ErrMsgTemplate.USER_ABORTED_SSH_KEY_SELECTION" class="headerlink" title="Permanent link">&para;</a></h3>
8834
-<div class="doc-signature highlight"><pre><span></span><code><span class="n">USER_ABORTED_SSH_KEY_SELECTION</span> <span class="o">=</span> <span class="n"><a class="autorefs autorefs-internal" title="            commented (derivepassphrase._internals.cli_messages.commented)" href="#derivepassphrase._internals.cli_messages.commented">commented</a></span><span class="p">(</span>
8835
-    <span class="s2">&quot;The user was prompted to select a master SSH key, but aborted the request.&quot;</span>
8836
-<span class="p">)(</span>
8837
-    <span class="s2">&quot;Error message&quot;</span><span class="p">,</span>
8838
-    <span class="s2">&quot;No SSH key was selected; the user aborted the request.&quot;</span><span class="p">,</span>
8839
-<span class="p">)</span>
8840
-</code></pre></div>
8841
-
8842
-    <div class="doc doc-contents ">
8843
-
8844
-        
8845
-
8846
-    </div>
8847
-
8848
-</div>
8849
-
8850
-
8851
-
8852
-
8853
-
8854
-  </div>
8855
-
8856
-    </div>
8857
-
8858
-</div>
8859
-
8860
-
8861
-<div class="doc doc-object doc-function">
8862
-
8863
-
8864
-<h2 id="derivepassphrase._internals.cli_messages.load_translations" class="doc doc-heading">
8865
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">load_translations</span>
8866
-
8867
-
8868
-<a href="#derivepassphrase._internals.cli_messages.load_translations" class="headerlink" title="Permanent link">&para;</a></h2>
8869
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">load_translations</span><span class="p">(</span>
8870
-    <span class="n">localedirs</span><span class="p">:</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="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="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
8871
-    <span class="n">languages</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="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
8872
-    <span class="n">class_</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#type">type</a></span><span class="p">[</span><span class="n"><a class="autorefs autorefs-external" title="gettext.NullTranslations" href="https://docs.python.org/3/library/gettext.html#gettext.NullTranslations">NullTranslations</a></span><span class="p">]</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
8873
-<span class="p">)</span> <span class="o">-&gt;</span> <span class="n"><a class="autorefs autorefs-external" title="gettext.NullTranslations" href="https://docs.python.org/3/library/gettext.html#gettext.NullTranslations">NullTranslations</a></span>
8874
-</code></pre></div>
8875
-
8876
-    <div class="doc doc-contents ">
8877
-
8878
-        <p>Load a translation catalog for derivepassphrase.</p>
8879
-<p>Runs <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/gettext.html#gettext.translation"><code>gettext.translation</code></a> under the hood for multiple locale
8880
-directories.  <code>fallback=True</code> is implied.</p>
8881
-
8882
-
8883
-<p><span class="doc-section-title">Parameters:</span></p>
8884
-    <table>
8885
-      <thead>
8886
-        <tr>
8887
-          <th>Name</th>
8888
-          <th>Type</th>
8889
-          <th>Description</th>
8890
-          <th>Default</th>
8891
-        </tr>
8892
-      </thead>
8893
-      <tbody>
8894
-          <tr class="doc-section-item">
8895
-            <td>
8896
-                <code>localedirs</code>
8897
-            </td>
8898
-            <td>
8899
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#list">list</a>[<a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#str">str</a> | <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/stdtypes.html#bytes">bytes</a> | <a class="autorefs autorefs-external" title="os.PathLike" href="https://docs.python.org/3/library/os.html#os.PathLike">PathLike</a>] | None</code>
8900
-            </td>
8901
-            <td>
8902
-              <div class="doc-md-description">
8903
-                <p>A list of directories to run <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/gettext.html#gettext.translation"><code>gettext.translation</code></a>
8904
-against.  Defaults to <code>$XDG_DATA_HOME/locale</code> (usually
8905
-<code>~/.local/share/locale</code>), <code>{sys.prefix}/share/locale</code> and
8906
-<code>{sys.base_prefix}/share/locale</code> if not given.</p>
8907
-              </div>
8908
-            </td>
8909
-            <td>
8910
-                  <code>None</code>
8911
-            </td>
8912
-          </tr>
8913
-          <tr class="doc-section-item">
8914
-            <td>
8915
-                <code>languages</code>
8916
-            </td>
8917
-            <td>
8918
-                  <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>] | None</code>
8919
-            </td>
8920
-            <td>
8921
-              <div class="doc-md-description">
8922
-                <p>Passed directly to <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/gettext.html#gettext.translation"><code>gettext.translation</code></a>.</p>
8923
-              </div>
8924
-            </td>
8925
-            <td>
8926
-                  <code>None</code>
8927
-            </td>
8928
-          </tr>
8929
-          <tr class="doc-section-item">
8930
-            <td>
8931
-                <code>class_</code>
8932
-            </td>
8933
-            <td>
8934
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/functions.html#type">type</a>[<a class="autorefs autorefs-external" title="gettext.NullTranslations" href="https://docs.python.org/3/library/gettext.html#gettext.NullTranslations">NullTranslations</a>] | None</code>
8935
-            </td>
8936
-            <td>
8937
-              <div class="doc-md-description">
8938
-                <p>Passed directly to <a class="autorefs autorefs-external" href="https://docs.python.org/3/library/gettext.html#gettext.translation"><code>gettext.translation</code></a>.</p>
8939
-              </div>
8940
-            </td>
8941
-            <td>
8942
-                  <code>None</code>
8943
-            </td>
8944
-          </tr>
8945
-      </tbody>
8946
-    </table>
8947
-
8948
-
8949
-    <p><span class="doc-section-title">Returns:</span></p>
8950
-    <table>
8951
-      <thead>
8952
-        <tr>
8953
-          <th>Type</th>
8954
-          <th>Description</th>
8955
-        </tr>
8956
-      </thead>
8957
-      <tbody>
8958
-          <tr class="doc-section-item">
8959
-            <td>
8960
-                  <code><a class="autorefs autorefs-external" title="gettext.NullTranslations" href="https://docs.python.org/3/library/gettext.html#gettext.NullTranslations">NullTranslations</a></code>
8961
-            </td>
8962
-            <td>
8963
-              <div class="doc-md-description">
8964
-                <p>A (potentially dummy) translation catalog.</p>
8965
-              </div>
8966
-            </td>
8967
-          </tr>
8968
-      </tbody>
8969
-    </table>
8970
-
8971
-
8972
-<p><span class="doc-section-title">Raises:</span></p>
8973
-    <table>
8974
-      <thead>
8975
-        <tr>
8976
-          <th>Type</th>
8977
-          <th>Description</th>
8978
-        </tr>
8979
-      </thead>
8980
-      <tbody>
8981
-          <tr class="doc-section-item">
8982
-            <td>
8983
-                  <code><a class="autorefs autorefs-external" href="https://docs.python.org/3/library/exceptions.html#RuntimeError">RuntimeError</a></code>
8984
-            </td>
8985
-            <td>
8986
-              <div class="doc-md-description">
8987
-                <p><code>APPDATA</code> (on Windows) or <code>XDG_DATA_HOME</code> (otherwise) is not
8988
-set.  We attempted to compute the default value, but failed
8989
-to determine the home directory.</p>
8990
-              </div>
8991
-            </td>
8992
-          </tr>
8993
-      </tbody>
8994
-    </table>
8995
-
8996
-
8997
-    </div>
8998
-
8999
-</div>
9000
-
9001
-<div class="doc doc-object doc-function">
9002
-
9003
-
9004
-<h2 id="derivepassphrase._internals.cli_messages.translatable" class="doc doc-heading">
9005
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">translatable</span>
9006
-
9007
-
9008
-<a href="#derivepassphrase._internals.cli_messages.translatable" class="headerlink" title="Permanent link">&para;</a></h2>
9009
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">translatable</span><span class="p">(</span>
9010
-    <span class="n">context</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>
9011
-    <span class="n">single</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>
9012
-    <span class="o">/</span><span class="p">,</span>
9013
-    <span class="n">flags</span><span class="p">:</span> <span class="n"><a class="autorefs autorefs-external" title="collections.abc.Iterable" href="https://docs.python.org/3/library/collections.abc.html#collections.abc.Iterable">Iterable</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>
9014
-    <span class="n">plural</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="s2">&quot;&quot;</span><span class="p">,</span>
9015
-    <span class="n">comments</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="s2">&quot;&quot;</span><span class="p">,</span>
9016
-<span class="p">)</span> <span class="o">-&gt;</span> <span class="n"><a class="autorefs autorefs-internal" title="            TranslatableString (derivepassphrase._internals.cli_messages.TranslatableString)" href="#derivepassphrase._internals.cli_messages.TranslatableString">TranslatableString</a></span>
9017
-</code></pre></div>
9018
-
9019
-    <div class="doc doc-contents ">
9020
-
9021
-        <p>Return a <a class="autorefs autorefs-internal" title="            TranslatableString" href="#derivepassphrase._internals.cli_messages.TranslatableString"><code>TranslatableString</code></a> with validated parts.</p>
9022
-<p>This factory function is really only there to make the enum
9023
-definitions more readable.  It is the main implementation of the
9024
-<a class="autorefs autorefs-internal" title="            TranslatableStringConstructor" href="#derivepassphrase._internals.cli_messages.TranslatableStringConstructor"><code>TranslatableStringConstructor</code></a>.</p>
9025
-
9026
-
9027
-    </div>
9028
-
9029
-</div>
9030
-
9031
-<div class="doc doc-object doc-function">
9032
-
9033
-
9034
-<h2 id="derivepassphrase._internals.cli_messages.commented" class="doc doc-heading">
9035
-<code class="doc-symbol doc-symbol-heading doc-symbol-function"></code>            <span class="doc doc-object-name doc-function-name">commented</span>
9036
-
9037
-
9038
-<a href="#derivepassphrase._internals.cli_messages.commented" class="headerlink" title="Permanent link">&para;</a></h2>
9039
-<div class="doc-signature highlight"><pre><span></span><code><span class="nf">commented</span><span class="p">(</span>
9040
-    <span class="n">comments</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="s2">&quot;&quot;</span><span class="p">,</span>
9041
-<span class="p">)</span> <span class="o">-&gt;</span> <span class="n"><a class="autorefs autorefs-internal" title="            TranslatableStringConstructor (derivepassphrase._internals.cli_messages.TranslatableStringConstructor)" href="#derivepassphrase._internals.cli_messages.TranslatableStringConstructor">TranslatableStringConstructor</a></span>
9042
-</code></pre></div>
9043
-
9044
-    <div class="doc doc-contents ">
9045
-
9046
-        <p>A &ldquo;decorator&rdquo; for readably constructing commented enum values.</p>
9047
-<p>Returns a partial application of <a class="autorefs autorefs-internal" title="            translatable" href="#derivepassphrase._internals.cli_messages.translatable"><code>translatable</code></a> with the <code>comments</code>
9048
-argument pre-filled.</p>
9049
-<p>This is geared towards the quirks of the API documentation extractor
9050
-<code>mkdocstrings-python</code>/<code>griffe</code>, which reformat and trim enum value
9051
-declarations in predictable but somewhat weird ways.  Chains of function
9052
-calls are preserved, though, so use this to our advantage to suggest
9053
-a specific formatting.</p>
9054
-<p>This is not necessarily good code style, nor is it a lightweight
9055
-solution.</p>
9056
-
9057
-
9058
-    </div>
9059
-
9060
-</div>
9061
-
9062
-
9063
-
9064
-  </div>
9065
-
9066
-    </div>
9067
-
9068
-</div>
9069
-
9070
-
9071
-
9072
-
9073
-
9074
-
9075
-
9076
-
9077
-
9078
-
9079
-
9080
-
9081
-                
9082
-              </article>
9083
-            </div>
9084
-          
9085
-          
9086
-        </div>
9087
-        
9088
-      </main>
9089
-      
9090
-        <footer class="md-footer">
9091
-  
9092
-    
9093
-  
9094
-  <div class="md-footer-meta md-typeset">
9095
-    <div class="md-footer-meta__inner md-grid">
9096
-      <div class="md-copyright">
9097
-  
9098
-    <div class="md-copyright__highlight">
9099
-      Copyright &copy; 2025 Marco Ricci (the-13th-letter)
9100
-    </div>
9101
-  
9102
-  
9103
-    Made with
9104
-    <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
9105
-      Material for MkDocs
9106
-    </a>
9107
-    and
9108
-    <a href="https://mkdocstrings.github.io/python/" target="_blank" rel="noopener">
9109
-        mkdocstrings-python
9110
-    </a>
9111
-  
9112
-</div>
9113
-      
9114
-    </div>
9115
-  </div>
9116
-</footer>
9117
-      
9118
-    </div>
9119
-    <div class="md-dialog" data-md-component="dialog">
9120
-      <div class="md-dialog__inner md-typeset"></div>
9121
-    </div>
9122
-    
9123
-    
9124
-    
9125
-    
9126
-  </body>
9127
-</html>
9128 0
\ No newline at end of file
... ...
@@ -278,7 +278,7 @@
278 278
   </label>
279 279
   
280 280
     <div class="md-nav__source">
281
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
281
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
282 282
   <div class="md-source__icon md-icon">
283 283
     
284 284
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -2796,7 +2796,7 @@
2796 2796
     
2797 2797
       
2798 2798
     
2799
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/reference/derivepassphrase._types.md" title="View source of this page" class="md-content__button md-icon">
2799
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/master/docs/reference/derivepassphrase._types.md" title="View source of this page" class="md-content__button md-icon">
2800 2800
       
2801 2801
       <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>
2802 2802
     </a>
... ...
@@ -278,7 +278,7 @@
278 278
   </label>
279 279
   
280 280
     <div class="md-nav__source">
281
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
281
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
282 282
   <div class="md-source__icon md-icon">
283 283
     
284 284
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1476,7 +1476,7 @@
1476 1476
     
1477 1477
       
1478 1478
     
1479
-    <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">
1479
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/master/docs/reference/derivepassphrase.cli.md" title="View source of this page" class="md-content__button md-icon">
1480 1480
       
1481 1481
       <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>
1482 1482
     </a>
... ...
@@ -278,7 +278,7 @@
278 278
   </label>
279 279
   
280 280
     <div class="md-nav__source">
281
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
281
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
282 282
   <div class="md-source__icon md-icon">
283 283
     
284 284
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -2160,7 +2160,7 @@
2160 2160
     
2161 2161
       
2162 2162
     
2163
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/reference/derivepassphrase.exporter.md" title="View source of this page" class="md-content__button md-icon">
2163
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/master/docs/reference/derivepassphrase.exporter.md" title="View source of this page" class="md-content__button md-icon">
2164 2164
       
2165 2165
       <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>
2166 2166
     </a>
... ...
@@ -278,7 +278,7 @@
278 278
   </label>
279 279
   
280 280
     <div class="md-nav__source">
281
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
281
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
282 282
   <div class="md-source__icon md-icon">
283 283
     
284 284
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1470,7 +1470,7 @@
1470 1470
     
1471 1471
       
1472 1472
     
1473
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/reference/derivepassphrase.sequin.md" title="View source of this page" class="md-content__button md-icon">
1473
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/master/docs/reference/derivepassphrase.sequin.md" title="View source of this page" class="md-content__button md-icon">
1474 1474
       
1475 1475
       <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>
1476 1476
     </a>
... ...
@@ -278,7 +278,7 @@
278 278
   </label>
279 279
   
280 280
     <div class="md-nav__source">
281
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
281
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
282 282
   <div class="md-source__icon md-icon">
283 283
     
284 284
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1686,7 +1686,7 @@
1686 1686
     
1687 1687
       
1688 1688
     
1689
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/reference/derivepassphrase.ssh_agent.md" title="View source of this page" class="md-content__button md-icon">
1689
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/master/docs/reference/derivepassphrase.ssh_agent.md" title="View source of this page" class="md-content__button md-icon">
1690 1690
       
1691 1691
       <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>
1692 1692
     </a>
... ...
@@ -278,7 +278,7 @@
278 278
   </label>
279 279
   
280 280
     <div class="md-nav__source">
281
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
281
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
282 282
   <div class="md-source__icon md-icon">
283 283
     
284 284
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1560,7 +1560,7 @@
1560 1560
     
1561 1561
       
1562 1562
     
1563
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/reference/derivepassphrase.vault.md" title="View source of this page" class="md-content__button md-icon">
1563
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/master/docs/reference/derivepassphrase.vault.md" title="View source of this page" class="md-content__button md-icon">
1564 1564
       
1565 1565
       <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>
1566 1566
     </a>
... ...
@@ -278,7 +278,7 @@
278 278
   </label>
279 279
   
280 280
     <div class="md-nav__source">
281
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
281
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
282 282
   <div class="md-source__icon md-icon">
283 283
     
284 284
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1385,7 +1385,7 @@
1385 1385
     
1386 1386
       
1387 1387
     
1388
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/reference/index.md" title="View source of this page" class="md-content__button md-icon">
1388
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/master/docs/reference/index.md" title="View source of this page" class="md-content__button md-icon">
1389 1389
       
1390 1390
       <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>
1391 1391
     </a>
... ...
@@ -1423,7 +1423,7 @@
1423 1423
 </ul>
1424 1424
 <h2 id="technical-prerequisites">Technical prerequisites<a class="headerlink" href="#technical-prerequisites" title="Permanent link">&para;</a></h2>
1425 1425
 <ul>
1426
-<li>Prerequisites for <a href="prerequisites-ssh-key/">using <code>derivepassphrase vault</code> with an SSH key</a></li>
1426
+<li><a href="prerequisites-ssh-key/">Prerequisites for using <code>derivepassphrase vault</code> with an SSH key</a></li>
1427 1427
 </ul>
1428 1428
 
1429 1429
 
... ...
@@ -278,7 +278,7 @@
278 278
   </label>
279 279
   
280 280
     <div class="md-nav__source">
281
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
281
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
282 282
   <div class="md-source__icon md-icon">
283 283
     
284 284
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1458,7 +1458,7 @@
1458 1458
     
1459 1459
       
1460 1460
     
1461
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/reference/prerequisites-ssh-key.md" title="View source of this page" class="md-content__button md-icon">
1461
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/master/docs/reference/prerequisites-ssh-key.md" title="View source of this page" class="md-content__button md-icon">
1462 1462
       
1463 1463
       <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>
1464 1464
     </a>
... ...
@@ -1537,9 +1537,8 @@ canonical SSH agent implementation.</p>
1537 1537
 <h3 id="python-support">A Python installation that can talk to the SSH agent<a class="headerlink" href="#python-support" title="Permanent link">&para;</a></h3>
1538 1538
 <div class="admonition bug">
1539 1539
 <p class="admonition-title">Windows is currently <em>not</em> supported</p>
1540
-<p><i>→ Further details:</i> <a href="https://github.com/the-13th-letter/derivepassphrase/issues/13">Issue
1541
-<code>the-13th-letter/derivepassphrase#13</code>: Support PuTTY/Pageant on
1542
-Windows</a></p>
1540
+<p><i>→ Bug entry:</i> <a href="../../wishlist/windows-ssh-agent-support/">Support PuTTY/Pageant (and maybe
1541
+OpenSSH/<code>ssh-agent</code>) on Windows</a></p>
1543 1542
 <p>The two major SSH agents on Windows (PuTTY/Pageant and OpenSSH) use
1544 1543
 <i>Windows named pipes</i> for communication, and Python on Windows
1545 1544
 does not inherently support named pipes.  Since no comprehensive
... ...
@@ -2,206 +2,194 @@
2 2
 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
3 3
     <url>
4 4
          <loc>https://the13thletter.info/derivepassphrase/0.x/</loc>
5
-         <lastmod>2025-06-18</lastmod>
5
+         <lastmod>2025-06-24</lastmod>
6 6
     </url>
7 7
     <url>
8 8
          <loc>https://the13thletter.info/derivepassphrase/0.x/changelog/</loc>
9
-         <lastmod>2025-06-18</lastmod>
9
+         <lastmod>2025-06-24</lastmod>
10 10
     </url>
11 11
     <url>
12 12
          <loc>https://the13thletter.info/derivepassphrase/0.x/pycompatibility/</loc>
13
-         <lastmod>2025-06-18</lastmod>
13
+         <lastmod>2025-06-24</lastmod>
14 14
     </url>
15 15
     <url>
16 16
          <loc>https://the13thletter.info/derivepassphrase/0.x/upgrade-notes/</loc>
17
-         <lastmod>2025-06-18</lastmod>
17
+         <lastmod>2025-06-24</lastmod>
18 18
     </url>
19 19
     <url>
20 20
          <loc>https://the13thletter.info/derivepassphrase/0.x/explanation/</loc>
21
-         <lastmod>2025-06-18</lastmod>
21
+         <lastmod>2025-06-24</lastmod>
22 22
     </url>
23 23
     <url>
24 24
          <loc>https://the13thletter.info/derivepassphrase/0.x/explanation/faq-altered-versions/</loc>
25
-         <lastmod>2025-06-18</lastmod>
25
+         <lastmod>2025-06-24</lastmod>
26 26
     </url>
27 27
     <url>
28 28
          <loc>https://the13thletter.info/derivepassphrase/0.x/explanation/faq-vault-interchangable-passphrases/</loc>
29
-         <lastmod>2025-06-18</lastmod>
29
+         <lastmod>2025-06-24</lastmod>
30 30
     </url>
31 31
     <url>
32 32
          <loc>https://the13thletter.info/derivepassphrase/0.x/how-tos/</loc>
33
-         <lastmod>2025-06-18</lastmod>
33
+         <lastmod>2025-06-24</lastmod>
34 34
     </url>
35 35
     <url>
36 36
          <loc>https://the13thletter.info/derivepassphrase/0.x/how-tos/ssh-key/</loc>
37
-         <lastmod>2025-06-18</lastmod>
37
+         <lastmod>2025-06-24</lastmod>
38 38
     </url>
39 39
     <url>
40 40
          <loc>https://the13thletter.info/derivepassphrase/0.x/reference/</loc>
41
-         <lastmod>2025-06-18</lastmod>
41
+         <lastmod>2025-06-24</lastmod>
42 42
     </url>
43 43
     <url>
44 44
          <loc>https://the13thletter.info/derivepassphrase/0.x/reference/derivepassphrase-export-vault.1/</loc>
45
-         <lastmod>2025-06-18</lastmod>
45
+         <lastmod>2025-06-24</lastmod>
46 46
     </url>
47 47
     <url>
48 48
          <loc>https://the13thletter.info/derivepassphrase/0.x/reference/derivepassphrase-export.1/</loc>
49
-         <lastmod>2025-06-18</lastmod>
49
+         <lastmod>2025-06-24</lastmod>
50 50
     </url>
51 51
     <url>
52 52
          <loc>https://the13thletter.info/derivepassphrase/0.x/reference/derivepassphrase-vault.1/</loc>
53
-         <lastmod>2025-06-18</lastmod>
53
+         <lastmod>2025-06-24</lastmod>
54 54
     </url>
55 55
     <url>
56 56
          <loc>https://the13thletter.info/derivepassphrase/0.x/reference/derivepassphrase.1/</loc>
57
-         <lastmod>2025-06-18</lastmod>
58
-    </url>
59
-    <url>
60
-         <loc>https://the13thletter.info/derivepassphrase/0.x/reference/derivepassphrase._internals.cli_helpers/</loc>
61
-         <lastmod>2025-06-18</lastmod>
62
-    </url>
63
-    <url>
64
-         <loc>https://the13thletter.info/derivepassphrase/0.x/reference/derivepassphrase._internals.cli_machinery/</loc>
65
-         <lastmod>2025-06-18</lastmod>
66
-    </url>
67
-    <url>
68
-         <loc>https://the13thletter.info/derivepassphrase/0.x/reference/derivepassphrase._internals.cli_messages/</loc>
69
-         <lastmod>2025-06-18</lastmod>
57
+         <lastmod>2025-06-24</lastmod>
70 58
     </url>
71 59
     <url>
72 60
          <loc>https://the13thletter.info/derivepassphrase/0.x/reference/derivepassphrase._types/</loc>
73
-         <lastmod>2025-06-18</lastmod>
61
+         <lastmod>2025-06-24</lastmod>
74 62
     </url>
75 63
     <url>
76 64
          <loc>https://the13thletter.info/derivepassphrase/0.x/reference/derivepassphrase.cli/</loc>
77
-         <lastmod>2025-06-18</lastmod>
65
+         <lastmod>2025-06-24</lastmod>
78 66
     </url>
79 67
     <url>
80 68
          <loc>https://the13thletter.info/derivepassphrase/0.x/reference/derivepassphrase.exporter/</loc>
81
-         <lastmod>2025-06-18</lastmod>
69
+         <lastmod>2025-06-24</lastmod>
82 70
     </url>
83 71
     <url>
84 72
          <loc>https://the13thletter.info/derivepassphrase/0.x/reference/derivepassphrase.sequin/</loc>
85
-         <lastmod>2025-06-18</lastmod>
73
+         <lastmod>2025-06-24</lastmod>
86 74
     </url>
87 75
     <url>
88 76
          <loc>https://the13thletter.info/derivepassphrase/0.x/reference/derivepassphrase.ssh_agent/</loc>
89
-         <lastmod>2025-06-18</lastmod>
77
+         <lastmod>2025-06-24</lastmod>
90 78
     </url>
91 79
     <url>
92 80
          <loc>https://the13thletter.info/derivepassphrase/0.x/reference/derivepassphrase.vault/</loc>
93
-         <lastmod>2025-06-18</lastmod>
81
+         <lastmod>2025-06-24</lastmod>
94 82
     </url>
95 83
     <url>
96 84
          <loc>https://the13thletter.info/derivepassphrase/0.x/reference/prerequisites-ssh-key/</loc>
97
-         <lastmod>2025-06-18</lastmod>
85
+         <lastmod>2025-06-24</lastmod>
98 86
     </url>
99 87
     <url>
100 88
          <loc>https://the13thletter.info/derivepassphrase/0.x/tutorials/</loc>
101
-         <lastmod>2025-06-18</lastmod>
89
+         <lastmod>2025-06-24</lastmod>
102 90
     </url>
103 91
     <url>
104 92
          <loc>https://the13thletter.info/derivepassphrase/0.x/tutorials/basic-setup-passphrase/</loc>
105
-         <lastmod>2025-06-18</lastmod>
93
+         <lastmod>2025-06-24</lastmod>
106 94
     </url>
107 95
     <url>
108 96
          <loc>https://the13thletter.info/derivepassphrase/0.x/wishlist/</loc>
109
-         <lastmod>2025-06-18</lastmod>
97
+         <lastmod>2025-06-24</lastmod>
110 98
     </url>
111 99
     <url>
112 100
          <loc>https://the13thletter.info/derivepassphrase/0.x/wishlist/allow-all-unicode-passphrases/</loc>
113
-         <lastmod>2025-06-18</lastmod>
101
+         <lastmod>2025-06-24</lastmod>
114 102
     </url>
115 103
     <url>
116 104
          <loc>https://the13thletter.info/derivepassphrase/0.x/wishlist/amend-vault-config/</loc>
117
-         <lastmod>2025-06-18</lastmod>
105
+         <lastmod>2025-06-24</lastmod>
118 106
     </url>
119 107
     <url>
120 108
          <loc>https://the13thletter.info/derivepassphrase/0.x/wishlist/better-error-messages/</loc>
121
-         <lastmod>2025-06-18</lastmod>
109
+         <lastmod>2025-06-24</lastmod>
122 110
     </url>
123 111
     <url>
124 112
          <loc>https://the13thletter.info/derivepassphrase/0.x/wishlist/concurrency-audit/</loc>
125
-         <lastmod>2025-06-18</lastmod>
113
+         <lastmod>2025-06-24</lastmod>
126 114
     </url>
127 115
     <url>
128 116
          <loc>https://the13thletter.info/derivepassphrase/0.x/wishlist/concurrency-testing-in-test-suite/</loc>
129
-         <lastmod>2025-06-18</lastmod>
117
+         <lastmod>2025-06-24</lastmod>
130 118
     </url>
131 119
     <url>
132 120
          <loc>https://the13thletter.info/derivepassphrase/0.x/wishlist/configuration-directory-must-exist/</loc>
133
-         <lastmod>2025-06-18</lastmod>
121
+         <lastmod>2025-06-24</lastmod>
134 122
     </url>
135 123
     <url>
136 124
          <loc>https://the13thletter.info/derivepassphrase/0.x/wishlist/conventional-configurable-text-styling/</loc>
137
-         <lastmod>2025-06-18</lastmod>
125
+         <lastmod>2025-06-24</lastmod>
138 126
     </url>
139 127
     <url>
140 128
          <loc>https://the13thletter.info/derivepassphrase/0.x/wishlist/export-vault-formats/</loc>
141
-         <lastmod>2025-06-18</lastmod>
129
+         <lastmod>2025-06-24</lastmod>
142 130
     </url>
143 131
     <url>
144 132
          <loc>https://the13thletter.info/derivepassphrase/0.x/wishlist/exporter-script-as-subcommand/</loc>
145
-         <lastmod>2025-06-18</lastmod>
133
+         <lastmod>2025-06-24</lastmod>
146 134
     </url>
147 135
     <url>
148 136
          <loc>https://the13thletter.info/derivepassphrase/0.x/wishlist/fail-gracefully-without-af-unix/</loc>
149
-         <lastmod>2025-06-18</lastmod>
137
+         <lastmod>2025-06-24</lastmod>
150 138
     </url>
151 139
     <url>
152 140
          <loc>https://the13thletter.info/derivepassphrase/0.x/wishlist/falsy-vault-config-values/</loc>
153
-         <lastmod>2025-06-18</lastmod>
141
+         <lastmod>2025-06-24</lastmod>
154 142
     </url>
155 143
     <url>
156 144
          <loc>https://the13thletter.info/derivepassphrase/0.x/wishlist/no-stdlib-module-names/</loc>
157
-         <lastmod>2025-06-18</lastmod>
145
+         <lastmod>2025-06-24</lastmod>
158 146
     </url>
159 147
     <url>
160 148
          <loc>https://the13thletter.info/derivepassphrase/0.x/wishlist/one-time-key-override-fails/</loc>
161
-         <lastmod>2025-06-18</lastmod>
149
+         <lastmod>2025-06-24</lastmod>
162 150
     </url>
163 151
     <url>
164 152
          <loc>https://the13thletter.info/derivepassphrase/0.x/wishlist/other-derivation-schemes/</loc>
165
-         <lastmod>2025-06-18</lastmod>
153
+         <lastmod>2025-06-24</lastmod>
166 154
     </url>
167 155
     <url>
168 156
          <loc>https://the13thletter.info/derivepassphrase/0.x/wishlist/pretty-print-json/</loc>
169
-         <lastmod>2025-06-18</lastmod>
157
+         <lastmod>2025-06-24</lastmod>
170 158
     </url>
171 159
     <url>
172 160
          <loc>https://the13thletter.info/derivepassphrase/0.x/wishlist/print-service-notes-above/</loc>
173
-         <lastmod>2025-06-18</lastmod>
161
+         <lastmod>2025-06-24</lastmod>
174 162
     </url>
175 163
     <url>
176 164
          <loc>https://the13thletter.info/derivepassphrase/0.x/wishlist/print-service-notes/</loc>
177
-         <lastmod>2025-06-18</lastmod>
165
+         <lastmod>2025-06-24</lastmod>
178 166
     </url>
179 167
     <url>
180 168
          <loc>https://the13thletter.info/derivepassphrase/0.x/wishlist/remove-pageant-build-info-check/</loc>
181
-         <lastmod>2025-06-18</lastmod>
169
+         <lastmod>2025-06-24</lastmod>
182 170
     </url>
183 171
     <url>
184 172
          <loc>https://the13thletter.info/derivepassphrase/0.x/wishlist/report-build-flags-and-features/</loc>
185
-         <lastmod>2025-06-18</lastmod>
173
+         <lastmod>2025-06-24</lastmod>
186 174
     </url>
187 175
     <url>
188 176
          <loc>https://the13thletter.info/derivepassphrase/0.x/wishlist/scheme-specific-cli-and-config/</loc>
189
-         <lastmod>2025-06-18</lastmod>
177
+         <lastmod>2025-06-24</lastmod>
190 178
     </url>
191 179
     <url>
192 180
          <loc>https://the13thletter.info/derivepassphrase/0.x/wishlist/single-toplevel-module/</loc>
193
-         <lastmod>2025-06-18</lastmod>
181
+         <lastmod>2025-06-24</lastmod>
194 182
     </url>
195 183
     <url>
196 184
          <loc>https://the13thletter.info/derivepassphrase/0.x/wishlist/test-filesystem-isolation/</loc>
197
-         <lastmod>2025-06-18</lastmod>
185
+         <lastmod>2025-06-24</lastmod>
198 186
     </url>
199 187
     <url>
200 188
          <loc>https://the13thletter.info/derivepassphrase/0.x/wishlist/test-suite-isolated-ssh-agent/</loc>
201
-         <lastmod>2025-06-18</lastmod>
189
+         <lastmod>2025-06-24</lastmod>
202 190
     </url>
203 191
     <url>
204 192
          <loc>https://the13thletter.info/derivepassphrase/0.x/wishlist/windows-ssh-agent-support/</loc>
205
-         <lastmod>2025-06-18</lastmod>
193
+         <lastmod>2025-06-24</lastmod>
206 194
     </url>
207 195
 </urlset>
208 196
\ No newline at end of file
... ...
@@ -278,7 +278,7 @@
278 278
   </label>
279 279
   
280 280
     <div class="md-nav__source">
281
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
281
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
282 282
   <div class="md-source__icon md-icon">
283 283
     
284 284
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1597,7 +1597,7 @@
1597 1597
     
1598 1598
       
1599 1599
     
1600
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/tutorials/basic-setup-passphrase.md" title="View source of this page" class="md-content__button md-icon">
1600
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/master/docs/tutorials/basic-setup-passphrase.md" title="View source of this page" class="md-content__button md-icon">
1601 1601
       
1602 1602
       <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>
1603 1603
     </a>
... ...
@@ -273,7 +273,7 @@
273 273
   </label>
274 274
   
275 275
     <div class="md-nav__source">
276
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
276
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
277 277
   <div class="md-source__icon md-icon">
278 278
     
279 279
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1336,7 +1336,7 @@
1336 1336
     
1337 1337
       
1338 1338
     
1339
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/tutorials/index.md" title="View source of this page" class="md-content__button md-icon">
1339
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/master/docs/tutorials/index.md" title="View source of this page" class="md-content__button md-icon">
1340 1340
       
1341 1341
       <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>
1342 1342
     </a>
... ...
@@ -278,7 +278,7 @@
278 278
   </label>
279 279
   
280 280
     <div class="md-nav__source">
281
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
281
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
282 282
   <div class="md-source__icon md-icon">
283 283
     
284 284
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1477,7 +1477,7 @@
1477 1477
     
1478 1478
       
1479 1479
     
1480
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/master/docs/upgrade-notes.md" title="View source of this page" class="md-content__button md-icon">
1480
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/master/docs/upgrade-notes.md" title="View source of this page" class="md-content__button md-icon">
1481 1481
       
1482 1482
       <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>
1483 1483
     </a>
... ...
@@ -272,7 +272,7 @@
272 272
   </label>
273 273
   
274 274
     <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
275
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
276 276
   <div class="md-source__icon md-icon">
277 277
     
278 278
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1332,7 +1332,7 @@
1332 1332
     
1333 1333
       
1334 1334
     
1335
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/wishlist/allow-all-unicode-passphrases.md" title="View source of this page" class="md-content__button md-icon">
1335
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/wishlist/allow-all-unicode-passphrases.md" title="View source of this page" class="md-content__button md-icon">
1336 1336
       
1337 1337
       <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>
1338 1338
     </a>
... ...
@@ -1340,7 +1340,7 @@
1340 1340
 
1341 1341
 
1342 1342
 <h1 id="derivepassphrase-bug-allow-all-unicode-passphrases"><code>derivepassphrase</code> bug allow-all-unicode-passphrases<a class="headerlink" href="#derivepassphrase-bug-allow-all-unicode-passphrases" title="Permanent link">&para;</a></h1>
1343
-<details class="success" open="open">
1343
+<details class="bug-success" open="open">
1344 1344
 <summary>Bug details: Allow all Unicode text strings as master passphrases</summary>
1345 1345
 <p><table id="bug-summary" markdown>
1346 1346
     <tr><th scope=col>Class<td><i>bug</i><td>This is clearly an actual problem we want fixed.
... ...
@@ -272,7 +272,7 @@
272 272
   </label>
273 273
   
274 274
     <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
275
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
276 276
   <div class="md-source__icon md-icon">
277 277
     
278 278
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1332,7 +1332,7 @@
1332 1332
     
1333 1333
       
1334 1334
     
1335
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/wishlist/amend-vault-config.md" title="View source of this page" class="md-content__button md-icon">
1335
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/wishlist/amend-vault-config.md" title="View source of this page" class="md-content__button md-icon">
1336 1336
       
1337 1337
       <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>
1338 1338
     </a>
... ...
@@ -1340,7 +1340,7 @@
1340 1340
 
1341 1341
 
1342 1342
 <h1 id="derivepassphrase-bug-amend-vault-config"><code>derivepassphrase</code> bug amend-vault-config<a class="headerlink" href="#derivepassphrase-bug-amend-vault-config" title="Permanent link">&para;</a></h1>
1343
-<details class="success" open="open">
1343
+<details class="bug-success" open="open">
1344 1344
 <summary>Bug details: <code>derivepassphrase vault --import</code> overwrites config instead of amending it</summary>
1345 1345
 <p><table id="bug-summary" markdown>
1346 1346
     <tr><th scope=col>Class<td><i>bug</i><td>This is clearly an actual problem we want fixed.
... ...
@@ -272,7 +272,7 @@
272 272
   </label>
273 273
   
274 274
     <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
275
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
276 276
   <div class="md-source__icon md-icon">
277 277
     
278 278
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1332,7 +1332,7 @@
1332 1332
     
1333 1333
       
1334 1334
     
1335
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/wishlist/better-error-messages.md" title="View source of this page" class="md-content__button md-icon">
1335
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/wishlist/better-error-messages.md" title="View source of this page" class="md-content__button md-icon">
1336 1336
       
1337 1337
       <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>
1338 1338
     </a>
... ...
@@ -1340,7 +1340,7 @@
1340 1340
 
1341 1341
 
1342 1342
 <h1 id="derivepassphrase-bug-better-error-messages"><code>derivepassphrase</code> bug better-error-messages<a class="headerlink" href="#derivepassphrase-bug-better-error-messages" title="Permanent link">&para;</a></h1>
1343
-<details class="success" open="open">
1343
+<details class="bug-success" open="open">
1344 1344
 <summary>Bug details: Improve common error messages in the command-line interface</summary>
1345 1345
 <p><table id="bug-summary" markdown>
1346 1346
     <tr><th scope=col>Class<td><i>bug</i><td>This is clearly an actual problem we want fixed.
... ...
@@ -272,7 +272,7 @@
272 272
   </label>
273 273
   
274 274
     <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
275
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
276 276
   <div class="md-source__icon md-icon">
277 277
     
278 278
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1332,7 +1332,7 @@
1332 1332
     
1333 1333
       
1334 1334
     
1335
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/wishlist/concurrency-audit.md" title="View source of this page" class="md-content__button md-icon">
1335
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/wishlist/concurrency-audit.md" title="View source of this page" class="md-content__button md-icon">
1336 1336
       
1337 1337
       <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>
1338 1338
     </a>
... ...
@@ -1340,7 +1340,7 @@
1340 1340
 
1341 1341
 
1342 1342
 <h1 id="derivepassphrase-bug-concurrency-audit"><code>derivepassphrase</code> bug concurrency-audit<a class="headerlink" href="#derivepassphrase-bug-concurrency-audit" title="Permanent link">&para;</a></h1>
1343
-<details class="success" open="open">
1343
+<details class="bug-success" open="open">
1344 1344
 <summary>Bug details: Audit <code>derivepassphrase</code> for concurrency/thread-safety issues</summary>
1345 1345
 <p><table id="bug-summary" markdown>
1346 1346
     <tr><th scope=col>Class<td><i>bug</i><td>This is clearly an actual problem we want fixed.
... ...
@@ -272,7 +272,7 @@
272 272
   </label>
273 273
   
274 274
     <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
275
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
276 276
   <div class="md-source__icon md-icon">
277 277
     
278 278
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1332,7 +1332,7 @@
1332 1332
     
1333 1333
       
1334 1334
     
1335
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/wishlist/concurrency-testing-in-test-suite.md" title="View source of this page" class="md-content__button md-icon">
1335
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/wishlist/concurrency-testing-in-test-suite.md" title="View source of this page" class="md-content__button md-icon">
1336 1336
       
1337 1337
       <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>
1338 1338
     </a>
... ...
@@ -1340,7 +1340,7 @@
1340 1340
 
1341 1341
 
1342 1342
 <h1 id="derivepassphrase-bug-concurrency-testing-in-test-suite"><code>derivepassphrase</code> bug concurrency-testing-in-test-suite<a class="headerlink" href="#derivepassphrase-bug-concurrency-testing-in-test-suite" title="Permanent link">&para;</a></h1>
1343
-<details class="success" open="open">
1343
+<details class="bug-success" open="open">
1344 1344
 <summary>Bug details: Test for concurrency and assert thread-safety in <code>derivepassphrase</code>&apos;s test suite</summary>
1345 1345
 <p><table id="bug-summary" markdown>
1346 1346
     <tr><th scope=col>Class<td><i>bug</i><td>This is clearly an actual problem we want fixed.
... ...
@@ -272,7 +272,7 @@
272 272
   </label>
273 273
   
274 274
     <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
275
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
276 276
   <div class="md-source__icon md-icon">
277 277
     
278 278
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1332,7 +1332,7 @@
1332 1332
     
1333 1333
       
1334 1334
     
1335
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/wishlist/configuration-directory-must-exist.md" title="View source of this page" class="md-content__button md-icon">
1335
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/wishlist/configuration-directory-must-exist.md" title="View source of this page" class="md-content__button md-icon">
1336 1336
       
1337 1337
       <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>
1338 1338
     </a>
... ...
@@ -1340,7 +1340,7 @@
1340 1340
 
1341 1341
 
1342 1342
 <h1 id="derivepassphrase-bug-configuration-directory-must-exist"><code>derivepassphrase</code> bug configuration-directory-must-exist<a class="headerlink" href="#derivepassphrase-bug-configuration-directory-must-exist" title="Permanent link">&para;</a></h1>
1343
-<details class="success" open="open">
1343
+<details class="bug-success" open="open">
1344 1344
 <summary>Bug details: <code>derivepassphrase --config</code> requires configuration directory to exist</summary>
1345 1345
 <p><table id="bug-summary" markdown>
1346 1346
     <tr><th scope=col>Class<td><i>bug</i><td>This is clearly an actual problem we want fixed.
... ...
@@ -272,7 +272,7 @@
272 272
   </label>
273 273
   
274 274
     <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
275
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
276 276
   <div class="md-source__icon md-icon">
277 277
     
278 278
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1332,7 +1332,7 @@
1332 1332
     
1333 1333
       
1334 1334
     
1335
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/wishlist/conventional-configurable-text-styling.md" title="View source of this page" class="md-content__button md-icon">
1335
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/wishlist/conventional-configurable-text-styling.md" title="View source of this page" class="md-content__button md-icon">
1336 1336
       
1337 1337
       <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>
1338 1338
     </a>
... ...
@@ -1340,13 +1340,13 @@
1340 1340
 
1341 1341
 
1342 1342
 <h1 id="derivepassphrase-wish-conventional-configurable-text-styling"><code>derivepassphrase</code> wish conventional-configurable-text-styling<a class="headerlink" href="#derivepassphrase-wish-conventional-configurable-text-styling" title="Permanent link">&para;</a></h1>
1343
-<details class="question" open="open">
1343
+<details class="wish" open="open">
1344 1344
 <summary>Wish details: <code>derivepassphrase vault</code> should support conventional and configurable text styling</summary>
1345 1345
 <p><table id="bug-summary" markdown>
1346 1346
     <tr><th scope=col>Class<td><i>wish</i><td>This is a request for an enhancement.
1347
-    <tr><th scope=col>Priority<td><i>medium</i><td>This should be fixed one day.
1347
+    <tr><th scope=col>Priority<td><i>low</i><td>We aren&apos;t sure whether to fix this or not.
1348 1348
     <tr><th scope=col>Difficulty<td><i>taxing</i><td>Needs external things we don&rsquo;t have (standards, users etc).
1349
-    <tr><th scope=col>Present-in<td colspan=2><b>0.5</b>
1349
+    <tr><th scope=col>Present-in<td colspan=2><b>0.5</b> 0.5.1
1350 1350
 </table></p>
1351 1351
 </details>
1352 1352
 <p><code>derivepassphrase</code> intends to support text styling (color, boldface) for warning and error messages (and possibly for other future uses) for TTY devices.
... ...
@@ -272,7 +272,7 @@
272 272
   </label>
273 273
   
274 274
     <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
275
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
276 276
   <div class="md-source__icon md-icon">
277 277
     
278 278
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1332,7 +1332,7 @@
1332 1332
     
1333 1333
       
1334 1334
     
1335
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/wishlist/export-vault-formats.md" title="View source of this page" class="md-content__button md-icon">
1335
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/wishlist/export-vault-formats.md" title="View source of this page" class="md-content__button md-icon">
1336 1336
       
1337 1337
       <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>
1338 1338
     </a>
... ...
@@ -1340,7 +1340,7 @@
1340 1340
 
1341 1341
 
1342 1342
 <h1 id="derivepassphrase-wish-export-vault-formats"><code>derivepassphrase</code> wish export-vault-formats<a class="headerlink" href="#derivepassphrase-wish-export-vault-formats" title="Permanent link">&para;</a></h1>
1343
-<details class="success" open="open">
1343
+<details class="wish-success" open="open">
1344 1344
 <summary>Wish details: Support data export from vault v0.2, vault v0.3, and storeroom storage formats</summary>
1345 1345
 <p><table id="bug-summary" markdown>
1346 1346
     <tr><th scope=col>Class<td><i>wish</i><td>This is a request for an enhancement.
... ...
@@ -272,7 +272,7 @@
272 272
   </label>
273 273
   
274 274
     <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
275
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
276 276
   <div class="md-source__icon md-icon">
277 277
     
278 278
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1332,7 +1332,7 @@
1332 1332
     
1333 1333
       
1334 1334
     
1335
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/wishlist/exporter-script-as-subcommand.md" title="View source of this page" class="md-content__button md-icon">
1335
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/wishlist/exporter-script-as-subcommand.md" title="View source of this page" class="md-content__button md-icon">
1336 1336
       
1337 1337
       <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>
1338 1338
     </a>
... ...
@@ -1340,7 +1340,7 @@
1340 1340
 
1341 1341
 
1342 1342
 <h1 id="derivepassphrase-wish-exporter-script-as-subcommand"><code>derivepassphrase</code> wish exporter-script-as-subcommand<a class="headerlink" href="#derivepassphrase-wish-exporter-script-as-subcommand" title="Permanent link">&para;</a></h1>
1343
-<details class="success" open="open">
1343
+<details class="wish-success" open="open">
1344 1344
 <summary>Wish details: Make the exporter a subcommand of <code>derivepassphrase</code></summary>
1345 1345
 <p><table id="bug-summary" markdown>
1346 1346
     <tr><th scope=col>Class<td><i>wish</i><td>This is a request for an enhancement.
... ...
@@ -272,7 +272,7 @@
272 272
   </label>
273 273
   
274 274
     <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
275
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
276 276
   <div class="md-source__icon md-icon">
277 277
     
278 278
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1332,7 +1332,7 @@
1332 1332
     
1333 1333
       
1334 1334
     
1335
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/wishlist/fail-gracefully-without-af-unix.md" title="View source of this page" class="md-content__button md-icon">
1335
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/wishlist/fail-gracefully-without-af-unix.md" title="View source of this page" class="md-content__button md-icon">
1336 1336
       
1337 1337
       <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>
1338 1338
     </a>
... ...
@@ -1340,7 +1340,7 @@
1340 1340
 
1341 1341
 
1342 1342
 <h1 id="derivepassphrase-bug-fail-gracefully-without-af-unix"><code>derivepassphrase</code> bug fail-gracefully-without-af-unix<a class="headerlink" href="#derivepassphrase-bug-fail-gracefully-without-af-unix" title="Permanent link">&para;</a></h1>
1343
-<details class="success" open="open">
1343
+<details class="bug-success" open="open">
1344 1344
 <summary>Bug details: Fail gracefully if support for UNIX domain sockets is unavailable</summary>
1345 1345
 <p><table id="bug-summary" markdown>
1346 1346
     <tr><th scope=col>Class<td><i>bug</i><td>This is clearly an actual problem we want fixed.
... ...
@@ -272,7 +272,7 @@
272 272
   </label>
273 273
   
274 274
     <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
275
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
276 276
   <div class="md-source__icon md-icon">
277 277
     
278 278
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1332,7 +1332,7 @@
1332 1332
     
1333 1333
       
1334 1334
     
1335
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/wishlist/falsy-vault-config-values.md" title="View source of this page" class="md-content__button md-icon">
1335
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/wishlist/falsy-vault-config-values.md" title="View source of this page" class="md-content__button md-icon">
1336 1336
       
1337 1337
       <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>
1338 1338
     </a>
... ...
@@ -1340,7 +1340,7 @@
1340 1340
 
1341 1341
 
1342 1342
 <h1 id="derivepassphrase-bug-falsy-vault-config-values"><code>derivepassphrase</code> bug falsy-vault-config-values<a class="headerlink" href="#derivepassphrase-bug-falsy-vault-config-values" title="Permanent link">&para;</a></h1>
1343
-<details class="success" open="open">
1343
+<details class="bug-success" open="open">
1344 1344
 <summary>Bug details: <code>derivepassphrase vault</code> differs from vault(1) behavior with falsy stored configuration values</summary>
1345 1345
 <p><table id="bug-summary" markdown>
1346 1346
     <tr><th scope=col>Class<td><i>bug</i><td>This is clearly an actual problem we want fixed.
... ...
@@ -276,7 +276,7 @@
276 276
   </label>
277 277
   
278 278
     <div class="md-nav__source">
279
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
279
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
280 280
   <div class="md-source__icon md-icon">
281 281
     
282 282
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1341,7 +1341,7 @@
1341 1341
     
1342 1342
       
1343 1343
     
1344
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/wishlist/index.md" title="View source of this page" class="md-content__button md-icon">
1344
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/wishlist/index.md" title="View source of this page" class="md-content__button md-icon">
1345 1345
       
1346 1346
       <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>
1347 1347
     </a>
... ...
@@ -1364,15 +1364,15 @@
1364 1364
 <li><a class="scheduled-next" href="windows-ssh-agent-support/">windows-ssh-agent-support</a></li>
1365 1365
 </ul>
1366 1366
 </details>
1367
-<details class="question" open="open">
1367
+<details class="wish" open="open">
1368 1368
 <summary>things to add</summary>
1369 1369
 <ul>
1370 1370
 <li><a class="unscheduled" href="conventional-configurable-text-styling/">conventional-configurable-text-styling</a></li>
1371 1371
 <li><a class="unscheduled" href="other-derivation-schemes/">other-derivation-schemes</a></li>
1372 1372
 </ul>
1373 1373
 </details>
1374
-<details class="success">
1375
-<summary>fixed things</summary>
1374
+<details class="bug-success">
1375
+<summary>things fixed</summary>
1376 1376
 <ul>
1377 1377
 <li><a class="fixed" href="allow-all-unicode-passphrases/">allow-all-unicode-passphrases</a></li>
1378 1378
 <li><a class="fixed" href="amend-vault-config/">amend-vault-config</a></li>
... ...
@@ -1389,7 +1389,9 @@
1389 1389
 <li><a class="fixed" href="single-toplevel-module/">single-toplevel-module</a></li>
1390 1390
 <li><a class="fixed" href="test-filesystem-isolation/">test-filesystem-isolation</a></li>
1391 1391
 </ul>
1392
-<hr />
1392
+</details>
1393
+<details class="wish-success">
1394
+<summary>things added</summary>
1393 1395
 <ul>
1394 1396
 <li><a class="fixed" href="export-vault-formats/">export-vault-formats</a></li>
1395 1397
 <li><a class="fixed" href="exporter-script-as-subcommand/">exporter-script-as-subcommand</a></li>
... ...
@@ -1400,10 +1402,6 @@
1400 1402
 <li><a class="fixed" href="test-suite-isolated-ssh-agent/">test-suite-isolated-ssh-agent</a></li>
1401 1403
 </ul>
1402 1404
 </details>
1403
-<div class="admonition abstract">
1404
-<p class="admonition-title">Further reading</p>
1405
-<p>→ Scheduled bugs and wishes</p>
1406
-</div>
1407 1405
 
1408 1406
 
1409 1407
 
... ...
@@ -272,7 +272,7 @@
272 272
   </label>
273 273
   
274 274
     <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
275
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
276 276
   <div class="md-source__icon md-icon">
277 277
     
278 278
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1332,7 +1332,7 @@
1332 1332
     
1333 1333
       
1334 1334
     
1335
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/wishlist/no-stdlib-module-names.md" title="View source of this page" class="md-content__button md-icon">
1335
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/wishlist/no-stdlib-module-names.md" title="View source of this page" class="md-content__button md-icon">
1336 1336
       
1337 1337
       <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>
1338 1338
     </a>
... ...
@@ -1340,7 +1340,7 @@
1340 1340
 
1341 1341
 
1342 1342
 <h1 id="derivepassphrase-bug-no-stdlib-module-names"><code>derivepassphrase</code> bug no-stdlib-module-names<a class="headerlink" href="#derivepassphrase-bug-no-stdlib-module-names" title="Permanent link">&para;</a></h1>
1343
-<details class="success" open="open">
1343
+<details class="bug-success" open="open">
1344 1344
 <summary>Bug details: Rename <code>types</code> submodules to <code>_types</code></summary>
1345 1345
 <p><table id="bug-summary" markdown>
1346 1346
     <tr><th scope=col>Class<td><i>bug</i><td>This is clearly an actual problem we want fixed.
... ...
@@ -272,7 +272,7 @@
272 272
   </label>
273 273
   
274 274
     <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
275
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
276 276
   <div class="md-source__icon md-icon">
277 277
     
278 278
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1332,7 +1332,7 @@
1332 1332
     
1333 1333
       
1334 1334
     
1335
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/wishlist/one-time-key-override-fails.md" title="View source of this page" class="md-content__button md-icon">
1335
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/wishlist/one-time-key-override-fails.md" title="View source of this page" class="md-content__button md-icon">
1336 1336
       
1337 1337
       <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>
1338 1338
     </a>
... ...
@@ -1340,7 +1340,7 @@
1340 1340
 
1341 1341
 
1342 1342
 <h1 id="derivepassphrase-bug-one-time-key-override-fails"><code>derivepassphrase</code> bug one-time-key-override-fails<a class="headerlink" href="#derivepassphrase-bug-one-time-key-override-fails" title="Permanent link">&para;</a></h1>
1343
-<details class="success" open="open">
1343
+<details class="bug-success" open="open">
1344 1344
 <summary>Bug details: <code>derivepassphrase -k</code> fails when overriding the chosen key on the command-line</summary>
1345 1345
 <p><table id="bug-summary" markdown>
1346 1346
     <tr><th scope=col>Class<td><i>bug</i><td>This is clearly an actual problem we want fixed.
... ...
@@ -272,7 +272,7 @@
272 272
   </label>
273 273
   
274 274
     <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
275
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
276 276
   <div class="md-source__icon md-icon">
277 277
     
278 278
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1332,7 +1332,7 @@
1332 1332
     
1333 1333
       
1334 1334
     
1335
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/wishlist/other-derivation-schemes.md" title="View source of this page" class="md-content__button md-icon">
1335
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/wishlist/other-derivation-schemes.md" title="View source of this page" class="md-content__button md-icon">
1336 1336
       
1337 1337
       <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>
1338 1338
     </a>
... ...
@@ -1340,23 +1340,125 @@
1340 1340
 
1341 1341
 
1342 1342
 <h1 id="derivepassphrase-wish-other-derivation-schemes"><code>derivepassphrase</code> wish other-derivation-schemes<a class="headerlink" href="#derivepassphrase-wish-other-derivation-schemes" title="Permanent link">&para;</a></h1>
1343
-<details class="question" open="open">
1343
+<details class="wish" open="open">
1344 1344
 <summary>Wish details: Consider implementing passphrase schemes other than vault&apos;s</summary>
1345 1345
 <p><table id="bug-summary" markdown>
1346 1346
     <tr><th scope=col>Class<td><i>wish</i><td>This is a request for an enhancement.
1347
-    <tr><th scope=col>Priority<td><i>low</i><td>We aren&apos;t sure whether to fix this or not.
1347
+    <tr><th scope=col>Priority<td><i>medium</i><td>This should be fixed one day.
1348 1348
     <tr><th scope=col>Difficulty<td><i>tricky</i><td>Needs many tuits.
1349
-    <tr><th scope=col>Present-in<td colspan=2>0.1.0 0.1.1 <b>0.1.2</b> 0.1.3 0.2.0 0.3.0 0.3.1 0.3.2 0.3.3 0.4.0
1349
+    <tr><th scope=col>Present-in<td colspan=2>0.1.0 0.1.1 <b>0.1.2</b> 0.1.3 0.2.0 0.3.0 0.3.1 0.3.2 0.3.3 0.4.0 0.5 0.5.1
1350 1350
     <tr><th scope=col>Depends<td colspan=2><a class="fixed" href="../scheme-specific-cli-and-config/">scheme-specific-cli-and-config</a>
1351 1351
 </table></p>
1352 1352
 </details>
1353 1353
 <p>Consider implementing other deterministic password/passphrase generation schemes, beyond vault.</p>
1354 1354
 <p>Some candidates:</p>
1355 1355
 <ul>
1356
-<li><a href="https://github.com/chriszarate/supergenpass">chriszarate/supergenpass</a></li>
1357
-<li><a href="https://github.com/grempe/strongpass">grempe/strongpass</a></li>
1358
-<li><a href="https://github.com/aprico-org/aprico-gen">aprico-org/aprico-gen</a></li>
1359
-<li><a href="https://spectre.app/blog/2018-01-06-algorithm/">Master Passphrase/Spectre.app scheme</a></li>
1356
+<li>
1357
+<details class="failure">
1358
+<summary><a href="https://github.com/chriszarate/supergenpass"><code>chriszarate/supergenpass</code></a></summary>
1359
+<ul>
1360
+<li><a href="https://github.com/chriszarate/supergenpass-lib">standalone library</a></li>
1361
+<li>High-level scheme: hash the master passphrase and the domain/URL repeatedly until the output satisfies a certain passphrase pattern.<ul>
1362
+<li>The hash is either MD5 or SHA512.</li>
1363
+<li>The hash input is the naive concatenation of master passphrase, an optional secret string, a colon, and the domain/URL.
1364
+(No protection against components aliasing each other.)</li>
1365
+<li>The output is base64-encoded and truncated to at most 24 characters.</li>
1366
+<li>The output pattern is static, and forces the output to start with a lowercase character and contain both an uppercase character and a number.</li>
1367
+<li>The hash is used for at least 10 rounds, more if necessary to satisfy the output pattern.</li>
1368
+<li>There is no explicit support for deriving a different passphrase for a certain domain/URL if the current one was compromised; this needs to be effected by changing the hash, the hash rounds, the master passphrase or the optional secret.</li>
1369
+<li>The domain usually is truncated to the &ldquo;base domain&rdquo; just below the TLD, using a static list of TLDs.</li>
1370
+</ul>
1371
+</li>
1372
+<li>do not implement</li>
1373
+<li>improvised key derivation function does not appear to be cryptographically sound</li>
1374
+<li>design also contains certain unfortunate choices (idiosyncratic domain truncation, fixed pattern and fixed character set for the derived passphrase, low maximum derived passphrase length) which harm the usability of this system</li>
1375
+<li>offers less flexibility and less cryptographic soundness than the <code>vault</code> scheme does, but has no other redeeming qualities instead</li>
1376
+</ul>
1377
+</details>
1378
+</li>
1379
+<li>
1380
+<details class="failure">
1381
+<summary><a href="https://github.com/grempe/strongpass"><code>grempe/strongpass</code></a></summary>
1382
+<ul>
1383
+<li>High-level scheme: pass the master passphrase and the service name to a cryptographic key derivation function, then convert the output to a suitable passphrase.<ul>
1384
+<li>A master key is generated from the master passphrase and the service name, via HMAC-SHA512.</li>
1385
+<li>A salt is generated from the service name and other, user-controlled input, hashed with SHA512.</li>
1386
+<li>The derived key is derived from the master key using scrypt with the aforementioned salt.</li>
1387
+<li>The derived key is converted to base64. The first 18 characters are used directly, the last two characters are converted to a number and a symbol, respectively. This yields a 20-character passphrase with a guaranteed number and symbol at the end.</li>
1388
+</ul>
1389
+</li>
1390
+<li>do not implement</li>
1391
+<li>very sound design that at its core is not unlike the <code>vault</code> scheme, but lacks any configurability for the output (length, character set, reset counter)</li>
1392
+</ul>
1393
+</details>
1394
+</li>
1395
+<li>
1396
+<details class="failure">
1397
+<summary><a href="https://github.com/aprico-org/aprico-gen"><code>aprico-org/aprico-gen</code></a></summary>
1398
+<ul>
1399
+<li>High-level scheme: the input is put into a cryptographic key derivation function, then the result is rehashed until it satisfies a certain passphrase pattern.<ul>
1400
+<li>uses scrypt for KDF and for rehashing (with lower CPU cost factor)</li>
1401
+<li>output passphrase pattern is static, but the character classes (alpha, number, symbol) can be enabled and disabled</li>
1402
+</ul>
1403
+</li>
1404
+<li>do not implement</li>
1405
+<li>sound design, but lacks configurability for the output</li>
1406
+</ul>
1407
+</details>
1408
+</li>
1409
+<li>
1410
+<details class="note">
1411
+<summary><a href="https://spectre.app/blog/2018-01-06-algorithm/">Master Password/Spectre.app scheme</a></summary>
1412
+<ul>
1413
+<li>High-level scheme: the input is put into a cryptographic key derivation function, then the result is used as a pseudorandom stream of bits to select an output template and characters in that template.<ul>
1414
+<li>uses scrypt for KDF</li>
1415
+<li>uses a separate reset counter</li>
1416
+<li>provides only a limited set of output templates</li>
1417
+<li>strives for maximum statelessness: by design, it should be possible to try out all sensible counter values and templates without getting blocked for excessive password attempts</li>
1418
+<li>published specification (with minor errors and omissions)</li>
1419
+<li>test suite</li>
1420
+<li>several &ldquo;old&rdquo; versions of the algorithm contain implementation mistakes relative to what the spec describes</li>
1421
+</ul>
1422
+</li>
1423
+<li><strong>implement</strong></li>
1424
+<li>…but use &ldquo;master&rdquo; terminology freely</li>
1425
+<li>sound design, and battle-tested</li>
1426
+<li>very pure application of the statelessness principle without sacrificing too much practicability</li>
1427
+</ul>
1428
+</details>
1429
+</li>
1430
+<li>
1431
+<details class="question">
1432
+<summary><a href="https://github.com/lesspass/lesspass/">LessPass</a></summary>
1433
+<ul>
1434
+<li>High-level scheme: same as Master Password/Spectre.app<ul>
1435
+<li>uses PBKDF2-HMAC-SHA256 as KDF</li>
1436
+<li>character sets can be turned on and off</li>
1437
+<li>&ldquo;old&rdquo; versions of the algorithm</li>
1438
+<li>test suite</li>
1439
+<li>supports &ldquo;profiles&rdquo; (akin to <code>vault</code> service settings) for customizing character sets, length, counter values, etc.; the author advises using only public site-specific profiles, not user-specific ones</li>
1440
+<li>web client uses &ldquo;visual fingerprinting&rdquo; to guard against data entry mistakes… but this allows online attacks against the master passphrase</li>
1441
+</ul>
1442
+</li>
1443
+<li>undecided</li>
1444
+<li>definitely do not implement visual fingerprinting</li>
1445
+</ul>
1446
+</details>
1447
+</li>
1448
+<li>
1449
+<details class="note">
1450
+<summary><a href="https://theworld.com/~reinhold/diceware.html">Diceware</a></summary>
1451
+<ul>
1452
+<li>High-level scheme: generates passphrases from a random bitstring via a table of words, to be concatenated.<ul>
1453
+<li>not a full passphrase derivation scheme (lacks a hashing or key-derivation step), but combinable with other &ldquo;classic&rdquo; passphrase derivation schemes</li>
1454
+<li>original wordlist by Arnold G. Reinhold; other wordlists available, e.g. from the EFF</li>
1455
+</ul>
1456
+</li>
1457
+<li><strong>implement</strong>, as a supplement to existing passphrase derivation schemes</li>
1458
+<li>requires a new API in the other derivation schemes to expose the pseudo-random bitstream from which the final passphrase normally is assembled</li>
1459
+</ul>
1460
+</details>
1461
+</li>
1360 1462
 </ul>
1361 1463
 <p>The hard part about these will probably not be the coding, but the correctness testing.</p>
1362 1464
 
... ...
@@ -272,7 +272,7 @@
272 272
   </label>
273 273
   
274 274
     <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
275
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
276 276
   <div class="md-source__icon md-icon">
277 277
     
278 278
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1332,7 +1332,7 @@
1332 1332
     
1333 1333
       
1334 1334
     
1335
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/wishlist/pretty-print-json.md" title="View source of this page" class="md-content__button md-icon">
1335
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/wishlist/pretty-print-json.md" title="View source of this page" class="md-content__button md-icon">
1336 1336
       
1337 1337
       <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>
1338 1338
     </a>
... ...
@@ -1340,7 +1340,7 @@
1340 1340
 
1341 1341
 
1342 1342
 <h1 id="derivepassphrase-wish-pretty-print-json"><code>derivepassphrase</code> wish pretty-print-json<a class="headerlink" href="#derivepassphrase-wish-pretty-print-json" title="Permanent link">&para;</a></h1>
1343
-<details class="success" open="open">
1343
+<details class="wish-success" open="open">
1344 1344
 <summary>Wish details: <code>derivepassphrase vault</code> should store and export the vault configuration in pretty-printed JSON</summary>
1345 1345
 <p><table id="bug-summary" markdown>
1346 1346
     <tr><th scope=col>Class<td><i>wish</i><td>This is a request for an enhancement.
... ...
@@ -272,7 +272,7 @@
272 272
   </label>
273 273
   
274 274
     <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
275
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
276 276
   <div class="md-source__icon md-icon">
277 277
     
278 278
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1332,7 +1332,7 @@
1332 1332
     
1333 1333
       
1334 1334
     
1335
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/wishlist/print-service-notes-above.md" title="View source of this page" class="md-content__button md-icon">
1335
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/wishlist/print-service-notes-above.md" title="View source of this page" class="md-content__button md-icon">
1336 1336
       
1337 1337
       <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>
1338 1338
     </a>
... ...
@@ -1340,7 +1340,7 @@
1340 1340
 
1341 1341
 
1342 1342
 <h1 id="derivepassphrase-wish-print-service-notes-above"><code>derivepassphrase</code> wish print-service-notes-above<a class="headerlink" href="#derivepassphrase-wish-print-service-notes-above" title="Permanent link">&para;</a></h1>
1343
-<details class="success" open="open">
1343
+<details class="wish-success" open="open">
1344 1344
 <summary>Wish details: <code>derivepassphrase vault</code> should be able to print service notes <em>above</em> the passphrase</summary>
1345 1345
 <p><table id="bug-summary" markdown>
1346 1346
     <tr><th scope=col>Class<td><i>wish</i><td>This is a request for an enhancement.
... ...
@@ -272,7 +272,7 @@
272 272
   </label>
273 273
   
274 274
     <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
275
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
276 276
   <div class="md-source__icon md-icon">
277 277
     
278 278
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1332,7 +1332,7 @@
1332 1332
     
1333 1333
       
1334 1334
     
1335
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/wishlist/print-service-notes.md" title="View source of this page" class="md-content__button md-icon">
1335
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/wishlist/print-service-notes.md" title="View source of this page" class="md-content__button md-icon">
1336 1336
       
1337 1337
       <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>
1338 1338
     </a>
... ...
@@ -1340,7 +1340,7 @@
1340 1340
 
1341 1341
 
1342 1342
 <h1 id="derivepassphrase-bug-print-service-notes"><code>derivepassphrase</code> bug print-service-notes<a class="headerlink" href="#derivepassphrase-bug-print-service-notes" title="Permanent link">&para;</a></h1>
1343
-<details class="success" open="open">
1343
+<details class="bug-success" open="open">
1344 1344
 <summary>Bug details: <code>derivepassphrase vault</code> does not print service notes</summary>
1345 1345
 <p><table id="bug-summary" markdown>
1346 1346
     <tr><th scope=col>Class<td><i>bug</i><td>This is clearly an actual problem we want fixed.
... ...
@@ -272,7 +272,7 @@
272 272
   </label>
273 273
   
274 274
     <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
275
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
276 276
   <div class="md-source__icon md-icon">
277 277
     
278 278
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1332,7 +1332,7 @@
1332 1332
     
1333 1333
       
1334 1334
     
1335
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/wishlist/remove-pageant-build-info-check.md" title="View source of this page" class="md-content__button md-icon">
1335
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/wishlist/remove-pageant-build-info-check.md" title="View source of this page" class="md-content__button md-icon">
1336 1336
       
1337 1337
       <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>
1338 1338
     </a>
... ...
@@ -1340,7 +1340,7 @@
1340 1340
 
1341 1341
 
1342 1342
 <h1 id="derivepassphrase-bug-remove-pageant-build-info-check"><code>derivepassphrase</code> bug remove-pageant-build-info-check<a class="headerlink" href="#derivepassphrase-bug-remove-pageant-build-info-check" title="Permanent link">&para;</a></h1>
1343
-<details class="success" open="open">
1343
+<details class="bug-success" open="open">
1344 1344
 <summary>Bug details: Remove Pageant build info check</summary>
1345 1345
 <p><table id="bug-summary" markdown>
1346 1346
     <tr><th scope=col>Class<td><i>bug</i><td>This is clearly an actual problem we want fixed.
... ...
@@ -272,7 +272,7 @@
272 272
   </label>
273 273
   
274 274
     <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
275
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
276 276
   <div class="md-source__icon md-icon">
277 277
     
278 278
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1332,7 +1332,7 @@
1332 1332
     
1333 1333
       
1334 1334
     
1335
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/wishlist/report-build-flags-and-features.md" title="View source of this page" class="md-content__button md-icon">
1335
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/wishlist/report-build-flags-and-features.md" title="View source of this page" class="md-content__button md-icon">
1336 1336
       
1337 1337
       <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>
1338 1338
     </a>
... ...
@@ -1340,7 +1340,7 @@
1340 1340
 
1341 1341
 
1342 1342
 <h1 id="derivepassphrase-wish-report-build-flags-and-features"><code>derivepassphrase</code> wish report-build-flags-and-features<a class="headerlink" href="#derivepassphrase-wish-report-build-flags-and-features" title="Permanent link">&para;</a></h1>
1343
-<details class="success" open="open">
1343
+<details class="wish-success" open="open">
1344 1344
 <summary>Wish details: <code>derivepassphrase</code> should report its build flags and supported features</summary>
1345 1345
 <p><table id="bug-summary" markdown>
1346 1346
     <tr><th scope=col>Class<td><i>wish</i><td>This is a request for an enhancement.
... ...
@@ -272,7 +272,7 @@
272 272
   </label>
273 273
   
274 274
     <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
275
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
276 276
   <div class="md-source__icon md-icon">
277 277
     
278 278
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1332,7 +1332,7 @@
1332 1332
     
1333 1333
       
1334 1334
     
1335
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/wishlist/scheme-specific-cli-and-config.md" title="View source of this page" class="md-content__button md-icon">
1335
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/wishlist/scheme-specific-cli-and-config.md" title="View source of this page" class="md-content__button md-icon">
1336 1336
       
1337 1337
       <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>
1338 1338
     </a>
... ...
@@ -1340,7 +1340,7 @@
1340 1340
 
1341 1341
 
1342 1342
 <h1 id="derivepassphrase-wish-scheme-specific-cli-and-config"><code>derivepassphrase</code> wish scheme-specific-cli-and-config<a class="headerlink" href="#derivepassphrase-wish-scheme-specific-cli-and-config" title="Permanent link">&para;</a></h1>
1343
-<details class="success" open="open">
1343
+<details class="wish-success" open="open">
1344 1344
 <summary>Wish details: Move <code>vault</code>-specific command-line interface into a separate CLI subcommand and matching configuration file</summary>
1345 1345
 <p><table id="bug-summary" markdown>
1346 1346
     <tr><th scope=col>Class<td><i>wish</i><td>This is a request for an enhancement.
... ...
@@ -272,7 +272,7 @@
272 272
   </label>
273 273
   
274 274
     <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
275
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
276 276
   <div class="md-source__icon md-icon">
277 277
     
278 278
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1332,7 +1332,7 @@
1332 1332
     
1333 1333
       
1334 1334
     
1335
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/wishlist/single-toplevel-module.md" title="View source of this page" class="md-content__button md-icon">
1335
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/wishlist/single-toplevel-module.md" title="View source of this page" class="md-content__button md-icon">
1336 1336
       
1337 1337
       <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>
1338 1338
     </a>
... ...
@@ -1340,7 +1340,7 @@
1340 1340
 
1341 1341
 
1342 1342
 <h1 id="derivepassphrase-bug-single-toplevel-module"><code>derivepassphrase</code> bug single-toplevel-module<a class="headerlink" href="#derivepassphrase-bug-single-toplevel-module" title="Permanent link">&para;</a></h1>
1343
-<details class="success" open="open">
1343
+<details class="bug-success" open="open">
1344 1344
 <summary>Bug details: Move <code>sequin</code> and <code>ssh_agent_client</code> modules into <code>derivepassphrase</code> package</summary>
1345 1345
 <p><table id="bug-summary" markdown>
1346 1346
     <tr><th scope=col>Class<td><i>bug</i><td>This is clearly an actual problem we want fixed.
... ...
@@ -272,7 +272,7 @@
272 272
   </label>
273 273
   
274 274
     <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
275
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
276 276
   <div class="md-source__icon md-icon">
277 277
     
278 278
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1332,7 +1332,7 @@
1332 1332
     
1333 1333
       
1334 1334
     
1335
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/wishlist/test-filesystem-isolation.md" title="View source of this page" class="md-content__button md-icon">
1335
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/wishlist/test-filesystem-isolation.md" title="View source of this page" class="md-content__button md-icon">
1336 1336
       
1337 1337
       <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>
1338 1338
     </a>
... ...
@@ -1340,7 +1340,7 @@
1340 1340
 
1341 1341
 
1342 1342
 <h1 id="derivepassphrase-bug-test-filesystem-isolation"><code>derivepassphrase</code> bug test-filesystem-isolation<a class="headerlink" href="#derivepassphrase-bug-test-filesystem-isolation" title="Permanent link">&para;</a></h1>
1343
-<details class="success" open="open">
1343
+<details class="bug-success" open="open">
1344 1344
 <summary>Bug details: Isolate tests properly from the filesystem</summary>
1345 1345
 <p><table id="bug-summary" markdown>
1346 1346
     <tr><th scope=col>Class<td><i>bug</i><td>This is clearly an actual problem we want fixed.
... ...
@@ -272,7 +272,7 @@
272 272
   </label>
273 273
   
274 274
     <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
275
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
276 276
   <div class="md-source__icon md-icon">
277 277
     
278 278
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1332,7 +1332,7 @@
1332 1332
     
1333 1333
       
1334 1334
     
1335
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/wishlist/test-suite-isolated-ssh-agent.md" title="View source of this page" class="md-content__button md-icon">
1335
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/wishlist/test-suite-isolated-ssh-agent.md" title="View source of this page" class="md-content__button md-icon">
1336 1336
       
1337 1337
       <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>
1338 1338
     </a>
... ...
@@ -1340,7 +1340,7 @@
1340 1340
 
1341 1341
 
1342 1342
 <h1 id="derivepassphrase-wish-test-suite-isolated-ssh-agent"><code>derivepassphrase</code> wish test-suite-isolated-ssh-agent<a class="headerlink" href="#derivepassphrase-wish-test-suite-isolated-ssh-agent" title="Permanent link">&para;</a></h1>
1343
-<details class="success" open="open">
1343
+<details class="wish-success" open="open">
1344 1344
 <summary>Wish details: Support and isolate OpenSSH&apos;s <code>ssh-agent</code> and PuTTY&apos;s <code>pageant</code> in the test suite</summary>
1345 1345
 <p><table id="bug-summary" markdown>
1346 1346
     <tr><th scope=col>Class<td><i>wish</i><td>This is a request for an enhancement.
... ...
@@ -272,7 +272,7 @@
272 272
   </label>
273 273
   
274 274
     <div class="md-nav__source">
275
-      <a href="https://github.com/the-13th-letter/derivepassphrase" title="Go to repository" class="md-source" data-md-component="source">
275
+      <a href="https://git.schokokeks.org/derivepassphrase.git" title="Go to repository" class="md-source" data-md-component="source">
276 276
   <div class="md-source__icon md-icon">
277 277
     
278 278
     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 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>
... ...
@@ -1332,7 +1332,7 @@
1332 1332
     
1333 1333
       
1334 1334
     
1335
-    <a href="https://github.com/the-13th-letter/derivepassphrase/raw/wishlist/windows-ssh-agent-support.md" title="View source of this page" class="md-content__button md-icon">
1335
+    <a href="https://git.schokokeks.org/derivepassphrase.git/raw/wishlist/windows-ssh-agent-support.md" title="View source of this page" class="md-content__button md-icon">
1336 1336
       
1337 1337
       <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>
1338 1338
     </a>
... ...
@@ -1344,9 +1344,9 @@
1344 1344
 <summary>Bug details: Support PuTTY/Pageant (and maybe OpenSSH/<code>ssh-agent</code>) on Windows</summary>
1345 1345
 <p><table id="bug-summary" markdown>
1346 1346
     <tr><th scope=col>Class<td><i>bug</i><td>This is clearly an actual problem we want fixed.
1347
-    <tr><th scope=col>Priority<td><i>medium</i><td>This should be fixed one day.
1347
+    <tr><th scope=col>Priority<td><i>high</i><td>This should be fixed in the next release.
1348 1348
     <tr><th scope=col>Difficulty<td><i>taxing</i><td>Needs external things we don&rsquo;t have: standards, users, et cetera.
1349
-    <tr><th scope=col>Present-in<td colspan=2>0.1.0 0.1.1 0.1.2 0.1.3 <b>0.2.0</b> 0.3.0 0.3.1 0.3.2 0.3.3 0.4.0
1349
+    <tr><th scope=col>Present-in<td colspan=2>0.1.0 0.1.1 0.1.2 0.1.3 <b>0.2.0</b> 0.3.0 0.3.1 0.3.2 0.3.3 0.4.0 0.5 0.5.1
1350 1350
 </table></p>
1351 1351
 </details>
1352 1352
 <p>The SSH agent support in the default “vault” scheme assumes a UNIX host system, where all sensible SSH agent implementations use UNIX domain (<code>AF_UNIX</code>) sockets to connect the SSH client to the SSH agent, and expose the name of the socket in the <code>SSH_AUTH_SOCK</code> environment variable.</p>
... ...
@@ -36,8 +36,56 @@ a.fixed {
36 36
 .md-typeset div.admonition.abstract .emojione,
37 37
 .md-typeset div.admonition.abstract .gemoji,
38 38
 .md-typeset div.admonition.abstract .twemoji,
39
+.md-typeset a[href^="../wishlist/"] .emojione,
40
+.md-typeset a[href^="../wishlist/"] .gemoji,
41
+.md-typeset a[href^="../wishlist/"] .twemoji,
39 42
 .md-typeset a[href^="wishlist/"] .emojione,
40 43
 .md-typeset a[href^="wishlist/"] .gemoji,
41 44
 .md-typeset a[href^="wishlist/"] .twemoji {
42 45
     vertical-align: middle;
43 46
 }
47
+
48
+:root {
49
+    --md-admonition-icon--bug: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14 12h-4v-2h4m0 6h-4v-2h4m6-6h-2.81a6 6 0 0 0-1.82-1.96L17 4.41 15.59 3l-2.17 2.17a6 6 0 0 0-2.83 0L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20z"/></svg>');
50
+    --md-admonition-icon--bug-success: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 7h-2.81c-.45-.8-1.07-1.5-1.82-2L16 3.41 14.59 2l-2.17 2.17a6 6 0 0 0-2.83 0L7.41 2 6 3.41 7.62 5c-.75.5-1.36 1.21-1.81 2H3v2h2.09c-.06.33-.09.66-.09 1v1H3v2h2v1c0 .34.03.67.09 1H3v2h2.81A6 6 0 0 0 13 19.65V19c0-2.54 1.61-4.8 4-5.65V13h2v-2h-2v-1c0-.34-.03-.67-.09-1H19zm-6 8H9v-2h4zm0-4H9V9h4zm4.75 11.16-2.75-3L16.16 18l1.59 1.59L21.34 16l1.16 1.41z"/></svg>');
51
+    --md-admonition-icon--wish: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M23 18h-3v-3h-2v3h-3v2h3v3h2v-3h3M6 2a2 2 0 0 0-2 2v16c0 1.11.89 2 2 2h7.81c-.36-.62-.61-1.3-.73-2H6V4h7v5h5v4.08c.33-.05.67-.08 1-.08.34 0 .67.03 1 .08V8l-6-6M8 12v2h8v-2m-8 4v2h5v-2Z"/></svg>');
52
+    --md-admonition-icon--wish-success: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m23.5 17-5 5-3.5-3.5 1.5-1.5 2 2 3.5-3.5zM6 2a2 2 0 0 0-2 2v16c0 1.11.89 2 2 2h7.81c-.36-.62-.61-1.3-.73-2H6V4h7v5h5v4.08c.33-.05.67-.08 1-.08.34 0 .67.03 1 .08V8l-6-6M8 12v2h8v-2m-8 4v2h5v-2Z"/></svg>');
53
+}
54
+.md-typeset .admonition.wish,
55
+.md-typeset details.wish {
56
+    border-color: #888888;
57
+}
58
+.md-typeset .wish > .admonition-title,
59
+.md-typeset .wish > summary {
60
+    background-color: #8888881a;
61
+}
62
+.md-typeset .wish > .admonition-title::before,
63
+.md-typeset .wish > summary::before {
64
+    background-color: #888888;
65
+    -webkit-mask-image: var(--md-admonition-icon--wish);
66
+            mask-image: var(--md-admonition-icon--wish);
67
+}
68
+.md-typeset .admonition.bug-success,
69
+.md-typeset details.bug-success,
70
+.md-typeset .admonition.wish-success,
71
+.md-typeset details.wish-success {
72
+    border-color: #00c853;
73
+}
74
+.md-typeset .bug-success > .admonition-title,
75
+.md-typeset .bug-success > summary,
76
+.md-typeset .wish-success > .admonition-title,
77
+.md-typeset .wish-success > summary {
78
+    background-color: #00c8531a;
79
+}
80
+.md-typeset .bug-success > .admonition-title::before,
81
+.md-typeset .bug-success > summary::before {
82
+    background-color: #00c853;
83
+    -webkit-mask-image: var(--md-admonition-icon--bug-success);
84
+            mask-image: var(--md-admonition-icon--bug-success);
85
+}
86
+.md-typeset .wish-success > .admonition-title::before,
87
+.md-typeset .wish-success > summary::before {
88
+    background-color: #00c853;
89
+    -webkit-mask-image: var(--md-admonition-icon--wish-success);
90
+            mask-image: var(--md-admonition-icon--wish-success);
91
+}
44 92