Skip to main content

UNKNOWN

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.2.3.tar.gz (32.6 kB view details)

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for QuickApp-1.2.3.tar.gz
Algorithm Hash digest
SHA256 8a7a6b5cf6479cf8448dfb6fb0b26839725a63a463df181723d507a00f5f754b
MD5 5609f02a499de91e633623f10b9b85ab
BLAKE2b-256 a8d4a2fef7147c67c13490f914c2d654b75862cf9431930c618c3d7563c7223b

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