Skip to main content

No project description provided

Project description

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)

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

QuickApp-1.3.3.tar.gz (31.9 kB view details)

Uploaded Source

File details

Details for the file QuickApp-1.3.3.tar.gz.

File metadata

  • Download URL: QuickApp-1.3.3.tar.gz
  • Upload date:
  • Size: 31.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for QuickApp-1.3.3.tar.gz
Algorithm Hash digest
SHA256 8a89fc87d902313c41f03ee307b64862b47082fa656c5e31bc4ed74f9bbf410a
MD5 c2a1af433b3742045a9281828519b442
BLAKE2b-256 37d6a2fdd27ee4f7410f5ece91505dded6acbfcfc0ec041337fadb3d687fc6a9

See more details on using hashes here.

Supported by

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