Skip to content

Commit debe3c0

Browse files
refactor greeter.py into functions
1 parent 9675ecf commit debe3c0

File tree

1 file changed

+35
-23
lines changed

1 file changed

+35
-23
lines changed

ch04packaging/02Argparse.ipynb

Lines changed: 35 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,16 @@
1616
},
1717
{
1818
"cell_type": "code",
19-
"execution_count": 1,
19+
"execution_count": 7,
2020
"metadata": {
2121
"collapsed": false
2222
},
2323
"outputs": [
2424
{
25-
"name": "stdout",
2625
"output_type": "stream",
26+
"name": "stdout",
2727
"text": [
28-
"Writing greeter.py\n"
28+
"Overwriting greeter.py\n"
2929
]
3030
}
3131
],
@@ -34,19 +34,26 @@
3434
"#!/usr/bin/env python\n",
3535
"from argparse import ArgumentParser\n",
3636
"\n",
37-
"if __name__ == \"__main__\":\n",
37+
"def parse_arguments(): \n",
3838
" parser = ArgumentParser(description=\"Generate appropriate greetings\")\n",
3939
" parser.add_argument('--title', '-t')\n",
4040
" parser.add_argument('--polite','-p', action=\"store_true\")\n",
4141
" parser.add_argument('personal')\n",
4242
" parser.add_argument('family')\n",
4343
" arguments= parser.parse_args()\n",
44-
" \n",
44+
" return arguments\n",
45+
"\n",
46+
"def greet(arguments):\n",
4547
" greeting = \"How do you do, \" if arguments.polite else \"Hey, \"\n",
4648
" if arguments.title:\n",
4749
" greeting += f\"{arguments.title} \"\n",
4850
" greeting += f\"{arguments.personal} {arguments.family}.\"\n",
49-
" print(greeting)\n"
51+
" print(greeting)\n",
52+
"\n",
53+
"\n",
54+
"if __name__ == \"__main__\":\n",
55+
" arguments = parse_arguments()\n",
56+
" greet(arguments)"
5057
]
5158
},
5259
{
@@ -58,7 +65,7 @@
5865
},
5966
{
6067
"cell_type": "code",
61-
"execution_count": 2,
68+
"execution_count": 3,
6269
"metadata": {
6370
"collapsed": true
6471
},
@@ -77,27 +84,32 @@
7784
},
7885
{
7986
"cell_type": "code",
80-
"execution_count": 3,
87+
"execution_count": 10,
8188
"metadata": {
8289
"collapsed": false
8390
},
8491
"outputs": [
8592
{
86-
"name": "stdout",
8793
"output_type": "stream",
94+
"name": "stderr",
8895
"text": [
89-
"usage: greeter.py [-h] [--title TITLE] [--polite] personal family\n",
90-
"\n",
91-
"Generate appropriate greetings\n",
92-
"\n",
93-
"positional arguments:\n",
94-
" personal\n",
95-
" family\n",
96-
"\n",
97-
"optional arguments:\n",
98-
" -h, --help show this help message and exit\n",
99-
" --title TITLE, -t TITLE\n",
100-
" --polite, -p\n"
96+
"': No such file or directory\n"
97+
]
98+
},
99+
{
100+
"output_type": "error",
101+
"ename": "CalledProcessError",
102+
"evalue": "Command 'b'./greeter.py --help\\n'' returned non-zero exit status 127.",
103+
"traceback": [
104+
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
105+
"\u001b[1;31mCalledProcessError\u001b[0m Traceback (most recent call last)",
106+
"\u001b[1;32m<ipython-input-10-1ccc774e4e21>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mget_ipython\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrun_cell_magic\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'bash'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m''\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'./greeter.py --help\\n'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
107+
"\u001b[1;32m~\\anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\u001b[0m in \u001b[0;36mrun_cell_magic\u001b[1;34m(self, magic_name, line, cell)\u001b[0m\n\u001b[0;32m 2369\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbuiltin_trap\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2370\u001b[0m \u001b[0margs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mmagic_arg_s\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcell\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 2371\u001b[1;33m \u001b[0mresult\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mfn\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2372\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mresult\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2373\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
108+
"\u001b[1;32m~\\anaconda3\\lib\\site-packages\\IPython\\core\\magics\\script.py\u001b[0m in \u001b[0;36mnamed_script_magic\u001b[1;34m(line, cell)\u001b[0m\n\u001b[0;32m 140\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 141\u001b[0m \u001b[0mline\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mscript\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 142\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshebang\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mline\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcell\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 143\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 144\u001b[0m \u001b[1;31m# write a basic docstring:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
109+
"\u001b[1;32m<decorator-gen-111>\u001b[0m in \u001b[0;36mshebang\u001b[1;34m(self, line, cell)\u001b[0m\n",
110+
"\u001b[1;32m~\\anaconda3\\lib\\site-packages\\IPython\\core\\magic.py\u001b[0m in \u001b[0;36m<lambda>\u001b[1;34m(f, *a, **k)\u001b[0m\n\u001b[0;32m 185\u001b[0m \u001b[1;31m# but it's overkill for just that one bit of state.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 186\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mmagic_deco\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0marg\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 187\u001b[1;33m \u001b[0mcall\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mlambda\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mk\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0ma\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mk\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 188\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 189\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mcallable\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0marg\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
111+
"\u001b[1;32m~\\anaconda3\\lib\\site-packages\\IPython\\core\\magics\\script.py\u001b[0m in \u001b[0;36mshebang\u001b[1;34m(self, line, cell)\u001b[0m\n\u001b[0;32m 243\u001b[0m \u001b[0msys\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstderr\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mflush\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 244\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0margs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mraise_error\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreturncode\u001b[0m\u001b[1;33m!=\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 245\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mCalledProcessError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreturncode\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcell\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0moutput\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mout\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mstderr\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0merr\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 246\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 247\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_run_script\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mp\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcell\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mto_close\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
112+
"\u001b[1;31mCalledProcessError\u001b[0m: Command 'b'./greeter.py --help\\n'' returned non-zero exit status 127."
101113
]
102114
}
103115
],
@@ -204,7 +216,7 @@
204216
"name": "python",
205217
"nbconvert_exporter": "python",
206218
"pygments_lexer": "ipython3",
207-
"version": "3.5.2"
219+
"version": "3.8.3-final"
208220
},
209221
"widgets": {
210222
"state": {},
@@ -213,4 +225,4 @@
213225
},
214226
"nbformat": 4,
215227
"nbformat_minor": 1
216-
}
228+
}

0 commit comments

Comments
 (0)