Re-apply changes to allow sources.csv to specify a revision by a *local* tag in the web repository.
Uses "hg id" instead of "hg in", so not affected by the aborts we had previously. And no need for an empty repo this time either.
<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>fileutils.FileScanner</title>
<link rel="stylesheet" href="epydoc.css" type="text/css" />
<script type="text/javascript" src="epydoc.js"></script>
</head>
<body bgcolor="white" text="black" link="blue" vlink="#204080"
alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
bgcolor="#a0c0ff" cellspacing="0">
<tr valign="middle">
<!-- Tree link -->
<th> <a
href="module-tree.html">Trees</a> </th>
<!-- Index link -->
<th> <a
href="identifier-index.html">Indices</a> </th>
<!-- Help link -->
<th> <a
href="help.html">Help</a> </th>
<th class="navbar" width="100%"></th>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
<tr valign="top">
<td width="100%">
<span class="breadcrumbs">
<a href="fileutils-module.html">Module fileutils</a> ::
Class FileScanner
</span>
</td>
<td>
<table cellpadding="0" cellspacing="0">
<!-- hide/show private -->
<tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
onclick="toggle_private();">hide private</a>]</span></td></tr>
<tr><td align="right"><span class="options"
>[<a href="frames.html" target="_top">frames</a
>] | <a href="fileutils.FileScanner-class.html"
target="_top">no frames</a>]</span></td></tr>
</table>
</td>
</tr>
</table>
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class FileScanner</h1><span class="codelink"><a href="fileutils-pysrc.html#FileScanner">source code</a></span><br /><br />
<pre class="base-tree">
object --+
|
<a href="fileutils.AbstractScanner-class.html">AbstractScanner</a> --+
|
<strong class="uidshort">FileScanner</strong>
</pre>
<hr />
<p>Scans the filesystem for files that match the selection paths.</p>
<p>The scanner is configured with a root directory. Any number of include
and exclude paths can be added. The scan() method is a generator that
returns matching files one at a time when called as an iterator.</p>
<p>This is a revisited implementation of the filescanner. It now relies on
the module pathaddition.match that implements a Ant-like regular expression matcher.</p>
<p>Rules:
- Includes and excludes should not start with *
- Includes and excludes should not have wildcard searches ending with ** (e.g. wildcard**)</p>
<p>Supported includes and excludes:
- filename.txt
- filename.*
- dir/
- dir/*
- dir/**</p><br /><br />
<!-- ==================== INSTANCE METHODS ==================== -->
<a name="section-InstanceMethods"></a>
<table class="summary" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
<td colspan="2" class="table-header">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr valign="top">
<td align="left"><span class="table-header">Instance Methods</span></td>
<td align="right" valign="top"
><span class="options">[<a href="#section-InstanceMethods"
class="privatelink" onclick="toggle_private();"
>hide private</a>]</span></td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type"> </span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a href="fileutils.FileScanner-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
<span class="summary-sig-arg">root_dir</span>)</span><br />
Initialization.</td>
<td align="right" valign="top">
<span class="codelink"><a href="fileutils-pysrc.html#FileScanner.__init__">source code</a></span>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type"> </span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a href="fileutils.FileScanner-class.html#scan" class="summary-sig-name">scan</a>(<span class="summary-sig-arg">self</span>)</span><br />
Scans the files required to zip</td>
<td align="right" valign="top">
<span class="codelink"><a href="fileutils-pysrc.html#FileScanner.scan">source code</a></span>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type"> </span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a href="fileutils.FileScanner-class.html#find_subroots" class="summary-sig-name">find_subroots</a>(<span class="summary-sig-arg">self</span>)</span><br />
Finds all the subdirectory roots based on the include paths.</td>
<td align="right" valign="top">
<span class="codelink"><a href="fileutils-pysrc.html#FileScanner.find_subroots">source code</a></span>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type"> </span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a href="fileutils.FileScanner-class.html#__str__" class="summary-sig-name">__str__</a>(<span class="summary-sig-arg">self</span>)</span><br />
Returns a string representing this instance.</td>
<td align="right" valign="top">
<span class="codelink"><a href="fileutils-pysrc.html#FileScanner.__str__">source code</a></span>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="15%" align="right" valign="top" class="summary">
<span class="summary-type"> </span>
</td><td class="summary">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span class="summary-sig"><a href="fileutils.FileScanner-class.html#__repr__" class="summary-sig-name">__repr__</a>(<span class="summary-sig-arg">self</span>)</span><br />
Returns a string representing this instance.</td>
<td align="right" valign="top">
<span class="codelink"><a href="fileutils-pysrc.html#FileScanner.__repr__">source code</a></span>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code><a href="fileutils.AbstractScanner-class.html">AbstractScanner</a></code></b>:
<code><a href="fileutils.AbstractScanner-class.html#add_exclude">add_exclude</a></code>,
<code><a href="fileutils.AbstractScanner-class.html#add_exclude_file">add_exclude_file</a></code>,
<code><a href="fileutils.AbstractScanner-class.html#add_filetype">add_filetype</a></code>,
<code><a href="fileutils.AbstractScanner-class.html#add_include">add_include</a></code>,
<code><a href="fileutils.AbstractScanner-class.html#add_selector">add_selector</a></code>,
<code><a href="fileutils.AbstractScanner-class.html#is_excluded">is_excluded</a></code>,
<code><a href="fileutils.AbstractScanner-class.html#is_filetype">is_filetype</a></code>,
<code><a href="fileutils.AbstractScanner-class.html#is_included">is_included</a></code>,
<code><a href="fileutils.AbstractScanner-class.html#is_selected">is_selected</a></code>,
<code><a href="fileutils.AbstractScanner-class.html#match">match</a></code>,
<code><a href="fileutils.AbstractScanner-class.html#test_path">test_path</a></code>
</p>
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__delattr__</code>,
<code>__getattribute__</code>,
<code>__hash__</code>,
<code>__new__</code>,
<code>__reduce__</code>,
<code>__reduce_ex__</code>,
<code>__setattr__</code>
</p>
</td>
</tr>
</table>
<!-- ==================== PROPERTIES ==================== -->
<a name="section-Properties"></a>
<table class="summary" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
<td colspan="2" class="table-header">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr valign="top">
<td align="left"><span class="table-header">Properties</span></td>
<td align="right" valign="top"
><span class="options">[<a href="#section-Properties"
class="privatelink" onclick="toggle_private();"
>hide private</a>]</span></td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2" class="summary">
<p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
<code>__class__</code>
</p>
</td>
</tr>
</table>
<!-- ==================== METHOD DETAILS ==================== -->
<a name="section-MethodDetails"></a>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
<td colspan="2" class="table-header">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr valign="top">
<td align="left"><span class="table-header">Method Details</span></td>
<td align="right" valign="top"
><span class="options">[<a href="#section-MethodDetails"
class="privatelink" onclick="toggle_private();"
>hide private</a>]</span></td>
</tr>
</table>
</td>
</tr>
</table>
<a name="__init__"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr valign="top"><td>
<h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
<span class="sig-arg">root_dir</span>)</span>
<br /><em class="fname">(Constructor)</em>
</h3>
</td><td align="right" valign="top"
><span class="codelink"><a href="fileutils-pysrc.html#FileScanner.__init__">source code</a></span>
</td>
</table>
Initialization.
<dl class="fields">
<dt>Overrides:
<a href="fileutils.AbstractScanner-class.html#__init__">AbstractScanner.__init__</a>
</dt>
</dl>
</td></tr></table>
</div>
<a name="scan"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr valign="top"><td>
<h3 class="epydoc"><span class="sig"><span class="sig-name">scan</span>(<span class="sig-arg">self</span>)</span>
</h3>
</td><td align="right" valign="top"
><span class="codelink"><a href="fileutils-pysrc.html#FileScanner.scan">source code</a></span>
</td>
</table>
Scans the files required to zip
<dl class="fields">
<dt>Overrides:
<a href="fileutils.AbstractScanner-class.html#scan">AbstractScanner.scan</a>
</dt>
</dl>
</td></tr></table>
</div>
<a name="find_subroots"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr valign="top"><td>
<h3 class="epydoc"><span class="sig"><span class="sig-name">find_subroots</span>(<span class="sig-arg">self</span>)</span>
</h3>
</td><td align="right" valign="top"
><span class="codelink"><a href="fileutils-pysrc.html#FileScanner.find_subroots">source code</a></span>
</td>
</table>
<p>Finds all the subdirectory roots based on the include paths.</p>
<p>Often large archive operations define a number of archives from the root
of the drive. Walking the tree from the root is very time-consuming, so
selecting more specific subdirectory roots improves performance.</p>
<dl class="fields">
</dl>
</td></tr></table>
</div>
<a name="__str__"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr valign="top"><td>
<h3 class="epydoc"><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-arg">self</span>)</span>
<br /><em class="fname">(Informal representation operator)</em>
</h3>
</td><td align="right" valign="top"
><span class="codelink"><a href="fileutils-pysrc.html#FileScanner.__str__">source code</a></span>
</td>
</table>
Returns a string representing this instance.
<dl class="fields">
<dt>Overrides:
<a href="fileutils.AbstractScanner-class.html#__str__">AbstractScanner.__str__</a>
<dd><em class="note">(inherited documentation)</em></dd>
</dt>
</dl>
</td></tr></table>
</div>
<a name="__repr__"></a>
<div>
<table class="details" border="1" cellpadding="3"
cellspacing="0" width="100%" bgcolor="white">
<tr><td>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr valign="top"><td>
<h3 class="epydoc"><span class="sig"><span class="sig-name">__repr__</span>(<span class="sig-arg">self</span>)</span>
<br /><em class="fname">(Representation operator)</em>
</h3>
</td><td align="right" valign="top"
><span class="codelink"><a href="fileutils-pysrc.html#FileScanner.__repr__">source code</a></span>
</td>
</table>
Returns a string representing this instance.
<dl class="fields">
<dt>Overrides:
<a href="fileutils.AbstractScanner-class.html#__repr__">AbstractScanner.__repr__</a>
<dd><em class="note">(inherited documentation)</em></dd>
</dt>
</dl>
</td></tr></table>
</div>
<br />
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
bgcolor="#a0c0ff" cellspacing="0">
<tr valign="middle">
<!-- Tree link -->
<th> <a
href="module-tree.html">Trees</a> </th>
<!-- Index link -->
<th> <a
href="identifier-index.html">Indices</a> </th>
<!-- Help link -->
<th> <a
href="help.html">Help</a> </th>
<th class="navbar" width="100%"></th>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0beta1 on Wed Sep 09 13:44:18 2009
</td>
<td align="right" class="footer">
<a href="http://epydoc.sourceforge.net">http://epydoc.sourceforge.net</a>
</td>
</tr>
</table>
<script type="text/javascript">
<!--
// Private objects are initially displayed (because if
// javascript is turned off then we want them to be
// visible); but by default, we want to hide them. So hide
// them unless we have a cookie that says to show them.
checkCookie()
// -->
</script>
</body>
</html>