* [gentoo-commits] proj/autodep:master commit in: docs/build/html/_sources/, docs/build/html/_modules/package_utils/, ...
@ 2011-07-25 13:52 Александр Берсенев
0 siblings, 0 replies; 5+ messages in thread
From: Александр Берсенев @ 2011-07-25 13:52 UTC (permalink / raw
To: gentoo-commits
commit: 040aee8c4fd45564a34ec0cae874f9e41d2e7ecc
Author: Alexander Bersenev <bay <AT> hackerdom <DOT> ru>
AuthorDate: Mon Jul 25 19:51:24 2011 +0000
Commit: Александр Берсенев <bay <AT> hackerdom <DOT> ru>
CommitDate: Mon Jul 25 19:51:24 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/autodep.git;a=commit;h=040aee8c
documentation changes
---
docs/build/.buildinfo | 4 -
docs/build/.doctrees/environment.pickle | Bin 938976 -> 0 bytes
docs/build/.doctrees/index.doctree | Bin 7362 -> 0 bytes
docs/build/_sources/index.txt | 25 -
docs/build/_static/agogo.css | 452 -----------------
docs/build/_static/basic.css | 528 --------------------
| Bin 434 -> 0 bytes
docs/build/_static/bgtop.png | Bin 430 -> 0 bytes
docs/build/_static/darkmetal.png | Bin 44361 -> 0 bytes
docs/build/_static/default.css | 256 ----------
docs/build/_static/doctools.js | 247 ---------
docs/build/_static/file.png | Bin 392 -> 0 bytes
| Bin 298 -> 0 bytes
docs/build/_static/jquery.js | 154 ------
docs/build/_static/logo.png | Bin 11078 -> 0 bytes
docs/build/_static/metal.png | Bin 21543 -> 0 bytes
docs/build/_static/minus.png | Bin 199 -> 0 bytes
docs/build/_static/nature.css | 245 ---------
docs/build/_static/navigation.png | Bin 217 -> 0 bytes
docs/build/_static/plus.png | Bin 199 -> 0 bytes
docs/build/_static/print.css | 5 -
docs/build/_static/pygments.css | 62 ---
docs/build/_static/scrolls.css | 431 ----------------
docs/build/_static/searchtools.js | 518 -------------------
| 148 ------
| 26 -
docs/build/_static/underscore.js | 16 -
docs/build/_static/watermark.png | Bin 107625 -> 0 bytes
docs/build/_static/watermark_blur.png | Bin 14470 -> 0 bytes
docs/build/doctrees/api.doctree | Bin 36541 -> 36541 bytes
docs/build/doctrees/environment.pickle | Bin 971243 -> 970608 bytes
docs/build/doctrees/index.doctree | Bin 3611 -> 3609 bytes
docs/build/doctrees/man.doctree | Bin 25112 -> 25087 bytes
docs/build/doctrees/showfsevents.doctree | Bin 2358 -> 0 bytes
docs/build/genindex.html | 96 ----
docs/build/html/_images/autodep_arch.png | Bin 48586 -> 44565 bytes
docs/build/html/_images/autodep_arch1.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch10.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch11.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch12.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch13.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch14.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch15.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch16.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch17.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch18.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch19.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch2.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch20.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch21.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch22.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch23.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch24.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch25.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch26.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch27.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch28.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch29.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch3.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch30.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch31.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch32.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch33.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch34.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch35.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch36.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch37.png | Bin 55203 -> 0 bytes
docs/build/html/_images/autodep_arch38.png | Bin 44565 -> 0 bytes
docs/build/html/_images/autodep_arch39.png | Bin 44565 -> 0 bytes
docs/build/html/_images/autodep_arch4.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch40.png | Bin 44565 -> 0 bytes
docs/build/html/_images/autodep_arch41.png | Bin 44565 -> 0 bytes
docs/build/html/_images/autodep_arch42.png | Bin 44565 -> 0 bytes
docs/build/html/_images/autodep_arch43.png | Bin 44565 -> 0 bytes
docs/build/html/_images/autodep_arch44.png | Bin 44565 -> 0 bytes
docs/build/html/_images/autodep_arch45.png | Bin 44565 -> 0 bytes
docs/build/html/_images/autodep_arch46.png | Bin 44565 -> 0 bytes
docs/build/html/_images/autodep_arch47.png | Bin 44565 -> 0 bytes
docs/build/html/_images/autodep_arch48.png | Bin 44565 -> 0 bytes
docs/build/html/_images/autodep_arch5.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch6.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch7.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch8.png | Bin 48586 -> 0 bytes
docs/build/html/_images/autodep_arch9.png | Bin 48586 -> 0 bytes
...iz-1d7724071aa6c7e719d4a7dfbe5e67c8e2ce14a6.png | Bin 2520 -> 0 bytes
...d7724071aa6c7e719d4a7dfbe5e67c8e2ce14a6.png.map | 2 -
...iz-338b456b762ba164f6da32145fa8824021aa744d.png | Bin 8280 -> 0 bytes
...38b456b762ba164f6da32145fa8824021aa744d.png.map | 2 -
...iz-509ef36c80465decbfacbd606577688e01d7f7f8.png | Bin 2252 -> 0 bytes
...09ef36c80465decbfacbd606577688e01d7f7f8.png.map | 2 -
...iz-7d4cad14c55812f78f51e2aadd74c8006953ba91.png | Bin 4429 -> 0 bytes
...d4cad14c55812f78f51e2aadd74c8006953ba91.png.map | 2 -
...iz-bd36c7a40132734a92167ffd31f6b6279ec648c0.png | Bin 5501 -> 0 bytes
...d36c7a40132734a92167ffd31f6b6279ec648c0.png.map | 2 -
...iz-d8f3ab7a7bb23eac4fcdf217185fce2c8149cab7.png | Bin 5300 -> 0 bytes
...8f3ab7a7bb23eac4fcdf217185fce2c8149cab7.png.map | 2 -
.../html/_modules/helpers/colorize_output.html | 116 -----
docs/build/html/_modules/index.html | 4 +-
docs/build/html/_modules/logfs/fstracer.html | 21 +-
.../_modules/package_utils/portage_log_parser.html | 7 +-
.../package_utils/portage_misc_functions.html | 27 +-
.../html/_modules/package_utils/portage_utils.html | 12 +-
docs/build/html/_modules/test.html | 93 ----
docs/build/html/_sources/showfsevents.txt | 2 -
docs/build/html/_static/alert_info_32.png | Bin 1168 -> 0 bytes
docs/build/html/_static/alert_warning_32.png | Bin 1060 -> 0 bytes
docs/build/html/_static/bg-page.png | Bin 164 -> 0 bytes
docs/build/html/_static/bullet_orange.png | Bin 365 -> 0 bytes
docs/build/html/_static/haiku.css | 371 --------------
docs/build/html/_static/nature.css | 245 ---------
docs/build/html/api.html | 2 +-
docs/build/html/architecture.html | 2 +-
docs/build/html/objects.inv | Bin 456 -> 467 bytes
docs/build/html/searchindex.js | 2 +-
docs/build/html/showfsevents.html | 96 ----
docs/build/index.html | 116 -----
docs/build/objects.inv | Bin 232 -> 0 bytes
docs/build/search.html | 95 ----
docs/build/searchindex.js | 1 -
119 files changed, 61 insertions(+), 4376 deletions(-)
diff --git a/docs/build/.buildinfo b/docs/build/.buildinfo
deleted file mode 100644
index aafae66..0000000
--- a/docs/build/.buildinfo
+++ /dev/null
@@ -1,4 +0,0 @@
-# Sphinx build info version 1
-# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: 1bd40e950d7e64d2acc6b511e6835b3a
-tags: fbb0d17656682115ca4d033fb2f83ba1
diff --git a/docs/build/.doctrees/environment.pickle b/docs/build/.doctrees/environment.pickle
deleted file mode 100644
index d4d357d..0000000
Binary files a/docs/build/.doctrees/environment.pickle and /dev/null differ
diff --git a/docs/build/.doctrees/index.doctree b/docs/build/.doctrees/index.doctree
deleted file mode 100644
index 34092a1..0000000
Binary files a/docs/build/.doctrees/index.doctree and /dev/null differ
diff --git a/docs/build/_sources/index.txt b/docs/build/_sources/index.txt
deleted file mode 100644
index 923a983..0000000
--- a/docs/build/_sources/index.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-.. Autodep documentation master file, created by
- sphinx-quickstart on Sat Jul 23 18:33:12 2011.
- You can adapt this file completely to your liking, but it should at least
- contain the root `toctree` directive.
-
-Welcome to Autodep's documentation!
-===================================
-
-Contents:
-
-.. toctree::
- :maxdepth: 2
-
-.. py:function:: enumerate(sequence[, start=0])
-
- Return an iterator that yields tuples of an index and an item of the
- *sequence*. (And so on.)
-
-Indices and tables
-==================
-
-* :ref:`genindex`
-* :ref:`modindex`
-* :ref:`search`
-
diff --git a/docs/build/_static/agogo.css b/docs/build/_static/agogo.css
deleted file mode 100644
index 8cdbf9c..0000000
--- a/docs/build/_static/agogo.css
+++ /dev/null
@@ -1,452 +0,0 @@
-/*
- * agogo.css_t
- * ~~~~~~~~~~~
- *
- * Sphinx stylesheet -- agogo theme.
- *
- * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
- * :license: BSD, see LICENSE for details.
- *
- */
-
-* {
- margin: 0px;
- padding: 0px;
-}
-
-body {
- font-family: "Verdana", Arial, sans-serif;
- line-height: 1.4em;
- color: black;
- background-color: #eeeeec;
-}
-
-
-/* Page layout */
-
-div.header, div.content, div.footer {
- width: 70em;
- margin-left: auto;
- margin-right: auto;
-}
-
-div.header-wrapper {
- background: url(bgtop.png) top left repeat-x;
- border-bottom: 3px solid #2e3436;
-}
-
-
-/* Default body styles */
-a {
- color: #ce5c00;
-}
-
-div.bodywrapper a, div.footer a {
- text-decoration: underline;
-}
-
-.clearer {
- clear: both;
-}
-
-.left {
- float: left;
-}
-
-.right {
- float: right;
-}
-
-.line-block {
- display: block;
- margin-top: 1em;
- margin-bottom: 1em;
-}
-
-.line-block .line-block {
- margin-top: 0;
- margin-bottom: 0;
- margin-left: 1.5em;
-}
-
-h1, h2, h3, h4 {
- font-family: "Georgia", "Times New Roman", serif;
- font-weight: normal;
- color: #3465a4;
- margin-bottom: .8em;
-}
-
-h1 {
- color: #204a87;
-}
-
-h2 {
- padding-bottom: .5em;
- border-bottom: 1px solid #3465a4;
-}
-
-a.headerlink {
- visibility: hidden;
- color: #dddddd;
- padding-left: .3em;
-}
-
-h1:hover > a.headerlink,
-h2:hover > a.headerlink,
-h3:hover > a.headerlink,
-h4:hover > a.headerlink,
-h5:hover > a.headerlink,
-h6:hover > a.headerlink,
-dt:hover > a.headerlink {
- visibility: visible;
-}
-
-img {
- border: 0;
-}
-
-div.admonition {
- margin-top: 10px;
- margin-bottom: 10px;
- padding: 2px 7px 1px 7px;
- border-left: 0.2em solid black;
-}
-
-p.admonition-title {
- margin: 0px 10px 5px 0px;
- font-weight: bold;
-}
-
-dt:target, .highlighted {
- background-color: #fbe54e;
-}
-
-/* Header */
-
-div.header {
- padding-top: 10px;
- padding-bottom: 10px;
-}
-
-div.header h1 {
- font-family: "Georgia", "Times New Roman", serif;
- font-weight: normal;
- font-size: 180%;
- letter-spacing: .08em;
-}
-
-div.header h1 a {
- color: white;
-}
-
-div.header div.rel {
- margin-top: 1em;
-}
-
-div.header div.rel a {
- color: #fcaf3e;
- letter-spacing: .1em;
- text-transform: uppercase;
-}
-
-p.logo {
- float: right;
-}
-
-img.logo {
- border: 0;
-}
-
-
-/* Content */
-div.content-wrapper {
- background-color: white;
- padding-top: 20px;
- padding-bottom: 20px;
-}
-
-div.document {
- width: 50em;
- float: left;
-}
-
-div.body {
- padding-right: 2em;
- text-align: justify;
-}
-
-div.document ul {
- margin: 1.5em;
- list-style-type: square;
-}
-
-div.document dd {
- margin-left: 1.2em;
- margin-top: .4em;
- margin-bottom: 1em;
-}
-
-div.document .section {
- margin-top: 1.7em;
-}
-div.document .section:first-child {
- margin-top: 0px;
-}
-
-div.document div.highlight {
- padding: 3px;
- background-color: #eeeeec;
- border-top: 2px solid #dddddd;
- border-bottom: 2px solid #dddddd;
- margin-top: .8em;
- margin-bottom: .8em;
-}
-
-div.document h2 {
- margin-top: .7em;
-}
-
-div.document p {
- margin-bottom: .5em;
-}
-
-div.document li.toctree-l1 {
- margin-bottom: 1em;
-}
-
-div.document .descname {
- font-weight: bold;
-}
-
-div.document .docutils.literal {
- background-color: #eeeeec;
- padding: 1px;
-}
-
-div.document .docutils.xref.literal {
- background-color: transparent;
- padding: 0px;
-}
-
-div.document blockquote {
- margin: 1em;
-}
-
-div.document ol {
- margin: 1.5em;
-}
-
-
-/* Sidebar */
-
-div.sidebar {
- width: 20em;
- float: right;
- font-size: .9em;
-}
-
-div.sidebar a, div.header a {
- text-decoration: none;
-}
-
-div.sidebar a:hover, div.header a:hover {
- text-decoration: underline;
-}
-
-div.sidebar h3 {
- color: #2e3436;
- text-transform: uppercase;
- font-size: 130%;
- letter-spacing: .1em;
-}
-
-div.sidebar ul {
- list-style-type: none;
-}
-
-div.sidebar li.toctree-l1 a {
- display: block;
- padding: 1px;
- border: 1px solid #dddddd;
- background-color: #eeeeec;
- margin-bottom: .4em;
- padding-left: 3px;
- color: #2e3436;
-}
-
-div.sidebar li.toctree-l2 a {
- background-color: transparent;
- border: none;
- margin-left: 1em;
- border-bottom: 1px solid #dddddd;
-}
-
-div.sidebar li.toctree-l3 a {
- background-color: transparent;
- border: none;
- margin-left: 2em;
- border-bottom: 1px solid #dddddd;
-}
-
-div.sidebar li.toctree-l2:last-child a {
- border-bottom: none;
-}
-
-div.sidebar li.toctree-l1.current a {
- border-right: 5px solid #fcaf3e;
-}
-
-div.sidebar li.toctree-l1.current li.toctree-l2 a {
- border-right: none;
-}
-
-
-/* Footer */
-
-div.footer-wrapper {
- background: url(bgfooter.png) top left repeat-x;
- border-top: 4px solid #babdb6;
- padding-top: 10px;
- padding-bottom: 10px;
- min-height: 80px;
-}
-
-div.footer, div.footer a {
- color: #888a85;
-}
-
-div.footer .right {
- text-align: right;
-}
-
-div.footer .left {
- text-transform: uppercase;
-}
-
-
-/* Styles copied from basic theme */
-
-img.align-left, .figure.align-left, object.align-left {
- clear: left;
- float: left;
- margin-right: 1em;
-}
-
-img.align-right, .figure.align-right, object.align-right {
- clear: right;
- float: right;
- margin-left: 1em;
-}
-
-img.align-center, .figure.align-center, object.align-center {
- display: block;
- margin-left: auto;
- margin-right: auto;
-}
-
-.align-left {
- text-align: left;
-}
-
-.align-center {
- clear: both;
- text-align: center;
-}
-
-.align-right {
- text-align: right;
-}
-
-/* -- search page ----------------------------------------------------------- */
-
-ul.search {
- margin: 10px 0 0 20px;
- padding: 0;
-}
-
-ul.search li {
- padding: 5px 0 5px 20px;
- background-image: url(file.png);
- background-repeat: no-repeat;
- background-position: 0 7px;
-}
-
-ul.search li a {
- font-weight: bold;
-}
-
-ul.search li div.context {
- color: #888;
- margin: 2px 0 0 30px;
- text-align: left;
-}
-
-ul.keywordmatches li.goodmatch a {
- font-weight: bold;
-}
-
-/* -- index page ------------------------------------------------------------ */
-
-table.contentstable {
- width: 90%;
-}
-
-table.contentstable p.biglink {
- line-height: 150%;
-}
-
-a.biglink {
- font-size: 1.3em;
-}
-
-span.linkdescr {
- font-style: italic;
- padding-top: 5px;
- font-size: 90%;
-}
-
-/* -- general index --------------------------------------------------------- */
-
-table.indextable td {
- text-align: left;
- vertical-align: top;
-}
-
-table.indextable dl, table.indextable dd {
- margin-top: 0;
- margin-bottom: 0;
-}
-
-table.indextable tr.pcap {
- height: 10px;
-}
-
-table.indextable tr.cap {
- margin-top: 10px;
- background-color: #f2f2f2;
-}
-
-img.toggler {
- margin-right: 3px;
- margin-top: 3px;
- cursor: pointer;
-}
-
-/* -- viewcode extension ---------------------------------------------------- */
-
-.viewcode-link {
- float: right;
-}
-
-.viewcode-back {
- float: right;
- font-family:: "Verdana", Arial, sans-serif;
-}
-
-div.viewcode-block:target {
- margin: -1px -3px;
- padding: 0 3px;
- background-color: #f4debf;
- border-top: 1px solid #ac9;
- border-bottom: 1px solid #ac9;
-}
\ No newline at end of file
diff --git a/docs/build/_static/basic.css b/docs/build/_static/basic.css
deleted file mode 100644
index 32630d5..0000000
--- a/docs/build/_static/basic.css
+++ /dev/null
@@ -1,528 +0,0 @@
-/*
- * basic.css
- * ~~~~~~~~~
- *
- * Sphinx stylesheet -- basic theme.
- *
- * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
- * :license: BSD, see LICENSE for details.
- *
- */
-
-/* -- main layout ----------------------------------------------------------- */
-
-div.clearer {
- clear: both;
-}
-
-/* -- relbar ---------------------------------------------------------------- */
-
-div.related {
- width: 100%;
- font-size: 90%;
-}
-
-div.related h3 {
- display: none;
-}
-
-div.related ul {
- margin: 0;
- padding: 0 0 0 10px;
- list-style: none;
-}
-
-div.related li {
- display: inline;
-}
-
-div.related li.right {
- float: right;
- margin-right: 5px;
-}
-
-/* -- sidebar --------------------------------------------------------------- */
-
-div.sphinxsidebarwrapper {
- padding: 10px 5px 0 10px;
-}
-
-div.sphinxsidebar {
- float: left;
- width: 230px;
- margin-left: -100%;
- font-size: 90%;
-}
-
-div.sphinxsidebar ul {
- list-style: none;
-}
-
-div.sphinxsidebar ul ul,
-div.sphinxsidebar ul.want-points {
- margin-left: 20px;
- list-style: square;
-}
-
-div.sphinxsidebar ul ul {
- margin-top: 0;
- margin-bottom: 0;
-}
-
-div.sphinxsidebar form {
- margin-top: 10px;
-}
-
-div.sphinxsidebar input {
- border: 1px solid #98dbcc;
- font-family: sans-serif;
- font-size: 1em;
-}
-
-img {
- border: 0;
-}
-
-/* -- search page ----------------------------------------------------------- */
-
-ul.search {
- margin: 10px 0 0 20px;
- padding: 0;
-}
-
-ul.search li {
- padding: 5px 0 5px 20px;
- background-image: url(file.png);
- background-repeat: no-repeat;
- background-position: 0 7px;
-}
-
-ul.search li a {
- font-weight: bold;
-}
-
-ul.search li div.context {
- color: #888;
- margin: 2px 0 0 30px;
- text-align: left;
-}
-
-ul.keywordmatches li.goodmatch a {
- font-weight: bold;
-}
-
-/* -- index page ------------------------------------------------------------ */
-
-table.contentstable {
- width: 90%;
-}
-
-table.contentstable p.biglink {
- line-height: 150%;
-}
-
-a.biglink {
- font-size: 1.3em;
-}
-
-span.linkdescr {
- font-style: italic;
- padding-top: 5px;
- font-size: 90%;
-}
-
-/* -- general index --------------------------------------------------------- */
-
-table.indextable {
- width: 100%;
-}
-
-table.indextable td {
- text-align: left;
- vertical-align: top;
-}
-
-table.indextable dl, table.indextable dd {
- margin-top: 0;
- margin-bottom: 0;
-}
-
-table.indextable tr.pcap {
- height: 10px;
-}
-
-table.indextable tr.cap {
- margin-top: 10px;
- background-color: #f2f2f2;
-}
-
-img.toggler {
- margin-right: 3px;
- margin-top: 3px;
- cursor: pointer;
-}
-
-div.modindex-jumpbox {
- border-top: 1px solid #ddd;
- border-bottom: 1px solid #ddd;
- margin: 1em 0 1em 0;
- padding: 0.4em;
-}
-
-div.genindex-jumpbox {
- border-top: 1px solid #ddd;
- border-bottom: 1px solid #ddd;
- margin: 1em 0 1em 0;
- padding: 0.4em;
-}
-
-/* -- general body styles --------------------------------------------------- */
-
-a.headerlink {
- visibility: hidden;
-}
-
-h1:hover > a.headerlink,
-h2:hover > a.headerlink,
-h3:hover > a.headerlink,
-h4:hover > a.headerlink,
-h5:hover > a.headerlink,
-h6:hover > a.headerlink,
-dt:hover > a.headerlink {
- visibility: visible;
-}
-
-div.body p.caption {
- text-align: inherit;
-}
-
-div.body td {
- text-align: left;
-}
-
-.field-list ul {
- padding-left: 1em;
-}
-
-.first {
- margin-top: 0 !important;
-}
-
-p.rubric {
- margin-top: 30px;
- font-weight: bold;
-}
-
-img.align-left, .figure.align-left, object.align-left {
- clear: left;
- float: left;
- margin-right: 1em;
-}
-
-img.align-right, .figure.align-right, object.align-right {
- clear: right;
- float: right;
- margin-left: 1em;
-}
-
-img.align-center, .figure.align-center, object.align-center {
- display: block;
- margin-left: auto;
- margin-right: auto;
-}
-
-.align-left {
- text-align: left;
-}
-
-.align-center {
- clear: both;
- text-align: center;
-}
-
-.align-right {
- text-align: right;
-}
-
-/* -- sidebars -------------------------------------------------------------- */
-
-div.sidebar {
- margin: 0 0 0.5em 1em;
- border: 1px solid #ddb;
- padding: 7px 7px 0 7px;
- background-color: #ffe;
- width: 40%;
- float: right;
-}
-
-p.sidebar-title {
- font-weight: bold;
-}
-
-/* -- topics ---------------------------------------------------------------- */
-
-div.topic {
- border: 1px solid #ccc;
- padding: 7px 7px 0 7px;
- margin: 10px 0 10px 0;
-}
-
-p.topic-title {
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 10px;
-}
-
-/* -- admonitions ----------------------------------------------------------- */
-
-div.admonition {
- margin-top: 10px;
- margin-bottom: 10px;
- padding: 7px;
-}
-
-div.admonition dt {
- font-weight: bold;
-}
-
-div.admonition dl {
- margin-bottom: 0;
-}
-
-p.admonition-title {
- margin: 0px 10px 5px 0px;
- font-weight: bold;
-}
-
-div.body p.centered {
- text-align: center;
- margin-top: 25px;
-}
-
-/* -- tables ---------------------------------------------------------------- */
-
-table.docutils {
- border: 0;
- border-collapse: collapse;
-}
-
-table.docutils td, table.docutils th {
- padding: 1px 8px 1px 5px;
- border-top: 0;
- border-left: 0;
- border-right: 0;
- border-bottom: 1px solid #aaa;
-}
-
-table.field-list td, table.field-list th {
- border: 0 !important;
-}
-
-table.footnote td, table.footnote th {
- border: 0 !important;
-}
-
-th {
- text-align: left;
- padding-right: 5px;
-}
-
-table.citation {
- border-left: solid 1px gray;
- margin-left: 1px;
-}
-
-table.citation td {
- border-bottom: none;
-}
-
-/* -- other body styles ----------------------------------------------------- */
-
-ol.arabic {
- list-style: decimal;
-}
-
-ol.loweralpha {
- list-style: lower-alpha;
-}
-
-ol.upperalpha {
- list-style: upper-alpha;
-}
-
-ol.lowerroman {
- list-style: lower-roman;
-}
-
-ol.upperroman {
- list-style: upper-roman;
-}
-
-dl {
- margin-bottom: 15px;
-}
-
-dd p {
- margin-top: 0px;
-}
-
-dd ul, dd table {
- margin-bottom: 10px;
-}
-
-dd {
- margin-top: 3px;
- margin-bottom: 10px;
- margin-left: 30px;
-}
-
-dt:target, .highlighted {
- background-color: #fbe54e;
-}
-
-dl.glossary dt {
- font-weight: bold;
- font-size: 1.1em;
-}
-
-.field-list ul {
- margin: 0;
- padding-left: 1em;
-}
-
-.field-list p {
- margin: 0;
-}
-
-.refcount {
- color: #060;
-}
-
-.optional {
- font-size: 1.3em;
-}
-
-.versionmodified {
- font-style: italic;
-}
-
-.system-message {
- background-color: #fda;
- padding: 5px;
- border: 3px solid red;
-}
-
-.footnote:target {
- background-color: #ffa;
-}
-
-.line-block {
- display: block;
- margin-top: 1em;
- margin-bottom: 1em;
-}
-
-.line-block .line-block {
- margin-top: 0;
- margin-bottom: 0;
- margin-left: 1.5em;
-}
-
-.guilabel, .menuselection {
- font-family: sans-serif;
-}
-
-.accelerator {
- text-decoration: underline;
-}
-
-.classifier {
- font-style: oblique;
-}
-
-/* -- code displays --------------------------------------------------------- */
-
-pre {
- overflow: auto;
- overflow-y: hidden; /* fixes display issues on Chrome browsers */
-}
-
-td.linenos pre {
- padding: 5px 0px;
- border: 0;
- background-color: transparent;
- color: #aaa;
-}
-
-table.highlighttable {
- margin-left: 0.5em;
-}
-
-table.highlighttable td {
- padding: 0 0.5em 0 0.5em;
-}
-
-tt.descname {
- background-color: transparent;
- font-weight: bold;
- font-size: 1.2em;
-}
-
-tt.descclassname {
- background-color: transparent;
-}
-
-tt.xref, a tt {
- background-color: transparent;
- font-weight: bold;
-}
-
-h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
- background-color: transparent;
-}
-
-.viewcode-link {
- float: right;
-}
-
-.viewcode-back {
- float: right;
- font-family: sans-serif;
-}
-
-div.viewcode-block:target {
- margin: -1px -10px;
- padding: 0 10px;
-}
-
-/* -- math display ---------------------------------------------------------- */
-
-img.math {
- vertical-align: middle;
-}
-
-div.body div.math p {
- text-align: center;
-}
-
-span.eqno {
- float: right;
-}
-
-/* -- printout stylesheet --------------------------------------------------- */
-
-@media print {
- div.document,
- div.documentwrapper,
- div.bodywrapper {
- margin: 0 !important;
- width: 100%;
- }
-
- div.sphinxsidebar,
- div.related,
- div.footer,
- #top-link {
- display: none;
- }
-}
diff --git a/docs/build/_static/bgfooter.png b/docs/build/_static/bgfooter.png
deleted file mode 100644
index 9ce5bdd..0000000
Binary files a/docs/build/_static/bgfooter.png and /dev/null differ
diff --git a/docs/build/_static/bgtop.png b/docs/build/_static/bgtop.png
deleted file mode 100644
index a0d4709..0000000
Binary files a/docs/build/_static/bgtop.png and /dev/null differ
diff --git a/docs/build/_static/darkmetal.png b/docs/build/_static/darkmetal.png
deleted file mode 100644
index e8c9ff6..0000000
Binary files a/docs/build/_static/darkmetal.png and /dev/null differ
diff --git a/docs/build/_static/default.css b/docs/build/_static/default.css
deleted file mode 100644
index 21f3f50..0000000
--- a/docs/build/_static/default.css
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
- * default.css_t
- * ~~~~~~~~~~~~~
- *
- * Sphinx stylesheet -- default theme.
- *
- * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
- * :license: BSD, see LICENSE for details.
- *
- */
-
-@import url("basic.css");
-
-/* -- page layout ----------------------------------------------------------- */
-
-body {
- font-family: sans-serif;
- font-size: 100%;
- background-color: #11303d;
- color: #000;
- margin: 0;
- padding: 0;
-}
-
-div.document {
- background-color: #1c4e63;
-}
-
-div.documentwrapper {
- float: left;
- width: 100%;
-}
-
-div.bodywrapper {
- margin: 0 0 0 230px;
-}
-
-div.body {
- background-color: #ffffff;
- color: #000000;
- padding: 0 20px 30px 20px;
-}
-
-div.footer {
- color: #ffffff;
- width: 100%;
- padding: 9px 0 9px 0;
- text-align: center;
- font-size: 75%;
-}
-
-div.footer a {
- color: #ffffff;
- text-decoration: underline;
-}
-
-div.related {
- background-color: #133f52;
- line-height: 30px;
- color: #ffffff;
-}
-
-div.related a {
- color: #ffffff;
-}
-
-div.sphinxsidebar {
-}
-
-div.sphinxsidebar h3 {
- font-family: 'Trebuchet MS', sans-serif;
- color: #ffffff;
- font-size: 1.4em;
- font-weight: normal;
- margin: 0;
- padding: 0;
-}
-
-div.sphinxsidebar h3 a {
- color: #ffffff;
-}
-
-div.sphinxsidebar h4 {
- font-family: 'Trebuchet MS', sans-serif;
- color: #ffffff;
- font-size: 1.3em;
- font-weight: normal;
- margin: 5px 0 0 0;
- padding: 0;
-}
-
-div.sphinxsidebar p {
- color: #ffffff;
-}
-
-div.sphinxsidebar p.topless {
- margin: 5px 10px 10px 10px;
-}
-
-div.sphinxsidebar ul {
- margin: 10px;
- padding: 0;
- color: #ffffff;
-}
-
-div.sphinxsidebar a {
- color: #98dbcc;
-}
-
-div.sphinxsidebar input {
- border: 1px solid #98dbcc;
- font-family: sans-serif;
- font-size: 1em;
-}
-
-
-
-/* -- hyperlink styles ------------------------------------------------------ */
-
-a {
- color: #355f7c;
- text-decoration: none;
-}
-
-a:visited {
- color: #355f7c;
- text-decoration: none;
-}
-
-a:hover {
- text-decoration: underline;
-}
-
-
-
-/* -- body styles ----------------------------------------------------------- */
-
-div.body h1,
-div.body h2,
-div.body h3,
-div.body h4,
-div.body h5,
-div.body h6 {
- font-family: 'Trebuchet MS', sans-serif;
- background-color: #f2f2f2;
- font-weight: normal;
- color: #20435c;
- border-bottom: 1px solid #ccc;
- margin: 20px -20px 10px -20px;
- padding: 3px 0 3px 10px;
-}
-
-div.body h1 { margin-top: 0; font-size: 200%; }
-div.body h2 { font-size: 160%; }
-div.body h3 { font-size: 140%; }
-div.body h4 { font-size: 120%; }
-div.body h5 { font-size: 110%; }
-div.body h6 { font-size: 100%; }
-
-a.headerlink {
- color: #c60f0f;
- font-size: 0.8em;
- padding: 0 4px 0 4px;
- text-decoration: none;
-}
-
-a.headerlink:hover {
- background-color: #c60f0f;
- color: white;
-}
-
-div.body p, div.body dd, div.body li {
- text-align: justify;
- line-height: 130%;
-}
-
-div.admonition p.admonition-title + p {
- display: inline;
-}
-
-div.admonition p {
- margin-bottom: 5px;
-}
-
-div.admonition pre {
- margin-bottom: 5px;
-}
-
-div.admonition ul, div.admonition ol {
- margin-bottom: 5px;
-}
-
-div.note {
- background-color: #eee;
- border: 1px solid #ccc;
-}
-
-div.seealso {
- background-color: #ffc;
- border: 1px solid #ff6;
-}
-
-div.topic {
- background-color: #eee;
-}
-
-div.warning {
- background-color: #ffe4e4;
- border: 1px solid #f66;
-}
-
-p.admonition-title {
- display: inline;
-}
-
-p.admonition-title:after {
- content: ":";
-}
-
-pre {
- padding: 5px;
- background-color: #eeffcc;
- color: #333333;
- line-height: 120%;
- border: 1px solid #ac9;
- border-left: none;
- border-right: none;
-}
-
-tt {
- background-color: #ecf0f3;
- padding: 0 1px 0 1px;
- font-size: 0.95em;
-}
-
-th {
- background-color: #ede;
-}
-
-.warning tt {
- background: #efc2c2;
-}
-
-.note tt {
- background: #d6d6d6;
-}
-
-.viewcode-back {
- font-family: sans-serif;
-}
-
-div.viewcode-block:target {
- background-color: #f4debf;
- border-top: 1px solid #ac9;
- border-bottom: 1px solid #ac9;
-}
\ No newline at end of file
diff --git a/docs/build/_static/doctools.js b/docs/build/_static/doctools.js
deleted file mode 100644
index 8b9bd2c..0000000
--- a/docs/build/_static/doctools.js
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
- * doctools.js
- * ~~~~~~~~~~~
- *
- * Sphinx JavaScript utilties for all documentation.
- *
- * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
- * :license: BSD, see LICENSE for details.
- *
- */
-
-/**
- * select a different prefix for underscore
- */
-$u = _.noConflict();
-
-/**
- * make the code below compatible with browsers without
- * an installed firebug like debugger
-if (!window.console || !console.firebug) {
- var names = ["log", "debug", "info", "warn", "error", "assert", "dir",
- "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace",
- "profile", "profileEnd"];
- window.console = {};
- for (var i = 0; i < names.length; ++i)
- window.console[names[i]] = function() {};
-}
- */
-
-/**
- * small helper function to urldecode strings
- */
-jQuery.urldecode = function(x) {
- return decodeURIComponent(x).replace(/\+/g, ' ');
-}
-
-/**
- * small helper function to urlencode strings
- */
-jQuery.urlencode = encodeURIComponent;
-
-/**
- * This function returns the parsed url parameters of the
- * current request. Multiple values per key are supported,
- * it will always return arrays of strings for the value parts.
- */
-jQuery.getQueryParameters = function(s) {
- if (typeof s == 'undefined')
- s = document.location.search;
- var parts = s.substr(s.indexOf('?') + 1).split('&');
- var result = {};
- for (var i = 0; i < parts.length; i++) {
- var tmp = parts[i].split('=', 2);
- var key = jQuery.urldecode(tmp[0]);
- var value = jQuery.urldecode(tmp[1]);
- if (key in result)
- result[key].push(value);
- else
- result[key] = [value];
- }
- return result;
-};
-
-/**
- * small function to check if an array contains
- * a given item.
- */
-jQuery.contains = function(arr, item) {
- for (var i = 0; i < arr.length; i++) {
- if (arr[i] == item)
- return true;
- }
- return false;
-};
-
-/**
- * highlight a given string on a jquery object by wrapping it in
- * span elements with the given class name.
- */
-jQuery.fn.highlightText = function(text, className) {
- function highlight(node) {
- if (node.nodeType == 3) {
- var val = node.nodeValue;
- var pos = val.toLowerCase().indexOf(text);
- if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) {
- var span = document.createElement("span");
- span.className = className;
- span.appendChild(document.createTextNode(val.substr(pos, text.length)));
- node.parentNode.insertBefore(span, node.parentNode.insertBefore(
- document.createTextNode(val.substr(pos + text.length)),
- node.nextSibling));
- node.nodeValue = val.substr(0, pos);
- }
- }
- else if (!jQuery(node).is("button, select, textarea")) {
- jQuery.each(node.childNodes, function() {
- highlight(this);
- });
- }
- }
- return this.each(function() {
- highlight(this);
- });
-};
-
-/**
- * Small JavaScript module for the documentation.
- */
-var Documentation = {
-
- init : function() {
- this.fixFirefoxAnchorBug();
- this.highlightSearchWords();
- this.initIndexTable();
- },
-
- /**
- * i18n support
- */
- TRANSLATIONS : {},
- PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; },
- LOCALE : 'unknown',
-
- // gettext and ngettext don't access this so that the functions
- // can safely bound to a different name (_ = Documentation.gettext)
- gettext : function(string) {
- var translated = Documentation.TRANSLATIONS[string];
- if (typeof translated == 'undefined')
- return string;
- return (typeof translated == 'string') ? translated : translated[0];
- },
-
- ngettext : function(singular, plural, n) {
- var translated = Documentation.TRANSLATIONS[singular];
- if (typeof translated == 'undefined')
- return (n == 1) ? singular : plural;
- return translated[Documentation.PLURALEXPR(n)];
- },
-
- addTranslations : function(catalog) {
- for (var key in catalog.messages)
- this.TRANSLATIONS[key] = catalog.messages[key];
- this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')');
- this.LOCALE = catalog.locale;
- },
-
- /**
- * add context elements like header anchor links
- */
- addContextElements : function() {
- $('div[id] > :header:first').each(function() {
- $('<a class="headerlink">\u00B6</a>').
- attr('href', '#' + this.id).
- attr('title', _('Permalink to this headline')).
- appendTo(this);
- });
- $('dt[id]').each(function() {
- $('<a class="headerlink">\u00B6</a>').
- attr('href', '#' + this.id).
- attr('title', _('Permalink to this definition')).
- appendTo(this);
- });
- },
-
- /**
- * workaround a firefox stupidity
- */
- fixFirefoxAnchorBug : function() {
- if (document.location.hash && $.browser.mozilla)
- window.setTimeout(function() {
- document.location.href += '';
- }, 10);
- },
-
- /**
- * highlight the search words provided in the url in the text
- */
- highlightSearchWords : function() {
- var params = $.getQueryParameters();
- var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
- if (terms.length) {
- var body = $('div.body');
- window.setTimeout(function() {
- $.each(terms, function() {
- body.highlightText(this.toLowerCase(), 'highlighted');
- });
- }, 10);
- $('<li class="highlight-link"><a href="javascript:Documentation.' +
- 'hideSearchWords()">' + _('Hide Search Matches') + '</a></li>')
- .appendTo($('.sidebar .this-page-menu'));
- }
- },
-
- /**
- * init the domain index toggle buttons
- */
- initIndexTable : function() {
- var togglers = $('img.toggler').click(function() {
- var src = $(this).attr('src');
- var idnum = $(this).attr('id').substr(7);
- $('tr.cg-' + idnum).toggle();
- if (src.substr(-9) == 'minus.png')
- $(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
- else
- $(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
- }).css('display', '');
- if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) {
- togglers.click();
- }
- },
-
- /**
- * helper function to hide the search marks again
- */
- hideSearchWords : function() {
- $('.sidebar .this-page-menu li.highlight-link').fadeOut(300);
- $('span.highlighted').removeClass('highlighted');
- },
-
- /**
- * make the url absolute
- */
- makeURL : function(relativeURL) {
- return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL;
- },
-
- /**
- * get the current relative url
- */
- getCurrentURL : function() {
- var path = document.location.pathname;
- var parts = path.split(/\//);
- $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() {
- if (this == '..')
- parts.pop();
- });
- var url = parts.join('/');
- return path.substring(url.lastIndexOf('/') + 1, path.length - 1);
- }
-};
-
-// quick alias for translations
-_ = Documentation.gettext;
-
-$(document).ready(function() {
- Documentation.init();
-});
diff --git a/docs/build/_static/file.png b/docs/build/_static/file.png
deleted file mode 100644
index d18082e..0000000
Binary files a/docs/build/_static/file.png and /dev/null differ
diff --git a/docs/build/_static/headerbg.png b/docs/build/_static/headerbg.png
deleted file mode 100644
index 0c5b365..0000000
Binary files a/docs/build/_static/headerbg.png and /dev/null differ
diff --git a/docs/build/_static/jquery.js b/docs/build/_static/jquery.js
deleted file mode 100644
index 7c24308..0000000
--- a/docs/build/_static/jquery.js
+++ /dev/null
@@ -1,154 +0,0 @@
-/*!
- * jQuery JavaScript Library v1.4.2
- * http://jquery.com/
- *
- * Copyright 2010, John Resig
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * Includes Sizzle.js
- * http://sizzlejs.com/
- * Copyright 2010, The Dojo Foundation
- * Released under the MIT, BSD, and GPL Licenses.
- *
- * Date: Sat Feb 13 22:33:48 2010 -0500
- */
-(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i?
-e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r=
-j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g,
-"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e=
-true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/,
-Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&&
-(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this,
-a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b===
-"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,
-function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)||
-c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded",
-L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,
-"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+
-a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f],
-d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===
-a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&&
-!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=
-true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
-var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected,
-parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent=
-false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n=
-s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,
-applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando];
-else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,
-a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===
-w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i,
-cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ",
-i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ",
-" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=
-this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i=
-e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected=
-c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");
-a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g,
-function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split(".");
-k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a),
-C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!=
-null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=
-e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&&
-f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;
-if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
-fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
-d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this,
-"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=
-a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,
-isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit=
-{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};
-if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",
-e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,
-"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,
-d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&
-!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},
-toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector,
-u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),
-function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];
-if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
-e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift();
-t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D||
-g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[];
-for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-
-1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
-CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},
-relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]=
-l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[];
-h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},
-CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m,
-g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},
-text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},
-setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=
-h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m=
-m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m===
-"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g,
-h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition||
-!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m=
-h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&&
-q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>";
-if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}();
-(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}:
-function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/,
-gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;
-c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j=
-{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a===
-"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",
-d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?
-a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType===
-1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)?
-a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
-c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
-wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
-prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
-this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
-return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja,
-""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&
-this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]||
-u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length===
-1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]);
-return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["",
-""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e=
-c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]?
-c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja=
-function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=
-Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,
-"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=
-a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=
-a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!==
-"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this},
-serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),
-function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,
-global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&
-e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)?
-"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===
-false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B=
-false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since",
-c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E||
-d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x);
-g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===
-1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b===
-"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional;
-if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");
-this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],
-"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},
-animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing=
-j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);
-this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration===
-"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||
-c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;
-this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=
-this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,
-e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||
-c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement?
-function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=
-this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle;
-k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&
-f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
-a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b);
-c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,
-d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-
-f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset":
-"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in
-e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);
diff --git a/docs/build/_static/logo.png b/docs/build/_static/logo.png
deleted file mode 100644
index d1961cf..0000000
Binary files a/docs/build/_static/logo.png and /dev/null differ
diff --git a/docs/build/_static/metal.png b/docs/build/_static/metal.png
deleted file mode 100644
index 97166f1..0000000
Binary files a/docs/build/_static/metal.png and /dev/null differ
diff --git a/docs/build/_static/minus.png b/docs/build/_static/minus.png
deleted file mode 100644
index da1c562..0000000
Binary files a/docs/build/_static/minus.png and /dev/null differ
diff --git a/docs/build/_static/nature.css b/docs/build/_static/nature.css
deleted file mode 100644
index 52b328e..0000000
--- a/docs/build/_static/nature.css
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- * nature.css_t
- * ~~~~~~~~~~~~
- *
- * Sphinx stylesheet -- nature theme.
- *
- * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
- * :license: BSD, see LICENSE for details.
- *
- */
-
-@import url("basic.css");
-
-/* -- page layout ----------------------------------------------------------- */
-
-body {
- font-family: Arial, sans-serif;
- font-size: 100%;
- background-color: #111;
- color: #555;
- margin: 0;
- padding: 0;
-}
-
-div.documentwrapper {
- float: left;
- width: 100%;
-}
-
-div.bodywrapper {
- margin: 0 0 0 230px;
-}
-
-hr {
- border: 1px solid #B1B4B6;
-}
-
-div.document {
- background-color: #eee;
-}
-
-div.body {
- background-color: #ffffff;
- color: #3E4349;
- padding: 0 30px 30px 30px;
- font-size: 0.9em;
-}
-
-div.footer {
- color: #555;
- width: 100%;
- padding: 13px 0;
- text-align: center;
- font-size: 75%;
-}
-
-div.footer a {
- color: #444;
- text-decoration: underline;
-}
-
-div.related {
- background-color: #6BA81E;
- line-height: 32px;
- color: #fff;
- text-shadow: 0px 1px 0 #444;
- font-size: 0.9em;
-}
-
-div.related a {
- color: #E2F3CC;
-}
-
-div.sphinxsidebar {
- font-size: 0.75em;
- line-height: 1.5em;
-}
-
-div.sphinxsidebarwrapper{
- padding: 20px 0;
-}
-
-div.sphinxsidebar h3,
-div.sphinxsidebar h4 {
- font-family: Arial, sans-serif;
- color: #222;
- font-size: 1.2em;
- font-weight: normal;
- margin: 0;
- padding: 5px 10px;
- background-color: #ddd;
- text-shadow: 1px 1px 0 white
-}
-
-div.sphinxsidebar h4{
- font-size: 1.1em;
-}
-
-div.sphinxsidebar h3 a {
- color: #444;
-}
-
-
-div.sphinxsidebar p {
- color: #888;
- padding: 5px 20px;
-}
-
-div.sphinxsidebar p.topless {
-}
-
-div.sphinxsidebar ul {
- margin: 10px 20px;
- padding: 0;
- color: #000;
-}
-
-div.sphinxsidebar a {
- color: #444;
-}
-
-div.sphinxsidebar input {
- border: 1px solid #ccc;
- font-family: sans-serif;
- font-size: 1em;
-}
-
-div.sphinxsidebar input[type=text]{
- margin-left: 20px;
-}
-
-/* -- body styles ----------------------------------------------------------- */
-
-a {
- color: #005B81;
- text-decoration: none;
-}
-
-a:hover {
- color: #E32E00;
- text-decoration: underline;
-}
-
-div.body h1,
-div.body h2,
-div.body h3,
-div.body h4,
-div.body h5,
-div.body h6 {
- font-family: Arial, sans-serif;
- background-color: #BED4EB;
- font-weight: normal;
- color: #212224;
- margin: 30px 0px 10px 0px;
- padding: 5px 0 5px 10px;
- text-shadow: 0px 1px 0 white
-}
-
-div.body h1 { border-top: 20px solid white; margin-top: 0; font-size: 200%; }
-div.body h2 { font-size: 150%; background-color: #C8D5E3; }
-div.body h3 { font-size: 120%; background-color: #D8DEE3; }
-div.body h4 { font-size: 110%; background-color: #D8DEE3; }
-div.body h5 { font-size: 100%; background-color: #D8DEE3; }
-div.body h6 { font-size: 100%; background-color: #D8DEE3; }
-
-a.headerlink {
- color: #c60f0f;
- font-size: 0.8em;
- padding: 0 4px 0 4px;
- text-decoration: none;
-}
-
-a.headerlink:hover {
- background-color: #c60f0f;
- color: white;
-}
-
-div.body p, div.body dd, div.body li {
- line-height: 1.5em;
-}
-
-div.admonition p.admonition-title + p {
- display: inline;
-}
-
-div.highlight{
- background-color: white;
-}
-
-div.note {
- background-color: #eee;
- border: 1px solid #ccc;
-}
-
-div.seealso {
- background-color: #ffc;
- border: 1px solid #ff6;
-}
-
-div.topic {
- background-color: #eee;
-}
-
-div.warning {
- background-color: #ffe4e4;
- border: 1px solid #f66;
-}
-
-p.admonition-title {
- display: inline;
-}
-
-p.admonition-title:after {
- content: ":";
-}
-
-pre {
- padding: 10px;
- background-color: White;
- color: #222;
- line-height: 1.2em;
- border: 1px solid #C6C9CB;
- font-size: 1.1em;
- margin: 1.5em 0 1.5em 0;
- -webkit-box-shadow: 1px 1px 1px #d8d8d8;
- -moz-box-shadow: 1px 1px 1px #d8d8d8;
-}
-
-tt {
- background-color: #ecf0f3;
- color: #222;
- /* padding: 1px 2px; */
- font-size: 1.1em;
- font-family: monospace;
-}
-
-.viewcode-back {
- font-family: Arial, sans-serif;
-}
-
-div.viewcode-block:target {
- background-color: #f4debf;
- border-top: 1px solid #ac9;
- border-bottom: 1px solid #ac9;
-}
\ No newline at end of file
diff --git a/docs/build/_static/navigation.png b/docs/build/_static/navigation.png
deleted file mode 100644
index 1e248d4..0000000
Binary files a/docs/build/_static/navigation.png and /dev/null differ
diff --git a/docs/build/_static/plus.png b/docs/build/_static/plus.png
deleted file mode 100644
index b3cb374..0000000
Binary files a/docs/build/_static/plus.png and /dev/null differ
diff --git a/docs/build/_static/print.css b/docs/build/_static/print.css
deleted file mode 100644
index fb633d8..0000000
--- a/docs/build/_static/print.css
+++ /dev/null
@@ -1,5 +0,0 @@
-div.header, div.relnav, #toc { display: none; }
-#contentwrapper { padding: 0; margin: 0; border: none; }
-body { color: black; background-color: white; }
-div.footer { border-top: 1px solid #888; color: #888; margin-top: 1cm; }
-div.footer a { text-decoration: none; }
diff --git a/docs/build/_static/pygments.css b/docs/build/_static/pygments.css
deleted file mode 100644
index 1a14f2a..0000000
--- a/docs/build/_static/pygments.css
+++ /dev/null
@@ -1,62 +0,0 @@
-.highlight .hll { background-color: #ffffcc }
-.highlight { background: #eeffcc; }
-.highlight .c { color: #408090; font-style: italic } /* Comment */
-.highlight .err { border: 1px solid #FF0000 } /* Error */
-.highlight .k { color: #007020; font-weight: bold } /* Keyword */
-.highlight .o { color: #666666 } /* Operator */
-.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */
-.highlight .cp { color: #007020 } /* Comment.Preproc */
-.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */
-.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */
-.highlight .gd { color: #A00000 } /* Generic.Deleted */
-.highlight .ge { font-style: italic } /* Generic.Emph */
-.highlight .gr { color: #FF0000 } /* Generic.Error */
-.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
-.highlight .gi { color: #00A000 } /* Generic.Inserted */
-.highlight .go { color: #303030 } /* Generic.Output */
-.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
-.highlight .gs { font-weight: bold } /* Generic.Strong */
-.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
-.highlight .gt { color: #0040D0 } /* Generic.Traceback */
-.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
-.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
-.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
-.highlight .kp { color: #007020 } /* Keyword.Pseudo */
-.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
-.highlight .kt { color: #902000 } /* Keyword.Type */
-.highlight .m { color: #208050 } /* Literal.Number */
-.highlight .s { color: #4070a0 } /* Literal.String */
-.highlight .na { color: #4070a0 } /* Name.Attribute */
-.highlight .nb { color: #007020 } /* Name.Builtin */
-.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
-.highlight .no { color: #60add5 } /* Name.Constant */
-.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */
-.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */
-.highlight .ne { color: #007020 } /* Name.Exception */
-.highlight .nf { color: #06287e } /* Name.Function */
-.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */
-.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
-.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */
-.highlight .nv { color: #bb60d5 } /* Name.Variable */
-.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */
-.highlight .w { color: #bbbbbb } /* Text.Whitespace */
-.highlight .mf { color: #208050 } /* Literal.Number.Float */
-.highlight .mh { color: #208050 } /* Literal.Number.Hex */
-.highlight .mi { color: #208050 } /* Literal.Number.Integer */
-.highlight .mo { color: #208050 } /* Literal.Number.Oct */
-.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */
-.highlight .sc { color: #4070a0 } /* Literal.String.Char */
-.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
-.highlight .s2 { color: #4070a0 } /* Literal.String.Double */
-.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
-.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */
-.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
-.highlight .sx { color: #c65d09 } /* Literal.String.Other */
-.highlight .sr { color: #235388 } /* Literal.String.Regex */
-.highlight .s1 { color: #4070a0 } /* Literal.String.Single */
-.highlight .ss { color: #517918 } /* Literal.String.Symbol */
-.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */
-.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */
-.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */
-.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */
-.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/docs/build/_static/scrolls.css b/docs/build/_static/scrolls.css
deleted file mode 100644
index 4ea8b4b..0000000
--- a/docs/build/_static/scrolls.css
+++ /dev/null
@@ -1,431 +0,0 @@
-/*
- * scrolls.css_t
- * ~~~~~~~~~~~~~
- *
- * Sphinx stylesheet -- scrolls theme.
- *
- * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
- * :license: BSD, see LICENSE for details.
- *
- */
-
-body {
- background-color: #222;
- margin: 0;
- padding: 0;
- font-family: 'Georgia', serif;
- font-size: 15px;
- color: #eee;
-}
-
-div.footer {
- border-top: 1px solid #111;
- padding: 8px;
- font-size: 11px;
- text-align: center;
- letter-spacing: 0.5px;
-}
-
-div.footer a {
- color: #eee;
-}
-
-div.header {
- margin: 0 -15px 0 -15px;
- background: url(headerbg.png) repeat-x;
- border-top: 6px solid #1752b4;
-}
-
-div.relnav {
- border-bottom: 1px solid #111;
- background: url(navigation.png);
- margin: 0 -15px 0 -15px;
- padding: 2px 20px 0 28px;
- line-height: 25px;
- color: #aaa;
- font-size: 12px;
- text-align: center;
-}
-
-div.relnav a {
- color: #eee;
- font-weight: bold;
- text-decoration: none;
-}
-
-div.relnav a:hover {
- text-decoration: underline;
-}
-
-#content {
- background-color: white;
- color: #111;
- border-bottom: 1px solid black;
- background: url(watermark.png) center 0;
- padding: 0 15px 0 15px;
- margin: 0;
-}
-
-h1 {
- margin: 0;
- padding: 15px 0 0 0;
-}
-
-h1.heading {
- margin: 0;
- padding: 0;
- height: 80px;
-}
-
-h1.heading:hover {
- background: #222;
-}
-
-h1.heading a {
- background: url(logo.png) no-repeat center 0;
- display: block;
- width: 100%;
- height: 80px;
-}
-
-h1.heading a:focus {
- -moz-outline: none;
- outline: none;
-}
-
-h1.heading span {
- display: none;
-}
-
-#contentwrapper {
- max-width: 680px;
- padding: 0 18px 20px 18px;
- margin: 0 auto 0 auto;
- border-right: 1px solid #eee;
- border-left: 1px solid #eee;
- background: url(watermark_blur.png) center -114px;
-}
-
-#contentwrapper h2,
-#contentwrapper h2 a {
- color: #222;
- font-size: 24px;
- margin: 20px 0 0 0;
-}
-
-#contentwrapper h3,
-#contentwrapper h3 a {
- color: #0d306b;
- font-size: 20px;
- margin: 20px 0 0 0;
-}
-
-table.docutils {
- border-collapse: collapse;
- border: 2px solid #aaa;
- margin: 0.5em 1.5em 0.5em 1.5em;
-}
-
-table.docutils td {
- padding: 2px;
- border: 1px solid #ddd;
-}
-
-p, li, dd, dt, blockquote {
- color: #333;
-}
-
-blockquote {
- margin: 10px 0 10px 20px;
-}
-
-p {
- line-height: 20px;
- margin-bottom: 0;
- margin-top: 10px;
-}
-
-hr {
- border-top: 1px solid #ccc;
- border-bottom: 0;
- border-right: 0;
- border-left: 0;
- margin-bottom: 10px;
- margin-top: 20px;
-}
-
-dl {
- margin-left: 10px;
-}
-
-li, dt {
- margin-top: 5px;
-}
-
-dt {
- font-weight: bold;
- color: #000;
-}
-
-dd {
- margin-top: 10px;
- line-height: 20px;
-}
-
-th {
- text-align: left;
- padding: 3px;
- background-color: #f2f2f2;
-}
-
-a {
- color: #1752b4;
-}
-
-a:hover {
- color: #444;
-}
-
-pre {
- background: #ededed url(metal.png);
- border-top: 1px solid #ccc;
- border-bottom: 1px solid #ccc;
- padding: 5px;
- font-size: 13px;
- font-family: 'Bitstream Vera Sans Mono', 'Monaco', monospace;
-}
-
-tt {
- font-size: 13px;
- font-family: 'Bitstream Vera Sans Mono', 'Monaco', monospace;
- color: black;
- padding: 1px 2px 1px 2px;
- background-color: #fafafa;
- border-bottom: 1px solid #eee;
-}
-
-a.reference:hover tt {
- border-bottom-color: #aaa;
-}
-
-cite {
- /* abusing <cite>, it's generated by ReST for `x` */
- font-size: 13px;
- font-family: 'Bitstream Vera Sans Mono', 'Monaco', monospace;
- font-weight: bold;
- font-style: normal;
-}
-
-div.admonition {
- margin: 10px 0 10px 0;
- padding: 10px;
- border: 1px solid #ccc;
-}
-
-div.admonition p.admonition-title {
- background-color: #28437f;
- color: white;
- margin: -10px -10px 10px -10px;
- padding: 4px 10px 4px 10px;
- font-weight: bold;
- font-size: 15px;
-}
-
-div.admonition p.admonition-title a {
- color: white!important;
-}
-
-a.headerlink {
- color: #B4B4B4!important;
- font-size: 0.8em;
- padding: 0 4px 0 4px;
- text-decoration: none!important;
- visibility: hidden;
-}
-
-h1:hover > a.headerlink,
-h2:hover > a.headerlink,
-h3:hover > a.headerlink,
-h4:hover > a.headerlink,
-h5:hover > a.headerlink,
-h6:hover > a.headerlink,
-dt:hover > a.headerlink,
-dt:hover > a.headerlink {
- visibility: visible;
-}
-
-a.headerlink:hover {
- background-color: #B4B4B4;
- color: #F0F0F0!important;
-}
-
-table.indextable {
- width: 100%;
-}
-
-table.genindextable td {
- vertical-align: top;
- width: 50%;
-}
-
-table.indextable dl dd {
- font-size: 11px;
-}
-
-table.indextable dl dd a {
- color: #000;
-}
-
-div.modindex-jumpbox {
- border-top: 1px solid #ddd;
- border-bottom: 1px solid #ddd;
- margin: 1em 0 1em 0;
- padding: 0.4em;
-}
-
-table.modindextable {
- width: 100%;
- border: none;
-}
-
-table.modindextable img.toggler {
- margin-right: 10px;
-}
-
-dl.function dt,
-dl.class dt,
-dl.exception dt,
-dl.method dt,
-dl.attribute dt {
- font-weight: normal;
-}
-
-dt .descname {
- font-weight: bold;
- margin-right: 4px;
-}
-
-dt .descname, dt .descclassname {
- padding: 0;
- background: transparent;
- border-bottom: 1px solid #111;
-}
-
-dt .descclassname {
- margin-left: 2px;
-}
-
-dl dt big {
- font-size: 100%;
-}
-
-ul.search {
- margin: 10px 0 0 30px;
- padding: 0;
-}
-
-ul.search li {
- margin: 10px 0 0 0;
- padding: 0;
-}
-
-ul.search div.context {
- font-size: 12px;
- padding: 4px 0 0 20px;
- color: #888;
-}
-
-span.highlight {
- background-color: #eee;
- border: 1px solid #ccc;
-}
-
-#toc {
- margin: 0 -17px 0 -17px;
- display: none;
-}
-
-#toc h3 {
- float: right;
- margin: 5px 5px 0 0;
- padding: 0;
- font-size: 12px;
- color: #777;
-}
-
-#toc h3:hover {
- color: #333;
- cursor: pointer;
-}
-
-.expandedtoc {
- background: #222 url(darkmetal.png);
- border-bottom: 1px solid #111;
- outline-bottom: 1px solid #000;
- padding: 5px;
-}
-
-.expandedtoc h3 {
- color: #aaa;
- margin: 0!important;
-}
-
-.expandedtoc h3:hover {
- color: white!important;
-}
-
-#tod h3:hover {
- color: white;
-}
-
-#toc a {
- color: #ddd;
- text-decoration: none;
-}
-
-#toc a:hover {
- color: white;
- text-decoration: underline;
-}
-
-#toc ul {
- margin: 5px 0 12px 17px;
- padding: 0 7px 0 7px;
-}
-
-#toc ul ul {
- margin-bottom: 0;
-}
-
-#toc ul li {
- margin: 2px 0 0 0;
-}
-
-.line-block {
- display: block;
- margin-top: 1em;
- margin-bottom: 1em;
-}
-
-.line-block .line-block {
- margin-top: 0;
- margin-bottom: 0;
- margin-left: 1.5em;
-}
-
-.viewcode-link {
- float: right;
-}
-
-.viewcode-back {
- float: right;
- font-family: 'Georgia', serif;
-}
-
-div.viewcode-block:target {
- background-color: #f4debf;
- border-top: 1px solid #ac9;
- border-bottom: 1px solid #ac9;
- margin: -1px -5px;
- padding: 0 5px;
-}
\ No newline at end of file
diff --git a/docs/build/_static/searchtools.js b/docs/build/_static/searchtools.js
deleted file mode 100644
index dae92b5..0000000
--- a/docs/build/_static/searchtools.js
+++ /dev/null
@@ -1,518 +0,0 @@
-/*
- * searchtools.js
- * ~~~~~~~~~~~~~~
- *
- * Sphinx JavaScript utilties for the full-text search.
- *
- * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
- * :license: BSD, see LICENSE for details.
- *
- */
-
-/**
- * helper function to return a node containing the
- * search summary for a given text. keywords is a list
- * of stemmed words, hlwords is the list of normal, unstemmed
- * words. the first one is used to find the occurance, the
- * latter for highlighting it.
- */
-
-jQuery.makeSearchSummary = function(text, keywords, hlwords) {
- var textLower = text.toLowerCase();
- var start = 0;
- $.each(keywords, function() {
- var i = textLower.indexOf(this.toLowerCase());
- if (i > -1)
- start = i;
- });
- start = Math.max(start - 120, 0);
- var excerpt = ((start > 0) ? '...' : '') +
- $.trim(text.substr(start, 240)) +
- ((start + 240 - text.length) ? '...' : '');
- var rv = $('<div class="context"></div>').text(excerpt);
- $.each(hlwords, function() {
- rv = rv.highlightText(this, 'highlighted');
- });
- return rv;
-}
-
-/**
- * Porter Stemmer
- */
-var PorterStemmer = function() {
-
- var step2list = {
- ational: 'ate',
- tional: 'tion',
- enci: 'ence',
- anci: 'ance',
- izer: 'ize',
- bli: 'ble',
- alli: 'al',
- entli: 'ent',
- eli: 'e',
- ousli: 'ous',
- ization: 'ize',
- ation: 'ate',
- ator: 'ate',
- alism: 'al',
- iveness: 'ive',
- fulness: 'ful',
- ousness: 'ous',
- aliti: 'al',
- iviti: 'ive',
- biliti: 'ble',
- logi: 'log'
- };
-
- var step3list = {
- icate: 'ic',
- ative: '',
- alize: 'al',
- iciti: 'ic',
- ical: 'ic',
- ful: '',
- ness: ''
- };
-
- var c = "[^aeiou]"; // consonant
- var v = "[aeiouy]"; // vowel
- var C = c + "[^aeiouy]*"; // consonant sequence
- var V = v + "[aeiou]*"; // vowel sequence
-
- var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0
- var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1
- var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1
- var s_v = "^(" + C + ")?" + v; // vowel in stem
-
- this.stemWord = function (w) {
- var stem;
- var suffix;
- var firstch;
- var origword = w;
-
- if (w.length < 3)
- return w;
-
- var re;
- var re2;
- var re3;
- var re4;
-
- firstch = w.substr(0,1);
- if (firstch == "y")
- w = firstch.toUpperCase() + w.substr(1);
-
- // Step 1a
- re = /^(.+?)(ss|i)es$/;
- re2 = /^(.+?)([^s])s$/;
-
- if (re.test(w))
- w = w.replace(re,"$1$2");
- else if (re2.test(w))
- w = w.replace(re2,"$1$2");
-
- // Step 1b
- re = /^(.+?)eed$/;
- re2 = /^(.+?)(ed|ing)$/;
- if (re.test(w)) {
- var fp = re.exec(w);
- re = new RegExp(mgr0);
- if (re.test(fp[1])) {
- re = /.$/;
- w = w.replace(re,"");
- }
- }
- else if (re2.test(w)) {
- var fp = re2.exec(w);
- stem = fp[1];
- re2 = new RegExp(s_v);
- if (re2.test(stem)) {
- w = stem;
- re2 = /(at|bl|iz)$/;
- re3 = new RegExp("([^aeiouylsz])\\1$");
- re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
- if (re2.test(w))
- w = w + "e";
- else if (re3.test(w)) {
- re = /.$/;
- w = w.replace(re,"");
- }
- else if (re4.test(w))
- w = w + "e";
- }
- }
-
- // Step 1c
- re = /^(.+?)y$/;
- if (re.test(w)) {
- var fp = re.exec(w);
- stem = fp[1];
- re = new RegExp(s_v);
- if (re.test(stem))
- w = stem + "i";
- }
-
- // Step 2
- re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
- if (re.test(w)) {
- var fp = re.exec(w);
- stem = fp[1];
- suffix = fp[2];
- re = new RegExp(mgr0);
- if (re.test(stem))
- w = stem + step2list[suffix];
- }
-
- // Step 3
- re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
- if (re.test(w)) {
- var fp = re.exec(w);
- stem = fp[1];
- suffix = fp[2];
- re = new RegExp(mgr0);
- if (re.test(stem))
- w = stem + step3list[suffix];
- }
-
- // Step 4
- re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
- re2 = /^(.+?)(s|t)(ion)$/;
- if (re.test(w)) {
- var fp = re.exec(w);
- stem = fp[1];
- re = new RegExp(mgr1);
- if (re.test(stem))
- w = stem;
- }
- else if (re2.test(w)) {
- var fp = re2.exec(w);
- stem = fp[1] + fp[2];
- re2 = new RegExp(mgr1);
- if (re2.test(stem))
- w = stem;
- }
-
- // Step 5
- re = /^(.+?)e$/;
- if (re.test(w)) {
- var fp = re.exec(w);
- stem = fp[1];
- re = new RegExp(mgr1);
- re2 = new RegExp(meq1);
- re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
- if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
- w = stem;
- }
- re = /ll$/;
- re2 = new RegExp(mgr1);
- if (re.test(w) && re2.test(w)) {
- re = /.$/;
- w = w.replace(re,"");
- }
-
- // and turn initial Y back to y
- if (firstch == "y")
- w = firstch.toLowerCase() + w.substr(1);
- return w;
- }
-}
-
-
-/**
- * Search Module
- */
-var Search = {
-
- _index : null,
- _queued_query : null,
- _pulse_status : -1,
-
- init : function() {
- var params = $.getQueryParameters();
- if (params.q) {
- var query = params.q[0];
- $('input[name="q"]')[0].value = query;
- this.performSearch(query);
- }
- },
-
- loadIndex : function(url) {
- $.ajax({type: "GET", url: url, data: null, success: null,
- dataType: "script", cache: true});
- },
-
- setIndex : function(index) {
- var q;
- this._index = index;
- if ((q = this._queued_query) !== null) {
- this._queued_query = null;
- Search.query(q);
- }
- },
-
- hasIndex : function() {
- return this._index !== null;
- },
-
- deferQuery : function(query) {
- this._queued_query = query;
- },
-
- stopPulse : function() {
- this._pulse_status = 0;
- },
-
- startPulse : function() {
- if (this._pulse_status >= 0)
- return;
- function pulse() {
- Search._pulse_status = (Search._pulse_status + 1) % 4;
- var dotString = '';
- for (var i = 0; i < Search._pulse_status; i++)
- dotString += '.';
- Search.dots.text(dotString);
- if (Search._pulse_status > -1)
- window.setTimeout(pulse, 500);
- };
- pulse();
- },
-
- /**
- * perform a search for something
- */
- performSearch : function(query) {
- // create the required interface elements
- this.out = $('#search-results');
- this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out);
- this.dots = $('<span></span>').appendTo(this.title);
- this.status = $('<p style="display: none"></p>').appendTo(this.out);
- this.output = $('<ul class="search"/>').appendTo(this.out);
-
- $('#search-progress').text(_('Preparing search...'));
- this.startPulse();
-
- // index already loaded, the browser was quick!
- if (this.hasIndex())
- this.query(query);
- else
- this.deferQuery(query);
- },
-
- query : function(query) {
- var stopwords = ['and', 'then', 'into', 'it', 'as', 'are', 'in',
- 'if', 'for', 'no', 'there', 'their', 'was', 'is',
- 'be', 'to', 'that', 'but', 'they', 'not', 'such',
- 'with', 'by', 'a', 'on', 'these', 'of', 'will',
- 'this', 'near', 'the', 'or', 'at'];
-
- // stem the searchterms and add them to the correct list
- var stemmer = new PorterStemmer();
- var searchterms = [];
- var excluded = [];
- var hlterms = [];
- var tmp = query.split(/\s+/);
- var object = (tmp.length == 1) ? tmp[0].toLowerCase() : null;
- for (var i = 0; i < tmp.length; i++) {
- if ($u.indexOf(stopwords, tmp[i]) != -1 || tmp[i].match(/^\d+$/) ||
- tmp[i] == "") {
- // skip this "word"
- continue;
- }
- // stem the word
- var word = stemmer.stemWord(tmp[i]).toLowerCase();
- // select the correct list
- if (word[0] == '-') {
- var toAppend = excluded;
- word = word.substr(1);
- }
- else {
- var toAppend = searchterms;
- hlterms.push(tmp[i].toLowerCase());
- }
- // only add if not already in the list
- if (!$.contains(toAppend, word))
- toAppend.push(word);
- };
- var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" "));
-
- // console.debug('SEARCH: searching for:');
- // console.info('required: ', searchterms);
- // console.info('excluded: ', excluded);
-
- // prepare search
- var filenames = this._index.filenames;
- var titles = this._index.titles;
- var terms = this._index.terms;
- var objects = this._index.objects;
- var objtypes = this._index.objtypes;
- var objnames = this._index.objnames;
- var fileMap = {};
- var files = null;
- // different result priorities
- var importantResults = [];
- var objectResults = [];
- var regularResults = [];
- var unimportantResults = [];
- $('#search-progress').empty();
-
- // lookup as object
- if (object != null) {
- for (var prefix in objects) {
- for (var name in objects[prefix]) {
- var fullname = (prefix ? prefix + '.' : '') + name;
- if (fullname.toLowerCase().indexOf(object) > -1) {
- match = objects[prefix][name];
- descr = objnames[match[1]] + _(', in ') + titles[match[0]];
- // XXX the generated anchors are not generally correct
- // XXX there may be custom prefixes
- result = [filenames[match[0]], fullname, '#'+fullname, descr];
- switch (match[2]) {
- case 1: objectResults.push(result); break;
- case 0: importantResults.push(result); break;
- case 2: unimportantResults.push(result); break;
- }
- }
- }
- }
- }
-
- // sort results descending
- objectResults.sort(function(a, b) {
- return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0);
- });
-
- importantResults.sort(function(a, b) {
- return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0);
- });
-
- unimportantResults.sort(function(a, b) {
- return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0);
- });
-
-
- // perform the search on the required terms
- for (var i = 0; i < searchterms.length; i++) {
- var word = searchterms[i];
- // no match but word was a required one
- if ((files = terms[word]) == null)
- break;
- if (files.length == undefined) {
- files = [files];
- }
- // create the mapping
- for (var j = 0; j < files.length; j++) {
- var file = files[j];
- if (file in fileMap)
- fileMap[file].push(word);
- else
- fileMap[file] = [word];
- }
- }
-
- // now check if the files don't contain excluded terms
- for (var file in fileMap) {
- var valid = true;
-
- // check if all requirements are matched
- if (fileMap[file].length != searchterms.length)
- continue;
-
- // ensure that none of the excluded terms is in the
- // search result.
- for (var i = 0; i < excluded.length; i++) {
- if (terms[excluded[i]] == file ||
- $.contains(terms[excluded[i]] || [], file)) {
- valid = false;
- break;
- }
- }
-
- // if we have still a valid result we can add it
- // to the result list
- if (valid)
- regularResults.push([filenames[file], titles[file], '', null]);
- }
-
- // delete unused variables in order to not waste
- // memory until list is retrieved completely
- delete filenames, titles, terms;
-
- // now sort the regular results descending by title
- regularResults.sort(function(a, b) {
- var left = a[1].toLowerCase();
- var right = b[1].toLowerCase();
- return (left > right) ? -1 : ((left < right) ? 1 : 0);
- });
-
- // combine all results
- var results = unimportantResults.concat(regularResults)
- .concat(objectResults).concat(importantResults);
-
- // print the results
- var resultCount = results.length;
- function displayNextItem() {
- // results left, load the summary and display it
- if (results.length) {
- var item = results.pop();
- var listItem = $('<li style="display:none"></li>');
- if (DOCUMENTATION_OPTIONS.FILE_SUFFIX == '') {
- // dirhtml builder
- var dirname = item[0] + '/';
- if (dirname.match(/\/index\/$/)) {
- dirname = dirname.substring(0, dirname.length-6);
- } else if (dirname == 'index/') {
- dirname = '';
- }
- listItem.append($('<a/>').attr('href',
- DOCUMENTATION_OPTIONS.URL_ROOT + dirname +
- highlightstring + item[2]).html(item[1]));
- } else {
- // normal html builders
- listItem.append($('<a/>').attr('href',
- item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX +
- highlightstring + item[2]).html(item[1]));
- }
- if (item[3]) {
- listItem.append($('<span> (' + item[3] + ')</span>'));
- Search.output.append(listItem);
- listItem.slideDown(5, function() {
- displayNextItem();
- });
- } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
- $.get(DOCUMENTATION_OPTIONS.URL_ROOT + '_sources/' +
- item[0] + '.txt', function(data) {
- if (data != '') {
- listItem.append($.makeSearchSummary(data, searchterms, hlterms));
- Search.output.append(listItem);
- }
- listItem.slideDown(5, function() {
- displayNextItem();
- });
- });
- } else {
- // no source available, just display title
- Search.output.append(listItem);
- listItem.slideDown(5, function() {
- displayNextItem();
- });
- }
- }
- // search finished, update title and status message
- else {
- Search.stopPulse();
- Search.title.text(_('Search Results'));
- if (!resultCount)
- Search.status.text(_('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.'));
- else
- Search.status.text(_('Search finished, found %s page(s) matching the search query.').replace('%s', resultCount));
- Search.status.fadeIn(500);
- }
- }
- displayNextItem();
- }
-}
-
-$(document).ready(function() {
- Search.init();
-});
diff --git a/docs/build/_static/sidebar.js b/docs/build/_static/sidebar.js
deleted file mode 100644
index e9ef491..0000000
--- a/docs/build/_static/sidebar.js
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * sidebar.js
- * ~~~~~~~~~~
- *
- * This script makes the Sphinx sidebar collapsible.
- *
- * .sphinxsidebar contains .sphinxsidebarwrapper. This script adds
- * in .sphixsidebar, after .sphinxsidebarwrapper, the #sidebarbutton
- * used to collapse and expand the sidebar.
- *
- * When the sidebar is collapsed the .sphinxsidebarwrapper is hidden
- * and the width of the sidebar and the margin-left of the document
- * are decreased. When the sidebar is expanded the opposite happens.
- * This script saves a per-browser/per-session cookie used to
- * remember the position of the sidebar among the pages.
- * Once the browser is closed the cookie is deleted and the position
- * reset to the default (expanded).
- *
- * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
- * :license: BSD, see LICENSE for details.
- *
- */
-
-$(function() {
- // global elements used by the functions.
- // the 'sidebarbutton' element is defined as global after its
- // creation, in the add_sidebar_button function
- var bodywrapper = $('.bodywrapper');
- var sidebar = $('.sphinxsidebar');
- var sidebarwrapper = $('.sphinxsidebarwrapper');
-
- // original margin-left of the bodywrapper and width of the sidebar
- // with the sidebar expanded
- var bw_margin_expanded = bodywrapper.css('margin-left');
- var ssb_width_expanded = sidebar.width();
-
- // margin-left of the bodywrapper and width of the sidebar
- // with the sidebar collapsed
- var bw_margin_collapsed = '.8em';
- var ssb_width_collapsed = '.8em';
-
- // colors used by the current theme
- var dark_color = $('.related').css('background-color');
- var light_color = $('.document').css('background-color');
-
- function sidebar_is_collapsed() {
- return sidebarwrapper.is(':not(:visible)');
- }
-
- function toggle_sidebar() {
- if (sidebar_is_collapsed())
- expand_sidebar();
- else
- collapse_sidebar();
- }
-
- function collapse_sidebar() {
- sidebarwrapper.hide();
- sidebar.css('width', ssb_width_collapsed);
- bodywrapper.css('margin-left', bw_margin_collapsed);
- sidebarbutton.css({
- 'margin-left': '0',
- 'height': bodywrapper.height()
- });
- sidebarbutton.find('span').text('»');
- sidebarbutton.attr('title', _('Expand sidebar'));
- document.cookie = 'sidebar=collapsed';
- }
-
- function expand_sidebar() {
- bodywrapper.css('margin-left', bw_margin_expanded);
- sidebar.css('width', ssb_width_expanded);
- sidebarwrapper.show();
- sidebarbutton.css({
- 'margin-left': ssb_width_expanded-12,
- 'height': bodywrapper.height()
- });
- sidebarbutton.find('span').text('«');
- sidebarbutton.attr('title', _('Collapse sidebar'));
- document.cookie = 'sidebar=expanded';
- }
-
- function add_sidebar_button() {
- sidebarwrapper.css({
- 'float': 'left',
- 'margin-right': '0',
- 'width': ssb_width_expanded - 28
- });
- // create the button
- sidebar.append(
- '<div id="sidebarbutton"><span>«</span></div>'
- );
- var sidebarbutton = $('#sidebarbutton');
- light_color = sidebarbutton.css('background-color');
- // find the height of the viewport to center the '<<' in the page
- var viewport_height;
- if (window.innerHeight)
- viewport_height = window.innerHeight;
- else
- viewport_height = $(window).height();
- sidebarbutton.find('span').css({
- 'display': 'block',
- 'margin-top': (viewport_height - sidebar.position().top - 20) / 2
- });
-
- sidebarbutton.click(toggle_sidebar);
- sidebarbutton.attr('title', _('Collapse sidebar'));
- sidebarbutton.css({
- 'color': '#FFFFFF',
- 'border-left': '1px solid ' + dark_color,
- 'font-size': '1.2em',
- 'cursor': 'pointer',
- 'height': bodywrapper.height(),
- 'padding-top': '1px',
- 'margin-left': ssb_width_expanded - 12
- });
-
- sidebarbutton.hover(
- function () {
- $(this).css('background-color', dark_color);
- },
- function () {
- $(this).css('background-color', light_color);
- }
- );
- }
-
- function set_position_from_cookie() {
- if (!document.cookie)
- return;
- var items = document.cookie.split(';');
- for(var k=0; k<items.length; k++) {
- var key_val = items[k].split('=');
- var key = key_val[0];
- if (key == 'sidebar') {
- var value = key_val[1];
- if ((value == 'collapsed') && (!sidebar_is_collapsed()))
- collapse_sidebar();
- else if ((value == 'expanded') && (sidebar_is_collapsed()))
- expand_sidebar();
- }
- }
- }
-
- add_sidebar_button();
- var sidebarbutton = $('#sidebarbutton');
- set_position_from_cookie();
-});
diff --git a/docs/build/_static/theme_extras.js b/docs/build/_static/theme_extras.js
deleted file mode 100644
index 1c04218..0000000
--- a/docs/build/_static/theme_extras.js
+++ /dev/null
@@ -1,26 +0,0 @@
-$(function() {
-
- var
- toc = $('#toc').show(),
- items = $('#toc > ul').hide();
-
- $('#toc h3')
- .click(function() {
- if (items.is(':visible')) {
- items.animate({
- height: 'hide',
- opacity: 'hide'
- }, 300, function() {
- toc.removeClass('expandedtoc');
- });
- }
- else {
- items.animate({
- height: 'show',
- opacity: 'show'
- }, 400);
- toc.addClass('expandedtoc');
- }
- });
-
-});
diff --git a/docs/build/_static/underscore.js b/docs/build/_static/underscore.js
deleted file mode 100644
index 9146e08..0000000
--- a/docs/build/_static/underscore.js
+++ /dev/null
@@ -1,16 +0,0 @@
-(function(){var j=this,n=j._,i=function(a){this._wrapped=a},m=typeof StopIteration!=="undefined"?StopIteration:"__break__",b=j._=function(a){return new i(a)};if(typeof exports!=="undefined")exports._=b;var k=Array.prototype.slice,o=Array.prototype.unshift,p=Object.prototype.toString,q=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;b.VERSION="0.5.5";b.each=function(a,c,d){try{if(a.forEach)a.forEach(c,d);else if(b.isArray(a)||b.isArguments(a))for(var e=0,f=a.length;e<f;e++)c.call(d,
-a[e],e,a);else{var g=b.keys(a);f=g.length;for(e=0;e<f;e++)c.call(d,a[g[e]],g[e],a)}}catch(h){if(h!=m)throw h;}return a};b.map=function(a,c,d){if(a&&b.isFunction(a.map))return a.map(c,d);var e=[];b.each(a,function(f,g,h){e.push(c.call(d,f,g,h))});return e};b.reduce=function(a,c,d,e){if(a&&b.isFunction(a.reduce))return a.reduce(b.bind(d,e),c);b.each(a,function(f,g,h){c=d.call(e,c,f,g,h)});return c};b.reduceRight=function(a,c,d,e){if(a&&b.isFunction(a.reduceRight))return a.reduceRight(b.bind(d,e),c);
-var f=b.clone(b.toArray(a)).reverse();b.each(f,function(g,h){c=d.call(e,c,g,h,a)});return c};b.detect=function(a,c,d){var e;b.each(a,function(f,g,h){if(c.call(d,f,g,h)){e=f;b.breakLoop()}});return e};b.select=function(a,c,d){if(a&&b.isFunction(a.filter))return a.filter(c,d);var e=[];b.each(a,function(f,g,h){c.call(d,f,g,h)&&e.push(f)});return e};b.reject=function(a,c,d){var e=[];b.each(a,function(f,g,h){!c.call(d,f,g,h)&&e.push(f)});return e};b.all=function(a,c,d){c=c||b.identity;if(a&&b.isFunction(a.every))return a.every(c,
-d);var e=true;b.each(a,function(f,g,h){(e=e&&c.call(d,f,g,h))||b.breakLoop()});return e};b.any=function(a,c,d){c=c||b.identity;if(a&&b.isFunction(a.some))return a.some(c,d);var e=false;b.each(a,function(f,g,h){if(e=c.call(d,f,g,h))b.breakLoop()});return e};b.include=function(a,c){if(b.isArray(a))return b.indexOf(a,c)!=-1;var d=false;b.each(a,function(e){if(d=e===c)b.breakLoop()});return d};b.invoke=function(a,c){var d=b.rest(arguments,2);return b.map(a,function(e){return(c?e[c]:e).apply(e,d)})};b.pluck=
-function(a,c){return b.map(a,function(d){return d[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a))return Math.max.apply(Math,a);var e={computed:-Infinity};b.each(a,function(f,g,h){g=c?c.call(d,f,g,h):f;g>=e.computed&&(e={value:f,computed:g})});return e.value};b.min=function(a,c,d){if(!c&&b.isArray(a))return Math.min.apply(Math,a);var e={computed:Infinity};b.each(a,function(f,g,h){g=c?c.call(d,f,g,h):f;g<e.computed&&(e={value:f,computed:g})});return e.value};b.sortBy=function(a,c,d){return b.pluck(b.map(a,
-function(e,f,g){return{value:e,criteria:c.call(d,e,f,g)}}).sort(function(e,f){e=e.criteria;f=f.criteria;return e<f?-1:e>f?1:0}),"value")};b.sortedIndex=function(a,c,d){d=d||b.identity;for(var e=0,f=a.length;e<f;){var g=e+f>>1;d(a[g])<d(c)?(e=g+1):(f=g)}return e};b.toArray=function(a){if(!a)return[];if(a.toArray)return a.toArray();if(b.isArray(a))return a;if(b.isArguments(a))return k.call(a);return b.values(a)};b.size=function(a){return b.toArray(a).length};b.first=function(a,c,d){return c&&!d?k.call(a,
-0,c):a[0]};b.rest=function(a,c,d){return k.call(a,b.isUndefined(c)||d?1:c)};b.last=function(a){return a[a.length-1]};b.compact=function(a){return b.select(a,function(c){return!!c})};b.flatten=function(a){return b.reduce(a,[],function(c,d){if(b.isArray(d))return c.concat(b.flatten(d));c.push(d);return c})};b.without=function(a){var c=b.rest(arguments);return b.select(a,function(d){return!b.include(c,d)})};b.uniq=function(a,c){return b.reduce(a,[],function(d,e,f){if(0==f||(c===true?b.last(d)!=e:!b.include(d,
-e)))d.push(e);return d})};b.intersect=function(a){var c=b.rest(arguments);return b.select(b.uniq(a),function(d){return b.all(c,function(e){return b.indexOf(e,d)>=0})})};b.zip=function(){for(var a=b.toArray(arguments),c=b.max(b.pluck(a,"length")),d=new Array(c),e=0;e<c;e++)d[e]=b.pluck(a,String(e));return d};b.indexOf=function(a,c){if(a.indexOf)return a.indexOf(c);for(var d=0,e=a.length;d<e;d++)if(a[d]===c)return d;return-1};b.lastIndexOf=function(a,c){if(a.lastIndexOf)return a.lastIndexOf(c);for(var d=
-a.length;d--;)if(a[d]===c)return d;return-1};b.range=function(a,c,d){var e=b.toArray(arguments),f=e.length<=1;a=f?0:e[0];c=f?e[0]:e[1];d=e[2]||1;e=Math.ceil((c-a)/d);if(e<=0)return[];e=new Array(e);f=a;for(var g=0;1;f+=d){if((d>0?f-c:c-f)>=0)return e;e[g++]=f}};b.bind=function(a,c){var d=b.rest(arguments,2);return function(){return a.apply(c||j,d.concat(b.toArray(arguments)))}};b.bindAll=function(a){var c=b.rest(arguments);if(c.length==0)c=b.functions(a);b.each(c,function(d){a[d]=b.bind(a[d],a)});
-return a};b.delay=function(a,c){var d=b.rest(arguments,2);return setTimeout(function(){return a.apply(a,d)},c)};b.defer=function(a){return b.delay.apply(b,[a,1].concat(b.rest(arguments)))};b.wrap=function(a,c){return function(){var d=[a].concat(b.toArray(arguments));return c.apply(c,d)}};b.compose=function(){var a=b.toArray(arguments);return function(){for(var c=b.toArray(arguments),d=a.length-1;d>=0;d--)c=[a[d].apply(this,c)];return c[0]}};b.keys=function(a){if(b.isArray(a))return b.range(0,a.length);
-var c=[];for(var d in a)q.call(a,d)&&c.push(d);return c};b.values=function(a){return b.map(a,b.identity)};b.functions=function(a){return b.select(b.keys(a),function(c){return b.isFunction(a[c])}).sort()};b.extend=function(a,c){for(var d in c)a[d]=c[d];return a};b.clone=function(a){if(b.isArray(a))return a.slice(0);return b.extend({},a)};b.tap=function(a,c){c(a);return a};b.isEqual=function(a,c){if(a===c)return true;var d=typeof a;if(d!=typeof c)return false;if(a==c)return true;if(!a&&c||a&&!c)return false;
-if(a.isEqual)return a.isEqual(c);if(b.isDate(a)&&b.isDate(c))return a.getTime()===c.getTime();if(b.isNaN(a)&&b.isNaN(c))return true;if(b.isRegExp(a)&&b.isRegExp(c))return a.source===c.source&&a.global===c.global&&a.ignoreCase===c.ignoreCase&&a.multiline===c.multiline;if(d!=="object")return false;if(a.length&&a.length!==c.length)return false;d=b.keys(a);var e=b.keys(c);if(d.length!=e.length)return false;for(var f in a)if(!b.isEqual(a[f],c[f]))return false;return true};b.isEmpty=function(a){return b.keys(a).length==
-0};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=function(a){return!!(a&&a.concat&&a.unshift)};b.isArguments=function(a){return a&&b.isNumber(a.length)&&!b.isArray(a)&&!r.call(a,"length")};b.isFunction=function(a){return!!(a&&a.constructor&&a.call&&a.apply)};b.isString=function(a){return!!(a===""||a&&a.charCodeAt&&a.substr)};b.isNumber=function(a){return p.call(a)==="[object Number]"};b.isDate=function(a){return!!(a&&a.getTimezoneOffset&&a.setUTCFullYear)};b.isRegExp=function(a){return!!(a&&
-a.test&&a.exec&&(a.ignoreCase||a.ignoreCase===false))};b.isNaN=function(a){return b.isNumber(a)&&isNaN(a)};b.isNull=function(a){return a===null};b.isUndefined=function(a){return typeof a=="undefined"};b.noConflict=function(){j._=n;return this};b.identity=function(a){return a};b.breakLoop=function(){throw m;};var s=0;b.uniqueId=function(a){var c=s++;return a?a+c:c};b.template=function(a,c){a=new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+a.replace(/[\r\t\n]/g,
-" ").replace(/'(?=[^%]*%>)/g,"\t").split("'").join("\\'").split("\t").join("'").replace(/<%=(.+?)%>/g,"',$1,'").split("<%").join("');").split("%>").join("p.push('")+"');}return p.join('');");return c?a(c):a};b.forEach=b.each;b.foldl=b.inject=b.reduce;b.foldr=b.reduceRight;b.filter=b.select;b.every=b.all;b.some=b.any;b.head=b.first;b.tail=b.rest;b.methods=b.functions;var l=function(a,c){return c?b(a).chain():a};b.each(b.functions(b),function(a){var c=b[a];i.prototype[a]=function(){var d=b.toArray(arguments);
-o.call(d,this._wrapped);return l(c.apply(b,d),this._chain)}});b.each(["pop","push","reverse","shift","sort","splice","unshift"],function(a){var c=Array.prototype[a];i.prototype[a]=function(){c.apply(this._wrapped,arguments);return l(this._wrapped,this._chain)}});b.each(["concat","join","slice"],function(a){var c=Array.prototype[a];i.prototype[a]=function(){return l(c.apply(this._wrapped,arguments),this._chain)}});i.prototype.chain=function(){this._chain=true;return this};i.prototype.value=function(){return this._wrapped}})();
diff --git a/docs/build/_static/watermark.png b/docs/build/_static/watermark.png
deleted file mode 100644
index eb1b6be..0000000
Binary files a/docs/build/_static/watermark.png and /dev/null differ
diff --git a/docs/build/_static/watermark_blur.png b/docs/build/_static/watermark_blur.png
deleted file mode 100644
index 563f6cd..0000000
Binary files a/docs/build/_static/watermark_blur.png and /dev/null differ
diff --git a/docs/build/doctrees/api.doctree b/docs/build/doctrees/api.doctree
index 1d53a5b..c9fac92 100644
Binary files a/docs/build/doctrees/api.doctree and b/docs/build/doctrees/api.doctree differ
diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle
index 8ec5ced..3f1e1b1 100644
Binary files a/docs/build/doctrees/environment.pickle and b/docs/build/doctrees/environment.pickle differ
diff --git a/docs/build/doctrees/index.doctree b/docs/build/doctrees/index.doctree
index f33221b..8643071 100644
Binary files a/docs/build/doctrees/index.doctree and b/docs/build/doctrees/index.doctree differ
diff --git a/docs/build/doctrees/man.doctree b/docs/build/doctrees/man.doctree
index 72dad49..5343497 100644
Binary files a/docs/build/doctrees/man.doctree and b/docs/build/doctrees/man.doctree differ
diff --git a/docs/build/doctrees/showfsevents.doctree b/docs/build/doctrees/showfsevents.doctree
deleted file mode 100644
index 14331d4..0000000
Binary files a/docs/build/doctrees/showfsevents.doctree and /dev/null differ
diff --git a/docs/build/genindex.html b/docs/build/genindex.html
deleted file mode 100644
index d8527a5..0000000
--- a/docs/build/genindex.html
+++ /dev/null
@@ -1,96 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
- <title>Index — Autodep v0.1 documentation</title>
- <link rel="stylesheet" href="_static/nature.css" type="text/css" />
- <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
- <script type="text/javascript">
- var DOCUMENTATION_OPTIONS = {
- URL_ROOT: '',
- VERSION: '0.1',
- COLLAPSE_INDEX: false,
- FILE_SUFFIX: '.html',
- HAS_SOURCE: true
- };
- </script>
- <script type="text/javascript" src="_static/jquery.js"></script>
- <script type="text/javascript" src="_static/underscore.js"></script>
- <script type="text/javascript" src="_static/doctools.js"></script>
- <link rel="top" title="Autodep v0.1 documentation" href="index.html" />
- </head>
- <body>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="#" title="General Index"
- accesskey="I">index</a></li>
- <li><a href="index.html">Autodep v0.1 documentation</a> »</li>
- </ul>
- </div>
-
- <div class="document">
- <div class="documentwrapper">
- <div class="bodywrapper">
- <div class="body">
-
-
- <h1 id="index">Index</h1>
-
- <div class="genindex-jumpbox">
- <a href="#E"><strong>E</strong></a>
- </div>
-<h2 id="E">E</h2>
-<table style="width: 100%" class="indextable genindextable"><tr>
- <td style="width: 33%" valign="top"><dl>
- <dt><a href="index.html#enumerate">enumerate() (built-in function)</a></dt>
-</dl></td>
-</tr></table>
-
-
-
- </div>
- </div>
- </div>
- <div class="sphinxsidebar">
- <div class="sphinxsidebarwrapper">
-
-
-
-<div id="searchbox" style="display: none">
- <h3>Quick search</h3>
- <form class="search" action="search.html" method="get">
- <input type="text" name="q" size="18" />
- <input type="submit" value="Go" />
- <input type="hidden" name="check_keywords" value="yes" />
- <input type="hidden" name="area" value="default" />
- </form>
- <p class="searchtip" style="font-size: 90%">
- Enter search terms or a module, class or function name.
- </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
- </div>
- </div>
- <div class="clearer"></div>
- </div>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="#" title="General Index"
- >index</a></li>
- <li><a href="index.html">Autodep v0.1 documentation</a> »</li>
- </ul>
- </div>
- <div class="footer">
- © Copyright 2011, Alexander Bersenev.
- Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
- </div>
- </body>
-</html>
\ No newline at end of file
diff --git a/docs/build/html/_images/autodep_arch.png b/docs/build/html/_images/autodep_arch.png
index 0a965ee..d0bfee9 100644
Binary files a/docs/build/html/_images/autodep_arch.png and b/docs/build/html/_images/autodep_arch.png differ
diff --git a/docs/build/html/_images/autodep_arch1.png b/docs/build/html/_images/autodep_arch1.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch1.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch10.png b/docs/build/html/_images/autodep_arch10.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch10.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch11.png b/docs/build/html/_images/autodep_arch11.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch11.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch12.png b/docs/build/html/_images/autodep_arch12.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch12.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch13.png b/docs/build/html/_images/autodep_arch13.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch13.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch14.png b/docs/build/html/_images/autodep_arch14.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch14.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch15.png b/docs/build/html/_images/autodep_arch15.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch15.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch16.png b/docs/build/html/_images/autodep_arch16.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch16.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch17.png b/docs/build/html/_images/autodep_arch17.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch17.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch18.png b/docs/build/html/_images/autodep_arch18.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch18.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch19.png b/docs/build/html/_images/autodep_arch19.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch19.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch2.png b/docs/build/html/_images/autodep_arch2.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch2.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch20.png b/docs/build/html/_images/autodep_arch20.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch20.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch21.png b/docs/build/html/_images/autodep_arch21.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch21.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch22.png b/docs/build/html/_images/autodep_arch22.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch22.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch23.png b/docs/build/html/_images/autodep_arch23.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch23.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch24.png b/docs/build/html/_images/autodep_arch24.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch24.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch25.png b/docs/build/html/_images/autodep_arch25.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch25.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch26.png b/docs/build/html/_images/autodep_arch26.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch26.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch27.png b/docs/build/html/_images/autodep_arch27.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch27.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch28.png b/docs/build/html/_images/autodep_arch28.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch28.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch29.png b/docs/build/html/_images/autodep_arch29.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch29.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch3.png b/docs/build/html/_images/autodep_arch3.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch3.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch30.png b/docs/build/html/_images/autodep_arch30.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch30.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch31.png b/docs/build/html/_images/autodep_arch31.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch31.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch32.png b/docs/build/html/_images/autodep_arch32.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch32.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch33.png b/docs/build/html/_images/autodep_arch33.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch33.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch34.png b/docs/build/html/_images/autodep_arch34.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch34.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch35.png b/docs/build/html/_images/autodep_arch35.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch35.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch36.png b/docs/build/html/_images/autodep_arch36.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch36.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch37.png b/docs/build/html/_images/autodep_arch37.png
deleted file mode 100644
index 3a9d310..0000000
Binary files a/docs/build/html/_images/autodep_arch37.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch38.png b/docs/build/html/_images/autodep_arch38.png
deleted file mode 100644
index d0bfee9..0000000
Binary files a/docs/build/html/_images/autodep_arch38.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch39.png b/docs/build/html/_images/autodep_arch39.png
deleted file mode 100644
index d0bfee9..0000000
Binary files a/docs/build/html/_images/autodep_arch39.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch4.png b/docs/build/html/_images/autodep_arch4.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch4.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch40.png b/docs/build/html/_images/autodep_arch40.png
deleted file mode 100644
index d0bfee9..0000000
Binary files a/docs/build/html/_images/autodep_arch40.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch41.png b/docs/build/html/_images/autodep_arch41.png
deleted file mode 100644
index d0bfee9..0000000
Binary files a/docs/build/html/_images/autodep_arch41.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch42.png b/docs/build/html/_images/autodep_arch42.png
deleted file mode 100644
index d0bfee9..0000000
Binary files a/docs/build/html/_images/autodep_arch42.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch43.png b/docs/build/html/_images/autodep_arch43.png
deleted file mode 100644
index d0bfee9..0000000
Binary files a/docs/build/html/_images/autodep_arch43.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch44.png b/docs/build/html/_images/autodep_arch44.png
deleted file mode 100644
index d0bfee9..0000000
Binary files a/docs/build/html/_images/autodep_arch44.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch45.png b/docs/build/html/_images/autodep_arch45.png
deleted file mode 100644
index d0bfee9..0000000
Binary files a/docs/build/html/_images/autodep_arch45.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch46.png b/docs/build/html/_images/autodep_arch46.png
deleted file mode 100644
index d0bfee9..0000000
Binary files a/docs/build/html/_images/autodep_arch46.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch47.png b/docs/build/html/_images/autodep_arch47.png
deleted file mode 100644
index d0bfee9..0000000
Binary files a/docs/build/html/_images/autodep_arch47.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch48.png b/docs/build/html/_images/autodep_arch48.png
deleted file mode 100644
index d0bfee9..0000000
Binary files a/docs/build/html/_images/autodep_arch48.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch5.png b/docs/build/html/_images/autodep_arch5.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch5.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch6.png b/docs/build/html/_images/autodep_arch6.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch6.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch7.png b/docs/build/html/_images/autodep_arch7.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch7.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch8.png b/docs/build/html/_images/autodep_arch8.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch8.png and /dev/null differ
diff --git a/docs/build/html/_images/autodep_arch9.png b/docs/build/html/_images/autodep_arch9.png
deleted file mode 100644
index 0a965ee..0000000
Binary files a/docs/build/html/_images/autodep_arch9.png and /dev/null differ
diff --git a/docs/build/html/_images/graphviz-1d7724071aa6c7e719d4a7dfbe5e67c8e2ce14a6.png b/docs/build/html/_images/graphviz-1d7724071aa6c7e719d4a7dfbe5e67c8e2ce14a6.png
deleted file mode 100644
index 7de9a01..0000000
Binary files a/docs/build/html/_images/graphviz-1d7724071aa6c7e719d4a7dfbe5e67c8e2ce14a6.png and /dev/null differ
diff --git a/docs/build/html/_images/graphviz-1d7724071aa6c7e719d4a7dfbe5e67c8e2ce14a6.png.map b/docs/build/html/_images/graphviz-1d7724071aa6c7e719d4a7dfbe5e67c8e2ce14a6.png.map
deleted file mode 100644
index 649d660..0000000
--- a/docs/build/html/_images/graphviz-1d7724071aa6c7e719d4a7dfbe5e67c8e2ce14a6.png.map
+++ /dev/null
@@ -1,2 +0,0 @@
-<map id="foo" name="foo">
-</map>
diff --git a/docs/build/html/_images/graphviz-338b456b762ba164f6da32145fa8824021aa744d.png b/docs/build/html/_images/graphviz-338b456b762ba164f6da32145fa8824021aa744d.png
deleted file mode 100644
index 6d9e4e8..0000000
Binary files a/docs/build/html/_images/graphviz-338b456b762ba164f6da32145fa8824021aa744d.png and /dev/null differ
diff --git a/docs/build/html/_images/graphviz-338b456b762ba164f6da32145fa8824021aa744d.png.map b/docs/build/html/_images/graphviz-338b456b762ba164f6da32145fa8824021aa744d.png.map
deleted file mode 100644
index 649d660..0000000
--- a/docs/build/html/_images/graphviz-338b456b762ba164f6da32145fa8824021aa744d.png.map
+++ /dev/null
@@ -1,2 +0,0 @@
-<map id="foo" name="foo">
-</map>
diff --git a/docs/build/html/_images/graphviz-509ef36c80465decbfacbd606577688e01d7f7f8.png b/docs/build/html/_images/graphviz-509ef36c80465decbfacbd606577688e01d7f7f8.png
deleted file mode 100644
index 56519ce..0000000
Binary files a/docs/build/html/_images/graphviz-509ef36c80465decbfacbd606577688e01d7f7f8.png and /dev/null differ
diff --git a/docs/build/html/_images/graphviz-509ef36c80465decbfacbd606577688e01d7f7f8.png.map b/docs/build/html/_images/graphviz-509ef36c80465decbfacbd606577688e01d7f7f8.png.map
deleted file mode 100644
index 649d660..0000000
--- a/docs/build/html/_images/graphviz-509ef36c80465decbfacbd606577688e01d7f7f8.png.map
+++ /dev/null
@@ -1,2 +0,0 @@
-<map id="foo" name="foo">
-</map>
diff --git a/docs/build/html/_images/graphviz-7d4cad14c55812f78f51e2aadd74c8006953ba91.png b/docs/build/html/_images/graphviz-7d4cad14c55812f78f51e2aadd74c8006953ba91.png
deleted file mode 100644
index 31e68d3..0000000
Binary files a/docs/build/html/_images/graphviz-7d4cad14c55812f78f51e2aadd74c8006953ba91.png and /dev/null differ
diff --git a/docs/build/html/_images/graphviz-7d4cad14c55812f78f51e2aadd74c8006953ba91.png.map b/docs/build/html/_images/graphviz-7d4cad14c55812f78f51e2aadd74c8006953ba91.png.map
deleted file mode 100644
index 649d660..0000000
--- a/docs/build/html/_images/graphviz-7d4cad14c55812f78f51e2aadd74c8006953ba91.png.map
+++ /dev/null
@@ -1,2 +0,0 @@
-<map id="foo" name="foo">
-</map>
diff --git a/docs/build/html/_images/graphviz-bd36c7a40132734a92167ffd31f6b6279ec648c0.png b/docs/build/html/_images/graphviz-bd36c7a40132734a92167ffd31f6b6279ec648c0.png
deleted file mode 100644
index d798741..0000000
Binary files a/docs/build/html/_images/graphviz-bd36c7a40132734a92167ffd31f6b6279ec648c0.png and /dev/null differ
diff --git a/docs/build/html/_images/graphviz-bd36c7a40132734a92167ffd31f6b6279ec648c0.png.map b/docs/build/html/_images/graphviz-bd36c7a40132734a92167ffd31f6b6279ec648c0.png.map
deleted file mode 100644
index 649d660..0000000
--- a/docs/build/html/_images/graphviz-bd36c7a40132734a92167ffd31f6b6279ec648c0.png.map
+++ /dev/null
@@ -1,2 +0,0 @@
-<map id="foo" name="foo">
-</map>
diff --git a/docs/build/html/_images/graphviz-d8f3ab7a7bb23eac4fcdf217185fce2c8149cab7.png b/docs/build/html/_images/graphviz-d8f3ab7a7bb23eac4fcdf217185fce2c8149cab7.png
deleted file mode 100644
index 534f138..0000000
Binary files a/docs/build/html/_images/graphviz-d8f3ab7a7bb23eac4fcdf217185fce2c8149cab7.png and /dev/null differ
diff --git a/docs/build/html/_images/graphviz-d8f3ab7a7bb23eac4fcdf217185fce2c8149cab7.png.map b/docs/build/html/_images/graphviz-d8f3ab7a7bb23eac4fcdf217185fce2c8149cab7.png.map
deleted file mode 100644
index 649d660..0000000
--- a/docs/build/html/_images/graphviz-d8f3ab7a7bb23eac4fcdf217185fce2c8149cab7.png.map
+++ /dev/null
@@ -1,2 +0,0 @@
-<map id="foo" name="foo">
-</map>
diff --git a/docs/build/html/_modules/helpers/colorize_output.html b/docs/build/html/_modules/helpers/colorize_output.html
deleted file mode 100644
index d6077f1..0000000
--- a/docs/build/html/_modules/helpers/colorize_output.html
+++ /dev/null
@@ -1,116 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
- <title>helpers.colorize_output — Autodep documentation</title>
- <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
- <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
- <script type="text/javascript">
- var DOCUMENTATION_OPTIONS = {
- URL_ROOT: '../../',
- VERSION: '0.1',
- COLLAPSE_INDEX: false,
- FILE_SUFFIX: '.html',
- HAS_SOURCE: true
- };
- </script>
- <script type="text/javascript" src="../../_static/jquery.js"></script>
- <script type="text/javascript" src="../../_static/underscore.js"></script>
- <script type="text/javascript" src="../../_static/doctools.js"></script>
- <link rel="top" title="Autodep documentation" href="../../index.html" />
- <link rel="up" title="Module code" href="../index.html" />
- </head>
- <body>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="../../genindex.html" title="General Index"
- accesskey="I">index</a></li>
- <li class="right" >
- <a href="../../py-modindex.html" title="Python Module Index"
- >modules</a> |</li>
- <li><a href="../../index.html">Autodep</a> »</li>
- <li><a href="../index.html" accesskey="U">Module code</a> »</li>
- </ul>
- </div>
-
- <div class="document">
- <div class="documentwrapper">
- <div class="bodywrapper">
- <div class="body">
-
- <h1>Source code for helpers.colorize_output</h1><div class="highlight"><pre>
-<span class="c">#!/usr/bin/env python</span>
-
-<div class="viewcode-block" id="color_printer"><a class="viewcode-back" href="../../api.html#helpers.colorize_output.color_printer">[docs]</a><span class="k">class</span> <span class="nc">color_printer</span><span class="p">:</span>
- <span class="sd">"""</span>
-<span class="sd"> A class for printing colored strings</span>
-<span class="sd"> """</span>
-<span class="c"># HEADER = '\033[95m'</span>
-<span class="c"># OKBLUE = '\033[94m'</span>
-<span class="c"># OKGREEN = '\033[92m'</span>
-<span class="c"># FAIL = '\033[91m'</span>
-
- <span class="c">## \param enable_colors activate color output</span>
- <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">enable_colors</span><span class="o">=</span><span class="bp">True</span><span class="p">):</span>
- <span class="k">if</span> <span class="n">enable_colors</span><span class="p">:</span>
- <span class="bp">self</span><span class="o">.</span><span class="n">COLOR2CODE</span><span class="o">=</span><span class="p">{</span><span class="s">"warning"</span><span class="p">:</span><span class="s">'</span><span class="se">\033</span><span class="s">[91m'</span><span class="p">,</span> <span class="s">"text"</span><span class="p">:</span><span class="s">'</span><span class="se">\033</span><span class="s">[90m'</span><span class="p">}</span>
- <span class="bp">self</span><span class="o">.</span><span class="n">ENDCOLOR</span><span class="o">=</span><span class="s">'</span><span class="se">\033</span><span class="s">[0m'</span>
- <span class="k">else</span><span class="p">:</span>
- <span class="bp">self</span><span class="o">.</span><span class="n">COLOR2CODE</span><span class="o">=</span><span class="p">{</span><span class="s">"warning"</span><span class="p">:</span><span class="s">''</span><span class="p">,</span> <span class="s">"text"</span><span class="p">:</span><span class="s">''</span><span class="p">}</span>
- <span class="bp">self</span><span class="o">.</span><span class="n">ENDCOLOR</span><span class="o">=</span><span class="s">''</span>
- <span class="c">## Prints a colored message</span>
- <span class="c"># \param importance is a string "warning" or "text". Color depends on it</span>
- <span class="c"># \param msg is a message to print</span>
- <span class="k">def</span> <span class="nf">printmsg</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">importance</span><span class="p">,</span><span class="n">msg</span><span class="p">):</span>
- <span class="k">print</span> <span class="bp">self</span><span class="o">.</span><span class="n">COLOR2CODE</span><span class="p">[</span><span class="n">importance</span><span class="p">]</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">ENDCOLOR</span><span class="p">,</span></div>
-</pre></div>
-
- </div>
- </div>
- </div>
- <div class="sphinxsidebar">
- <div class="sphinxsidebarwrapper">
-<div id="searchbox" style="display: none">
- <h3>Quick search</h3>
- <form class="search" action="../../search.html" method="get">
- <input type="text" name="q" size="18" />
- <input type="submit" value="Go" />
- <input type="hidden" name="check_keywords" value="yes" />
- <input type="hidden" name="area" value="default" />
- </form>
- <p class="searchtip" style="font-size: 90%">
- Enter search terms or a module, class or function name.
- </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
- </div>
- </div>
- <div class="clearer"></div>
- </div>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="../../genindex.html" title="General Index"
- >index</a></li>
- <li class="right" >
- <a href="../../py-modindex.html" title="Python Module Index"
- >modules</a> |</li>
- <li><a href="../../index.html">Autodep</a> »</li>
- <li><a href="../index.html" >Module code</a> »</li>
- </ul>
- </div>
- <div class="footer">
- © Copyright 2011, Alexander Bersenev.
- Last updated on Jul 25, 2011.
- Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
- </div>
- </body>
-</html>
\ No newline at end of file
diff --git a/docs/build/html/_modules/index.html b/docs/build/html/_modules/index.html
index f92af48..9bb0382 100644
--- a/docs/build/html/_modules/index.html
+++ b/docs/build/html/_modules/index.html
@@ -44,12 +44,10 @@
<div class="body">
<h1>All modules for which code is available</h1>
-<ul><li><a href="helpers/colorize_output.html">helpers.colorize_output</a></li>
-<li><a href="logfs/fstracer.html">logfs.fstracer</a></li>
+<ul><li><a href="logfs/fstracer.html">logfs.fstracer</a></li>
<li><a href="package_utils/portage_log_parser.html">package_utils.portage_log_parser</a></li>
<li><a href="package_utils/portage_misc_functions.html">package_utils.portage_misc_functions</a></li>
<li><a href="package_utils/portage_utils.html">package_utils.portage_utils</a></li>
-<li><a href="test.html">test</a></li>
</ul>
</div>
diff --git a/docs/build/html/_modules/logfs/fstracer.html b/docs/build/html/_modules/logfs/fstracer.html
index efec07a..fc474a1 100644
--- a/docs/build/html/_modules/logfs/fstracer.html
+++ b/docs/build/html/_modules/logfs/fstracer.html
@@ -97,7 +97,26 @@
<span class="k">return</span> <span class="bp">True</span>
<div class="viewcode-block" id="getfsevents"><a class="viewcode-back" href="../../api.html#logfs.fstracer.getfsevents">[docs]</a><span class="k">def</span> <span class="nf">getfsevents</span><span class="p">(</span><span class="n">prog_name</span><span class="p">,</span><span class="n">arguments</span><span class="p">,</span><span class="n">approach</span><span class="o">=</span><span class="s">"hooklib"</span><span class="p">,</span><span class="n">filterproc</span><span class="o">=</span><span class="n">defaultfilter</span><span class="p">):</span>
- <span class="sd">""" run the program and get file access events """</span>
+ <span class="sd">""" </span>
+<span class="sd"> Launches a program and gets file access events</span>
+
+<span class="sd"> :param prog_name: name of program</span>
+<span class="sd"> :param arguments: list of program's arguments</span>
+<span class="sd"> :param approach: a logging approach('hooklib' or 'fusefs')</span>
+<span class="sd"> :param filterproc: filter function, this function should take 3 strings:</span>
+<span class="sd"> name of event, name of file and stage, and return a *True* if event is </span>
+<span class="sd"> allowed and *False* instead. Name of event is one of *'open'*, *'read'* or</span>
+<span class="sd"> *'write'*. Default function always returns *True*. </span>
+<span class="sd"> :returns: **list** with two elements - *success* events and *failed* events.</span>
+<span class="sd"> Each element is dictionary **stage->file information**.</span>
+<span class="sd"> File information is also a dictionary **filename->type of events**.</span>
+<span class="sd"> Type of events for success events is a 2-element tuple: *(was file readed,</span>
+<span class="sd"> was file writed)*. For failed events it is also 2-element tuple:</span>
+<span class="sd"> *(was file not found, was file blocked by filterproc)*. Each element of </span>
+<span class="sd"> tuple can be *True* or *False*. Both elements of tuple can be *False*.</span>
+<span class="sd"> Stage can be *'unknown'*</span>
+<span class="sd"> """</span>
+
<span class="n">events</span><span class="o">=</span><span class="p">{}</span>
<span class="c"># generate a random socketname</span>
<span class="n">tmpdir</span> <span class="o">=</span> <span class="n">tempfile</span><span class="o">.</span><span class="n">mkdtemp</span><span class="p">()</span>
diff --git a/docs/build/html/_modules/package_utils/portage_log_parser.html b/docs/build/html/_modules/package_utils/portage_log_parser.html
index 55a3fca..47f92b6 100644
--- a/docs/build/html/_modules/package_utils/portage_log_parser.html
+++ b/docs/build/html/_modules/package_utils/portage_log_parser.html
@@ -58,7 +58,12 @@
<div class="viewcode-block" id="get_list_of_merged_packages"><a class="viewcode-back" href="../../api.html#package_utils.portage_log_parser.get_list_of_merged_packages">[docs]</a><span class="k">def</span> <span class="nf">get_list_of_merged_packages</span><span class="p">(</span><span class="n">starttime</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="n">endtime</span><span class="o">=-</span><span class="mi">1</span><span class="p">):</span>
<span class="sd">"""</span>
-<span class="sd"> Parses a log and finds first successfully merged packages chain</span>
+<span class="sd"> Parses an emerge log and finds first successfully merged packages chain</span>
+
+<span class="sd"> :param starttime: start time for searching(in seconds since 1970)</span>
+<span class="sd"> :param starttime: end time for searching(in seconds since 1970).</span>
+<span class="sd"> :returns: **list** of package names</span>
+<span class="sd"> </span>
<span class="sd"> """</span>
<span class="n">ret</span><span class="o">=</span><span class="p">[]</span>
<span class="k">try</span><span class="p">:</span>
diff --git a/docs/build/html/_modules/package_utils/portage_misc_functions.html b/docs/build/html/_modules/package_utils/portage_misc_functions.html
index 05a226b..d95ce7d 100644
--- a/docs/build/html/_modules/package_utils/portage_misc_functions.html
+++ b/docs/build/html/_modules/package_utils/portage_misc_functions.html
@@ -60,6 +60,7 @@
<div class="viewcode-block" id="portage_api"><a class="viewcode-back" href="../../api.html#package_utils.portage_misc_functions.portage_api">[docs]</a><span class="k">class</span> <span class="nc">portage_api</span><span class="p">:</span>
<span class="sd">""" class for accessing the portage api """</span>
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="sd">""" test """</span>
<span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">=</span><span class="n">portage</span><span class="o">.</span><span class="n">config</span><span class="p">(</span><span class="n">clone</span><span class="o">=</span><span class="n">portage</span><span class="o">.</span><span class="n">settings</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">vartree</span><span class="o">=</span><span class="n">portage</span><span class="o">.</span><span class="n">db</span><span class="p">[</span><span class="n">portage</span><span class="o">.</span><span class="n">root</span><span class="p">][</span><span class="s">'vartree'</span><span class="p">]</span>
<span class="bp">self</span><span class="o">.</span><span class="n">vardb</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">vartree</span><span class="o">.</span><span class="n">dbapi</span>
@@ -69,6 +70,14 @@
<span class="c"># recursive dependency getter</span>
<div class="viewcode-block" id="portage_api.get_deps"><a class="viewcode-back" href="../../api.html#package_utils.portage_misc_functions.portage_api.get_deps">[docs]</a> <span class="k">def</span> <span class="nf">get_deps</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">pkg</span><span class="p">,</span><span class="n">dep_type</span><span class="o">=</span><span class="p">[</span><span class="s">"RDEPEND"</span><span class="p">,</span><span class="s">"DEPEND"</span><span class="p">]):</span>
+ <span class="sd">""" </span>
+<span class="sd"> Gets current dependencies of a package on any depth </span>
+<span class="sd"> </span>
+<span class="sd"> :param pkg: name of package</span>
+<span class="sd"> :param dep_type: type of dependencies to recurse. Can be ["DEPEND"] or </span>
+<span class="sd"> ["RDEPEND", "DEPEND"]</span>
+<span class="sd"> :returns: **set** of packages names</span>
+<span class="sd"> """</span>
<span class="c">#pkg="kde-meta"</span>
<span class="c">#print self.vardb.match("<sys-apps/paludis-0.26.0_alpha5")</span>
<span class="c">#metadata = dict(zip(self.metadata_keys, self.vardb.aux_get(pkg, self.metadata_keys)))</span>
@@ -115,9 +124,13 @@
<span class="n">ret</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">pkg</span><span class="p">)</span>
<span class="n">unknown_packages</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">pkg</span><span class="p">)</span>
<span class="k">return</span> <span class="n">ret</span>
-
- <span class="c"># returns all packages from system set. They are always implicit dependencies</span></div>
+</div>
<div class="viewcode-block" id="portage_api.get_system_packages_list"><a class="viewcode-back" href="../../api.html#package_utils.portage_misc_functions.portage_api.get_system_packages_list">[docs]</a> <span class="k">def</span> <span class="nf">get_system_packages_list</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="sd">""" </span>
+<span class="sd"> returns all packages from system set. They are always implicit dependencies</span>
+<span class="sd"> </span>
+<span class="sd"> :returns: **list** of package names</span>
+<span class="sd"> """</span>
<span class="n">ret</span><span class="o">=</span><span class="p">[]</span>
<span class="k">for</span> <span class="n">atom</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">packages</span><span class="p">:</span>
<span class="k">for</span> <span class="n">pre_pkg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">vartree</span><span class="o">.</span><span class="n">dep_match</span><span class="p">(</span><span class="n">atom</span><span class="p">):</span>
@@ -125,9 +138,15 @@
<span class="k">for</span> <span class="n">pkg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">vartree</span><span class="o">.</span><span class="n">dep_match</span><span class="p">(</span><span class="n">unvirt_pkg</span><span class="p">):</span>
<span class="n">ret</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">pkg</span><span class="p">)</span>
<span class="k">return</span> <span class="n">ret</span>
-
- <span class="c"># call emerge arguments parser</span></div>
+</div>
<div class="viewcode-block" id="portage_api.parse_emerge_args"><a class="viewcode-back" href="../../api.html#package_utils.portage_misc_functions.portage_api.parse_emerge_args">[docs]</a> <span class="k">def</span> <span class="nf">parse_emerge_args</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">args</span><span class="p">):</span>
+ <span class="sd">""" </span>
+<span class="sd"> call emerge arguments parser </span>
+<span class="sd"> </span>
+<span class="sd"> :param args: arguments passed to emerge</span>
+<span class="sd"> :returns: **tuple** (action string, options dictionary, files or atoms </span>
+<span class="sd"> list)</span>
+<span class="sd"> """</span>
<span class="n">action</span><span class="p">,</span> <span class="n">opts</span><span class="p">,</span> <span class="n">files</span> <span class="o">=</span> <span class="n">parse_opts</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">silent</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
<span class="k">return</span> <span class="n">action</span><span class="p">,</span> <span class="n">opts</span><span class="p">,</span> <span class="n">files</span>
</pre></div></div></div>
diff --git a/docs/build/html/_modules/package_utils/portage_utils.html b/docs/build/html/_modules/package_utils/portage_utils.html
index 9acafcf..94f8a00 100644
--- a/docs/build/html/_modules/package_utils/portage_utils.html
+++ b/docs/build/html/_modules/package_utils/portage_utils.html
@@ -54,10 +54,9 @@
<div class="viewcode-block" id="getpackagesbyfiles"><a class="viewcode-back" href="../../api.html#package_utils.portage_utils.getpackagesbyfiles">[docs]</a><span class="k">def</span> <span class="nf">getpackagesbyfiles</span><span class="p">(</span><span class="n">files</span><span class="p">):</span>
<span class="sd">"""</span>
-<span class="sd"> Gets packages </span>
-<span class="sd"> </span>
-<span class="sd"> :</span>
-<span class="sd"> </span>
+<span class="sd"> :param files: list of filenames</span>
+<span class="sd"> :returns: **dictionary** file->package, if file doesn't belong to any</span>
+<span class="sd"> package it not returned as key of this dictionary</span>
<span class="sd"> """</span>
<span class="n">ret</span><span class="o">=</span><span class="p">{}</span>
<span class="n">listtocheck</span><span class="o">=</span><span class="p">[]</span>
@@ -95,6 +94,11 @@
<span class="k">return</span> <span class="n">ret</span>
</div>
<div class="viewcode-block" id="getfilesbypackage"><a class="viewcode-back" href="../../api.html#package_utils.portage_utils.getfilesbypackage">[docs]</a><span class="k">def</span> <span class="nf">getfilesbypackage</span><span class="p">(</span><span class="n">packagename</span><span class="p">):</span>
+ <span class="sd">"""</span>
+<span class="sd"> </span>
+<span class="sd"> :param packagename: name of package</span>
+<span class="sd"> :returns: **list** of files in package with name *packagename*</span>
+<span class="sd"> """</span>
<span class="n">ret</span><span class="o">=</span><span class="p">[]</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">proc</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">([</span><span class="s">'qlist'</span><span class="p">]</span><span class="o">+</span><span class="p">[</span><span class="s">'--nocolor'</span><span class="p">,</span><span class="s">"--obj"</span><span class="p">,</span><span class="n">packagename</span><span class="p">],</span>
diff --git a/docs/build/html/_modules/test.html b/docs/build/html/_modules/test.html
deleted file mode 100644
index 7d73767..0000000
--- a/docs/build/html/_modules/test.html
+++ /dev/null
@@ -1,93 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
- <title>test — Autodep documentation</title>
- <link rel="stylesheet" href="../_static/default.css" type="text/css" />
- <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
- <script type="text/javascript">
- var DOCUMENTATION_OPTIONS = {
- URL_ROOT: '../',
- VERSION: '0.1',
- COLLAPSE_INDEX: false,
- FILE_SUFFIX: '.html',
- HAS_SOURCE: true
- };
- </script>
- <script type="text/javascript" src="../_static/jquery.js"></script>
- <script type="text/javascript" src="../_static/underscore.js"></script>
- <script type="text/javascript" src="../_static/doctools.js"></script>
- <link rel="top" title="Autodep documentation" href="../index.html" />
- <link rel="up" title="Module code" href="index.html" />
- </head>
- <body>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="../genindex.html" title="General Index"
- accesskey="I">index</a></li>
- <li class="right" >
- <a href="../py-modindex.html" title="Python Module Index"
- >modules</a> |</li>
- <li><a href="../index.html">Autodep</a> »</li>
- <li><a href="index.html" accesskey="U">Module code</a> »</li>
- </ul>
- </div>
-
- <div class="document">
- <div class="documentwrapper">
- <div class="bodywrapper">
- <div class="body">
-
- <h1>Source code for test</h1><div class="highlight"><pre>
-<span class="c"># Dummy file to make this directory a package.</span>
-</pre></div>
-
- </div>
- </div>
- </div>
- <div class="sphinxsidebar">
- <div class="sphinxsidebarwrapper">
-<div id="searchbox" style="display: none">
- <h3>Quick search</h3>
- <form class="search" action="../search.html" method="get">
- <input type="text" name="q" size="18" />
- <input type="submit" value="Go" />
- <input type="hidden" name="check_keywords" value="yes" />
- <input type="hidden" name="area" value="default" />
- </form>
- <p class="searchtip" style="font-size: 90%">
- Enter search terms or a module, class or function name.
- </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
- </div>
- </div>
- <div class="clearer"></div>
- </div>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="../genindex.html" title="General Index"
- >index</a></li>
- <li class="right" >
- <a href="../py-modindex.html" title="Python Module Index"
- >modules</a> |</li>
- <li><a href="../index.html">Autodep</a> »</li>
- <li><a href="index.html" >Module code</a> »</li>
- </ul>
- </div>
- <div class="footer">
- © Copyright 2011, Alexander Bersenev.
- Last updated on Jul 25, 2011.
- Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
- </div>
- </body>
-</html>
\ No newline at end of file
diff --git a/docs/build/html/_sources/showfsevents.txt b/docs/build/html/_sources/showfsevents.txt
deleted file mode 100644
index 6da2f30..0000000
--- a/docs/build/html/_sources/showfsevents.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-TITLE
-========
\ No newline at end of file
diff --git a/docs/build/html/_static/alert_info_32.png b/docs/build/html/_static/alert_info_32.png
deleted file mode 100644
index 05b4fe8..0000000
Binary files a/docs/build/html/_static/alert_info_32.png and /dev/null differ
diff --git a/docs/build/html/_static/alert_warning_32.png b/docs/build/html/_static/alert_warning_32.png
deleted file mode 100644
index f13611c..0000000
Binary files a/docs/build/html/_static/alert_warning_32.png and /dev/null differ
diff --git a/docs/build/html/_static/bg-page.png b/docs/build/html/_static/bg-page.png
deleted file mode 100644
index c6f3bc4..0000000
Binary files a/docs/build/html/_static/bg-page.png and /dev/null differ
diff --git a/docs/build/html/_static/bullet_orange.png b/docs/build/html/_static/bullet_orange.png
deleted file mode 100644
index ad5d02f..0000000
Binary files a/docs/build/html/_static/bullet_orange.png and /dev/null differ
diff --git a/docs/build/html/_static/haiku.css b/docs/build/html/_static/haiku.css
deleted file mode 100644
index 1b7c261..0000000
--- a/docs/build/html/_static/haiku.css
+++ /dev/null
@@ -1,371 +0,0 @@
-/*
- * haiku.css_t
- * ~~~~~~~~~~~
- *
- * Sphinx stylesheet -- haiku theme.
- *
- * Adapted from http://haiku-os.org/docs/Haiku-doc.css.
- * Original copyright message:
- *
- * Copyright 2008-2009, Haiku. All rights reserved.
- * Distributed under the terms of the MIT License.
- *
- * Authors:
- * Francois Revol <revol@free.fr>
- * Stephan Assmus <superstippi@gmx.de>
- * Braden Ewing <brewin@gmail.com>
- * Humdinger <humdingerb@gmail.com>
- *
- * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
- * :license: BSD, see LICENSE for details.
- *
- */
-
-@import url("basic.css");
-
-html {
- margin: 0px;
- padding: 0px;
- background: #FFF url(bg-page.png) top left repeat-x;
-}
-
-body {
- line-height: 1.5;
- margin: auto;
- padding: 0px;
- font-family: "DejaVu Sans", Arial, Helvetica, sans-serif;
- min-width: 59em;
- max-width: 70em;
- color: #333333;
-}
-
-div.footer {
- padding: 8px;
- font-size: 11px;
- text-align: center;
- letter-spacing: 0.5px;
-}
-
-/* link colors and text decoration */
-
-a:link {
- font-weight: bold;
- text-decoration: none;
- color: #dc3c01;
-}
-
-a:visited {
- font-weight: bold;
- text-decoration: none;
- color: #892601;
-}
-
-a:hover, a:active {
- text-decoration: underline;
- color: #ff4500;
-}
-
-/* Some headers act as anchors, don't give them a hover effect */
-
-h1 a:hover, a:active {
- text-decoration: none;
- color: #0c3762;
-}
-
-h2 a:hover, a:active {
- text-decoration: none;
- color: #0c3762;
-}
-
-h3 a:hover, a:active {
- text-decoration: none;
- color: #0c3762;
-}
-
-h4 a:hover, a:active {
- text-decoration: none;
- color: #0c3762;
-}
-
-a.headerlink {
- color: #a7ce38;
- padding-left: 5px;
-}
-
-a.headerlink:hover {
- color: #a7ce38;
-}
-
-/* basic text elements */
-
-div.content {
- margin-top: 20px;
- margin-left: 40px;
- margin-right: 40px;
- margin-bottom: 50px;
- font-size: 0.9em;
-}
-
-/* heading and navigation */
-
-div.header {
- position: relative;
- left: 0px;
- top: 0px;
- height: 85px;
- /* background: #eeeeee; */
- padding: 0 40px;
-}
-div.header h1 {
- font-size: 1.6em;
- font-weight: normal;
- letter-spacing: 1px;
- color: #0c3762;
- border: 0;
- margin: 0;
- padding-top: 15px;
-}
-div.header h1 a {
- font-weight: normal;
- color: #0c3762;
-}
-div.header h2 {
- font-size: 1.3em;
- font-weight: normal;
- letter-spacing: 1px;
- text-transform: uppercase;
- color: #aaa;
- border: 0;
- margin-top: -3px;
- padding: 0;
-}
-
-div.header img.rightlogo {
- float: right;
-}
-
-
-div.title {
- font-size: 1.3em;
- font-weight: bold;
- color: #0c3762;
- border-bottom: dotted thin #e0e0e0;
- margin-bottom: 25px;
-}
-div.topnav {
- /* background: #e0e0e0; */
-}
-div.topnav p {
- margin-top: 0;
- margin-left: 40px;
- margin-right: 40px;
- margin-bottom: 0px;
- text-align: right;
- font-size: 0.8em;
-}
-div.bottomnav {
- background: #eeeeee;
-}
-div.bottomnav p {
- margin-right: 40px;
- text-align: right;
- font-size: 0.8em;
-}
-
-a.uplink {
- font-weight: normal;
-}
-
-
-/* contents box */
-
-table.index {
- margin: 0px 0px 30px 30px;
- padding: 1px;
- border-width: 1px;
- border-style: dotted;
- border-color: #e0e0e0;
-}
-table.index tr.heading {
- background-color: #e0e0e0;
- text-align: center;
- font-weight: bold;
- font-size: 1.1em;
-}
-table.index tr.index {
- background-color: #eeeeee;
-}
-table.index td {
- padding: 5px 20px;
-}
-
-table.index a:link, table.index a:visited {
- font-weight: normal;
- text-decoration: none;
- color: #dc3c01;
-}
-table.index a:hover, table.index a:active {
- text-decoration: underline;
- color: #ff4500;
-}
-
-
-/* Haiku User Guide styles and layout */
-
-/* Rounded corner boxes */
-/* Common declarations */
-div.admonition {
- -webkit-border-radius: 10px;
- -khtml-border-radius: 10px;
- -moz-border-radius: 10px;
- border-radius: 10px;
- border-style: dotted;
- border-width: thin;
- border-color: #dcdcdc;
- padding: 10px 15px 10px 15px;
- margin-bottom: 15px;
- margin-top: 15px;
-}
-div.note {
- padding: 10px 15px 10px 80px;
- background: #e4ffde url(alert_info_32.png) 15px 15px no-repeat;
- min-height: 42px;
-}
-div.warning {
- padding: 10px 15px 10px 80px;
- background: #fffbc6 url(alert_warning_32.png) 15px 15px no-repeat;
- min-height: 42px;
-}
-div.seealso {
- background: #e4ffde;
-}
-
-/* More layout and styles */
-h1 {
- font-size: 1.3em;
- font-weight: bold;
- color: #0c3762;
- border-bottom: dotted thin #e0e0e0;
- margin-top: 30px;
-}
-
-h2 {
- font-size: 1.2em;
- font-weight: normal;
- color: #0c3762;
- border-bottom: dotted thin #e0e0e0;
- margin-top: 30px;
-}
-
-h3 {
- font-size: 1.1em;
- font-weight: normal;
- color: #0c3762;
- margin-top: 30px;
-}
-
-h4 {
- font-size: 1.0em;
- font-weight: normal;
- color: #0c3762;
- margin-top: 30px;
-}
-
-p {
- text-align: justify;
-}
-
-p.last {
- margin-bottom: 0;
-}
-
-ol {
- padding-left: 20px;
-}
-
-ul {
- padding-left: 5px;
- margin-top: 3px;
-}
-
-li {
- line-height: 1.3;
-}
-
-div.content ul > li {
- -moz-background-clip:border;
- -moz-background-inline-policy:continuous;
- -moz-background-origin:padding;
- background: transparent url(bullet_orange.png) no-repeat scroll left 0.45em;
- list-style-image: none;
- list-style-type: none;
- padding: 0 0 0 1.666em;
- margin-bottom: 3px;
-}
-
-td {
- vertical-align: top;
-}
-
-tt {
- background-color: #e2e2e2;
- font-size: 1.0em;
- font-family: monospace;
-}
-
-pre {
- border-color: #0c3762;
- border-style: dotted;
- border-width: thin;
- margin: 0 0 12px 0;
- padding: 0.8em;
- background-color: #f0f0f0;
-}
-
-hr {
- border-top: 1px solid #ccc;
- border-bottom: 0;
- border-right: 0;
- border-left: 0;
- margin-bottom: 10px;
- margin-top: 20px;
-}
-
-/* printer only pretty stuff */
-@media print {
- .noprint {
- display: none;
- }
- /* for acronyms we want their definitions inlined at print time */
- acronym[title]:after {
- font-size: small;
- content: " (" attr(title) ")";
- font-style: italic;
- }
- /* and not have mozilla dotted underline */
- acronym {
- border: none;
- }
- div.topnav, div.bottomnav, div.header, table.index {
- display: none;
- }
- div.content {
- margin: 0px;
- padding: 0px;
- }
- html {
- background: #FFF;
- }
-}
-
-.viewcode-back {
- font-family: "DejaVu Sans", Arial, Helvetica, sans-serif;
-}
-
-div.viewcode-block:target {
- background-color: #f4debf;
- border-top: 1px solid #ac9;
- border-bottom: 1px solid #ac9;
- margin: -1px -12px;
- padding: 0 12px;
-}
\ No newline at end of file
diff --git a/docs/build/html/_static/nature.css b/docs/build/html/_static/nature.css
deleted file mode 100644
index 52b328e..0000000
--- a/docs/build/html/_static/nature.css
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- * nature.css_t
- * ~~~~~~~~~~~~
- *
- * Sphinx stylesheet -- nature theme.
- *
- * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
- * :license: BSD, see LICENSE for details.
- *
- */
-
-@import url("basic.css");
-
-/* -- page layout ----------------------------------------------------------- */
-
-body {
- font-family: Arial, sans-serif;
- font-size: 100%;
- background-color: #111;
- color: #555;
- margin: 0;
- padding: 0;
-}
-
-div.documentwrapper {
- float: left;
- width: 100%;
-}
-
-div.bodywrapper {
- margin: 0 0 0 230px;
-}
-
-hr {
- border: 1px solid #B1B4B6;
-}
-
-div.document {
- background-color: #eee;
-}
-
-div.body {
- background-color: #ffffff;
- color: #3E4349;
- padding: 0 30px 30px 30px;
- font-size: 0.9em;
-}
-
-div.footer {
- color: #555;
- width: 100%;
- padding: 13px 0;
- text-align: center;
- font-size: 75%;
-}
-
-div.footer a {
- color: #444;
- text-decoration: underline;
-}
-
-div.related {
- background-color: #6BA81E;
- line-height: 32px;
- color: #fff;
- text-shadow: 0px 1px 0 #444;
- font-size: 0.9em;
-}
-
-div.related a {
- color: #E2F3CC;
-}
-
-div.sphinxsidebar {
- font-size: 0.75em;
- line-height: 1.5em;
-}
-
-div.sphinxsidebarwrapper{
- padding: 20px 0;
-}
-
-div.sphinxsidebar h3,
-div.sphinxsidebar h4 {
- font-family: Arial, sans-serif;
- color: #222;
- font-size: 1.2em;
- font-weight: normal;
- margin: 0;
- padding: 5px 10px;
- background-color: #ddd;
- text-shadow: 1px 1px 0 white
-}
-
-div.sphinxsidebar h4{
- font-size: 1.1em;
-}
-
-div.sphinxsidebar h3 a {
- color: #444;
-}
-
-
-div.sphinxsidebar p {
- color: #888;
- padding: 5px 20px;
-}
-
-div.sphinxsidebar p.topless {
-}
-
-div.sphinxsidebar ul {
- margin: 10px 20px;
- padding: 0;
- color: #000;
-}
-
-div.sphinxsidebar a {
- color: #444;
-}
-
-div.sphinxsidebar input {
- border: 1px solid #ccc;
- font-family: sans-serif;
- font-size: 1em;
-}
-
-div.sphinxsidebar input[type=text]{
- margin-left: 20px;
-}
-
-/* -- body styles ----------------------------------------------------------- */
-
-a {
- color: #005B81;
- text-decoration: none;
-}
-
-a:hover {
- color: #E32E00;
- text-decoration: underline;
-}
-
-div.body h1,
-div.body h2,
-div.body h3,
-div.body h4,
-div.body h5,
-div.body h6 {
- font-family: Arial, sans-serif;
- background-color: #BED4EB;
- font-weight: normal;
- color: #212224;
- margin: 30px 0px 10px 0px;
- padding: 5px 0 5px 10px;
- text-shadow: 0px 1px 0 white
-}
-
-div.body h1 { border-top: 20px solid white; margin-top: 0; font-size: 200%; }
-div.body h2 { font-size: 150%; background-color: #C8D5E3; }
-div.body h3 { font-size: 120%; background-color: #D8DEE3; }
-div.body h4 { font-size: 110%; background-color: #D8DEE3; }
-div.body h5 { font-size: 100%; background-color: #D8DEE3; }
-div.body h6 { font-size: 100%; background-color: #D8DEE3; }
-
-a.headerlink {
- color: #c60f0f;
- font-size: 0.8em;
- padding: 0 4px 0 4px;
- text-decoration: none;
-}
-
-a.headerlink:hover {
- background-color: #c60f0f;
- color: white;
-}
-
-div.body p, div.body dd, div.body li {
- line-height: 1.5em;
-}
-
-div.admonition p.admonition-title + p {
- display: inline;
-}
-
-div.highlight{
- background-color: white;
-}
-
-div.note {
- background-color: #eee;
- border: 1px solid #ccc;
-}
-
-div.seealso {
- background-color: #ffc;
- border: 1px solid #ff6;
-}
-
-div.topic {
- background-color: #eee;
-}
-
-div.warning {
- background-color: #ffe4e4;
- border: 1px solid #f66;
-}
-
-p.admonition-title {
- display: inline;
-}
-
-p.admonition-title:after {
- content: ":";
-}
-
-pre {
- padding: 10px;
- background-color: White;
- color: #222;
- line-height: 1.2em;
- border: 1px solid #C6C9CB;
- font-size: 1.1em;
- margin: 1.5em 0 1.5em 0;
- -webkit-box-shadow: 1px 1px 1px #d8d8d8;
- -moz-box-shadow: 1px 1px 1px #d8d8d8;
-}
-
-tt {
- background-color: #ecf0f3;
- color: #222;
- /* padding: 1px 2px; */
- font-size: 1.1em;
- font-family: monospace;
-}
-
-.viewcode-back {
- font-family: Arial, sans-serif;
-}
-
-div.viewcode-block:target {
- background-color: #f4debf;
- border-top: 1px solid #ac9;
- border-bottom: 1px solid #ac9;
-}
\ No newline at end of file
diff --git a/docs/build/html/api.html b/docs/build/html/api.html
index a9fe272..cbbdce2 100644
--- a/docs/build/html/api.html
+++ b/docs/build/html/api.html
@@ -56,7 +56,7 @@ handling dependency logic.</p>
<p>It can be used to launch a program and get all file events</p>
<dl class="function">
<dt id="logfs.fstracer.getfsevents">
-<tt class="descclassname">logfs.fstracer.</tt><tt class="descname">getfsevents</tt><big>(</big><em>prog_name</em>, <em>arguments</em>, <em>approach='hooklib'</em>, <em>filterproc=<function defaultfilter at 0x1ac2b90></em><big>)</big><a class="reference internal" href="_modules/logfs/fstracer.html#getfsevents"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#logfs.fstracer.getfsevents" title="Permalink to this definition">¶</a></dt>
+<tt class="descclassname">logfs.fstracer.</tt><tt class="descname">getfsevents</tt><big>(</big><em>prog_name</em>, <em>arguments</em>, <em>approach='hooklib'</em>, <em>filterproc=<function defaultfilter at 0x19e7b18></em><big>)</big><a class="reference internal" href="_modules/logfs/fstracer.html#getfsevents"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#logfs.fstracer.getfsevents" title="Permalink to this definition">¶</a></dt>
<dd><p>Launches a program and gets file access events</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
diff --git a/docs/build/html/architecture.html b/docs/build/html/architecture.html
index c32ea89..f827cff 100644
--- a/docs/build/html/architecture.html
+++ b/docs/build/html/architecture.html
@@ -57,7 +57,7 @@
<h2>How it works?<a class="headerlink" href="#how-it-works" title="Permalink to this headline">¶</a></h2>
<div class="section" id="scheme">
<h3>Scheme<a class="headerlink" href="#scheme" title="Permalink to this headline">¶</a></h3>
-<img alt="_images/autodep_arch48.png" src="_images/autodep_arch48.png" />
+<img alt="_images/autodep_arch.png" src="_images/autodep_arch.png" />
</div>
<div class="section" id="format-of-network-messages">
<h3>Format of network messages<a class="headerlink" href="#format-of-network-messages" title="Permalink to this headline">¶</a></h3>
diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv
index d1cea9d..a2f3148 100644
Binary files a/docs/build/html/objects.inv and b/docs/build/html/objects.inv differ
diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js
index b5870ea..9d5cacb 100644
--- a/docs/build/html/searchindex.js
+++ b/docs/build/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({objects:{"":{"-f":[4,0,1],"-b":[4,0,1],"--hooklib":[4,0,1],"--fusefs":[4,0,1],"-v":[4,0,1],"--nocolor":[4,0,1],"--help":[4,0,1]},"logfs.fstracer":{getfsevents:[1,2,1]},"package_utils.portage_log_parser":{get_list_of_merged_packages:[1,2,1]},logfs:{fstracer:[1,1,1]},"package_utils.portage_utils":{getfilesbypackage:[1,2,1],getpackagesbyfiles:[1,2,1]},"package_utils.portage_misc_functions":{portage_api:[1,4,1]},"package_utils.portage_misc_functions.portage_api":{get_deps:[1,3,1],get_system_packages_list:[1,3,1],parse_emerge_args:[1,3,1]},package_utils:{portage_misc_functions:[1,1,1],portage_utils:[1,1,1],portage_log_parser:[1,1,1]}},terms:{all:[1,2,3,4],code:3,chain:1,mnt:3,colorize_output:[],als:[],row:[],prog_nam:1,showfsev:[2,4],depend:[1,2,3,4],send:3,ebuild:2,program:[1,2,3,4],under:2,sourc:1,string:1,fals:1,util:[2,3,4],dfdsfsdfd:[],veri:[],hooker:3,cool:[],tri:3,level:1,list:[1,3],iter:[],"try":[],item:[],mount:3,defaultfilt:1,slower:[2,4],direct:[2,4],s
econd:1,cost:3,"0x1ac5b18":[],pass:1,further:3,index:2,what:[2,4],compar:3,access:[0,1,2,3,4],analusi:[],"new":3,"0x1abec08":[],dsfdsf:[],etyp:[],bodi:[],ggg:[],modifi:3,sinc:[1,3],valu:[],search:[1,2],action:1,chang:3,via:3,packagenam:1,modul:[1,2,3],filenam:1,unix:3,api:[0,1],heurist:3,instal:[0,2,3],get_dep:1,from:[1,2,3,4],two:1,"0x1ac2b90":1,overhead:[2,4],usr:3,type:[1,3],more:[2,4],ld_preload:[2,3,4],endtim:1,getfilesbypackag:1,must:[2,4],none:[],lib32:3,err:3,package_util:[0,1],prepar:3,launch:[1,2,3,4],dev:3,can:[1,2,3,4],root:[2,4],registr:3,share:3,indic:[0,2],high:1,liter:[],portage_log_pars:1,chroot:3,end:[1,3],anoth:3,"0x1abcb90":[],write:[1,3],how:[0,3],"0x1ac0c08":[],answer:3,instead:[1,3],simpl:3,map:3,alwai:1,after:3,befor:3,"\u0441riterion":[],man:3,syscal:[2,4],read:[1,2,3,4],bind:3,element:1,inform:[1,3],environ:3,allow:[1,2,3,4],"0x1abdc08":[],first:1,egg:[],rdepend:1,"0x1ac1b18":[],help:[2,4],over:3,rootf:3,fff:[],dynam:[2,3,4],paramet:1,cowsai:2,main:
3,non:[2,4],"return":[1,3],thei:1,handl:1,auto:[2,4],introduct:[0,2],name:[1,3],productionlist:[],each:1,x11:[2,4],domain:3,idea:3,color_print:[],logf:[0,1],enable_color:[],connect:3,todo:2,event:[0,1,2,3,4],variabl:3,network:3,content:0,print:[],got:3,lib64:3,bla:[],believ:3,dictionari:1,ask:3,bash:2,try1_stmt:[],thread:3,registar:3,get_list_of_merged_packag:1,filter:1,registrar:3,getfsev:1,lambda:[],origin:3,directli:[],misc:[2,4],open:[1,3],gpl:2,script:[],unknown:[1,2,3,4],licens:2,system:[1,2,3,4],messag:[2,3,4],scheme:3,"final":[],includ:3,option:[1,2,4],tool:[2,4],copi:3,postrm:3,pars:1,than:[2,4],cmdoption:[],target:[],tree:[],charact:3,bridg:1,pre:[2,4],"function":[1,3],linker:3,argument:1,packag:[1,2,3,4],tabl:[0,2],bersenev:[],accuraci:3,note:[2,3,4],also:[1,2,3,4],take:[1,2,3,4],which:1,loggabl:3,normal:[2,4],who:[2,4],most:[2,4],buildtim:[2,4],hooklib:[0,1,2,3,4],phase:3,"class":1,don:[2,4],portage_misc_funct:1,doe:[],deni:3,runtim:[2,3,4],try_stmt:[],show:[2,4]
,text:[],verbos:[2,4],pkg:1,find:1,xml:3,current:1,onli:[2,4],slow:[2,4],activ:2,dep_typ:1,should:1,parse_emerge_arg:1,footnot:[],analys:3,try2_stmt:[],unus:3,get:[1,2,4],express:[],format_except:[],increas:3,requir:[2,4],portage_util:1,enabl:[2,4],yield:[],"0x1ac1b90":[],contain:1,userspac:3,shm:3,bai:[],kernel:[2,4],set:1,packet:3,dsfd:[],see:3,sec:3,result:3,arg:1,fail:1,statu:[0,2],enumer:[],between:1,"import":[2,4],approach:[0,1,2,3,4],kei:1,xchat:[2,4],both:1,protect:3,delimit:3,"0x1ac6b90":[],logic:1,futher:[0,3],mani:[2,4],lsof:2,"0x1ac0b18":[],load:[2,3,4],color:[2,4],overview:[0,2],header:[],linux:3,reciev:3,fusef:[0,1,2,3,4],implicit:[1,3],much:3,recomend:[2,4],"0x1ac1c08":[],fstracer:[0,1],ani:[1,2,3,4],stagenam:3,gnu:2,servic:1,defin:[2,4],"while":[2,3,4],behavior:3,error:3,helper:[],sock_seqpacket:3,synopsi:4,revis:[],develop:2,welcom:[],author:[],perform:[2,3,4],make:2,belong:1,same:3,binari:[],document:0,helpdsfdsfd:[],fuse:[2,3,4],user:[2,4],extern:3,portag:
[1,3],macro:[2,4],builder:[2,4],exampl:[0,2,4],command:[2,4],thi:[1,2,3,4],filesystem:3,programm:[],usual:[2,3,4],execut:3,cut:3,ham:[],except:[],param:[],desktop:3,els:3,logger:[],build:[2,3,4],filterproc:1,format:3,libc:3,big:[2,4],recurs:1,prerequir:[],success:1,docutil:[],nocolor:[2,4],"0x1abeb90":[],output:[2,4],page:2,often:3,stat:[],intern:[0,3],successfulli:1,librari:[2,3,4],tmp:3,autodep:[0,2],exit:[2,4],overlai:2,foo:[],proc:3,"0x1ac2b18":[],run:[0,2,3],usag:[],starttim:1,found:[1,2,3,4],portage_api:1,"0x1ac0b90":[],stage:[1,2,3,4],about:3,alexand:[],socket:3,column:[],block:[1,2,3,4],merg:1,hackerdom:[],span:[],log:[1,2,4],wai:3,spam:[],errno:3,start:1,low:1,suit:[],"var":3,call:[1,3],analysi:[0,2,3,4],unexpect:3,tupl:1,atom:1,"true":1,made:[],"default":[1,2,4],record:[],limit:[],creat:3,dure:[2,4],parser:1,doesn:1,intro:[],file:[0,1,2,3,4],work:[0,1,3],check:3,acloc:3,titl:[],when:[2,3,4],detail:3,field:3,other:3,test:[],architectur:[],fork:3,getpackagesbyfil:1,"
0x1abbb90":[],get_system_packages_list:1,sequenc:[],releas:2,directori:3,reliabl:[2,4],descript:4,rule:3,depth:1,emerg:[1,2,4],potenti:[2,4],time:[1,2,3,4],profil:3,hello:[]},objtypes:{"0":"std:option","1":"py:module","2":"py:function","3":"py:method","4":"py:class"},titles:["Autodep’s documentation","API","Introduction","Internals","USER COMMANDS"],objnames:{"0":"option","1":"Python module","2":"Python function","3":"Python method","4":"Python class"},filenames:["index","api","intro","architecture","man"]})
\ No newline at end of file
+Search.setIndex({objects:{"":{"-f":[4,0,1],"-C":[2,0,1],"-b":[4,0,1],"--hooklib":[4,0,1],"--fusefs":[4,0,1],"-v":[4,0,1],"--nocolor":[4,0,1],"--help":[4,0,1]},"package_utils.portage_misc_functions":{portage_api:[1,4,1]},"package_utils.portage_log_parser":{get_list_of_merged_packages:[1,2,1]},logfs:{fstracer:[1,1,1]},"package_utils.portage_utils":{getfilesbypackage:[1,2,1],getpackagesbyfiles:[1,2,1]},"logfs.fstracer":{getfsevents:[1,2,1]},"package_utils.portage_misc_functions.portage_api":{get_deps:[1,3,1],get_system_packages_list:[1,3,1],parse_emerge_args:[1,3,1]},package_utils:{portage_misc_functions:[1,1,1],portage_utils:[1,1,1],portage_log_parser:[1,1,1]}},terms:{load:[2,3,4],all:[1,2,3,4],code:3,help:[2,4],chain:1,show:[2,4],over:3,rootf:3,mnt:3,time:[1,2,3,4],pkg:1,rdepend:1,environ:3,find:1,dynam:[2,3,4],paramet:1,xml:3,prog_nam:1,onli:[2,4],cut:3,depend:[1,2,3,4],execut:3,field:3,"true":1,activ:2,dep_typ:1,should:1,cowsai:2,ebuild:2,program:[1,2,3,4],under:2,els:3,par
se_emerge_arg:1,main:3,analys:3,logic:1,take:[1,2,3,4],filterproc:1,sock_seqpacket:3,sourc:1,"return":[1,3],string:1,thei:1,get:[1,2,4],fals:1,big:[2,4],between:1,util:[2,3,4],lib32:3,got:3,increas:3,"0x19e7b18":1,recurs:1,hooker:3,requir:[2,4],introduct:[0,2],tri:3,builder:[2,4],name:[1,3],success:1,level:1,approach:[0,1,2,3,4],package_util:[0,1],list:[1,3],nocolor:[2,4],api:[0,1],each:1,userspac:3,found:[1,2,3,4],get_list_of_merged_packag:1,emerg:[1,2,4],kernel:[2,4],domain:3,set:1,slower:[2,4],often:3,protect:3,linux:3,idea:3,packet:3,shm:3,logf:[0,1],second:1,cost:3,sec:3,result:3,pass:1,fail:1,further:3,successfulli:1,todo:2,event:[0,1,2,3,4],librari:[2,3,4],variabl:3,index:2,statu:[0,2],servic:1,network:3,compar:3,bind:3,normal:[2,4],unknown:[1,2,3,4],access:[0,1,2,3,4],autodep:[0,2],exit:[2,4],directori:3,overlai:2,"new":3,lib64:3,content:0,proc:3,reciev:3,after:3,run:[0,2,3],depth:1,kei:1,contain:1,slow:[2,4],believ:3,starttim:1,x11:[2,4],releas:2,argument:1,portage_
api:1,sinc:[1,3],bash:2,xchat:[2,4],both:1,fstracer:[0,1],socket:3,thread:3,registar:3,libc:3,current:1,page:2,portage_log_pars:1,registrar:3,includ:3,getfsev:1,action:1,mani:[2,4],chang:3,lsof:2,licens:2,block:[1,2,3,4],first:1,origin:3,via:3,dictionari:1,packagenam:1,color:[2,4],overview:[0,2],modul:[1,2,3],misc:[2,4],system:[1,2,3,4],ld_preload:[2,3,4],ask:3,unix:3,defaultfilt:1,send:3,heurist:3,instal:[0,2,3],desktop:3,open:[1,3],merg:1,gpl:2,get_dep:1,getpackagesbyfil:1,fusef:[0,1,2,3,4],from:[1,2,3,4],log:[1,2,4],wai:3,errno:3,showfsev:[2,4],doesn:1,two:1,messag:[2,3,4],implicit:[1,3],verbos:[2,4],start:1,much:3,call:[1,3],usr:3,handl:1,"var":3,overhead:[2,4],stage:[1,2,3,4],type:[1,3],low:1,analysi:[0,2,3,4],allow:[1,2,3,4],linker:3,option:[1,2,4],unexpect:3,getfilesbypackag:1,tupl:1,tool:[2,4],copi:3,tmp:3,search:[1,2],direct:[2,4],postrm:3,modifi:3,endtim:1,portag:[1,3],atom:1,arg:1,than:[2,4],must:[2,4],also:[1,2,3,4],scheme:3,portage_util:1,err:3,gnu:2,"default":[
1,2,4],mount:3,launch:[1,2,3,4],intern:[0,3],dev:3,charact:3,defin:[2,4],"while":[2,3,4],bridg:1,can:[1,2,3,4],behavior:3,error:3,about:3,more:[2,4],root:[2,4],delimit:3,connect:3,pre:[2,4],"function":[1,3],parser:1,creat:3,portage_misc_funct:1,dure:[2,4],registr:3,filenam:1,non:[2,4],indic:[0,2],high:1,packag:[1,2,3,4],befor:3,inform:[1,3],file:[0,1,2,3,4],tabl:[0,2],synopsi:4,"import":[2,4],work:[0,1,3],check:3,unus:3,filter:1,profil:3,chroot:3,end:[1,3],get_system_packages_list:1,output:[2,4],perform:[2,3,4],anoth:3,make:2,belong:1,when:[2,3,4],detail:3,same:3,accuraci:3,note:[2,3,4],how:[0,3],other:3,read:[1,2,3,4],build:[2,3,4],which:1,auto:[2,4],answer:3,instead:[1,3],document:0,simpl:3,prepar:3,enabl:[2,4],fork:3,map:3,loggabl:3,extern:3,thi:[1,2,3,4],see:3,alwai:1,recomend:[2,4],who:[2,4],what:[2,4],most:[2,4],buildtim:[2,4],fuse:[2,3,4],user:[2,4],share:3,phase:3,develop:2,"class":1,man:3,don:[2,4],write:[1,3],syscal:[2,4],ani:[1,2,3,4],macro:[2,4],reliabl:[2,4],acl
oc:3,descript:4,rule:3,element:1,hooklib:[0,1,2,3,4],deni:3,exampl:[0,2,4],command:[2,4],runtim:[2,3,4],potenti:[2,4],filesystem:3,format:3,pars:1,stagenam:3,futher:[0,3],usual:[2,3,4]},objtypes:{"0":"std:option","1":"py:module","2":"py:function","3":"py:method","4":"py:class"},titles:["Autodep’s documentation","API","Introduction","Internals","USER COMMANDS"],objnames:{"0":"option","1":"Python module","2":"Python function","3":"Python method","4":"Python class"},filenames:["index","api","intro","architecture","man"]})
\ No newline at end of file
diff --git a/docs/build/html/showfsevents.html b/docs/build/html/showfsevents.html
deleted file mode 100644
index fb9c953..0000000
--- a/docs/build/html/showfsevents.html
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
- <title>TITLE — Autodep documentation</title>
- <link rel="stylesheet" href="_static/default.css" type="text/css" />
- <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
- <script type="text/javascript">
- var DOCUMENTATION_OPTIONS = {
- URL_ROOT: '',
- VERSION: '0.1',
- COLLAPSE_INDEX: false,
- FILE_SUFFIX: '.html',
- HAS_SOURCE: true
- };
- </script>
- <script type="text/javascript" src="_static/jquery.js"></script>
- <script type="text/javascript" src="_static/underscore.js"></script>
- <script type="text/javascript" src="_static/doctools.js"></script>
- <link rel="top" title="Autodep documentation" href="index.html" />
- </head>
- <body>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- accesskey="I">index</a></li>
- <li class="right" >
- <a href="py-modindex.html" title="Python Module Index"
- >modules</a> |</li>
- <li><a href="index.html">Autodep</a> »</li>
- </ul>
- </div>
-
- <div class="document">
- <div class="documentwrapper">
- <div class="bodywrapper">
- <div class="body">
-
- <div class="section" id="title">
-<h1>TITLE<a class="headerlink" href="#title" title="Permalink to this headline">¶</a></h1>
-</div>
-
-
- </div>
- </div>
- </div>
- <div class="sphinxsidebar">
- <div class="sphinxsidebarwrapper">
- <h3>This Page</h3>
- <ul class="this-page-menu">
- <li><a href="_sources/showfsevents.txt"
- rel="nofollow">Show Source</a></li>
- </ul>
-<div id="searchbox" style="display: none">
- <h3>Quick search</h3>
- <form class="search" action="search.html" method="get">
- <input type="text" name="q" size="18" />
- <input type="submit" value="Go" />
- <input type="hidden" name="check_keywords" value="yes" />
- <input type="hidden" name="area" value="default" />
- </form>
- <p class="searchtip" style="font-size: 90%">
- Enter search terms or a module, class or function name.
- </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
- </div>
- </div>
- <div class="clearer"></div>
- </div>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- >index</a></li>
- <li class="right" >
- <a href="py-modindex.html" title="Python Module Index"
- >modules</a> |</li>
- <li><a href="index.html">Autodep</a> »</li>
- </ul>
- </div>
- <div class="footer">
- © Copyright 2011, Alexander Bersenev.
- Last updated on Jul 25, 2011.
- Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
- </div>
- </body>
-</html>
\ No newline at end of file
diff --git a/docs/build/index.html b/docs/build/index.html
deleted file mode 100644
index 4e0ac5a..0000000
--- a/docs/build/index.html
+++ /dev/null
@@ -1,116 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
- <title>Welcome to Autodep’s documentation! — Autodep v0.1 documentation</title>
- <link rel="stylesheet" href="_static/nature.css" type="text/css" />
- <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
- <script type="text/javascript">
- var DOCUMENTATION_OPTIONS = {
- URL_ROOT: '',
- VERSION: '0.1',
- COLLAPSE_INDEX: false,
- FILE_SUFFIX: '.html',
- HAS_SOURCE: true
- };
- </script>
- <script type="text/javascript" src="_static/jquery.js"></script>
- <script type="text/javascript" src="_static/underscore.js"></script>
- <script type="text/javascript" src="_static/doctools.js"></script>
- <link rel="top" title="Autodep v0.1 documentation" href="#" />
- </head>
- <body>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- accesskey="I">index</a></li>
- <li><a href="#">Autodep v0.1 documentation</a> »</li>
- </ul>
- </div>
-
- <div class="document">
- <div class="documentwrapper">
- <div class="bodywrapper">
- <div class="body">
-
- <div class="section" id="welcome-to-autodep-s-documentation">
-<h1>Welcome to Autodep’s documentation!<a class="headerlink" href="#welcome-to-autodep-s-documentation" title="Permalink to this headline">¶</a></h1>
-<p>Contents:</p>
-<div class="toctree-wrapper compound">
-<ul class="simple">
-</ul>
-</div>
-<dl class="function">
-<dt id="enumerate">
-<tt class="descname">enumerate</tt><big>(</big><em>sequence</em><span class="optional">[</span>, <em>start=0</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#enumerate" title="Permalink to this definition">¶</a></dt>
-<dd><p>Return an iterator that yields tuples of an index and an item of the
-<em>sequence</em>. (And so on.)</p>
-</dd></dl>
-
-</div>
-<div class="section" id="indices-and-tables">
-<h1>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this headline">¶</a></h1>
-<ul class="simple">
-<li><a class="reference internal" href="genindex.html"><em>Index</em></a></li>
-<li><a class="reference internal" href="py-modindex.html"><em>Module Index</em></a></li>
-<li><a class="reference internal" href="search.html"><em>Search Page</em></a></li>
-</ul>
-</div>
-
-
- </div>
- </div>
- </div>
- <div class="sphinxsidebar">
- <div class="sphinxsidebarwrapper">
- <h3><a href="#">Table Of Contents</a></h3>
- <ul>
-<li><a class="reference internal" href="#">Welcome to Autodep’s documentation!</a><ul>
-</ul>
-</li>
-<li><a class="reference internal" href="#indices-and-tables">Indices and tables</a></li>
-</ul>
-
- <h3>This Page</h3>
- <ul class="this-page-menu">
- <li><a href="_sources/index.txt"
- rel="nofollow">Show Source</a></li>
- </ul>
-<div id="searchbox" style="display: none">
- <h3>Quick search</h3>
- <form class="search" action="search.html" method="get">
- <input type="text" name="q" size="18" />
- <input type="submit" value="Go" />
- <input type="hidden" name="check_keywords" value="yes" />
- <input type="hidden" name="area" value="default" />
- </form>
- <p class="searchtip" style="font-size: 90%">
- Enter search terms or a module, class or function name.
- </p>
-</div>
-<script type="text/javascript">$('#searchbox').show(0);</script>
- </div>
- </div>
- <div class="clearer"></div>
- </div>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- >index</a></li>
- <li><a href="#">Autodep v0.1 documentation</a> »</li>
- </ul>
- </div>
- <div class="footer">
- © Copyright 2011, Alexander Bersenev.
- Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
- </div>
- </body>
-</html>
\ No newline at end of file
diff --git a/docs/build/objects.inv b/docs/build/objects.inv
deleted file mode 100644
index e4cae57..0000000
Binary files a/docs/build/objects.inv and /dev/null differ
diff --git a/docs/build/search.html b/docs/build/search.html
deleted file mode 100644
index 0148817..0000000
--- a/docs/build/search.html
+++ /dev/null
@@ -1,95 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
- <title>Search — Autodep v0.1 documentation</title>
- <link rel="stylesheet" href="_static/nature.css" type="text/css" />
- <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
- <script type="text/javascript">
- var DOCUMENTATION_OPTIONS = {
- URL_ROOT: '',
- VERSION: '0.1',
- COLLAPSE_INDEX: false,
- FILE_SUFFIX: '.html',
- HAS_SOURCE: true
- };
- </script>
- <script type="text/javascript" src="_static/jquery.js"></script>
- <script type="text/javascript" src="_static/underscore.js"></script>
- <script type="text/javascript" src="_static/doctools.js"></script>
- <script type="text/javascript" src="_static/searchtools.js"></script>
- <link rel="top" title="Autodep v0.1 documentation" href="index.html" />
- <script type="text/javascript">
- jQuery(function() { Search.loadIndex("searchindex.js"); });
- </script>
-
-
- </head>
- <body>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- accesskey="I">index</a></li>
- <li><a href="index.html">Autodep v0.1 documentation</a> »</li>
- </ul>
- </div>
-
- <div class="document">
- <div class="documentwrapper">
- <div class="bodywrapper">
- <div class="body">
-
- <h1 id="search-documentation">Search</h1>
- <div id="fallback" class="admonition warning">
- <script type="text/javascript">$('#fallback').hide();</script>
- <p>
- Please activate JavaScript to enable the search
- functionality.
- </p>
- </div>
- <p>
- From here you can search these documents. Enter your search
- words into the box below and click "search". Note that the search
- function will automatically search for all of the words. Pages
- containing fewer words won't appear in the result list.
- </p>
- <form action="" method="get">
- <input type="text" name="q" value="" />
- <input type="submit" value="search" />
- <span id="search-progress" style="padding-left: 10px"></span>
- </form>
-
- <div id="search-results">
-
- </div>
-
- </div>
- </div>
- </div>
- <div class="sphinxsidebar">
- <div class="sphinxsidebarwrapper">
- </div>
- </div>
- <div class="clearer"></div>
- </div>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- >index</a></li>
- <li><a href="index.html">Autodep v0.1 documentation</a> »</li>
- </ul>
- </div>
- <div class="footer">
- © Copyright 2011, Alexander Bersenev.
- Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
- </div>
- </body>
-</html>
\ No newline at end of file
diff --git a/docs/build/searchindex.js b/docs/build/searchindex.js
deleted file mode 100644
index 8279ea1..0000000
--- a/docs/build/searchindex.js
+++ /dev/null
@@ -1 +0,0 @@
-Search.setIndex({objects:{"":{enumerate:[0,0,1]}},terms:{index:0,search:0,"return":0,welcom:0,item:0,sequenc:0,modul:0,enumer:0,iter:0,content:0,start:0,autodep:0,yield:0,indic:0,tabl:0,document:0,tupl:0,page:0},objtypes:{"0":"py:function"},titles:["Welcome to Autodep’s documentation!"],objnames:{"0":"Python function"},filenames:["index"]})
\ No newline at end of file
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [gentoo-commits] proj/autodep:master commit in: docs/build/html/_sources/, docs/build/html/_modules/package_utils/, ...
@ 2011-08-02 20:36 Александр Берсенев
0 siblings, 0 replies; 5+ messages in thread
From: Александр Берсенев @ 2011-08-02 20:36 UTC (permalink / raw
To: gentoo-commits
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=UTF-8, Size: 61876 bytes --]
commit: 24cc5cf722f06b219ffbc5246c45e9a1de1a2f87
Author: Alexander Bersenev <bay <AT> hackerdom <DOT> ru>
AuthorDate: Wed Aug 3 02:35:28 2011 +0000
Commit: ÐлекÑÐ°Ð½Ð´Ñ ÐеÑÑенев <bay <AT> hackerdom <DOT> ru>
CommitDate: Wed Aug 3 02:35:28 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/autodep.git;a=commit;h=24cc5cf7
small docs changes
---
docs/build/doctrees/api.doctree | Bin 36541 -> 45408 bytes
docs/build/doctrees/environment.pickle | Bin 970608 -> 971389 bytes
docs/build/doctrees/intro.doctree | Bin 27603 -> 28313 bytes
docs/build/doctrees/man.doctree | Bin 25087 -> 25760 bytes
docs/build/html/_modules/index.html | 2 +-
docs/build/html/_modules/logfs/fstracer.html | 2 +-
.../_modules/package_utils/portage_log_parser.html | 2 +-
.../package_utils/portage_misc_functions.html | 2 +-
.../html/_modules/package_utils/portage_utils.html | 2 +-
docs/build/html/_sources/intro.txt | 21 ++-
docs/build/html/_sources/man.txt | 18 ++-
docs/build/html/api.html | 57 ++++++-
docs/build/html/genindex.html | 75 +++++----
docs/build/html/index.html | 2 +-
docs/build/html/intro.html | 49 +++---
docs/build/html/man.html | 46 +++--
docs/build/html/objects.inv | 9 +-
docs/build/html/py-modindex.html | 2 +-
docs/build/html/search.html | 2 +-
docs/build/html/searchindex.js | 2 +-
docs/build/man/autodep.1 | 186 ++++++++++++++++++++
docs/source/conf.py | 2 +-
docs/source/intro.rst | 18 ++-
docs/source/man.rst | 18 ++-
24 files changed, 399 insertions(+), 118 deletions(-)
diff --git a/docs/build/doctrees/api.doctree b/docs/build/doctrees/api.doctree
index c9fac92..bfb5a6d 100644
Binary files a/docs/build/doctrees/api.doctree and b/docs/build/doctrees/api.doctree differ
diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle
index 3f1e1b1..3f806c9 100644
Binary files a/docs/build/doctrees/environment.pickle and b/docs/build/doctrees/environment.pickle differ
diff --git a/docs/build/doctrees/intro.doctree b/docs/build/doctrees/intro.doctree
index e59e70e..314b99e 100644
Binary files a/docs/build/doctrees/intro.doctree and b/docs/build/doctrees/intro.doctree differ
diff --git a/docs/build/doctrees/man.doctree b/docs/build/doctrees/man.doctree
index 5343497..a6ca5c2 100644
Binary files a/docs/build/doctrees/man.doctree and b/docs/build/doctrees/man.doctree differ
diff --git a/docs/build/html/_modules/index.html b/docs/build/html/_modules/index.html
index 9bb0382..a676437 100644
--- a/docs/build/html/_modules/index.html
+++ b/docs/build/html/_modules/index.html
@@ -86,7 +86,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Jul 25, 2011.
+ Last updated on Aug 03, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/_modules/logfs/fstracer.html b/docs/build/html/_modules/logfs/fstracer.html
index fc474a1..0214fa6 100644
--- a/docs/build/html/_modules/logfs/fstracer.html
+++ b/docs/build/html/_modules/logfs/fstracer.html
@@ -327,7 +327,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Jul 25, 2011.
+ Last updated on Aug 03, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/_modules/package_utils/portage_log_parser.html b/docs/build/html/_modules/package_utils/portage_log_parser.html
index 47f92b6..2c02aa7 100644
--- a/docs/build/html/_modules/package_utils/portage_log_parser.html
+++ b/docs/build/html/_modules/package_utils/portage_log_parser.html
@@ -170,7 +170,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Jul 25, 2011.
+ Last updated on Aug 03, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/_modules/package_utils/portage_misc_functions.html b/docs/build/html/_modules/package_utils/portage_misc_functions.html
index d95ce7d..637694c 100644
--- a/docs/build/html/_modules/package_utils/portage_misc_functions.html
+++ b/docs/build/html/_modules/package_utils/portage_misc_functions.html
@@ -188,7 +188,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Jul 25, 2011.
+ Last updated on Aug 03, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/_modules/package_utils/portage_utils.html b/docs/build/html/_modules/package_utils/portage_utils.html
index 94f8a00..58064e7 100644
--- a/docs/build/html/_modules/package_utils/portage_utils.html
+++ b/docs/build/html/_modules/package_utils/portage_utils.html
@@ -158,7 +158,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Jul 25, 2011.
+ Last updated on Aug 03, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/_sources/intro.txt b/docs/build/html/_sources/intro.txt
index 5ee0dd5..82278ac 100644
--- a/docs/build/html/_sources/intro.txt
+++ b/docs/build/html/_sources/intro.txt
@@ -5,7 +5,8 @@ Introduction
Overview
===================================
Auto dependency builder is a tool for analysis files accessed during
-building a package. It also can be used for runtime dependencies analysis.
+building a package. It also can be used for buildtime and runtime dependency
+analysis.
The tool can block an access to files of defined packages.
@@ -23,17 +24,21 @@ Installing
Running
===================================
-.. program:: showfsevents.py
+.. program:: autodep
.. code-block:: none
- showfsevents.py [options] <command>
+ autodep [options] <command>
.. cmdoption:: --help, -h
show this help message and exit
-.. cmdoption:: -b PACKAGES, --block=PACKAGES
+.. cmdoption:: -b, --block
+
+ strict mode: deny all access to non-dependency packages
+
+.. cmdoption:: --blockpkgs=PACKAGES
block an access to files from this packages
@@ -95,28 +100,28 @@ Examples
.. code-block:: none
- showfsevents.py emerge xchat
+ autodep emerge xchat
.. rubric:: 2. Get the potential dependencies of a xchat package, blocking
x11-misc/util-macros package:
.. code-block:: none
- showfsevents.py emerge --block x11-misc/util-macros emerge xchat
+ autodep emerge --block x11-misc/util-macros emerge xchat
.. rubric:: 3. Get the potential dependencies of a xchat package, and show files
accessed:
.. code-block:: none
- showfsevents.py --files emerge xchat
+ autodep --files emerge xchat
.. rubric:: 4. Get the runtime dependencies of a xchat and show files
accessed:
.. code-block:: none
- showfsevents.py --fusefs --files xchat
+ autodep --fusefs --files xchat
diff --git a/docs/build/html/_sources/man.txt b/docs/build/html/_sources/man.txt
index ca7fdab..b49fb54 100644
--- a/docs/build/html/_sources/man.txt
+++ b/docs/build/html/_sources/man.txt
@@ -5,7 +5,7 @@ USER COMMANDS
SYNOPSIS
========
-**showfsevents.py** [options] <command>
+**autodep** [options] <command>
DESCRIPTION
===========
@@ -18,13 +18,17 @@ The tool can block an access to files of defined packages.
OPTIONS
=======
-.. program:: showfsevents.py
+.. program:: autodep
.. cmdoption:: --help, -h
show this help message and exit
-.. cmdoption:: -b PACKAGES, --block=PACKAGES
+.. cmdoption:: -b, --block
+
+ strict mode: deny all access to non-dependency packages
+
+.. cmdoption:: --blockpkgs=PACKAGES
block an access to files from this packages
@@ -79,17 +83,17 @@ Examples
Get the potential dependencies of a xchat package:
-----------------------------------------------------
-showfsevents.py emerge xchat
+autodep emerge xchat
Get the potential dependencies of a xchat package, blocking x11-misc/util-macros package:
--------------------------------------------------------------------------------------------
-showfsevents.py emerge --block x11-misc/util-macros emerge xchat
+autodep emerge --block x11-misc/util-macros emerge xchat
Get the potential dependencies of a xchat package, and show files accessed:
------------------------------------------------------------------------------
-showfsevents.py --files emerge xchat
+autodep --files emerge xchat
Get the runtime dependencies of a xchat and show files accessed:
-------------------------------------------------------------------
-showfsevents.py --fusefs --files xchat
+autodep --fusefs --files xchat
diff --git a/docs/build/html/api.html b/docs/build/html/api.html
index cbbdce2..c5963a3 100644
--- a/docs/build/html/api.html
+++ b/docs/build/html/api.html
@@ -56,7 +56,7 @@ handling dependency logic.</p>
<p>It can be used to launch a program and get all file events</p>
<dl class="function">
<dt id="logfs.fstracer.getfsevents">
-<tt class="descclassname">logfs.fstracer.</tt><tt class="descname">getfsevents</tt><big>(</big><em>prog_name</em>, <em>arguments</em>, <em>approach='hooklib'</em>, <em>filterproc=<function defaultfilter at 0x19e7b18></em><big>)</big><a class="reference internal" href="_modules/logfs/fstracer.html#getfsevents"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#logfs.fstracer.getfsevents" title="Permalink to this definition">¶</a></dt>
+<tt class="descclassname">logfs.fstracer.</tt><tt class="descname">getfsevents</tt><big>(</big><em>prog_name</em>, <em>arguments</em>, <em>approach='hooklib'</em>, <em>filterproc=<function defaultfilter at 0x1dbdb90></em><big>)</big><a class="reference internal" href="_modules/logfs/fstracer.html#getfsevents"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#logfs.fstracer.getfsevents" title="Permalink to this definition">¶</a></dt>
<dd><p>Launches a program and gets file access events</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
@@ -113,6 +113,20 @@ Stage can be <em>‘unknown’</em></p>
</dd></dl>
<span class="target" id="module-package_utils.portage_utils"></span><dl class="function">
+<dt id="package_utils.portage_utils.get_all_packages_files">
+<tt class="descclassname">package_utils.portage_utils.</tt><tt class="descname">get_all_packages_files</tt><big>(</big><big>)</big><a class="headerlink" href="#package_utils.portage_utils.get_all_packages_files" title="Permalink to this definition">¶</a></dt>
+<dd><p>Memory-hungry operation</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">Returns:</th><td class="field-body"><strong>set</strong> of all files that belongs to package</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="function">
<dt id="package_utils.portage_utils.getfilesbypackage">
<tt class="descclassname">package_utils.portage_utils.</tt><tt class="descname">getfilesbypackage</tt><big>(</big><em>packagename</em><big>)</big><a class="reference internal" href="_modules/package_utils/portage_utils.html#getfilesbypackage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#package_utils.portage_utils.getfilesbypackage" title="Permalink to this definition">¶</a></dt>
<dd><table class="docutils field-list" frame="void" rules="none">
@@ -148,9 +162,38 @@ package it not returned as key of this dictionary</td>
<em class="property">class </em><tt class="descclassname">package_utils.portage_misc_functions.</tt><tt class="descname">portage_api</tt><a class="reference internal" href="_modules/package_utils/portage_misc_functions.html#portage_api"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#package_utils.portage_misc_functions.portage_api" title="Permalink to this definition">¶</a></dt>
<dd><p>class for accessing the portage api</p>
<dl class="method">
+<dt id="package_utils.portage_misc_functions.portage_api.get_best_visible_pkg">
+<tt class="descname">get_best_visible_pkg</tt><big>(</big><em>pkg</em><big>)</big><a class="headerlink" href="#package_utils.portage_misc_functions.portage_api.get_best_visible_pkg" title="Permalink to this definition">¶</a></dt>
+<dd><p>Gets best candidate on installing. Returns empty string if no found</p>
+</dd></dl>
+
+<dl class="method">
+<dt id="package_utils.portage_misc_functions.portage_api.get_dep">
+<tt class="descname">get_dep</tt><big>(</big><em>pkg, dep_type=['RDEPEND', 'DEPEND']</em><big>)</big><a class="headerlink" href="#package_utils.portage_misc_functions.portage_api.get_dep" title="Permalink to this definition">¶</a></dt>
+<dd><p>Gets current dependencies of a package. Looks in portage db</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
+<li><strong>pkg</strong> – name of package</li>
+<li><strong>dep_type</strong> – type of dependencies to recurse. Can be [“DEPEND”] or
+[“RDEPEND”, “DEPEND”]</li>
+</ul>
+</td>
+</tr>
+<tr class="field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last"><strong>set</strong> of packages names</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
<dt id="package_utils.portage_misc_functions.portage_api.get_deps">
<tt class="descname">get_deps</tt><big>(</big><em>pkg, dep_type=['RDEPEND', 'DEPEND']</em><big>)</big><a class="reference internal" href="_modules/package_utils/portage_misc_functions.html#portage_api.get_deps"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#package_utils.portage_misc_functions.portage_api.get_deps" title="Permalink to this definition">¶</a></dt>
-<dd><p>Gets current dependencies of a package on any depth</p>
+<dd><p>Gets current dependencies of a package on any depth
+All dependencies <strong>must</strong> be installed</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
@@ -170,6 +213,14 @@ package it not returned as key of this dictionary</td>
</dd></dl>
<dl class="method">
+<dt id="package_utils.portage_misc_functions.portage_api.get_merge_list">
+<tt class="descname">get_merge_list</tt><big>(</big><em>emergeargs</em><big>)</big><a class="headerlink" href="#package_utils.portage_misc_functions.portage_api.get_merge_list" title="Permalink to this definition">¶</a></dt>
+<dd><p>Gets list of packages that emerge with emergeargs-arguments will merge
+This function uses very internal functions of portage so
+it may be unreliable in various portage versions</p>
+</dd></dl>
+
+<dl class="method">
<dt id="package_utils.portage_misc_functions.portage_api.get_system_packages_list">
<tt class="descname">get_system_packages_list</tt><big>(</big><big>)</big><a class="reference internal" href="_modules/package_utils/portage_misc_functions.html#portage_api.get_system_packages_list"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#package_utils.portage_misc_functions.portage_api.get_system_packages_list" title="Permalink to this definition">¶</a></dt>
<dd><p>returns all packages from system set. They are always implicit dependencies</p>
@@ -262,7 +313,7 @@ list)</td>
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Jul 25, 2011.
+ Last updated on Aug 03, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/genindex.html b/docs/build/html/genindex.html
index b1a69d7..e44ab7a 100644
--- a/docs/build/html/genindex.html
+++ b/docs/build/html/genindex.html
@@ -47,52 +47,76 @@
<h1 id="index">Index</h1>
<div class="genindex-jumpbox">
- <a href="#Symbols"><strong>Symbols</strong></a> | <a href="#G"><strong>G</strong></a> | <a href="#L"><strong>L</strong></a> | <a href="#P"><strong>P</strong></a> | <a href="#S"><strong>S</strong></a>
+ <a href="#Symbols"><strong>Symbols</strong></a> | <a href="#A"><strong>A</strong></a> | <a href="#G"><strong>G</strong></a> | <a href="#L"><strong>L</strong></a> | <a href="#P"><strong>P</strong></a>
</div>
<h2 id="Symbols">Symbols</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%" valign="top"><dl>
+ <dt>--blockpkgs=PACKAGES</dt>
+ <dd><dl>
+ <dt><a href="intro.html#cmdoption-autodep--blockpkgs">autodep command line option</a>, <a href="man.html#cmdoption-autodep--blockpkgs">[1]</a></dt>
+ </dl></dd>
<dt>--fusefs</dt>
<dd><dl>
- <dt><a href="intro.html#cmdoption-showfsevents.py--fusefs">showfsevents.py command line option</a>, <a href="man.html#cmdoption-showfsevents.py--fusefs">[1]</a></dt>
+ <dt><a href="intro.html#cmdoption-autodep--fusefs">autodep command line option</a>, <a href="man.html#cmdoption-autodep--fusefs">[1]</a></dt>
</dl></dd>
<dt>--help, -h</dt>
<dd><dl>
- <dt><a href="intro.html#cmdoption-showfsevents.py--help">showfsevents.py command line option</a>, <a href="man.html#cmdoption-showfsevents.py--help">[1]</a></dt>
+ <dt><a href="intro.html#cmdoption-autodep--help">autodep command line option</a>, <a href="man.html#cmdoption-autodep--help">[1]</a></dt>
</dl></dd>
<dt>--hooklib</dt>
<dd><dl>
- <dt><a href="intro.html#cmdoption-showfsevents.py--hooklib">showfsevents.py command line option</a>, <a href="man.html#cmdoption-showfsevents.py--hooklib">[1]</a></dt>
+ <dt><a href="intro.html#cmdoption-autodep--hooklib">autodep command line option</a>, <a href="man.html#cmdoption-autodep--hooklib">[1]</a></dt>
</dl></dd>
<dt>--nocolor, -C</dt>
<dd><dl>
- <dt><a href="man.html#cmdoption-showfsevents.py--nocolor">showfsevents.py command line option</a></dt>
+ <dt><a href="man.html#cmdoption-autodep--nocolor">autodep command line option</a></dt>
</dl></dd>
- <dt>-b PACKAGES, --block=PACKAGES</dt>
+ <dt>-b, --block</dt>
<dd><dl>
- <dt><a href="intro.html#cmdoption-showfsevents.py-b">showfsevents.py command line option</a>, <a href="man.html#cmdoption-showfsevents.py-b">[1]</a></dt>
+ <dt><a href="intro.html#cmdoption-autodep-b">autodep command line option</a>, <a href="man.html#cmdoption-autodep-b">[1]</a></dt>
</dl></dd>
</dl></td>
<td style="width: 33%" valign="top"><dl>
<dt>-C , --nocolor</dt>
<dd><dl>
- <dt><a href="intro.html#cmdoption-showfsevents.py-C">showfsevents.py command line option</a></dt>
+ <dt><a href="intro.html#cmdoption-autodep-C">autodep command line option</a></dt>
</dl></dd>
<dt>-f , --files</dt>
<dd><dl>
- <dt><a href="intro.html#cmdoption-showfsevents.py-f">showfsevents.py command line option</a></dt>
+ <dt><a href="intro.html#cmdoption-autodep-f">autodep command line option</a></dt>
</dl></dd>
<dt>-f, --files</dt>
<dd><dl>
- <dt><a href="man.html#cmdoption-showfsevents.py-f">showfsevents.py command line option</a></dt>
+ <dt><a href="man.html#cmdoption-autodep-f">autodep command line option</a></dt>
</dl></dd>
<dt>-v , --verbose</dt>
<dd><dl>
- <dt><a href="intro.html#cmdoption-showfsevents.py-v">showfsevents.py command line option</a></dt>
+ <dt><a href="intro.html#cmdoption-autodep-v">autodep command line option</a></dt>
</dl></dd>
<dt>-v, --verbose</dt>
<dd><dl>
- <dt><a href="man.html#cmdoption-showfsevents.py-v">showfsevents.py command line option</a></dt>
+ <dt><a href="man.html#cmdoption-autodep-v">autodep command line option</a></dt>
+ </dl></dd>
+</dl></td>
+</tr></table>
+
+<h2 id="A">A</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+ <td style="width: 33%" valign="top"><dl>
+ <dt>autodep command line option</dt>
+ <dd><dl>
+ <dt><a href="intro.html#cmdoption-autodep--blockpkgs">--blockpkgs=PACKAGES</a>, <a href="man.html#cmdoption-autodep--blockpkgs">[1]</a></dt>
+ <dt><a href="intro.html#cmdoption-autodep--fusefs">--fusefs</a>, <a href="man.html#cmdoption-autodep--fusefs">[1]</a></dt>
+ <dt><a href="intro.html#cmdoption-autodep--help">--help, -h</a>, <a href="man.html#cmdoption-autodep--help">[1]</a></dt>
+ <dt><a href="intro.html#cmdoption-autodep--hooklib">--hooklib</a>, <a href="man.html#cmdoption-autodep--hooklib">[1]</a></dt>
+ <dt><a href="man.html#cmdoption-autodep--nocolor">--nocolor, -C</a></dt>
+ <dt><a href="intro.html#cmdoption-autodep-C">-C , --nocolor</a></dt>
+ <dt><a href="intro.html#cmdoption-autodep-b">-b, --block</a>, <a href="man.html#cmdoption-autodep-b">[1]</a></dt>
+ <dt><a href="intro.html#cmdoption-autodep-f">-f , --files</a></dt>
+ <dt><a href="man.html#cmdoption-autodep-f">-f, --files</a></dt>
+ <dt><a href="intro.html#cmdoption-autodep-v">-v , --verbose</a></dt>
+ <dt><a href="man.html#cmdoption-autodep-v">-v, --verbose</a></dt>
</dl></dd>
</dl></td>
</tr></table>
@@ -100,11 +124,15 @@
<h2 id="G">G</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%" valign="top"><dl>
+ <dt><a href="api.html#package_utils.portage_utils.get_all_packages_files">get_all_packages_files() (in module package_utils.portage_utils)</a></dt>
+ <dt><a href="api.html#package_utils.portage_misc_functions.portage_api.get_best_visible_pkg">get_best_visible_pkg() (package_utils.portage_misc_functions.portage_api method)</a></dt>
+ <dt><a href="api.html#package_utils.portage_misc_functions.portage_api.get_dep">get_dep() (package_utils.portage_misc_functions.portage_api method)</a></dt>
<dt><a href="api.html#package_utils.portage_misc_functions.portage_api.get_deps">get_deps() (package_utils.portage_misc_functions.portage_api method)</a></dt>
<dt><a href="api.html#package_utils.portage_log_parser.get_list_of_merged_packages">get_list_of_merged_packages() (in module package_utils.portage_log_parser)</a></dt>
- <dt><a href="api.html#package_utils.portage_misc_functions.portage_api.get_system_packages_list">get_system_packages_list() (package_utils.portage_misc_functions.portage_api method)</a></dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
+ <dt><a href="api.html#package_utils.portage_misc_functions.portage_api.get_merge_list">get_merge_list() (package_utils.portage_misc_functions.portage_api method)</a></dt>
+ <dt><a href="api.html#package_utils.portage_misc_functions.portage_api.get_system_packages_list">get_system_packages_list() (package_utils.portage_misc_functions.portage_api method)</a></dt>
<dt><a href="api.html#package_utils.portage_utils.getfilesbypackage">getfilesbypackage() (in module package_utils.portage_utils)</a></dt>
<dt><a href="api.html#logfs.fstracer.getfsevents">getfsevents() (in module logfs.fstracer)</a></dt>
<dt><a href="api.html#package_utils.portage_utils.getpackagesbyfiles">getpackagesbyfiles() (in module package_utils.portage_utils)</a></dt>
@@ -131,25 +159,6 @@
</dl></td>
</tr></table>
-<h2 id="S">S</h2>
-<table style="width: 100%" class="indextable genindextable"><tr>
- <td style="width: 33%" valign="top"><dl>
- <dt>showfsevents.py command line option</dt>
- <dd><dl>
- <dt><a href="intro.html#cmdoption-showfsevents.py--fusefs">--fusefs</a>, <a href="man.html#cmdoption-showfsevents.py--fusefs">[1]</a></dt>
- <dt><a href="intro.html#cmdoption-showfsevents.py--help">--help, -h</a>, <a href="man.html#cmdoption-showfsevents.py--help">[1]</a></dt>
- <dt><a href="intro.html#cmdoption-showfsevents.py--hooklib">--hooklib</a>, <a href="man.html#cmdoption-showfsevents.py--hooklib">[1]</a></dt>
- <dt><a href="man.html#cmdoption-showfsevents.py--nocolor">--nocolor, -C</a></dt>
- <dt><a href="intro.html#cmdoption-showfsevents.py-C">-C , --nocolor</a></dt>
- <dt><a href="intro.html#cmdoption-showfsevents.py-b">-b PACKAGES, --block=PACKAGES</a>, <a href="man.html#cmdoption-showfsevents.py-b">[1]</a></dt>
- <dt><a href="intro.html#cmdoption-showfsevents.py-f">-f , --files</a></dt>
- <dt><a href="man.html#cmdoption-showfsevents.py-f">-f, --files</a></dt>
- <dt><a href="intro.html#cmdoption-showfsevents.py-v">-v , --verbose</a></dt>
- <dt><a href="man.html#cmdoption-showfsevents.py-v">-v, --verbose</a></dt>
- </dl></dd>
-</dl></td>
-</tr></table>
-
</div>
@@ -191,7 +200,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Jul 25, 2011.
+ Last updated on Aug 03, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/index.html b/docs/build/html/index.html
index 6fc6a22..b56bed7 100644
--- a/docs/build/html/index.html
+++ b/docs/build/html/index.html
@@ -136,7 +136,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Jul 25, 2011.
+ Last updated on Aug 03, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/intro.html b/docs/build/html/intro.html
index 75211da..18e7294 100644
--- a/docs/build/html/intro.html
+++ b/docs/build/html/intro.html
@@ -56,7 +56,8 @@
<div class="section" id="overview">
<h2>Overview<a class="headerlink" href="#overview" title="Permalink to this headline">¶</a></h2>
<p>Auto dependency builder is a tool for analysis files accessed during
-building a package. It also can be used for runtime dependencies analysis.</p>
+building a package. It also can be used for buildtime and runtime dependency
+analysis.</p>
<p>The tool can block an access to files of defined packages.</p>
<p>It is released under GNU GPL license.</p>
</div>
@@ -73,48 +74,54 @@ building a package. It also can be used for runtime dependencies analysis.</p>
</div>
<div class="section" id="running">
<h2>Running<a class="headerlink" href="#running" title="Permalink to this headline">¶</a></h2>
-<div class="highlight-none"><div class="highlight"><pre>showfsevents.py [options] <command>
+<div class="highlight-none"><div class="highlight"><pre>autodep [options] <command>
</pre></div>
</div>
<dl class="cmdoption">
-<dt id="cmdoption-showfsevents.py--help">
-<tt class="descname">--help</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">-h</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-showfsevents.py--help" title="Permalink to this definition">¶</a></dt>
+<dt id="cmdoption-autodep--help">
+<tt class="descname">--help</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">-h</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep--help" title="Permalink to this definition">¶</a></dt>
<dd><p>show this help message and exit</p>
</dd></dl>
<dl class="cmdoption">
-<dt id="cmdoption-showfsevents.py-b">
-<tt class="descname">-b</tt><tt class="descclassname"> PACKAGES</tt><tt class="descclassname">, </tt><tt class="descname">--block</tt><tt class="descclassname">=PACKAGES</tt><a class="headerlink" href="#cmdoption-showfsevents.py-b" title="Permalink to this definition">¶</a></dt>
+<dt id="cmdoption-autodep-b">
+<tt class="descname">-b</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">--block</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep-b" title="Permalink to this definition">¶</a></dt>
+<dd><p>strict mode: deny all access to non-dependency packages</p>
+</dd></dl>
+
+<dl class="cmdoption">
+<dt id="cmdoption-autodep--blockpkgs">
+<tt class="descname">--blockpkgs</tt><tt class="descclassname">=PACKAGES</tt><a class="headerlink" href="#cmdoption-autodep--blockpkgs" title="Permalink to this definition">¶</a></dt>
<dd><p>block an access to files from this packages</p>
</dd></dl>
<dl class="cmdoption">
-<dt id="cmdoption-showfsevents.py-f">
-<tt class="descname">-f</tt><tt class="descclassname"> </tt><tt class="descclassname">, </tt><tt class="descname">--files</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-showfsevents.py-f" title="Permalink to this definition">¶</a></dt>
+<dt id="cmdoption-autodep-f">
+<tt class="descname">-f</tt><tt class="descclassname"> </tt><tt class="descclassname">, </tt><tt class="descname">--files</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep-f" title="Permalink to this definition">¶</a></dt>
<dd><p>show accessed files and not founded files</p>
</dd></dl>
<dl class="cmdoption">
-<dt id="cmdoption-showfsevents.py-v">
-<tt class="descname">-v</tt><tt class="descclassname"> </tt><tt class="descclassname">, </tt><tt class="descname">--verbose</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-showfsevents.py-v" title="Permalink to this definition">¶</a></dt>
+<dt id="cmdoption-autodep-v">
+<tt class="descname">-v</tt><tt class="descclassname"> </tt><tt class="descclassname">, </tt><tt class="descname">--verbose</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep-v" title="Permalink to this definition">¶</a></dt>
<dd><p>show non-important packages, show unknown package and unknown stage</p>
</dd></dl>
<dl class="cmdoption">
-<dt id="cmdoption-showfsevents.py-C">
-<tt class="descname">-C</tt><tt class="descclassname"> </tt><tt class="descclassname">, </tt><tt class="descname">--nocolor</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-showfsevents.py-C" title="Permalink to this definition">¶</a></dt>
+<dt id="cmdoption-autodep-C">
+<tt class="descname">-C</tt><tt class="descclassname"> </tt><tt class="descclassname">, </tt><tt class="descname">--nocolor</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep-C" title="Permalink to this definition">¶</a></dt>
<dd><p>don’t output color</p>
</dd></dl>
<dl class="cmdoption">
-<dt id="cmdoption-showfsevents.py--hooklib">
-<tt class="descname">--hooklib</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-showfsevents.py--hooklib" title="Permalink to this definition">¶</a></dt>
+<dt id="cmdoption-autodep--hooklib">
+<tt class="descname">--hooklib</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep--hooklib" title="Permalink to this definition">¶</a></dt>
<dd><p>use ld_preload logging approach(default)</p>
</dd></dl>
<dl class="cmdoption">
-<dt id="cmdoption-showfsevents.py--fusefs">
-<tt class="descname">--fusefs</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-showfsevents.py--fusefs" title="Permalink to this definition">¶</a></dt>
+<dt id="cmdoption-autodep--fusefs">
+<tt class="descname">--fusefs</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep--fusefs" title="Permalink to this definition">¶</a></dt>
<dd><p>use fuse logging approach(slow, but reliable)</p>
</dd></dl>
@@ -186,22 +193,22 @@ while launching, so this will take more time than usual.</td></tr>
<div class="section" id="examples">
<h2>Examples<a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h2>
<p class="rubric">1. Get the potential dependencies of a xchat package:</p>
-<div class="highlight-none"><div class="highlight"><pre>showfsevents.py emerge xchat
+<div class="highlight-none"><div class="highlight"><pre>autodep emerge xchat
</pre></div>
</div>
<p class="rubric">2. Get the potential dependencies of a xchat package, blocking
x11-misc/util-macros package:</p>
-<div class="highlight-none"><div class="highlight"><pre>showfsevents.py emerge --block x11-misc/util-macros emerge xchat
+<div class="highlight-none"><div class="highlight"><pre>autodep emerge --block x11-misc/util-macros emerge xchat
</pre></div>
</div>
<p class="rubric">3. Get the potential dependencies of a xchat package, and show files
accessed:</p>
-<div class="highlight-none"><div class="highlight"><pre>showfsevents.py --files emerge xchat
+<div class="highlight-none"><div class="highlight"><pre>autodep --files emerge xchat
</pre></div>
</div>
<p class="rubric">4. Get the runtime dependencies of a xchat and show files
accessed:</p>
-<div class="highlight-none"><div class="highlight"><pre>showfsevents.py --fusefs --files xchat
+<div class="highlight-none"><div class="highlight"><pre>autodep --fusefs --files xchat
</pre></div>
</div>
</div>
@@ -283,7 +290,7 @@ accessed:</p>
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Jul 25, 2011.
+ Last updated on Aug 03, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/man.html b/docs/build/html/man.html
index f2b221a..734bd1f 100644
--- a/docs/build/html/man.html
+++ b/docs/build/html/man.html
@@ -47,7 +47,7 @@
<h1>USER COMMANDS<a class="headerlink" href="#user-commands" title="Permalink to this headline">¶</a></h1>
<div class="section" id="synopsis">
<h2>SYNOPSIS<a class="headerlink" href="#synopsis" title="Permalink to this headline">¶</a></h2>
-<p><strong>showfsevents.py</strong> [options] <command></p>
+<p><strong>autodep</strong> [options] <command></p>
</div>
<div class="section" id="description">
<h2>DESCRIPTION<a class="headerlink" href="#description" title="Permalink to this headline">¶</a></h2>
@@ -58,44 +58,50 @@ building a package. It also can be used for runtime dependencies analysis.</p>
<div class="section" id="options">
<h2>OPTIONS<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
<dl class="cmdoption">
-<dt id="cmdoption-showfsevents.py--help">
-<tt class="descname">--help</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">-h</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-showfsevents.py--help" title="Permalink to this definition">¶</a></dt>
+<dt id="cmdoption-autodep--help">
+<tt class="descname">--help</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">-h</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep--help" title="Permalink to this definition">¶</a></dt>
<dd><p>show this help message and exit</p>
</dd></dl>
<dl class="cmdoption">
-<dt id="cmdoption-showfsevents.py-b">
-<tt class="descname">-b</tt><tt class="descclassname"> PACKAGES</tt><tt class="descclassname">, </tt><tt class="descname">--block</tt><tt class="descclassname">=PACKAGES</tt><a class="headerlink" href="#cmdoption-showfsevents.py-b" title="Permalink to this definition">¶</a></dt>
+<dt id="cmdoption-autodep-b">
+<tt class="descname">-b</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">--block</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep-b" title="Permalink to this definition">¶</a></dt>
+<dd><p>strict mode: deny all access to non-dependency packages</p>
+</dd></dl>
+
+<dl class="cmdoption">
+<dt id="cmdoption-autodep--blockpkgs">
+<tt class="descname">--blockpkgs</tt><tt class="descclassname">=PACKAGES</tt><a class="headerlink" href="#cmdoption-autodep--blockpkgs" title="Permalink to this definition">¶</a></dt>
<dd><p>block an access to files from this packages</p>
</dd></dl>
<dl class="cmdoption">
-<dt id="cmdoption-showfsevents.py-f">
-<tt class="descname">-f</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">--files</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-showfsevents.py-f" title="Permalink to this definition">¶</a></dt>
+<dt id="cmdoption-autodep-f">
+<tt class="descname">-f</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">--files</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep-f" title="Permalink to this definition">¶</a></dt>
<dd><p>show accessed files and not founded files</p>
</dd></dl>
<dl class="cmdoption">
-<dt id="cmdoption-showfsevents.py-v">
-<tt class="descname">-v</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">--verbose</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-showfsevents.py-v" title="Permalink to this definition">¶</a></dt>
+<dt id="cmdoption-autodep-v">
+<tt class="descname">-v</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">--verbose</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep-v" title="Permalink to this definition">¶</a></dt>
<dd><p>show non-important packages, show unknown package and unknown stage</p>
</dd></dl>
<dl class="cmdoption">
-<dt id="cmdoption-showfsevents.py--nocolor">
-<tt class="descname">--nocolor</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">-C</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-showfsevents.py--nocolor" title="Permalink to this definition">¶</a></dt>
+<dt id="cmdoption-autodep--nocolor">
+<tt class="descname">--nocolor</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">-C</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep--nocolor" title="Permalink to this definition">¶</a></dt>
<dd><p>don’t output color</p>
</dd></dl>
<dl class="cmdoption">
-<dt id="cmdoption-showfsevents.py--hooklib">
-<tt class="descname">--hooklib</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-showfsevents.py--hooklib" title="Permalink to this definition">¶</a></dt>
+<dt id="cmdoption-autodep--hooklib">
+<tt class="descname">--hooklib</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep--hooklib" title="Permalink to this definition">¶</a></dt>
<dd><p>use ld_preload logging approach(default)</p>
</dd></dl>
<dl class="cmdoption">
-<dt id="cmdoption-showfsevents.py--fusefs">
-<tt class="descname">--fusefs</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-showfsevents.py--fusefs" title="Permalink to this definition">¶</a></dt>
+<dt id="cmdoption-autodep--fusefs">
+<tt class="descname">--fusefs</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep--fusefs" title="Permalink to this definition">¶</a></dt>
<dd><p>use fuse logging approach(slow, but reliable)</p>
</dd></dl>
@@ -167,19 +173,19 @@ while launching, so this will take more time than usual.</td></tr>
<h2>Examples<a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h2>
<div class="section" id="get-the-potential-dependencies-of-a-xchat-package">
<h3>Get the potential dependencies of a xchat package:<a class="headerlink" href="#get-the-potential-dependencies-of-a-xchat-package" title="Permalink to this headline">¶</a></h3>
-<p>showfsevents.py emerge xchat</p>
+<p>autodep emerge xchat</p>
</div>
<div class="section" id="get-the-potential-dependencies-of-a-xchat-package-blocking-x11-misc-util-macros-package">
<h3>Get the potential dependencies of a xchat package, blocking x11-misc/util-macros package:<a class="headerlink" href="#get-the-potential-dependencies-of-a-xchat-package-blocking-x11-misc-util-macros-package" title="Permalink to this headline">¶</a></h3>
-<p>showfsevents.py emerge –block x11-misc/util-macros emerge xchat</p>
+<p>autodep emerge –block x11-misc/util-macros emerge xchat</p>
</div>
<div class="section" id="get-the-potential-dependencies-of-a-xchat-package-and-show-files-accessed">
<h3>Get the potential dependencies of a xchat package, and show files accessed:<a class="headerlink" href="#get-the-potential-dependencies-of-a-xchat-package-and-show-files-accessed" title="Permalink to this headline">¶</a></h3>
-<p>showfsevents.py –files emerge xchat</p>
+<p>autodep –files emerge xchat</p>
</div>
<div class="section" id="get-the-runtime-dependencies-of-a-xchat-and-show-files-accessed">
<h3>Get the runtime dependencies of a xchat and show files accessed:<a class="headerlink" href="#get-the-runtime-dependencies-of-a-xchat-and-show-files-accessed" title="Permalink to this headline">¶</a></h3>
-<p>showfsevents.py –fusefs –files xchat</p>
+<p>autodep –fusefs –files xchat</p>
</div>
</div>
</div>
@@ -244,7 +250,7 @@ while launching, so this will take more time than usual.</td></tr>
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Jul 25, 2011.
+ Last updated on Aug 03, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv
index a2f3148..20cf75f 100644
--- a/docs/build/html/objects.inv
+++ b/docs/build/html/objects.inv
@@ -2,5 +2,10 @@
# Project: Autodep
# Version: 0.1
# The remainder of this file is compressed using zlib.
-xÚT½NÃ0\x10Þû\x14`uD×®L\fHH<åØçĪ\x7f"SÈÛØIP\x10¥Ëó}\x7fw§Pªz\x04
\x04£<ø.jïÈXîª6Zó ¬ÌEÿP\b'p\x11«nx$tG©óÂ^[\x1fÀª\bõ¼Ei\x17¿Êj\v¦+R¬ËFÓz\x7f4º\f|*AY/µð°×`\bÝn ËCæ ¯^ö\x06ÈËTÚ5à~\x01-Õ\x19[\x11x\x10í¶1×æ¶÷ÜðÆ^[Ø\x19ß(¬\x14ÆÀ\x05ÑÅÁfÙ'Â;\x01¹B'ï\x1d\x17Ç\x11Æú¨ÍǸ~\x15bG\x03¬ã\x01ÅFÁTïÄ4o¼'AÕ@±\x1e6è\x16îqÁ+áÄtvt?ú.(&z»þ\x12¼1ÿõ6n\x05m%×ò\x1c\x031 ]¦Øzy\x1då÷\x19$
-£12¯
ÐdËVîÎÆjc$\x18\x0fÍÍ/\x01\a`Wï)Óyí5¥Ã\x7f^[ÿ\x19zâ\x12#Þºó'ò\x05t»e
\ No newline at end of file
+xÚTOo \x14¿÷SlWõÚëN;,Y²\x0f@\x10\x1fJ\x04!<læ·Út[µ´;úüýãýDJkk^[
+¡<Z\x17mÉ\x18Þîë`ô0e\x1aRÞ\x05[{&tGi¡h\Sa\x16íõ\x12ÚàíªM\rÚå\x05\x1dÌKyôÖ
+«Ï"²Ð2\aml©Ú\x12¾Fæ\x05hB\x0fÄõt~¸äÝ\x06ò\x16G»
+Ú?Hótb$(\x02÷¢¾\x04¦Ù\x04ûL\x0f^ÁNÛJâ^bð\\x1fR\x1cM²}!Ü©DH\x13\x1a³;.ƺ 4îõayº;\x04`{¼ÛÜ(\x14Lv{Æ\x7f\x11YÆQ À
+ÀÀN
+U¡\rhtPÛrh{qÙXPT^cÑK¥aL;»þTºl&% ڰÊÚðg\k6`\x192*»yµ«ÛOñå¯f;¹mnH\x1aðqI
+C®ðy±£P`V&Ár©-¿°À£\x1dûê¿=\x060çOîµlWx]ñêÿíAç¨$4G̼ã+ú µVå7\x05CÞê
\ No newline at end of file
diff --git a/docs/build/html/py-modindex.html b/docs/build/html/py-modindex.html
index a2e022c..42ac89a 100644
--- a/docs/build/html/py-modindex.html
+++ b/docs/build/html/py-modindex.html
@@ -132,7 +132,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Jul 25, 2011.
+ Last updated on Aug 03, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/search.html b/docs/build/html/search.html
index dfff3e8..2da6a37 100644
--- a/docs/build/html/search.html
+++ b/docs/build/html/search.html
@@ -96,7 +96,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Jul 25, 2011.
+ Last updated on Aug 03, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js
index 9d5cacb..8c5fbdb 100644
--- a/docs/build/html/searchindex.js
+++ b/docs/build/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({objects:{"":{"-f":[4,0,1],"-C":[2,0,1],"-b":[4,0,1],"--hooklib":[4,0,1],"--fusefs":[4,0,1],"-v":[4,0,1],"--nocolor":[4,0,1],"--help":[4,0,1]},"package_utils.portage_misc_functions":{portage_api:[1,4,1]},"package_utils.portage_log_parser":{get_list_of_merged_packages:[1,2,1]},logfs:{fstracer:[1,1,1]},"package_utils.portage_utils":{getfilesbypackage:[1,2,1],getpackagesbyfiles:[1,2,1]},"logfs.fstracer":{getfsevents:[1,2,1]},"package_utils.portage_misc_functions.portage_api":{get_deps:[1,3,1],get_system_packages_list:[1,3,1],parse_emerge_args:[1,3,1]},package_utils:{portage_misc_functions:[1,1,1],portage_utils:[1,1,1],portage_log_parser:[1,1,1]}},terms:{load:[2,3,4],all:[1,2,3,4],code:3,help:[2,4],chain:1,show:[2,4],over:3,rootf:3,mnt:3,time:[1,2,3,4],pkg:1,rdepend:1,environ:3,find:1,dynam:[2,3,4],paramet:1,xml:3,prog_nam:1,onli:[2,4],cut:3,depend:[1,2,3,4],execut:3,field:3,"true":1,activ:2,dep_typ:1,should:1,cowsai:2,ebuild:2,program:[1,2,3,4],under:2,els:3,par
se_emerge_arg:1,main:3,analys:3,logic:1,take:[1,2,3,4],filterproc:1,sock_seqpacket:3,sourc:1,"return":[1,3],string:1,thei:1,get:[1,2,4],fals:1,big:[2,4],between:1,util:[2,3,4],lib32:3,got:3,increas:3,"0x19e7b18":1,recurs:1,hooker:3,requir:[2,4],introduct:[0,2],tri:3,builder:[2,4],name:[1,3],success:1,level:1,approach:[0,1,2,3,4],package_util:[0,1],list:[1,3],nocolor:[2,4],api:[0,1],each:1,userspac:3,found:[1,2,3,4],get_list_of_merged_packag:1,emerg:[1,2,4],kernel:[2,4],domain:3,set:1,slower:[2,4],often:3,protect:3,linux:3,idea:3,packet:3,shm:3,logf:[0,1],second:1,cost:3,sec:3,result:3,pass:1,fail:1,further:3,successfulli:1,todo:2,event:[0,1,2,3,4],librari:[2,3,4],variabl:3,index:2,statu:[0,2],servic:1,network:3,compar:3,bind:3,normal:[2,4],unknown:[1,2,3,4],access:[0,1,2,3,4],autodep:[0,2],exit:[2,4],directori:3,overlai:2,"new":3,lib64:3,content:0,proc:3,reciev:3,after:3,run:[0,2,3],depth:1,kei:1,contain:1,slow:[2,4],believ:3,starttim:1,x11:[2,4],releas:2,argument:1,portage_
api:1,sinc:[1,3],bash:2,xchat:[2,4],both:1,fstracer:[0,1],socket:3,thread:3,registar:3,libc:3,current:1,page:2,portage_log_pars:1,registrar:3,includ:3,getfsev:1,action:1,mani:[2,4],chang:3,lsof:2,licens:2,block:[1,2,3,4],first:1,origin:3,via:3,dictionari:1,packagenam:1,color:[2,4],overview:[0,2],modul:[1,2,3],misc:[2,4],system:[1,2,3,4],ld_preload:[2,3,4],ask:3,unix:3,defaultfilt:1,send:3,heurist:3,instal:[0,2,3],desktop:3,open:[1,3],merg:1,gpl:2,get_dep:1,getpackagesbyfil:1,fusef:[0,1,2,3,4],from:[1,2,3,4],log:[1,2,4],wai:3,errno:3,showfsev:[2,4],doesn:1,two:1,messag:[2,3,4],implicit:[1,3],verbos:[2,4],start:1,much:3,call:[1,3],usr:3,handl:1,"var":3,overhead:[2,4],stage:[1,2,3,4],type:[1,3],low:1,analysi:[0,2,3,4],allow:[1,2,3,4],linker:3,option:[1,2,4],unexpect:3,getfilesbypackag:1,tupl:1,tool:[2,4],copi:3,tmp:3,search:[1,2],direct:[2,4],postrm:3,modifi:3,endtim:1,portag:[1,3],atom:1,arg:1,than:[2,4],must:[2,4],also:[1,2,3,4],scheme:3,portage_util:1,err:3,gnu:2,"default":[
1,2,4],mount:3,launch:[1,2,3,4],intern:[0,3],dev:3,charact:3,defin:[2,4],"while":[2,3,4],bridg:1,can:[1,2,3,4],behavior:3,error:3,about:3,more:[2,4],root:[2,4],delimit:3,connect:3,pre:[2,4],"function":[1,3],parser:1,creat:3,portage_misc_funct:1,dure:[2,4],registr:3,filenam:1,non:[2,4],indic:[0,2],high:1,packag:[1,2,3,4],befor:3,inform:[1,3],file:[0,1,2,3,4],tabl:[0,2],synopsi:4,"import":[2,4],work:[0,1,3],check:3,unus:3,filter:1,profil:3,chroot:3,end:[1,3],get_system_packages_list:1,output:[2,4],perform:[2,3,4],anoth:3,make:2,belong:1,when:[2,3,4],detail:3,same:3,accuraci:3,note:[2,3,4],how:[0,3],other:3,read:[1,2,3,4],build:[2,3,4],which:1,auto:[2,4],answer:3,instead:[1,3],document:0,simpl:3,prepar:3,enabl:[2,4],fork:3,map:3,loggabl:3,extern:3,thi:[1,2,3,4],see:3,alwai:1,recomend:[2,4],who:[2,4],what:[2,4],most:[2,4],buildtim:[2,4],fuse:[2,3,4],user:[2,4],share:3,phase:3,develop:2,"class":1,man:3,don:[2,4],write:[1,3],syscal:[2,4],ani:[1,2,3,4],macro:[2,4],reliabl:[2,4],acl
oc:3,descript:4,rule:3,element:1,hooklib:[0,1,2,3,4],deni:3,exampl:[0,2,4],command:[2,4],runtim:[2,3,4],potenti:[2,4],filesystem:3,format:3,pars:1,stagenam:3,futher:[0,3],usual:[2,3,4]},objtypes:{"0":"std:option","1":"py:module","2":"py:function","3":"py:method","4":"py:class"},titles:["Autodep’s documentation","API","Introduction","Internals","USER COMMANDS"],objnames:{"0":"option","1":"Python module","2":"Python function","3":"Python method","4":"Python class"},filenames:["index","api","intro","architecture","man"]})
\ No newline at end of file
+Search.setIndex({objects:{"":{"-v":[4,0,1],"-f":[4,0,1],"-C":[2,0,1],"-b":[4,0,1],"--hooklib":[4,0,1],"--fusefs":[4,0,1],"--blockpkgs":[4,0,1],"--nocolor":[4,0,1],"--help":[4,0,1]},"package_utils.portage_misc_functions":{portage_api:[1,4,1]},"package_utils.portage_log_parser":{get_list_of_merged_packages:[1,3,1]},logfs:{fstracer:[1,1,1]},"package_utils.portage_utils":{getfilesbypackage:[1,3,1],getpackagesbyfiles:[1,3,1],get_all_packages_files:[1,3,1]},"logfs.fstracer":{getfsevents:[1,3,1]},"package_utils.portage_misc_functions.portage_api":{get_dep:[1,2,1],get_system_packages_list:[1,2,1],get_best_visible_pkg:[1,2,1],get_deps:[1,2,1],get_merge_list:[1,2,1],parse_emerge_args:[1,2,1]},package_utils:{portage_misc_functions:[1,1,1],portage_utils:[1,1,1],portage_log_parser:[1,1,1]}},terms:{oper:1,all:[1,2,3,4],code:3,help:[2,4],chain:1,show:[2,4],futher:[0,3],over:3,rootf:3,mnt:3,veri:1,pkg:1,accuraci:3,find:1,dynam:[2,3,4],paramet:1,xml:3,prog_nam:1,onli:[2,4],cut:3,depend:[1,2,
3,4],execut:3,field:3,activ:2,dep_typ:1,should:1,cowsai:2,ebuild:2,program:[1,2,3,4],under:2,els:3,parse_emerge_arg:1,main:3,analys:3,getfsev:1,build:[2,3,4],filterproc:1,deni:[2,3,4],sock_seqpacket:3,sourc:1,"return":[1,3],string:1,variou:1,get:[1,2,4],fals:1,big:[2,4],overlai:2,util:[2,3,4],than:[2,4],candid:1,command:[2,4],"new":3,increas:3,potenti:[2,4],"0x19e7b18":[],recurs:1,lib64:3,requir:[2,4],introduct:[0,2],tri:3,document:0,name:[1,3],success:1,level:1,proc:3,gnu:2,list:[1,3],nocolor:[2,4],exampl:[0,2,4],phase:3,mode:[2,4],man:3,each:1,userspac:3,found:[1,2,3,4],shm:3,kernel:[2,4],domain:3,set:1,slower:[2,4],often:3,map:3,heurist:3,idea:3,packet:3,logf:[0,1],second:1,cost:3,sec:3,result:3,pass:1,fail:1,further:3,successfulli:1,todo:2,event:[0,1,2,3,4],librari:[2,3,4],variabl:3,index:2,statu:[0,2],servic:1,network:3,compar:3,bind:3,develop:2,unknown:[1,2,3,4],best:1,access:[0,1,2,3,4],version:1,exit:[2,4],between:1,got:3,hooker:3,content:0,approach:[0,1,2,3,4],unus:
3,gpl:2,who:[2,4],run:[0,2,3],kei:1,arg:1,contain:1,get_all_packages_fil:1,slow:[2,4],believ:3,starttim:1,x11:[2,4],releas:2,hooklib:[0,1,2,3,4],portage_api:1,sinc:[1,3],bash:2,get_best_visible_pkg:1,both:1,search:[1,2],socket:3,thread:3,registar:3,libc:3,current:1,page:2,portage_log_pars:1,registrar:3,reliabl:[2,4],logic:1,action:1,mani:[2,4],chang:3,share:3,lsof:2,other:3,block:[1,2,3,4],first:1,load:[2,3,4],via:3,dictionari:1,packagenam:1,color:[2,4],overview:[0,2],modul:[1,2,3],defaultfilt:1,misc:[2,4],get_merge_list:1,usual:[2,3,4],two:1,ld_preload:[2,3,4],ask:3,unix:3,api:[0,1],non:[2,4],send:3,linux:3,instal:[0,1,2,3],desktop:3,open:[1,3],stage:[1,2,3,4],merg:1,reciev:3,get_dep:1,most:[2,4],from:[1,2,3,4],log:[1,2,4],fusef:[0,1,2,3,4],memori:1,profil:3,modifi:3,licens:2,doesn:1,system:[1,2,3,4],messag:[2,3,4],implicit:[1,3],verbos:[2,4],start:1,much:3,call:[1,3],includ:3,handl:1,autodep:[0,2,4],overhead:[2,4],xchat:[2,4],type:[1,3],strict:[2,4],usr:3,fork:3,parser:1,e
rrno:3,unexpect:3,fstracer:[0,1],tupl:1,tool:[2,4],copi:3,protect:3,direct:[2,4],"var":3,postrm:3,pars:1,low:1,portag:[1,3],atom:1,filesystem:3,"true":1,getfilesbypackag:1,origin:3,must:[1,2,4],also:[1,2,3,4],scheme:3,portage_util:1,err:3,package_util:[0,1],"default":[1,2,4],mount:3,launch:[1,2,3,4],intern:[0,1,3],dev:3,charact:3,showfsev:2,defin:[2,4],lib32:3,bridg:1,can:[1,2,3,4],behavior:3,error:3,about:3,more:[2,4],root:[2,4],delimit:3,loggabl:3,connect:3,pre:[2,4],"function":[1,3],empti:1,creat:3,look:1,descript:4,dure:[2,4],linker:3,filenam:1,argument:1,indic:[0,2],get_list_of_merged_packag:1,high:1,packag:[1,2,3,4],inform:[1,3],unreli:1,file:[0,1,2,3,4],tabl:[0,2],synopsi:4,"import":[2,4],work:[0,1,3],check:3,option:[1,2,4],filter:1,write:[1,3],chroot:3,emergearg:1,thei:1,output:[2,4],perform:[2,3,4],anoth:3,make:2,belong:1,when:[2,3,4],detail:3,same:3,"while":[2,3,4],note:[2,3,4],how:[0,3],wai:3,read:[1,2,3,4],take:[1,2,3,4],which:1,auto:[2,4],answer:3,instead:[1,3],
tmp:3,simpl:3,prepar:3,enabl:[2,4],analysi:[0,2,3,4],getpackagesbyfil:1,get_system_packages_list:1,extern:3,thi:[1,2,3,4],see:3,normal:[2,4],recomend:[2,4],after:3,what:[2,4],befor:3,buildtim:[2,4],fuse:[2,3,4],user:[2,4],blockpkg:[2,4],mai:1,end:[1,3],"class":1,"0x1dbdb90":1,don:[2,4],ani:[1,2,3,4],syscal:[2,4],directori:3,macro:[2,4],builder:[2,4],acloc:3,portage_misc_funct:1,rule:3,element:1,alwai:1,registr:3,depth:1,emerg:[1,2,4],environ:3,runtim:[2,3,4],allow:[1,2,3,4],time:[1,2,3,4],format:3,endtim:1,stagenam:3,hungri:1,rdepend:1},objtypes:{"0":"std:option","1":"py:module","2":"py:method","3":"py:function","4":"py:class"},titles:["Autodep’s documentation","API","Introduction","Internals","USER COMMANDS"],objnames:{"0":"option","1":"Python module","2":"Python method","3":"Python function","4":"Python class"},filenames:["index","api","intro","architecture","man"]})
\ No newline at end of file
diff --git a/docs/build/man/autodep.1 b/docs/build/man/autodep.1
new file mode 100644
index 0000000..da9aa10
--- /dev/null
+++ b/docs/build/man/autodep.1
@@ -0,0 +1,186 @@
+.TH "AUTODEP" "1" "August 03, 2011" "0.1" "Autodep"
+.SH NAME
+autodep \- auto dependency builder for Gentoo
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.\" Man page generated from reStructeredText.
+.
+.SH SYNOPSIS
+.sp
+\fBautodep\fP [options] <command>
+.SH DESCRIPTION
+.sp
+Auto dependency builder is a tool for analysis files accessed during
+building a package. It also can be used for runtime dependencies analysis.
+.sp
+The tool can block an access to files of defined packages.
+.SH OPTIONS
+.INDENT 0.0
+.TP
+.B \-\-help, \-h
+.sp
+show this help message and exit
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-b, \-\-block
+.sp
+strict mode: deny all access to non\-dependency packages
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-blockpkgs=PACKAGES
+.sp
+block an access to files from this packages
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-f, \-\-files
+.sp
+show accessed files and not founded files
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-v, \-\-verbose
+.sp
+show non\-important packages, show unknown package and unknown stage
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-nocolor, \-C
+.sp
+don\(aqt output color
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-hooklib
+.
+use ld_preload logging approach(default)
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-fusefs
+.
+use fuse logging approach(slow, but reliable)
+.UNINDENT
+.SH HOOKLIB VS FUSEFS
+.TS
+center;
+|l|l|l|.
+_
+T{
+T} T{
+Hooklib
+T} T{
+Fusefs
+T}
+_
+T{
+Who can use this approach?
+T} T{
+\fBAny user\fP
+T} T{
+Only root
+T}
+_
+T{
+Is approach allows blocking an access to files?
+T} T{
+\fBYES\fP
+T} T{
+\fBYES\fP
+T}
+_
+T{
+Is overhead in performance big?
+T} T{
+\fBNO\fP
+T} T{
+YES [1]
+T}
+_
+T{
+What events are logged?
+T} T{
+Most [2]
+T} T{
+\fBALL\fP
+T}
+_
+T{
+When is it recomended to use an approach?
+T} T{
+For analysis
+of
+\fIbuildtime\fP
+dependencies
+T} T{
+For analysis
+of \fIruntime\fP
+dependencies
+T}
+_
+T{
+Is any pre\-requirements for using an approach?
+T} T{
+\fBNO\fP
+T} T{
+FUSE must be
+enabled in
+kernel
+T}
+_
+.TE
+Notes
+.IP [1] 5
+.
+Fuse file system is slower than normal one. Program reads many files
+while launching, so this will take more time than usual.
+.IP [2] 5
+.
+Loading of dynamic libraries and direct syscalls will not be logged.
+.SH EXAMPLES
+.SS Get the potential dependencies of a xchat package:
+.sp
+autodep emerge xchat
+.SS Get the potential dependencies of a xchat package, blocking x11\-misc/util\-macros package:
+.sp
+autodep emerge \-\-block x11\-misc/util\-macros emerge xchat
+.SS Get the potential dependencies of a xchat package, and show files accessed:
+.sp
+autodep \-\-files emerge xchat
+.SS Get the runtime dependencies of a xchat and show files accessed:
+.sp
+autodep \-\-fusefs \-\-files xchat
+.SH AUTHOR
+Alexander Bersenev
+.SH COPYRIGHT
+2011, Alexander Bersenev
+.\" Generated by docutils manpage writer.
+.\"
+.
diff --git a/docs/source/conf.py b/docs/source/conf.py
index 12fdf8e..1f26d02 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -194,7 +194,7 @@ latex_documents = [
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
- ('man', 'showfsevents.py', u'auto dependency builder for Gentoo',
+ ('man', 'autodep', u'auto dependency builder for Gentoo',
[u'Alexander Bersenev'], 1)
]
diff --git a/docs/source/intro.rst b/docs/source/intro.rst
index 3914bbc..82278ac 100644
--- a/docs/source/intro.rst
+++ b/docs/source/intro.rst
@@ -24,17 +24,21 @@ Installing
Running
===================================
-.. program:: showfsevents.py
+.. program:: autodep
.. code-block:: none
- showfsevents.py [options] <command>
+ autodep [options] <command>
.. cmdoption:: --help, -h
show this help message and exit
-.. cmdoption:: -b PACKAGES, --block=PACKAGES
+.. cmdoption:: -b, --block
+
+ strict mode: deny all access to non-dependency packages
+
+.. cmdoption:: --blockpkgs=PACKAGES
block an access to files from this packages
@@ -96,28 +100,28 @@ Examples
.. code-block:: none
- showfsevents.py emerge xchat
+ autodep emerge xchat
.. rubric:: 2. Get the potential dependencies of a xchat package, blocking
x11-misc/util-macros package:
.. code-block:: none
- showfsevents.py emerge --block x11-misc/util-macros emerge xchat
+ autodep emerge --block x11-misc/util-macros emerge xchat
.. rubric:: 3. Get the potential dependencies of a xchat package, and show files
accessed:
.. code-block:: none
- showfsevents.py --files emerge xchat
+ autodep --files emerge xchat
.. rubric:: 4. Get the runtime dependencies of a xchat and show files
accessed:
.. code-block:: none
- showfsevents.py --fusefs --files xchat
+ autodep --fusefs --files xchat
diff --git a/docs/source/man.rst b/docs/source/man.rst
index ca7fdab..b49fb54 100644
--- a/docs/source/man.rst
+++ b/docs/source/man.rst
@@ -5,7 +5,7 @@ USER COMMANDS
SYNOPSIS
========
-**showfsevents.py** [options] <command>
+**autodep** [options] <command>
DESCRIPTION
===========
@@ -18,13 +18,17 @@ The tool can block an access to files of defined packages.
OPTIONS
=======
-.. program:: showfsevents.py
+.. program:: autodep
.. cmdoption:: --help, -h
show this help message and exit
-.. cmdoption:: -b PACKAGES, --block=PACKAGES
+.. cmdoption:: -b, --block
+
+ strict mode: deny all access to non-dependency packages
+
+.. cmdoption:: --blockpkgs=PACKAGES
block an access to files from this packages
@@ -79,17 +83,17 @@ Examples
Get the potential dependencies of a xchat package:
-----------------------------------------------------
-showfsevents.py emerge xchat
+autodep emerge xchat
Get the potential dependencies of a xchat package, blocking x11-misc/util-macros package:
--------------------------------------------------------------------------------------------
-showfsevents.py emerge --block x11-misc/util-macros emerge xchat
+autodep emerge --block x11-misc/util-macros emerge xchat
Get the potential dependencies of a xchat package, and show files accessed:
------------------------------------------------------------------------------
-showfsevents.py --files emerge xchat
+autodep --files emerge xchat
Get the runtime dependencies of a xchat and show files accessed:
-------------------------------------------------------------------
-showfsevents.py --fusefs --files xchat
+autodep --fusefs --files xchat
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [gentoo-commits] proj/autodep:master commit in: docs/build/html/_sources/, docs/build/html/_modules/package_utils/, ...
@ 2011-08-16 6:31 Александр Берсенев
0 siblings, 0 replies; 5+ messages in thread
From: Александр Берсенев @ 2011-08-16 6:31 UTC (permalink / raw
To: gentoo-commits
commit: 35e1dc34db0539d6a6478209bdc8caf00d82bb7a
Author: Alexander Bersenev <bay <AT> hackerdom <DOT> ru>
AuthorDate: Tue Aug 16 12:29:44 2011 +0000
Commit: Александр Берсенев <bay <AT> hackerdom <DOT> ru>
CommitDate: Tue Aug 16 12:29:44 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/autodep.git;a=commit;h=35e1dc34
changes in output
---
docs/build/doctrees/api.doctree | Bin 45408 -> 46733 bytes
docs/build/doctrees/environment.pickle | Bin 971389 -> 971377 bytes
docs/build/html/_modules/index.html | 2 +-
docs/build/html/_modules/logfs/fstracer.html | 2 +-
.../_modules/package_utils/portage_log_parser.html | 2 +-
.../package_utils/portage_misc_functions.html | 2 +-
.../html/_modules/package_utils/portage_utils.html | 2 +-
docs/build/html/_sources/api.txt | 1 -
docs/build/html/api.html | 20 +++-
docs/build/html/genindex.html | 2 +-
docs/build/html/index.html | 2 +-
docs/build/html/objects.inv | Bin 502 -> 502 bytes
docs/build/html/py-modindex.html | 2 +-
docs/build/html/search.html | 2 +-
docs/build/html/searchindex.js | 2 +-
docs/build/man/autodep.1 | 2 +-
docs/source/api.rst | 1 -
src/autodep/autodep | 123 +++++++++++++-------
src/autodep/helpers/events_analysis.py | 2 +-
.../package_utils/portage_misc_functions.py | 54 +++++++--
src/autodep/tests/all_tests.py | 2 +-
21 files changed, 155 insertions(+), 70 deletions(-)
diff --git a/docs/build/doctrees/api.doctree b/docs/build/doctrees/api.doctree
index bfb5a6d..2516311 100644
Binary files a/docs/build/doctrees/api.doctree and b/docs/build/doctrees/api.doctree differ
diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle
index 3f806c9..23e328c 100644
Binary files a/docs/build/doctrees/environment.pickle and b/docs/build/doctrees/environment.pickle differ
diff --git a/docs/build/html/_modules/index.html b/docs/build/html/_modules/index.html
index a676437..cc23e30 100644
--- a/docs/build/html/_modules/index.html
+++ b/docs/build/html/_modules/index.html
@@ -86,7 +86,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 03, 2011.
+ Last updated on Aug 04, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/_modules/logfs/fstracer.html b/docs/build/html/_modules/logfs/fstracer.html
index 0214fa6..0abbd94 100644
--- a/docs/build/html/_modules/logfs/fstracer.html
+++ b/docs/build/html/_modules/logfs/fstracer.html
@@ -327,7 +327,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 03, 2011.
+ Last updated on Aug 04, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/_modules/package_utils/portage_log_parser.html b/docs/build/html/_modules/package_utils/portage_log_parser.html
index 2c02aa7..a468842 100644
--- a/docs/build/html/_modules/package_utils/portage_log_parser.html
+++ b/docs/build/html/_modules/package_utils/portage_log_parser.html
@@ -170,7 +170,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 03, 2011.
+ Last updated on Aug 04, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/_modules/package_utils/portage_misc_functions.html b/docs/build/html/_modules/package_utils/portage_misc_functions.html
index 637694c..034ad24 100644
--- a/docs/build/html/_modules/package_utils/portage_misc_functions.html
+++ b/docs/build/html/_modules/package_utils/portage_misc_functions.html
@@ -188,7 +188,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 03, 2011.
+ Last updated on Aug 04, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/_modules/package_utils/portage_utils.html b/docs/build/html/_modules/package_utils/portage_utils.html
index 58064e7..f7eba53 100644
--- a/docs/build/html/_modules/package_utils/portage_utils.html
+++ b/docs/build/html/_modules/package_utils/portage_utils.html
@@ -158,7 +158,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 03, 2011.
+ Last updated on Aug 04, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/_sources/api.txt b/docs/build/html/_sources/api.txt
index 4a0a626..1397732 100644
--- a/docs/build/html/_sources/api.txt
+++ b/docs/build/html/_sources/api.txt
@@ -19,4 +19,3 @@ This package contains modules which works with the Portage system
:members:
.. automodule:: package_utils.portage_misc_functions
:members:
-
diff --git a/docs/build/html/api.html b/docs/build/html/api.html
index c5963a3..bec16d7 100644
--- a/docs/build/html/api.html
+++ b/docs/build/html/api.html
@@ -56,7 +56,7 @@ handling dependency logic.</p>
<p>It can be used to launch a program and get all file events</p>
<dl class="function">
<dt id="logfs.fstracer.getfsevents">
-<tt class="descclassname">logfs.fstracer.</tt><tt class="descname">getfsevents</tt><big>(</big><em>prog_name</em>, <em>arguments</em>, <em>approach='hooklib'</em>, <em>filterproc=<function defaultfilter at 0x1dbdb90></em><big>)</big><a class="reference internal" href="_modules/logfs/fstracer.html#getfsevents"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#logfs.fstracer.getfsevents" title="Permalink to this definition">¶</a></dt>
+<tt class="descclassname">logfs.fstracer.</tt><tt class="descname">getfsevents</tt><big>(</big><em>prog_name</em>, <em>arguments</em>, <em>approach='hooklib'</em>, <em>filterproc=<function defaultfilter at 0x1b2bc80></em><big>)</big><a class="reference internal" href="_modules/logfs/fstracer.html#getfsevents"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#logfs.fstracer.getfsevents" title="Permalink to this definition">¶</a></dt>
<dd><p>Launches a program and gets file access events</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
@@ -165,6 +165,14 @@ package it not returned as key of this dictionary</td>
<dt id="package_utils.portage_misc_functions.portage_api.get_best_visible_pkg">
<tt class="descname">get_best_visible_pkg</tt><big>(</big><em>pkg</em><big>)</big><a class="headerlink" href="#package_utils.portage_misc_functions.portage_api.get_best_visible_pkg" title="Permalink to this definition">¶</a></dt>
<dd><p>Gets best candidate on installing. Returns empty string if no found</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">Parameters:</th><td class="field-body"><strong>pkg</strong> – package name</td>
+</tr>
+</tbody>
+</table>
</dd></dl>
<dl class="method">
@@ -218,6 +226,14 @@ All dependencies <strong>must</strong> be installed</p>
<dd><p>Gets list of packages that emerge with emergeargs-arguments will merge
This function uses very internal functions of portage so
it may be unreliable in various portage versions</p>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field"><th class="field-name">Parameters:</th><td class="field-body"><strong>emergeargs</strong> – list of raw args of emerge, for example, [‘-1’,’bash’]</td>
+</tr>
+</tbody>
+</table>
</dd></dl>
<dl class="method">
@@ -313,7 +329,7 @@ list)</td>
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 03, 2011.
+ Last updated on Aug 04, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/genindex.html b/docs/build/html/genindex.html
index e44ab7a..3afc1ac 100644
--- a/docs/build/html/genindex.html
+++ b/docs/build/html/genindex.html
@@ -200,7 +200,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 03, 2011.
+ Last updated on Aug 04, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/index.html b/docs/build/html/index.html
index b56bed7..95f586e 100644
--- a/docs/build/html/index.html
+++ b/docs/build/html/index.html
@@ -136,7 +136,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 03, 2011.
+ Last updated on Aug 04, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv
index 20cf75f..72db0bb 100644
Binary files a/docs/build/html/objects.inv and b/docs/build/html/objects.inv differ
diff --git a/docs/build/html/py-modindex.html b/docs/build/html/py-modindex.html
index 42ac89a..e197fdc 100644
--- a/docs/build/html/py-modindex.html
+++ b/docs/build/html/py-modindex.html
@@ -132,7 +132,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 03, 2011.
+ Last updated on Aug 04, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/search.html b/docs/build/html/search.html
index 2da6a37..14597c1 100644
--- a/docs/build/html/search.html
+++ b/docs/build/html/search.html
@@ -96,7 +96,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 03, 2011.
+ Last updated on Aug 04, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js
index 8c5fbdb..fa12b7a 100644
--- a/docs/build/html/searchindex.js
+++ b/docs/build/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({objects:{"":{"-v":[4,0,1],"-f":[4,0,1],"-C":[2,0,1],"-b":[4,0,1],"--hooklib":[4,0,1],"--fusefs":[4,0,1],"--blockpkgs":[4,0,1],"--nocolor":[4,0,1],"--help":[4,0,1]},"package_utils.portage_misc_functions":{portage_api:[1,4,1]},"package_utils.portage_log_parser":{get_list_of_merged_packages:[1,3,1]},logfs:{fstracer:[1,1,1]},"package_utils.portage_utils":{getfilesbypackage:[1,3,1],getpackagesbyfiles:[1,3,1],get_all_packages_files:[1,3,1]},"logfs.fstracer":{getfsevents:[1,3,1]},"package_utils.portage_misc_functions.portage_api":{get_dep:[1,2,1],get_system_packages_list:[1,2,1],get_best_visible_pkg:[1,2,1],get_deps:[1,2,1],get_merge_list:[1,2,1],parse_emerge_args:[1,2,1]},package_utils:{portage_misc_functions:[1,1,1],portage_utils:[1,1,1],portage_log_parser:[1,1,1]}},terms:{oper:1,all:[1,2,3,4],code:3,help:[2,4],chain:1,show:[2,4],futher:[0,3],over:3,rootf:3,mnt:3,veri:1,pkg:1,accuraci:3,find:1,dynam:[2,3,4],paramet:1,xml:3,prog_nam:1,onli:[2,4],cut:3,depend:[1,2,
3,4],execut:3,field:3,activ:2,dep_typ:1,should:1,cowsai:2,ebuild:2,program:[1,2,3,4],under:2,els:3,parse_emerge_arg:1,main:3,analys:3,getfsev:1,build:[2,3,4],filterproc:1,deni:[2,3,4],sock_seqpacket:3,sourc:1,"return":[1,3],string:1,variou:1,get:[1,2,4],fals:1,big:[2,4],overlai:2,util:[2,3,4],than:[2,4],candid:1,command:[2,4],"new":3,increas:3,potenti:[2,4],"0x19e7b18":[],recurs:1,lib64:3,requir:[2,4],introduct:[0,2],tri:3,document:0,name:[1,3],success:1,level:1,proc:3,gnu:2,list:[1,3],nocolor:[2,4],exampl:[0,2,4],phase:3,mode:[2,4],man:3,each:1,userspac:3,found:[1,2,3,4],shm:3,kernel:[2,4],domain:3,set:1,slower:[2,4],often:3,map:3,heurist:3,idea:3,packet:3,logf:[0,1],second:1,cost:3,sec:3,result:3,pass:1,fail:1,further:3,successfulli:1,todo:2,event:[0,1,2,3,4],librari:[2,3,4],variabl:3,index:2,statu:[0,2],servic:1,network:3,compar:3,bind:3,develop:2,unknown:[1,2,3,4],best:1,access:[0,1,2,3,4],version:1,exit:[2,4],between:1,got:3,hooker:3,content:0,approach:[0,1,2,3,4],unus:
3,gpl:2,who:[2,4],run:[0,2,3],kei:1,arg:1,contain:1,get_all_packages_fil:1,slow:[2,4],believ:3,starttim:1,x11:[2,4],releas:2,hooklib:[0,1,2,3,4],portage_api:1,sinc:[1,3],bash:2,get_best_visible_pkg:1,both:1,search:[1,2],socket:3,thread:3,registar:3,libc:3,current:1,page:2,portage_log_pars:1,registrar:3,reliabl:[2,4],logic:1,action:1,mani:[2,4],chang:3,share:3,lsof:2,other:3,block:[1,2,3,4],first:1,load:[2,3,4],via:3,dictionari:1,packagenam:1,color:[2,4],overview:[0,2],modul:[1,2,3],defaultfilt:1,misc:[2,4],get_merge_list:1,usual:[2,3,4],two:1,ld_preload:[2,3,4],ask:3,unix:3,api:[0,1],non:[2,4],send:3,linux:3,instal:[0,1,2,3],desktop:3,open:[1,3],stage:[1,2,3,4],merg:1,reciev:3,get_dep:1,most:[2,4],from:[1,2,3,4],log:[1,2,4],fusef:[0,1,2,3,4],memori:1,profil:3,modifi:3,licens:2,doesn:1,system:[1,2,3,4],messag:[2,3,4],implicit:[1,3],verbos:[2,4],start:1,much:3,call:[1,3],includ:3,handl:1,autodep:[0,2,4],overhead:[2,4],xchat:[2,4],type:[1,3],strict:[2,4],usr:3,fork:3,parser:1,e
rrno:3,unexpect:3,fstracer:[0,1],tupl:1,tool:[2,4],copi:3,protect:3,direct:[2,4],"var":3,postrm:3,pars:1,low:1,portag:[1,3],atom:1,filesystem:3,"true":1,getfilesbypackag:1,origin:3,must:[1,2,4],also:[1,2,3,4],scheme:3,portage_util:1,err:3,package_util:[0,1],"default":[1,2,4],mount:3,launch:[1,2,3,4],intern:[0,1,3],dev:3,charact:3,showfsev:2,defin:[2,4],lib32:3,bridg:1,can:[1,2,3,4],behavior:3,error:3,about:3,more:[2,4],root:[2,4],delimit:3,loggabl:3,connect:3,pre:[2,4],"function":[1,3],empti:1,creat:3,look:1,descript:4,dure:[2,4],linker:3,filenam:1,argument:1,indic:[0,2],get_list_of_merged_packag:1,high:1,packag:[1,2,3,4],inform:[1,3],unreli:1,file:[0,1,2,3,4],tabl:[0,2],synopsi:4,"import":[2,4],work:[0,1,3],check:3,option:[1,2,4],filter:1,write:[1,3],chroot:3,emergearg:1,thei:1,output:[2,4],perform:[2,3,4],anoth:3,make:2,belong:1,when:[2,3,4],detail:3,same:3,"while":[2,3,4],note:[2,3,4],how:[0,3],wai:3,read:[1,2,3,4],take:[1,2,3,4],which:1,auto:[2,4],answer:3,instead:[1,3],
tmp:3,simpl:3,prepar:3,enabl:[2,4],analysi:[0,2,3,4],getpackagesbyfil:1,get_system_packages_list:1,extern:3,thi:[1,2,3,4],see:3,normal:[2,4],recomend:[2,4],after:3,what:[2,4],befor:3,buildtim:[2,4],fuse:[2,3,4],user:[2,4],blockpkg:[2,4],mai:1,end:[1,3],"class":1,"0x1dbdb90":1,don:[2,4],ani:[1,2,3,4],syscal:[2,4],directori:3,macro:[2,4],builder:[2,4],acloc:3,portage_misc_funct:1,rule:3,element:1,alwai:1,registr:3,depth:1,emerg:[1,2,4],environ:3,runtim:[2,3,4],allow:[1,2,3,4],time:[1,2,3,4],format:3,endtim:1,stagenam:3,hungri:1,rdepend:1},objtypes:{"0":"std:option","1":"py:module","2":"py:method","3":"py:function","4":"py:class"},titles:["Autodep’s documentation","API","Introduction","Internals","USER COMMANDS"],objnames:{"0":"option","1":"Python module","2":"Python method","3":"Python function","4":"Python class"},filenames:["index","api","intro","architecture","man"]})
\ No newline at end of file
+Search.setIndex({objects:{"":{"-v":[4,0,1],"-f":[4,0,1],"-C":[2,0,1],"-b":[4,0,1],"--hooklib":[4,0,1],"--fusefs":[4,0,1],"--blockpkgs":[4,0,1],"--nocolor":[4,0,1],"--help":[4,0,1]},"package_utils.portage_misc_functions":{portage_api:[1,4,1]},"package_utils.portage_log_parser":{get_list_of_merged_packages:[1,3,1]},logfs:{fstracer:[1,1,1]},"package_utils.portage_utils":{getfilesbypackage:[1,3,1],getpackagesbyfiles:[1,3,1],get_all_packages_files:[1,3,1]},"logfs.fstracer":{getfsevents:[1,3,1]},"package_utils.portage_misc_functions.portage_api":{get_dep:[1,2,1],get_system_packages_list:[1,2,1],get_best_visible_pkg:[1,2,1],get_deps:[1,2,1],get_merge_list:[1,2,1],parse_emerge_args:[1,2,1]},package_utils:{portage_misc_functions:[1,1,1],portage_utils:[1,1,1],portage_log_parser:[1,1,1]}},terms:{all:[1,2,3,4],code:3,chain:1,mnt:3,prog_nam:1,showfsev:2,depend:[1,2,3,4],send:3,ebuild:2,program:[1,2,3,4],under:2,sourc:1,string:1,fals:1,util:[2,3,4],candid:1,veri:1,hooker:3,tri:3,level:1,l
ist:[1,3],mount:3,defaultfilt:1,slower:[2,4],direct:[2,4],second:1,cost:3,pass:1,further:3,index:2,what:[2,4],compar:3,access:[0,1,2,3,4],version:1,"new":3,modifi:3,sinc:[1,3],search:[1,2],action:1,chang:3,via:3,packagenam:1,modul:[1,2,3],filenam:1,unix:3,api:[0,1],heurist:3,instal:[0,1,2,3],get_dep:1,from:[1,2,3,4],memori:1,two:1,call:[1,3],usr:3,type:[1,3],more:[2,4],ld_preload:[2,3,4],endtim:1,getfilesbypackag:1,must:[1,2,4],lib32:3,err:3,package_util:[0,1],prepar:3,registar:3,dev:3,can:[1,2,3,4],"0x1dbdb90":[],root:[2,4],registr:3,share:3,indic:[0,2],high:1,unreli:1,portage_log_pars:1,chroot:3,end:[1,3],anoth:3,write:[1,3],how:[0,3],answer:3,instead:[1,3],simpl:3,map:3,alwai:1,after:3,befor:3,blockpkg:[2,4],mai:1,man:3,syscal:[2,4],bind:3,element:1,inform:[1,3],environ:3,allow:[1,2,3,4],rdepend:1,origin:3,help:[2,4],over:3,rootf:3,dynam:[2,3,4],paramet:1,get_best_visible_pkg:1,cowsai:2,main:3,sock_seqpacket:3,"return":[1,3],thei:1,handl:1,auto:[2,4],"0x19e7b18":[],introd
uct:[0,2],name:[1,3],mode:[2,4],each:1,found:[1,2,3,4],domain:3,idea:3,logf:[0,1],connect:3,todo:2,event:[0,1,2,3,4],variabl:3,network:3,content:0,got:3,lib64:3,believ:3,dictionari:1,ask:3,bash:[1,2],thread:3,launch:[1,2,3,4],get_list_of_merged_packag:1,filter:1,registrar:3,getfsev:1,first:1,oper:1,misc:[2,4],open:[1,3],gpl:2,start:1,unknown:[1,2,3,4],licens:2,system:[1,2,3,4],messag:[2,3,4],scheme:3,low:1,option:[1,2,4],tool:[2,4],copi:3,postrm:3,pars:1,than:[2,4],portage_util:1,get_merge_list:1,charact:3,bridg:1,pre:[2,4],"function":[1,3],linker:3,argument:1,raw:1,tabl:[0,2],packag:[1,2,3,4],accuraci:3,note:[2,3,4],also:[1,2,3,4],build:[2,3,4],which:1,analysi:[0,2,3,4],loggabl:3,normal:[2,4],who:[2,4],most:[2,4],buildtim:[2,4],hooklib:[0,1,2,3,4],phase:3,"class":1,don:[2,4],portage_misc_funct:1,deni:[2,3,4],runtim:[2,3,4],hungri:1,show:[2,4],verbos:[2,4],pkg:1,find:1,xml:3,current:1,onli:[2,4],slow:[2,4],activ:2,dep_typ:1,should:1,parse_emerge_arg:1,analys:3,unus:3,variou:
1,get:[1,2,4],increas:3,requir:[2,4],enabl:[2,4],contain:1,userspac:3,shm:3,kernel:[2,4],set:1,packet:3,see:3,sec:3,result:3,arg:1,fail:1,best:1,statu:[0,2],between:1,"import":[2,4],approach:[0,1,2,3,4],kei:1,get_all_packages_fil:1,xchat:[2,4],both:1,fstracer:[0,1],delimit:3,logic:1,futher:[0,3],mani:[2,4],lsof:2,load:[2,3,4],color:[2,4],overview:[0,2],linux:3,reciev:3,fusef:[0,1,2,3,4],empti:1,implicit:[1,3],much:3,recomend:[2,4],protect:3,ani:[1,2,3,4],look:1,stagenam:3,gnu:2,servic:1,defin:[2,4],"while":[2,3,4],behavior:3,error:3,non:[2,4],synopsi:4,develop:2,perform:[2,3,4],make:2,belong:1,same:3,read:[1,2,3,4],document:0,fuse:[2,3,4],user:[2,4],extern:3,portag:[1,3],macro:[2,4],builder:[2,4],exampl:[0,1,2,4],command:[2,4],thi:[1,2,3,4],filesystem:3,usual:[2,3,4],execut:3,cut:3,"0x1b2bc80":1,desktop:3,els:3,take:[1,2,3,4],filterproc:1,format:3,libc:3,big:[2,4],recurs:1,success:1,nocolor:[2,4],output:[2,4],page:2,often:3,intern:[0,1,3],successfulli:1,librari:[2,3,4],tmp:3
,autodep:[0,2,4],exit:[2,4],overlai:2,proc:3,run:[0,2,3],starttim:1,x11:[2,4],portage_api:1,stage:[1,2,3,4],about:3,socket:3,block:[1,2,3,4],merg:1,log:[1,2,4],wai:3,errno:3,strict:[2,4],includ:3,"var":3,overhead:[2,4],fork:3,unexpect:3,tupl:1,atom:1,"true":1,"default":[1,2,4],creat:3,dure:[2,4],parser:1,doesn:1,file:[0,1,2,3,4],work:[0,1,3],check:3,emergearg:1,acloc:3,when:[2,3,4],detail:3,field:3,other:3,getpackagesbyfil:1,get_system_packages_list:1,releas:2,directori:3,reliabl:[2,4],descript:4,rule:3,depth:1,emerg:[1,2,4],potenti:[2,4],time:[1,2,3,4],profil:3},objtypes:{"0":"std:option","1":"py:module","2":"py:method","3":"py:function","4":"py:class"},titles:["Autodep’s documentation","API","Introduction","Internals","USER COMMANDS"],objnames:{"0":"option","1":"Python module","2":"Python method","3":"Python function","4":"Python class"},filenames:["index","api","intro","architecture","man"]})
\ No newline at end of file
diff --git a/docs/build/man/autodep.1 b/docs/build/man/autodep.1
index da9aa10..b338c58 100644
--- a/docs/build/man/autodep.1
+++ b/docs/build/man/autodep.1
@@ -1,4 +1,4 @@
-.TH "AUTODEP" "1" "August 03, 2011" "0.1" "Autodep"
+.TH "AUTODEP" "1" "August 04, 2011" "0.1" "Autodep"
.SH NAME
autodep \- auto dependency builder for Gentoo
.
diff --git a/docs/source/api.rst b/docs/source/api.rst
index 4a0a626..1397732 100644
--- a/docs/source/api.rst
+++ b/docs/source/api.rst
@@ -19,4 +19,3 @@ This package contains modules which works with the Portage system
:members:
.. automodule:: package_utils.portage_misc_functions
:members:
-
diff --git a/src/autodep/autodep b/src/autodep/autodep
index 751dca7..1152180 100755
--- a/src/autodep/autodep
+++ b/src/autodep/autodep
@@ -41,7 +41,8 @@ def parse_args():
const="fusefs", help="use fuse logging approach(slow, but reliable)")
args_parser.set_defaults(approach="hooklib")
- args_parser.epilog="Example: %s -b lsof,cowsay emerge bash" % (os.path.basename(sys.argv[0]))
+ args_parser.epilog="Example: %s -blockpkgs lsof,cowsay emerge bash" % (
+ os.path.basename(sys.argv[0]))
args_parser.disable_interspersed_args()
(options, args) = args_parser.parse_args()
if len(args)==0:
@@ -56,20 +57,27 @@ def init_environment():
return portage_api, system_packages
-def init_runtime_vars(options,args):
+def init_runtime_vars(portage_api, options,args):
runtime_vars={} # This is here mainly for grouping. We are trying to
# get as much data about an environment as possible
runtime_vars["starttime"]=int(time.time())
# trivial check for emerge proccess
- if args[0]=="emerge":
+ if os.path.basename(args[0])=="emerge":
runtime_vars["is_emerge"]=True
emergeaction ,emergeopts, emergefiles=portage_api.parse_emerge_args(args[1:])
runtime_vars["raw_emerge_parameters"]=args[1:]
runtime_vars["emerge_parameters"]=(emergeaction ,emergeopts, emergefiles)
+ runtime_vars["mergelist"]=portage_api.get_merge_list(
+ runtime_vars["raw_emerge_parameters"])
+
if len(emergefiles)>1:
print "Please, install packages one by one to get more accurate reports"
+
+ if len(runtime_vars["mergelist"])==0:
+ print "No packages will be installed or there is an error with counting"
+
else:
runtime_vars["is_emerge"]=False
@@ -94,9 +102,9 @@ def get_filter_function(options,system_packages,portage_api):
def filter(eventname,filename,stage):
return not filename in files_to_block
return filter
- elif options.strict_block and options.packages:
- print "You can't use --block and --blockpkgs options togeter\n"
- exit(1)
+ #elif options.strict_block and options.packages:
+ #print "You can't use --block and --blockpkgs options togeter\n"
+ #exit(1)
elif options.strict_block: # this option is very strict
# because blocking logic is complex
print "Building a list of files to block. This may take some time"
@@ -111,16 +119,15 @@ def get_filter_function(options,system_packages,portage_api):
if len(emergefiles)>1:
print "You can't install several packages with option -b"
exit(1)
- mergelist=portage_api.get_merge_list(runtime_vars["raw_emerge_parameters"])
- if len(mergelist)!=1:
- print "You can't install several packages with option -b"
- print "Emerge tried to install several packages: %s" % mergelist
- print "You can force emerge to merge a package without any other " \
- "packages with emerge --nodeps option or you can install these " \
+ if len(runtime_vars["mergelist"])!=1:
+ print "You can't install several packages with option -b."
+ print "Emerge tried to install several packages: %s. " % runtime_vars["mergelist"]
+ print "You can force emerge to merge a package wit hout any other "\
+ "packages with emerge --nodeps option or you can install these "\
"packages first"
exit(1)
- pkg=mergelist[0]
+ pkg=runtime_vars["mergelist"][0]
depslist=list(portage_api.get_deps(pkg))
allowedpkgs+=depslist
else:
@@ -155,7 +162,7 @@ def get_filter_function(options,system_packages,portage_api):
portage_api, system_packages=init_environment()
options,args=parse_args()
-runtime_vars=init_runtime_vars(options,args)
+runtime_vars=init_runtime_vars(portage_api,options,args)
color_printer=colorize_output.color_printer(not options.nocolor)
@@ -168,24 +175,35 @@ print "Program finished, analyzing dependencies"
if runtime_vars["is_emerge"]:
# try to get information about packages merged sucessfully
- try:
- pkgs=portage_log_parser.get_list_of_merged_packages(
- runtime_vars["starttime"],runtime_vars["endtime"]
- )
- if len(pkgs) > 1:
- print "Several packages were installed. The report will be inaccurate"
- elif len(pkgs)==0:
- print "None packages have been installed sucessfully. The report will be inaccurate"
- runtime_vars["pkgs_installed"]=pkgs
- runtime_vars["deps_buildtime"]=[]
- runtime_vars["deps_all"]=[]
- for pkg in pkgs:
- runtime_vars["deps_buildtime"]+=portage_api.get_deps(pkg,["DEPEND"])
- runtime_vars["deps_all"]+=portage_api.get_deps(pkg,["DEPEND","RDEPEND"])
- except:
- print "Non-critical error while parsing logfile of emerge"
- runtime_vars["is_emerge"]=False # shutting down all emerge handling logic
- pass
+ #try:
+ runtime_vars["deps_all"]=set([])
+ runtime_vars["deps_buildtime"]=set([])
+ for pkg in runtime_vars["mergelist"]:
+ runtime_vars["deps_all"]=runtime_vars["deps_all"].union(
+ portage_api.get_deps(pkg,["DEPEND", "RDEPEND"]))
+ runtime_vars["deps_buildtime"]=runtime_vars["deps_buildtime"].union(
+ portage_api.get_dep(pkg,["DEPEND"]))
+
+ runtime_vars["deps_portage"]=portage_api.get_deps('portage',["DEPEND", "RDEPEND"])
+
+
+ #pkgs=portage_log_parser.get_list_of_merged_packages(
+ # runtime_vars["starttime"],runtime_vars["endtime"]
+ # )
+ #if len(pkgs) > 1:
+ # print "Several packages were installed. The report will be inaccurate"
+ #elif len(pkgs)==0:
+ # print "None packages have been installed sucessfully. The report will be inaccurate"
+ #runtime_vars["pkgs_installed"]=pkgs
+ #runtime_vars["deps_buildtime"]=[]
+ #runtime_vars["deps_all"]=[]
+ #for pkg in pkgs:
+ # runtime_vars["deps_buildtime"]+=portage_api.get_deps(pkg,["DEPEND"])
+ # runtime_vars["deps_all"]+=portage_api.get_deps(pkg,["DEPEND","RDEPEND"])
+ #except:
+ #print "Non-critical error while parsing logfile of emerge"
+ #runtime_vars["is_emerge"]=False # shutting down all emerge handling logic
+ #pass
# get unique filenames
filenames=set()
@@ -259,8 +277,9 @@ for package in sorted(packagesinfo):
if package in system_packages and not options.verbose:
continue
- is_attention_pkg=runtime_vars["is_emerge"] and package not in runtime_vars["deps_all"]
-
+ is_pkg_in_dep=runtime_vars["is_emerge"] and package in runtime_vars["deps_all"]
+ is_pkg_in_portage_dep=runtime_vars["is_emerge"] and package in runtime_vars["deps_portage"]
+ is_pkg_python="dev-lang/python" in package
stages=[]
for stage in sorted(packagesinfo[package].keys(), key=stagesorder.get):
@@ -274,13 +293,29 @@ for package in sorted(packagesinfo):
if len(packagesinfo[package][stage][filename]["found"])!=0:
was_readed,was_writed=packagesinfo[package][stage][filename]["found"]
if not filename in filenames:
- filenames[filename]=[was_readed,was_writed]
+ filenames[filename]=['ok',was_readed,was_writed]
+ else:
+ status, old_was_readed, old_was_writed=filenames[filename]
+ filenames[filename]=[
+ 'ok',old_was_readed | was_readed, old_was_writed | was_writed
+ ]
+ if len(packagesinfo[package][stage][filename]["notfound"])!=0:
+ was_notfound,was_blocked=packagesinfo[package][stage][filename]["notfound"]
+ if not filename in filenames:
+ filenames[filename]=['err',was_notfound,was_blocked]
else:
- old_was_readed, old_was_writed=filenames[filename]
- filenames[filename]=[old_was_readed | was_readed, old_was_writed | was_writed ]
+ status, old_was_notfound, old_was_blocked=filenames[filename]
+ filenames[filename]=[
+ 'err',old_was_notfound | was_notfound, old_was_blocked | was_blocked
+ ]
+
- if not is_attention_pkg:
+ if not runtime_vars["is_emerge"] or is_pkg_in_dep:
color_printer.printmsg("text","[OK]")
+ elif is_pkg_in_portage_dep:
+ color_printer.printmsg("text","[PORTAGE DEP]")
+ elif is_pkg_python:
+ color_printer.printmsg("text","[INTERPRETER]")
elif not events_analysis.is_package_useful(package,stages,filenames.keys()):
color_printer.printmsg("text","[LIKELY OK]")
else:
@@ -292,10 +327,14 @@ for package in sorted(packagesinfo):
# this is here for readability
action={
- (False,False):"accessed",
- (True,False):"readed",
- (False,True):"writed",
- (True,True):"readed and writed"
+ ('ok',False,False):"accessed",
+ ('ok',True,False):"readed",
+ ('ok',False,True):"writed",
+ ('ok',True,True):"readed and writed",
+ ('err',False,False):"other error",
+ ('err',True,False):"not found",
+ ('err',False,True):"blocked",
+ ('err',True,True):"not found and blocked"
}
filescounter=0
diff --git a/src/autodep/helpers/events_analysis.py b/src/autodep/helpers/events_analysis.py
index ed5792b..eba903a 100644
--- a/src/autodep/helpers/events_analysis.py
+++ b/src/autodep/helpers/events_analysis.py
@@ -32,7 +32,7 @@ def is_package_useful(pkg,stages,files):
continue
# test 1: package is not useful if all files are *.desktop or *.xml or *.m4
- if not (f.endswith(".desktop") or f.endswith(".xml") or f.endswith(".m4")):
+ if not (f.endswith(".desktop") or f.endswith(".xml") or f.endswith(".m4") or f.endswith(".pc")):
break
else:
return False # we get here if cycle ends not with break
diff --git a/src/autodep/package_utils/portage_misc_functions.py b/src/autodep/package_utils/portage_misc_functions.py
index 6afe2c3..95c4ce4 100644
--- a/src/autodep/package_utils/portage_misc_functions.py
+++ b/src/autodep/package_utils/portage_misc_functions.py
@@ -10,9 +10,9 @@ from _emerge.main import parse_opts
# TODO: check if actions always here
try:
- from _emerge import actions
+ from _emerge import actions, Package
from _emerge.create_depgraph_params import create_depgraph_params
- from _emerge.depgraph import backtrack_depgraph, depgraph
+ from _emerge.depgraph import backtrack_depgraph, resume_depgraph, depgraph
except ImportError, Err: # non-critical, just print warning(TODO: strerr)
print "Error while loading modules: %s" % Err.message
@@ -20,8 +20,13 @@ class portage_api:
""" class for accessing the portage api """
def __init__(self):
""" test """
- self.settings=portage.config(clone=portage.settings)
- self.vartree=portage.db[portage.root]['vartree']
+ settings,trees,mtimedb=actions.load_emerge_config()
+
+ #import pdb; pdb.set_trace()
+ self.settings=settings
+ self.trees=trees
+ self.mtimedb=mtimedb
+ self.vartree=trees[portage.root]['vartree']
self.vardb=self.vartree.dbapi
self.portdb=portage.portdb
self.metadata_keys = [k for k in portage.auxdbkeys if not k.startswith("UNUSED_")]
@@ -39,6 +44,7 @@ class portage_api:
except:
return ''
+ # trying to repeat action_build(...) logic in _emerge/actions.py
def get_merge_list(self,emergeargs):
"""
Gets list of packages that emerge with emergeargs-arguments will merge
@@ -48,20 +54,46 @@ class portage_api:
:param emergeargs: list of raw args of emerge, for example, ['-1','bash']
"""
-
+
try:
- settings,trees,mtimedb=actions.load_emerge_config()
action, opts, files = parse_opts(emergeargs, silent=True)
+
+ resume = False
+ if "--resume" in opts and \
+ ("resume" in self.mtimedb or "resume_backup" in self.mtimedb):
+ resume = True
+ if "resume" not in self.mtimedb:
+ self.mtimedb["resume"] = self.mtimedb["resume_backup"]
+ # "opts" is a list for backward compatibility.
+ resume_opts = self.mtimedb["resume"].get("myopts", [])
+ if isinstance(resume_opts, list):
+ resume_opts = dict((k,True) for k in resume_opts)
+ for opt in ("--ask", "--color", "--skipfirst", "--tree"):
+ resume_opts.pop(opt, None)
+
+ # Current options always override resume_opts.
+ resume_opts.update(opts)
+ opts.clear()
+ opts.update(resume_opts)
+
+
params=create_depgraph_params(opts,action)
- success, mydepgraph, favorites = backtrack_depgraph(
- settings, trees, opts, params, action, files, None)
- if not success:
- return []
+ if resume:
+ success, mydepgraph, dropped_tasks = resume_depgraph(
+ self.settings, self.trees, self.mtimedb, opts, params, None)
+ if not success:
+ return []
+ else:
+ success, mydepgraph, favorites = backtrack_depgraph(
+ self.settings, self.trees, opts, params, action, files, None)
+ if not success:
+ return []
ret=[]
for pkg in mydepgraph.altlist():
- ret.append(pkg.cpv)
+ if type(pkg) is Package.Package:
+ ret.append(pkg.cpv)
return ret
except:
diff --git a/src/autodep/tests/all_tests.py b/src/autodep/tests/all_tests.py
index 3542ca8..0d52de7 100644
--- a/src/autodep/tests/all_tests.py
+++ b/src/autodep/tests/all_tests.py
@@ -2,7 +2,7 @@ import glob
import unittest
# change it if you don't want get all tests runned
-testsglob='tests/test_*.py'
+testsglob='tests/test_p*.py'
def create_test_suite():
test_file_strings = glob.glob(testsglob)
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [gentoo-commits] proj/autodep:master commit in: docs/build/html/_sources/, docs/build/html/_modules/package_utils/, ...
@ 2011-08-20 11:25 Александр Берсенев
0 siblings, 0 replies; 5+ messages in thread
From: Александр Берсенев @ 2011-08-20 11:25 UTC (permalink / raw
To: gentoo-commits
commit: 0699154c16c5fc9aefb34d093c8415fe602b3b3e
Author: Alexander Bersenev <bay <AT> hackerdom <DOT> ru>
AuthorDate: Sat Aug 20 17:24:10 2011 +0000
Commit: Александр Берсенев <bay <AT> hackerdom <DOT> ru>
CommitDate: Sat Aug 20 17:24:10 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/autodep.git;a=commit;h=0699154c
documentation fixes
---
docs/build/doctrees/api.doctree | Bin 46733 -> 46746 bytes
docs/build/doctrees/architecture.doctree | Bin 16699 -> 18417 bytes
docs/build/doctrees/environment.pickle | Bin 971377 -> 971797 bytes
docs/build/doctrees/man.doctree | Bin 25760 -> 26064 bytes
docs/build/html/_images/autodep_arch1.png | Bin 0 -> 44565 bytes
docs/build/html/_modules/index.html | 2 +-
docs/build/html/_modules/logfs/fstracer.html | 2 +-
.../_modules/package_utils/portage_log_parser.html | 2 +-
.../package_utils/portage_misc_functions.html | 2 +-
.../html/_modules/package_utils/portage_utils.html | 2 +-
docs/build/html/_sources/api.txt | 2 +-
docs/build/html/_sources/architecture.txt | 69 ++++++++++--------
docs/build/html/_sources/man.txt | 60 ++++++++--------
docs/build/html/api.html | 6 +-
docs/build/html/architecture.html | 76 +++++++++++---------
docs/build/html/genindex.html | 2 +-
docs/build/html/index.html | 6 +-
docs/build/html/man.html | 71 +++++++++---------
docs/build/html/objects.inv | Bin 502 -> 501 bytes
docs/build/html/py-modindex.html | 2 +-
docs/build/html/search.html | 2 +-
docs/build/html/searchindex.js | 2 +-
docs/build/man/autodep.1 | 65 +++++++----------
docs/source/api.rst | 2 +-
docs/source/architecture.rst | 69 ++++++++++--------
docs/source/man.rst | 60 ++++++++--------
src/autodep/autodep | 18 +++---
27 files changed, 265 insertions(+), 257 deletions(-)
diff --git a/docs/build/doctrees/api.doctree b/docs/build/doctrees/api.doctree
index 2516311..4821784 100644
Binary files a/docs/build/doctrees/api.doctree and b/docs/build/doctrees/api.doctree differ
diff --git a/docs/build/doctrees/architecture.doctree b/docs/build/doctrees/architecture.doctree
index ca0afd1..09810c7 100644
Binary files a/docs/build/doctrees/architecture.doctree and b/docs/build/doctrees/architecture.doctree differ
diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle
index 23e328c..8d02379 100644
Binary files a/docs/build/doctrees/environment.pickle and b/docs/build/doctrees/environment.pickle differ
diff --git a/docs/build/doctrees/man.doctree b/docs/build/doctrees/man.doctree
index a6ca5c2..da00d7c 100644
Binary files a/docs/build/doctrees/man.doctree and b/docs/build/doctrees/man.doctree differ
diff --git a/docs/build/html/_images/autodep_arch1.png b/docs/build/html/_images/autodep_arch1.png
new file mode 100644
index 0000000..d0bfee9
Binary files /dev/null and b/docs/build/html/_images/autodep_arch1.png differ
diff --git a/docs/build/html/_modules/index.html b/docs/build/html/_modules/index.html
index cc23e30..8141709 100644
--- a/docs/build/html/_modules/index.html
+++ b/docs/build/html/_modules/index.html
@@ -86,7 +86,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 04, 2011.
+ Last updated on Aug 20, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/_modules/logfs/fstracer.html b/docs/build/html/_modules/logfs/fstracer.html
index 0abbd94..83a2ef6 100644
--- a/docs/build/html/_modules/logfs/fstracer.html
+++ b/docs/build/html/_modules/logfs/fstracer.html
@@ -327,7 +327,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 04, 2011.
+ Last updated on Aug 20, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/_modules/package_utils/portage_log_parser.html b/docs/build/html/_modules/package_utils/portage_log_parser.html
index a468842..2c9e94b 100644
--- a/docs/build/html/_modules/package_utils/portage_log_parser.html
+++ b/docs/build/html/_modules/package_utils/portage_log_parser.html
@@ -170,7 +170,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 04, 2011.
+ Last updated on Aug 20, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/_modules/package_utils/portage_misc_functions.html b/docs/build/html/_modules/package_utils/portage_misc_functions.html
index 034ad24..13fddfe 100644
--- a/docs/build/html/_modules/package_utils/portage_misc_functions.html
+++ b/docs/build/html/_modules/package_utils/portage_misc_functions.html
@@ -188,7 +188,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 04, 2011.
+ Last updated on Aug 20, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/_modules/package_utils/portage_utils.html b/docs/build/html/_modules/package_utils/portage_utils.html
index f7eba53..b0e63db 100644
--- a/docs/build/html/_modules/package_utils/portage_utils.html
+++ b/docs/build/html/_modules/package_utils/portage_utils.html
@@ -158,7 +158,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 04, 2011.
+ Last updated on Aug 20, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/_sources/api.txt b/docs/build/html/_sources/api.txt
index 1397732..502db1e 100644
--- a/docs/build/html/_sources/api.txt
+++ b/docs/build/html/_sources/api.txt
@@ -11,7 +11,7 @@ logfs.fstracer
package_utils
================================
-This package contains modules which works with the Portage system
+This package contains modules which work with the Portage system
.. automodule:: package_utils.portage_log_parser
:members:
diff --git a/docs/build/html/_sources/architecture.txt b/docs/build/html/_sources/architecture.txt
index 59b55f8..2caec16 100644
--- a/docs/build/html/_sources/architecture.txt
+++ b/docs/build/html/_sources/architecture.txt
@@ -13,66 +13,71 @@ Format of network messages
--------------------------
-1. Format of messages to file access registrar::
+1. Format of messages to the File Access Registrar::
<time of event: sec since 1970>
<event type: open, read, write>
<name of file>
<building stage: stagename or unknown>
<result:OK,ERR/errno,ASKING,DENIED>
-2. Format of answer for ASKING packet from registrar::
+2. Format of answer for ASKING packet from File Access Registrar::
<ALLOW | DENY>
*Notes:*
* All sockets are SOCK_SEQPACKET
-* All fields are delimited with character with code 0
+* All fields are delimited with character \0
-How Hooklib approach works?
-===========================
+How does the Hooklib approach work?
+===================================
-The main idea of Hooklib approach is to load a dynamic library-hooker
-**before** any other library(including the C runtime, libc.so).
-So, the functions, such as open, read and write, executed from this library
-instead of libc.so.
+The main idea behind the Hooklib approach is to load a dynamic library-hook
+**before** any other library(including the C runtime).
+So, the calls to functions such as open, read and write, are intercepted
+using this library, instead of executing the ones in *libc*.
-Hooklib module modifies Linux's dynamic linker behavior changing LD_PRELOAD
-environment variable(see
+Hooklib module modifies Linux's dynamic linker behavior, changing LD_PRELOAD
+environment variable (see
`man 8 ld-linux <http://linux.die.net/man/8/ld-linux>`_ for details).
-Module protects LD_PRELOAD variable from further changes by program.
+This module also protects LD_PRELOAD variable from further changes by executing
+program.
-When hooklib module loads, it connects to file access registrar via Unix domain
-sockets. If program forks or creates a new thread, another copy of library
-loads.
+When Hooklib is loaded, it connects to the File Access Registrar via Unix domain
+sockets. If a program forks or creates a new thread, another copy of the library
+loads to register events from this new process/thread.
-When program do open(...), read(...), write(...), library send an information
-about a call to registrar. Registar can block or allow an event. If registrer
-allows an event then the original function is called. Else error
-"file not found" is returned.
+When a program calls open(...), read(...), write(...), Hooklib sends a message
+about a call to the File Access Registrar. The Registar can then block
+or allow this event. If Registrar responds to the previous query with
+an ALLOW packet, then the original function is called. Otherwise, the function
+is not called and a "File not Found" error is returned instead.
-How Fusefs approach works?
-==========================
+How does the Fusefs approach work?
+==================================
-The main idea if Fusefs approach is to create a loggable filesystem in userspace
-and chroot a program into it.
+The main idea of the Fusefs approach is to create a loggable filesystem in userspace
+and jail a program into it, using a chroot.
-Before program is launched registrar prepare mounts. It usually do:
+Before the program is launched, The File Access Registrar prepare the mounts.
+It would usually take the following steps:
1. mount -o bind / /mnt/rootfs/
-2. mount /dev/, /dev/pts, /dev/shm, /proc/, /sys/ same way
+2. mount /dev, /dev/pts, /dev/shm, /proc/, /sys/ binding them to /mnt/rootfs
3. mount /lib64/, /lib32/, /var/tmp/portage/ same way to increase performance at
cost of accuracy
-4. launch fuse over /mnt/rootfs/
+4. launch FUSE over /mnt/rootfs/
-Fuse module blocks all external access to /mnt/rootfs while program runs.
-
-Fuse module also asks the registrar about event allowness.
+Fuse module blocks all external access to /mnt/rootfs while the program runs.
+The FUSE module will also ask the File Access Registrar to check whether access to
+files inside the chroot are allowed or denied. As with the Hooklib approach, if
+access to a file is denied, a "File not Found" error is returned.
*Notes:*
-* Checking for allowness takes a much time
+* Checking for permission to access a file with the File Access Registrar, takes a
+lot of time under this approach.
Futher analysis of file access events
=====================================
@@ -90,6 +95,6 @@ unuseful packages.
Rules of heuristics
-------------------
-1. *Package is not useful if all files are .desktop or .xml or .m4*.
+1. *Package is not useful if all files are .desktop, .xml or .m4*.
Aclocal util tries to read all .m4 files in /usr/share/aclocal directory.
- Files ending on .desktop and .xml often readed on postrm phase.
\ No newline at end of file
+ Files ending on .desktop and .xml are often read in the postrm phase.
\ No newline at end of file
diff --git a/docs/build/html/_sources/man.txt b/docs/build/html/_sources/man.txt
index b49fb54..bf5ad86 100644
--- a/docs/build/html/_sources/man.txt
+++ b/docs/build/html/_sources/man.txt
@@ -10,10 +10,10 @@ SYNOPSIS
DESCRIPTION
===========
-Auto dependency builder is a tool for analysis files accessed during
-building a package. It also can be used for runtime dependencies analysis.
+Auto dependency (autodep) builder is a tool for the analysis of accessed files during
+the build of a package. It also can be used for runtime dependencies analysis.
-The tool can block an access to files of defined packages.
+The tool can trace, log and block access to files of given packages.
OPTIONS
=======
@@ -22,78 +22,78 @@ OPTIONS
.. cmdoption:: --help, -h
- show this help message and exit
+ Show this help message and exit.
.. cmdoption:: -b, --block
- strict mode: deny all access to non-dependency packages
+ strict mode: Deny all access to files from non-dependency packages.
.. cmdoption:: --blockpkgs=PACKAGES
- block an access to files from this packages
+ Block access to files from this packages.
.. cmdoption:: -f, --files
- show accessed files and not founded files
+ Show all files, accessed and missing (not found).
.. cmdoption:: -v, --verbose
- show non-important packages, show unknown package and unknown stage
+ Show non-important packages, unknown packages and unknown building stages.
.. cmdoption:: --nocolor, -C
- don't output color
+ Don't colorize output
.. cmdoption:: --hooklib
- use ld_preload logging approach(default)
+ Use LD_PRELOAD logging approach (default).
.. cmdoption:: --fusefs
- use fuse logging approach(slow, but reliable)
+ Use FUSE logging approach (slow, but reliable).
HOOKLIB VS FUSEFS
=================
+------------------------------------------------+-------------+---------------+
-| | Hooklib | Fusefs |
+| | Hooklib | FuseFS |
+================================================+=============+===============+
| Who can use this approach? | **Any user**| Only root |
+------------------------------------------------+-------------+---------------+
-| Is approach allows blocking an access to files?| **YES** | **YES** |
+| Does approach allows to block access to files? | **YES** | **YES** |
+------------------------------------------------+-------------+---------------+
-| Is overhead in performance big? | **NO** | YES [#f1]_ |
+| Is the overhead in performance noticeable? | **NO** | YES [#f1]_ |
+------------------------------------------------+-------------+---------------+
| What events are logged? | Most [#f2]_| **ALL** |
+------------------------------------------------+-------------+---------------+
-| When is it recomended to use an approach? | For analysis| For analysis |
+| When is it recomended to use an approach? | Analysis | Analysis |
| | of | of *runtime* |
| | *buildtime* | dependencies |
| | dependencies| |
+------------------------------------------------+-------------+---------------+
-| Is any pre-requirements for using an approach? | **NO** | FUSE must be |
-| | | enabled in |
+| Are there any pre-requirements | **NO** | FUSE must be |
+| for using an approach? | | enabled in |
| | | kernel |
+------------------------------------------------+-------------+---------------+
.. rubric:: Notes
-.. [#f1] Fuse file system is slower than normal one. Program reads many files
+.. [#f1] FUSE filesystems are slower than a normal one. A Program accesses many files
while launching, so this will take more time than usual.
-.. [#f2] Loading of dynamic libraries and direct syscalls will not be logged.
+.. [#f2] Loading of Dynamic libraries and direct syscalls will not be logged.
Examples
========
-Get the potential dependencies of a xchat package:
------------------------------------------------------
-autodep emerge xchat
+Get the potential dependencies for net-irc/xchat:
+-------------------------------------------------
+autodep emerge net-irc/xchat
-Get the potential dependencies of a xchat package, blocking x11-misc/util-macros package:
---------------------------------------------------------------------------------------------
-autodep emerge --block x11-misc/util-macros emerge xchat
+Get the potential dependencies for net-irc/xchat, blocking files from x11-misc/util-macros package:
+---------------------------------------------------------------------------------------------------
+autodep emerge --block x11-misc/util-macros emerge net-irc/xchat
-Get the potential dependencies of a xchat package, and show files accessed:
-------------------------------------------------------------------------------
-autodep --files emerge xchat
+Get the potential dependencies for net-irc/xchat package, and show accessed files:
+----------------------------------------------------------------------------------
+autodep --files emerge net-irc/xchat
-Get the runtime dependencies of a xchat and show files accessed:
--------------------------------------------------------------------
+Get the runtime dependencies of a xchat and show accessed files:
+----------------------------------------------------------------
autodep --fusefs --files xchat
diff --git a/docs/build/html/api.html b/docs/build/html/api.html
index bec16d7..e485aa5 100644
--- a/docs/build/html/api.html
+++ b/docs/build/html/api.html
@@ -56,7 +56,7 @@ handling dependency logic.</p>
<p>It can be used to launch a program and get all file events</p>
<dl class="function">
<dt id="logfs.fstracer.getfsevents">
-<tt class="descclassname">logfs.fstracer.</tt><tt class="descname">getfsevents</tt><big>(</big><em>prog_name</em>, <em>arguments</em>, <em>approach='hooklib'</em>, <em>filterproc=<function defaultfilter at 0x1b2bc80></em><big>)</big><a class="reference internal" href="_modules/logfs/fstracer.html#getfsevents"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#logfs.fstracer.getfsevents" title="Permalink to this definition">¶</a></dt>
+<tt class="descclassname">logfs.fstracer.</tt><tt class="descname">getfsevents</tt><big>(</big><em>prog_name</em>, <em>arguments</em>, <em>approach='hooklib'</em>, <em>filterproc=<function defaultfilter at 0x1dcb938></em><big>)</big><a class="reference internal" href="_modules/logfs/fstracer.html#getfsevents"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#logfs.fstracer.getfsevents" title="Permalink to this definition">¶</a></dt>
<dd><p>Launches a program and gets file access events</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
@@ -90,7 +90,7 @@ Stage can be <em>‘unknown’</em></p>
</div>
<div class="section" id="package-utils">
<h2>package_utils<a class="headerlink" href="#package-utils" title="Permalink to this headline">¶</a></h2>
-<p>This package contains modules which works with the Portage system</p>
+<p>This package contains modules which work with the Portage system</p>
<span class="target" id="module-package_utils.portage_log_parser"></span><dl class="function">
<dt id="package_utils.portage_log_parser.get_list_of_merged_packages">
<tt class="descclassname">package_utils.portage_log_parser.</tt><tt class="descname">get_list_of_merged_packages</tt><big>(</big><em>starttime=0</em>, <em>endtime=-1</em><big>)</big><a class="reference internal" href="_modules/package_utils/portage_log_parser.html#get_list_of_merged_packages"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#package_utils.portage_log_parser.get_list_of_merged_packages" title="Permalink to this definition">¶</a></dt>
@@ -329,7 +329,7 @@ list)</td>
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 04, 2011.
+ Last updated on Aug 20, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/architecture.html b/docs/build/html/architecture.html
index f827cff..855b3ab 100644
--- a/docs/build/html/architecture.html
+++ b/docs/build/html/architecture.html
@@ -57,12 +57,12 @@
<h2>How it works?<a class="headerlink" href="#how-it-works" title="Permalink to this headline">¶</a></h2>
<div class="section" id="scheme">
<h3>Scheme<a class="headerlink" href="#scheme" title="Permalink to this headline">¶</a></h3>
-<img alt="_images/autodep_arch.png" src="_images/autodep_arch.png" />
+<img alt="_images/autodep_arch1.png" src="_images/autodep_arch1.png" />
</div>
<div class="section" id="format-of-network-messages">
<h3>Format of network messages<a class="headerlink" href="#format-of-network-messages" title="Permalink to this headline">¶</a></h3>
<ol class="arabic">
-<li><p class="first">Format of messages to file access registrar:</p>
+<li><p class="first">Format of messages to the File Access Registrar:</p>
<div class="highlight-python"><pre><time of event: sec since 1970>
<event type: open, read, write>
<name of file>
@@ -70,7 +70,7 @@
<result:OK,ERR/errno,ASKING,DENIED></pre>
</div>
</li>
-<li><p class="first">Format of answer for ASKING packet from registrar:</p>
+<li><p class="first">Format of answer for ASKING packet from File Access Registrar:</p>
<div class="highlight-python"><pre><ALLOW | DENY></pre>
</div>
</li>
@@ -78,46 +78,52 @@
<p><em>Notes:</em></p>
<ul class="simple">
<li>All sockets are SOCK_SEQPACKET</li>
-<li>All fields are delimited with character with code 0</li>
+<li>All fields are delimited with character 0</li>
</ul>
</div>
</div>
-<div class="section" id="how-hooklib-approach-works">
-<h2>How Hooklib approach works?<a class="headerlink" href="#how-hooklib-approach-works" title="Permalink to this headline">¶</a></h2>
-<p>The main idea of Hooklib approach is to load a dynamic library-hooker
-<strong>before</strong> any other library(including the C runtime, libc.so).
-So, the functions, such as open, read and write, executed from this library
-instead of libc.so.</p>
-<p>Hooklib module modifies Linux’s dynamic linker behavior changing LD_PRELOAD
-environment variable(see
+<div class="section" id="how-does-the-hooklib-approach-work">
+<h2>How does the Hooklib approach work?<a class="headerlink" href="#how-does-the-hooklib-approach-work" title="Permalink to this headline">¶</a></h2>
+<p>The main idea behind the Hooklib approach is to load a dynamic library-hook
+<strong>before</strong> any other library(including the C runtime).
+So, the calls to functions such as open, read and write, are intercepted
+using this library, instead of executing the ones in <em>libc</em>.</p>
+<p>Hooklib module modifies Linux’s dynamic linker behavior, changing LD_PRELOAD
+environment variable (see
<a class="reference external" href="http://linux.die.net/man/8/ld-linux">man 8 ld-linux</a> for details).
-Module protects LD_PRELOAD variable from further changes by program.</p>
-<p>When hooklib module loads, it connects to file access registrar via Unix domain
-sockets. If program forks or creates a new thread, another copy of library
-loads.</p>
-<p>When program do open(...), read(...), write(...), library send an information
-about a call to registrar. Registar can block or allow an event. If registrer
-allows an event then the original function is called. Else error
-“file not found” is returned.</p>
+This module also protects LD_PRELOAD variable from further changes by executing
+program.</p>
+<p>When Hooklib is loaded, it connects to the File Access Registrar via Unix domain
+sockets. If a program forks or creates a new thread, another copy of the library
+loads to register events from this new process/thread.</p>
+<p>When a program calls open(...), read(...), write(...), Hooklib sends a message
+about a call to the File Access Registrar. The Registar can then block
+or allow this event. If Registrar responds to the previous query with
+an ALLOW packet, then the original function is called. Otherwise, the function
+is not called and a “File not Found” error is returned instead.</p>
</div>
-<div class="section" id="how-fusefs-approach-works">
-<h2>How Fusefs approach works?<a class="headerlink" href="#how-fusefs-approach-works" title="Permalink to this headline">¶</a></h2>
-<p>The main idea if Fusefs approach is to create a loggable filesystem in userspace
-and chroot a program into it.</p>
-<p>Before program is launched registrar prepare mounts. It usually do:</p>
+<div class="section" id="how-does-the-fusefs-approach-work">
+<h2>How does the Fusefs approach work?<a class="headerlink" href="#how-does-the-fusefs-approach-work" title="Permalink to this headline">¶</a></h2>
+<p>The main idea of the Fusefs approach is to create a loggable filesystem in userspace
+and jail a program into it, using a chroot.</p>
+<p>Before the program is launched, The File Access Registrar prepare the mounts.
+It would usually take the following steps:</p>
<ol class="arabic simple">
<li>mount -o bind / /mnt/rootfs/</li>
-<li>mount /dev/, /dev/pts, /dev/shm, /proc/, /sys/ same way</li>
+<li>mount /dev, /dev/pts, /dev/shm, /proc/, /sys/ binding them to /mnt/rootfs</li>
<li>mount /lib64/, /lib32/, /var/tmp/portage/ same way to increase performance at
cost of accuracy</li>
-<li>launch fuse over /mnt/rootfs/</li>
+<li>launch FUSE over /mnt/rootfs/</li>
</ol>
-<p>Fuse module blocks all external access to /mnt/rootfs while program runs.</p>
-<p>Fuse module also asks the registrar about event allowness.</p>
+<p>Fuse module blocks all external access to /mnt/rootfs while the program runs.
+The FUSE module will also ask the File Access Registrar to check whether access to
+files inside the chroot are allowed or denied. As with the Hooklib approach, if
+access to a file is denied, a “File not Found” error is returned.</p>
<p><em>Notes:</em></p>
<ul class="simple">
-<li>Checking for allowness takes a much time</li>
+<li>Checking for permission to access a file with the File Access Registrar, takes a</li>
</ul>
+<p>lot of time under this approach.</p>
</div>
<div class="section" id="futher-analysis-of-file-access-events">
<h2>Futher analysis of file access events<a class="headerlink" href="#futher-analysis-of-file-access-events" title="Permalink to this headline">¶</a></h2>
@@ -131,9 +137,9 @@ unuseful packages.</p>
<div class="section" id="rules-of-heuristics">
<h3>Rules of heuristics<a class="headerlink" href="#rules-of-heuristics" title="Permalink to this headline">¶</a></h3>
<ol class="arabic simple">
-<li><em>Package is not useful if all files are .desktop or .xml or .m4</em>.
+<li><em>Package is not useful if all files are .desktop, .xml or .m4</em>.
Aclocal util tries to read all .m4 files in /usr/share/aclocal directory.
-Files ending on .desktop and .xml often readed on postrm phase.</li>
+Files ending on .desktop and .xml are often read in the postrm phase.</li>
</ol>
</div>
</div>
@@ -153,8 +159,8 @@ Files ending on .desktop and .xml often readed on postrm phase.</li>
<li><a class="reference internal" href="#format-of-network-messages">Format of network messages</a></li>
</ul>
</li>
-<li><a class="reference internal" href="#how-hooklib-approach-works">How Hooklib approach works?</a></li>
-<li><a class="reference internal" href="#how-fusefs-approach-works">How Fusefs approach works?</a></li>
+<li><a class="reference internal" href="#how-does-the-hooklib-approach-work">How does the Hooklib approach work?</a></li>
+<li><a class="reference internal" href="#how-does-the-fusefs-approach-work">How does the Fusefs approach work?</a></li>
<li><a class="reference internal" href="#futher-analysis-of-file-access-events">Futher analysis of file access events</a><ul>
<li><a class="reference internal" href="#rules-of-heuristics">Rules of heuristics</a></li>
</ul>
@@ -211,7 +217,7 @@ Files ending on .desktop and .xml often readed on postrm phase.</li>
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Jul 25, 2011.
+ Last updated on Aug 20, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/genindex.html b/docs/build/html/genindex.html
index 3afc1ac..1889b59 100644
--- a/docs/build/html/genindex.html
+++ b/docs/build/html/genindex.html
@@ -200,7 +200,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 04, 2011.
+ Last updated on Aug 20, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/index.html b/docs/build/html/index.html
index 95f586e..85fe72a 100644
--- a/docs/build/html/index.html
+++ b/docs/build/html/index.html
@@ -66,8 +66,8 @@
</li>
<li class="toctree-l1"><a class="reference internal" href="architecture.html">Internals</a><ul>
<li class="toctree-l2"><a class="reference internal" href="architecture.html#how-it-works">How it works?</a></li>
-<li class="toctree-l2"><a class="reference internal" href="architecture.html#how-hooklib-approach-works">How Hooklib approach works?</a></li>
-<li class="toctree-l2"><a class="reference internal" href="architecture.html#how-fusefs-approach-works">How Fusefs approach works?</a></li>
+<li class="toctree-l2"><a class="reference internal" href="architecture.html#how-does-the-hooklib-approach-work">How does the Hooklib approach work?</a></li>
+<li class="toctree-l2"><a class="reference internal" href="architecture.html#how-does-the-fusefs-approach-work">How does the Fusefs approach work?</a></li>
<li class="toctree-l2"><a class="reference internal" href="architecture.html#futher-analysis-of-file-access-events">Futher analysis of file access events</a></li>
</ul>
</li>
@@ -136,7 +136,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 04, 2011.
+ Last updated on Aug 20, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/man.html b/docs/build/html/man.html
index 734bd1f..2560335 100644
--- a/docs/build/html/man.html
+++ b/docs/build/html/man.html
@@ -51,58 +51,58 @@
</div>
<div class="section" id="description">
<h2>DESCRIPTION<a class="headerlink" href="#description" title="Permalink to this headline">¶</a></h2>
-<p>Auto dependency builder is a tool for analysis files accessed during
-building a package. It also can be used for runtime dependencies analysis.</p>
-<p>The tool can block an access to files of defined packages.</p>
+<p>Auto dependency (autodep) builder is a tool for the analysis of accessed files during
+the build of a package. It also can be used for runtime dependencies analysis.</p>
+<p>The tool can trace, log and block access to files of given packages.</p>
</div>
<div class="section" id="options">
<h2>OPTIONS<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
<dl class="cmdoption">
<dt id="cmdoption-autodep--help">
<tt class="descname">--help</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">-h</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep--help" title="Permalink to this definition">¶</a></dt>
-<dd><p>show this help message and exit</p>
+<dd><p>Show this help message and exit.</p>
</dd></dl>
<dl class="cmdoption">
<dt id="cmdoption-autodep-b">
<tt class="descname">-b</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">--block</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep-b" title="Permalink to this definition">¶</a></dt>
-<dd><p>strict mode: deny all access to non-dependency packages</p>
+<dd><p>strict mode: Deny all access to files from non-dependency packages.</p>
</dd></dl>
<dl class="cmdoption">
<dt id="cmdoption-autodep--blockpkgs">
<tt class="descname">--blockpkgs</tt><tt class="descclassname">=PACKAGES</tt><a class="headerlink" href="#cmdoption-autodep--blockpkgs" title="Permalink to this definition">¶</a></dt>
-<dd><p>block an access to files from this packages</p>
+<dd><p>Block access to files from this packages.</p>
</dd></dl>
<dl class="cmdoption">
<dt id="cmdoption-autodep-f">
<tt class="descname">-f</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">--files</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep-f" title="Permalink to this definition">¶</a></dt>
-<dd><p>show accessed files and not founded files</p>
+<dd><p>Show all files, accessed and missing (not found).</p>
</dd></dl>
<dl class="cmdoption">
<dt id="cmdoption-autodep-v">
<tt class="descname">-v</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">--verbose</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep-v" title="Permalink to this definition">¶</a></dt>
-<dd><p>show non-important packages, show unknown package and unknown stage</p>
+<dd><p>Show non-important packages, unknown packages and unknown building stages.</p>
</dd></dl>
<dl class="cmdoption">
<dt id="cmdoption-autodep--nocolor">
<tt class="descname">--nocolor</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">-C</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep--nocolor" title="Permalink to this definition">¶</a></dt>
-<dd><p>don’t output color</p>
+<dd><p>Don’t colorize output</p>
</dd></dl>
<dl class="cmdoption">
<dt id="cmdoption-autodep--hooklib">
<tt class="descname">--hooklib</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep--hooklib" title="Permalink to this definition">¶</a></dt>
-<dd><p>use ld_preload logging approach(default)</p>
+<dd><p>Use LD_PRELOAD logging approach (default).</p>
</dd></dl>
<dl class="cmdoption">
<dt id="cmdoption-autodep--fusefs">
<tt class="descname">--fusefs</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep--fusefs" title="Permalink to this definition">¶</a></dt>
-<dd><p>use fuse logging approach(slow, but reliable)</p>
+<dd><p>Use FUSE logging approach (slow, but reliable).</p>
</dd></dl>
</div>
@@ -117,7 +117,7 @@ building a package. It also can be used for runtime dependencies analysis.</p>
<thead valign="bottom">
<tr><th class="head"> </th>
<th class="head">Hooklib</th>
-<th class="head">Fusefs</th>
+<th class="head">FuseFS</th>
</tr>
</thead>
<tbody valign="top">
@@ -125,11 +125,11 @@ building a package. It also can be used for runtime dependencies analysis.</p>
<td><strong>Any user</strong></td>
<td>Only root</td>
</tr>
-<tr><td>Is approach allows blocking an access to files?</td>
+<tr><td>Does approach allows to block access to files?</td>
<td><strong>YES</strong></td>
<td><strong>YES</strong></td>
</tr>
-<tr><td>Is overhead in performance big?</td>
+<tr><td>Is the overhead in performance noticeable?</td>
<td><strong>NO</strong></td>
<td>YES <a class="footnote-reference" href="#f1" id="id1">[1]</a></td>
</tr>
@@ -138,15 +138,16 @@ building a package. It also can be used for runtime dependencies analysis.</p>
<td><strong>ALL</strong></td>
</tr>
<tr><td>When is it recomended to use an approach?</td>
-<td>For analysis
+<td>Analysis
of
<em>buildtime</em>
dependencies</td>
-<td>For analysis
+<td>Analysis
of <em>runtime</em>
dependencies</td>
</tr>
-<tr><td>Is any pre-requirements for using an approach?</td>
+<tr><td>Are there any pre-requirements
+for using an approach?</td>
<td><strong>NO</strong></td>
<td>FUSE must be
enabled in
@@ -158,33 +159,33 @@ kernel</td>
<table class="docutils footnote" frame="void" id="f1" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
-<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td>Fuse file system is slower than normal one. Program reads many files
+<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td>FUSE filesystems are slower than a normal one. A Program accesses many files
while launching, so this will take more time than usual.</td></tr>
</tbody>
</table>
<table class="docutils footnote" frame="void" id="f2" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
-<tr><td class="label"><a class="fn-backref" href="#id2">[2]</a></td><td>Loading of dynamic libraries and direct syscalls will not be logged.</td></tr>
+<tr><td class="label"><a class="fn-backref" href="#id2">[2]</a></td><td>Loading of Dynamic libraries and direct syscalls will not be logged.</td></tr>
</tbody>
</table>
</div>
<div class="section" id="examples">
<h2>Examples<a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h2>
-<div class="section" id="get-the-potential-dependencies-of-a-xchat-package">
-<h3>Get the potential dependencies of a xchat package:<a class="headerlink" href="#get-the-potential-dependencies-of-a-xchat-package" title="Permalink to this headline">¶</a></h3>
-<p>autodep emerge xchat</p>
+<div class="section" id="get-the-potential-dependencies-for-net-irc-xchat">
+<h3>Get the potential dependencies for net-irc/xchat:<a class="headerlink" href="#get-the-potential-dependencies-for-net-irc-xchat" title="Permalink to this headline">¶</a></h3>
+<p>autodep emerge net-irc/xchat</p>
</div>
-<div class="section" id="get-the-potential-dependencies-of-a-xchat-package-blocking-x11-misc-util-macros-package">
-<h3>Get the potential dependencies of a xchat package, blocking x11-misc/util-macros package:<a class="headerlink" href="#get-the-potential-dependencies-of-a-xchat-package-blocking-x11-misc-util-macros-package" title="Permalink to this headline">¶</a></h3>
-<p>autodep emerge –block x11-misc/util-macros emerge xchat</p>
+<div class="section" id="get-the-potential-dependencies-for-net-irc-xchat-blocking-files-from-x11-misc-util-macros-package">
+<h3>Get the potential dependencies for net-irc/xchat, blocking files from x11-misc/util-macros package:<a class="headerlink" href="#get-the-potential-dependencies-for-net-irc-xchat-blocking-files-from-x11-misc-util-macros-package" title="Permalink to this headline">¶</a></h3>
+<p>autodep emerge –block x11-misc/util-macros emerge net-irc/xchat</p>
</div>
-<div class="section" id="get-the-potential-dependencies-of-a-xchat-package-and-show-files-accessed">
-<h3>Get the potential dependencies of a xchat package, and show files accessed:<a class="headerlink" href="#get-the-potential-dependencies-of-a-xchat-package-and-show-files-accessed" title="Permalink to this headline">¶</a></h3>
-<p>autodep –files emerge xchat</p>
+<div class="section" id="get-the-potential-dependencies-for-net-irc-xchat-package-and-show-accessed-files">
+<h3>Get the potential dependencies for net-irc/xchat package, and show accessed files:<a class="headerlink" href="#get-the-potential-dependencies-for-net-irc-xchat-package-and-show-accessed-files" title="Permalink to this headline">¶</a></h3>
+<p>autodep –files emerge net-irc/xchat</p>
</div>
-<div class="section" id="get-the-runtime-dependencies-of-a-xchat-and-show-files-accessed">
-<h3>Get the runtime dependencies of a xchat and show files accessed:<a class="headerlink" href="#get-the-runtime-dependencies-of-a-xchat-and-show-files-accessed" title="Permalink to this headline">¶</a></h3>
+<div class="section" id="get-the-runtime-dependencies-of-a-xchat-and-show-accessed-files">
+<h3>Get the runtime dependencies of a xchat and show accessed files:<a class="headerlink" href="#get-the-runtime-dependencies-of-a-xchat-and-show-accessed-files" title="Permalink to this headline">¶</a></h3>
<p>autodep –fusefs –files xchat</p>
</div>
</div>
@@ -204,10 +205,10 @@ while launching, so this will take more time than usual.</td></tr>
<li><a class="reference internal" href="#options">OPTIONS</a></li>
<li><a class="reference internal" href="#hooklib-vs-fusefs">HOOKLIB VS FUSEFS</a></li>
<li><a class="reference internal" href="#examples">Examples</a><ul>
-<li><a class="reference internal" href="#get-the-potential-dependencies-of-a-xchat-package">Get the potential dependencies of a xchat package:</a></li>
-<li><a class="reference internal" href="#get-the-potential-dependencies-of-a-xchat-package-blocking-x11-misc-util-macros-package">Get the potential dependencies of a xchat package, blocking x11-misc/util-macros package:</a></li>
-<li><a class="reference internal" href="#get-the-potential-dependencies-of-a-xchat-package-and-show-files-accessed">Get the potential dependencies of a xchat package, and show files accessed:</a></li>
-<li><a class="reference internal" href="#get-the-runtime-dependencies-of-a-xchat-and-show-files-accessed">Get the runtime dependencies of a xchat and show files accessed:</a></li>
+<li><a class="reference internal" href="#get-the-potential-dependencies-for-net-irc-xchat">Get the potential dependencies for net-irc/xchat:</a></li>
+<li><a class="reference internal" href="#get-the-potential-dependencies-for-net-irc-xchat-blocking-files-from-x11-misc-util-macros-package">Get the potential dependencies for net-irc/xchat, blocking files from x11-misc/util-macros package:</a></li>
+<li><a class="reference internal" href="#get-the-potential-dependencies-for-net-irc-xchat-package-and-show-accessed-files">Get the potential dependencies for net-irc/xchat package, and show accessed files:</a></li>
+<li><a class="reference internal" href="#get-the-runtime-dependencies-of-a-xchat-and-show-accessed-files">Get the runtime dependencies of a xchat and show accessed files:</a></li>
</ul>
</li>
</ul>
@@ -250,7 +251,7 @@ while launching, so this will take more time than usual.</td></tr>
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 03, 2011.
+ Last updated on Aug 20, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv
index 72db0bb..a96802c 100644
Binary files a/docs/build/html/objects.inv and b/docs/build/html/objects.inv differ
diff --git a/docs/build/html/py-modindex.html b/docs/build/html/py-modindex.html
index e197fdc..e6d78e4 100644
--- a/docs/build/html/py-modindex.html
+++ b/docs/build/html/py-modindex.html
@@ -132,7 +132,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 04, 2011.
+ Last updated on Aug 20, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/search.html b/docs/build/html/search.html
index 14597c1..5ecd73c 100644
--- a/docs/build/html/search.html
+++ b/docs/build/html/search.html
@@ -96,7 +96,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 04, 2011.
+ Last updated on Aug 20, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js
index fa12b7a..a593094 100644
--- a/docs/build/html/searchindex.js
+++ b/docs/build/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({objects:{"":{"-v":[4,0,1],"-f":[4,0,1],"-C":[2,0,1],"-b":[4,0,1],"--hooklib":[4,0,1],"--fusefs":[4,0,1],"--blockpkgs":[4,0,1],"--nocolor":[4,0,1],"--help":[4,0,1]},"package_utils.portage_misc_functions":{portage_api:[1,4,1]},"package_utils.portage_log_parser":{get_list_of_merged_packages:[1,3,1]},logfs:{fstracer:[1,1,1]},"package_utils.portage_utils":{getfilesbypackage:[1,3,1],getpackagesbyfiles:[1,3,1],get_all_packages_files:[1,3,1]},"logfs.fstracer":{getfsevents:[1,3,1]},"package_utils.portage_misc_functions.portage_api":{get_dep:[1,2,1],get_system_packages_list:[1,2,1],get_best_visible_pkg:[1,2,1],get_deps:[1,2,1],get_merge_list:[1,2,1],parse_emerge_args:[1,2,1]},package_utils:{portage_misc_functions:[1,1,1],portage_utils:[1,1,1],portage_log_parser:[1,1,1]}},terms:{all:[1,2,3,4],code:3,chain:1,mnt:3,prog_nam:1,showfsev:2,depend:[1,2,3,4],send:3,ebuild:2,program:[1,2,3,4],under:2,sourc:1,string:1,fals:1,util:[2,3,4],candid:1,veri:1,hooker:3,tri:3,level:1,l
ist:[1,3],mount:3,defaultfilt:1,slower:[2,4],direct:[2,4],second:1,cost:3,pass:1,further:3,index:2,what:[2,4],compar:3,access:[0,1,2,3,4],version:1,"new":3,modifi:3,sinc:[1,3],search:[1,2],action:1,chang:3,via:3,packagenam:1,modul:[1,2,3],filenam:1,unix:3,api:[0,1],heurist:3,instal:[0,1,2,3],get_dep:1,from:[1,2,3,4],memori:1,two:1,call:[1,3],usr:3,type:[1,3],more:[2,4],ld_preload:[2,3,4],endtim:1,getfilesbypackag:1,must:[1,2,4],lib32:3,err:3,package_util:[0,1],prepar:3,registar:3,dev:3,can:[1,2,3,4],"0x1dbdb90":[],root:[2,4],registr:3,share:3,indic:[0,2],high:1,unreli:1,portage_log_pars:1,chroot:3,end:[1,3],anoth:3,write:[1,3],how:[0,3],answer:3,instead:[1,3],simpl:3,map:3,alwai:1,after:3,befor:3,blockpkg:[2,4],mai:1,man:3,syscal:[2,4],bind:3,element:1,inform:[1,3],environ:3,allow:[1,2,3,4],rdepend:1,origin:3,help:[2,4],over:3,rootf:3,dynam:[2,3,4],paramet:1,get_best_visible_pkg:1,cowsai:2,main:3,sock_seqpacket:3,"return":[1,3],thei:1,handl:1,auto:[2,4],"0x19e7b18":[],introd
uct:[0,2],name:[1,3],mode:[2,4],each:1,found:[1,2,3,4],domain:3,idea:3,logf:[0,1],connect:3,todo:2,event:[0,1,2,3,4],variabl:3,network:3,content:0,got:3,lib64:3,believ:3,dictionari:1,ask:3,bash:[1,2],thread:3,launch:[1,2,3,4],get_list_of_merged_packag:1,filter:1,registrar:3,getfsev:1,first:1,oper:1,misc:[2,4],open:[1,3],gpl:2,start:1,unknown:[1,2,3,4],licens:2,system:[1,2,3,4],messag:[2,3,4],scheme:3,low:1,option:[1,2,4],tool:[2,4],copi:3,postrm:3,pars:1,than:[2,4],portage_util:1,get_merge_list:1,charact:3,bridg:1,pre:[2,4],"function":[1,3],linker:3,argument:1,raw:1,tabl:[0,2],packag:[1,2,3,4],accuraci:3,note:[2,3,4],also:[1,2,3,4],build:[2,3,4],which:1,analysi:[0,2,3,4],loggabl:3,normal:[2,4],who:[2,4],most:[2,4],buildtim:[2,4],hooklib:[0,1,2,3,4],phase:3,"class":1,don:[2,4],portage_misc_funct:1,deni:[2,3,4],runtim:[2,3,4],hungri:1,show:[2,4],verbos:[2,4],pkg:1,find:1,xml:3,current:1,onli:[2,4],slow:[2,4],activ:2,dep_typ:1,should:1,parse_emerge_arg:1,analys:3,unus:3,variou:
1,get:[1,2,4],increas:3,requir:[2,4],enabl:[2,4],contain:1,userspac:3,shm:3,kernel:[2,4],set:1,packet:3,see:3,sec:3,result:3,arg:1,fail:1,best:1,statu:[0,2],between:1,"import":[2,4],approach:[0,1,2,3,4],kei:1,get_all_packages_fil:1,xchat:[2,4],both:1,fstracer:[0,1],delimit:3,logic:1,futher:[0,3],mani:[2,4],lsof:2,load:[2,3,4],color:[2,4],overview:[0,2],linux:3,reciev:3,fusef:[0,1,2,3,4],empti:1,implicit:[1,3],much:3,recomend:[2,4],protect:3,ani:[1,2,3,4],look:1,stagenam:3,gnu:2,servic:1,defin:[2,4],"while":[2,3,4],behavior:3,error:3,non:[2,4],synopsi:4,develop:2,perform:[2,3,4],make:2,belong:1,same:3,read:[1,2,3,4],document:0,fuse:[2,3,4],user:[2,4],extern:3,portag:[1,3],macro:[2,4],builder:[2,4],exampl:[0,1,2,4],command:[2,4],thi:[1,2,3,4],filesystem:3,usual:[2,3,4],execut:3,cut:3,"0x1b2bc80":1,desktop:3,els:3,take:[1,2,3,4],filterproc:1,format:3,libc:3,big:[2,4],recurs:1,success:1,nocolor:[2,4],output:[2,4],page:2,often:3,intern:[0,1,3],successfulli:1,librari:[2,3,4],tmp:3
,autodep:[0,2,4],exit:[2,4],overlai:2,proc:3,run:[0,2,3],starttim:1,x11:[2,4],portage_api:1,stage:[1,2,3,4],about:3,socket:3,block:[1,2,3,4],merg:1,log:[1,2,4],wai:3,errno:3,strict:[2,4],includ:3,"var":3,overhead:[2,4],fork:3,unexpect:3,tupl:1,atom:1,"true":1,"default":[1,2,4],creat:3,dure:[2,4],parser:1,doesn:1,file:[0,1,2,3,4],work:[0,1,3],check:3,emergearg:1,acloc:3,when:[2,3,4],detail:3,field:3,other:3,getpackagesbyfil:1,get_system_packages_list:1,releas:2,directori:3,reliabl:[2,4],descript:4,rule:3,depth:1,emerg:[1,2,4],potenti:[2,4],time:[1,2,3,4],profil:3},objtypes:{"0":"std:option","1":"py:module","2":"py:method","3":"py:function","4":"py:class"},titles:["Autodep’s documentation","API","Introduction","Internals","USER COMMANDS"],objnames:{"0":"option","1":"Python module","2":"Python method","3":"Python function","4":"Python class"},filenames:["index","api","intro","architecture","man"]})
\ No newline at end of file
+Search.setIndex({objects:{"":{"-v":[4,0,1],"-f":[4,0,1],"-C":[2,0,1],"-b":[4,0,1],"--hooklib":[4,0,1],"--fusefs":[4,0,1],"--blockpkgs":[4,0,1],"--nocolor":[4,0,1],"--help":[4,0,1]},"logfs.fstracer":{getfsevents:[1,3,1]},"package_utils.portage_log_parser":{get_list_of_merged_packages:[1,3,1]},logfs:{fstracer:[1,1,1]},"package_utils.portage_utils":{getfilesbypackage:[1,3,1],getpackagesbyfiles:[1,3,1],get_all_packages_files:[1,3,1]},"package_utils.portage_misc_functions":{portage_api:[1,4,1]},"package_utils.portage_misc_functions.portage_api":{get_dep:[1,2,1],get_system_packages_list:[1,2,1],get_best_visible_pkg:[1,2,1],get_deps:[1,2,1],get_merge_list:[1,2,1],parse_emerge_args:[1,2,1]},package_utils:{portage_misc_functions:[1,1,1],portage_utils:[1,1,1],portage_log_parser:[1,1,1]}},terms:{all:[1,2,3,4],code:[],chain:1,queri:3,mnt:3,follow:3,prog_nam:1,showfsev:2,depend:[1,2,3,4],send:3,ebuild:2,program:[1,2,3,4],under:[2,3],sourc:1,string:1,fals:1,util:[2,3,4],candid:1,veri:1,ho
oker:[],tri:3,level:1,list:[1,3],mount:3,defaultfilt:1,slower:[2,4],direct:[2,4],second:1,cost:3,pass:1,further:3,index:2,what:[2,4],compar:3,access:[0,1,2,3,4],version:1,"new":3,net:4,intercept:3,modifi:3,sinc:[1,3],search:[1,2],action:1,chang:3,via:3,packagenam:1,modul:[1,2,3],filenam:1,unix:3,api:[0,1],heurist:3,instal:[0,1,2,3],get_dep:1,from:[1,2,3,4],would:3,memori:1,regist:3,two:1,call:[1,3],usr:3,type:[1,3],more:[2,4],ld_preload:[2,3,4],notic:4,endtim:1,getfilesbypackag:1,must:[1,2,4],lib32:3,err:3,package_util:[0,1],prepar:3,registar:3,dev:3,can:[1,2,3,4],"0x1dbdb90":[],root:[2,4],process:3,registr:[],share:3,indic:[0,2],high:1,unreli:1,portage_log_pars:1,chroot:3,end:[1,3],anoth:3,write:[1,3],how:[0,3],answer:3,instead:[1,3],simpl:3,map:3,alwai:1,after:3,befor:3,blockpkg:[2,4],mai:1,man:3,syscal:[2,4],bind:3,element:1,inform:1,environ:3,allow:[1,2,3,4],rdepend:1,origin:3,help:[2,4],over:3,rootf:3,dynam:[2,3,4],paramet:1,get_best_visible_pkg:1,cowsai:2,main:3,them:3
,"return":[1,3],thei:1,handl:1,auto:[2,4],"0x19e7b18":[],introduct:[0,2],name:[1,3],"0x1dcb938":1,mode:[2,4],each:1,found:[1,2,3,4],domain:3,idea:3,logf:[0,1],connect:3,todo:2,event:[0,1,2,3,4],variabl:3,network:3,miss:4,content:0,got:3,lib64:3,insid:3,believ:3,dictionari:1,ask:3,bash:[1,2],thread:3,launch:[1,2,3,4],get_list_of_merged_packag:1,filter:1,registrar:3,getfsev:1,first:1,oper:1,misc:[2,4],hook:3,open:[1,3],gpl:2,given:4,start:1,unknown:[1,2,3,4],licens:2,system:[1,2,3],messag:[2,3,4],scheme:3,low:1,option:[1,2,4],tool:[2,4],copi:3,postrm:3,pars:1,than:[2,4],portage_util:1,get_merge_list:1,charact:3,bridg:1,pre:[2,4],"function":[1,3],linker:3,argument:1,raw:1,tabl:[0,2],packag:[1,2,3,4],accuraci:3,note:[2,3,4],also:[1,2,3,4],build:[2,3,4],which:1,jail:3,analysi:[0,2,3,4],loggabl:3,trace:4,normal:[2,4],who:[2,4],most:[2,4],buildtim:[2,4],hooklib:[0,1,2,3,4],phase:3,"class":1,don:[2,4],portage_misc_funct:1,doe:[0,3,4],deni:[2,3,4],runtim:[2,3,4],hungri:1,show:[2,4],v
erbos:[2,4],pkg:1,permiss:3,find:1,xml:3,current:1,onli:[2,4],slow:[2,4],activ:2,dep_typ:1,should:1,parse_emerge_arg:1,analys:3,unus:3,variou:1,get:[1,2,4],increas:3,requir:[2,4],enabl:[2,4],"default":[1,2,4],contain:1,userspac:3,shm:3,respond:3,kernel:[2,4],set:1,packet:3,see:3,sec:3,result:3,arg:1,fail:1,best:1,statu:[0,2],behind:3,between:1,"import":[2,4],irc:4,approach:[0,1,2,3,4],kei:1,get_all_packages_fil:1,xchat:[2,4],both:1,protect:3,delimit:3,logic:1,futher:[0,3],mani:[2,4],lsof:2,load:[2,3,4],color:[2,4],overview:[0,2],linux:3,reciev:3,fusef:[0,1,2,3,4],empti:1,implicit:[1,3],much:[],recomend:[2,4],fstracer:[0,1],ani:[1,2,3,4],look:1,stagenam:3,gnu:2,servic:1,defin:2,"while":[2,3,4],behavior:3,error:3,non:[2,4],sock_seqpacket:3,synopsi:4,develop:2,perform:[2,3,4],make:2,belong:1,same:3,read:[1,2,3],document:0,fuse:[2,3,4],user:[2,4],extern:3,portag:[1,3],macro:[2,4],builder:[2,4],exampl:[0,1,2,4],command:[2,4],thi:[1,2,3,4],filesystem:[3,4],usual:[2,3,4],execut:3,c
ut:3,"0x1b2bc80":[],desktop:3,els:[],take:[1,2,3,4],filterproc:1,format:3,libc:3,big:2,recurs:1,success:1,nocolor:[2,4],output:[2,4],page:2,often:3,intern:[0,1,3],successfulli:1,librari:[2,3,4],tmp:3,autodep:[0,2,4],exit:[2,4],overlai:2,proc:3,previou:3,run:[0,2,3],step:3,starttim:1,x11:[2,4],portage_api:1,stage:[1,2,3,4],about:3,socket:3,block:[1,2,3,4],merg:1,log:[1,2,4],wai:3,errno:3,strict:[2,4],includ:3,lot:3,"var":3,overhead:[2,4],fork:3,unexpect:3,tupl:1,atom:1,"true":1,whether:3,otherwis:3,creat:3,dure:[2,4],parser:1,doesn:1,file:[0,1,2,3,4],work:[0,1,3],check:3,emergearg:1,acloc:3,when:[2,3,4],detail:3,field:3,other:3,getpackagesbyfil:1,get_system_packages_list:1,releas:2,directori:3,reliabl:[2,4],descript:4,rule:3,depth:1,emerg:[1,2,4],potenti:[2,4],time:[1,2,3,4],profil:3},objtypes:{"0":"std:option","1":"py:module","2":"py:method","3":"py:function","4":"py:class"},titles:["Autodep’s documentation","API","Introduction","Internals","USER COMMANDS"],objnames:{"
0":"option","1":"Python module","2":"Python method","3":"Python function","4":"Python class"},filenames:["index","api","intro","architecture","man"]})
\ No newline at end of file
diff --git a/docs/build/man/autodep.1 b/docs/build/man/autodep.1
index b338c58..202dd11 100644
--- a/docs/build/man/autodep.1
+++ b/docs/build/man/autodep.1
@@ -1,4 +1,4 @@
-.TH "AUTODEP" "1" "August 04, 2011" "0.1" "Autodep"
+.TH "AUTODEP" "1" "August 20, 2011" "0.1" "Autodep"
.SH NAME
autodep \- auto dependency builder for Gentoo
.
@@ -35,58 +35,50 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
\fBautodep\fP [options] <command>
.SH DESCRIPTION
.sp
-Auto dependency builder is a tool for analysis files accessed during
-building a package. It also can be used for runtime dependencies analysis.
+Auto dependency (autodep) builder is a tool for the analysis of accessed files during
+the build of a package. It also can be used for runtime dependencies analysis.
.sp
-The tool can block an access to files of defined packages.
+The tool can trace, log and block access to files of given packages.
.SH OPTIONS
.INDENT 0.0
.TP
.B \-\-help, \-h
-.sp
-show this help message and exit
+Show this help message and exit.
.UNINDENT
.INDENT 0.0
.TP
.B \-b, \-\-block
-.sp
-strict mode: deny all access to non\-dependency packages
+strict mode: Deny all access to files from non\-dependency packages.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-blockpkgs=PACKAGES
-.sp
-block an access to files from this packages
+Block access to files from this packages.
.UNINDENT
.INDENT 0.0
.TP
.B \-f, \-\-files
-.sp
-show accessed files and not founded files
+Show all files, accessed and missing (not found).
.UNINDENT
.INDENT 0.0
.TP
.B \-v, \-\-verbose
-.sp
-show non\-important packages, show unknown package and unknown stage
+Show non\-important packages, unknown packages and unknown building stages.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-nocolor, \-C
-.sp
-don\(aqt output color
+Don\(aqt colorize output
.UNINDENT
.INDENT 0.0
.TP
.B \-\-hooklib
-.
-use ld_preload logging approach(default)
+Use LD_PRELOAD logging approach (default).
.UNINDENT
.INDENT 0.0
.TP
.B \-\-fusefs
-.
-use fuse logging approach(slow, but reliable)
+Use FUSE logging approach (slow, but reliable).
.UNINDENT
.SH HOOKLIB VS FUSEFS
.TS
@@ -97,7 +89,7 @@ T{
T} T{
Hooklib
T} T{
-Fusefs
+FuseFS
T}
_
T{
@@ -109,7 +101,7 @@ Only root
T}
_
T{
-Is approach allows blocking an access to files?
+Does approach allows to block access to files?
T} T{
\fBYES\fP
T} T{
@@ -117,7 +109,7 @@ T} T{
T}
_
T{
-Is overhead in performance big?
+Is the overhead in performance noticeable?
T} T{
\fBNO\fP
T} T{
@@ -135,18 +127,19 @@ _
T{
When is it recomended to use an approach?
T} T{
-For analysis
+Analysis
of
\fIbuildtime\fP
dependencies
T} T{
-For analysis
+Analysis
of \fIruntime\fP
dependencies
T}
_
T{
-Is any pre\-requirements for using an approach?
+Are there any pre\-requirements
+for using an approach?
T} T{
\fBNO\fP
T} T{
@@ -158,23 +151,21 @@ _
.TE
Notes
.IP [1] 5
-.
-Fuse file system is slower than normal one. Program reads many files
+FUSE filesystems are slower than a normal one. A Program accesses many files
while launching, so this will take more time than usual.
.IP [2] 5
-.
-Loading of dynamic libraries and direct syscalls will not be logged.
+Loading of Dynamic libraries and direct syscalls will not be logged.
.SH EXAMPLES
-.SS Get the potential dependencies of a xchat package:
+.SS Get the potential dependencies for net\-irc/xchat:
.sp
-autodep emerge xchat
-.SS Get the potential dependencies of a xchat package, blocking x11\-misc/util\-macros package:
+autodep emerge net\-irc/xchat
+.SS Get the potential dependencies for net\-irc/xchat, blocking files from x11\-misc/util\-macros package:
.sp
-autodep emerge \-\-block x11\-misc/util\-macros emerge xchat
-.SS Get the potential dependencies of a xchat package, and show files accessed:
+autodep emerge \-\-block x11\-misc/util\-macros emerge net\-irc/xchat
+.SS Get the potential dependencies for net\-irc/xchat package, and show accessed files:
.sp
-autodep \-\-files emerge xchat
-.SS Get the runtime dependencies of a xchat and show files accessed:
+autodep \-\-files emerge net\-irc/xchat
+.SS Get the runtime dependencies of a xchat and show accessed files:
.sp
autodep \-\-fusefs \-\-files xchat
.SH AUTHOR
diff --git a/docs/source/api.rst b/docs/source/api.rst
index 1397732..502db1e 100644
--- a/docs/source/api.rst
+++ b/docs/source/api.rst
@@ -11,7 +11,7 @@ logfs.fstracer
package_utils
================================
-This package contains modules which works with the Portage system
+This package contains modules which work with the Portage system
.. automodule:: package_utils.portage_log_parser
:members:
diff --git a/docs/source/architecture.rst b/docs/source/architecture.rst
index 59b55f8..2caec16 100644
--- a/docs/source/architecture.rst
+++ b/docs/source/architecture.rst
@@ -13,66 +13,71 @@ Format of network messages
--------------------------
-1. Format of messages to file access registrar::
+1. Format of messages to the File Access Registrar::
<time of event: sec since 1970>
<event type: open, read, write>
<name of file>
<building stage: stagename or unknown>
<result:OK,ERR/errno,ASKING,DENIED>
-2. Format of answer for ASKING packet from registrar::
+2. Format of answer for ASKING packet from File Access Registrar::
<ALLOW | DENY>
*Notes:*
* All sockets are SOCK_SEQPACKET
-* All fields are delimited with character with code 0
+* All fields are delimited with character \0
-How Hooklib approach works?
-===========================
+How does the Hooklib approach work?
+===================================
-The main idea of Hooklib approach is to load a dynamic library-hooker
-**before** any other library(including the C runtime, libc.so).
-So, the functions, such as open, read and write, executed from this library
-instead of libc.so.
+The main idea behind the Hooklib approach is to load a dynamic library-hook
+**before** any other library(including the C runtime).
+So, the calls to functions such as open, read and write, are intercepted
+using this library, instead of executing the ones in *libc*.
-Hooklib module modifies Linux's dynamic linker behavior changing LD_PRELOAD
-environment variable(see
+Hooklib module modifies Linux's dynamic linker behavior, changing LD_PRELOAD
+environment variable (see
`man 8 ld-linux <http://linux.die.net/man/8/ld-linux>`_ for details).
-Module protects LD_PRELOAD variable from further changes by program.
+This module also protects LD_PRELOAD variable from further changes by executing
+program.
-When hooklib module loads, it connects to file access registrar via Unix domain
-sockets. If program forks or creates a new thread, another copy of library
-loads.
+When Hooklib is loaded, it connects to the File Access Registrar via Unix domain
+sockets. If a program forks or creates a new thread, another copy of the library
+loads to register events from this new process/thread.
-When program do open(...), read(...), write(...), library send an information
-about a call to registrar. Registar can block or allow an event. If registrer
-allows an event then the original function is called. Else error
-"file not found" is returned.
+When a program calls open(...), read(...), write(...), Hooklib sends a message
+about a call to the File Access Registrar. The Registar can then block
+or allow this event. If Registrar responds to the previous query with
+an ALLOW packet, then the original function is called. Otherwise, the function
+is not called and a "File not Found" error is returned instead.
-How Fusefs approach works?
-==========================
+How does the Fusefs approach work?
+==================================
-The main idea if Fusefs approach is to create a loggable filesystem in userspace
-and chroot a program into it.
+The main idea of the Fusefs approach is to create a loggable filesystem in userspace
+and jail a program into it, using a chroot.
-Before program is launched registrar prepare mounts. It usually do:
+Before the program is launched, The File Access Registrar prepare the mounts.
+It would usually take the following steps:
1. mount -o bind / /mnt/rootfs/
-2. mount /dev/, /dev/pts, /dev/shm, /proc/, /sys/ same way
+2. mount /dev, /dev/pts, /dev/shm, /proc/, /sys/ binding them to /mnt/rootfs
3. mount /lib64/, /lib32/, /var/tmp/portage/ same way to increase performance at
cost of accuracy
-4. launch fuse over /mnt/rootfs/
+4. launch FUSE over /mnt/rootfs/
-Fuse module blocks all external access to /mnt/rootfs while program runs.
-
-Fuse module also asks the registrar about event allowness.
+Fuse module blocks all external access to /mnt/rootfs while the program runs.
+The FUSE module will also ask the File Access Registrar to check whether access to
+files inside the chroot are allowed or denied. As with the Hooklib approach, if
+access to a file is denied, a "File not Found" error is returned.
*Notes:*
-* Checking for allowness takes a much time
+* Checking for permission to access a file with the File Access Registrar, takes a
+lot of time under this approach.
Futher analysis of file access events
=====================================
@@ -90,6 +95,6 @@ unuseful packages.
Rules of heuristics
-------------------
-1. *Package is not useful if all files are .desktop or .xml or .m4*.
+1. *Package is not useful if all files are .desktop, .xml or .m4*.
Aclocal util tries to read all .m4 files in /usr/share/aclocal directory.
- Files ending on .desktop and .xml often readed on postrm phase.
\ No newline at end of file
+ Files ending on .desktop and .xml are often read in the postrm phase.
\ No newline at end of file
diff --git a/docs/source/man.rst b/docs/source/man.rst
index b49fb54..bf5ad86 100644
--- a/docs/source/man.rst
+++ b/docs/source/man.rst
@@ -10,10 +10,10 @@ SYNOPSIS
DESCRIPTION
===========
-Auto dependency builder is a tool for analysis files accessed during
-building a package. It also can be used for runtime dependencies analysis.
+Auto dependency (autodep) builder is a tool for the analysis of accessed files during
+the build of a package. It also can be used for runtime dependencies analysis.
-The tool can block an access to files of defined packages.
+The tool can trace, log and block access to files of given packages.
OPTIONS
=======
@@ -22,78 +22,78 @@ OPTIONS
.. cmdoption:: --help, -h
- show this help message and exit
+ Show this help message and exit.
.. cmdoption:: -b, --block
- strict mode: deny all access to non-dependency packages
+ strict mode: Deny all access to files from non-dependency packages.
.. cmdoption:: --blockpkgs=PACKAGES
- block an access to files from this packages
+ Block access to files from this packages.
.. cmdoption:: -f, --files
- show accessed files and not founded files
+ Show all files, accessed and missing (not found).
.. cmdoption:: -v, --verbose
- show non-important packages, show unknown package and unknown stage
+ Show non-important packages, unknown packages and unknown building stages.
.. cmdoption:: --nocolor, -C
- don't output color
+ Don't colorize output
.. cmdoption:: --hooklib
- use ld_preload logging approach(default)
+ Use LD_PRELOAD logging approach (default).
.. cmdoption:: --fusefs
- use fuse logging approach(slow, but reliable)
+ Use FUSE logging approach (slow, but reliable).
HOOKLIB VS FUSEFS
=================
+------------------------------------------------+-------------+---------------+
-| | Hooklib | Fusefs |
+| | Hooklib | FuseFS |
+================================================+=============+===============+
| Who can use this approach? | **Any user**| Only root |
+------------------------------------------------+-------------+---------------+
-| Is approach allows blocking an access to files?| **YES** | **YES** |
+| Does approach allows to block access to files? | **YES** | **YES** |
+------------------------------------------------+-------------+---------------+
-| Is overhead in performance big? | **NO** | YES [#f1]_ |
+| Is the overhead in performance noticeable? | **NO** | YES [#f1]_ |
+------------------------------------------------+-------------+---------------+
| What events are logged? | Most [#f2]_| **ALL** |
+------------------------------------------------+-------------+---------------+
-| When is it recomended to use an approach? | For analysis| For analysis |
+| When is it recomended to use an approach? | Analysis | Analysis |
| | of | of *runtime* |
| | *buildtime* | dependencies |
| | dependencies| |
+------------------------------------------------+-------------+---------------+
-| Is any pre-requirements for using an approach? | **NO** | FUSE must be |
-| | | enabled in |
+| Are there any pre-requirements | **NO** | FUSE must be |
+| for using an approach? | | enabled in |
| | | kernel |
+------------------------------------------------+-------------+---------------+
.. rubric:: Notes
-.. [#f1] Fuse file system is slower than normal one. Program reads many files
+.. [#f1] FUSE filesystems are slower than a normal one. A Program accesses many files
while launching, so this will take more time than usual.
-.. [#f2] Loading of dynamic libraries and direct syscalls will not be logged.
+.. [#f2] Loading of Dynamic libraries and direct syscalls will not be logged.
Examples
========
-Get the potential dependencies of a xchat package:
------------------------------------------------------
-autodep emerge xchat
+Get the potential dependencies for net-irc/xchat:
+-------------------------------------------------
+autodep emerge net-irc/xchat
-Get the potential dependencies of a xchat package, blocking x11-misc/util-macros package:
---------------------------------------------------------------------------------------------
-autodep emerge --block x11-misc/util-macros emerge xchat
+Get the potential dependencies for net-irc/xchat, blocking files from x11-misc/util-macros package:
+---------------------------------------------------------------------------------------------------
+autodep emerge --block x11-misc/util-macros emerge net-irc/xchat
-Get the potential dependencies of a xchat package, and show files accessed:
-------------------------------------------------------------------------------
-autodep --files emerge xchat
+Get the potential dependencies for net-irc/xchat package, and show accessed files:
+----------------------------------------------------------------------------------
+autodep --files emerge net-irc/xchat
-Get the runtime dependencies of a xchat and show files accessed:
--------------------------------------------------------------------
+Get the runtime dependencies of a xchat and show accessed files:
+----------------------------------------------------------------
autodep --fusefs --files xchat
diff --git a/src/autodep/autodep b/src/autodep/autodep
index 1152180..f202d0d 100755
--- a/src/autodep/autodep
+++ b/src/autodep/autodep
@@ -19,26 +19,26 @@ def parse_args():
args_parser=optparse.OptionParser("%prog [options] <command>")
args_parser.add_option("-b","--block",action="store_true",
dest="strict_block", default="",
- help="strict mode: deny all access to non-dependency packages")
+ help="strict mode: Deny all access to files from non-dependency packages.")
args_parser.add_option("--blockpkgs",action="store", type="string",
dest="packages", default="",
- help="block an access to files from this packages")
+ help="Block access to files from these packages.")
args_parser.add_option("-f","--files", action="store_true", dest="show_files",
- default=False, help="show all accessed files and not founded files")
+ default=False, help="Show all files, accessed and missing ( not founded).")
args_parser.add_option("-v","--verbose", action="store_true", dest="verbose",
- default=False, help="show non-important packages, "
- "show unknown package and unknown stage")
+ default=False, help="Show non-important packages, "
+ "unknown package and unknown stage")
args_parser.add_option("-n","--numfiles",action="store", type="string",
dest="numfiles",
default=10,
- help="maximum number of files from each package to show(default is 10)")
+ help="Maximum number of files from each package to show (default is 10)")
args_parser.add_option("-C","--nocolor",action="store_true", dest="nocolor",
- default=False, help="don't output color")
+ default=False, help="Don't colorize output")
args_parser.add_option("--hooklib",action="store_const", dest="approach",
- const="hooklib", help="use ld_preload logging approach(default)")
+ const="hooklib", help="Use ld_preload logging approach (default)")
args_parser.add_option("--fusefs",action="store_const", dest="approach",
- const="fusefs", help="use fuse logging approach(slow, but reliable)")
+ const="fusefs", help="Use FUSE logging approach (slow, but reliable)")
args_parser.set_defaults(approach="hooklib")
args_parser.epilog="Example: %s -blockpkgs lsof,cowsay emerge bash" % (
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [gentoo-commits] proj/autodep:master commit in: docs/build/html/_sources/, docs/build/html/_modules/package_utils/, ...
@ 2011-08-21 10:01 Александр Берсенев
0 siblings, 0 replies; 5+ messages in thread
From: Александр Берсенев @ 2011-08-21 10:01 UTC (permalink / raw
To: gentoo-commits
commit: 1626259059a7b2da817fe6a32126c2eddd14406c
Author: Alexander Bersenev <bay <AT> hackerdom <DOT> ru>
AuthorDate: Sun Aug 21 15:59:46 2011 +0000
Commit: Александр Берсенев <bay <AT> hackerdom <DOT> ru>
CommitDate: Sun Aug 21 15:59:46 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/autodep.git;a=commit;h=16262590
documentation changes and args parsing fixed
---
docs/build/doctrees/api.doctree | Bin 46746 -> 48389 bytes
docs/build/doctrees/environment.pickle | Bin 971797 -> 971863 bytes
docs/build/doctrees/intro.doctree | Bin 28313 -> 28343 bytes
docs/build/doctrees/man.doctree | Bin 26064 -> 26037 bytes
docs/build/html/_modules/index.html | 2 +-
docs/build/html/_modules/logfs/fstracer.html | 2 +-
.../_modules/package_utils/portage_log_parser.html | 2 +-
.../package_utils/portage_misc_functions.html | 2 +-
.../html/_modules/package_utils/portage_utils.html | 2 +-
docs/build/html/_sources/intro.txt | 64 +++++++++-----------
docs/build/html/_sources/man.txt | 2 +-
docs/build/html/api.html | 11 +++-
docs/build/html/genindex.html | 34 +++-------
docs/build/html/index.html | 2 +-
docs/build/html/intro.html | 65 ++++++++++----------
docs/build/html/man.html | 4 +-
docs/build/html/objects.inv | Bin 501 -> 507 bytes
docs/build/html/py-modindex.html | 2 +-
docs/build/html/search.html | 2 +-
docs/build/html/searchindex.js | 2 +-
docs/build/man/autodep.1 | 4 +-
docs/source/intro.rst | 64 +++++++++-----------
docs/source/man.rst | 2 +-
src/autodep/autodep | 20 +++++--
24 files changed, 139 insertions(+), 149 deletions(-)
diff --git a/docs/build/doctrees/api.doctree b/docs/build/doctrees/api.doctree
index 4821784..d8ae4bd 100644
Binary files a/docs/build/doctrees/api.doctree and b/docs/build/doctrees/api.doctree differ
diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle
index 8d02379..2a03b39 100644
Binary files a/docs/build/doctrees/environment.pickle and b/docs/build/doctrees/environment.pickle differ
diff --git a/docs/build/doctrees/intro.doctree b/docs/build/doctrees/intro.doctree
index 314b99e..e92be8f 100644
Binary files a/docs/build/doctrees/intro.doctree and b/docs/build/doctrees/intro.doctree differ
diff --git a/docs/build/doctrees/man.doctree b/docs/build/doctrees/man.doctree
index da00d7c..aea8941 100644
Binary files a/docs/build/doctrees/man.doctree and b/docs/build/doctrees/man.doctree differ
diff --git a/docs/build/html/_modules/index.html b/docs/build/html/_modules/index.html
index 8141709..4c87b23 100644
--- a/docs/build/html/_modules/index.html
+++ b/docs/build/html/_modules/index.html
@@ -86,7 +86,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 20, 2011.
+ Last updated on Aug 21, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/_modules/logfs/fstracer.html b/docs/build/html/_modules/logfs/fstracer.html
index 83a2ef6..2958336 100644
--- a/docs/build/html/_modules/logfs/fstracer.html
+++ b/docs/build/html/_modules/logfs/fstracer.html
@@ -327,7 +327,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 20, 2011.
+ Last updated on Aug 21, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/_modules/package_utils/portage_log_parser.html b/docs/build/html/_modules/package_utils/portage_log_parser.html
index 2c9e94b..3167f47 100644
--- a/docs/build/html/_modules/package_utils/portage_log_parser.html
+++ b/docs/build/html/_modules/package_utils/portage_log_parser.html
@@ -170,7 +170,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 20, 2011.
+ Last updated on Aug 21, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/_modules/package_utils/portage_misc_functions.html b/docs/build/html/_modules/package_utils/portage_misc_functions.html
index 13fddfe..105dcaf 100644
--- a/docs/build/html/_modules/package_utils/portage_misc_functions.html
+++ b/docs/build/html/_modules/package_utils/portage_misc_functions.html
@@ -188,7 +188,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 20, 2011.
+ Last updated on Aug 21, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/_modules/package_utils/portage_utils.html b/docs/build/html/_modules/package_utils/portage_utils.html
index b0e63db..62a8b06 100644
--- a/docs/build/html/_modules/package_utils/portage_utils.html
+++ b/docs/build/html/_modules/package_utils/portage_utils.html
@@ -158,7 +158,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 20, 2011.
+ Last updated on Aug 21, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/_sources/intro.txt b/docs/build/html/_sources/intro.txt
index 82278ac..400a668 100644
--- a/docs/build/html/_sources/intro.txt
+++ b/docs/build/html/_sources/intro.txt
@@ -4,11 +4,10 @@ Introduction
Overview
===================================
-Auto dependency builder is a tool for analysis files accessed during
-building a package. It also can be used for buildtime and runtime dependency
-analysis.
+Auto dependency (autodep) builder is a tool for the analysis of accessed files during
+the build of a package. It also can be used for runtime dependencies analysis.
-The tool can block an access to files of defined packages.
+The tool can trace, log and block access to files of given packages.
It is released under GNU GPL license.
@@ -32,35 +31,31 @@ Running
.. cmdoption:: --help, -h
- show this help message and exit
+ Show this help message and exit.
.. cmdoption:: -b, --block
- strict mode: deny all access to non-dependency packages
+ strict mode: Deny all access to files from non-dependency packages.
.. cmdoption:: --blockpkgs=PACKAGES
- block an access to files from this packages
+ Block access to files from this packages.
-.. cmdoption:: -f , --files
+.. cmdoption:: -f, --files
- show accessed files and not founded files
+ Show all files, accessed and missing (not found).
+.. cmdoption:: -v, --verbose
-.. cmdoption:: -v , --verbose
-
- show non-important packages, show unknown package and unknown stage
-
-.. cmdoption:: -C , --nocolor
-
- don't output color
+ Show non-important packages, unknown packages and unknown building stages.
+.. cmdoption:: --nocolor, -C
+ Don't colorize output
.. cmdoption:: --hooklib
- use ld_preload logging approach(default)
-
+ Use LD_PRELOAD logging approach (default).
.. cmdoption:: --fusefs
- use fuse logging approach(slow, but reliable)
+ Use FUSE logging approach (slow, but reliable).
Example: showfsevents.py -b lsof,cowsay emerge bash
@@ -68,56 +63,55 @@ Hooklib vs Fusefs
===================================
+------------------------------------------------+-------------+---------------+
-| | Hooklib | Fusefs |
+| | Hooklib | FuseFS |
+================================================+=============+===============+
| Who can use this approach? | **Any user**| Only root |
+------------------------------------------------+-------------+---------------+
-| Is approach allows blocking an access to files?| **YES** | **YES** |
+| Does approach allows to block access to files? | **YES** | **YES** |
+------------------------------------------------+-------------+---------------+
-| Is overhead in performance big? | **NO** | YES [#f1]_ |
+| Is the overhead in performance noticeable? | **NO** | YES [#f1]_ |
+------------------------------------------------+-------------+---------------+
| What events are logged? | Most [#f2]_| **ALL** |
+------------------------------------------------+-------------+---------------+
-| When is it recomended to use an approach? | For analysis| For analysis |
+| When is it recomended to use an approach? | Analysis | Analysis |
| | of | of *runtime* |
| | *buildtime* | dependencies |
| | dependencies| |
+------------------------------------------------+-------------+---------------+
-| Is any pre-requirements for using an approach? | **NO** | FUSE must be |
-| | | enabled in |
+| Are there any pre-requirements | **NO** | FUSE must be |
+| for using an approach? | | enabled in |
| | | kernel |
+------------------------------------------------+-------------+---------------+
.. rubric:: Notes
-.. [#f1] Fuse file system is slower than normal one. Program reads many files
+.. [#f1] FUSE filesystems are slower than a normal one. A Program accesses many files
while launching, so this will take more time than usual.
-.. [#f2] Loading of dynamic libraries and direct syscalls will not be logged.
+.. [#f2] Loading of Dynamic libraries and direct syscalls will not be logged.
Examples
===================================
-.. rubric:: 1. Get the potential dependencies of a xchat package:
+.. rubric:: 1. Get the potential dependencies for net-irc/xchat:
.. code-block:: none
- autodep emerge xchat
+ autodep emerge net-irc/xchat
-.. rubric:: 2. Get the potential dependencies of a xchat package, blocking
+.. rubric:: 2. Get the potential dependencies for net-irc/xchat, blocking
x11-misc/util-macros package:
.. code-block:: none
- autodep emerge --block x11-misc/util-macros emerge xchat
+ autodep emerge --blockpkgs x11-misc/util-macros emerge net-irc/xchat
-.. rubric:: 3. Get the potential dependencies of a xchat package, and show files
+.. rubric:: 3. Get the potential dependencies for net-irc/xchat, and show files
accessed:
.. code-block:: none
- autodep --files emerge xchat
+ autodep --files emerge net-irc/xchat
-.. rubric:: 4. Get the runtime dependencies of a xchat and show files
- accessed:
+.. rubric:: 4. Get the runtime dependencies of a xchat and show accessed files:
.. code-block:: none
diff --git a/docs/build/html/_sources/man.txt b/docs/build/html/_sources/man.txt
index bf5ad86..fa97db6 100644
--- a/docs/build/html/_sources/man.txt
+++ b/docs/build/html/_sources/man.txt
@@ -87,7 +87,7 @@ autodep emerge net-irc/xchat
Get the potential dependencies for net-irc/xchat, blocking files from x11-misc/util-macros package:
---------------------------------------------------------------------------------------------------
-autodep emerge --block x11-misc/util-macros emerge net-irc/xchat
+autodep emerge --blockpkgs x11-misc/util-macros emerge net-irc/xchat
Get the potential dependencies for net-irc/xchat package, and show accessed files:
----------------------------------------------------------------------------------
diff --git a/docs/build/html/api.html b/docs/build/html/api.html
index e485aa5..aa34b41 100644
--- a/docs/build/html/api.html
+++ b/docs/build/html/api.html
@@ -56,7 +56,7 @@ handling dependency logic.</p>
<p>It can be used to launch a program and get all file events</p>
<dl class="function">
<dt id="logfs.fstracer.getfsevents">
-<tt class="descclassname">logfs.fstracer.</tt><tt class="descname">getfsevents</tt><big>(</big><em>prog_name</em>, <em>arguments</em>, <em>approach='hooklib'</em>, <em>filterproc=<function defaultfilter at 0x1dcb938></em><big>)</big><a class="reference internal" href="_modules/logfs/fstracer.html#getfsevents"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#logfs.fstracer.getfsevents" title="Permalink to this definition">¶</a></dt>
+<tt class="descclassname">logfs.fstracer.</tt><tt class="descname">getfsevents</tt><big>(</big><em>prog_name</em>, <em>arguments</em>, <em>approach='hooklib'</em>, <em>filterproc=<function defaultfilter at 0x1b129b0></em><big>)</big><a class="reference internal" href="_modules/logfs/fstracer.html#getfsevents"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#logfs.fstracer.getfsevents" title="Permalink to this definition">¶</a></dt>
<dd><p>Launches a program and gets file access events</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
@@ -221,6 +221,13 @@ All dependencies <strong>must</strong> be installed</p>
</dd></dl>
<dl class="method">
+<dt id="package_utils.portage_misc_functions.portage_api.get_deps_for_package_building">
+<tt class="descname">get_deps_for_package_building</tt><big>(</big><em>pkg</em><big>)</big><a class="headerlink" href="#package_utils.portage_misc_functions.portage_api.get_deps_for_package_building" title="Permalink to this definition">¶</a></dt>
+<dd><p>returns buildtime dependencies of current package and
+all runtime dependencies of that buildtime dependencies</p>
+</dd></dl>
+
+<dl class="method">
<dt id="package_utils.portage_misc_functions.portage_api.get_merge_list">
<tt class="descname">get_merge_list</tt><big>(</big><em>emergeargs</em><big>)</big><a class="headerlink" href="#package_utils.portage_misc_functions.portage_api.get_merge_list" title="Permalink to this definition">¶</a></dt>
<dd><p>Gets list of packages that emerge with emergeargs-arguments will merge
@@ -329,7 +336,7 @@ list)</td>
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 20, 2011.
+ Last updated on Aug 21, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/genindex.html b/docs/build/html/genindex.html
index 1889b59..d845fc3 100644
--- a/docs/build/html/genindex.html
+++ b/docs/build/html/genindex.html
@@ -68,35 +68,23 @@
<dd><dl>
<dt><a href="intro.html#cmdoption-autodep--hooklib">autodep command line option</a>, <a href="man.html#cmdoption-autodep--hooklib">[1]</a></dt>
</dl></dd>
+</dl></td>
+ <td style="width: 33%" valign="top"><dl>
<dt>--nocolor, -C</dt>
<dd><dl>
- <dt><a href="man.html#cmdoption-autodep--nocolor">autodep command line option</a></dt>
+ <dt><a href="intro.html#cmdoption-autodep--nocolor">autodep command line option</a>, <a href="man.html#cmdoption-autodep--nocolor">[1]</a></dt>
</dl></dd>
<dt>-b, --block</dt>
<dd><dl>
<dt><a href="intro.html#cmdoption-autodep-b">autodep command line option</a>, <a href="man.html#cmdoption-autodep-b">[1]</a></dt>
</dl></dd>
-</dl></td>
- <td style="width: 33%" valign="top"><dl>
- <dt>-C , --nocolor</dt>
- <dd><dl>
- <dt><a href="intro.html#cmdoption-autodep-C">autodep command line option</a></dt>
- </dl></dd>
- <dt>-f , --files</dt>
- <dd><dl>
- <dt><a href="intro.html#cmdoption-autodep-f">autodep command line option</a></dt>
- </dl></dd>
<dt>-f, --files</dt>
<dd><dl>
- <dt><a href="man.html#cmdoption-autodep-f">autodep command line option</a></dt>
- </dl></dd>
- <dt>-v , --verbose</dt>
- <dd><dl>
- <dt><a href="intro.html#cmdoption-autodep-v">autodep command line option</a></dt>
+ <dt><a href="intro.html#cmdoption-autodep-f">autodep command line option</a>, <a href="man.html#cmdoption-autodep-f">[1]</a></dt>
</dl></dd>
<dt>-v, --verbose</dt>
<dd><dl>
- <dt><a href="man.html#cmdoption-autodep-v">autodep command line option</a></dt>
+ <dt><a href="intro.html#cmdoption-autodep-v">autodep command line option</a>, <a href="man.html#cmdoption-autodep-v">[1]</a></dt>
</dl></dd>
</dl></td>
</tr></table>
@@ -110,13 +98,10 @@
<dt><a href="intro.html#cmdoption-autodep--fusefs">--fusefs</a>, <a href="man.html#cmdoption-autodep--fusefs">[1]</a></dt>
<dt><a href="intro.html#cmdoption-autodep--help">--help, -h</a>, <a href="man.html#cmdoption-autodep--help">[1]</a></dt>
<dt><a href="intro.html#cmdoption-autodep--hooklib">--hooklib</a>, <a href="man.html#cmdoption-autodep--hooklib">[1]</a></dt>
- <dt><a href="man.html#cmdoption-autodep--nocolor">--nocolor, -C</a></dt>
- <dt><a href="intro.html#cmdoption-autodep-C">-C , --nocolor</a></dt>
+ <dt><a href="intro.html#cmdoption-autodep--nocolor">--nocolor, -C</a>, <a href="man.html#cmdoption-autodep--nocolor">[1]</a></dt>
<dt><a href="intro.html#cmdoption-autodep-b">-b, --block</a>, <a href="man.html#cmdoption-autodep-b">[1]</a></dt>
- <dt><a href="intro.html#cmdoption-autodep-f">-f , --files</a></dt>
- <dt><a href="man.html#cmdoption-autodep-f">-f, --files</a></dt>
- <dt><a href="intro.html#cmdoption-autodep-v">-v , --verbose</a></dt>
- <dt><a href="man.html#cmdoption-autodep-v">-v, --verbose</a></dt>
+ <dt><a href="intro.html#cmdoption-autodep-f">-f, --files</a>, <a href="man.html#cmdoption-autodep-f">[1]</a></dt>
+ <dt><a href="intro.html#cmdoption-autodep-v">-v, --verbose</a>, <a href="man.html#cmdoption-autodep-v">[1]</a></dt>
</dl></dd>
</dl></td>
</tr></table>
@@ -128,6 +113,7 @@
<dt><a href="api.html#package_utils.portage_misc_functions.portage_api.get_best_visible_pkg">get_best_visible_pkg() (package_utils.portage_misc_functions.portage_api method)</a></dt>
<dt><a href="api.html#package_utils.portage_misc_functions.portage_api.get_dep">get_dep() (package_utils.portage_misc_functions.portage_api method)</a></dt>
<dt><a href="api.html#package_utils.portage_misc_functions.portage_api.get_deps">get_deps() (package_utils.portage_misc_functions.portage_api method)</a></dt>
+ <dt><a href="api.html#package_utils.portage_misc_functions.portage_api.get_deps_for_package_building">get_deps_for_package_building() (package_utils.portage_misc_functions.portage_api method)</a></dt>
<dt><a href="api.html#package_utils.portage_log_parser.get_list_of_merged_packages">get_list_of_merged_packages() (in module package_utils.portage_log_parser)</a></dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
@@ -200,7 +186,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 20, 2011.
+ Last updated on Aug 21, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/index.html b/docs/build/html/index.html
index 85fe72a..2a05a75 100644
--- a/docs/build/html/index.html
+++ b/docs/build/html/index.html
@@ -136,7 +136,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 20, 2011.
+ Last updated on Aug 21, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/intro.html b/docs/build/html/intro.html
index 18e7294..9c2790b 100644
--- a/docs/build/html/intro.html
+++ b/docs/build/html/intro.html
@@ -55,10 +55,9 @@
<h1>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h1>
<div class="section" id="overview">
<h2>Overview<a class="headerlink" href="#overview" title="Permalink to this headline">¶</a></h2>
-<p>Auto dependency builder is a tool for analysis files accessed during
-building a package. It also can be used for buildtime and runtime dependency
-analysis.</p>
-<p>The tool can block an access to files of defined packages.</p>
+<p>Auto dependency (autodep) builder is a tool for the analysis of accessed files during
+the build of a package. It also can be used for runtime dependencies analysis.</p>
+<p>The tool can trace, log and block access to files of given packages.</p>
<p>It is released under GNU GPL license.</p>
</div>
<div class="section" id="status">
@@ -80,49 +79,49 @@ analysis.</p>
<dl class="cmdoption">
<dt id="cmdoption-autodep--help">
<tt class="descname">--help</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">-h</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep--help" title="Permalink to this definition">¶</a></dt>
-<dd><p>show this help message and exit</p>
+<dd><p>Show this help message and exit.</p>
</dd></dl>
<dl class="cmdoption">
<dt id="cmdoption-autodep-b">
<tt class="descname">-b</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">--block</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep-b" title="Permalink to this definition">¶</a></dt>
-<dd><p>strict mode: deny all access to non-dependency packages</p>
+<dd><p>strict mode: Deny all access to files from non-dependency packages.</p>
</dd></dl>
<dl class="cmdoption">
<dt id="cmdoption-autodep--blockpkgs">
<tt class="descname">--blockpkgs</tt><tt class="descclassname">=PACKAGES</tt><a class="headerlink" href="#cmdoption-autodep--blockpkgs" title="Permalink to this definition">¶</a></dt>
-<dd><p>block an access to files from this packages</p>
+<dd><p>Block access to files from this packages.</p>
</dd></dl>
<dl class="cmdoption">
<dt id="cmdoption-autodep-f">
-<tt class="descname">-f</tt><tt class="descclassname"> </tt><tt class="descclassname">, </tt><tt class="descname">--files</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep-f" title="Permalink to this definition">¶</a></dt>
-<dd><p>show accessed files and not founded files</p>
+<tt class="descname">-f</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">--files</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep-f" title="Permalink to this definition">¶</a></dt>
+<dd><p>Show all files, accessed and missing (not found).</p>
</dd></dl>
<dl class="cmdoption">
<dt id="cmdoption-autodep-v">
-<tt class="descname">-v</tt><tt class="descclassname"> </tt><tt class="descclassname">, </tt><tt class="descname">--verbose</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep-v" title="Permalink to this definition">¶</a></dt>
-<dd><p>show non-important packages, show unknown package and unknown stage</p>
+<tt class="descname">-v</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">--verbose</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep-v" title="Permalink to this definition">¶</a></dt>
+<dd><p>Show non-important packages, unknown packages and unknown building stages.</p>
</dd></dl>
<dl class="cmdoption">
-<dt id="cmdoption-autodep-C">
-<tt class="descname">-C</tt><tt class="descclassname"> </tt><tt class="descclassname">, </tt><tt class="descname">--nocolor</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep-C" title="Permalink to this definition">¶</a></dt>
-<dd><p>don’t output color</p>
+<dt id="cmdoption-autodep--nocolor">
+<tt class="descname">--nocolor</tt><tt class="descclassname"></tt><tt class="descclassname">, </tt><tt class="descname">-C</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep--nocolor" title="Permalink to this definition">¶</a></dt>
+<dd><p>Don’t colorize output</p>
</dd></dl>
<dl class="cmdoption">
<dt id="cmdoption-autodep--hooklib">
<tt class="descname">--hooklib</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep--hooklib" title="Permalink to this definition">¶</a></dt>
-<dd><p>use ld_preload logging approach(default)</p>
+<dd><p>Use LD_PRELOAD logging approach (default).</p>
</dd></dl>
<dl class="cmdoption">
<dt id="cmdoption-autodep--fusefs">
<tt class="descname">--fusefs</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-autodep--fusefs" title="Permalink to this definition">¶</a></dt>
-<dd><p>use fuse logging approach(slow, but reliable)</p>
+<dd><p>Use FUSE logging approach (slow, but reliable).</p>
</dd></dl>
<p>Example: showfsevents.py -b lsof,cowsay emerge bash</p>
@@ -138,7 +137,7 @@ analysis.</p>
<thead valign="bottom">
<tr><th class="head"> </th>
<th class="head">Hooklib</th>
-<th class="head">Fusefs</th>
+<th class="head">FuseFS</th>
</tr>
</thead>
<tbody valign="top">
@@ -146,11 +145,11 @@ analysis.</p>
<td><strong>Any user</strong></td>
<td>Only root</td>
</tr>
-<tr><td>Is approach allows blocking an access to files?</td>
+<tr><td>Does approach allows to block access to files?</td>
<td><strong>YES</strong></td>
<td><strong>YES</strong></td>
</tr>
-<tr><td>Is overhead in performance big?</td>
+<tr><td>Is the overhead in performance noticeable?</td>
<td><strong>NO</strong></td>
<td>YES <a class="footnote-reference" href="#f1" id="id1">[1]</a></td>
</tr>
@@ -159,15 +158,16 @@ analysis.</p>
<td><strong>ALL</strong></td>
</tr>
<tr><td>When is it recomended to use an approach?</td>
-<td>For analysis
+<td>Analysis
of
<em>buildtime</em>
dependencies</td>
-<td>For analysis
+<td>Analysis
of <em>runtime</em>
dependencies</td>
</tr>
-<tr><td>Is any pre-requirements for using an approach?</td>
+<tr><td>Are there any pre-requirements
+for using an approach?</td>
<td><strong>NO</strong></td>
<td>FUSE must be
enabled in
@@ -179,35 +179,34 @@ kernel</td>
<table class="docutils footnote" frame="void" id="f1" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
-<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td>Fuse file system is slower than normal one. Program reads many files
+<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td>FUSE filesystems are slower than a normal one. A Program accesses many files
while launching, so this will take more time than usual.</td></tr>
</tbody>
</table>
<table class="docutils footnote" frame="void" id="f2" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
-<tr><td class="label"><a class="fn-backref" href="#id2">[2]</a></td><td>Loading of dynamic libraries and direct syscalls will not be logged.</td></tr>
+<tr><td class="label"><a class="fn-backref" href="#id2">[2]</a></td><td>Loading of Dynamic libraries and direct syscalls will not be logged.</td></tr>
</tbody>
</table>
</div>
<div class="section" id="examples">
<h2>Examples<a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h2>
-<p class="rubric">1. Get the potential dependencies of a xchat package:</p>
-<div class="highlight-none"><div class="highlight"><pre>autodep emerge xchat
+<p class="rubric">1. Get the potential dependencies for net-irc/xchat:</p>
+<div class="highlight-none"><div class="highlight"><pre>autodep emerge net-irc/xchat
</pre></div>
</div>
-<p class="rubric">2. Get the potential dependencies of a xchat package, blocking
+<p class="rubric">2. Get the potential dependencies for net-irc/xchat, blocking
x11-misc/util-macros package:</p>
-<div class="highlight-none"><div class="highlight"><pre>autodep emerge --block x11-misc/util-macros emerge xchat
+<div class="highlight-none"><div class="highlight"><pre>autodep emerge --blockpkgs x11-misc/util-macros emerge net-irc/xchat
</pre></div>
</div>
-<p class="rubric">3. Get the potential dependencies of a xchat package, and show files
+<p class="rubric">3. Get the potential dependencies for net-irc/xchat, and show files
accessed:</p>
-<div class="highlight-none"><div class="highlight"><pre>autodep --files emerge xchat
+<div class="highlight-none"><div class="highlight"><pre>autodep --files emerge net-irc/xchat
</pre></div>
</div>
-<p class="rubric">4. Get the runtime dependencies of a xchat and show files
-accessed:</p>
+<p class="rubric">4. Get the runtime dependencies of a xchat and show accessed files:</p>
<div class="highlight-none"><div class="highlight"><pre>autodep --fusefs --files xchat
</pre></div>
</div>
@@ -290,7 +289,7 @@ accessed:</p>
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 03, 2011.
+ Last updated on Aug 21, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/man.html b/docs/build/html/man.html
index 2560335..50f5051 100644
--- a/docs/build/html/man.html
+++ b/docs/build/html/man.html
@@ -178,7 +178,7 @@ while launching, so this will take more time than usual.</td></tr>
</div>
<div class="section" id="get-the-potential-dependencies-for-net-irc-xchat-blocking-files-from-x11-misc-util-macros-package">
<h3>Get the potential dependencies for net-irc/xchat, blocking files from x11-misc/util-macros package:<a class="headerlink" href="#get-the-potential-dependencies-for-net-irc-xchat-blocking-files-from-x11-misc-util-macros-package" title="Permalink to this headline">¶</a></h3>
-<p>autodep emerge –block x11-misc/util-macros emerge net-irc/xchat</p>
+<p>autodep emerge –blockpkgs x11-misc/util-macros emerge net-irc/xchat</p>
</div>
<div class="section" id="get-the-potential-dependencies-for-net-irc-xchat-package-and-show-accessed-files">
<h3>Get the potential dependencies for net-irc/xchat package, and show accessed files:<a class="headerlink" href="#get-the-potential-dependencies-for-net-irc-xchat-package-and-show-accessed-files" title="Permalink to this headline">¶</a></h3>
@@ -251,7 +251,7 @@ while launching, so this will take more time than usual.</td></tr>
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 20, 2011.
+ Last updated on Aug 21, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv
index a96802c..1f36ab3 100644
Binary files a/docs/build/html/objects.inv and b/docs/build/html/objects.inv differ
diff --git a/docs/build/html/py-modindex.html b/docs/build/html/py-modindex.html
index e6d78e4..a63c982 100644
--- a/docs/build/html/py-modindex.html
+++ b/docs/build/html/py-modindex.html
@@ -132,7 +132,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 20, 2011.
+ Last updated on Aug 21, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/search.html b/docs/build/html/search.html
index 5ecd73c..980d989 100644
--- a/docs/build/html/search.html
+++ b/docs/build/html/search.html
@@ -96,7 +96,7 @@
</div>
<div class="footer">
© Copyright 2011, Alexander Bersenev.
- Last updated on Aug 20, 2011.
+ Last updated on Aug 21, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js
index a593094..28db011 100644
--- a/docs/build/html/searchindex.js
+++ b/docs/build/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({objects:{"":{"-v":[4,0,1],"-f":[4,0,1],"-C":[2,0,1],"-b":[4,0,1],"--hooklib":[4,0,1],"--fusefs":[4,0,1],"--blockpkgs":[4,0,1],"--nocolor":[4,0,1],"--help":[4,0,1]},"logfs.fstracer":{getfsevents:[1,3,1]},"package_utils.portage_log_parser":{get_list_of_merged_packages:[1,3,1]},logfs:{fstracer:[1,1,1]},"package_utils.portage_utils":{getfilesbypackage:[1,3,1],getpackagesbyfiles:[1,3,1],get_all_packages_files:[1,3,1]},"package_utils.portage_misc_functions":{portage_api:[1,4,1]},"package_utils.portage_misc_functions.portage_api":{get_dep:[1,2,1],get_system_packages_list:[1,2,1],get_best_visible_pkg:[1,2,1],get_deps:[1,2,1],get_merge_list:[1,2,1],parse_emerge_args:[1,2,1]},package_utils:{portage_misc_functions:[1,1,1],portage_utils:[1,1,1],portage_log_parser:[1,1,1]}},terms:{all:[1,2,3,4],code:[],chain:1,queri:3,mnt:3,follow:3,prog_nam:1,showfsev:2,depend:[1,2,3,4],send:3,ebuild:2,program:[1,2,3,4],under:[2,3],sourc:1,string:1,fals:1,util:[2,3,4],candid:1,veri:1,ho
oker:[],tri:3,level:1,list:[1,3],mount:3,defaultfilt:1,slower:[2,4],direct:[2,4],second:1,cost:3,pass:1,further:3,index:2,what:[2,4],compar:3,access:[0,1,2,3,4],version:1,"new":3,net:4,intercept:3,modifi:3,sinc:[1,3],search:[1,2],action:1,chang:3,via:3,packagenam:1,modul:[1,2,3],filenam:1,unix:3,api:[0,1],heurist:3,instal:[0,1,2,3],get_dep:1,from:[1,2,3,4],would:3,memori:1,regist:3,two:1,call:[1,3],usr:3,type:[1,3],more:[2,4],ld_preload:[2,3,4],notic:4,endtim:1,getfilesbypackag:1,must:[1,2,4],lib32:3,err:3,package_util:[0,1],prepar:3,registar:3,dev:3,can:[1,2,3,4],"0x1dbdb90":[],root:[2,4],process:3,registr:[],share:3,indic:[0,2],high:1,unreli:1,portage_log_pars:1,chroot:3,end:[1,3],anoth:3,write:[1,3],how:[0,3],answer:3,instead:[1,3],simpl:3,map:3,alwai:1,after:3,befor:3,blockpkg:[2,4],mai:1,man:3,syscal:[2,4],bind:3,element:1,inform:1,environ:3,allow:[1,2,3,4],rdepend:1,origin:3,help:[2,4],over:3,rootf:3,dynam:[2,3,4],paramet:1,get_best_visible_pkg:1,cowsai:2,main:3,them:3
,"return":[1,3],thei:1,handl:1,auto:[2,4],"0x19e7b18":[],introduct:[0,2],name:[1,3],"0x1dcb938":1,mode:[2,4],each:1,found:[1,2,3,4],domain:3,idea:3,logf:[0,1],connect:3,todo:2,event:[0,1,2,3,4],variabl:3,network:3,miss:4,content:0,got:3,lib64:3,insid:3,believ:3,dictionari:1,ask:3,bash:[1,2],thread:3,launch:[1,2,3,4],get_list_of_merged_packag:1,filter:1,registrar:3,getfsev:1,first:1,oper:1,misc:[2,4],hook:3,open:[1,3],gpl:2,given:4,start:1,unknown:[1,2,3,4],licens:2,system:[1,2,3],messag:[2,3,4],scheme:3,low:1,option:[1,2,4],tool:[2,4],copi:3,postrm:3,pars:1,than:[2,4],portage_util:1,get_merge_list:1,charact:3,bridg:1,pre:[2,4],"function":[1,3],linker:3,argument:1,raw:1,tabl:[0,2],packag:[1,2,3,4],accuraci:3,note:[2,3,4],also:[1,2,3,4],build:[2,3,4],which:1,jail:3,analysi:[0,2,3,4],loggabl:3,trace:4,normal:[2,4],who:[2,4],most:[2,4],buildtim:[2,4],hooklib:[0,1,2,3,4],phase:3,"class":1,don:[2,4],portage_misc_funct:1,doe:[0,3,4],deni:[2,3,4],runtim:[2,3,4],hungri:1,show:[2,4],v
erbos:[2,4],pkg:1,permiss:3,find:1,xml:3,current:1,onli:[2,4],slow:[2,4],activ:2,dep_typ:1,should:1,parse_emerge_arg:1,analys:3,unus:3,variou:1,get:[1,2,4],increas:3,requir:[2,4],enabl:[2,4],"default":[1,2,4],contain:1,userspac:3,shm:3,respond:3,kernel:[2,4],set:1,packet:3,see:3,sec:3,result:3,arg:1,fail:1,best:1,statu:[0,2],behind:3,between:1,"import":[2,4],irc:4,approach:[0,1,2,3,4],kei:1,get_all_packages_fil:1,xchat:[2,4],both:1,protect:3,delimit:3,logic:1,futher:[0,3],mani:[2,4],lsof:2,load:[2,3,4],color:[2,4],overview:[0,2],linux:3,reciev:3,fusef:[0,1,2,3,4],empti:1,implicit:[1,3],much:[],recomend:[2,4],fstracer:[0,1],ani:[1,2,3,4],look:1,stagenam:3,gnu:2,servic:1,defin:2,"while":[2,3,4],behavior:3,error:3,non:[2,4],sock_seqpacket:3,synopsi:4,develop:2,perform:[2,3,4],make:2,belong:1,same:3,read:[1,2,3],document:0,fuse:[2,3,4],user:[2,4],extern:3,portag:[1,3],macro:[2,4],builder:[2,4],exampl:[0,1,2,4],command:[2,4],thi:[1,2,3,4],filesystem:[3,4],usual:[2,3,4],execut:3,c
ut:3,"0x1b2bc80":[],desktop:3,els:[],take:[1,2,3,4],filterproc:1,format:3,libc:3,big:2,recurs:1,success:1,nocolor:[2,4],output:[2,4],page:2,often:3,intern:[0,1,3],successfulli:1,librari:[2,3,4],tmp:3,autodep:[0,2,4],exit:[2,4],overlai:2,proc:3,previou:3,run:[0,2,3],step:3,starttim:1,x11:[2,4],portage_api:1,stage:[1,2,3,4],about:3,socket:3,block:[1,2,3,4],merg:1,log:[1,2,4],wai:3,errno:3,strict:[2,4],includ:3,lot:3,"var":3,overhead:[2,4],fork:3,unexpect:3,tupl:1,atom:1,"true":1,whether:3,otherwis:3,creat:3,dure:[2,4],parser:1,doesn:1,file:[0,1,2,3,4],work:[0,1,3],check:3,emergearg:1,acloc:3,when:[2,3,4],detail:3,field:3,other:3,getpackagesbyfil:1,get_system_packages_list:1,releas:2,directori:3,reliabl:[2,4],descript:4,rule:3,depth:1,emerg:[1,2,4],potenti:[2,4],time:[1,2,3,4],profil:3},objtypes:{"0":"std:option","1":"py:module","2":"py:method","3":"py:function","4":"py:class"},titles:["Autodep’s documentation","API","Introduction","Internals","USER COMMANDS"],objnames:{"
0":"option","1":"Python module","2":"Python method","3":"Python function","4":"Python class"},filenames:["index","api","intro","architecture","man"]})
\ No newline at end of file
+Search.setIndex({objects:{"":{"-v":[4,0,1],"-f":[4,0,1],"-b":[4,0,1],"--hooklib":[4,0,1],"--fusefs":[4,0,1],"--blockpkgs":[4,0,1],"--nocolor":[4,0,1],"--help":[4,0,1]},"package_utils.portage_misc_functions":{portage_api:[1,4,1]},"package_utils.portage_log_parser":{get_list_of_merged_packages:[1,3,1]},logfs:{fstracer:[1,1,1]},"package_utils.portage_utils":{getfilesbypackage:[1,3,1],getpackagesbyfiles:[1,3,1],get_all_packages_files:[1,3,1]},"logfs.fstracer":{getfsevents:[1,3,1]},"package_utils.portage_misc_functions.portage_api":{get_dep:[1,2,1],get_system_packages_list:[1,2,1],get_best_visible_pkg:[1,2,1],get_deps:[1,2,1],get_merge_list:[1,2,1],get_deps_for_package_building:[1,2,1],parse_emerge_args:[1,2,1]},package_utils:{portage_misc_functions:[1,1,1],portage_utils:[1,1,1],portage_log_parser:[1,1,1]}},terms:{all:[1,2,3,4],code:[],chain:1,queri:3,mnt:3,follow:3,prog_nam:1,showfsev:2,depend:[1,2,3,4],send:3,ebuild:2,program:[1,2,3,4],under:[2,3],sourc:1,string:1,fals:1,util:[
2,3,4],candid:1,veri:1,lib64:3,tri:3,level:1,list:[1,3],mount:3,defaultfilt:1,slower:[2,4],direct:[2,4],second:1,cost:3,pass:1,further:3,index:2,what:[2,4],compar:3,access:[0,1,2,3,4],version:1,"new":3,net:[2,4],"0x1b129b0":1,intercept:3,modifi:3,sinc:[1,3],search:[1,2],action:1,chang:3,via:3,packagenam:1,modul:[1,2,3],filenam:1,unix:3,api:[0,1],heurist:3,instal:[0,1,2,3],get_dep:1,from:[1,2,3,4],would:3,memori:1,regist:3,two:1,call:[1,3],usr:3,type:[1,3],more:[2,4],ld_preload:[2,3,4],notic:[2,4],endtim:1,getfilesbypackag:1,must:[1,2,4],lib32:3,err:3,package_util:[0,1],prepar:3,launch:[1,2,3,4],dev:3,can:[1,2,3,4],"0x1dbdb90":[],root:[2,4],process:3,registr:[],share:3,indic:[0,2],high:1,unreli:1,filter:1,chroot:3,end:[1,3],anoth:3,write:[1,3],how:[0,3],answer:3,instead:[1,3],simpl:3,map:3,alwai:1,after:3,befor:3,blockpkg:[2,4],mai:1,man:3,syscal:[2,4],bind:3,element:1,inform:1,jail:3,allow:[1,2,3,4],rdepend:1,origin:3,help:[2,4],over:3,rootf:3,dynam:[2,3,4],paramet:1,get_bes
t_visible_pkg:1,cowsai:2,main:3,them:3,"return":[1,3],thei:1,handl:1,auto:[2,4],"0x19e7b18":[],introduct:[0,2],name:[1,3],"0x1dcb938":[],mode:[2,4],each:1,found:[1,2,3,4],domain:3,idea:3,logf:[0,1],connect:3,todo:2,event:[0,1,2,3,4],variabl:3,network:3,miss:[2,4],content:0,got:3,hooker:[],insid:3,believ:3,dictionari:1,ask:3,bash:[1,2],thread:3,registar:3,get_list_of_merged_packag:1,portage_log_pars:1,registrar:3,getfsev:1,first:1,oper:1,misc:[2,4],hook:3,open:[1,3],gpl:2,given:[2,4],strict:[2,4],unknown:[1,2,3,4],licens:2,system:[1,3],messag:[2,3,4],scheme:3,low:1,option:[1,2,4],tool:[2,4],copi:3,postrm:3,pars:1,portag:[1,3],than:[2,4],portage_util:1,get_merge_list:1,charact:3,bridg:1,pre:[2,4],"function":[1,3],linker:3,argument:1,raw:1,tabl:[0,2],packag:[1,2,3,4],accuraci:3,note:[2,3,4],also:[1,2,3,4],build:[2,3,4],which:1,environ:3,analysi:[0,2,3,4],loggabl:3,trace:[2,4],normal:[2,4],previou:3,most:[2,4],buildtim:[1,2,4],hooklib:[0,1,2,3,4],phase:3,"class":1,don:[2,4],port
age_misc_funct:1,doe:[0,2,3,4],deni:[2,3,4],runtim:[1,2,3,4],hungri:1,show:[2,4],verbos:[2,4],pkg:1,permiss:3,find:1,xml:3,current:1,onli:[2,4],slow:[2,4],activ:2,dep_typ:1,should:1,parse_emerge_arg:1,analys:3,unus:3,variou:1,get:[1,2,4],increas:3,requir:[2,4],enabl:[2,4],whether:3,contain:1,userspac:3,shm:3,respond:3,kernel:[2,4],set:1,packet:3,see:3,sec:3,result:3,arg:1,fail:1,best:1,statu:[0,2],behind:3,between:1,"import":[2,4],irc:[2,4],approach:[0,1,2,3,4],kei:1,get_all_packages_fil:1,xchat:[2,4],both:1,protect:3,delimit:3,logic:1,futher:[0,3],mani:[2,4],lsof:2,load:[2,3,4],color:[2,4],overview:[0,2],linux:3,reciev:3,fusef:[0,1,2,3,4],empti:1,implicit:[1,3],much:[],recomend:[2,4],fstracer:[0,1],ani:[1,2,3,4],look:1,stagenam:3,gnu:2,servic:1,defin:[],"while":[2,3,4],behavior:3,error:3,non:[2,4],sock_seqpacket:3,synopsi:4,develop:2,perform:[2,3,4],make:2,belong:1,same:3,read:[1,3],document:0,fuse:[2,3,4],user:[2,4],extern:3,get_deps_for_package_build:1,macro:[2,4],builder
:[2,4],exampl:[0,1,2,4],command:[2,4],thi:[1,2,3,4],filesystem:[2,3,4],usual:[2,3,4],execut:3,cut:3,"0x1b2bc80":[],desktop:3,els:[],take:[1,2,3,4],filterproc:1,format:3,libc:3,big:[],recurs:1,success:1,nocolor:[2,4],output:[2,4],page:2,often:3,intern:[0,1,3],successfulli:1,librari:[2,3,4],tmp:3,autodep:[0,2,4],exit:[2,4],overlai:2,proc:3,who:[2,4],run:[0,2,3],step:3,starttim:1,x11:[2,4],portage_api:1,stage:[1,2,3,4],about:3,socket:3,block:[1,2,3,4],merg:1,log:[1,2,4],wai:3,errno:3,start:1,includ:3,lot:3,"var":3,overhead:[2,4],fork:3,unexpect:3,tupl:1,atom:1,"true":1,"default":[1,2,4],otherwis:3,creat:3,dure:[2,4],parser:1,doesn:1,file:[0,1,2,3,4],work:[0,1,3],check:3,emergearg:1,acloc:3,when:[2,3,4],detail:3,field:3,other:3,getpackagesbyfil:1,get_system_packages_list:1,releas:2,directori:3,reliabl:[2,4],descript:4,rule:3,depth:1,emerg:[1,2,4],potenti:[2,4],time:[1,2,3,4],profil:3},objtypes:{"0":"std:option","1":"py:module","2":"py:method","3":"py:function","4":"py:class"},ti
tles:["Autodep’s documentation","API","Introduction","Internals","USER COMMANDS"],objnames:{"0":"option","1":"Python module","2":"Python method","3":"Python function","4":"Python class"},filenames:["index","api","intro","architecture","man"]})
\ No newline at end of file
diff --git a/docs/build/man/autodep.1 b/docs/build/man/autodep.1
index 202dd11..78df98a 100644
--- a/docs/build/man/autodep.1
+++ b/docs/build/man/autodep.1
@@ -1,4 +1,4 @@
-.TH "AUTODEP" "1" "August 20, 2011" "0.1" "Autodep"
+.TH "AUTODEP" "1" "August 21, 2011" "0.1" "Autodep"
.SH NAME
autodep \- auto dependency builder for Gentoo
.
@@ -161,7 +161,7 @@ Loading of Dynamic libraries and direct syscalls will not be logged.
autodep emerge net\-irc/xchat
.SS Get the potential dependencies for net\-irc/xchat, blocking files from x11\-misc/util\-macros package:
.sp
-autodep emerge \-\-block x11\-misc/util\-macros emerge net\-irc/xchat
+autodep emerge \-\-blockpkgs x11\-misc/util\-macros emerge net\-irc/xchat
.SS Get the potential dependencies for net\-irc/xchat package, and show accessed files:
.sp
autodep \-\-files emerge net\-irc/xchat
diff --git a/docs/source/intro.rst b/docs/source/intro.rst
index 82278ac..400a668 100644
--- a/docs/source/intro.rst
+++ b/docs/source/intro.rst
@@ -4,11 +4,10 @@ Introduction
Overview
===================================
-Auto dependency builder is a tool for analysis files accessed during
-building a package. It also can be used for buildtime and runtime dependency
-analysis.
+Auto dependency (autodep) builder is a tool for the analysis of accessed files during
+the build of a package. It also can be used for runtime dependencies analysis.
-The tool can block an access to files of defined packages.
+The tool can trace, log and block access to files of given packages.
It is released under GNU GPL license.
@@ -32,35 +31,31 @@ Running
.. cmdoption:: --help, -h
- show this help message and exit
+ Show this help message and exit.
.. cmdoption:: -b, --block
- strict mode: deny all access to non-dependency packages
+ strict mode: Deny all access to files from non-dependency packages.
.. cmdoption:: --blockpkgs=PACKAGES
- block an access to files from this packages
+ Block access to files from this packages.
-.. cmdoption:: -f , --files
+.. cmdoption:: -f, --files
- show accessed files and not founded files
+ Show all files, accessed and missing (not found).
+.. cmdoption:: -v, --verbose
-.. cmdoption:: -v , --verbose
-
- show non-important packages, show unknown package and unknown stage
-
-.. cmdoption:: -C , --nocolor
-
- don't output color
+ Show non-important packages, unknown packages and unknown building stages.
+.. cmdoption:: --nocolor, -C
+ Don't colorize output
.. cmdoption:: --hooklib
- use ld_preload logging approach(default)
-
+ Use LD_PRELOAD logging approach (default).
.. cmdoption:: --fusefs
- use fuse logging approach(slow, but reliable)
+ Use FUSE logging approach (slow, but reliable).
Example: showfsevents.py -b lsof,cowsay emerge bash
@@ -68,56 +63,55 @@ Hooklib vs Fusefs
===================================
+------------------------------------------------+-------------+---------------+
-| | Hooklib | Fusefs |
+| | Hooklib | FuseFS |
+================================================+=============+===============+
| Who can use this approach? | **Any user**| Only root |
+------------------------------------------------+-------------+---------------+
-| Is approach allows blocking an access to files?| **YES** | **YES** |
+| Does approach allows to block access to files? | **YES** | **YES** |
+------------------------------------------------+-------------+---------------+
-| Is overhead in performance big? | **NO** | YES [#f1]_ |
+| Is the overhead in performance noticeable? | **NO** | YES [#f1]_ |
+------------------------------------------------+-------------+---------------+
| What events are logged? | Most [#f2]_| **ALL** |
+------------------------------------------------+-------------+---------------+
-| When is it recomended to use an approach? | For analysis| For analysis |
+| When is it recomended to use an approach? | Analysis | Analysis |
| | of | of *runtime* |
| | *buildtime* | dependencies |
| | dependencies| |
+------------------------------------------------+-------------+---------------+
-| Is any pre-requirements for using an approach? | **NO** | FUSE must be |
-| | | enabled in |
+| Are there any pre-requirements | **NO** | FUSE must be |
+| for using an approach? | | enabled in |
| | | kernel |
+------------------------------------------------+-------------+---------------+
.. rubric:: Notes
-.. [#f1] Fuse file system is slower than normal one. Program reads many files
+.. [#f1] FUSE filesystems are slower than a normal one. A Program accesses many files
while launching, so this will take more time than usual.
-.. [#f2] Loading of dynamic libraries and direct syscalls will not be logged.
+.. [#f2] Loading of Dynamic libraries and direct syscalls will not be logged.
Examples
===================================
-.. rubric:: 1. Get the potential dependencies of a xchat package:
+.. rubric:: 1. Get the potential dependencies for net-irc/xchat:
.. code-block:: none
- autodep emerge xchat
+ autodep emerge net-irc/xchat
-.. rubric:: 2. Get the potential dependencies of a xchat package, blocking
+.. rubric:: 2. Get the potential dependencies for net-irc/xchat, blocking
x11-misc/util-macros package:
.. code-block:: none
- autodep emerge --block x11-misc/util-macros emerge xchat
+ autodep emerge --blockpkgs x11-misc/util-macros emerge net-irc/xchat
-.. rubric:: 3. Get the potential dependencies of a xchat package, and show files
+.. rubric:: 3. Get the potential dependencies for net-irc/xchat, and show files
accessed:
.. code-block:: none
- autodep --files emerge xchat
+ autodep --files emerge net-irc/xchat
-.. rubric:: 4. Get the runtime dependencies of a xchat and show files
- accessed:
+.. rubric:: 4. Get the runtime dependencies of a xchat and show accessed files:
.. code-block:: none
diff --git a/docs/source/man.rst b/docs/source/man.rst
index bf5ad86..fa97db6 100644
--- a/docs/source/man.rst
+++ b/docs/source/man.rst
@@ -87,7 +87,7 @@ autodep emerge net-irc/xchat
Get the potential dependencies for net-irc/xchat, blocking files from x11-misc/util-macros package:
---------------------------------------------------------------------------------------------------
-autodep emerge --block x11-misc/util-macros emerge net-irc/xchat
+autodep emerge --blockpkgs x11-misc/util-macros emerge net-irc/xchat
Get the potential dependencies for net-irc/xchat package, and show accessed files:
----------------------------------------------------------------------------------
diff --git a/src/autodep/autodep b/src/autodep/autodep
index 034c47a..d607ed6 100755
--- a/src/autodep/autodep
+++ b/src/autodep/autodep
@@ -28,7 +28,7 @@ def parse_args():
args_parser.add_option("-v","--verbose", action="store_true", dest="verbose",
default=False, help="Show non-important packages, "
"unknown package and unknown stage")
- args_parser.add_option("-n","--numfiles",action="store", type="string",
+ args_parser.add_option("-n","--numfiles",action="store", type="int",
dest="numfiles",
default=10,
help="Maximum number of files from each package to show (default is 10)")
@@ -160,7 +160,7 @@ def get_filter_function(options,args,system_packages,portage_api):
depslist=list(portage_api.get_deps_for_package_building(pkg))
allowedpkgs+=depslist
# manually add all python interpreters to this list
- allowedpkgs+=["python"]
+ allowedpkgs+=["dev-lang/python"]
else:
program_path=runtime_vars["full_path"]
file_to_package=portage_utils.getpackagesbyfiles([program_path])
@@ -172,7 +172,7 @@ def get_filter_function(options,args,system_packages,portage_api):
portage_api.get_deps(file_to_package[program_path],["RDEPEND"]))
allowedpkgs+=depslist
- print allowedpkgs
+ #print allowedpkgs
# remember the allowedpkgs in deps_all. It is bad to do it here.
runtime_vars["deps_all"]=allowedpkgs
@@ -217,7 +217,17 @@ if runtime_vars["is_emerge"]:
portage_api.get_dep(pkg,["DEPEND"]))
runtime_vars["deps_portage"]=portage_api.get_dep('portage',["RDEPEND"])
-
+else:
+ if runtime_vars["deps_all"]==[]:
+ # we mostly repeating block logic here
+ program_path=runtime_vars["full_path"]
+ file_to_package=portage_utils.getpackagesbyfiles([program_path])
+ if program_path not in file_to_package:
+ print "Failed to find a package for %s" % program_path
+ else:
+ depslist=[file_to_package[program_path]]+list(
+ portage_api.get_deps(file_to_package[program_path],["RDEPEND"]))
+ runtime_vars["deps_all"]=depslist
#pkgs=portage_log_parser.get_list_of_merged_packages(
# runtime_vars["starttime"],runtime_vars["endtime"]
@@ -379,7 +389,7 @@ for package in sorted(packagesinfo):
if options.show_files:
continue
elif filescounter>options.numfiles:
- print " ... and %d more ...\n" % (len(filenames)-10)
+ print " ... and %d more ...\n" % (len(filenames)-options.numfiles)
break
# print not founded files with stages
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2011-08-21 10:01 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-07-25 13:52 [gentoo-commits] proj/autodep:master commit in: docs/build/html/_sources/, docs/build/html/_modules/package_utils/, Александр Берсенев
-- strict thread matches above, loose matches on Subject: below --
2011-08-02 20:36 Александр Берсенев
2011-08-16 6:31 Александр Берсенев
2011-08-20 11:25 Александр Берсенев
2011-08-21 10:01 Александр Берсенев
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox