Prepares to packaging

Creates all necessary files. 
Instructions are taken from here : 
http://guide.python-distribute.org/creation.html

Some steps are still to be performed.

Reported-by: Julien Lengrand-Lambert
Signed-off-by: Julien Lengrand-Lambert <julien@lengrandlambert.fr>
This commit is contained in:
Julien Lengrand-Lambert
2011-12-29 17:00:16 +01:00
parent ad0f116ca7
commit 8f3a77ceb5
12 changed files with 536 additions and 14 deletions

1
CHANGES.txt Normal file
View File

@@ -0,0 +1 @@
v0.1.0, 12-29-2011 -- Initial release.

2
MANIFEST.in Normal file
View File

@@ -0,0 +1,2 @@
include *.txt
recursive-include docs *.html

View File

@@ -52,12 +52,12 @@ Please note that the library is in current development, and is only available as
To use Tippy, you will need the last OpenCV version with Python bindings. A descriptive tutorial for Linux systems can be found [here](http://opencv.willowgarage.com/wiki/InstallGuide%20%3A%20Debian).
Being in the very beginning of its development, Tippy yet is not available in packaged version. To use it, you will need to downlad the source file and include them in your application.
Being in the very beginning of its development, Tippy yet is not available in packaged version. To use it, you will need to download the source file and include them in your application.
The action is pretty straightforward though:
- Download the tippy folder of the Tippy project
- Place it in your working directory.
- import parts of the library as you wish by using 'import file' in your python code.
- import parts of the library as you wish by using 'import file' in your Python code.
## Hints and Usage
@@ -67,13 +67,13 @@ In addition, tests should be carried out so that the code contain as few hidden
Finally, functions should be heavily documented to help users dig in without encounter language problems.
I am currently thinking about generating a more complete and redable documentation, such as html output. It should come soon.
I am currently thinking about generating a more complete and readable documentation, such as html output. It should come soon.
## Copyright
Copyright © 2011 Julien Lengrand-Lambert
Files are licensed under the under the BSD License. See the file COPYING for details.
Files are licensed under the under the BSD License. See the file LICENCE.txt for details.
You are free to use it as you wish, but I would love if you let me know ^^
Image: Paul Martin Eldridge / FreeDigitalPhotos.net
@@ -83,5 +83,4 @@ Image: Paul Martin Eldridge / FreeDigitalPhotos.net
I would enjoy having feedback if you use this theme.
Feel free to mail me for any comment or request.
You can contact me at julien at lengrand dot fr, or on my [current website](http://www.lengrand.fr)
You can contact me at julien@lengrand.fr, or on my [current website](http://www.lengrand.fr)

75
README.txt Normal file
View File

@@ -0,0 +1,75 @@
===========
Tippy : another Toolbox for Image Processing in PYthon
===========
Tippy is a set of functions and methods designed to reduce as much as possible the code needed to deploy an <Image Processing> or <Computer Vision> algorithm. It is based on the famous <OpenCV> library and its Python bindings.
OpenCV is one of the most famous Computer Vision library in the world, and surely the most famous one in the open-source one. It provides more than 500 functions, from basic one to complete and complex methods.
It is mainly implemented in C code, but now supports lots of languages and platforms (C++, java, iphone and android, ...).
This project aims at magnifying the power of OpenCV in using the power of Python. The idea is to get as much results as possible with as little code as possible.
In this way, this code will keep using well known OpenCV structures (such as cvMat or IplImage) while simplifying its use.
Let's imagine we have an RGB image, and we want to display the histogram of its blue channel values.
Typical usage often looks like this::
#!/usr/bin/env python
import cv
from tippy import statistics as st
from tippy import display_operations as do
# test with 8 bits color image
img_name = "tippy/data/tippy.jpg"
img = cv.LoadImage(img_name, cv.CV_LOAD_IMAGE_COLOR)
hist = st.Histogram(img)
imgs = hist.to_images() # list of Red, Green, Blue channels
do.display_single_image(imgs[2], "Blue channel histogram of the tippy image")
**Please note that the library is in current development, and is only available as source code for now. This explains why the bin folder is still empty.**
A Installation
=========
To use Tippy, you will need the last OpenCV version with Python bindings. A descriptive tutorial for Linux systems can be found here :http://opencv.willowgarage.com/wiki/InstallGuide%20%3A%20Debian.
Being in the very beginning of its development, Tippy yet is not available in packaged version. To use it, you will need to download the source file and include them in your application.
The action is pretty straightforward though:
* Download the tippy folder of the Tippy project
* Place it in your working directory.
* import parts of the library as you wish by using 'import file' in your Python code.
B Hints and Usage
=========
Important points of Tippy are documentation and examples.
An example will be create for every single function present in the Tippy package, so that it can easily be used by everyone.
In addition, tests should be carried out so that the code contain as few hidden bugs as possible.
Finally, functions should be heavily documented to help users dig in without encounter language problems.
I am currently thinking about generating a more complete and readable documentation, such as html output. It should come soon.
C Copyright
=========
Copyright © 2011 Julien Lengrand-Lambert
Files are licensed under the under the BSD License. See the file LICENCE.txt for details.
You are free to use it as you wish, but I would love if you let me know ^^
Image: Paul Martin Eldridge / FreeDigitalPhotos.net
D Contact
=========
I would enjoy having feedback if you use this theme.
Feel free to mail me for any comment or request.
You can contact me at julien@lengrand.fr, or on my current website : http://www.lengrand.fr

View File

@@ -14,13 +14,13 @@
</target>
<!--Compiling sources -->
<target name="compile all">
<py-compile dir="${src.dir}" pythonpath="${src.dir}" optimize="0"/>
<py-compile dir="${base.dir}" pythonpath="${src.dir}" optimize="0"/>
</target>
<target name="compile examples">
<py-compile dir="${ex.dir}" pythonpath="${ex.dir}" optimize="0"/>
<py-compile dir="${base.dir}" pythonpath="${ex.dir}" optimize="0"/>
</target>
<target name="compile tests">
<py-compile dir="${tests.dir}" pythonpath="${tests.dir}" optimize="0"/>
<py-compile dir="${base.dir}" pythonpath="${tests.dir}" optimize="0"/>
</target>
<!--Run all tests -->
<target name="tests">

View File

@@ -17,6 +17,7 @@
<font color="#ffffff" face="helvetica, arial"><big><strong>Package Contents</strong></big></font></td></tr>
<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="examples.region_growing.html">region_growing</a><br>
</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="examples.histogram_display.html">histogram_display</a><br>
</td><td width="25%" valign=top><a href="examples.region_growing.html">region_growing</a><br>
</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table>
</body></html>

View File

@@ -18,8 +18,9 @@
<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="tippy.basic_operations.html">basic_operations</a><br>
</td><td width="25%" valign=top><a href="tippy.display_operations.html">display_operations</a><br>
<a href="tippy.display_operations.html">display_operations</a><br>
</td><td width="25%" valign=top><a href="tippy.segmentations.html">segmentations</a><br>
<a href="tippy.statistics.html">statistics</a><br>
</td><td width="25%" valign=top><a href="tippy.tests.html"><strong>tests</strong>&nbsp;(package)</a><br>
</td></tr></table></td></tr></table>
</td><td width="25%" valign=top></td></tr></table></td></tr></table>
</body></html>

81
doc/tippy.statistics.html Normal file
View File

@@ -0,0 +1,81 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Python: module tippy.statistics</title>
</head><body bgcolor="#f0f0f8">
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="tippy.html"><font color="#ffffff">tippy</font></a>.statistics</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jlengrand/git/Tippy/tippy/statistics.py">/home/jlengrand/git/Tippy/tippy/statistics.py</a></font></td></tr></table>
<p><tt>Contains&nbsp;functions&nbsp;related&nbsp;to&nbsp;statistics&nbsp;processing.&nbsp;<br>
&nbsp;<br>
Created&nbsp;on&nbsp;Dec&nbsp;11,&nbsp;2011<br>
&nbsp;<br>
@author:&nbsp;Julien&nbsp;Lengrand-Lambert<br>
@email:&nbsp;julien@lengrand.fr</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="cv.html">cv</a><br>
</td><td width="25%" valign=top><a href="sys.html">sys</a><br>
</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl>
<dt><font face="helvetica, arial"><a href="tippy.statistics.html#Histogram">Histogram</a>
</font></dt></dl>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="Histogram">class <strong>Histogram</strong></a></font></td></tr>
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>This&nbsp;class&nbsp;is&nbsp;designed&nbsp;to&nbsp;contain&nbsp;an&nbsp;openCV&nbsp;class&nbsp;plus&nbsp;some&nbsp;more&nbsp;information<br>
to&nbsp;ease&nbsp;further&nbsp;operations.<br>
&nbsp;<br>
NOTE&nbsp;:&nbsp;Supports&nbsp;only&nbsp;8&nbsp;bits&nbsp;images&nbsp;for&nbsp;now.&nbsp;<br>
More&nbsp;should&nbsp;be&nbsp;added&nbsp;soon.<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="Histogram-__init__"><strong>__init__</strong></a>(self, img, bin_fact<font color="#909090">=8L</font>, min_range<font color="#909090">=0</font>)</dt></dl>
<dl><dt><a name="Histogram-channel_to_image"><strong>channel_to_image</strong></a>(self, chan, scale_x<font color="#909090">=3</font>, scale_y<font color="#909090">=3</font>, y_range<font color="#909090">=64</font>)</dt><dd><tt>Creates&nbsp;an&nbsp;iplimage&nbsp;displaying&nbsp;histogram&nbsp;results&nbsp;after&nbsp;its&nbsp;computation</tt></dd></dl>
<dl><dt><a name="Histogram-compute_histogram"><strong>compute_histogram</strong></a>(self, img, bin_fact<font color="#909090">=8L</font>, min_range<font color="#909090">=0</font>)</dt><dd><tt>Creates&nbsp;the&nbsp;histogram&nbsp;of&nbsp;the&nbsp;input&nbsp;image<br>
&nbsp;<br>
Returns&nbsp;a&nbsp;Tippy&nbsp;histogram,&nbsp;with&nbsp;one&nbsp;item&nbsp;by&nbsp;channel&nbsp;of&nbsp;input&nbsp;image.<br>
The&nbsp;number&nbsp;of&nbsp;bins&nbsp;is&nbsp;2^bin_fact&nbsp;(256&nbsp;by&nbsp;default)<br>
min_range&nbsp;is&nbsp;the&nbsp;value&nbsp;of&nbsp;the&nbsp;lowest&nbsp;bin<br>
max_range&nbsp;is&nbsp;automatically&nbsp;calculated&nbsp;using&nbsp;the&nbsp;input&nbsp;image&nbsp;depth.&nbsp;<br>
max_range&nbsp;=&nbsp;(2^img_depth)<br>
&nbsp;<br>
NOTE&nbsp;:&nbsp;Supports&nbsp;only&nbsp;8&nbsp;bits&nbsp;images&nbsp;for&nbsp;now.&nbsp;<br>
More&nbsp;should&nbsp;be&nbsp;added&nbsp;soon.</tt></dd></dl>
<dl><dt><a name="Histogram-to_images"><strong>to_images</strong></a>(self, scale_x<font color="#909090">=3</font>, scale_y<font color="#909090">=3</font>, y_range<font color="#909090">=64</font>)</dt><dd><tt>Creates&nbsp;a&nbsp;graphical&nbsp;representation&nbsp;of&nbsp;an&nbsp;histogram.<br>
Outputs&nbsp;a&nbsp;list&nbsp;of&nbsp;nChannels&nbsp;iplimages,&nbsp;one&nbsp;for&nbsp;each&nbsp;channel&nbsp;of&nbsp;the&nbsp;<br>
histogram.&nbsp;<br>
The&nbsp;images&nbsp;should&nbsp;have&nbsp;the&nbsp;same&nbsp;depth&nbsp;as&nbsp;the&nbsp;image&nbsp;used&nbsp;to&nbsp;create&nbsp;the&nbsp;<br>
histogram.</tt></dd></dl>
<dl><dt><a name="Histogram-to_tables"><strong>to_tables</strong></a>(self)</dt><dd><tt>Transforms&nbsp;an&nbsp;histogram&nbsp;into&nbsp;a&nbsp;list&nbsp;of&nbsp;values.<br>
This&nbsp;way,&nbsp;it&nbsp;is&nbsp;easier&nbsp;to&nbsp;process&nbsp;for&nbsp;calculations.<br>
&nbsp;<br>
Returns&nbsp;a&nbsp;list&nbsp;of&nbsp;nChannels&nbsp;items.<br>
&nbsp;<br>
NOTE&nbsp;:&nbsp;Supports&nbsp;only&nbsp;8&nbsp;bits&nbsp;images&nbsp;for&nbsp;now.&nbsp;<br>
More&nbsp;should&nbsp;be&nbsp;added&nbsp;soon.</tt></dd></dl>
</td></tr></table></td></tr></table>
</body></html>

View File

@@ -20,5 +20,6 @@
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="tippy.tests.test_basic_operations.html">test_basic_operations</a><br>
</td><td width="25%" valign=top><a href="tippy.tests.test_display_operations.html">test_display_operations</a><br>
</td><td width="25%" valign=top><a href="tippy.tests.test_segmentation.html">test_segmentation</a><br>
</td><td width="25%" valign=top></td></tr></table></td></tr></table>
</td><td width="25%" valign=top><a href="tippy.tests.test_statistics.html">test_statistics</a><br>
</td></tr></table></td></tr></table>
</body></html>

View File

@@ -0,0 +1,344 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Python: module tippy.tests.test_statistics</title>
</head><body bgcolor="#f0f0f8">
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="tippy.html"><font color="#ffffff">tippy</font></a>.<a href="tippy.tests.html"><font color="#ffffff">tests</font></a>.test_statistics</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jlengrand/git/Tippy/tippy/tests/test_statistics.py">/home/jlengrand/git/Tippy/tippy/tests/test_statistics.py</a></font></td></tr></table>
<p><tt>Created&nbsp;on&nbsp;Dec&nbsp;11,&nbsp;2011<br>
&nbsp;<br>
@author:&nbsp;Julien&nbsp;Lengrand-Lambert<br>
@email:&nbsp;julien@lengrand.fr</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="cv.html">cv</a><br>
</td><td width="25%" valign=top><a href="tippy.statistics.html">tippy.statistics</a><br>
</td><td width="25%" valign=top><a href="unittest.html">unittest</a><br>
</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl>
<dt><font face="helvetica, arial"><a href="unittest.case.html#TestCase">unittest.case.TestCase</a>(<a href="__builtin__.html#object">__builtin__.object</a>)
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="tippy.tests.test_statistics.html#Test">Test</a>
</font></dt></dl>
</dd>
</dl>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="Test">class <strong>Test</strong></a>(<a href="unittest.case.html#TestCase">unittest.case.TestCase</a>)</font></td></tr>
<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl><dt>Method resolution order:</dt>
<dd><a href="tippy.tests.test_statistics.html#Test">Test</a></dd>
<dd><a href="unittest.case.html#TestCase">unittest.case.TestCase</a></dd>
<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
</dl>
<hr>
Methods defined here:<br>
<dl><dt><a name="Test-setUp"><strong>setUp</strong></a>(self)</dt><dd><tt>This&nbsp;method&nbsp;is&nbsp;called&nbsp;before&nbsp;each&nbsp;test</tt></dd></dl>
<dl><dt><a name="Test-tearDown"><strong>tearDown</strong></a>(self)</dt><dd><tt>This&nbsp;method&nbsp;is&nbsp;called&nbsp;after&nbsp;each&nbsp;test</tt></dd></dl>
<dl><dt><a name="Test-test_channel_to_image"><strong>test_channel_to_image</strong></a>(self)</dt></dl>
<dl><dt><a name="Test-test_compute_histogram"><strong>test_compute_histogram</strong></a>(self)</dt><dd><tt>#---&nbsp;<br>
##&nbsp;TESTS</tt></dd></dl>
<dl><dt><a name="Test-test_to_images"><strong>test_to_images</strong></a>(self)</dt></dl>
<dl><dt><a name="Test-test_to_tables"><strong>test_to_tables</strong></a>(self)</dt></dl>
<hr>
Methods inherited from <a href="unittest.case.html#TestCase">unittest.case.TestCase</a>:<br>
<dl><dt><a name="Test-__call__"><strong>__call__</strong></a>(self, *args, **kwds)</dt></dl>
<dl><dt><a name="Test-__eq__"><strong>__eq__</strong></a>(self, other)</dt></dl>
<dl><dt><a name="Test-__hash__"><strong>__hash__</strong></a>(self)</dt></dl>
<dl><dt><a name="Test-__init__"><strong>__init__</strong></a>(self, methodName<font color="#909090">='runTest'</font>)</dt><dd><tt>Create&nbsp;an&nbsp;instance&nbsp;of&nbsp;the&nbsp;class&nbsp;that&nbsp;will&nbsp;use&nbsp;the&nbsp;named&nbsp;test<br>
method&nbsp;when&nbsp;executed.&nbsp;Raises&nbsp;a&nbsp;ValueError&nbsp;if&nbsp;the&nbsp;instance&nbsp;does<br>
not&nbsp;have&nbsp;a&nbsp;method&nbsp;with&nbsp;the&nbsp;specified&nbsp;name.</tt></dd></dl>
<dl><dt><a name="Test-__ne__"><strong>__ne__</strong></a>(self, other)</dt></dl>
<dl><dt><a name="Test-__repr__"><strong>__repr__</strong></a>(self)</dt></dl>
<dl><dt><a name="Test-__str__"><strong>__str__</strong></a>(self)</dt></dl>
<dl><dt><a name="Test-addCleanup"><strong>addCleanup</strong></a>(self, function, *args, **kwargs)</dt><dd><tt>Add&nbsp;a&nbsp;function,&nbsp;with&nbsp;arguments,&nbsp;to&nbsp;be&nbsp;called&nbsp;when&nbsp;the&nbsp;test&nbsp;is<br>
completed.&nbsp;Functions&nbsp;added&nbsp;are&nbsp;called&nbsp;on&nbsp;a&nbsp;LIFO&nbsp;basis&nbsp;and&nbsp;are<br>
called&nbsp;after&nbsp;tearDown&nbsp;on&nbsp;test&nbsp;failure&nbsp;or&nbsp;success.<br>
&nbsp;<br>
Cleanup&nbsp;items&nbsp;are&nbsp;called&nbsp;even&nbsp;if&nbsp;setUp&nbsp;fails&nbsp;(unlike&nbsp;tearDown).</tt></dd></dl>
<dl><dt><a name="Test-addTypeEqualityFunc"><strong>addTypeEqualityFunc</strong></a>(self, typeobj, function)</dt><dd><tt>Add&nbsp;a&nbsp;type&nbsp;specific&nbsp;assertEqual&nbsp;style&nbsp;function&nbsp;to&nbsp;compare&nbsp;a&nbsp;type.<br>
&nbsp;<br>
This&nbsp;method&nbsp;is&nbsp;for&nbsp;use&nbsp;by&nbsp;<a href="unittest.case.html#TestCase">TestCase</a>&nbsp;subclasses&nbsp;that&nbsp;need&nbsp;to&nbsp;register<br>
their&nbsp;own&nbsp;type&nbsp;equality&nbsp;functions&nbsp;to&nbsp;provide&nbsp;nicer&nbsp;error&nbsp;messages.<br>
&nbsp;<br>
Args:<br>
&nbsp;&nbsp;&nbsp;&nbsp;typeobj:&nbsp;The&nbsp;data&nbsp;type&nbsp;to&nbsp;call&nbsp;this&nbsp;function&nbsp;on&nbsp;when&nbsp;both&nbsp;values<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;are&nbsp;of&nbsp;the&nbsp;same&nbsp;type&nbsp;in&nbsp;<a href="#Test-assertEqual">assertEqual</a>().<br>
&nbsp;&nbsp;&nbsp;&nbsp;function:&nbsp;The&nbsp;callable&nbsp;taking&nbsp;two&nbsp;arguments&nbsp;and&nbsp;an&nbsp;optional<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg=&nbsp;argument&nbsp;that&nbsp;raises&nbsp;self.<strong>failureException</strong>&nbsp;with&nbsp;a<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;useful&nbsp;error&nbsp;message&nbsp;when&nbsp;the&nbsp;two&nbsp;arguments&nbsp;are&nbsp;not&nbsp;equal.</tt></dd></dl>
<dl><dt><a name="Test-assertAlmostEqual"><strong>assertAlmostEqual</strong></a>(self, first, second, places<font color="#909090">=None</font>, msg<font color="#909090">=None</font>, delta<font color="#909090">=None</font>)</dt><dd><tt>Fail&nbsp;if&nbsp;the&nbsp;two&nbsp;objects&nbsp;are&nbsp;unequal&nbsp;as&nbsp;determined&nbsp;by&nbsp;their<br>
difference&nbsp;rounded&nbsp;to&nbsp;the&nbsp;given&nbsp;number&nbsp;of&nbsp;decimal&nbsp;places<br>
(default&nbsp;7)&nbsp;and&nbsp;comparing&nbsp;to&nbsp;zero,&nbsp;or&nbsp;by&nbsp;comparing&nbsp;that&nbsp;the<br>
between&nbsp;the&nbsp;two&nbsp;objects&nbsp;is&nbsp;more&nbsp;than&nbsp;the&nbsp;given&nbsp;delta.<br>
&nbsp;<br>
Note&nbsp;that&nbsp;decimal&nbsp;places&nbsp;(from&nbsp;zero)&nbsp;are&nbsp;usually&nbsp;not&nbsp;the&nbsp;same<br>
as&nbsp;significant&nbsp;digits&nbsp;(measured&nbsp;from&nbsp;the&nbsp;most&nbsp;signficant&nbsp;digit).<br>
&nbsp;<br>
If&nbsp;the&nbsp;two&nbsp;objects&nbsp;compare&nbsp;equal&nbsp;then&nbsp;they&nbsp;will&nbsp;automatically<br>
compare&nbsp;almost&nbsp;equal.</tt></dd></dl>
<dl><dt><a name="Test-assertAlmostEquals"><strong>assertAlmostEquals</strong></a> = assertAlmostEqual(self, first, second, places<font color="#909090">=None</font>, msg<font color="#909090">=None</font>, delta<font color="#909090">=None</font>)</dt><dd><tt>Fail&nbsp;if&nbsp;the&nbsp;two&nbsp;objects&nbsp;are&nbsp;unequal&nbsp;as&nbsp;determined&nbsp;by&nbsp;their<br>
difference&nbsp;rounded&nbsp;to&nbsp;the&nbsp;given&nbsp;number&nbsp;of&nbsp;decimal&nbsp;places<br>
(default&nbsp;7)&nbsp;and&nbsp;comparing&nbsp;to&nbsp;zero,&nbsp;or&nbsp;by&nbsp;comparing&nbsp;that&nbsp;the<br>
between&nbsp;the&nbsp;two&nbsp;objects&nbsp;is&nbsp;more&nbsp;than&nbsp;the&nbsp;given&nbsp;delta.<br>
&nbsp;<br>
Note&nbsp;that&nbsp;decimal&nbsp;places&nbsp;(from&nbsp;zero)&nbsp;are&nbsp;usually&nbsp;not&nbsp;the&nbsp;same<br>
as&nbsp;significant&nbsp;digits&nbsp;(measured&nbsp;from&nbsp;the&nbsp;most&nbsp;signficant&nbsp;digit).<br>
&nbsp;<br>
If&nbsp;the&nbsp;two&nbsp;objects&nbsp;compare&nbsp;equal&nbsp;then&nbsp;they&nbsp;will&nbsp;automatically<br>
compare&nbsp;almost&nbsp;equal.</tt></dd></dl>
<dl><dt><a name="Test-assertDictContainsSubset"><strong>assertDictContainsSubset</strong></a>(self, expected, actual, msg<font color="#909090">=None</font>)</dt><dd><tt>Checks&nbsp;whether&nbsp;actual&nbsp;is&nbsp;a&nbsp;superset&nbsp;of&nbsp;expected.</tt></dd></dl>
<dl><dt><a name="Test-assertDictEqual"><strong>assertDictEqual</strong></a>(self, d1, d2, msg<font color="#909090">=None</font>)</dt></dl>
<dl><dt><a name="Test-assertEqual"><strong>assertEqual</strong></a>(self, first, second, msg<font color="#909090">=None</font>)</dt><dd><tt>Fail&nbsp;if&nbsp;the&nbsp;two&nbsp;objects&nbsp;are&nbsp;unequal&nbsp;as&nbsp;determined&nbsp;by&nbsp;the&nbsp;'=='<br>
operator.</tt></dd></dl>
<dl><dt><a name="Test-assertEquals"><strong>assertEquals</strong></a> = assertEqual(self, first, second, msg<font color="#909090">=None</font>)</dt><dd><tt>Fail&nbsp;if&nbsp;the&nbsp;two&nbsp;objects&nbsp;are&nbsp;unequal&nbsp;as&nbsp;determined&nbsp;by&nbsp;the&nbsp;'=='<br>
operator.</tt></dd></dl>
<dl><dt><a name="Test-assertFalse"><strong>assertFalse</strong></a>(self, expr, msg<font color="#909090">=None</font>)</dt><dd><tt>Check&nbsp;that&nbsp;the&nbsp;expression&nbsp;is&nbsp;false.</tt></dd></dl>
<dl><dt><a name="Test-assertGreater"><strong>assertGreater</strong></a>(self, a, b, msg<font color="#909090">=None</font>)</dt><dd><tt>Just&nbsp;like&nbsp;<a href="#Test-assertTrue">assertTrue</a>(a&nbsp;&gt;&nbsp;b),&nbsp;but&nbsp;with&nbsp;a&nbsp;nicer&nbsp;default&nbsp;message.</tt></dd></dl>
<dl><dt><a name="Test-assertGreaterEqual"><strong>assertGreaterEqual</strong></a>(self, a, b, msg<font color="#909090">=None</font>)</dt><dd><tt>Just&nbsp;like&nbsp;<a href="#Test-assertTrue">assertTrue</a>(a&nbsp;&gt;=&nbsp;b),&nbsp;but&nbsp;with&nbsp;a&nbsp;nicer&nbsp;default&nbsp;message.</tt></dd></dl>
<dl><dt><a name="Test-assertIn"><strong>assertIn</strong></a>(self, member, container, msg<font color="#909090">=None</font>)</dt><dd><tt>Just&nbsp;like&nbsp;<a href="#Test-assertTrue">assertTrue</a>(a&nbsp;in&nbsp;b),&nbsp;but&nbsp;with&nbsp;a&nbsp;nicer&nbsp;default&nbsp;message.</tt></dd></dl>
<dl><dt><a name="Test-assertIs"><strong>assertIs</strong></a>(self, expr1, expr2, msg<font color="#909090">=None</font>)</dt><dd><tt>Just&nbsp;like&nbsp;<a href="#Test-assertTrue">assertTrue</a>(a&nbsp;is&nbsp;b),&nbsp;but&nbsp;with&nbsp;a&nbsp;nicer&nbsp;default&nbsp;message.</tt></dd></dl>
<dl><dt><a name="Test-assertIsInstance"><strong>assertIsInstance</strong></a>(self, obj, cls, msg<font color="#909090">=None</font>)</dt><dd><tt>Same&nbsp;as&nbsp;<a href="#Test-assertTrue">assertTrue</a>(isinstance(obj,&nbsp;cls)),&nbsp;with&nbsp;a&nbsp;nicer<br>
default&nbsp;message.</tt></dd></dl>
<dl><dt><a name="Test-assertIsNone"><strong>assertIsNone</strong></a>(self, obj, msg<font color="#909090">=None</font>)</dt><dd><tt>Same&nbsp;as&nbsp;<a href="#Test-assertTrue">assertTrue</a>(obj&nbsp;is&nbsp;None),&nbsp;with&nbsp;a&nbsp;nicer&nbsp;default&nbsp;message.</tt></dd></dl>
<dl><dt><a name="Test-assertIsNot"><strong>assertIsNot</strong></a>(self, expr1, expr2, msg<font color="#909090">=None</font>)</dt><dd><tt>Just&nbsp;like&nbsp;<a href="#Test-assertTrue">assertTrue</a>(a&nbsp;is&nbsp;not&nbsp;b),&nbsp;but&nbsp;with&nbsp;a&nbsp;nicer&nbsp;default&nbsp;message.</tt></dd></dl>
<dl><dt><a name="Test-assertIsNotNone"><strong>assertIsNotNone</strong></a>(self, obj, msg<font color="#909090">=None</font>)</dt><dd><tt>Included&nbsp;for&nbsp;symmetry&nbsp;with&nbsp;assertIsNone.</tt></dd></dl>
<dl><dt><a name="Test-assertItemsEqual"><strong>assertItemsEqual</strong></a>(self, expected_seq, actual_seq, msg<font color="#909090">=None</font>)</dt><dd><tt>An&nbsp;unordered&nbsp;sequence&nbsp;specific&nbsp;comparison.&nbsp;It&nbsp;asserts&nbsp;that<br>
actual_seq&nbsp;and&nbsp;expected_seq&nbsp;have&nbsp;the&nbsp;same&nbsp;element&nbsp;counts.<br>
Equivalent&nbsp;to::<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#Test-assertEqual">assertEqual</a>(Counter(iter(actual_seq)),<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Counter(iter(expected_seq)))<br>
&nbsp;<br>
Asserts&nbsp;that&nbsp;each&nbsp;element&nbsp;has&nbsp;the&nbsp;same&nbsp;count&nbsp;in&nbsp;both&nbsp;sequences.<br>
Example:<br>
&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;[0,&nbsp;1,&nbsp;1]&nbsp;and&nbsp;[1,&nbsp;0,&nbsp;1]&nbsp;compare&nbsp;equal.<br>
&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;[0,&nbsp;0,&nbsp;1]&nbsp;and&nbsp;[0,&nbsp;1]&nbsp;compare&nbsp;unequal.</tt></dd></dl>
<dl><dt><a name="Test-assertLess"><strong>assertLess</strong></a>(self, a, b, msg<font color="#909090">=None</font>)</dt><dd><tt>Just&nbsp;like&nbsp;<a href="#Test-assertTrue">assertTrue</a>(a&nbsp;&lt;&nbsp;b),&nbsp;but&nbsp;with&nbsp;a&nbsp;nicer&nbsp;default&nbsp;message.</tt></dd></dl>
<dl><dt><a name="Test-assertLessEqual"><strong>assertLessEqual</strong></a>(self, a, b, msg<font color="#909090">=None</font>)</dt><dd><tt>Just&nbsp;like&nbsp;<a href="#Test-assertTrue">assertTrue</a>(a&nbsp;&lt;=&nbsp;b),&nbsp;but&nbsp;with&nbsp;a&nbsp;nicer&nbsp;default&nbsp;message.</tt></dd></dl>
<dl><dt><a name="Test-assertListEqual"><strong>assertListEqual</strong></a>(self, list1, list2, msg<font color="#909090">=None</font>)</dt><dd><tt>A&nbsp;list-specific&nbsp;equality&nbsp;assertion.<br>
&nbsp;<br>
Args:<br>
&nbsp;&nbsp;&nbsp;&nbsp;list1:&nbsp;The&nbsp;first&nbsp;list&nbsp;to&nbsp;compare.<br>
&nbsp;&nbsp;&nbsp;&nbsp;list2:&nbsp;The&nbsp;second&nbsp;list&nbsp;to&nbsp;compare.<br>
&nbsp;&nbsp;&nbsp;&nbsp;msg:&nbsp;Optional&nbsp;message&nbsp;to&nbsp;use&nbsp;on&nbsp;failure&nbsp;instead&nbsp;of&nbsp;a&nbsp;list&nbsp;of<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;differences.</tt></dd></dl>
<dl><dt><a name="Test-assertMultiLineEqual"><strong>assertMultiLineEqual</strong></a>(self, first, second, msg<font color="#909090">=None</font>)</dt><dd><tt>Assert&nbsp;that&nbsp;two&nbsp;multi-line&nbsp;strings&nbsp;are&nbsp;equal.</tt></dd></dl>
<dl><dt><a name="Test-assertNotAlmostEqual"><strong>assertNotAlmostEqual</strong></a>(self, first, second, places<font color="#909090">=None</font>, msg<font color="#909090">=None</font>, delta<font color="#909090">=None</font>)</dt><dd><tt>Fail&nbsp;if&nbsp;the&nbsp;two&nbsp;objects&nbsp;are&nbsp;equal&nbsp;as&nbsp;determined&nbsp;by&nbsp;their<br>
difference&nbsp;rounded&nbsp;to&nbsp;the&nbsp;given&nbsp;number&nbsp;of&nbsp;decimal&nbsp;places<br>
(default&nbsp;7)&nbsp;and&nbsp;comparing&nbsp;to&nbsp;zero,&nbsp;or&nbsp;by&nbsp;comparing&nbsp;that&nbsp;the<br>
between&nbsp;the&nbsp;two&nbsp;objects&nbsp;is&nbsp;less&nbsp;than&nbsp;the&nbsp;given&nbsp;delta.<br>
&nbsp;<br>
Note&nbsp;that&nbsp;decimal&nbsp;places&nbsp;(from&nbsp;zero)&nbsp;are&nbsp;usually&nbsp;not&nbsp;the&nbsp;same<br>
as&nbsp;significant&nbsp;digits&nbsp;(measured&nbsp;from&nbsp;the&nbsp;most&nbsp;signficant&nbsp;digit).<br>
&nbsp;<br>
Objects&nbsp;that&nbsp;are&nbsp;equal&nbsp;automatically&nbsp;fail.</tt></dd></dl>
<dl><dt><a name="Test-assertNotAlmostEquals"><strong>assertNotAlmostEquals</strong></a> = assertNotAlmostEqual(self, first, second, places<font color="#909090">=None</font>, msg<font color="#909090">=None</font>, delta<font color="#909090">=None</font>)</dt><dd><tt>Fail&nbsp;if&nbsp;the&nbsp;two&nbsp;objects&nbsp;are&nbsp;equal&nbsp;as&nbsp;determined&nbsp;by&nbsp;their<br>
difference&nbsp;rounded&nbsp;to&nbsp;the&nbsp;given&nbsp;number&nbsp;of&nbsp;decimal&nbsp;places<br>
(default&nbsp;7)&nbsp;and&nbsp;comparing&nbsp;to&nbsp;zero,&nbsp;or&nbsp;by&nbsp;comparing&nbsp;that&nbsp;the<br>
between&nbsp;the&nbsp;two&nbsp;objects&nbsp;is&nbsp;less&nbsp;than&nbsp;the&nbsp;given&nbsp;delta.<br>
&nbsp;<br>
Note&nbsp;that&nbsp;decimal&nbsp;places&nbsp;(from&nbsp;zero)&nbsp;are&nbsp;usually&nbsp;not&nbsp;the&nbsp;same<br>
as&nbsp;significant&nbsp;digits&nbsp;(measured&nbsp;from&nbsp;the&nbsp;most&nbsp;signficant&nbsp;digit).<br>
&nbsp;<br>
Objects&nbsp;that&nbsp;are&nbsp;equal&nbsp;automatically&nbsp;fail.</tt></dd></dl>
<dl><dt><a name="Test-assertNotEqual"><strong>assertNotEqual</strong></a>(self, first, second, msg<font color="#909090">=None</font>)</dt><dd><tt>Fail&nbsp;if&nbsp;the&nbsp;two&nbsp;objects&nbsp;are&nbsp;equal&nbsp;as&nbsp;determined&nbsp;by&nbsp;the&nbsp;'=='<br>
operator.</tt></dd></dl>
<dl><dt><a name="Test-assertNotEquals"><strong>assertNotEquals</strong></a> = assertNotEqual(self, first, second, msg<font color="#909090">=None</font>)</dt><dd><tt>Fail&nbsp;if&nbsp;the&nbsp;two&nbsp;objects&nbsp;are&nbsp;equal&nbsp;as&nbsp;determined&nbsp;by&nbsp;the&nbsp;'=='<br>
operator.</tt></dd></dl>
<dl><dt><a name="Test-assertNotIn"><strong>assertNotIn</strong></a>(self, member, container, msg<font color="#909090">=None</font>)</dt><dd><tt>Just&nbsp;like&nbsp;<a href="#Test-assertTrue">assertTrue</a>(a&nbsp;not&nbsp;in&nbsp;b),&nbsp;but&nbsp;with&nbsp;a&nbsp;nicer&nbsp;default&nbsp;message.</tt></dd></dl>
<dl><dt><a name="Test-assertNotIsInstance"><strong>assertNotIsInstance</strong></a>(self, obj, cls, msg<font color="#909090">=None</font>)</dt><dd><tt>Included&nbsp;for&nbsp;symmetry&nbsp;with&nbsp;assertIsInstance.</tt></dd></dl>
<dl><dt><a name="Test-assertNotRegexpMatches"><strong>assertNotRegexpMatches</strong></a>(self, text, unexpected_regexp, msg<font color="#909090">=None</font>)</dt><dd><tt>Fail&nbsp;the&nbsp;test&nbsp;if&nbsp;the&nbsp;text&nbsp;matches&nbsp;the&nbsp;regular&nbsp;expression.</tt></dd></dl>
<dl><dt><a name="Test-assertRaises"><strong>assertRaises</strong></a>(self, excClass, callableObj<font color="#909090">=None</font>, *args, **kwargs)</dt><dd><tt>Fail&nbsp;unless&nbsp;an&nbsp;exception&nbsp;of&nbsp;class&nbsp;excClass&nbsp;is&nbsp;thrown<br>
by&nbsp;callableObj&nbsp;when&nbsp;invoked&nbsp;with&nbsp;arguments&nbsp;args&nbsp;and&nbsp;keyword<br>
arguments&nbsp;kwargs.&nbsp;If&nbsp;a&nbsp;different&nbsp;type&nbsp;of&nbsp;exception&nbsp;is<br>
thrown,&nbsp;it&nbsp;will&nbsp;not&nbsp;be&nbsp;caught,&nbsp;and&nbsp;the&nbsp;test&nbsp;case&nbsp;will&nbsp;be<br>
deemed&nbsp;to&nbsp;have&nbsp;suffered&nbsp;an&nbsp;error,&nbsp;exactly&nbsp;as&nbsp;for&nbsp;an<br>
unexpected&nbsp;exception.<br>
&nbsp;<br>
If&nbsp;called&nbsp;with&nbsp;callableObj&nbsp;omitted&nbsp;or&nbsp;None,&nbsp;will&nbsp;return&nbsp;a<br>
context&nbsp;object&nbsp;used&nbsp;like&nbsp;this::<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;<a href="#Test-assertRaises">assertRaises</a>(SomeException):<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do_something()<br>
&nbsp;<br>
The&nbsp;context&nbsp;manager&nbsp;keeps&nbsp;a&nbsp;reference&nbsp;to&nbsp;the&nbsp;exception&nbsp;as<br>
the&nbsp;'exception'&nbsp;attribute.&nbsp;This&nbsp;allows&nbsp;you&nbsp;to&nbsp;inspect&nbsp;the<br>
exception&nbsp;after&nbsp;the&nbsp;assertion::<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;<a href="#Test-assertRaises">assertRaises</a>(SomeException)&nbsp;as&nbsp;cm:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do_something()<br>
&nbsp;&nbsp;&nbsp;&nbsp;the_exception&nbsp;=&nbsp;cm.exception<br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#Test-assertEqual">assertEqual</a>(the_exception.error_code,&nbsp;3)</tt></dd></dl>
<dl><dt><a name="Test-assertRaisesRegexp"><strong>assertRaisesRegexp</strong></a>(self, expected_exception, expected_regexp, callable_obj<font color="#909090">=None</font>, *args, **kwargs)</dt><dd><tt>Asserts&nbsp;that&nbsp;the&nbsp;message&nbsp;in&nbsp;a&nbsp;raised&nbsp;exception&nbsp;matches&nbsp;a&nbsp;regexp.<br>
&nbsp;<br>
Args:<br>
&nbsp;&nbsp;&nbsp;&nbsp;expected_exception:&nbsp;Exception&nbsp;class&nbsp;expected&nbsp;to&nbsp;be&nbsp;raised.<br>
&nbsp;&nbsp;&nbsp;&nbsp;expected_regexp:&nbsp;Regexp&nbsp;(re&nbsp;pattern&nbsp;object&nbsp;or&nbsp;string)&nbsp;expected<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;be&nbsp;found&nbsp;in&nbsp;error&nbsp;message.<br>
&nbsp;&nbsp;&nbsp;&nbsp;callable_obj:&nbsp;Function&nbsp;to&nbsp;be&nbsp;called.<br>
&nbsp;&nbsp;&nbsp;&nbsp;args:&nbsp;Extra&nbsp;args.<br>
&nbsp;&nbsp;&nbsp;&nbsp;kwargs:&nbsp;Extra&nbsp;kwargs.</tt></dd></dl>
<dl><dt><a name="Test-assertRegexpMatches"><strong>assertRegexpMatches</strong></a>(self, text, expected_regexp, msg<font color="#909090">=None</font>)</dt><dd><tt>Fail&nbsp;the&nbsp;test&nbsp;unless&nbsp;the&nbsp;text&nbsp;matches&nbsp;the&nbsp;regular&nbsp;expression.</tt></dd></dl>
<dl><dt><a name="Test-assertSequenceEqual"><strong>assertSequenceEqual</strong></a>(self, seq1, seq2, msg<font color="#909090">=None</font>, seq_type<font color="#909090">=None</font>)</dt><dd><tt>An&nbsp;equality&nbsp;assertion&nbsp;for&nbsp;ordered&nbsp;sequences&nbsp;(like&nbsp;lists&nbsp;and&nbsp;tuples).<br>
&nbsp;<br>
For&nbsp;the&nbsp;purposes&nbsp;of&nbsp;this&nbsp;function,&nbsp;a&nbsp;valid&nbsp;ordered&nbsp;sequence&nbsp;type&nbsp;is&nbsp;one<br>
which&nbsp;can&nbsp;be&nbsp;indexed,&nbsp;has&nbsp;a&nbsp;length,&nbsp;and&nbsp;has&nbsp;an&nbsp;equality&nbsp;operator.<br>
&nbsp;<br>
Args:<br>
&nbsp;&nbsp;&nbsp;&nbsp;seq1:&nbsp;The&nbsp;first&nbsp;sequence&nbsp;to&nbsp;compare.<br>
&nbsp;&nbsp;&nbsp;&nbsp;seq2:&nbsp;The&nbsp;second&nbsp;sequence&nbsp;to&nbsp;compare.<br>
&nbsp;&nbsp;&nbsp;&nbsp;seq_type:&nbsp;The&nbsp;expected&nbsp;datatype&nbsp;of&nbsp;the&nbsp;sequences,&nbsp;or&nbsp;None&nbsp;if&nbsp;no<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;datatype&nbsp;should&nbsp;be&nbsp;enforced.<br>
&nbsp;&nbsp;&nbsp;&nbsp;msg:&nbsp;Optional&nbsp;message&nbsp;to&nbsp;use&nbsp;on&nbsp;failure&nbsp;instead&nbsp;of&nbsp;a&nbsp;list&nbsp;of<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;differences.</tt></dd></dl>
<dl><dt><a name="Test-assertSetEqual"><strong>assertSetEqual</strong></a>(self, set1, set2, msg<font color="#909090">=None</font>)</dt><dd><tt>A&nbsp;set-specific&nbsp;equality&nbsp;assertion.<br>
&nbsp;<br>
Args:<br>
&nbsp;&nbsp;&nbsp;&nbsp;set1:&nbsp;The&nbsp;first&nbsp;set&nbsp;to&nbsp;compare.<br>
&nbsp;&nbsp;&nbsp;&nbsp;set2:&nbsp;The&nbsp;second&nbsp;set&nbsp;to&nbsp;compare.<br>
&nbsp;&nbsp;&nbsp;&nbsp;msg:&nbsp;Optional&nbsp;message&nbsp;to&nbsp;use&nbsp;on&nbsp;failure&nbsp;instead&nbsp;of&nbsp;a&nbsp;list&nbsp;of<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;differences.<br>
&nbsp;<br>
assertSetEqual&nbsp;uses&nbsp;ducktyping&nbsp;to&nbsp;support&nbsp;different&nbsp;types&nbsp;of&nbsp;sets,&nbsp;and<br>
is&nbsp;optimized&nbsp;for&nbsp;sets&nbsp;specifically&nbsp;(parameters&nbsp;must&nbsp;support&nbsp;a<br>
difference&nbsp;method).</tt></dd></dl>
<dl><dt><a name="Test-assertTrue"><strong>assertTrue</strong></a>(self, expr, msg<font color="#909090">=None</font>)</dt><dd><tt>Check&nbsp;that&nbsp;the&nbsp;expression&nbsp;is&nbsp;true.</tt></dd></dl>
<dl><dt><a name="Test-assertTupleEqual"><strong>assertTupleEqual</strong></a>(self, tuple1, tuple2, msg<font color="#909090">=None</font>)</dt><dd><tt>A&nbsp;tuple-specific&nbsp;equality&nbsp;assertion.<br>
&nbsp;<br>
Args:<br>
&nbsp;&nbsp;&nbsp;&nbsp;tuple1:&nbsp;The&nbsp;first&nbsp;tuple&nbsp;to&nbsp;compare.<br>
&nbsp;&nbsp;&nbsp;&nbsp;tuple2:&nbsp;The&nbsp;second&nbsp;tuple&nbsp;to&nbsp;compare.<br>
&nbsp;&nbsp;&nbsp;&nbsp;msg:&nbsp;Optional&nbsp;message&nbsp;to&nbsp;use&nbsp;on&nbsp;failure&nbsp;instead&nbsp;of&nbsp;a&nbsp;list&nbsp;of<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;differences.</tt></dd></dl>
<dl><dt><a name="Test-assert_"><strong>assert_</strong></a> = assertTrue(self, expr, msg<font color="#909090">=None</font>)</dt><dd><tt>Check&nbsp;that&nbsp;the&nbsp;expression&nbsp;is&nbsp;true.</tt></dd></dl>
<dl><dt><a name="Test-countTestCases"><strong>countTestCases</strong></a>(self)</dt></dl>
<dl><dt><a name="Test-debug"><strong>debug</strong></a>(self)</dt><dd><tt>Run&nbsp;the&nbsp;test&nbsp;without&nbsp;collecting&nbsp;errors&nbsp;in&nbsp;a&nbsp;TestResult</tt></dd></dl>
<dl><dt><a name="Test-defaultTestResult"><strong>defaultTestResult</strong></a>(self)</dt></dl>
<dl><dt><a name="Test-doCleanups"><strong>doCleanups</strong></a>(self)</dt><dd><tt>Execute&nbsp;all&nbsp;cleanup&nbsp;functions.&nbsp;Normally&nbsp;called&nbsp;for&nbsp;you&nbsp;after<br>
tearDown.</tt></dd></dl>
<dl><dt><a name="Test-fail"><strong>fail</strong></a>(self, msg<font color="#909090">=None</font>)</dt><dd><tt>Fail&nbsp;immediately,&nbsp;with&nbsp;the&nbsp;given&nbsp;message.</tt></dd></dl>
<dl><dt><a name="Test-failIf"><strong>failIf</strong></a> = deprecated_func(*args, **kwargs)</dt></dl>
<dl><dt><a name="Test-failIfAlmostEqual"><strong>failIfAlmostEqual</strong></a> = deprecated_func(*args, **kwargs)</dt></dl>
<dl><dt><a name="Test-failIfEqual"><strong>failIfEqual</strong></a> = deprecated_func(*args, **kwargs)</dt></dl>
<dl><dt><a name="Test-failUnless"><strong>failUnless</strong></a> = deprecated_func(*args, **kwargs)</dt></dl>
<dl><dt><a name="Test-failUnlessAlmostEqual"><strong>failUnlessAlmostEqual</strong></a> = deprecated_func(*args, **kwargs)</dt></dl>
<dl><dt><a name="Test-failUnlessEqual"><strong>failUnlessEqual</strong></a> = deprecated_func(*args, **kwargs)</dt></dl>
<dl><dt><a name="Test-failUnlessRaises"><strong>failUnlessRaises</strong></a> = deprecated_func(*args, **kwargs)</dt></dl>
<dl><dt><a name="Test-id"><strong>id</strong></a>(self)</dt></dl>
<dl><dt><a name="Test-run"><strong>run</strong></a>(self, result<font color="#909090">=None</font>)</dt></dl>
<dl><dt><a name="Test-shortDescription"><strong>shortDescription</strong></a>(self)</dt><dd><tt>Returns&nbsp;a&nbsp;one-line&nbsp;description&nbsp;of&nbsp;the&nbsp;test,&nbsp;or&nbsp;None&nbsp;if&nbsp;no<br>
description&nbsp;has&nbsp;been&nbsp;provided.<br>
&nbsp;<br>
The&nbsp;default&nbsp;implementation&nbsp;of&nbsp;this&nbsp;method&nbsp;returns&nbsp;the&nbsp;first&nbsp;line&nbsp;of<br>
the&nbsp;specified&nbsp;test&nbsp;method's&nbsp;docstring.</tt></dd></dl>
<dl><dt><a name="Test-skipTest"><strong>skipTest</strong></a>(self, reason)</dt><dd><tt>Skip&nbsp;this&nbsp;test.</tt></dd></dl>
<hr>
Class methods inherited from <a href="unittest.case.html#TestCase">unittest.case.TestCase</a>:<br>
<dl><dt><a name="Test-setUpClass"><strong>setUpClass</strong></a>(cls)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt><dd><tt>Hook&nbsp;method&nbsp;for&nbsp;setting&nbsp;up&nbsp;class&nbsp;fixture&nbsp;before&nbsp;running&nbsp;tests&nbsp;in&nbsp;the&nbsp;class.</tt></dd></dl>
<dl><dt><a name="Test-tearDownClass"><strong>tearDownClass</strong></a>(cls)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt><dd><tt>Hook&nbsp;method&nbsp;for&nbsp;deconstructing&nbsp;the&nbsp;class&nbsp;fixture&nbsp;after&nbsp;running&nbsp;all&nbsp;tests&nbsp;in&nbsp;the&nbsp;class.</tt></dd></dl>
<hr>
Data descriptors inherited from <a href="unittest.case.html#TestCase">unittest.case.TestCase</a>:<br>
<dl><dt><strong>__dict__</strong></dt>
<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<dl><dt><strong>__weakref__</strong></dt>
<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<hr>
Data and other attributes inherited from <a href="unittest.case.html#TestCase">unittest.case.TestCase</a>:<br>
<dl><dt><strong>failureException</strong> = &lt;type 'exceptions.AssertionError'&gt;<dd><tt>Assertion&nbsp;failed.</tt></dl>
<dl><dt><strong>longMessage</strong> = False</dl>
<dl><dt><strong>maxDiff</strong> = 640</dl>
</td></tr></table></td></tr></table>
</body></html>

17
setup.py Normal file
View File

@@ -0,0 +1,17 @@
from distutils.core import setup
setup(
name='Tippy',
version='0.1.0',
author='Julien Lengrand-Lambert',
author_email='julien@lengrand.fr',
packages=['tippy', 'tippy.tests', 'examples'],
scripts=[''],
url='https://github.com/jlengrand/Tippy',
license='LICENSE.txt',
description='another Toolbox for Image Processing in PYthon, based on OpenCV',
long_description=open('README.txt').read(),
install_requires=[
"OpenCV >= 3.1",
],
)