# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4
# $Id$

PortSystem          1.0
PortGroup           python 1.0

name                py-workerpool
version             0.9.2
categories          python
maintainers         akitada
python.versions         24 25 26 27
python.default_version  27
description         Module for distributing jobs to a pool of worker \
                    threads.
long_description    Performing tasks in many threads made fun! \
                    \
                    This module facilitates distributing simple \
                    operations into jobs that are sent to worker \
                    threads, maintained by a pool object. \
                    \
                    It consists of these components:\
                    \
                    1. Jobs, which are single units of work that need \
                       to be performed. \
                    2. Workers, who grab jobs from a queue and perform \
                       them. \
                    3. Worker pool, which keeps track of workers and \
                       the job queue.

homepage            http://code.google.com/p/workerpool/
platforms           darwin
master_sites        http://workerpool.googlecode.com/files/ \
                    http://pypi.python.org/packages/source/w/workerpool/
distname            workerpool-${version}
checksums           md5 42904070f1a58f2a7b7276b22134375b \
                    sha1 34da871db2615a474f8332e2aa33285a2d808bb7 \
                    rmd160 e7565d81be215d0c728ef7306efa3ebea0fafebd

if {$subport != $name} {
    depends_build-append    port:py${python.version}-distribute

    post-destroot {
        xinstall -W ${worksrcpath} -m 644 CHANGES LICENSE README \
            ${destroot}${prefix}/share/doc/${subport}
        eval copy [glob ${worksrcpath}/samples/*] \
            ${destroot}${prefix}/share/doc/${subport}/examples
    }
}
