optional IP address argument of iparg decorator

pull/1374/head
Alexander Koeppe 2016-04-08 22:47:09 +02:00
parent 1494b14b37
commit caa4521169
1 changed files with 5 additions and 5 deletions

View File

@ -21,7 +21,7 @@
# #
__author__ = "Alexander Koeppe" __author__ = "Alexander Koeppe"
__copyright__ = "Copyright (c) 2004 Cyril Jaquier" __copyright__ = "Copyright (c) 2016 Alexander Koeppe"
__license__ = "GPL" __license__ = "GPL"
import inspect import inspect
@ -33,11 +33,11 @@ from functools import wraps
## ##
# Helper functions / decorator # Helper functions / decorator
# # Thanks to Yaroslav Halchenko (yarikoptic)
# #
def asip(ip): def asip(ip):
"""A little helper to guarantee ip being an IPAddr instance""" """A little helper to guarantee ip being an IPAddr instance"""
return ip if isinstance(ip, IPAddr) else IPAddr(ip) return ip if isinstance(ip, IPAddr) or ip == None else IPAddr(ip)
def iparg(f): def iparg(f):
"""A helper decorator to simplify use of asip throughout the code""" """A helper decorator to simplify use of asip throughout the code"""
@ -48,11 +48,11 @@ def iparg(f):
if args and args[0] == 'self': if args and args[0] == 'self':
# method -- just above simpler version # method -- just above simpler version
@wraps(f) @wraps(f)
def checkip(self, ip, *argv, **kwargs): def checkip(self, ip=None, *argv, **kwargs):
return f(self, asip(ip), *argv, **kwargs) return f(self, asip(ip), *argv, **kwargs)
else: else:
@wraps(f) @wraps(f)
def checkip(ip, *argv, **kwargs): def checkip(ip=None, *argv, **kwargs):
return f(asip(ip), *argv, **kwargs) return f(asip(ip), *argv, **kwargs)
return checkip return checkip