1. Nathan Van Gheem
  2. pysourcesearch

Overview

HTTPS SSH

Introduction

This package will allow you to create your own search engines for your packages and sets of packages. It's not perfect, but I find it useful. It's really fast and easier to find what you're looking for often.

You can search specifically for methods, classes and filenames or just do a full text search.

It's built on repoze.bfg, repoze.catalog and pygments.

Install

Start off with a virtualenv:

>>> virtualenv pysourcesearch --no-site-packages
>>> cd pysourcesearch
>>> ./bin/easy_install pysourcesearch
>>> ./bin/easy_install PasteScript

Then you can use the ini WSGI configuration provided with the package or create your own similar to this:

>>> [app:main]
>>> use = egg:pysourcesearch#app
>>> debug_notfound = false
>>> catalogs_location = %(here)s/catalogs
>>> reindex = False
>>> package_groups =
>>>     Plone:/Applications/Plone/buildout-cache/eggs
>>> skipped_paths =
>>>             tests
>>>
>>> [server:main]
>>> use = egg:Paste#http
>>> host = 0.0.0.0
>>> port = 6543

Then run:

>>> ./bin/paster serve pysourcesearch.ini

The first time it runs it will take some time to index everything. If you tail the catalog you'll be able to see the status of indexing.

>>> tail -f pysourcesearch.log

Configuration

Here are some of the WSGI configuration options:

* catalogs_location = Location where the indexes are stored
* reindex = If you want to reindex every time it's run
* package_groups = a list of locations to egg packages. This is normally a `buildout-cache/eggs` direction or a `lib/python2.6/site-packages` directory
* skipped_paths = a list of folders that you'd rather not index the contents of