Skip to main content

Configuration flags for libraries and applications.

Project description

oscar.flag provides extensible, namespaced flags which can be parsed from environment variables, command-line arguments and config files.

Flags are declared where they are used in an application or library, and they are accessed through a namespace matching their fully qualified module path.

Documentation lives at Read the Docs, the code on GitHub.

Example

Application entry-point:

import sys
from oscar import flag

import other_module


FLAGS = flag.namespace(__name__)
FLAGS.some_int = flag.Int('some integer value', default=1)


if __name__ == '__main__':
    flag.parse_commandline(sys.argv[1:])
    flag.die_on_missing_required()

    print 'other_module.multiply_by(%d) = %d' % (
        FLAGS.some_int,
        other_module.multiply_by(FLAGS.some_int))

other_module.py:

from oscar import flag

FLAGS = flag.namespace(__name__)
FLAGS.multiplier = flag.Int('some integer', default=flag.REQUIRED)

def multiply_by(i):
    return i * FLAGS.multiplier

shell:

$ python example.py
Missing required flags:
      [other_module.]multiplier
Usage of example.py:
__main__:
      [__main__.]some_int=None: some integer value

other_module:
      [other_module.]multiplier=<required>: some integer

# Note the namespaced reference --other_module.multiplier.
$ python example.py --other_module.multiplier=2 --some_int=3
other_module.multiply_by(3) = 6

License

Copyright 2015 Mulberry Health Inc.

Licensed under the Apache License, Version 2.0.

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

oscar.flag-0.1.2.tar.gz (19.5 kB view details)

Uploaded Source

File details

Details for the file oscar.flag-0.1.2.tar.gz.

File metadata

  • Download URL: oscar.flag-0.1.2.tar.gz
  • Upload date:
  • Size: 19.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for oscar.flag-0.1.2.tar.gz
Algorithm Hash digest
SHA256 351900d4770e0d56be32df8d08f300d4bb37b9df451269f4ea2957a3d23bf30f
MD5 f7b0de0a4f6ad10a25f69c854d9ed15a
BLAKE2b-256 f912d0d2bb1f347d7486fbf48b86fa4466ed4ce18840ce9614d451b577b0fec0

See more details on using hashes here.

Supported by

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