Skip to main content
https://circleci.com/gh/AndreaCensi/quickapp.svg?style=svg

QuickApp

QuickApp is a library that composes the functionality of Compmake, Reprep in high-level constructs for extremely rapid development of scientific applications.

Simplest QuickApp application

This is an example of the simplest QuickApp application. It does not use Compmake functionality.

from quickapp import QuickAppBase

class VideoMaker(QuickAppBase):
    """ Basic example of a QuickApp (no Compmake support) """
    def define_program_options(self, params):
        params.add_int('param_name', default=1)

    def go(self):
        self.info('you passed: %s' % self.get_options().param_name)

main = VideoMaker.get_sys_main()

Here’s an example that uses Compmake to define jobs:

#!/usr/bin/env python
from quickapp import QuickApp

class AppExample(QuickApp):
    """ Simplest app example """

    def define_options(self, params):
        params.add_int('x', default=1)

    def define_jobs_context(self, context):
        options = self.get_options()
        # create a job
        context.comp(f, options.x)

def f(x):
    print('x = %s' % x)

app_example_main = AppExample.get_sys_main()

if __name__ == '__main__':
    app_example_main()

QuickApp with subcommands

Define the parent app by deriving from QuickMultiCmdApp:

class DemoApp(QuickMultiCmdApp):
    cmd = 'dp'

    def define_multicmd_options(self, params):
        params.add_string('config', help='Config Joint')
        params.add_int('param2', help='Second parameter')

    def initial_setup(self):
        options = self.get_options()
        self.info('Loading configuration from %r.' % options.config)
        self.info('My param2 is %r.' % options.param2)

main_func = DemoApp.

Define the subapps by deriving from DemoApp.get_sub():

class DemoAppCmd1(QuickApp, DemoApp.get_sub()):
    cmd = 'cmd1'
    short = 'First command'

    def define_options(self, params):
        params.add_int('param1', help='First parameter', default=1)
        params.add_int('param2', help='Second parameter')

    def define_jobs(self, context):
        options = self.get_options()
        self.info('My param2 is %r.' % options.param2)

Release files for QuickApp-z6 6.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for QuickApp-z6 6.0.5
File Size Uploaded
QuickApp-z6-6.0.5.tar.gz 46.2 kB Details

Release files / QuickApp-z6-6.0.5.tar.gz

Download URL QuickApp-z6-6.0.5.tar.gz
Size 46.2 kB
Tags Source
SHA-256 checksum
How to use checksums
5a3829097635428a3d18485e508133544f576128590bfa1a324028e8992dd452
BLAKE2b-256 checksum
How to use checksums
a0061b4f1f1475b146bd09de6f8f0e2bce80640e3743b89a614eb018db22102d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.41.0 CPython/3.7.5

Release history Release notifications | RSS feed

This release

6.0.5 This release

1 release file

6.0.4

1 release file

6.0.3

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page