Skip to main content

The task manager for python

Project description

Build Status Version Pyversions

The task manager for python

Why

Port of GulpJS for Python

Documentation

Usage

Install:

$ pip install phulpy

Create your phulpyfile.py (the configuration file, that describes all your tasks):

from phulpy import task, Output

@task
def default(phulpy):
    def print_file(file):
        Output.out(Output.colorize(
            file.relative_path,
            'green'
        ))

    def print_src_class(src):
        Output.out(src.__class__.__name__)

    def if_phulpy_file(file):
        return 'phulpyfile.py' in file.name

    phulpy.src(['./*'], read=True) \
        .pipe(phulpy.iterate(print_file)) \
        .pipe(print_src_class) \
        .pipe(phulpy.filter(if_phulpy_file)) \
        .pipe(phulpy.iterate(print_file)) \
        .pipe(phulpy.dest('./var'))


@task
def clean(phulpy):
    phulpy.src(['./var/*']) \
        .pipe(phulpy.clean())

@task
def exec_1(phulpy):
    def __on_stdout__(tick, stdin):
        # Output.out(tick)

        if '[yes]?' in tick:
            stdin.write('yes\n')

    def __on_stderr__(tick, stdin):
        # Output.err(tick)
        pass

    def __on_finish__(sigint, stdout, stderr):
        pass

    command = phulpy.execute(
        'ls -lah',
        quite=False,  # write on stdout and stdin, default True, needs to be handled
        sync=False,  # default True
        on_stdout=__on_stdout__,  # handle stdout
        on_stderr=__on_stderr__,  # handle stderr
        on_finish=__on_finish__  # handle sigint
    )

    command.kill() # force stop command


@task
def exec_2(phulpy):
    # when its is sync return a command with stdout, stderr, and sigint
    command = phulpy.execute('ls -lah')

    sigint = command.sigint
    stdout = command.stdout
    stderr = command.stderr

@task
def do_nothing():
    pass

Run:

Run the phulpy over the phulpyfile.py directory

$ phulpy --help
$ phulpy # Will run the `default` task
$ phulpy mytask # Will run the `mytask` task
$ phulpy --threads 4 mytask1 mytask2  # Will run the tasks simultaneously

By:

@jefersondaniel <https://github.com/jefersondaniel>

@reisraff <https://github.com/reisraff>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

phulpy-1.0.10.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

phulpy-1.0.10-py2.py3-none-any.whl (7.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file phulpy-1.0.10.tar.gz.

File metadata

  • Download URL: phulpy-1.0.10.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.7

File hashes

Hashes for phulpy-1.0.10.tar.gz
Algorithm Hash digest
SHA256 d8bb2f45ee10b4f659954269bace5d19a6831deb6ef09c9e813053cf74dad1dc
MD5 8bab96a5015db1024da243e9d942fb32
BLAKE2b-256 0c1200ed166ce78e5b0c07841f13420288117a71574524445df3ceb579163218

See more details on using hashes here.

File details

Details for the file phulpy-1.0.10-py2.py3-none-any.whl.

File metadata

  • Download URL: phulpy-1.0.10-py2.py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.7

File hashes

Hashes for phulpy-1.0.10-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 81ea642074722dfb7160631c11a4e0cd32e6af68ba13c62169b5a08c6ba7127e
MD5 05a8acd782dd6fe058ea48bafc199723
BLAKE2b-256 b464c6f9da124c8b1d8206953adb33fc15ddc39e4ea3962fad8519450d70cb52

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page