Source code for helpers

#! coding=utf-8
"""DigitalOcean APIv2 helpers module"""
__author__ = "Sriram Velamur <sriram.velamur@gmail.com>"
__all__ = ("set_caller",)

import sys
sys.dont_write_bytecode = True


def set_caller(function):
    r"""
    Decorator to set reference DOClient object to callee object instance.
    """
    def wrapper(cls, *args, **kwargs):
        """Wrapper method"""
        frame_locals = getattr(sys, "_getframe")(1).f_locals
        setattr(cls, 'client', frame_locals.get("self"))
        return function(cls, *args, **kwargs)

    return wrapper