Skip to content

Commit 07d964c

Browse files
committed
chore: release v3.2.0
1 parent 50ff268 commit 07d964c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+614
-2912
lines changed

README.md

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -113,15 +113,15 @@ Python 3.7 or higher is required.
113113

114114
To install only `awsrun`:
115115

116-
$ pip install "awsrun[aws]"
116+
pip install "awsrun[aws]"
117117

118118
To install only `azurerun`:
119119

120-
$ pip install "awsrun[azure]"
120+
pip install "awsrun[azure]"
121121

122122
To install both `awsrun` and `azurerun`:
123123

124-
$ pip install "awsrun[aws,azure]"
124+
pip install "awsrun[aws,azure]"
125125

126126
In all cases, the console scripts `awsrun` and `azurerun` are installed, but
127127
only the dependencies for the specified CSPs are installed.
@@ -130,13 +130,13 @@ Some of the bundled commands have additional dependencies. You will be prompted
130130
to install those if you use one of them. Alternatively, you can install all of
131131
those ahead of time:
132132

133-
$ pip install "awsrun[cmds]"
133+
pip install "awsrun[cmds]"
134134

135135
Finally, to install from source with the development dependencies:
136136

137-
$ git clone https://github.com/fidelity/awsrun.git
138-
$ cd awsrun
139-
$ pip install -e ".[aws,azure,cmds,dev]"
137+
git clone https://github.com/fidelity/awsrun.git
138+
cd awsrun
139+
pip install -e ".[aws,azure,cmds,dev]"
140140

141141
## AWS Quick Start
142142

@@ -313,6 +313,21 @@ includes the following:
313313

314314
## Change Log
315315

316+
### v3.2.0
317+
318+
- Add optional `pre_hook_with_context` method to the `Command` base class,
319+
which takes a single parameter called `context`. The value of that parameter
320+
is provided by the caller of `AccountRunner.run`. In the case of the awsrun
321+
CLI commands, that context is an instance of `awsrun.cli.Context`, which
322+
provides command authors access to the account loader and session provider
323+
plug-ins as well as the full list of accounts being processed. For example,
324+
this would allow you to write a command that performs a VPC peering. While
325+
processing the account from which the peering is initiated, you can now
326+
obtain credentials for the other account to accept the request by using the
327+
session provider.
328+
329+
- Update the license to Apache 2.0.
330+
316331
### v3.1.0
317332

318333
- Add `URLAccountLoader` plug-in which supports HTTP authentication (basic,

docs/acctload.html

Lines changed: 5 additions & 205 deletions
Large diffs are not rendered by default.

docs/argparse.html

Lines changed: 5 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
<head>
44
<meta charset="utf-8">
55
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
6-
<meta name="generator" content="pdoc 0.10.0" />
6+
<meta name="generator" content="pdoc 0.11.1" />
77
<title>awsrun.argparse API documentation</title>
88
<meta name="description" content="Provides additional actions and formatters for the builtin argparse module." />
99
<link href='https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.0/normalize.min.css' rel='stylesheet'>
1010
<link href='https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/8.0.0/sanitize.min.css' rel='stylesheet'>
1111
<link href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-light.min.css" rel="stylesheet">
12-
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;margin:25px 0 10px 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;font-size:.8em;line-height:1.4em}code{background:#f2f2f1;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0;padding:1ex}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-weight:bold;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em .5em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
13-
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style>
12+
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
13+
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
1414
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
1515
<!-- <link href="/awsrun/webfonts.css" rel="stylesheet"> -->
1616
<link rel="preconnect" href="https://fonts.googleapis.com">
@@ -291,42 +291,6 @@ <h2 class="section-title" id="header-functions">Functions</h2>
291291
&gt;&gt;&gt; [f(s) for s in ['yes', 'no', 'true', 'false']]
292292
[True, False, True, False]
293293
</code></pre></section>
294-
<details class="source">
295-
<summary>
296-
<span>Expand source code</span>
297-
</summary>
298-
<pre><code class="python">def from_str_to(type_):
299-
&#34;&#34;&#34;Return a cast function to convert a string to a builtin type.
300-
301-
The `type` parameter is the name of the type as a string. Returns the
302-
builtin Python cast function if `type` is &#34;str&#34;, &#34;int&#34;, or &#34;float&#34;. If
303-
`type` is &#34;bool&#34;, the returned cast function will return `True` for the
304-
values &#34;y&#34;, &#34;yes&#34;, &#34;true&#34;, and &#34;1&#34; (case insensitive), otherwise it will
305-
return `False`. For any other `type` specified, the builtin `str`
306-
function is returned.
307-
308-
&gt;&gt;&gt; f = from_str_to(&#34;str&#34;)
309-
&gt;&gt;&gt; f(&#34;hello&#34;)
310-
&#34;hello&#34;
311-
312-
&gt;&gt;&gt; f = from_str_to(&#34;int&#34;)
313-
&gt;&gt;&gt; f(&#34;10&#34;)
314-
10
315-
316-
&gt;&gt;&gt; f = from_str_to(&#34;float&#34;)
317-
&gt;&gt;&gt; f(&#34;10&#34;)
318-
10.0
319-
320-
&gt;&gt;&gt; f = from_str_to(&#34;bool&#34;)
321-
&gt;&gt;&gt; [f(s) for s in [&#39;yes&#39;, &#39;no&#39;, &#39;true&#39;, &#39;false&#39;]]
322-
[True, False, True, False]
323-
&#34;&#34;&#34;
324-
if type_ in (&#34;str&#34;, &#34;int&#34;, &#34;float&#34;):
325-
return getattr(builtins, type_)
326-
if type_ == &#34;bool&#34;:
327-
return lambda s: s.lower() in (&#34;y&#34;, &#34;yes&#34;, &#34;true&#34;, &#34;True&#34;, &#34;1&#34;)
328-
return str</code></pre>
329-
</details>
330294
</dd>
331295
</dl>
332296
</section>
@@ -609,9 +573,9 @@ <h4><code><a title="awsrun.argparse.AppendAttributeValuePair" href="#awsrun.argp
609573
</nav>
610574
</main>
611575
<footer id="footer">
612-
<p>Generated by <a href="https://pdoc3.github.io/pdoc"><cite>pdoc</cite> 0.10.0</a>.</p>
576+
<p>Generated by <a href="https://pdoc3.github.io/pdoc"><cite>pdoc</cite> 0.11.1</a>.</p>
613577
</footer>
614578
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
615579
<script>hljs.initHighlightingOnLoad()</script>
616580
</body>
617-
</html>
581+
</html>

0 commit comments

Comments
 (0)