summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2012-07-16 06:53:32 (GMT)
committerRaymond Hettinger <python@rcn.com>2012-07-16 06:53:32 (GMT)
commitb2269baca3da855179c927a87f0703ec6b447f7e (patch)
treea004e408ae21d85417f9915acdf24098bf1fb22f
parent4866266bf41e6727502b56c00adab18a4b37d9c1 (diff)
downloadcpython-b2269baca3da855179c927a87f0703ec6b447f7e.zip
cpython-b2269baca3da855179c927a87f0703ec6b447f7e.tar.gz
cpython-b2269baca3da855179c927a87f0703ec6b447f7e.tar.bz2
Clean-up example
-rw-r--r--Doc/library/collections.rst16
1 files changed, 11 insertions, 5 deletions
diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst
index 3c1a8bf..c15885e 100644
--- a/Doc/library/collections.rst
+++ b/Doc/library/collections.rst
@@ -130,16 +130,22 @@ Example of simulating Python's internal lookup chain::
import builtins
pylookup = ChainMap(locals(), globals(), vars(builtins))
-Example of letting user specified values take precedence over environment
-variables which in turn take precedence over default values::
+Example of letting user specified command-line arguments take precedence over
+environment variables which in turn take precedence over default values::
import os, argparse
- defaults = {'color': 'red', 'user': guest}
+
+ defaults = {'color': 'red', 'user': 'guest'}
+
parser = argparse.ArgumentParser()
parser.add_argument('-u', '--user')
parser.add_argument('-c', '--color')
- user_specified = vars(parser.parse_args())
- combined = ChainMap(user_specified, os.environ, defaults)
+ namespace = parser.parse_args()
+ command_line_args = {k:v for k, v in vars(namespace).items() if v}
+
+ combined = ChainMap(command_line_args, os.environ, defaults)
+ print(combined['color'])
+ print(combined['user'])
Example patterns for using the :class:`ChainMap` class to simulate nested
contexts::