<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><title>Python: module ranger.applications</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"> <tr bgcolor="#7799ee"> <td valign=bottom> <br> <font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.applications</strong></big></big></font></td ><td align=right valign=bottom ><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/work/ranger/ranger/applications.py">/home/hut/work/ranger/ranger/applications.py</a></font></td></tr></table> <p></p> <p> <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> <tr bgcolor="#aa55cc"> <td colspan=3 valign=bottom> <br> <font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr> <tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td> <td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="os.html">os</a><br> </td><td width="25%" valign=top><a href="sys.html">sys</a><br> </td><td width="25%" valign=top></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> <br> <font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr> <tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td> <td width="100%"><dl> <dt><font face="helvetica, arial"><a href="builtins.html#object">builtins.object</a> </font></dt><dd> <dl> <dt><font face="helvetica, arial"><a href="ranger.applications.html#AppContext">AppContext</a> </font></dt><dt><font face="helvetica, arial"><a href="ranger.applications.html#Applications">Applications</a> </font></dt></dl> </dd> </dl> <p> <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> <tr bgcolor="#ffc8d8"> <td colspan=3 valign=bottom> <br> <font color="#000000" face="helvetica, arial"><a name="AppContext">class <strong>AppContext</strong></a>(<a href="builtins.html#object">builtins.object</a>)</font></td></tr> <tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td> <td colspan=2><tt>An <a href="#AppContext">AppContext</a> <a href="builtins.html#object">object</a> abstracts the spawning of processes.<br> <br> At initialization of the <a href="builtins.html#object">object</a> you can define many high-level options.<br> When you call the <a href="#AppContext-run">run</a>() function, those options are evaluated and<br> translated into Popen() calls.<br> <br> An instances of this class is passed as the only argument to<br> app_xyz calls of the <a href="#Applications">Applications</a> <a href="builtins.html#object">object</a>.<br> <br> Attributes:<br> action -- a string with a command or a list of arguments for<br> the Popen call.<br> app -- the name of the app function. ("vim" for app_vim.)<br> app is used to get an action if the user didn't specify one.<br> mode -- a number, mainly used in determining the action in app_xyz()<br> flags -- a string with flags which change the way programs are run<br> files -- a list containing files, mainly used in app_xyz<br> file -- an arbitrary file from that list (or None)<br> fm -- the filemanager instance<br> wait -- boolean, wait for the end or execute programs in parallel?<br> stdout -- directly passed to Popen<br> stderr -- directly passed to Popen<br> stdin -- directly passed to Popen<br> shell -- directly passed to Popen. Should the string be shell-interpreted?<br> <br> List of allowed flags:<br> s: silent mode. output will be discarded.<br> d: detach the process.<br> p: redirect output to the pager<br> <br> An uppercase key ensures that a certain flag will not be used.<br> </tt></td></tr> <tr><td> </td> <td width="100%">Methods defined here:<br> <dl><dt><a name="AppContext-__init__"><strong>__init__</strong></a>(self, app<font color="#909090">='default'</font>, files<font color="#909090">=None</font>, mode<font color="#909090">=0</font>, flags<font color="#909090">=''</font>, fm<font color="#909090">=None</font>, stdout<font color="#909090">=None</font>, stderr<font color="#909090">=None</font>, stdin<font color="#909090">=None</font>, shell<font color="#909090">=None</font>, wait<font color="#909090">=True</font>, action<font color="#909090">=None</font>)</dt><dd><tt>The necessary parameters are fm and action or app.</tt></dd></dl> <dl><dt><a name="AppContext-__iter__"><strong>__iter__</strong></a>(self)</dt><dd><tt>Iterates over all file paths</tt></dd></dl> <dl><dt><a name="AppContext-get_action"><strong>get_action</strong></a>(self, apps<font color="#909090">=None</font>)</dt><dd><tt>Get the action from app_xyz</tt></dd></dl> <dl><dt><a name="AppContext-run"><strong>run</strong></a>(self)</dt><dd><tt>Run the application in the way specified by the options.<br> <br> This function ensures that there is an action.</tt></dd></dl> <dl><dt><a name="AppContext-squash_flags"><strong>squash_flags</strong></a>(self)</dt><dd><tt>Remove duplicates and lowercase counterparts of uppercase flags</tt></dd></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> </td></tr></table> <p> <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> <tr bgcolor="#ffc8d8"> <td colspan=3 valign=bottom> <br> <font color="#000000" face="helvetica, arial"><a name="Applications">class <strong>Applications</strong></a>(<a href="builtins.html#object">builtins.object</a>)</font></td></tr> <tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td> <td colspan=2><tt>This class contains definitions on how to run programs and should<br> be extended in ranger.defaults.apps<br> <br> The user can decide what program to run, and if he uses eg. 'vim', the<br> function app_vim() will be called. However, usually the user<br> simply wants to "start" the file without specific instructions.<br> In such a case, app_default() is called, where you should examine<br> the context and decide which program to use.<br> <br> All app functions have a name starting with app_ and return a string<br> containing the whole command or a tuple containing a list of the<br> arguments.<br> It has one argument, which is the <a href="#AppContext">AppContext</a> instance.<br> <br> You should define app_default, app_pager and app_editor since<br> internal functions depend on those. Here are sample implementations:<br> <br> def app_default(self, context):<br> if context.file.media:<br> if context.file.video:<br> # detach videos from the filemanager<br> context.flags += 'd'<br> return app_mplayer(context)<br> else:<br> return app_editor(context)<br> <br> def app_pager(self, context):<br> return ('less', ) + tuple(context)<br> <br> def app_editor(self, context):<br> return ('vim', ) + tuple(context)<br> </tt></td></tr> <tr><td> </td> <td width="100%">Methods defined here:<br> <dl><dt><a name="Applications-all"><strong>all</strong></a>(self)</dt><dd><tt>Returns a list with all application functions</tt></dd></dl> <dl><dt><a name="Applications-app_self"><strong>app_self</strong></a>(self, context)</dt><dd><tt>Run the file itself</tt></dd></dl> <dl><dt><a name="Applications-get"><strong>get</strong></a>(self, app)</dt><dd><tt>Looks for an application, returns app_default if it doesn't exist</tt></dd></dl> <dl><dt><a name="Applications-has"><strong>has</strong></a>(self, app)</dt><dd><tt>Returns whether an application is defined</tt></dd></dl> <hr> Data descriptors defined here:<br> <dl><dt><strong>__dict__</strong></dt> <dd><tt>dictionary for instance variables (if defined)</tt></dd> </dl> <dl><dt><strong>__weakref__</strong></dt> <dd><tt>list of weak references to the object (if defined)</tt></dd> </dl> </td></tr></table></td></tr></table><p> <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> <tr bgcolor="#eeaa77"> <td colspan=3 valign=bottom> <br> <font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr> <tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td> <td width="100%"><dl><dt><a name="-run"><strong>run</strong></a>(action<font color="#909090">=None</font>, **kw)</dt><dd><tt>Shortcut for creating and immediately running an <a href="#AppContext">AppContext</a>.</tt></dd></dl> <dl><dt><a name="-tup"><strong>tup</strong></a>(*args)</dt><dd><tt>This helper function creates a tuple out of the arguments.<br> <br> ('a', ) + tuple(some_iterator)<br> is equivalent to:<br> <a href="#-tup">tup</a>('a', *some_iterator)</tt></dd></dl> </td></tr></table><p> <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> <tr bgcolor="#55aa55"> <td colspan=3 valign=bottom> <br> <font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr> <tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td> <td width="100%"><strong>ALLOWED_FLAGS</strong> = 'sdpSDP'<br> <strong>PIPE</strong> = -1<br> <strong>devnull</strong> = <_io.TextIOWrapper name='/dev/null' encoding='UTF-8'></td></tr></table> </body></html>