# -*- 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
revision            1
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}-setuptools

    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
    }
}
