PK1eC'$""#facehugger-latest/installation.html Installation — facehugger 0.1.5 documentation

Installation

At the command line:

$ easy_install facehugger

Or, if you have virtualenvwrapper installed:

$ mkvirtualenv facehugger
$ pip install facehugger
Read the Docs v: latest
Versions
latest
Downloads
PDF
HTML
Epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.
PK1eCۘ.""facehugger-latest/history.html History — facehugger 0.1.5 documentation

History

0.1.0 (2013-10-30)

  • First release on PyPI.

0.1.3 (2013-10-30)

  • First working release.

0.1.4 (2013-10-30)

  • Updated docs.
Read the Docs v: latest
Versions
latest
Downloads
PDF
HTML
Epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.
PK1eCbCw..facehugger-latest/readme.html facehugger — facehugger 0.1.5 documentation

facehugger

https://badge.fury.io/py/facehugger.png https://travis-ci.org/dnmellen/facehugger.png?branch=master https://coveralls.io/repos/dnmellen/facehugger/badge.png https://pypip.in/d/facehugger/badge.png

Extracts faces from an image

https://raw.github.com/dnmellen/facehugger/master/demo.jpg

Requirements

# System requirements for Ubuntu
sudo apt-get install ipython python-opencv python-scipy python-numpy python-pygame python-setuptools python-pip

Features

  • Extracts faces and saves the cropped images to a folder
  • You can use it in your app as a library

Quickstart

$ sudo pip install facehugger
$ facehugger -i /path/to/image_with_faces.jpg -o /path/to/dir_to_save_faces

Why this name?

http://img6.joyreactor.com/pics/post/gif-Alien-Facehugger-618166.gif

Did you like it?

gittip
Read the Docs v: latest
Versions
latest
Downloads
PDF
HTML
Epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.
PK1eC4&&facehugger-latest/usage.html Usage — facehugger 0.1.5 documentation

Usage

To use facehugger in a project:

from facehugger import get_faces

faces = get_faces('/some/path/to_image.jpg')

To use facehugger from command line:

$ sudo pip install facehugger
$ facehugger -i /path/to/image_with_faces.jpg -o /path/to/dir_to_save_faces

Rescaling resulting face crops

New in version 0.1.5: Added –rescale-face-crop parameter that receives an integer representing percentage to scale up the crop

$ facehugger -i /path/to/image_with_faces.jpg -o /path/to/dir_to_save_faces --rescale-face-crop 20
Read the Docs v: latest
Versions
latest
Downloads
PDF
HTML
Epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.
PK1eC6\##facehugger-latest/authors.html Credits — facehugger 0.1.5 documentation

Credits

Development Lead

Contributors

None yet. Why not be the first?

Read the Docs v: latest
Versions
latest
Downloads
PDF
HTML
Epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.
PK1eCIVU facehugger-latest/searchindex.jsSearch.setIndex({objects:{},terms:{oper:[],all:[],code:[],help:[],just:[],whoever:[],when:[],offici:[],through:[],file:[],yet:[],feedback:[],web:[],explain:[],littl:[],articl:[],blog:[],opencv:[],add:[],folder:[],save:[],might:[],easier:[],them:[],scipi:[],everi:[],contribut:[],thei:[],get:[],python:[],pypi:[],repo:[],pull_request:[],report:[],bit:[],now:[],requir:[],like:[],rtfd:[],name:[],anyth:[],did:[],troubleshoot:[],list:[],integ:[],navarro:[],pygam:[],flake8:[],page:[],to_imag:[],pleas:[],set:[],some:[],crop:[],result:[],pass:[],extract:[],best:[],gmail:[],even:[],index:[],scale:[],lead:[],open:[],content:[],version:[],"new":[],paramet:[],reproduc:[],run:[],appreci:[],usag:[],given:[],free:[],step:[],here:[],ubuntu:[],put:[],org:[],post:[],bash:[],about:[],greatli:[],could:[],keep:[],credit:[],mani:[],implement:[],narrow:[],com:[],fix:[],block:[],first:[],origin:[],softwar:[],volunt:[],rescal:[],guidelin:[],app:[],easy_instal:[],apt:[],get_fac:[],releas:[],done:[],send:[],path:[],contributor:[],instal:[],should:[],assum:[],your:[],quickstart:[],tox:[],git:[],from:[],wai:[],would:[],support:[],numpi:[],system:[],submit:[],why:[],websit:[],start:[],includ:[],scope:[],type:[],more:[],fork:[],test_facehugg:[],facehugg:[],travi:[],imag:[],copi:[],setuptool:[],search:[],part:[],indic:[],checkout:[],rst:[],line:[],bug:[],simplecv:[],your_name_her:[],pull:[],none:[],rememb:[],look:[],possibl:[],whether:[],bugfix:[],setup:[],work:[],histori:[],project:[],mkvirtualenv:[],can:[],"import":[],meet:[],modul:[],local:[],"function":[],featur:[],virtualenvwrapp:[],creat:[],readi:[],descript:[],sudo:[],readm:[],ani:[],jpg:[],repres:[],tag:[],have:[],tabl:[],pip:[],unittest:[],check:[],diego:[],develop:[],welcom:[],want:[],receiv:[],make:[],tip:[],detail:[],write:[],how:[],other:[],librari:[],branch:[],test:[],you:[],document:[],updat:[],virtualenv:[],sure:[],http:[],dnmellen:[],alwai:[],clone:[],licens:[],docstr:[],driven:[],befor:[],commit:[],bsd:[],subset:[],chang:[],percentag:[],github:[],doc:[],request:[],dir_to_save_fac:[],face:[],issu:[],mellen:[],command:[],thi:[],push:[],image_with_fac:[],ipython:[],propos:[]},objtypes:{},titles:[],objnames:{},filenames:[]})PK1eCusfacehugger-latest/search.html Search — facehugger 0.1.5 documentation

Read the Docs v: latest
Versions
latest
Downloads
PDF
HTML
Epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.
PK1eCfacehugger-latest/.buildinfo# 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: 3cbf9bbe6f75da640ff65644ac153a8f tags: fbb0d17656682115ca4d033fb2f83ba1 PK1eC!¸366#facehugger-latest/contributing.html Contributing — facehugger 0.1.5 documentation

Contributing

Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given.

You can contribute in many ways:

Types of Contributions

Report Bugs

Report bugs at https://github.com/dnmellen/facehugger/issues.

If you are reporting a bug, please include:

  • Your operating system name and version.
  • Any details about your local setup that might be helpful in troubleshooting.
  • Detailed steps to reproduce the bug.

Fix Bugs

Look through the GitHub issues for bugs. Anything tagged with “bug” is open to whoever wants to implement it.

Implement Features

Look through the GitHub issues for features. Anything tagged with “feature” is open to whoever wants to implement it.

Write Documentation

facehugger could always use more documentation, whether as part of the official facehugger docs, in docstrings, or even on the web in blog posts, articles, and such.

Submit Feedback

The best way to send feedback is to file an issue at https://github.com/dnmellen/facehugger/issues.

If you are proposing a feature:

  • Explain in detail how it would work.
  • Keep the scope as narrow as possible, to make it easier to implement.
  • Remember that this is a volunteer-driven project, and that contributions are welcome :)

Get Started!

Ready to contribute? Here’s how to set up facehugger for local development.

  1. Fork the facehugger repo on GitHub.

  2. Clone your fork locally:

    $ git clone git@github.com:your_name_here/facehugger.git
  3. Install your local copy into a virtualenv. Assuming you have virtualenvwrapper installed, this is how you set up your fork for local development:

    $ mkvirtualenv facehugger
    $ cd facehugger/
    $ python setup.py develop
  4. Create a branch for local development:

    $ git checkout -b name-of-your-bugfix-or-feature
Now you can make your changes locally.

5. When you’re done making changes, check that your changes pass flake8 and the tests, including testing other Python versions with tox:

  $ flake8 facehugger tests
        $ python setup.py test
  $ tox

To get flake8 and tox, just pip install them into your virtualenv.
  1. Commit your changes and push your branch to GitHub:

    $ git add .
    $ git commit -m "Your detailed description of your changes."
    $ git push origin name-of-your-bugfix-or-feature
  2. Submit a pull request through the GitHub website.

Pull Request Guidelines

Before you submit a pull request, check that it meets these guidelines:

  1. The pull request should include tests.
  2. If the pull request adds functionality, the docs should be updated. Put your new functionality into a function with a docstring, and add the feature to the list in README.rst.
  3. The pull request should work for Python 2.7. Check https://travis-ci.org/dnmellen/facehugger/pull_requests and make sure that the tests pass for all supported Python versions.

Tips

To run a subset of tests:

$ python -m unittest tests.test_facehugger
Read the Docs v: latest
Versions
latest
Downloads
PDF
HTML
Epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.
PK1eCRAAfacehugger-latest/genindex.html Index — facehugger 0.1.5 documentation

Index

Read the Docs v: latest
Versions
latest
Downloads
PDF
HTML
Epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.
PK1eCȆ:facehugger-latest/objects.inv# Sphinx inventory version 2 # Project: facehugger # Version: 0.1.5 # The remainder of this file is compressed using zlib. xOKIP(.IILJQ5T(ͅJe(+槔*xShBu@&%g*AC$r1PK1eC%*,*,facehugger-latest/index.html Welcome to facehugger’s documentation! — facehugger 0.1.5 documentation

Indices and tables

Read the Docs v: latest
Versions
latest
Downloads
PDF
HTML
Epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.
PK1eCV*NN0facehugger-latest/.doctrees/contributing.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xwrite documentationqNX report bugsqNXtypes of contributionsqNXpull request guidelinesq NX contributingq NXfix bugsq NX get started!q NXsubmit feedbackq NXtipsqNXimplement featuresqNuUsubstitution_defsq}qUparse_messagesq]qcdocutils.nodes system_message q)q}q(U rawsourceqUUparentqcdocutils.nodes section q)q}q(hUhh)q}q(hUhhUsourceqcdocutils.nodes reprunicode qX../CONTRIBUTING.rstq q!}q"bUtagnameq#Usectionq$U attributesq%}q&(Udupnamesq']Uclassesq(]Ubackrefsq)]Uidsq*]q+U contributingq,aUnamesq-]q.h auUlineq/KUdocumentq0hUchildrenq1]q2(cdocutils.nodes title q3)q4}q5(hX Contributingq6hhhh!h#Utitleq7h%}q8(h']h(]h)]h*]h-]uh/Kh0hh1]q9cdocutils.nodes Text q:X Contributingq;q<}q=(hh6hh4ubaubcdocutils.nodes paragraph q>)q?}q@(hXuContributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given.qAhhhh!h#U paragraphqBh%}qC(h']h(]h)]h*]h-]uh/Kh0hh1]qDh:XuContributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given.qEqF}qG(hhAhh?ubaubh>)qH}qI(hX You can contribute in many ways:qJhhhh!h#hBh%}qK(h']h(]h)]h*]h-]uh/Kh0hh1]qLh:X You can contribute in many ways:qMqN}qO(hhJhhHubaubh)qP}qQ(hUhhhh!h#h$h%}qR(h']h(]h)]h*]qSUtypes-of-contributionsqTah-]qUhauh/K h0hh1]qV(h3)qW}qX(hXTypes of ContributionsqYhhPhh!h#h7h%}qZ(h']h(]h)]h*]h-]uh/K h0hh1]q[h:XTypes of Contributionsq\q]}q^(hhYhhWubaubh)q_}q`(hUhhPhh!h#h$h%}qa(h']h(]h)]h*]qbU report-bugsqcah-]qdhauh/Kh0hh1]qe(h3)qf}qg(hX Report Bugsqhhh_hh!h#h7h%}qi(h']h(]h)]h*]h-]uh/Kh0hh1]qjh:X Report Bugsqkql}qm(hhhhhfubaubh>)qn}qo(hX=Report bugs at https://github.com/dnmellen/facehugger/issues.qphh_hh!h#hBh%}qq(h']h(]h)]h*]h-]uh/Kh0hh1]qr(h:XReport bugs at qsqt}qu(hXReport bugs at hhnubcdocutils.nodes reference qv)qw}qx(hX-https://github.com/dnmellen/facehugger/issuesqyh%}qz(Urefurihyh*]h)]h']h(]h-]uhhnh1]q{h:X-https://github.com/dnmellen/facehugger/issuesq|q}}q~(hUhhwubah#U referencequbh:X.q}q(hX.hhnubeubh>)q}q(hX+If you are reporting a bug, please include:qhh_hh!h#hBh%}q(h']h(]h)]h*]h-]uh/Kh0hh1]qh:X+If you are reporting a bug, please include:qq}q(hhhhubaubcdocutils.nodes bullet_list q)q}q(hUhh_hh!h#U bullet_listqh%}q(UbulletqX*h*]h)]h']h(]h-]uh/Kh0hh1]q(cdocutils.nodes list_item q)q}q(hX'Your operating system name and version.qhhhh!h#U list_itemqh%}q(h']h(]h)]h*]h-]uh/Nh0hh1]qh>)q}q(hhhhhh!h#hBh%}q(h']h(]h)]h*]h-]uh/Kh1]qh:X'Your operating system name and version.qq}q(hhhhubaubaubh)q}q(hXLAny details about your local setup that might be helpful in troubleshooting.qhhhh!h#hh%}q(h']h(]h)]h*]h-]uh/Nh0hh1]qh>)q}q(hhhhhh!h#hBh%}q(h']h(]h)]h*]h-]uh/Kh1]qh:XLAny details about your local setup that might be helpful in troubleshooting.qq}q(hhhhubaubaubh)q}q(hX%Detailed steps to reproduce the bug. hhhh!h#hh%}q(h']h(]h)]h*]h-]uh/Nh0hh1]qh>)q}q(hX$Detailed steps to reproduce the bug.qhhhh!h#hBh%}q(h']h(]h)]h*]h-]uh/Kh1]qh:X$Detailed steps to reproduce the bug.qq}q(hhhhubaubaubeubeubh)q}q(hUhhPhh!h#h$h%}q(h']h(]h)]h*]qUfix-bugsqah-]qh auh/Kh0hh1]q(h3)q}q(hXFix Bugsqhhhh!h#h7h%}q(h']h(]h)]h*]h-]uh/Kh0hh1]qh:XFix BugsqÅq}q(hhhhubaubh>)q}q(hXmLook through the GitHub issues for bugs. Anything tagged with "bug" is open to whoever wants to implement it.qhhhh!h#hBh%}q(h']h(]h)]h*]h-]uh/Kh0hh1]qh:XmLook through the GitHub issues for bugs. Anything tagged with "bug" is open to whoever wants to implement it.q˅q}q(hhhhubaubeubh)q}q(hUhhPhh!h#h$h%}q(h']h(]h)]h*]qUimplement-featuresqah-]qhauh/Kh0hh1]q(h3)q}q(hXImplement Featuresqhhhh!h#h7h%}q(h']h(]h)]h*]h-]uh/Kh0hh1]qh:XImplement Featuresqڅq}q(hhhhubaubh>)q}q(hXuLook through the GitHub issues for features. Anything tagged with "feature" is open to whoever wants to implement it.qhhhh!h#hBh%}q(h']h(]h)]h*]h-]uh/K!h0hh1]qh:XuLook through the GitHub issues for features. Anything tagged with "feature" is open to whoever wants to implement it.q⅁q}q(hhhhubaubeubh)q}q(hUhhPhh!h#h$h%}q(h']h(]h)]h*]qUwrite-documentationqah-]qhauh/K%h0hh1]q(h3)q}q(hXWrite Documentationqhhhh!h#h7h%}q(h']h(]h)]h*]h-]uh/K%h0hh1]qh:XWrite Documentationqq}q(hhhhubaubh>)q}q(hXfacehugger could always use more documentation, whether as part of the official facehugger docs, in docstrings, or even on the web in blog posts, articles, and such.qhhhh!h#hBh%}q(h']h(]h)]h*]h-]uh/K'h0hh1]qh:Xfacehugger could always use more documentation, whether as part of the official facehugger docs, in docstrings, or even on the web in blog posts, articles, and such.qq}q(hhhhubaubeubh)q}q(hUhhPhh!h#h$h%}q(h']h(]h)]h*]qUsubmit-feedbackrah-]rh auh/K,h0hh1]r(h3)r}r(hXSubmit Feedbackrhhhh!h#h7h%}r(h']h(]h)]h*]h-]uh/K,h0hh1]rh:XSubmit Feedbackrr }r (hjhjubaubh>)r }r (hXcThe best way to send feedback is to file an issue at https://github.com/dnmellen/facehugger/issues.r hhhh!h#hBh%}r(h']h(]h)]h*]h-]uh/K.h0hh1]r(h:X5The best way to send feedback is to file an issue at rr}r(hX5The best way to send feedback is to file an issue at hj ubhv)r}r(hX-https://github.com/dnmellen/facehugger/issuesrh%}r(Urefurijh*]h)]h']h(]h-]uhj h1]rh:X-https://github.com/dnmellen/facehugger/issuesrr}r(hUhjubah#hubh:X.r}r(hX.hj ubeubh>)r}r(hXIf you are proposing a feature:rhhhh!h#hBh%}r (h']h(]h)]h*]h-]uh/K0h0hh1]r!h:XIf you are proposing a feature:r"r#}r$(hjhjubaubh)r%}r&(hUhhhh!h#hh%}r'(hX*h*]h)]h']h(]h-]uh/K2h0hh1]r((h)r)}r*(hX$Explain in detail how it would work.r+hj%hh!h#hh%}r,(h']h(]h)]h*]h-]uh/Nh0hh1]r-h>)r.}r/(hj+hj)hh!h#hBh%}r0(h']h(]h)]h*]h-]uh/K2h1]r1h:X$Explain in detail how it would work.r2r3}r4(hj+hj.ubaubaubh)r5}r6(hXEKeep the scope as narrow as possible, to make it easier to implement.r7hj%hh!h#hh%}r8(h']h(]h)]h*]h-]uh/Nh0hh1]r9h>)r:}r;(hj7hj5hh!h#hBh%}r<(h']h(]h)]h*]h-]uh/K3h1]r=h:XEKeep the scope as narrow as possible, to make it easier to implement.r>r?}r@(hj7hj:ubaubaubh)rA}rB(hXXRemember that this is a volunteer-driven project, and that contributions are welcome :) hj%hh!h#hh%}rC(h']h(]h)]h*]h-]uh/Nh0hh1]rDh>)rE}rF(hXWRemember that this is a volunteer-driven project, and that contributions are welcome :)rGhjAhh!h#hBh%}rH(h']h(]h)]h*]h-]uh/K4h1]rIh:XWRemember that this is a volunteer-driven project, and that contributions are welcome :)rJrK}rL(hjGhjEubaubaubeubeubeubhh)rM}rN(hUhhhh!h#h$h%}rO(h']h(]h)]h*]rPUpull-request-guidelinesrQah-]rRh auh/K_h0hh1]rS(h3)rT}rU(hXPull Request GuidelinesrVhjMhh!h#h7h%}rW(h']h(]h)]h*]h-]uh/K_h0hh1]rXh:XPull Request GuidelinesrYrZ}r[(hjVhjTubaubh>)r\}r](hXGBefore you submit a pull request, check that it meets these guidelines:r^hjMhh!h#hBh%}r_(h']h(]h)]h*]h-]uh/Kah0hh1]r`h:XGBefore you submit a pull request, check that it meets these guidelines:rarb}rc(hj^hj\ubaubcdocutils.nodes enumerated_list rd)re}rf(hUhjMhh!h#Uenumerated_listrgh%}rh(UsuffixriU.h*]h)]h']UprefixrjUh(]h-]UenumtyperkUarabicrluh/Kch0hh1]rm(h)rn}ro(hX&The pull request should include tests.rphjehh!h#hh%}rq(h']h(]h)]h*]h-]uh/Nh0hh1]rrh>)rs}rt(hjphjnhh!h#hBh%}ru(h']h(]h)]h*]h-]uh/Kch1]rvh:X&The pull request should include tests.rwrx}ry(hjphjsubaubaubh)rz}r{(hXIf the pull request adds functionality, the docs should be updated. Put your new functionality into a function with a docstring, and add the feature to the list in README.rst.hjehh!h#hh%}r|(h']h(]h)]h*]h-]uh/Nh0hh1]r}h>)r~}r(hXIf the pull request adds functionality, the docs should be updated. Put your new functionality into a function with a docstring, and add the feature to the list in README.rst.rhjzhh!h#hBh%}r(h']h(]h)]h*]h-]uh/Kdh1]rh:XIf the pull request adds functionality, the docs should be updated. Put your new functionality into a function with a docstring, and add the feature to the list in README.rst.rr}r(hjhj~ubaubaubh)r}r(hXThe pull request should work for Python 2.7. Check https://travis-ci.org/dnmellen/facehugger/pull_requests and make sure that the tests pass for all supported Python versions. hjehh!h#hh%}r(h']h(]h)]h*]h-]uh/Nh0hh1]rh>)r}r(hXThe pull request should work for Python 2.7. Check https://travis-ci.org/dnmellen/facehugger/pull_requests and make sure that the tests pass for all supported Python versions.hjhh!h#hBh%}r(h']h(]h)]h*]h-]uh/Kgh1]r(h:X3The pull request should work for Python 2.7. Check rr}r(hX3The pull request should work for Python 2.7. Check hjubhv)r}r(hX7https://travis-ci.org/dnmellen/facehugger/pull_requestsrh%}r(Urefurijh*]h)]h']h(]h-]uhjh1]rh:X7https://travis-ci.org/dnmellen/facehugger/pull_requestsrr}r(hUhjubah#hubh:XE and make sure that the tests pass for all supported Python versions.rr}r(hXE and make sure that the tests pass for all supported Python versions.hjubeubaubeubeubh)r}r(hUhhhh!h#h$h%}r(h']h(]h)]h*]rUtipsrah-]rhauh/Klh0hh1]r(h3)r}r(hXTipsrhjhh!h#h7h%}r(h']h(]h)]h*]h-]uh/Klh0hh1]rh:XTipsrr}r(hjhjubaubh>)r}r(hXTo run a subset of tests::rhjhh!h#hBh%}r(h']h(]h)]h*]h-]uh/Knh0hh1]rh:XTo run a subset of tests:rr}r(hXTo run a subset of tests:hjubaubcdocutils.nodes literal_block r)r}r(hX*$ python -m unittest tests.test_facehuggerhjhX*internal padding after ../CONTRIBUTING.rstrh#U literal_blockrh%}r(U xml:spacerUpreserverh*]h)]h']h(]h-]uh/Krh0hh1]rh:X*$ python -m unittest tests.test_facehuggerrr}r(hUhjubaubeubeubhh!h#h$h%}r(h']h(]h)]h*]rU get-startedrah-]rh auh/K8h0hh1]r(h3)r}r(hX Get Started!rhhhh!h#h7h%}r(h']h(]h)]h*]h-]uh/K8h0hh1]rh:X Get Started!rr}r(hjhjubaubh>)r}r(hXMReady to contribute? Here's how to set up `facehugger` for local development.rhhhh!h#hBh%}r(h']h(]h)]h*]h-]uh/K:h0hh1]r(h:X*Ready to contribute? Here's how to set up rr}r(hX*Ready to contribute? Here's how to set up hjubcdocutils.nodes title_reference r)r}r(hX `facehugger`h%}r(h']h(]h)]h*]h-]uhjh1]rh:X facehuggerrr}r(hUhjubah#Utitle_referencerubh:X for local development.rr}r(hX for local development.hjubeubjd)r}r(hUhhhh!h#jgh%}r(jiU.h*]h)]h']jjUh(]h-]jkjluh/K)r}r(hjhjhh!h#hBh%}r(h']h(]h)]h*]h-]uh/K)r}r(hXClone your fork locally::hjhh!h#hBh%}r(h']h(]h)]h*]h-]uh/K=h1]rh:XClone your fork locally:rr}r(hXClone your fork locally:hjubaubj)r}r(hX8$ git clone git@github.com:your_name_here/facehugger.githjh#jh%}r(jjh*]h)]h']h(]h-]uh/KAh1]rh:X8$ git clone git@github.com:your_name_here/facehugger.gitr r }r (hUhjubaubeubh)r }r (hXInstall your local copy into a virtualenv. Assuming you have virtualenvwrapper installed, this is how you set up your fork for local development:: $ mkvirtualenv facehugger $ cd facehugger/ $ python setup.py develop hjhh!h#hh%}r(h']h(]h)]h*]h-]uh/Nh0hh1]r(h>)r}r(hXInstall your local copy into a virtualenv. Assuming you have virtualenvwrapper installed, this is how you set up your fork for local development::hj hh!h#hBh%}r(h']h(]h)]h*]h-]uh/KAh1]rh:XInstall your local copy into a virtualenv. Assuming you have virtualenvwrapper installed, this is how you set up your fork for local development:rr}r(hXInstall your local copy into a virtualenv. Assuming you have virtualenvwrapper installed, this is how you set up your fork for local development:hjubaubj)r}r(hXD$ mkvirtualenv facehugger $ cd facehugger/ $ python setup.py develophj h#jh%}r(jjh*]h)]h']h(]h-]uh/KEh1]rh:XD$ mkvirtualenv facehugger $ cd facehugger/ $ python setup.py developrr}r(hUhjubaubeubh)r}r(hX[Create a branch for local development:: $ git checkout -b name-of-your-bugfix-or-feature hjhh!h#hh%}r (h']h(]h)]h*]h-]uh/Nh0hh1]r!(h>)r"}r#(hX'Create a branch for local development::hjhh!h#hBh%}r$(h']h(]h)]h*]h-]uh/KGh1]r%h:X&Create a branch for local development:r&r'}r((hX&Create a branch for local development:hj"ubaubj)r)}r*(hX0$ git checkout -b name-of-your-bugfix-or-featurehjh#jh%}r+(jjh*]h)]h']h(]h-]uh/KKh1]r,h:X0$ git checkout -b name-of-your-bugfix-or-featurer-r.}r/(hUhj)ubaubeubeubcdocutils.nodes block_quote r0)r1}r2(hUhhhh!h#U block_quoter3h%}r4(h']h(]h)]h*]h-]uh/Nh0hh1]r5h>)r6}r7(hX&Now you can make your changes locally.r8hj1hh!h#hBh%}r9(h']h(]h)]h*]h-]uh/KKh1]r:h:X&Now you can make your changes locally.r;r<}r=(hj8hj6ubaubaubh>)r>}r?(hX5. When you're done making changes, check that your changes pass flake8 and the tests, including testing other Python versions with tox::hhhh!h#hBh%}r@(h']h(]h)]h*]h-]uh/KMh0hh1]rAh:X5. When you're done making changes, check that your changes pass flake8 and the tests, including testing other Python versions with tox:rBrC}rD(hX5. When you're done making changes, check that your changes pass flake8 and the tests, including testing other Python versions with tox:hj>ubaubj)rE}rF(hX $ flake8 facehugger tests $ python setup.py test $ tox To get flake8 and tox, just pip install them into your virtualenv.hhhh!h#jh%}rG(jjh*]h)]h']h(]h-]uh/KRh0hh1]rHh:X $ flake8 facehugger tests $ python setup.py test $ tox To get flake8 and tox, just pip install them into your virtualenv.rIrJ}rK(hUhjEubaubjd)rL}rM(hUhhhh!h#jgh%}rN(jiU.UstartrOKh*]h)]h']jjUh(]h-]jkjluh/KVh0hh1]rP(h)rQ}rR(hXCommit your changes and push your branch to GitHub:: $ git add . $ git commit -m "Your detailed description of your changes." $ git push origin name-of-your-bugfix-or-feature hjLhh!h#hh%}rS(h']h(]h)]h*]h-]uh/Nh0hh1]rT(h>)rU}rV(hX4Commit your changes and push your branch to GitHub::hjQhh!h#hBh%}rW(h']h(]h)]h*]h-]uh/KVh1]rXh:X3Commit your changes and push your branch to GitHub:rYrZ}r[(hX3Commit your changes and push your branch to GitHub:hjUubaubj)r\}r](hXy$ git add . $ git commit -m "Your detailed description of your changes." $ git push origin name-of-your-bugfix-or-featurehjQh#jh%}r^(jjh*]h)]h']h(]h-]uh/KZh1]r_h:Xy$ git add . $ git commit -m "Your detailed description of your changes." $ git push origin name-of-your-bugfix-or-featurer`ra}rb(hUhj\ubaubeubh)rc}rd(hX2Submit a pull request through the GitHub website. hjLhh!h#hh%}re(h']h(]h)]h*]h-]uh/Nh0hh1]rfh>)rg}rh(hX1Submit a pull request through the GitHub website.rihjchh!h#hBh%}rj(h']h(]h)]h*]h-]uh/K\h1]rkh:X1Submit a pull request through the GitHub website.rlrm}rn(hjihjgubaubaubeubeubhh!h#Usystem_messageroh%}rp(h']UlevelKh*]h)]Usourceh!h(]h-]UlineKVUtypeUINFOrquh/KVh0hh1]rrh>)rs}rt(hUh%}ru(h']h(]h)]h*]h-]uhhh1]rvh:X:Enumerated list start value not ordinal-1: "6" (ordinal 6)rwrx}ry(hUhjsubah#hBubaubaUcurrent_sourcerzNU decorationr{NUautofootnote_startr|KUnameidsr}}r~(hhhhchhTh jQh h,h hh jh jhjhhuh1]rhahUU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh0hU current_linerNUtransform_messagesr]rUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrKUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh7NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUH/var/build/user_builds/facehugger/checkouts/latest/docs/contributing.rstrUgettext_compactrU generatorrNUdump_internalsrNU pep_base_urlrUhttp://www.python.org/dev/peps/rUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrKU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(jhjQjMhch_h,hhhhhjhjjhhhThPuUsubstitution_namesr}rh#h0h%}r(h']h*]h)]UsourcehXH/var/build/user_builds/facehugger/checkouts/latest/docs/contributing.rstrr}rbh(]h-]uU footnotesr]rUrefidsr}rub.PK1eCvw 0facehugger-latest/.doctrees/installation.doctreecdocutils.nodes document q)q}q(U nametypesq}qX installationqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhU installationqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXH/var/build/user_builds/facehugger/checkouts/latest/docs/installation.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hX Installationq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2X Installationq3q4}q5(hh.hh,ubaubcdocutils.nodes paragraph q6)q7}q8(hXAt the command line::q9hhhhhU paragraphq:h}q;(h!]h"]h#]h$]h&]uh(Kh)hh]q}q?(hXAt the command line:hh7ubaubcdocutils.nodes literal_block q@)qA}qB(hX$ easy_install facehuggerhhhhhU literal_blockqCh}qD(U xml:spaceqEUpreserveqFh$]h#]h!]h"]h&]uh(Kh)hh]qGh2X$ easy_install facehuggerqHqI}qJ(hUhhAubaubh6)qK}qL(hX-Or, if you have virtualenvwrapper installed::qMhhhhhh:h}qN(h!]h"]h#]h$]h&]uh(K h)hh]qOh2X,Or, if you have virtualenvwrapper installed:qPqQ}qR(hX,Or, if you have virtualenvwrapper installed:hhKubaubh@)qS}qT(hX2$ mkvirtualenv facehugger $ pip install facehuggerhhhhhhCh}qU(hEhFh$]h#]h!]h"]h&]uh(K h)hh]qVh2X2$ mkvirtualenv facehugger $ pip install facehuggerqWqX}qY(hUhhSubaubeubahUU transformerqZNU footnote_refsq[}q\Urefnamesq]}q^Usymbol_footnotesq_]q`Uautofootnote_refsqa]qbUsymbol_footnote_refsqc]qdU citationsqe]qfh)hU current_lineqgNUtransform_messagesqh]qiUreporterqjNUid_startqkKU autofootnotesql]qmU citation_refsqn}qoUindirect_targetsqp]qqUsettingsqr(cdocutils.frontend Values qsoqt}qu(Ufootnote_backlinksqvKUrecord_dependenciesqwNU rfc_base_urlqxUhttp://tools.ietf.org/html/qyU tracebackqzKUpep_referencesq{NUstrip_commentsq|NU toc_backlinksq}Uentryq~U language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh/NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqUtrim_footnote_reference_spaceqUenvqNUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformqU source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlqNUinput_encodingqU utf-8-sigqU_disable_configqNU id_prefixqUU tab_widthqKUerror_encodingqUUTF-8qU_sourceqUH/var/build/user_builds/facehugger/checkouts/latest/docs/installation.rstqUgettext_compactqU generatorqNUdump_internalsqNU pep_base_urlqUhttp://www.python.org/dev/peps/qUinput_encoding_error_handlerqhUauto_id_prefixqUidqUdoctitle_xformqUstrip_elements_with_classesqNU _config_filesq]Ufile_insertion_enabledqKU raw_enabledqKU dump_settingsqNubUsymbol_footnote_startqKUidsq}qhhsUsubstitution_namesq}qhh)h}q(h!]h$]h#]Usourcehh"]h&]uU footnotesq]qUrefidsq}qub.PK1eC[&,&,*facehugger-latest/.doctrees/readme.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X requirementsqNXfeaturesqNX quickstartqNXwhy this name?q NXdid you like it?q NX facehuggerq NXsimplecvq KuUsubstitution_defsq }qUparse_messagesq]q(cdocutils.nodes system_message q)q}q(U rawsourceqUU attributesq}q(Udupnamesq]UlevelKUidsq]Ubackrefsq]Usourcecdocutils.nodes reprunicode qX ../README.rstqq}qbUclassesq]Unamesq]UlineK}q?(hUh'h=)q@}qA(hUh'hUsourceqBhh-UsectionqCh}qD(h]h]h]h]qEU facehuggerqFah]qGh auUlineqHKUdocumentqIhh!]qJ(cdocutils.nodes title qK)qL}qM(hX facehuggerqNh'h@hBhh-UtitleqOh}qP(h]h]h]h]h]uhHKhIhh!]qQh)X facehuggerqRqS}qT(hhNh'hLubaubcdocutils.nodes reference qU)qV}qW(hUh'h@hBhh-U referenceqXh}qY(UrefuriX"http://badge.fury.io/py/facehuggerh]h]h]h]h]uhHNhIhh!]qZcdocutils.nodes image q[)q\}q](hXc.. image:: https://badge.fury.io/py/facehugger.png :target: http://badge.fury.io/py/facehugger h}q^(UuriX'https://badge.fury.io/py/facehugger.pngq_h]h]h]h]U candidatesq`}qaU?h_sh]uh'hVh!]h-UimageqbubaubhU)qc}qd(hUh'h@hBhh-hXh}qe(UrefuriX)https://travis-ci.org/dnmellen/facehuggerh]h]h]h]h]uhHNhIhh!]qfh[)qg}qh(hX.. image:: https://travis-ci.org/dnmellen/facehugger.png?branch=master :target: https://travis-ci.org/dnmellen/facehugger h}qi(UuriX;https://travis-ci.org/dnmellen/facehugger.png?branch=masterqjh]h]h]h]h`}qkU?hjsh]uh'hch!]h-hbubaubhU)ql}qm(hUh'h@hBhh-hXh}qn(UrefuriX*https://coveralls.io/r/dnmellen/facehuggerh]h]h]h]h]uhHNhIhh!]qoh[)qp}qq(hX.. image:: https://coveralls.io/repos/dnmellen/facehugger/badge.png :target: https://coveralls.io/r/dnmellen/facehugger h}qr(UuriX8https://coveralls.io/repos/dnmellen/facehugger/badge.pngqsh]h]h]h]h`}qtU?hssh]uh'hlh!]h-hbubaubhU)qu}qv(hUh'h@hBhh-hXh}qw(UrefuriX3https://crate.io/packages/facehugger?version=latesth]h]h]h]h]uhHNhIhh!]qxh[)qy}qz(hXy.. image:: https://pypip.in/d/facehugger/badge.png :target: https://crate.io/packages/facehugger?version=latest h}q{(UuriX'https://pypip.in/d/facehugger/badge.pngq|h]h]h]h]h`}q}U?h|sh]uh'huh!]h-hbubaubh#)q~}q(hXExtracts faces from an imageqh'h@hBhh-h.h}q(h]h]h]h]h]uhHKhIhh!]qh)XExtracts faces from an imageqq}q(hhh'h~ubaubcdocutils.nodes bullet_list q)q}q(hUh'h@hBhh-U bullet_listqh}q(UbulletqX*h]h]h]h]h]uhHKhIhh!]q(cdocutils.nodes list_item q)q}q(hXFree software: BSD licenseqh'hhBhh-U list_itemqh}q(h]h]h]h]h]uhHNhIhh!]qh#)q}q(hhh'hhBhh-h.h}q(h]h]h]h]h]uhHKh!]qh)XFree software: BSD licenseqq}q(hhh'hubaubaubh)q}q(hX+Documentation: http://facehugger.rtfd.org. h'hhBhh-hh}q(h]h]h]h]h]uhHNhIhh!]qh#)q}q(hX*Documentation: http://facehugger.rtfd.org.h'hhBhh-h.h}q(h]h]h]h]h]uhHKh!]q(h)XDocumentation: qq}q(hXDocumentation: h'hubhU)q}q(hXhttp://facehugger.rtfd.orgqh}q(Urefurihh]h]h]h]h]uh'hh!]qh)Xhttp://facehugger.rtfd.orgqq}q(hUh'hubah-hXubh)X.q}q(hX.h'hubeubaubeubhU)q}q(hUh'h@hBhh-hXh}q(UrefuriXKhttp://commons.wikimedia.org/wiki/File:Christina_Hendricks_(8050119303).jpgh]h]h]h]h]uhHNhIhh!]qh[)q}q(hX.. image:: https://raw.github.com/dnmellen/facehugger/master/demo.jpg :target: http://commons.wikimedia.org/wiki/File:Christina_Hendricks_(8050119303).jpg h}q(UuriX:https://raw.github.com/dnmellen/facehugger/master/demo.jpgqh]h]h]h]h`}qU?hsh]uh'hh!]h-hbubaubh=)q}q(hUh'h@hBhh-hCh}q(h]h]h]h]qU requirementsqah]qhauhHKhIhh!]q(hK)q}q(hX Requirementsqh'hhBhh-hOh}q(h]h]h]h]h]uhHKhIhh!]qh)X RequirementsqŅq}q(hhh'hubaubh)q}q(hUh'hhBhh-hh}q(hX*h]h]h]h]h]uhHKhIhh!]qh)q}q(hX7`SimpleCV `_ h'hhBhh-hh}q(h]h]h]h]h]uhHNhIhh!]qh#)q}q(hX6`SimpleCV `_qh'hhBhh-h.h}q(h]h]h]h]h]uhHKh!]q(hU)q}q(hhh}q(UnameXSimpleCVUrefuriqX(https://github.com/sightmachine/simplecvqh]h]h]h]h]uh'hh!]qh)XSimpleCVqۅq}q(hUh'hubah-hXubcdocutils.nodes target q)q}q(hX+ h}q(Urefurihh]qUsimplecvqah]h]h]h]qh auh'hh!]h-Utargetqubeubaubaubh/)q}q(hX# System requirements for Ubuntu sudo apt-get install ipython python-opencv python-scipy python-numpy python-pygame python-setuptools python-piph'hhBhh-h9h}q(UlinenosqUlanguageqXbashh3h4h]h]h]h]h]uhHKhIhh!]qh)X# System requirements for Ubuntu sudo apt-get install ipython python-opencv python-scipy python-numpy python-pygame python-setuptools python-pipq셁q}q(hUh'hubaubeubh=)q}q(hUh'h@hBhh-hCh}q(h]h]h]h]qUfeaturesqah]qhauhHK&hIhh!]q(hK)q}q(hXFeaturesqh'hhBhh-hOh}q(h]h]h]h]h]uhHK&hIhh!]qh)XFeaturesqq}q(hhh'hubaubh)q}q(hUh'hhBhh-hh}r(hX*h]h]h]h]h]uhHK(hIhh!]r(h)r}r(hX7Extracts faces and saves the cropped images to a folderrh'hhBhh-hh}r(h]h]h]h]h]uhHNhIhh!]rh#)r}r(hjh'jhBhh-h.h}r (h]h]h]h]h]uhHK(h!]r h)X7Extracts faces and saves the cropped images to a folderr r }r (hjh'jubaubaubh)r}r(hX)You can use it in your app as a library h'hhBhh-hh}r(h]h]h]h]h]uhHNhIhh!]rh#)r}r(hX'You can use it in your app as a libraryrh'jhBhh-h.h}r(h]h]h]h]h]uhHK)h!]rh)X'You can use it in your app as a libraryrr}r(hjh'jubaubaubeubeubh=)r}r(hUh'h@hBhh-hCh}r(h]h]h]h]rU quickstartrah]rhauhHK-hIhh!]r (hK)r!}r"(hX Quickstartr#h'jhBhh-hOh}r$(h]h]h]h]h]uhHK-hIhh!]r%h)X Quickstartr&r'}r((hj#h'j!ubaubh/)r)}r*(hXi$ sudo pip install facehugger $ facehugger -i /path/to/image_with_faces.jpg -o /path/to/dir_to_save_facesh'jhBhh-h9h}r+(hhXbashh3h4h]h]h]h]h]uhHK/hIhh!]r,h)Xi$ sudo pip install facehugger $ facehugger -i /path/to/image_with_faces.jpg -o /path/to/dir_to_save_facesr-r.}r/(hUh'j)ubaubeubh=)r0}r1(hUh'h@hBhh-hCh}r2(h]h]h]h]r3U why-this-namer4ah]r5h auhHK5hIhh!]r6(hK)r7}r8(hXWhy this name?r9h'j0hBhh-hOh}r:(h]h]h]h]h]uhHK5hIhh!]r;h)XWhy this name?r<r=}r>(hj9h'j7ubaubhU)r?}r@(hUh'j0hBhh-hXh}rA(UrefuriX$http://joyreactor.com/tag/Facehuggerh]h]h]h]h]uhHNhIhh!]rBh[)rC}rD(hX.. image:: http://img6.joyreactor.com/pics/post/gif-Alien-Facehugger-618166.gif :target: http://joyreactor.com/tag/Facehugger h}rE(UuriXDhttp://img6.joyreactor.com/pics/post/gif-Alien-Facehugger-618166.gifrFh]h]h]h]h`}rGU?jFsh]uh'j?h!]h-hbubaubeubh>eubhBhh-hCh}rH(h]h]h]h]rIUdid-you-like-itrJah]rKh auhHKhBhh-hOh}rP(h]h]h]h]h]uhHKhBhh-hXh}rW(UrefuriX https://www.gittip.com/dnmellen/h]h]h]h]h]uhHNhIhh!]rXh[)rY}rZ(hX.. image:: https://rawgithub.com/twolfson/gittip-badge/0.1.0/dist/gittip.png :target: https://www.gittip.com/dnmellen/ :alt: gittip h}r[(UuriXAhttps://rawgithub.com/twolfson/gittip-badge/0.1.0/dist/gittip.pngr\h]h]h]h]h`}r]U?j\sh]UalthXgittipr^r_}r`buh'jUh!]h-hbubaubeubhBhh-h:h}ra(h]UlevelKh]h]Usourcehh]h]UlineKhFh@hhuUsubstitution_namesr}rh-hIh}r(h]h]h]UsourcehXB/var/build/user_builds/facehugger/checkouts/latest/docs/readme.rstrr}rbh]h]uU footnotesr]rUrefidsr}rub.PK1eC#>>.facehugger-latest/.doctrees/environment.pickle(csphinx.environment BuildEnvironment qoq}q(Udlfilesqcsphinx.util FilenameUniqDict q)qc__builtin__ set q]RqbUappq NU _warnfuncq NUtitlesq }q (Uindexq cdocutils.nodes title q)q}q(U rawsourceqUU attributesq}q(Udupnamesq]Uclassesq]Ubackrefsq]Uidsq]Unamesq]uUchildrenq]qcdocutils.nodes Text qX&Welcome to facehugger's documentation!qq}q(hX&Welcome to facehugger's documentation!qUparentq hubaUtagnameq!Utitleq"ubU installationq#h)q$}q%(hUh}q&(h]h]h]h]h]uh]q'hX Installationq(q)}q*(hX Installationq+h h$ubah!h"ubU contributingq,h)q-}q.(hUh}q/(h]h]h]h]h]uh]q0hX Contributingq1q2}q3(hX Contributingq4h h-ubah!h"ubUusageq5h)q6}q7(hUh}q8(h]h]h]h]h]uh]q9hXUsageq:q;}q<(hXUsageq=h h6ubah!h"ubUauthorsq>h)q?}q@(hUh}qA(h]h]h]h]h]uh]qBhXCreditsqCqD}qE(hXCreditsqFh h?ubah!h"ubUreadmeqGh)qH}qI(hUh}qJ(h]h]h]h]h]uh]qKhX facehuggerqLqM}qN(hX facehuggerqOh hHubah!h"ubUhistoryqPh)qQ}qR(hUh}qS(h]h]h]h]h]uh]qThXHistoryqUqV}qW(hXHistoryqXh hQubah!h"ubuU domaindataqY}qZ(Ustdq[}q\(Uversionq]KU anonlabelsq^}q_(Umodindexq`U py-modindexUUgenindexqahaUUsearchqbUsearchUuUlabelsqc}qd(h`U py-modindexUcsphinx.locale _TranslationProxy qecsphinx.locale mygettext qfU Module IndexqgqhhfhgqibhahaUhehfUIndexqjqkhfhjqlbhbhbUhehfU Search PageqmqnhfhmqobuU progoptionsqp}qqUobjectsqr}qsuUc}qt(hr}quh]KuUpyqv}qw(hr}qxUmodulesqy}qzh]KuUjsq{}q|(hr}q}h]KuUrstq~}q(hr}qh]KuUcppq}q(hr}qh]KuuU glob_toctreesqh]RqU reread_alwaysqh]RqU doctreedirqUM/var/build/user_builds/facehugger/checkouts/latest/docs/_build/html/.doctreesqUversioning_conditionqU citationsq}h]K)UsrcdirqU7/var/build/user_builds/facehugger/checkouts/latest/docsqUconfigqcsphinx.config Config q)q}q(U html_contextq}q(U github_userUdnmellenUnameqX FacehuggerUdisplay_githubUversions]qUlatestqU /en/latest/qaU using_themeU downloads]q(UPDFUBhttps://media.readthedocs.org/pdf/facehugger/latest/facehugger.pdfqUHTMLqUFhttps://media.readthedocs.org/htmlzip/facehugger/latest/facehugger.zipqUEpubUDhttps://media.readthedocs.org/epub/facehugger/latest/facehugger.epubqeU READTHEDOCSUgithub_versionUmasterqU conf_py_pathU/docs/U github_repoU facehuggerqUanalytics_codeUUPRODUCTION_DOMAINUreadthedocs.orgU html_themeqUsphinx_rtd_themeqU new_themeUcurrent_versionqhUslugqhU MEDIA_URLqUhttps://media.readthedocs.org/uUpygments_styleqUsphinxqUhtmlhelp_basenameqU facehuggerdochhU master_docqUindexqU source_suffixqU.rstUtexinfo_documentsq]q(UindexqU facehuggerqXfacehugger DocumentationqXDiego Navarro MellenqhU One line description of project.U MiscellaneoustqaU copyrightqX2013, Diego Navarro MellenUexclude_patternsq]qU_buildqah]U0.1.5qU man_pagesq]q(hhh]qhaKtqaU html_styleqNUhtml_theme_optionsq}Utemplates_pathq]q(UA/home/docs/checkouts/readthedocs.org/readthedocs/templates/sphinxqU _templatesqeUlatex_documentsq]q(hUfacehugger.texhhUmanualtqaUhtml_static_pathq]q(U_staticqUI/home/docs/checkouts/readthedocs.org/readthedocs/templates/sphinx/_staticqeUhtml_theme_pathq]q(U_themesqheUlatex_elementsq}UlanguageqXenqU overridesq}qhhsUprojectqX facehuggerU extensionsq]q(Usphinx.ext.autodocqUsphinx.ext.viewcodeqUreadthedocs_ext.readthedocsqU"readthedocs_ext.readthedocshtmldirqeUreleaseqhUsetupqNubUmetadataq}q(h }h#}h,}h5}h>}hG}hP}uUversionchangesq}qX0.1.5q]q(X versionaddedqh5KNNXiAdded --rescale-face-crop parameter that receives an integer representing percentage to scale up the croptqasU_viewcode_modulesq}Utoc_num_entriesq}q(h Kh#Kh,K h5Kh>KhGKhPKuUimagesqh)qh]RqbUnumbered_toctreesqh]RqU found_docsqh]q(h h#h,hGh>h5hPeRqU longtitlesq}q(h hh#h$h,h-h5h6h>h?hGhHhPhQuU dependenciesq}q(h,h]qX../CONTRIBUTING.rstqaRqhGh]qX ../README.rstqaRqhPh]qX../HISTORY.rstqaRqh>h]qX../AUTHORS.rstqaRquUtoctree_includesq}qh ]q(XreadmeqX installationqXusagerX contributingrXauthorsrXhistoryresU temp_datar}Utocsr}r(h cdocutils.nodes bullet_list r)r}r (hUh}r (h]h]h]h]h]uh]r (cdocutils.nodes list_item r )r }r(hUh}r(h]h]h]h]h]uh jh]r(csphinx.addnodes compact_paragraph r)r}r(hUh}r(h]h]h]h]h]uh j h]rcdocutils.nodes reference r)r}r(hUh}r(U anchornameUUrefurih h]h]h]h]h]Uinternaluh jh]rhX&Welcome to facehugger's documentation!rr}r(hhh jubah!U referencerubah!Ucompact_paragraphrubj)r }r!(hUh}r"(h]h]h]h]h]uh j h]r#csphinx.addnodes toctree r$)r%}r&(hUh}r'(UnumberedKUparenth U titlesonlyUglobh]h]h]h]h]Uentries]r((Nhr)Nhr*Njr+Njr,Njr-Njr.eUhiddenU includefiles]r/(hhjjjjeUmaxdepthKuh j h]h!Utoctreer0ubah!U bullet_listr1ubeh!U list_itemr2ubj )r3}r4(hUh}r5(h]h]h]h]h]uh jh]r6j)r7}r8(hUh}r9(h]h]h]h]h]uh j3h]r:j)r;}r<(hUh}r=(U anchornameU#indices-and-tablesUrefurih h]h]h]h]h]Uinternaluh j7h]r>hXIndices and tablesr?r@}rA(hXIndices and tablesrBh j;ubah!jubah!jubah!j2ubeh!j1ubh#j)rC}rD(hUh}rE(h]h]h]h]h]uh]rFj )rG}rH(hUh}rI(h]h]h]h]h]uh jCh]rJj)rK}rL(hUh}rM(h]h]h]h]h]uh jGh]rNj)rO}rP(hUh}rQ(U anchornameUUrefurih#h]h]h]h]h]Uinternaluh jKh]rRhX InstallationrSrT}rU(hh+h jOubah!jubah!jubah!j2ubah!j1ubh,j)rV}rW(hUh}rX(h]h]h]h]h]uh]rYj )rZ}r[(hUh}r\(h]h]h]h]h]uh jVh]r](j)r^}r_(hUh}r`(h]h]h]h]h]uh jZh]raj)rb}rc(hUh}rd(U anchornameUUrefurih,h]h]h]h]h]Uinternaluh j^h]rehX Contributingrfrg}rh(hh4h jbubah!jubah!jubj)ri}rj(hUh}rk(h]h]h]h]h]uh jZh]rl(j )rm}rn(hUh}ro(h]h]h]h]h]uh jih]rp(j)rq}rr(hUh}rs(h]h]h]h]h]uh jmh]rtj)ru}rv(hUh}rw(U anchornameU#types-of-contributionsUrefurih,h]h]h]h]h]Uinternaluh jqh]rxhXTypes of Contributionsryrz}r{(hXTypes of Contributionsr|h juubah!jubah!jubj)r}}r~(hUh}r(h]h]h]h]h]uh jmh]r(j )r}r(hUh}r(h]h]h]h]h]uh j}h]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU #report-bugsUrefurih,h]h]h]h]h]Uinternaluh jh]rhX Report Bugsrr}r(hX Report Bugsrh jubah!jubah!jubah!j2ubj )r}r(hUh}r(h]h]h]h]h]uh j}h]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU #fix-bugsUrefurih,h]h]h]h]h]Uinternaluh jh]rhXFix Bugsrr}r(hXFix Bugsrh jubah!jubah!jubah!j2ubj )r}r(hUh}r(h]h]h]h]h]uh j}h]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#implement-featuresUrefurih,h]h]h]h]h]Uinternaluh jh]rhXImplement Featuresrr}r(hXImplement Featuresrh jubah!jubah!jubah!j2ubj )r}r(hUh}r(h]h]h]h]h]uh j}h]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#write-documentationUrefurih,h]h]h]h]h]Uinternaluh jh]rhXWrite Documentationrr}r(hXWrite Documentationrh jubah!jubah!jubah!j2ubj )r}r(hUh}r(h]h]h]h]h]uh j}h]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#submit-feedbackUrefurih,h]h]h]h]h]Uinternaluh jh]rhXSubmit Feedbackrr}r(hXSubmit Feedbackrh jubah!jubah!jubah!j2ubeh!j1ubeh!j2ubj )r}r(hUh}r(h]h]h]h]h]uh jih]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU #get-startedUrefurih,h]h]h]h]h]Uinternaluh jh]rhX Get Started!rr}r(hX Get Started!rh jubah!jubah!jubah!j2ubj )r}r(hUh}r(h]h]h]h]h]uh jih]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#pull-request-guidelinesUrefurih,h]h]h]h]h]Uinternaluh jh]rhXPull Request Guidelinesrr}r(hXPull Request Guidelinesrh jubah!jubah!jubah!j2ubj )r}r(hUh}r(h]h]h]h]h]uh jih]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#tipsUrefurih,h]h]h]h]h]Uinternaluh jh]rhXTipsrr}r(hXTipsrh jubah!jubah!jubah!j2ubeh!j1ubeh!j2ubah!j1ubh5j)r}r(hUh}r(h]h]h]h]h]uh]rj )r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r }r (hUh}r (h]h]h]h]h]uh jh]r j)r }r(hUh}r(U anchornameUUrefurih5h]h]h]h]h]Uinternaluh j h]rhXUsagerr}r(hh=h j ubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj )r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r }r!(hUh}r"(U anchornameU#rescaling-resulting-face-cropsUrefurih5h]h]h]h]h]Uinternaluh jh]r#hXRescaling resulting face cropsr$r%}r&(hXRescaling resulting face cropsr'h j ubah!jubah!jubah!j2ubah!j1ubeh!j2ubah!j1ubh>j)r(}r)(hUh}r*(h]h]h]h]h]uh]r+j )r,}r-(hUh}r.(h]h]h]h]h]uh j(h]r/(j)r0}r1(hUh}r2(h]h]h]h]h]uh j,h]r3j)r4}r5(hUh}r6(U anchornameUUrefurih>h]h]h]h]h]Uinternaluh j0h]r7hXCreditsr8r9}r:(hhFh j4ubah!jubah!jubj)r;}r<(hUh}r=(h]h]h]h]h]uh j,h]r>(j )r?}r@(hUh}rA(h]h]h]h]h]uh j;h]rBj)rC}rD(hUh}rE(h]h]h]h]h]uh j?h]rFj)rG}rH(hUh}rI(U anchornameU#development-leadUrefurih>h]h]h]h]h]Uinternaluh jCh]rJhXDevelopment LeadrKrL}rM(hXDevelopment LeadrNh jGubah!jubah!jubah!j2ubj )rO}rP(hUh}rQ(h]h]h]h]h]uh j;h]rRj)rS}rT(hUh}rU(h]h]h]h]h]uh jOh]rVj)rW}rX(hUh}rY(U anchornameU #contributorsUrefurih>h]h]h]h]h]Uinternaluh jSh]rZhX Contributorsr[r\}r](hX Contributorsr^h jWubah!jubah!jubah!j2ubeh!j1ubeh!j2ubah!j1ubhGj)r_}r`(hUh}ra(h]h]h]h]h]uh]rbj )rc}rd(hUh}re(h]h]h]h]h]uh j_h]rf(j)rg}rh(hUh}ri(h]h]h]h]h]uh jch]rjj)rk}rl(hUh}rm(U anchornameUUrefurihGh]h]h]h]h]Uinternaluh jgh]rnhX facehuggerrorp}rq(hhOh jkubah!jubah!jubj)rr}rs(hUh}rt(h]h]h]h]h]uh jch]ru(j )rv}rw(hUh}rx(h]h]h]h]h]uh jrh]ryj)rz}r{(hUh}r|(h]h]h]h]h]uh jvh]r}j)r~}r(hUh}r(U anchornameU #requirementsUrefurihGh]h]h]h]h]Uinternaluh jzh]rhX Requirementsrr}r(hX Requirementsrh j~ubah!jubah!jubah!j2ubj )r}r(hUh}r(h]h]h]h]h]uh jrh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU #featuresUrefurihGh]h]h]h]h]Uinternaluh jh]rhXFeaturesrr}r(hXFeaturesrh jubah!jubah!jubah!j2ubj )r}r(hUh}r(h]h]h]h]h]uh jrh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU #quickstartUrefurihGh]h]h]h]h]Uinternaluh jh]rhX Quickstartrr}r(hX Quickstartrh jubah!jubah!jubah!j2ubj )r}r(hUh}r(h]h]h]h]h]uh jrh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#why-this-nameUrefurihGh]h]h]h]h]Uinternaluh jh]rhXWhy this name?rr}r(hXWhy this name?rh jubah!jubah!jubah!j2ubj )r}r(hUh}r(h]h]h]h]h]uh jrh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#did-you-like-itUrefurihGh]h]h]h]h]Uinternaluh jh]rhXDid you like it?rr}r(hXDid you like it?rh jubah!jubah!jubah!j2ubeh!j1ubeh!j2ubah!j1ubhPj)r}r(hUh}r(h]h]h]h]h]uh]rj )r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameUUrefurihPh]h]h]h]h]Uinternaluh jh]rhXHistoryrr}r(hhXh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j )r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#id1UrefurihPh]h]h]h]h]Uinternaluh jh]rhX0.1.0 (2013-10-30)rr}r(hX0.1.0 (2013-10-30)rh jubah!jubah!jubah!j2ubj )r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#id2UrefurihPh]h]h]h]h]Uinternaluh jh]rhX0.1.3 (2013-10-30)rr}r(hX0.1.3 (2013-10-30)rh jubah!jubah!jubah!j2ubj )r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#id3UrefurihPh]h]h]h]h]Uinternaluh jh]rhX0.1.4 (2013-10-30)r r }r (hX0.1.4 (2013-10-30)r h jubah!jubah!jubah!j2ubeh!j1ubeh!j2ubah!j1ubuU indexentriesr }r(h ]h#]h,]h5]h>]hG]hP]uUall_docsr}r(h GAԞ8ZIh#GAԞ8Zȉh,GAԞ8Z9uh5GAԞ8Z˶9h>GAԞ8ZfhGGAԞ8ZhPGAԞ8ZKuUsettingsr}r(Ucloak_email_addressesrUtrim_footnote_reference_spacerU halt_levelrKUsectsubtitle_xformrUembed_stylesheetrU pep_base_urlrUhttp://www.python.org/dev/peps/rUdoctitle_xformrUwarning_streamrcsphinx.util.nodes WarningStream r)r}r(U_rercre _compile r U+\((DEBUG|INFO|WARNING|ERROR|SEVERE)/[0-4]\)r!KRr"Uwarnfuncr#NubUenvr$hU rfc_base_urlr%Uhttp://tools.ietf.org/html/r&Ugettext_compactr'Uinput_encodingr(U utf-8-sigr)uUfiles_to_rebuildr*}r+(hh]r,h aRr-jh]r.h aRr/jh]r0h aRr1jh]r2h aRr3hh]r4h aRr5jh]r6h aRr7uUtoc_secnumbersr8}U_nitpick_ignorer9h]Rr:ub.PK1eCX+facehugger-latest/.doctrees/authors.doctreecdocutils.nodes document q)q}q(U nametypesq}q(XcreditsqNX contributorsqNXdevelopment leadqNuUsubstitution_defsq }q Uparse_messagesq ]q Ucurrent_sourceq NU decorationqNUautofootnote_startqKUnameidsq}q(hUcreditsqhU contributorsqhUdevelopment-leadquUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qX../AUTHORS.rstqq}q bUtagnameq!Usectionq"U attributesq#}q$(Udupnamesq%]Uclassesq&]Ubackrefsq']Uidsq(]q)haUnamesq*]q+hauUlineq,KUdocumentq-hh]q.(cdocutils.nodes title q/)q0}q1(hXCreditsq2hhhhh!Utitleq3h#}q4(h%]h&]h']h(]h*]uh,Kh-hh]q5cdocutils.nodes Text q6XCreditsq7q8}q9(hh2hh0ubaubh)q:}q;(hUhhhhh!h"h#}q<(h%]h&]h']h(]q=hah*]q>hauh,Kh-hh]q?(h/)q@}qA(hXDevelopment LeadqBhh:hhh!h3h#}qC(h%]h&]h']h(]h*]uh,Kh-hh]qDh6XDevelopment LeadqEqF}qG(hhBhh@ubaubcdocutils.nodes bullet_list qH)qI}qJ(hUhh:hhh!U bullet_listqKh#}qL(UbulletqMX*h(]h']h%]h&]h*]uh,Kh-hh]qNcdocutils.nodes list_item qO)qP}qQ(hX*Diego Navarro Mellen hhIhhh!U list_itemqRh#}qS(h%]h&]h']h(]h*]uh,Nh-hh]qTcdocutils.nodes paragraph qU)qV}qW(hX)Diego Navarro Mellen qXhhPhhh!U paragraphqYh#}qZ(h%]h&]h']h(]h*]uh,Kh]q[(h6XDiego Navarro Mellen qh}qi(hX>hhVubeubaubaubeubh)qj}qk(hUhhhhh!h"h#}ql(h%]h&]h']h(]qmhah*]qnhauh,K h-hh]qo(h/)qp}qq(hX Contributorsqrhhjhhh!h3h#}qs(h%]h&]h']h(]h*]uh,K h-hh]qth6X Contributorsquqv}qw(hhrhhpubaubhU)qx}qy(hXNone yet. Why not be the first?qzhhjhhh!hYh#}q{(h%]h&]h']h(]h*]uh,K h-hh]q|h6XNone yet. Why not be the first?q}q~}q(hhzhhxubaubeubeubahUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh-hU current_lineqNUtransform_messagesq]qUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqKUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh3NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqUtrim_footnote_reference_spaceqUenvqNUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformqU source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlqNUinput_encodingqU utf-8-sigqU_disable_configqNU id_prefixqUU tab_widthqKUerror_encodingqUUTF-8qU_sourceqUC/var/build/user_builds/facehugger/checkouts/latest/docs/authors.rstqUgettext_compactqψU generatorqNUdump_internalsqNU pep_base_urlqUhttp://www.python.org/dev/peps/qUinput_encoding_error_handlerqhUauto_id_prefixqUidqUdoctitle_xformq׉Ustrip_elements_with_classesqNU _config_filesq]Ufile_insertion_enabledqKU raw_enabledqKU dump_settingsqNubUsymbol_footnote_startqKUidsq}q(hhhhjhh:uUsubstitution_namesq}qh!h-h#}q(h%]h(]h']UsourcehXC/var/build/user_builds/facehugger/checkouts/latest/docs/authors.rstqㅁq}qbh&]h*]uU footnotesq]qUrefidsq}qub.PK1eCbb)facehugger-latest/.doctrees/usage.doctreecdocutils.nodes document q)q}q(U nametypesq}q(XusageqNXrescaling resulting face cropsqNuUsubstitution_defsq}q Uparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startqKUnameidsq}q(hUusageqhUrescaling-resulting-face-cropsquUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXA/var/build/user_builds/facehugger/checkouts/latest/docs/usage.rstqq}qbUtagnameqUsectionq U attributesq!}q"(Udupnamesq#]Uclassesq$]Ubackrefsq%]Uidsq&]q'haUnamesq(]q)hauUlineq*KUdocumentq+hh]q,(cdocutils.nodes title q-)q.}q/(hXUsageq0hhhhhUtitleq1h!}q2(h#]h$]h%]h&]h(]uh*Kh+hh]q3cdocutils.nodes Text q4XUsageq5q6}q7(hh0hh.ubaubcdocutils.nodes paragraph q8)q9}q:(hX To use facehugger in a project::q;hhhhhU paragraphqh4XTo use facehugger in a project:q?q@}qA(hXTo use facehugger in a project:hh9ubaubcdocutils.nodes literal_block qB)qC}qD(hXNfrom facehugger import get_faces faces = get_faces('/some/path/to_image.jpg')hhhhhU literal_blockqEh!}qF(U xml:spaceqGUpreserveqHh&]h%]h#]h$]h(]uh*Kh+hh]qIh4XNfrom facehugger import get_faces faces = get_faces('/some/path/to_image.jpg')qJqK}qL(hUhhCubaubh8)qM}qN(hX$To use facehugger from command line:qOhhhhhh(h']h(]h&]h%]h)]uh*Kh+hh]q?h-X&Welcome to facehugger's documentation!q@qA}qB(hh}q?(hXHistoryq@hh6hh!h#UtitleqAh%}qB(h+]h,]h*]h)]h-]uh.Kh/hh]qCh1XHistoryqDqE}qF(hh@hh>ubaubh5)qG}qH(hUhh6hh!h#h8h%}qI(h+]h,]h*]h)]qJhah-]qKhauh.Kh/hh]qL(h=)qM}qN(hX0.1.0 (2013-10-30)qOhhGhh!h#hAh%}qP(h+]h,]h*]h)]h-]uh.Kh/hh]qQh1X0.1.0 (2013-10-30)qRqS}qT(hhOhhMubaubcdocutils.nodes bullet_list qU)qV}qW(hUhhGhh!h#U bullet_listqXh%}qY(UbulletqZX*h)]h*]h+]h,]h-]uh.K h/hh]q[cdocutils.nodes list_item q\)q]}q^(hXFirst release on PyPI. hhVhh!h#U list_itemq_h%}q`(h+]h,]h*]h)]h-]uh.Nh/hh]qacdocutils.nodes paragraph qb)qc}qd(hXFirst release on PyPI.qehh]hh!h#U paragraphqfh%}qg(h+]h,]h*]h)]h-]uh.K h]qhh1XFirst release on PyPI.qiqj}qk(hhehhcubaubaubaubeubh5)ql}qm(hUhh6hh!h#h8h%}qn(h+]h,]h*]h)]qohah-]qphauh.K h/hh]qq(h=)qr}qs(hX0.1.3 (2013-10-30)qthhlhh!h#hAh%}qu(h+]h,]h*]h)]h-]uh.K h/hh]qvh1X0.1.3 (2013-10-30)qwqx}qy(hhthhrubaubhU)qz}q{(hUhhlhh!h#hXh%}q|(hZX*h)]h*]h+]h,]h-]uh.Kh/hh]q}h\)q~}q(hXFirst working release. hhzhh!h#h_h%}q(h+]h,]h*]h)]h-]uh.Nh/hh]qhb)q}q(hXFirst working release.qhh~hh!h#hfh%}q(h+]h,]h*]h)]h-]uh.Kh]qh1XFirst working release.qq}q(hhhhubaubaubaubeubh5)q}q(hUhh6hh!h#h8h%}q(h+]h,]h*]h)]qhah-]qhauh.Kh/hh]q(h=)q}q(hX0.1.4 (2013-10-30)qhhhh!h#hAh%}q(h+]h,]h*]h)]h-]uh.Kh/hh]qh1X0.1.4 (2013-10-30)qq}q(hhhhubaubhU)q}q(hUhhhh!h#hXh%}q(hZX*h)]h*]h+]h,]h-]uh.Kh/hh]qh\)q}q(hXUpdated docs. hhhX%internal padding after ../HISTORY.rstqh#h_h%}q(h+]h,]h*]h)]h-]uh.Nh/hh]qhb)q}q(hX Updated docs.qhhhh!h#hfh%}q(h+]h,]h*]h)]h-]uh.Kh]qh1X Updated docs.qq}q(hhhhubaubaubaubeubeubehUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh/hU current_lineqNUtransform_messagesq]qUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqKUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNhANUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetq؉Uoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqUtrim_footnote_reference_spaceqUenvqNUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformqU source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlqNUinput_encodingqU utf-8-sigqU_disable_configqNU id_prefixqUU tab_widthqKUerror_encodingqUUTF-8qU_sourceqUC/var/build/user_builds/facehugger/checkouts/latest/docs/history.rstqUgettext_compactqU generatorqNUdump_internalsqNU pep_base_urlqUhttp://www.python.org/dev/peps/qUinput_encoding_error_handlerqhUauto_id_prefixqUidqUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]rUfile_insertion_enabledrKU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r (hhGhhlhhhh6uUsubstitution_namesr }r h#h/h%}r (h+]h)]h*]UsourcehXC/var/build/user_builds/facehugger/checkouts/latest/docs/history.rstr r}rbh,]h-]uU footnotesr]rUrefidsr}rub.PKCa"facehugger-latest/_static/plus.pngPNG  IHDR &q pHYs  tIME 1l9tEXtComment̖RIDATcz(BpipPc |IENDB`PK1eCkl\\&facehugger-latest/_static/pygments.css.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: #333333 } /* 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: #0044DD } /* 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 */PKCDUkk facehugger-latest/_static/up.pngPNG  IHDRasRGBbKGDC pHYs B(xtIME!.<̓EIDAT8͓NABP\EG{%<|xc  cr6@t;b$;3&)h1!﫳Hzz@=)p 3۵e2/ߴ ( %^ND^ }3H1DoǪISFұ?, G`{v^X[b]&HC3{:sO& ?,[eL#IENDB`PKNt_C"0%facehugger-latest/_static/default.css/* * 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; }PKBFCVR>>!facehugger-latest/_static/rtd.css/* * rtd.css * ~~~~~~~~~~~~~~~ * * Sphinx stylesheet -- sphinxdoc theme. Originally created by * Armin Ronacher for Werkzeug. * * Customized for ReadTheDocs by Eric Pierce & Eric Holscher * * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ /* RTD colors * light blue: #e8ecef * medium blue: #8ca1af * dark blue: #465158 * dark grey: #444444 * * white hover: #d1d9df; * medium blue hover: #697983; * green highlight: #8ecc4c * light blue (project bar): #e8ecef */ @import url("basic.css"); /* PAGE LAYOUT -------------------------------------------------------------- */ body { font: 100%/1.5 "ff-meta-web-pro-1","ff-meta-web-pro-2",Arial,"Helvetica Neue",sans-serif; text-align: center; color: black; background-color: #465158; padding: 0; margin: 0; } div.document { text-align: left; background-color: #e8ecef; } div.bodywrapper { background-color: #ffffff; border-left: 1px solid #ccc; border-bottom: 1px solid #ccc; margin: 0 0 0 16em; } div.body { margin: 0; padding: 0.5em 1.3em; min-width: 20em; } div.related { font-size: 1em; background-color: #465158; } div.documentwrapper { float: left; width: 100%; background-color: #e8ecef; } /* HEADINGS --------------------------------------------------------------- */ h1 { margin: 0; padding: 0.7em 0 0.3em 0; font-size: 1.5em; line-height: 1.15; color: #111; clear: both; } h2 { margin: 2em 0 0.2em 0; font-size: 1.35em; padding: 0; color: #465158; } h3 { margin: 1em 0 -0.3em 0; font-size: 1.2em; color: #6c818f; } div.body h1 a, div.body h2 a, div.body h3 a, div.body h4 a, div.body h5 a, div.body h6 a { color: black; } h1 a.anchor, h2 a.anchor, h3 a.anchor, h4 a.anchor, h5 a.anchor, h6 a.anchor { display: none; margin: 0 0 0 0.3em; padding: 0 0.2em 0 0.2em; color: #aaa !important; } h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, h5:hover a.anchor, h6:hover a.anchor { display: inline; } h1 a.anchor:hover, h2 a.anchor:hover, h3 a.anchor:hover, h4 a.anchor:hover, h5 a.anchor:hover, h6 a.anchor:hover { color: #777; background-color: #eee; } /* LINKS ------------------------------------------------------------------ */ /* Normal links get a pseudo-underline */ a { color: #444; text-decoration: none; border-bottom: 1px solid #ccc; } /* Links in sidebar, TOC, index trees and tables have no underline */ .sphinxsidebar a, .toctree-wrapper a, .indextable a, #indices-and-tables a { color: #444; text-decoration: none; /* border-bottom: none; */ } /* Search box size */ div.sphinxsidebar #searchbox input[type="submit"] { width: 50px; } /* Most links get an underline-effect when hovered */ a:hover, div.toctree-wrapper a:hover, .indextable a:hover, #indices-and-tables a:hover { color: #111; text-decoration: none; border-bottom: 1px solid #111; } /* Footer links */ div.footer a { color: #86989B; text-decoration: none; border: none; } div.footer a:hover { color: #a6b8bb; text-decoration: underline; border: none; } /* Permalink anchor (subtle grey with a red hover) */ div.body a.headerlink { color: #ccc; font-size: 1em; margin-left: 6px; padding: 0 4px 0 4px; text-decoration: none; border: none; } div.body a.headerlink:hover { color: #c60f0f; border: none; } /* NAVIGATION BAR --------------------------------------------------------- */ div.related ul { height: 2.5em; } div.related ul li { margin: 0; padding: 0.65em 0; float: left; display: block; color: white; /* For the >> separators */ font-size: 0.8em; } div.related ul li.right { float: right; margin-right: 5px; color: transparent; /* Hide the | separators */ } /* "Breadcrumb" links in nav bar */ div.related ul li a { order: none; background-color: inherit; font-weight: bold; margin: 6px 0 6px 4px; line-height: 1.75em; color: #ffffff; padding: 0.4em 0.8em; border: none; border-radius: 3px; } /* previous / next / modules / index links look more like buttons */ div.related ul li.right a { margin: 0.375em 0; background-color: #697983; text-shadow: 0 1px rgba(0, 0, 0, 0.5); border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px; } /* All navbar links light up as buttons when hovered */ div.related ul li a:hover { background-color: #8ca1af; color: #ffffff; text-decoration: none; border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px; } /* Take extra precautions for tt within links */ a tt, div.related ul li a tt { background: inherit !important; color: inherit !important; } /* SIDEBAR ---------------------------------------------------------------- */ div.sphinxsidebarwrapper { padding: 0; } div.sphinxsidebar { margin: 0; margin-left: -100%; float: left; top: 3em; left: 0; padding: 0 1em; width: 14em; font-size: 1em; text-align: left; background-color: #e8ecef; } div.sphinxsidebar img { max-width: 12em; } div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p.logo { margin: 1.2em 0 0.3em 0; font-size: 1em; padding: 0; color: #222222; font-family: "ff-meta-web-pro-1", "ff-meta-web-pro-2", "Arial", "Helvetica Neue", sans-serif; } div.sphinxsidebar h3 a { color: #444444; } div.sphinxsidebar ul, div.sphinxsidebar p { margin-top: 0; padding-left: 0; line-height: 130%; background-color: #e8ecef; } /* No bullets for nested lists, but a little extra indentation */ div.sphinxsidebar ul ul { list-style-type: none; margin-left: 1.5em; padding: 0; } /* A little top/bottom padding to prevent adjacent links' borders * from overlapping each other */ div.sphinxsidebar ul li { padding: 1px 0; } /* A little left-padding to make these align with the ULs */ div.sphinxsidebar p.topless { padding-left: 0 0 0 1em; } /* Make these into hidden one-liners */ div.sphinxsidebar ul li, div.sphinxsidebar p.topless { white-space: nowrap; overflow: hidden; } /* ...which become visible when hovered */ div.sphinxsidebar ul li:hover, div.sphinxsidebar p.topless:hover { overflow: visible; } /* Search text box and "Go" button */ #searchbox { margin-top: 2em; margin-bottom: 1em; background: #ddd; padding: 0.5em; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px; } #searchbox h3 { margin-top: 0; } /* Make search box and button abut and have a border */ input, div.sphinxsidebar input { border: 1px solid #999; float: left; } /* Search textbox */ input[type="text"] { margin: 0; padding: 0 3px; height: 20px; width: 144px; border-top-left-radius: 3px; border-bottom-left-radius: 3px; -moz-border-radius-topleft: 3px; -moz-border-radius-bottomleft: 3px; -webkit-border-top-left-radius: 3px; -webkit-border-bottom-left-radius: 3px; } /* Search button */ input[type="submit"] { margin: 0 0 0 -1px; /* -1px prevents a double-border with textbox */ height: 22px; color: #444; background-color: #e8ecef; padding: 1px 4px; font-weight: bold; border-top-right-radius: 3px; border-bottom-right-radius: 3px; -moz-border-radius-topright: 3px; -moz-border-radius-bottomright: 3px; -webkit-border-top-right-radius: 3px; -webkit-border-bottom-right-radius: 3px; } input[type="submit"]:hover { color: #ffffff; background-color: #8ecc4c; } div.sphinxsidebar p.searchtip { clear: both; padding: 0.5em 0 0 0; background: #ddd; color: #666; font-size: 0.9em; } /* Sidebar links are unusual */ div.sphinxsidebar li a, div.sphinxsidebar p a { background: #e8ecef; /* In case links overlap main content */ border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; border: 1px solid transparent; /* To prevent things jumping around on hover */ padding: 0 5px 0 5px; } div.sphinxsidebar li a:hover, div.sphinxsidebar p a:hover { color: #111; text-decoration: none; border: 1px solid #888; } div.sphinxsidebar p.logo a { border: 0; } /* Tweak any link appearing in a heading */ div.sphinxsidebar h3 a { } /* OTHER STUFF ------------------------------------------------------------ */ cite, code, tt { font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; font-size: 0.95em; letter-spacing: 0.01em; } tt { background-color: #f2f2f2; color: #444; } tt.descname, tt.descclassname, tt.xref { border: 0; } hr { border: 1px solid #abc; margin: 2em; } pre, #_fontwidthtest { font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; margin: 1em 2em; font-size: 0.95em; letter-spacing: 0.015em; line-height: 120%; padding: 0.5em; border: 1px solid #ccc; background-color: #eee; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px; } pre a { color: inherit; text-decoration: underline; } td.linenos pre { margin: 1em 0em; } td.code pre { margin: 1em 0em; } div.quotebar { background-color: #f8f8f8; max-width: 250px; float: right; padding: 2px 7px; border: 1px solid #ccc; } div.topic { background-color: #f8f8f8; } table { border-collapse: collapse; margin: 0 -0.5em 0 -0.5em; } table td, table th { padding: 0.2em 0.5em 0.2em 0.5em; } /* ADMONITIONS AND WARNINGS ------------------------------------------------- */ /* Shared by admonitions, warnings and sidebars */ div.admonition, div.warning, div.sidebar { font-size: 0.9em; margin: 2em; padding: 0; /* border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px; */ } div.admonition p, div.warning p, div.sidebar p { margin: 0.5em 1em 0.5em 1em; padding: 0; } div.admonition pre, div.warning pre, div.sidebar pre { margin: 0.4em 1em 0.4em 1em; } div.admonition p.admonition-title, div.warning p.admonition-title, div.sidebar p.sidebar-title { margin: 0; padding: 0.1em 0 0.1em 0.5em; color: white; font-weight: bold; font-size: 1.1em; text-shadow: 0 1px rgba(0, 0, 0, 0.5); } div.admonition ul, div.admonition ol, div.warning ul, div.warning ol, div.sidebar ul, div.sidebar ol { margin: 0.1em 0.5em 0.5em 3em; padding: 0; } /* Admonitions and sidebars only */ div.admonition, div.sidebar { border: 1px solid #609060; background-color: #e9ffe9; } div.admonition p.admonition-title, div.sidebar p.sidebar-title { background-color: #70A070; border-bottom: 1px solid #609060; } /* Warnings only */ div.warning { border: 1px solid #900000; background-color: #ffe9e9; } div.warning p.admonition-title { background-color: #b04040; border-bottom: 1px solid #900000; } /* Sidebars only */ div.sidebar { max-width: 30%; } div.versioninfo { margin: 1em 0 0 0; border: 1px solid #ccc; background-color: #DDEAF0; padding: 8px; line-height: 1.3em; font-size: 0.9em; } .viewcode-back { font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva', 'Verdana', sans-serif; } div.viewcode-block:target { background-color: #f4debf; border-top: 1px solid #ac9; border-bottom: 1px solid #ac9; } dl { margin: 1em 0 2.5em 0; } dl dt { font-style: italic; } dl dd { color: rgb(68, 68, 68); font-size: 0.95em; } /* Highlight target when you click an internal link */ dt:target { background: #ffe080; } /* Don't highlight whole divs */ div.highlight { background: transparent; } /* But do highlight spans (so search results can be highlighted) */ span.highlight { background: #ffe080; } div.footer { background-color: #465158; color: #eeeeee; padding: 0 2em 2em 2em; clear: both; font-size: 0.8em; text-align: center; } p { margin: 0.8em 0 0.5em 0; } .section p img.math { margin: 0; } .section p img { margin: 1em 2em; } table.docutils td, table.docutils th { padding: 1px 8px 1px 5px; } /* MOBILE LAYOUT -------------------------------------------------------------- */ @media screen and (max-width: 600px) { h1, h2, h3, h4, h5 { position: relative; } ul { padding-left: 1.25em; } div.bodywrapper a.headerlink, #indices-and-tables h1 a { color: #e6e6e6; font-size: 80%; float: right; line-height: 1.8; position: absolute; right: -0.7em; visibility: inherit; } div.bodywrapper h1 a.headerlink, #indices-and-tables h1 a { line-height: 1.5; } pre { font-size: 0.7em; overflow: auto; word-wrap: break-word; white-space: pre-wrap; } div.related ul { height: 2.5em; padding: 0; text-align: left; } div.related ul li { clear: both; color: #465158; padding: 0.2em 0; } div.related ul li:last-child { border-bottom: 1px dotted #8ca1af; padding-bottom: 0.4em; margin-bottom: 1em; width: 100%; } div.related ul li a { color: #465158; padding-right: 0; } div.related ul li a:hover { background: inherit; color: inherit; } div.related ul li.right { clear: none; padding: 0.65em 0; margin-bottom: 0.5em; } div.related ul li.right a { color: #fff; padding-right: 0.8em; } div.related ul li.right a:hover { background-color: #8ca1af; } div.body { clear: both; min-width: 0; word-wrap: break-word; } div.bodywrapper { margin: 0 0 0 0; } div.sphinxsidebar { float: none; margin: 0; width: auto; } div.sphinxsidebar input[type="text"] { height: 2em; line-height: 2em; width: 70%; } div.sphinxsidebar input[type="submit"] { height: 2em; margin-left: 0.5em; width: 20%; } div.sphinxsidebar p.searchtip { background: inherit; margin-bottom: 1em; } div.sphinxsidebar ul li, div.sphinxsidebar p.topless { white-space: normal; } .bodywrapper img { display: block; margin-left: auto; margin-right: auto; max-width: 100%; } div.documentwrapper { float: none; } div.admonition, div.warning, pre, blockquote { margin-left: 0em; margin-right: 0em; } .body p img { margin: 0; } #searchbox { background: transparent; } .related:not(:first-child) li { display: none; } .related:not(:first-child) li.right { display: block; } div.footer { padding: 1em; } .rtd_doc_footer .rtd-badge { float: none; margin: 1em auto; position: static; } .rtd_doc_footer .rtd-badge.revsys-inline { margin-right: auto; margin-bottom: 2em; } table.indextable { display: block; width: auto; } .indextable tr { display: block; } .indextable td { display: block; padding: 0; width: auto !important; } .indextable td dt { margin: 1em 0; } ul.search { margin-left: 0.25em; } ul.search li div.context { font-size: 90%; line-height: 1.1; margin-bottom: 1; margin-left: 0; } } PKC2,~~!~!'facehugger-latest/_static/underscore.js// Underscore.js 0.5.5 // (c) 2009 Jeremy Ashkenas, DocumentCloud Inc. // Underscore is freely distributable under the terms of the MIT license. // Portions of Underscore are inspired by or borrowed from Prototype.js, // Oliver Steele's Functional, and John Resig's Micro-Templating. // For all details and documentation: // http://documentcloud.github.com/underscore/ (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=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;gf?1:0}),"value")};b.sortedIndex=function(a,c,d){d=d||b.identity;for(var e=0,f=a.length;e>1;d(a[g])=0})})};b.zip=function(){for(var a=b.toArray(arguments),c=b.max(b.pluck(a,"length")),d=new Array(c),e=0;e0?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}})(); PK1eCq,facehugger-latest/_static/readthedocs-ext.js // Intenionally left blank PKC<>)facehugger-latest/_static/ajax-loader.gifGIF89aU|NU|l!Created with ajaxload.info! ! NETSCAPE2.0,30Ikc:Nf E1º.`q-[9ݦ9 JkH! ,4N!  DqBQT`1 `LE[|ua C%$*! ,62#+AȐ̔V/cNIBap ̳ƨ+Y2d! ,3b%+2V_ ! 1DaFbR]=08,Ȥr9L! ,2r'+JdL &v`\bThYB)@<&,ȤR! ,3 9tڞ0!.BW1  sa50 m)J! ,2 ٜU]qp`a4AF0` @1Α! ,20IeBԜ) q10ʰPaVڥ ub[;PKCPu u %facehugger-latest/_static/comment.pngPNG  IHDRa OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3-bKGD pHYs  tIME 1;VIDAT8ukU?sg4h`G1 RQܸp%Bn"bЍXJ .4V iZ##T;m!4bP~7r>ιbwc;m;oӍAΆ ζZ^/|s{;yR=9(rtVoG1w#_ө{*E&!(LVuoᲵ‘D PG4 :&~*ݳreu: S-,U^E&JY[P!RB ŖޞʖR@_ȐdBfNvHf"2T]R j'B1ddAak/DIJD D2H&L`&L $Ex,6|~_\P $MH`I=@Z||ttvgcЕWTZ'3rje"ܵx9W> mb|byfFRx{w%DZC$wdցHmWnta(M<~;9]C/_;Տ#}o`zSڷ_>:;x컓?yݩ|}~wam-/7=0S5RP"*֯ IENDB`PKChkk"facehugger-latest/_static/down.pngPNG  IHDRasRGBbKGDC pHYs B(xtIME"U{IDAT8ҡNCAJ, ++@4>/U^,~T&3M^^^PM6ٹs*RJa)eG*W<"F Fg78G>q OIp:sAj5GنyD^+yU:p_%G@D|aOs(yM,"msx:.b@D|`Vٟ۲иeKſ/G!IENDB`PKC+0"facehugger-latest/_static/file.pngPNG  IHDRabKGD pHYs  tIME  )TIDAT8˭J@Ir('[ "&xYZ X0!i|_@tD] #xjv YNaEi(əy@D&`6PZk$)5%"z.NA#Aba`Vs_3c,2mj [klvy|!Iմy;v "߮a?A7`c^nk?Bg}TЙD# "RD1yER*6MJ3K_Ut8F~IENDB`PKC[{gtt(facehugger-latest/_static/up-pressed.pngPNG  IHDRasRGBbKGDC pHYs B(xtIME ,ZeIDAT8͓jA*WKk-,By@- و/`cXYh!6jf GrOlXvvfk2!p!GOOԲ &zf 6|M~%`]* ΛM]K ZĆ1Er%ȶcm1`= 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() { $('\u00B6'). attr('href', '#' + this.id). attr('title', _('Permalink to this headline')). appendTo(this); }); $('dt[id]').each(function() { $('\u00B6'). 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); $('') .appendTo($('#searchbox')); } }, /** * 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() { $('#searchbox .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(); }); PKCl8$facehugger-latest/_static/sidebar.js/* * 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'); // for some reason, the document has no sidebar; do not run into errors if (!sidebar.length) return; // 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( '
«
' ); 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>>(facehugger-latest/_static/searchtools.js/* * searchtools.js_t * ~~~~~~~~~~~~~~~~ * * 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 = $('
').text(excerpt); $.each(hlwords, function() { rv = rv.highlightText(this, 'highlighted'); }); return rv; } /** * Porter Stemmer */ var Stemmer = 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 = $('

' + _('Searching') + '

').appendTo(this.out); this.dots = $('').appendTo(this.title); this.status = $('

').appendTo(this.out); this.output = $('