Overview

Ego Boost

This package will do nothing less than boosting the ego of any Python developer who has made packages available via PyPI. Finally, with one simple command and a cronjob you can track the downloads of your packages over time. Here is a simple example:

$ ego-boost collect python-weewar pypi:python-weewar bb:basti/python-weewar
Fetching data from http://pypi.python.org/pypi/python-weewar...
Fetching data from http://bitbucket.org/basti/python-weewar...
$ ego-boost dump
date,python-amazon-product-api,python-weewar
2010-07-10,8742,2807
2010-07-11,0,2807
...

The same can be achived by using the interactive console:

$ ego-boost
> collect python-weewar-monitor bb:basti/python-weewar-monitor
Fetching data from http://bitbucket.org/basti/python-weewar-monitor...
> quit
Bye.

Commands

Once installed, you can use binary ego-boost with the following commands:

collect PACKAGE URL [URL ...]

will collect download statistics from the provided URLs and store them under key PACKAGE (which will later appear in the CSV data).

You can specify any number of URLs. Supported sources so far are

  • PyPI (shortcut: pypi:)
  • bitbucket.org (shortcut: bb:)
  • github.com (shortcut: gh:)

Data is always stored for the current date. Subsequent data collection will not lead to falsely accumulated data for that day!

dump
will aggregate download statistics per package per date and print CSV data to stdout.
export FILE
will export all data into a single JSON file. This can later be imported again. If FILE is -, output will be redirected to stdout.
import FILE [FILE ...]
will import one or more JSON files into the data base. Inside the interactive console you can use wildcards, too.

Installation

Simply use pip install ego-boost (or easy_install ego-boost for those of you that still have to discover the superiority of pip). You can also download the source from PyPI and run python setup.py install in the untared directory.

On one of my servers, I have installed the following cronjob that collects download statistics for all my packages on a daily basis:

# m h  dom mon dow   command
0 7 * * * ego-boost collect python-weewar bb:basti/python-weewar
0 7 * * * ego-boost collect python-weewar-monitor bb:basti/python-weewar-monitor
0 7 * * * ego-boost collect python-amazon-product-api pypi:python-amazon-product-api
# ...

TODOs

  • Make code available on bitbucket (or similar).
  • Some graphics would be nice!
  • Support for more sources (if there is interest).
  • Use cmdln <http://code.google.com/p/cmdln/.

If you have any questions, suggestions, comments, improvements etc. please email Sebastian!

License

This package is released under the MIT license.

Copyright (c) 2010 Sebastian Rahlf

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.