summaryrefslogtreecommitdiff
path: root/doc/source/other-utilities.rst
diff options
context:
space:
mode:
Diffstat (limited to 'doc/source/other-utilities.rst')
-rw-r--r--doc/source/other-utilities.rst21
1 files changed, 21 insertions, 0 deletions
diff --git a/doc/source/other-utilities.rst b/doc/source/other-utilities.rst
new file mode 100644
index 0000000..9fd9d61
--- /dev/null
+++ b/doc/source/other-utilities.rst
@@ -0,0 +1,21 @@
+Other utilities
+===============
+
+FileType objects
+----------------
+
+.. class:: FileType(mode='r', bufsize=None)
+
+ The :class:`FileType` factory creates objects that can be passed to the type argument of :meth:`add_argument`. Arguments that have :class:`FileType` objects as their type will open command-line args as files with the requested modes and buffer sizes:
+
+ >>> parser = argparse.ArgumentParser()
+ >>> parser.add_argument('--output', type=argparse.FileType('wb', 0))
+ >>> parser.parse_args(['--output', 'out'])
+ Namespace(output=<open file 'out', mode 'wb' at 0x013A2380>)
+
+ FileType objects understand the pseudo-argument ``'-'`` and automatically convert this into ``sys.stdin`` for readable :class:`FileType` objects and ``sys.stdout`` for writable :class:`FileType` objects:
+
+ >>> parser = argparse.ArgumentParser()
+ >>> parser.add_argument('infile', type=argparse.FileType('r'))
+ >>> parser.parse_args(['-'])
+ Namespace(infile=<open file '<stdin>', mode 'r' at 0x00ADF020>)