Skip to content

Instantly share code, notes, and snippets.

@developerinlondon
Created December 3, 2014 11:12
Show Gist options
  • Save developerinlondon/b4692afd34896ed98192 to your computer and use it in GitHub Desktop.
Save developerinlondon/b4692afd34896ed98192 to your computer and use it in GitHub Desktop.
import os, glob, pdb, re
from functools import wraps
from fabric.api import task as _task
def fix_boolean(f):
true_values = ("yes", "true", "1")
false_values = ("no", "false", "0")
def fix_bool(value):
if isinstance(value, basestring):
if value.lower() in false_values:
return False
if value.lower() in true_values:
return True
return value
@wraps(f)
def wrapper(*args, **kwargs):
args_ = [fix_bool(arg) for arg in args]
kwargs_ = {k: fix_bool(v) for k,v in kwargs.iteritems()}
return f(*args_, **kwargs_)
return wrapper
def task(f):
return _task(fix_boolean(f))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment