summary refs log tree commit diff stats
path: root/doc/pydoc/os.html
diff options
context:
space:
mode:
authorhut <hut@lavabit.com>2010-02-16 01:56:21 +0100
committerhut <hut@lavabit.com>2010-02-16 02:03:46 +0100
commit34a60763e79546e0f84e30fbcc430632f3dbb39e (patch)
tree595579022daa922b3e4945928b4478c0797b3b2c /doc/pydoc/os.html
parent0654d6d093f8e78033b9dcafcb52bbdcd92aed0c (diff)
downloadranger-34a60763e79546e0f84e30fbcc430632f3dbb39e.tar.gz
incremented version number and updated pydoc html files v1.0.3
Diffstat (limited to 'doc/pydoc/os.html')
-rw-r--r--doc/pydoc/os.html149
1 files changed, 95 insertions, 54 deletions
diff --git a/doc/pydoc/os.html b/doc/pydoc/os.html
index 9d1b6771..b0b2b308 100644
--- a/doc/pydoc/os.html
+++ b/doc/pydoc/os.html
@@ -1,6 +1,6 @@
+
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <html><head><title>Python: module os</title>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 </head><body bgcolor="#f0f0f8">
 
 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
@@ -8,17 +8,17 @@
 <td valign=bottom>&nbsp;<br>
 <font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong>os</strong></big></big></font></td
 ><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/usr/lib/python3.1/os.py">/usr/lib/python3.1/os.py</a><br><a href="http://docs.python.org/library/os">Module Docs</a></font></td></tr></table>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/usr/lib/python2.6/os.py">/usr/lib/python2.6/os.py</a><br><a href="http://docs.python.org/library/os">Module Docs</a></font></td></tr></table>
     <p><tt>OS&nbsp;routines&nbsp;for&nbsp;Mac,&nbsp;NT,&nbsp;or&nbsp;Posix&nbsp;depending&nbsp;on&nbsp;what&nbsp;system&nbsp;we're&nbsp;on.<br>
 &nbsp;<br>
 This&nbsp;exports:<br>
 &nbsp;&nbsp;-&nbsp;all&nbsp;functions&nbsp;from&nbsp;posix,&nbsp;nt,&nbsp;os2,&nbsp;or&nbsp;ce,&nbsp;e.g.&nbsp;unlink,&nbsp;stat,&nbsp;etc.<br>
-&nbsp;&nbsp;-&nbsp;os.path&nbsp;is&nbsp;either&nbsp;posixpath&nbsp;or&nbsp;ntpath<br>
-&nbsp;&nbsp;-&nbsp;os.name&nbsp;is&nbsp;either&nbsp;'posix',&nbsp;'nt',&nbsp;'os2'&nbsp;or&nbsp;'ce'.<br>
+&nbsp;&nbsp;-&nbsp;os.path&nbsp;is&nbsp;one&nbsp;of&nbsp;the&nbsp;modules&nbsp;posixpath,&nbsp;or&nbsp;ntpath<br>
+&nbsp;&nbsp;-&nbsp;os.name&nbsp;is&nbsp;'posix',&nbsp;'nt',&nbsp;'os2',&nbsp;'ce'&nbsp;or&nbsp;'riscos'<br>
 &nbsp;&nbsp;-&nbsp;os.curdir&nbsp;is&nbsp;a&nbsp;string&nbsp;representing&nbsp;the&nbsp;current&nbsp;directory&nbsp;('.'&nbsp;or&nbsp;':')<br>
 &nbsp;&nbsp;-&nbsp;os.pardir&nbsp;is&nbsp;a&nbsp;string&nbsp;representing&nbsp;the&nbsp;parent&nbsp;directory&nbsp;('..'&nbsp;or&nbsp;'::')<br>
 &nbsp;&nbsp;-&nbsp;os.sep&nbsp;is&nbsp;the&nbsp;(or&nbsp;a&nbsp;most&nbsp;common)&nbsp;pathname&nbsp;separator&nbsp;('/'&nbsp;or&nbsp;':'&nbsp;or&nbsp;'\\')<br>
-&nbsp;&nbsp;-&nbsp;os.extsep&nbsp;is&nbsp;the&nbsp;extension&nbsp;separator&nbsp;(always&nbsp;'.')<br>
+&nbsp;&nbsp;-&nbsp;os.extsep&nbsp;is&nbsp;the&nbsp;extension&nbsp;separator&nbsp;('.'&nbsp;or&nbsp;'/')<br>
 &nbsp;&nbsp;-&nbsp;os.altsep&nbsp;is&nbsp;the&nbsp;alternate&nbsp;pathname&nbsp;separator&nbsp;(None&nbsp;or&nbsp;'/')<br>
 &nbsp;&nbsp;-&nbsp;os.pathsep&nbsp;is&nbsp;the&nbsp;component&nbsp;separator&nbsp;used&nbsp;in&nbsp;$PATH&nbsp;etc<br>
 &nbsp;&nbsp;-&nbsp;os.linesep&nbsp;is&nbsp;the&nbsp;line&nbsp;separator&nbsp;in&nbsp;text&nbsp;files&nbsp;('\r'&nbsp;or&nbsp;'\n'&nbsp;or&nbsp;'\r\n')<br>
@@ -37,11 +37,12 @@ and&nbsp;opendir),&nbsp;and&nbsp;leave&nbsp;all&nbsp;pathname&nbsp;manipulation&
 <font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
     
 <tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="copyreg.html">copyreg</a><br>
+<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="UserDict.html">UserDict</a><br>
+<a href="copy_reg.html">copy_reg</a><br>
 </td><td width="25%" valign=top><a href="errno.html">errno</a><br>
-</td><td width="25%" valign=top><a href="posixpath.html">posixpath</a><br>
+<a href="posixpath.html">posixpath</a><br>
 </td><td width="25%" valign=top><a href="sys.html">sys</a><br>
-</td></tr></table></td></tr></table><p>
+</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
 <tr bgcolor="#ee77aa">
 <td colspan=3 valign=bottom>&nbsp;<br>
@@ -49,17 +50,17 @@ and&nbsp;opendir),&nbsp;and&nbsp;leave&nbsp;all&nbsp;pathname&nbsp;manipulation&
     
 <tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
 <td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="builtins.html#EnvironmentError">builtins.EnvironmentError</a>(<a href="builtins.html#Exception">builtins.Exception</a>)
+<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
 </font></dt><dd>
 <dl>
-<dt><font face="helvetica, arial"><a href="builtins.html#OSError">builtins.OSError</a>
+<dt><font face="helvetica, arial"><a href="posix.html#stat_result">posix.stat_result</a>
+</font></dt><dt><font face="helvetica, arial"><a href="posix.html#statvfs_result">posix.statvfs_result</a>
 </font></dt></dl>
 </dd>
-<dt><font face="helvetica, arial"><a href="builtins.html#object">builtins.object</a>
+<dt><font face="helvetica, arial"><a href="exceptions.html#EnvironmentError">exceptions.EnvironmentError</a>(<a href="exceptions.html#StandardError">exceptions.StandardError</a>)
 </font></dt><dd>
 <dl>
-<dt><font face="helvetica, arial"><a href="posix.html#stat_result">posix.stat_result</a>
-</font></dt><dt><font face="helvetica, arial"><a href="posix.html#statvfs_result">posix.statvfs_result</a>
+<dt><font face="helvetica, arial"><a href="exceptions.html#OSError">exceptions.OSError</a>
 </font></dt></dl>
 </dd>
 </dl>
@@ -67,17 +68,18 @@ and&nbsp;opendir),&nbsp;and&nbsp;leave&nbsp;all&nbsp;pathname&nbsp;manipulation&
 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
 <tr bgcolor="#ffc8d8">
 <td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><strong>error</strong> = <a name="error">class OSError</a>(<a href="builtins.html#EnvironmentError">EnvironmentError</a>)</font></td></tr>
+<font color="#000000" face="helvetica, arial"><strong>error</strong> = <a name="error">class OSError</a>(<a href="exceptions.html#EnvironmentError">EnvironmentError</a>)</font></td></tr>
     
 <tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
 <td colspan=2><tt>OS&nbsp;system&nbsp;call&nbsp;failed.<br>&nbsp;</tt></td></tr>
 <tr><td>&nbsp;</td>
 <td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="builtins.html#OSError">OSError</a></dd>
-<dd><a href="builtins.html#EnvironmentError">EnvironmentError</a></dd>
-<dd><a href="builtins.html#Exception">Exception</a></dd>
-<dd><a href="builtins.html#BaseException">BaseException</a></dd>
-<dd><a href="builtins.html#object">object</a></dd>
+<dd><a href="exceptions.html#OSError">OSError</a></dd>
+<dd><a href="exceptions.html#EnvironmentError">EnvironmentError</a></dd>
+<dd><a href="exceptions.html#StandardError">StandardError</a></dd>
+<dd><a href="exceptions.html#Exception">Exception</a></dd>
+<dd><a href="exceptions.html#BaseException">BaseException</a></dd>
+<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
 </dl>
 <hr>
 Methods defined here:<br>
@@ -85,16 +87,16 @@ Methods defined here:<br>
 
 <hr>
 Data and other attributes defined here:<br>
-<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object at 0x7f6a9223efc0&gt;<dd><tt>T.<a href="#error-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;<a href="builtins.html#object">object</a>&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
+<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object at 0x7fdbe7034f80&gt;<dd><tt>T.<a href="#error-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
 
 <hr>
-Methods inherited from <a href="builtins.html#EnvironmentError">EnvironmentError</a>:<br>
+Methods inherited from <a href="exceptions.html#EnvironmentError">EnvironmentError</a>:<br>
 <dl><dt><a name="OSError-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>
 
 <dl><dt><a name="OSError-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#error-__str__">__str__</a>()&nbsp;&lt;==&gt;&nbsp;str(x)</tt></dd></dl>
 
 <hr>
-Data descriptors inherited from <a href="builtins.html#EnvironmentError">EnvironmentError</a>:<br>
+Data descriptors inherited from <a href="exceptions.html#EnvironmentError">EnvironmentError</a>:<br>
 <dl><dt><strong>errno</strong></dt>
 <dd><tt>exception&nbsp;errno</tt></dd>
 </dl>
@@ -105,44 +107,43 @@ Data descriptors inherited from <a href="builtins.html#EnvironmentError">Environ
 <dd><tt>exception&nbsp;strerror</tt></dd>
 </dl>
 <hr>
-Methods inherited from <a href="builtins.html#BaseException">BaseException</a>:<br>
+Methods inherited from <a href="exceptions.html#BaseException">BaseException</a>:<br>
 <dl><dt><a name="OSError-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#error-__delattr__">__delattr__</a>('name')&nbsp;&lt;==&gt;&nbsp;del&nbsp;x.name</tt></dd></dl>
 
 <dl><dt><a name="OSError-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#error-__getattribute__">__getattribute__</a>('name')&nbsp;&lt;==&gt;&nbsp;x.name</tt></dd></dl>
 
+<dl><dt><a name="OSError-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#error-__getitem__">__getitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;x[y]</tt></dd></dl>
+
+<dl><dt><a name="OSError-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#error-__getslice__">__getslice__</a>(i,&nbsp;j)&nbsp;&lt;==&gt;&nbsp;x[i:j]<br>
+&nbsp;<br>
+Use&nbsp;of&nbsp;negative&nbsp;indices&nbsp;is&nbsp;not&nbsp;supported.</tt></dd></dl>
+
 <dl><dt><a name="OSError-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#error-__repr__">__repr__</a>()&nbsp;&lt;==&gt;&nbsp;repr(x)</tt></dd></dl>
 
 <dl><dt><a name="OSError-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#error-__setattr__">__setattr__</a>('name',&nbsp;value)&nbsp;&lt;==&gt;&nbsp;x.name&nbsp;=&nbsp;value</tt></dd></dl>
 
 <dl><dt><a name="OSError-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>
 
-<dl><dt><a name="OSError-with_traceback"><strong>with_traceback</strong></a>(...)</dt><dd><tt>Exception.<a href="#error-with_traceback">with_traceback</a>(tb)&nbsp;--<br>
-set&nbsp;self.<strong>__traceback__</strong>&nbsp;to&nbsp;tb&nbsp;and&nbsp;return&nbsp;self.</tt></dd></dl>
+<dl><dt><a name="OSError-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>
 
 <hr>
-Data descriptors inherited from <a href="builtins.html#BaseException">BaseException</a>:<br>
-<dl><dt><strong>__cause__</strong></dt>
-<dd><tt>exception&nbsp;cause</tt></dd>
-</dl>
-<dl><dt><strong>__context__</strong></dt>
-<dd><tt>exception&nbsp;context</tt></dd>
-</dl>
+Data descriptors inherited from <a href="exceptions.html#BaseException">BaseException</a>:<br>
 <dl><dt><strong>__dict__</strong></dt>
 </dl>
-<dl><dt><strong>__traceback__</strong></dt>
-</dl>
 <dl><dt><strong>args</strong></dt>
 </dl>
+<dl><dt><strong>message</strong></dt>
+</dl>
 </td></tr></table> <p>
 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
 <tr bgcolor="#ffc8d8">
 <td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="stat_result">class <strong>stat_result</strong></a>(<a href="builtins.html#object">builtins.object</a>)</font></td></tr>
+<font color="#000000" face="helvetica, arial"><a name="stat_result">class <strong>stat_result</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
     
 <tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
 <td colspan=2><tt><a href="#stat_result">stat_result</a>:&nbsp;Result&nbsp;from&nbsp;stat&nbsp;or&nbsp;lstat.<br>
 &nbsp;<br>
-This&nbsp;<a href="builtins.html#object">object</a>&nbsp;may&nbsp;be&nbsp;accessed&nbsp;either&nbsp;as&nbsp;a&nbsp;tuple&nbsp;of<br>
+This&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;may&nbsp;be&nbsp;accessed&nbsp;either&nbsp;as&nbsp;a&nbsp;tuple&nbsp;of<br>
 &nbsp;&nbsp;(mode,&nbsp;ino,&nbsp;dev,&nbsp;nlink,&nbsp;uid,&nbsp;gid,&nbsp;size,&nbsp;atime,&nbsp;mtime,&nbsp;ctime)<br>
 or&nbsp;via&nbsp;the&nbsp;attributes&nbsp;st_mode,&nbsp;st_ino,&nbsp;st_dev,&nbsp;st_nlink,&nbsp;st_uid,&nbsp;and&nbsp;so&nbsp;on.<br>
 &nbsp;<br>
@@ -162,6 +163,10 @@ See&nbsp;os.stat&nbsp;for&nbsp;more&nbsp;information.<br>&nbsp;</tt></td></tr>
 
 <dl><dt><a name="stat_result-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#stat_result-__getitem__">__getitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;x[y]</tt></dd></dl>
 
+<dl><dt><a name="stat_result-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#stat_result-__getslice__">__getslice__</a>(i,&nbsp;j)&nbsp;&lt;==&gt;&nbsp;x[i:j]<br>
+&nbsp;<br>
+Use&nbsp;of&nbsp;negative&nbsp;indices&nbsp;is&nbsp;not&nbsp;supported.</tt></dd></dl>
+
 <dl><dt><a name="stat_result-__gt__"><strong>__gt__</strong></a>(...)</dt><dd><tt>x.<a href="#stat_result-__gt__">__gt__</a>(y)&nbsp;&lt;==&gt;&nbsp;x&gt;y</tt></dd></dl>
 
 <dl><dt><a name="stat_result-__hash__"><strong>__hash__</strong></a>(...)</dt><dd><tt>x.<a href="#stat_result-__hash__">__hash__</a>()&nbsp;&lt;==&gt;&nbsp;hash(x)</tt></dd></dl>
@@ -225,7 +230,7 @@ Data descriptors defined here:<br>
 </dl>
 <hr>
 Data and other attributes defined here:<br>
-<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object at 0x7f6a92292840&gt;<dd><tt>T.<a href="#stat_result-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;<a href="builtins.html#object">object</a>&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
+<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object at 0x7fdbe7073800&gt;<dd><tt>T.<a href="#stat_result-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
 
 <dl><dt><strong>n_fields</strong> = 16</dl>
 
@@ -237,12 +242,12 @@ Data and other attributes defined here:<br>
 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
 <tr bgcolor="#ffc8d8">
 <td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="statvfs_result">class <strong>statvfs_result</strong></a>(<a href="builtins.html#object">builtins.object</a>)</font></td></tr>
+<font color="#000000" face="helvetica, arial"><a name="statvfs_result">class <strong>statvfs_result</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
     
 <tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
 <td colspan=2><tt><a href="#statvfs_result">statvfs_result</a>:&nbsp;Result&nbsp;from&nbsp;statvfs&nbsp;or&nbsp;fstatvfs.<br>
 &nbsp;<br>
-This&nbsp;<a href="builtins.html#object">object</a>&nbsp;may&nbsp;be&nbsp;accessed&nbsp;either&nbsp;as&nbsp;a&nbsp;tuple&nbsp;of<br>
+This&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;may&nbsp;be&nbsp;accessed&nbsp;either&nbsp;as&nbsp;a&nbsp;tuple&nbsp;of<br>
 &nbsp;&nbsp;(bsize,&nbsp;frsize,&nbsp;blocks,&nbsp;bfree,&nbsp;bavail,&nbsp;files,&nbsp;ffree,&nbsp;favail,&nbsp;flag,&nbsp;namemax),<br>
 or&nbsp;via&nbsp;the&nbsp;attributes&nbsp;f_bsize,&nbsp;f_frsize,&nbsp;f_blocks,&nbsp;f_bfree,&nbsp;and&nbsp;so&nbsp;on.<br>
 &nbsp;<br>
@@ -259,6 +264,10 @@ See&nbsp;os.statvfs&nbsp;for&nbsp;more&nbsp;information.<br>&nbsp;</tt></td></tr
 
 <dl><dt><a name="statvfs_result-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#statvfs_result-__getitem__">__getitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;x[y]</tt></dd></dl>
 
+<dl><dt><a name="statvfs_result-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#statvfs_result-__getslice__">__getslice__</a>(i,&nbsp;j)&nbsp;&lt;==&gt;&nbsp;x[i:j]<br>
+&nbsp;<br>
+Use&nbsp;of&nbsp;negative&nbsp;indices&nbsp;is&nbsp;not&nbsp;supported.</tt></dd></dl>
+
 <dl><dt><a name="statvfs_result-__gt__"><strong>__gt__</strong></a>(...)</dt><dd><tt>x.<a href="#statvfs_result-__gt__">__gt__</a>(y)&nbsp;&lt;==&gt;&nbsp;x&gt;y</tt></dd></dl>
 
 <dl><dt><a name="statvfs_result-__hash__"><strong>__hash__</strong></a>(...)</dt><dd><tt>x.<a href="#statvfs_result-__hash__">__hash__</a>()&nbsp;&lt;==&gt;&nbsp;hash(x)</tt></dd></dl>
@@ -303,7 +312,7 @@ Data descriptors defined here:<br>
 </dl>
 <hr>
 Data and other attributes defined here:<br>
-<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object at 0x7f6a922929e0&gt;<dd><tt>T.<a href="#statvfs_result-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;<a href="builtins.html#object">object</a>&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
+<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object at 0x7fdbe70739a0&gt;<dd><tt>T.<a href="#statvfs_result-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
 
 <dl><dt><strong>n_fields</strong> = 10</dl>
 
@@ -381,10 +390,6 @@ Return&nbsp;a&nbsp;string-valued&nbsp;system&nbsp;configuration&nbsp;variable.</
  <dl><dt><a name="-ctermid"><strong>ctermid</strong></a>(...)</dt><dd><tt><a href="#-ctermid">ctermid</a>()&nbsp;-&gt;&nbsp;string<br>
 &nbsp;<br>
 Return&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;controlling&nbsp;terminal&nbsp;for&nbsp;this&nbsp;process.</tt></dd></dl>
- <dl><dt><a name="-device_encoding"><strong>device_encoding</strong></a>(...)</dt><dd><tt><a href="#-device_encoding">device_encoding</a>(fd)&nbsp;-&gt;&nbsp;str<br>
-&nbsp;<br>
-Return&nbsp;a&nbsp;string&nbsp;describing&nbsp;the&nbsp;encoding&nbsp;of&nbsp;the&nbsp;device<br>
-if&nbsp;the&nbsp;output&nbsp;is&nbsp;a&nbsp;terminal;&nbsp;else&nbsp;return&nbsp;None.</tt></dd></dl>
  <dl><dt><a name="-dup"><strong>dup</strong></a>(...)</dt><dd><tt><a href="#-dup">dup</a>(fd)&nbsp;-&gt;&nbsp;fd2<br>
 &nbsp;<br>
 Return&nbsp;a&nbsp;duplicate&nbsp;of&nbsp;a&nbsp;file&nbsp;descriptor.</tt></dd></dl>
@@ -448,6 +453,9 @@ fd&nbsp;to&nbsp;the&nbsp;numeric&nbsp;uid&nbsp;and&nbsp;gid.</tt></dd></dl>
 &nbsp;<br>
 force&nbsp;write&nbsp;of&nbsp;file&nbsp;with&nbsp;filedescriptor&nbsp;to&nbsp;disk.<br>
 &nbsp;does&nbsp;not&nbsp;force&nbsp;update&nbsp;of&nbsp;metadata.</tt></dd></dl>
+ <dl><dt><a name="-fdopen"><strong>fdopen</strong></a>(...)</dt><dd><tt><a href="#-fdopen">fdopen</a>(fd&nbsp;[,&nbsp;mode='r'&nbsp;[,&nbsp;bufsize]])&nbsp;-&gt;&nbsp;file_object<br>
+&nbsp;<br>
+Return&nbsp;an&nbsp;open&nbsp;file&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;connected&nbsp;to&nbsp;a&nbsp;file&nbsp;descriptor.</tt></dd></dl>
  <dl><dt><a name="-fork"><strong>fork</strong></a>(...)</dt><dd><tt><a href="#-fork">fork</a>()&nbsp;-&gt;&nbsp;pid<br>
 &nbsp;<br>
 Fork&nbsp;a&nbsp;child&nbsp;process.<br>
@@ -476,10 +484,10 @@ force&nbsp;write&nbsp;of&nbsp;file&nbsp;with&nbsp;filedescriptor&nbsp;to&nbsp;di
 Truncate&nbsp;a&nbsp;file&nbsp;to&nbsp;a&nbsp;specified&nbsp;length.</tt></dd></dl>
  <dl><dt><a name="-getcwd"><strong>getcwd</strong></a>(...)</dt><dd><tt><a href="#-getcwd">getcwd</a>()&nbsp;-&gt;&nbsp;path<br>
 &nbsp;<br>
-Return&nbsp;a&nbsp;unicode&nbsp;string&nbsp;representing&nbsp;the&nbsp;current&nbsp;working&nbsp;directory.</tt></dd></dl>
- <dl><dt><a name="-getcwdb"><strong>getcwdb</strong></a>(...)</dt><dd><tt><a href="#-getcwdb">getcwdb</a>()&nbsp;-&gt;&nbsp;path<br>
+Return&nbsp;a&nbsp;string&nbsp;representing&nbsp;the&nbsp;current&nbsp;working&nbsp;directory.</tt></dd></dl>
+ <dl><dt><a name="-getcwdu"><strong>getcwdu</strong></a>(...)</dt><dd><tt><a href="#-getcwdu">getcwdu</a>()&nbsp;-&gt;&nbsp;path<br>
 &nbsp;<br>
-Return&nbsp;a&nbsp;bytes&nbsp;string&nbsp;representing&nbsp;the&nbsp;current&nbsp;working&nbsp;directory.</tt></dd></dl>
+Return&nbsp;a&nbsp;unicode&nbsp;string&nbsp;representing&nbsp;the&nbsp;current&nbsp;working&nbsp;directory.</tt></dd></dl>
  <dl><dt><a name="-getegid"><strong>getegid</strong></a>(...)</dt><dd><tt><a href="#-getegid">getegid</a>()&nbsp;-&gt;&nbsp;egid<br>
 &nbsp;<br>
 Return&nbsp;the&nbsp;current&nbsp;process's&nbsp;effective&nbsp;group&nbsp;id.</tt></dd></dl>
@@ -555,7 +563,7 @@ Like&nbsp;<a href="#-stat">stat</a>(path),&nbsp;but&nbsp;do&nbsp;not&nbsp;follow
 Extracts&nbsp;a&nbsp;device&nbsp;major&nbsp;number&nbsp;from&nbsp;a&nbsp;raw&nbsp;device&nbsp;number.</tt></dd></dl>
  <dl><dt><a name="-makedev"><strong>makedev</strong></a>(...)</dt><dd><tt><a href="#-makedev">makedev</a>(major,&nbsp;minor)&nbsp;-&gt;&nbsp;device&nbsp;number<br>
 Composes&nbsp;a&nbsp;raw&nbsp;device&nbsp;number&nbsp;from&nbsp;the&nbsp;major&nbsp;and&nbsp;minor&nbsp;device&nbsp;numbers.</tt></dd></dl>
- <dl><dt><a name="-makedirs"><strong>makedirs</strong></a>(name, mode<font color="#909090">=511</font>)</dt><dd><tt><a href="#-makedirs">makedirs</a>(path&nbsp;[,&nbsp;mode=0o777])<br>
+ <dl><dt><a name="-makedirs"><strong>makedirs</strong></a>(name, mode<font color="#909090">=511</font>)</dt><dd><tt><a href="#-makedirs">makedirs</a>(path&nbsp;[,&nbsp;mode=0777])<br>
 &nbsp;<br>
 Super-mkdir;&nbsp;create&nbsp;a&nbsp;leaf&nbsp;directory&nbsp;and&nbsp;all&nbsp;intermediate&nbsp;ones.<br>
 Works&nbsp;like&nbsp;mkdir,&nbsp;except&nbsp;that&nbsp;any&nbsp;intermediate&nbsp;path&nbsp;segment&nbsp;(not<br>
@@ -593,6 +601,27 @@ If&nbsp;there&nbsp;is&nbsp;no&nbsp;limit,&nbsp;return&nbsp;-1.</tt></dd></dl>
  <dl><dt><a name="-pipe"><strong>pipe</strong></a>(...)</dt><dd><tt><a href="#-pipe">pipe</a>()&nbsp;-&gt;&nbsp;(read_end,&nbsp;write_end)<br>
 &nbsp;<br>
 Create&nbsp;a&nbsp;pipe.</tt></dd></dl>
+ <dl><dt><a name="-popen"><strong>popen</strong></a>(...)</dt><dd><tt><a href="#-popen">popen</a>(command&nbsp;[,&nbsp;mode='r'&nbsp;[,&nbsp;bufsize]])&nbsp;-&gt;&nbsp;pipe<br>
+&nbsp;<br>
+Open&nbsp;a&nbsp;pipe&nbsp;to/from&nbsp;a&nbsp;command&nbsp;returning&nbsp;a&nbsp;file&nbsp;<a href="__builtin__.html#object">object</a>.</tt></dd></dl>
+ <dl><dt><a name="-popen2"><strong>popen2</strong></a>(cmd, mode<font color="#909090">='t'</font>, bufsize<font color="#909090">=-1</font>)</dt><dd><tt>Execute&nbsp;the&nbsp;shell&nbsp;command&nbsp;'cmd'&nbsp;in&nbsp;a&nbsp;sub-process.&nbsp;&nbsp;On&nbsp;UNIX,&nbsp;'cmd'<br>
+may&nbsp;be&nbsp;a&nbsp;sequence,&nbsp;in&nbsp;which&nbsp;case&nbsp;arguments&nbsp;will&nbsp;be&nbsp;passed&nbsp;directly&nbsp;to<br>
+the&nbsp;program&nbsp;without&nbsp;shell&nbsp;intervention&nbsp;(as&nbsp;with&nbsp;os.<a href="#-spawnv">spawnv</a>()).&nbsp;&nbsp;If&nbsp;'cmd'<br>
+is&nbsp;a&nbsp;string&nbsp;it&nbsp;will&nbsp;be&nbsp;passed&nbsp;to&nbsp;the&nbsp;shell&nbsp;(as&nbsp;with&nbsp;os.<a href="#-system">system</a>()).&nbsp;If<br>
+'bufsize'&nbsp;is&nbsp;specified,&nbsp;it&nbsp;sets&nbsp;the&nbsp;buffer&nbsp;size&nbsp;for&nbsp;the&nbsp;I/O&nbsp;pipes.&nbsp;&nbsp;The<br>
+file&nbsp;objects&nbsp;(child_stdin,&nbsp;child_stdout)&nbsp;are&nbsp;returned.</tt></dd></dl>
+ <dl><dt><a name="-popen3"><strong>popen3</strong></a>(cmd, mode<font color="#909090">='t'</font>, bufsize<font color="#909090">=-1</font>)</dt><dd><tt>Execute&nbsp;the&nbsp;shell&nbsp;command&nbsp;'cmd'&nbsp;in&nbsp;a&nbsp;sub-process.&nbsp;&nbsp;On&nbsp;UNIX,&nbsp;'cmd'<br>
+may&nbsp;be&nbsp;a&nbsp;sequence,&nbsp;in&nbsp;which&nbsp;case&nbsp;arguments&nbsp;will&nbsp;be&nbsp;passed&nbsp;directly&nbsp;to<br>
+the&nbsp;program&nbsp;without&nbsp;shell&nbsp;intervention&nbsp;(as&nbsp;with&nbsp;os.<a href="#-spawnv">spawnv</a>()).&nbsp;&nbsp;If&nbsp;'cmd'<br>
+is&nbsp;a&nbsp;string&nbsp;it&nbsp;will&nbsp;be&nbsp;passed&nbsp;to&nbsp;the&nbsp;shell&nbsp;(as&nbsp;with&nbsp;os.<a href="#-system">system</a>()).&nbsp;If<br>
+'bufsize'&nbsp;is&nbsp;specified,&nbsp;it&nbsp;sets&nbsp;the&nbsp;buffer&nbsp;size&nbsp;for&nbsp;the&nbsp;I/O&nbsp;pipes.&nbsp;&nbsp;The<br>
+file&nbsp;objects&nbsp;(child_stdin,&nbsp;child_stdout,&nbsp;child_stderr)&nbsp;are&nbsp;returned.</tt></dd></dl>
+ <dl><dt><a name="-popen4"><strong>popen4</strong></a>(cmd, mode<font color="#909090">='t'</font>, bufsize<font color="#909090">=-1</font>)</dt><dd><tt>Execute&nbsp;the&nbsp;shell&nbsp;command&nbsp;'cmd'&nbsp;in&nbsp;a&nbsp;sub-process.&nbsp;&nbsp;On&nbsp;UNIX,&nbsp;'cmd'<br>
+may&nbsp;be&nbsp;a&nbsp;sequence,&nbsp;in&nbsp;which&nbsp;case&nbsp;arguments&nbsp;will&nbsp;be&nbsp;passed&nbsp;directly&nbsp;to<br>
+the&nbsp;program&nbsp;without&nbsp;shell&nbsp;intervention&nbsp;(as&nbsp;with&nbsp;os.<a href="#-spawnv">spawnv</a>()).&nbsp;&nbsp;If&nbsp;'cmd'<br>
+is&nbsp;a&nbsp;string&nbsp;it&nbsp;will&nbsp;be&nbsp;passed&nbsp;to&nbsp;the&nbsp;shell&nbsp;(as&nbsp;with&nbsp;os.<a href="#-system">system</a>()).&nbsp;If<br>
+'bufsize'&nbsp;is&nbsp;specified,&nbsp;it&nbsp;sets&nbsp;the&nbsp;buffer&nbsp;size&nbsp;for&nbsp;the&nbsp;I/O&nbsp;pipes.&nbsp;&nbsp;The<br>
+file&nbsp;objects&nbsp;(child_stdin,&nbsp;child_stdout_stderr)&nbsp;are&nbsp;returned.</tt></dd></dl>
  <dl><dt><a name="-putenv"><strong>putenv</strong></a>(...)</dt><dd><tt><a href="#-putenv">putenv</a>(key,&nbsp;value)<br>
 &nbsp;<br>
 Change&nbsp;or&nbsp;add&nbsp;an&nbsp;environment&nbsp;variable.</tt></dd></dl>
@@ -745,9 +774,20 @@ Return&nbsp;the&nbsp;process&nbsp;group&nbsp;associated&nbsp;with&nbsp;the&nbsp;
  <dl><dt><a name="-tcsetpgrp"><strong>tcsetpgrp</strong></a>(...)</dt><dd><tt><a href="#-tcsetpgrp">tcsetpgrp</a>(fd,&nbsp;pgid)<br>
 &nbsp;<br>
 Set&nbsp;the&nbsp;process&nbsp;group&nbsp;associated&nbsp;with&nbsp;the&nbsp;terminal&nbsp;given&nbsp;by&nbsp;a&nbsp;fd.</tt></dd></dl>
+ <dl><dt><a name="-tempnam"><strong>tempnam</strong></a>(...)</dt><dd><tt><a href="#-tempnam">tempnam</a>([dir[,&nbsp;prefix]])&nbsp;-&gt;&nbsp;string<br>
+&nbsp;<br>
+Return&nbsp;a&nbsp;unique&nbsp;name&nbsp;for&nbsp;a&nbsp;temporary&nbsp;file.<br>
+The&nbsp;directory&nbsp;and&nbsp;a&nbsp;prefix&nbsp;may&nbsp;be&nbsp;specified&nbsp;as&nbsp;strings;&nbsp;they&nbsp;may&nbsp;be&nbsp;omitted<br>
+or&nbsp;None&nbsp;if&nbsp;not&nbsp;needed.</tt></dd></dl>
  <dl><dt><a name="-times"><strong>times</strong></a>(...)</dt><dd><tt><a href="#-times">times</a>()&nbsp;-&gt;&nbsp;(utime,&nbsp;stime,&nbsp;cutime,&nbsp;cstime,&nbsp;elapsed_time)<br>
 &nbsp;<br>
 Return&nbsp;a&nbsp;tuple&nbsp;of&nbsp;floating&nbsp;point&nbsp;numbers&nbsp;indicating&nbsp;process&nbsp;times.</tt></dd></dl>
+ <dl><dt><a name="-tmpfile"><strong>tmpfile</strong></a>(...)</dt><dd><tt><a href="#-tmpfile">tmpfile</a>()&nbsp;-&gt;&nbsp;file&nbsp;<a href="__builtin__.html#object">object</a><br>
+&nbsp;<br>
+Create&nbsp;a&nbsp;temporary&nbsp;file&nbsp;with&nbsp;no&nbsp;directory&nbsp;entries.</tt></dd></dl>
+ <dl><dt><a name="-tmpnam"><strong>tmpnam</strong></a>(...)</dt><dd><tt><a href="#-tmpnam">tmpnam</a>()&nbsp;-&gt;&nbsp;string<br>
+&nbsp;<br>
+Return&nbsp;a&nbsp;unique&nbsp;name&nbsp;for&nbsp;a&nbsp;temporary&nbsp;file.</tt></dd></dl>
  <dl><dt><a name="-ttyname"><strong>ttyname</strong></a>(...)</dt><dd><tt><a href="#-ttyname">ttyname</a>(fd)&nbsp;-&gt;&nbsp;string<br>
 &nbsp;<br>
 Return&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;terminal&nbsp;device&nbsp;connected&nbsp;to&nbsp;'fd'.</tt></dd></dl>
@@ -813,7 +853,7 @@ optional&nbsp;arg&nbsp;'onerror'&nbsp;is&nbsp;specified,&nbsp;it&nbsp;should&nbs
 will&nbsp;be&nbsp;called&nbsp;with&nbsp;one&nbsp;argument,&nbsp;an&nbsp;os.<a href="#error">error</a>&nbsp;instance.&nbsp;&nbsp;It&nbsp;can<br>
 report&nbsp;the&nbsp;<a href="#error">error</a>&nbsp;to&nbsp;continue&nbsp;with&nbsp;the&nbsp;walk,&nbsp;or&nbsp;raise&nbsp;the&nbsp;exception<br>
 to&nbsp;abort&nbsp;the&nbsp;walk.&nbsp;&nbsp;Note&nbsp;that&nbsp;the&nbsp;filename&nbsp;is&nbsp;available&nbsp;as&nbsp;the<br>
-filename&nbsp;attribute&nbsp;of&nbsp;the&nbsp;exception&nbsp;<a href="builtins.html#object">object</a>.<br>
+filename&nbsp;attribute&nbsp;of&nbsp;the&nbsp;exception&nbsp;<a href="__builtin__.html#object">object</a>.<br>
 &nbsp;<br>
 By&nbsp;default,&nbsp;os.walk&nbsp;does&nbsp;not&nbsp;follow&nbsp;symbolic&nbsp;links&nbsp;to&nbsp;subdirectories&nbsp;on<br>
 systems&nbsp;that&nbsp;support&nbsp;them.&nbsp;&nbsp;In&nbsp;order&nbsp;to&nbsp;get&nbsp;this&nbsp;functionality,&nbsp;set&nbsp;the<br>
@@ -829,9 +869,9 @@ Example:<br>
 import&nbsp;os<br>
 from&nbsp;os.path&nbsp;import&nbsp;join,&nbsp;getsize<br>
 for&nbsp;root,&nbsp;dirs,&nbsp;files&nbsp;in&nbsp;os.<a href="#-walk">walk</a>('python/Lib/email'):<br>
-&nbsp;&nbsp;&nbsp;&nbsp;print(root,&nbsp;"consumes",&nbsp;end="")<br>
-&nbsp;&nbsp;&nbsp;&nbsp;print(sum([getsize(join(root,&nbsp;name))&nbsp;for&nbsp;name&nbsp;in&nbsp;files]),&nbsp;end="")<br>
-&nbsp;&nbsp;&nbsp;&nbsp;print("bytes&nbsp;in",&nbsp;len(files),&nbsp;"non-directory&nbsp;files")<br>
+&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;root,&nbsp;"consumes",<br>
+&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;sum([getsize(join(root,&nbsp;name))&nbsp;for&nbsp;name&nbsp;in&nbsp;files]),<br>
+&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;"bytes&nbsp;in",&nbsp;len(files),&nbsp;"non-directory&nbsp;files"<br>
 &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;'CVS'&nbsp;in&nbsp;dirs:<br>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirs.<a href="#-remove">remove</a>('CVS')&nbsp;&nbsp;#&nbsp;don't&nbsp;visit&nbsp;CVS&nbsp;directories</tt></dd></dl>
  <dl><dt><a name="-write"><strong>write</strong></a>(...)</dt><dd><tt><a href="#-write">write</a>(fd,&nbsp;string)&nbsp;-&gt;&nbsp;byteswritten<br>
@@ -891,13 +931,14 @@ Write&nbsp;a&nbsp;string&nbsp;to&nbsp;a&nbsp;file&nbsp;descriptor.</tt></dd></dl
 <strong>WUNTRACED</strong> = 2<br>
 <strong>W_OK</strong> = 2<br>
 <strong>X_OK</strong> = 1<br>
-<strong>__all__</strong> = ['altsep', 'curdir', 'pardir', 'sep', 'pathsep', 'linesep', 'defpath', 'name', 'path', 'devnull', 'SEEK_SET', 'SEEK_CUR', 'SEEK_END', 'EX_CANTCREAT', 'EX_CONFIG', 'EX_DATAERR', 'EX_IOERR', 'EX_NOHOST', 'EX_NOINPUT', 'EX_NOPERM', ...]<br>
+<strong>__all__</strong> = ['altsep', 'curdir', 'pardir', 'sep', 'extsep', 'pathsep', 'linesep', 'defpath', 'name', 'path', 'devnull', 'SEEK_SET', 'SEEK_CUR', 'SEEK_END', 'EX_CANTCREAT', 'EX_CONFIG', 'EX_DATAERR', 'EX_IOERR', 'EX_NOHOST', 'EX_NOINPUT', ...]<br>
 <strong>altsep</strong> = None<br>
 <strong>confstr_names</strong> = {'CS_LFS64_CFLAGS': 1004, 'CS_LFS64_LDFLAGS': 1005, 'CS_LFS64_LIBS': 1006, 'CS_LFS64_LINTFLAGS': 1007, 'CS_LFS_CFLAGS': 1000, 'CS_LFS_LDFLAGS': 1001, 'CS_LFS_LIBS': 1002, 'CS_LFS_LINTFLAGS': 1003, 'CS_PATH': 0, 'CS_XBS5_ILP32_OFF32_CFLAGS': 1100, ...}<br>
 <strong>curdir</strong> = '.'<br>
 <strong>defpath</strong> = ':/bin:/usr/bin'<br>
 <strong>devnull</strong> = '/dev/null'<br>
-<strong>environ</strong> = &lt;os._Environ object at 0x7f6a9127be50&gt;<br>
+<strong>environ</strong> = {'PROMPT_COMMAND': 'echo -ne "\\033]0;${USER}@${...L': '/var/spool/mail/hut', 'OLDPWD': '/home/hut'}<br>
+<strong>extsep</strong> = '.'<br>
 <strong>linesep</strong> = '<font color="#c040c0">\n</font>'<br>
 <strong>name</strong> = 'posix'<br>
 <strong>pardir</strong> = '..'<br>
span class="p">: print(text) def abort(self): try: item = self.loader.queue[0] except: self.notify("Type Q or :quit<Enter> to exit ranger") else: self.notify("Aborting: " + item.get_description()) self.loader.remove(index=0) def get_cumulative_size(self): for f in self.env.get_selection() or (): f.look_up_cumulative_size() self.ui.status.request_redraw() self.ui.redraw_main_column() def redraw_window(self): """Redraw the window""" self.ui.redraw_window() def open_console(self, string='', prompt=None, position=None): """Open the console""" self.change_mode('normal') self.ui.open_console(string, prompt=prompt, position=position) def execute_console(self, string='', wildcards=[], quantifier=None): """Execute a command for the console""" command_name = string.split()[0] cmd_class = self.commands.get_command(command_name, abbrev=False) if cmd_class is None: self.notify("Command not found: `%s'" % command_name, bad=True) return cmd = cmd_class(string) if cmd.resolve_macros and _MacroTemplate.delimiter in string: macros = dict(('any%d'%i, key_to_string(char)) \ for i, char in enumerate(wildcards)) if 'any0' in macros: macros['any'] = macros['any0'] try: string = self.substitute_macros(string, additional=macros, escape=cmd.escape_macros_for_shell) except ValueError as e: if ranger.arg.debug: raise else: return self.notify(e) try: cmd_class(string, quantifier=quantifier).execute() except Exception as e: if ranger.arg.debug: raise else: self.notify(e) def substitute_macros(self, string, additional=dict(), escape=False): macros = self._get_macros() macros.update(additional) if escape: for key, value in macros.items(): if isinstance(value, list): macros[key] = " ".join(shell_quote(s) for s in value) elif value != MACRO_FAIL: macros[key] = shell_quote(value) else: for key, value in macros.items(): if isinstance(value, list): macros[key] = " ".join(value) result = _MacroTemplate(string).safe_substitute(macros) if MACRO_FAIL in result: raise ValueError("Could not apply macros to `%s'" % string) return result def _get_macros(self): macros = {} macros['rangerdir'] = ranger.RANGERDIR if self.fm.env.cf: macros['f'] = self.fm.env.cf.basename else: macros['f'] = MACRO_FAIL if self.fm.env.get_selection: macros['s'] = [fl.basename for fl in self.fm.env.get_selection()] else: macros['s'] = MACRO_FAIL if self.fm.env.copy: macros['c'] = [fl.path for fl in self.fm.env.copy] else: macros['c'] = MACRO_FAIL if self.fm.env.cwd.files: macros['t'] = [fl.basename for fl in self.fm.env.cwd.files if fl.realpath in (self.fm.tags or [])] else: macros['t'] = MACRO_FAIL if self.fm.env.cwd: macros['d'] = self.fm.env.cwd.path else: macros['d'] = '.' # define d/f/s macros for each tab for i in range(1,10): try: tab_dir_path = self.fm.tabs[i] except: continue tab_dir = self.fm.env.get_directory(tab_dir_path) i = str(i) macros[i + 'd'] = tab_dir_path if tab_dir.get_selection(): macros[i + 's'] = [fl.path for fl in tab_dir.get_selection()] else: macros[i + 's'] = MACRO_FAIL if tab_dir.pointed_obj: macros[i + 'f'] = tab_dir.pointed_obj.path else: macros[i + 'f'] = MACRO_FAIL # define D/F/S for the next tab found_current_tab = False next_tab_path = None first_tab = None for tab in self.fm.tabs: if not first_tab: first_tab = tab if found_current_tab: next_tab_path = self.fm.tabs[tab] break if self.fm.current_tab == tab: found_current_tab = True if found_current_tab and not next_tab_path: next_tab_path = self.fm.tabs[first_tab] next_tab = self.fm.env.get_directory(next_tab_path) if next_tab: macros['D'] = str(next_tab.path) if next_tab.pointed_obj: macros['F'] = next_tab.pointed_obj.path else: macros['F'] = MACRO_FAIL if next_tab.get_selection(): macros['S'] = [fl.path for fl in next_tab.get_selection()] else: macros['S'] = MACRO_FAIL else: macros['D'] = MACRO_FAIL macros['F'] = MACRO_FAIL macros['S'] = MACRO_FAIL return macros def source(self, filename): filename = os.path.expanduser(filename) for line in open(filename, 'r'): line = line.rstrip("\r\n") if line.startswith("#") or not line.strip(): continue try: self.execute_console(line) except Exception as e: if ranger.arg.debug: raise else: self.notify('Error in line `%s\':\n %s' % (line, str(e)), bad=True) def execute_file(self, files, **kw): """Execute a file. app is the name of a method in Applications, without the "app_" flags is a string consisting of runner.ALLOWED_FLAGS mode is a positive integer. Both flags and mode specify how the program is run.""" mode = kw['mode'] if 'mode' in kw else 0 # ranger can act as a file chooser when running with --choosefile=... if mode == 0 and 'label' not in kw: if ranger.arg.choosefile: open(ranger.arg.choosefile, 'w').write(self.fm.env.cf.path) if ranger.arg.choosefiles: open(ranger.arg.choosefiles, 'w').write("".join( f.path + "\n" for f in self.fm.env.get_selection())) if ranger.arg.choosefile or ranger.arg.choosefiles: raise SystemExit() if isinstance(files, set): files = list(files) elif type(files) not in (list, tuple): files = [files] flags = kw.get('flags', '') if 'c' in squash_flags(flags): files = [self.fm.env.cf] self.signal_emit('execute.before', keywords=kw) filenames = [f.path for f in files] mimetype = files[0].mimetype if files else None label = kw.get('label', kw.get('app', None)) try: return self.rifle.execute(filenames, mode, label, flags, mimetype) finally: self.signal_emit('execute.after') # -------------------------- # -- Moving Around # -------------------------- def move(self, narg=None, **kw): """ A universal movement method. Accepts these parameters: (int) down, (int) up, (int) left, (int) right, (int) to, (bool) absolute, (bool) relative, (bool) pages, (bool) percentage to=X is translated to down=X, absolute=True Example: self.move(down=4, pages=True) # moves down by 4 pages. self.move(to=2, pages=True) # moves to page 2. self.move(to=1, percentage=True) # moves to 80% """ cwd = self.env.cwd direction = Direction(kw) if 'left' in direction or direction.left() > 0: steps = direction.left() if narg is not None: steps *= narg try: directory = os.path.join(*(['..'] * steps)) except: return self.env.enter_dir(directory) self.change_mode('normal') if cwd and cwd.accessible and cwd.content_loaded: if 'right' in direction: mode = 0 if narg is not None: mode = narg cf = self.env.cf selection = self.env.get_selection() if not self.env.enter_dir(cf) and selection: if self.execute_file(selection, mode=mode) is False: self.open_console('open_with ') elif direction.vertical() and cwd.files: newpos = direction.move( direction=direction.down(), override=narg, maximum=len(cwd), current=cwd.pointer, pagesize=self.ui.browser.hei) cwd.move(to=newpos) if self.mode == 'visual': try: startpos = cwd.index(self._visual_start) except: self._visual_start = None startpos = min(self._visual_start_pos, len(cwd)) # The files between here and _visual_start_pos targets = set(cwd.files[min(startpos, newpos):\ max(startpos, newpos) + 1]) # The selection before activating visual mode old = self._previous_selection # The current selection current = set(cwd.marked_items) # Set theory anyone? if not self._visual_reverse: for f in targets - current: cwd.mark_item(f, True) for f in current - old - targets: cwd.mark_item(f, False) else: for f in targets & current: cwd.mark_item(f, False) for f in old - current - targets: cwd.mark_item(f, True) def move_parent(self, n, narg=None): self.change_mode('normal') if narg is not None: n *= narg parent = self.env.at_level(-1) if parent is not None: if parent.pointer + n < 0: n = 0 - parent.pointer try: self.env.enter_dir(parent.files[parent.pointer+n]) except IndexError: pass def select_file(self, path): path = path.strip() if self.enter_dir(os.path.dirname(path)): self.env.cwd.move_to_obj(path) def history_go(self, relative): """Move back and forth in the history""" self.env.history_go(int(relative)) def scroll(self, relative): """Scroll down by <relative> lines""" if self.ui.browser and self.ui.browser.main_column: self.ui.browser.main_column.scroll(relative) self.env.cf = self.env.cwd.pointed_obj def enter_dir(self, path, remember=False, history=True): """Enter the directory at the given path""" cwd = self.env.cwd result = self.env.enter_dir(path, history=history) if cwd != self.env.cwd: if remember: self.bookmarks.remember(cwd) self.change_mode('normal') return result def cd(self, path, remember=True): """enter the directory at the given path, remember=True""" self.enter_dir(path, remember=remember) def traverse(self): self.change_mode('normal') cf = self.env.cf cwd = self.env.cwd if cf is not None and cf.is_directory: self.enter_dir(cf.path) elif cwd.pointer >= len(cwd) - 1: while True: self.move(left=1) cwd = self.env.cwd if cwd.pointer < len(cwd) - 1: break if cwd.path == '/': break self.move(down=1) self.traverse() else: self.move(down=1) self.traverse() # -------------------------- # -- Shortcuts / Wrappers # -------------------------- def pager_move(self, narg=None, **kw): self.ui.browser.pager.move(narg=narg, **kw) def taskview_move(self, narg=None, **kw): self.ui.taskview.move(narg=narg, **kw) def pause_tasks(self): self.loader.pause(-1) def pager_close(self): if self.ui.pager.visible: self.ui.close_pager() if self.ui.browser.pager.visible: self.ui.close_embedded_pager() def taskview_open(self): self.ui.open_taskview() def taskview_close(self): self.ui.close_taskview() def execute_command(self, cmd, **kw): return self.run(cmd, **kw) def edit_file(self, file=None): """Calls execute_file with the current file and label='editor'""" if file is None: file = self.env.cf elif isinstance(file, str): file = File(os.path.expanduser(file)) if file is None: return self.execute_file(file, label='editor') def toggle_option(self, string): """Toggle a boolean option named <string>""" if isinstance(self.env.settings[string], bool): self.env.settings[string] ^= True def set_option(self, optname, value): """Set the value of an option named <optname>""" self.env.settings[optname] = value def sort(self, func=None, reverse=None): if reverse is not None: self.env.settings['sort_reverse'] = bool(reverse) if func is not None: self.env.settings['sort'] = str(func) def set_filter(self, fltr): try: self.env.cwd.filter = fltr except: pass def mark_files(self, all=False, toggle=False, val=None, movedown=None, narg=1): """ A wrapper for the directory.mark_xyz functions. Arguments: all - change all files of the current directory at once? toggle - toggle the marked-status? val - mark or unmark? """ if self.env.cwd is None: return cwd = self.env.cwd if not cwd.accessible: return if movedown is None: movedown = not all if val is None and toggle is False: return if all: if toggle: cwd.toggle_all_marks() else: cwd.mark_all(val) if self.mode == 'visual': self.change_mode('normal') else: for i in range(cwd.pointer, min(cwd.pointer + narg, len(cwd))): item = cwd.files[i] if item is not None: if toggle: cwd.toggle_mark(item) else: cwd.mark_item(item, val) if movedown: self.move(down=narg) self.ui.redraw_main_column() self.ui.status.need_redraw = True def mark_in_direction(self, val=True, dirarg=None): cwd = self.env.cwd direction = Direction(dirarg) pos, selected = direction.select(lst=cwd.files, current=cwd.pointer, pagesize=self.env.termsize[0]) cwd.pointer = pos cwd.correct_pointer() for item in selected: cwd.mark_item(item, val) # -------------------------- # -- Searching # -------------------------- def search_file(self, text, offset=1, regexp=True): if isinstance(text, str) and regexp: try: text = re.compile(text, re.L | re.U | re.I) except: return False self.env.last_search = text self.search_next(order='search', offset=offset) def search_next(self, order=None, offset=1, forward=True): original_order = order if order is None: order = self.search_method else: self.set_search_method(order=order) if order in ('search', 'tag'): if order == 'search': arg = self.env.last_search if arg is None: return False if hasattr(arg, 'search'): fnc = lambda x: arg.search(x.basename) else: fnc = lambda x: arg in x.basename elif order == 'tag': fnc = lambda x: x.realpath in self.tags return self.env.cwd.search_fnc(fnc=fnc, offset=offset, forward=forward) elif order in ('size', 'mimetype', 'ctime', 'mtime', 'atime'): cwd = self.env.cwd if original_order is not None or not cwd.cycle_list: lst = list(cwd.files) if order == 'size': fnc = lambda item: -item.size elif order == 'mimetype': fnc = lambda item: item.mimetype elif order == 'ctime': fnc = lambda item: -int(item.stat and item.stat.st_ctime) elif order == 'atime': fnc = lambda item: -int(item.stat and item.stat.st_atime) elif order == 'mtime': fnc = lambda item: -int(item.stat and item.stat.st_mtime) lst.sort(key=fnc) cwd.set_cycle_list(lst) return cwd.cycle(forward=None) return cwd.cycle(forward=forward) def set_search_method(self, order, forward=True): if order in ('search', 'tag', 'size', 'mimetype', 'ctime'): self.search_method = order # -------------------------- # -- Tags # -------------------------- # Tags are saved in ~/.config/ranger/tagged and simply mark if a # file is important to you in any context. def tag_toggle(self, paths=None, value=None, movedown=None, tag=None): if not self.tags: return if paths is None: tags = tuple(x.realpath for x in self.env.get_selection()) else: tags = [realpath(path) for path in paths] if value is True: self.tags.add(*tags, tag=tag or self.tags.default_tag) elif value is False: self.tags.remove(*tags) else: self.tags.toggle(*tags, tag=tag or self.tags.default_tag) if movedown is None: movedown = len(tags) == 1 and paths is None if movedown: self.move(down=1) self.ui.redraw_main_column() def tag_remove(self, paths=None, movedown=None): self.tag_toggle(paths=paths, value=False, movedown=movedown) def tag_add(self, paths=None, movedown=None): self.tag_toggle(paths=paths, value=True, movedown=movedown) # -------------------------- # -- Bookmarks # -------------------------- # Using ranger.container.bookmarks. def enter_bookmark(self, key): """Enter the bookmark with the name <key>""" try: self.bookmarks.update_if_outdated() destination = self.bookmarks[str(key)] cwd = self.env.cwd if destination.path != cwd.path: self.bookmarks.enter(str(key)) self.bookmarks.remember(cwd) except KeyError: pass def set_bookmark(self, key): """Set the bookmark with the name <key> to the current directory""" self.bookmarks.update_if_outdated() self.bookmarks[str(key)] = self.env.cwd def unset_bookmark(self, key): """Delete the bookmark with the name <key>""" self.bookmarks.update_if_outdated() self.bookmarks.delete(str(key)) def draw_bookmarks(self): self.ui.browser.draw_bookmarks = True def hide_bookmarks(self): self.ui.browser.draw_bookmarks = False def draw_possible_programs(self): try: target = self.env.get_selection()[0] except: self.ui.browser.draw_info = [] return programs = self.rifle.list_commands([target.path], target.mimetype) programs = ['%s | %s' % program[0:2] for program in programs] self.ui.browser.draw_info = programs def hide_console_info(self): self.ui.browser.draw_info = False # -------------------------- # -- Pager # -------------------------- # These commands open the built-in pager and set specific sources. def display_command_help(self, console_widget): try: command = console_widget._get_cmd_class() except: self.notify("Feature not available!", bad=True) return if not command: self.notify("Command not found!", bad=True) return if not command.__doc__: self.notify("Command has no docstring. Try using python without -OO", bad=True) return pager = self.ui.open_pager() lines = cleandoc(command.__doc__).split('\n') pager.set_source(lines) def display_help(self): manualpath = self.relpath('../doc/ranger.1') if os.path.exists(manualpath): process = self.run(['man', manualpath]) if process.poll() != 16: return process = self.run(['man', 'ranger']) if process.poll() == 16: self.notify("Could not find manpage.", bad=True) def display_log(self): pager = self.ui.open_pager() if self.log: pager.set_source(["Message Log:"] + list(self.log)) else: pager.set_source(["Message Log:", "No messages!"]) def display_file(self): if not self.env.cf or not self.env.cf.is_file: return pager = self.ui.open_embedded_pager() pager.set_source(self.env.cf.get_preview_source(pager.wid, pager.hei)) # -------------------------- # -- Previews # -------------------------- def update_preview(self, path): try: del self.previews[path] self.ui.need_redraw = True except: return False def get_preview(self, path, width, height): if self.settings.preview_script and self.settings.use_preview_script: # self.previews is a 2 dimensional dict: # self.previews['/tmp/foo.jpg'][(80, 24)] = "the content..." # self.previews['/tmp/foo.jpg']['loading'] = False # A -1 in tuples means "any"; (80, -1) = wid. of 80 and any hei. # The key 'foundpreview' is added later. Values in (True, False) # XXX: Previews can break when collapse_preview is on and the # preview column is popping out as you move the cursor on e.g. a # PDF file. try: data = self.previews[path] except: data = self.previews[path] = {'loading': False} else: if data['loading']: return None found = data.get((-1, -1), data.get((width, -1), data.get((-1, height), data.get((width, height), False)))) if found == False: data['loading'] = True loadable = CommandLoader(args=[self.settings.preview_script, path, str(width), str(height)], read=True, silent=True, descr="Getting preview of %s" % path) def on_after(signal): exit = signal.process.poll() content = signal.loader.stdout_buffer data['foundpreview'] = True if exit == 0: data[(width, height)] = content elif exit == 3: data[(-1, height)] = content elif exit == 4: data[(width, -1)] = content elif exit == 5: data[(-1, -1)] = content elif exit == 1: data[(-1, -1)] = None data['foundpreview'] = False elif exit == 2: f = codecs.open(path, 'r', errors='ignore') try: data[(-1, -1)] = f.read(1024 * 32) except UnicodeDecodeError: f.close() f = codecs.open(path, 'r', encoding='latin-1', errors='ignore') data[(-1, -1)] = f.read(1024 * 32) f.close() else: data[(-1, -1)] = None if self.env.cf.realpath == path: self.ui.browser.need_redraw = True data['loading'] = False pager = self.ui.browser.pager if self.env.cf and self.env.cf.is_file: pager.set_source(self.env.cf.get_preview_source( pager.wid, pager.hei)) def on_destroy(signal): try: del self.previews[path] except: pass loadable.signal_bind('after', on_after) loadable.signal_bind('destroy', on_destroy) self.loader.add(loadable) return None else: return found else: try: return codecs.open(path, 'r', errors='ignore') except: return None # -------------------------- # -- Tabs # -------------------------- # This implementation of tabs is very simple and keeps track of # directory paths only. def tab_open(self, name, path=None): tab_has_changed = name != self.current_tab self.current_tab = name if path or (name in self.tabs): self.enter_dir(path or self.tabs[name]) else: self._update_current_tab() if tab_has_changed: self.change_mode('normal') self.signal_emit('tab.change') def tab_close(self, name=None): if name is None: name = self.current_tab if name == self.current_tab: direction = -1 if name == self._get_tab_list()[-1] else 1 previous = self.current_tab self.tab_move(direction) if previous == self.current_tab: return # can't close last tab if name in self.tabs: del self.tabs[name] def tab_move(self, offset): assert isinstance(offset, int) tablist = self._get_tab_list() current_index = tablist.index(self.current_tab) newtab = tablist[(current_index + offset) % len(tablist)] if newtab != self.current_tab: self.tab_open(newtab) def tab_new(self, path=None): for i in range(1, 10): if not i in self.tabs: self.tab_open(i, path) break def _get_tab_list(self): assert len(self.tabs) > 0, "There must be >=1 tabs at all times" return sorted(self.tabs) def _update_current_tab(self): self.tabs[self.current_tab] = self.env.cwd.path # -------------------------- # -- Overview of internals # -------------------------- def dump_keybindings(self, *contexts): if not contexts: contexts = 'browser', 'console', 'pager', 'taskview' temporary_file = tempfile.NamedTemporaryFile() def write(string): temporary_file.write(string.encode('utf-8')) def recurse(before, pointer): for key, value in pointer.items(): keys = before + [key] if isinstance(value, dict): recurse(keys, value) else: write("%12s %s\n" % (construct_keybinding(keys), value)) for context in contexts: write("Keybindings in `%s'\n" % context) if context in self.env.keymaps: recurse([], self.env.keymaps[context]) else: write(" None\n") write("\n") temporary_file.flush() pager = os.environ.get('PAGER', ranger.DEFAULT_PAGER) self.run([pager, temporary_file.name]) def dump_commands(self): temporary_file = tempfile.NamedTemporaryFile() def write(string): temporary_file.write(string.encode('utf-8')) undocumented = [] for cmd_name in sorted(self.commands.commands): cmd = self.commands.commands[cmd_name] if hasattr(cmd, '__doc__') and cmd.__doc__: write(cleandoc(cmd.__doc__)) write("\n\n" + "-" * 60 + "\n") else: undocumented.append(cmd) if undocumented: write("Undocumented commands:\n\n") for cmd in undocumented: write(" :%s\n" % cmd.get_name()) temporary_file.flush() pager = os.environ.get('PAGER', ranger.DEFAULT_PAGER) self.run([pager, temporary_file.name]) def dump_settings(self): from ranger.container.settingobject import ALLOWED_SETTINGS temporary_file = tempfile.NamedTemporaryFile() def write(string): temporary_file.write(string.encode('utf-8')) for setting in sorted(ALLOWED_SETTINGS): write("%30s = %s\n" % (setting, getattr(self.settings, setting))) temporary_file.flush() pager = os.environ.get('PAGER', ranger.DEFAULT_PAGER) self.run([pager, temporary_file.name]) # -------------------------- # -- File System Operations # -------------------------- def uncut(self): self.env.copy = set() self.env.cut = False self.ui.browser.main_column.request_redraw() def copy(self, mode='set', narg=None, dirarg=None): """Copy the selected items. Modes are: 'set', 'add', 'remove'.""" assert mode in ('set', 'add', 'remove') cwd = self.env.cwd if not narg and not dirarg: selected = (f for f in self.env.get_selection() if f in cwd.files) else: if not dirarg and narg: direction = Direction(down=1) offset = 0 else: direction = Direction(dirarg) offset = 1 pos, selected = direction.select( override=narg, lst=cwd.files, current=cwd.pointer, pagesize=self.env.termsize[0], offset=offset) cwd.pointer = pos cwd.correct_pointer() if mode == 'set': self.env.copy = set(selected) elif mode == 'add': self.env.copy.update(set(selected)) elif mode == 'remove': self.env.copy.difference_update(set(selected)) self.env.cut = False self.ui.browser.main_column.request_redraw() def cut(self, mode='set', narg=None, dirarg=None): self.copy(mode=mode, narg=narg, dirarg=dirarg) self.env.cut = True self.ui.browser.main_column.request_redraw() def paste_symlink(self, relative=False): copied_files = self.env.copy for f in copied_files: self.notify(next_available_filename(f.basename)) try: new_name = next_available_filename(f.basename) if relative: relative_symlink(f.path, join(getcwd(), new_name)) else: symlink(f.path, join(getcwd(), new_name)) except Exception as x: self.notify(x) def paste_hardlink(self): for f in self.env.copy: try: new_name = next_available_filename(f.basename) link(f.path, join(getcwd(), new_name)) except Exception as x: self.notify(x) def paste_hardlinked_subtree(self): for f in self.env.copy: try: target_path = join(getcwd(), f.basename) self._recurse_hardlinked_tree(f.path, target_path) except Exception as x: self.notify(x) def _recurse_hardlinked_tree(self, source_path, target_path): if isdir(source_path): if not exists(target_path): os.mkdir(target_path, stat(source_path).st_mode) for item in listdir(source_path): self._recurse_hardlinked_tree( join(source_path, item), join(target_path, item)) else: if not exists(target_path) \ or stat(source_path).st_ino != stat(target_path).st_ino: link(source_path, next_available_filename(target_path)) def paste(self, overwrite=False): """Paste the selected items into the current directory""" copied_files = tuple(self.env.copy) if not copied_files: return def refresh(_): cwd = self.env.get_directory(original_path) cwd.load_content() cwd = self.env.cwd original_path = cwd.path one_file = copied_files[0] if overwrite: cp_flags = ['-af', '--'] mv_flags = ['-f', '--'] else: cp_flags = ['--backup=numbered', '-a', '--'] mv_flags = ['--backup=numbered', '--'] if self.env.cut: self.env.copy.clear() self.env.cut = False if len(copied_files) == 1: descr = "moving: " + one_file.path else: descr = "moving files from: " + one_file.dirname obj = CommandLoader(args=['mv'] + mv_flags \ + [f.path for f in copied_files] \ + [cwd.path], descr=descr) else: if len(copied_files) == 1: descr = "copying: " + one_file.path else: descr = "copying files from: " + one_file.dirname if not overwrite and len(copied_files) == 1 \ and one_file.dirname == cwd.path: # Special case: yypp # copying a file onto itself -> create a backup obj = CommandLoader(args=['cp', '-f'] + cp_flags \ + [one_file.path, one_file.path], descr=descr) else: obj = CommandLoader(args=['cp'] + cp_flags \ + [f.path for f in copied_files] \ + [cwd.path], descr=descr) obj.signal_bind('after', refresh) self.loader.add(obj) def delete(self): # XXX: warn when deleting mount points/unseen marked files? self.notify("Deleting!") selected = self.env.get_selection() self.env.copy -= set(selected) if selected: for f in selected: if isdir(f.path) and not os.path.islink(f.path): try: shutil.rmtree(f.path) except OSError as err: self.notify(err) else: try: os.remove(f.path) except OSError as err: self.notify(err) self.env.ensure_correct_pointer() def mkdir(self, name): try: os.mkdir(os.path.join(self.env.cwd.path, name)) except OSError as err: self.notify(err) def rename(self, src, dest): if hasattr(src, 'path'): src = src.path try: os.renames(src, dest) except OSError as err: self.notify(err)