diff options
Diffstat (limited to 'python/pyspark/__init__.py')
-rw-r--r-- | python/pyspark/__init__.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/python/pyspark/__init__.py b/python/pyspark/__init__.py index 111ebaafee..ec1687415a 100644 --- a/python/pyspark/__init__.py +++ b/python/pyspark/__init__.py @@ -37,6 +37,7 @@ Public classes: """ +from functools import wraps import types from pyspark.conf import SparkConf @@ -84,6 +85,20 @@ def copy_func(f, name=None, sinceversion=None, doc=None): return fn +def keyword_only(func): + """ + A decorator that forces keyword arguments in the wrapped method + and saves actual input keyword arguments in `_input_kwargs`. + """ + @wraps(func) + def wrapper(*args, **kwargs): + if len(args) > 1: + raise TypeError("Method %s forces keyword arguments." % func.__name__) + wrapper._input_kwargs = kwargs + return func(*args, **kwargs) + return wrapper + + # for back compatibility from pyspark.sql import SQLContext, HiveContext, Row |