Skip to main content

Standard app configuration and packaging

Project description

pyBaseApp

Tools to define a standard way to launch and package python application

See readme files in the following modules to explore the offered features.

  • applauncher
  • package

applauncher module

Description

The applauncher module defines a standard way to launch and manage a basic application.

Configuration class

Configuration class defines a standard logger which prompts in console and save log in a dated file. I also define a standard way to configure the app with a settings file in yml format. This yml file is a key/value pair collection and allows substitution of values using the syntax {key}

Here is an example of yml file:

mykey: myvalue
value_to_substitute: '{otherkey}'
otherkey: 3
listkey:
    - key1: value1
    - key2: value2
dictkey:
    key: value
    otherkey: othervalue
booleankey: true

Settings class

Settings is a class for which attributes are defined by the given dictionary

error function

error function defines a standard error behaviour by displaying an error and exiting the app

package module

Description

The package module makes use of Pyinstaller to build an app package ready to go. It is a wrapper to ease the use of Pyinstaller. It defines the build parameters in a settings file (yml file) and also add the ability to add external documents (documentation, config files, ...) and a launcher (.bat or .sh file)

Note that Pyinstaller builds executable files according to the OS on which the program is exectuted :

  • if executed on Windows, a windows executable file is generated
  • if executed on Linux, a linux executable file is generated

Example

Here is a basic example of use:

from pyBaseApp.package import Package, Options
from pyBaseApp.applauncher import Configuration

settings = Configuration().settings('settings.yml')
try:
    options = Options(settings)
    Package(options, data)
except ValueError:
    print('package value is missing in settings')

Where settings.yml could be:

name: myApp
package: C:/scripts/my_app.py
distpath: C:/dist/myApp
data: 
- src: C:/scripts/resources/myapp.yml
    root_level: true
- src: C:/scripts/resources/README.md
    root_level: true
- src: C:\data\github\work\scripts\doc\easyPresentation\images
    dst: images
    root_level: true
sh:
    path: mypath
    options:
        l: myloggerpath
        s: mysettingspath

Here is the list of available options:

Pynstaller options and default values (See pyinstaller documentation for more info): name = None onefile=False console=True binaries = dict() icon = None distpath = None workpath = None specpath = 'pyinstaller' paths = [] clean = True loglevel = loglevels.DEBUG.name hiddenimports = [] additionalhooks = [] runtimehooks = [] excludemodules = [] package = None no_confirm = True

addons options : data = None version = None sh = None bat = None

Examples of data and sh structures are given above

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

pyBaseApp-0.4.tar.gz (6.5 kB view hashes)

Uploaded Source

Built Distribution

pyBaseApp-0.4-py3-none-any.whl (10.6 kB view hashes)

Uploaded Python 3

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