[core] I/O formats allowing both arg0 formating and kwargs based. Starting with 0.4, kwargs based will be default (BC break here, but needed for the greater good).
This commit is contained in:
@ -2,6 +2,8 @@ import os
|
||||
|
||||
import logging
|
||||
|
||||
from bonobo.errors import ValidationError
|
||||
|
||||
|
||||
def to_bool(s):
|
||||
if len(s):
|
||||
@ -23,7 +25,30 @@ QUIET = to_bool(os.environ.get('QUIET', 'f'))
|
||||
# Logging level.
|
||||
LOGGING_LEVEL = logging.DEBUG if DEBUG else logging.INFO
|
||||
|
||||
# Input/Output format for transformations
|
||||
IOFORMAT_ARG0 = 'arg0'
|
||||
IOFORMAT_KWARGS = 'kwargs'
|
||||
|
||||
IOFORMATS = {
|
||||
IOFORMAT_ARG0,
|
||||
IOFORMAT_KWARGS,
|
||||
}
|
||||
|
||||
IOFORMAT = os.environ.get('IOFORMAT', IOFORMAT_KWARGS)
|
||||
|
||||
|
||||
def validate_io_format(v):
|
||||
if callable(v):
|
||||
return v
|
||||
if v in IOFORMATS:
|
||||
return v
|
||||
raise ValidationError('Unsupported format {!r}.'.format(v))
|
||||
|
||||
|
||||
def check():
|
||||
if DEBUG and QUIET:
|
||||
raise RuntimeError('I cannot be verbose and quiet at the same time.')
|
||||
|
||||
if IOFORMAT not in IOFORMATS:
|
||||
raise RuntimeError('Invalid default input/output format.')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user