pymdht 1.0.1-M36

INSTALLATION

This package uses Python 2.5 standard library. No extra modules need to be
installed.

A Makefile is provided to run the tests. The tests require the nose test
framework to work.

Additional libraries should be installed for GEOIP to work (optional):
1. python-geoip
2. geoip-database
3. libgeoip1

GeoIPCity.dat is missing and should be retrieved from MaxMind... (will update this later today)


API

The API is located in pymdht.py. This is the only module necessary to use the
package.

Users must ONLY use the methods provided in pymdht.py.

Users can use the Id and Node containers as they wish. These classes are
located in identifier.py and node.py

EXAMPLES

Two examples are provided in the distribution:

- server_dht.py

Do the routing maintainance tasks plus a get_peers lookup to a random
identifier every 10 minutes.

- interactive_dht.py

Do the routing maintainance task plus get_peers lookups asked by the user
during the interactive session.

TESTS

In order to run the tests you need the following packages (ubuntu):
python-nose 
python-coverage (optional but very recommended)

PROFILING

In order to do profiling you need tht following packages (ubuntu):

python-profiler
kcachegrind (profile viewer)

and from easy_install (comes with the python-setuptools package in Ubuntu):
profilestats (produces input for both RunSnakeRun and KCachegrind)
runsnakerun (simple and nice profile viewer)

CLEAN CODE

In order to check "code quality" you need the following packages:
pylint (e.g. pylint --errors-only *.py >errors)

EDITING

In case it's useful to you. I use this Emacs configuration (with minor
modifications):

http://09-f9-11-02-9d-74-e3-5b-d8-41-56-c5-63-56-88-c0.com/2009/01/19/my-emacs-config-on-github/

ipython is also useful to try out functionality or debug.
