snipy/basic.py
def patchproperty(*cls, **kwargs):
    """
    class getter 함수 패치 decorator
    EX)
    class B(A):
        pass

    @patchproperty(B)
    def prop(self):
        return 'hello'

    :param cls:
    :param kwargs:
    """

    def _patch(fun):
        m = kwargs.pop('property', None) or fun.__name__
        p = property(fun)
        for c in cls:
            setattr(c, m, p)

    def wrap(fun):
        _patch(fun)
        return fun

    return wrap
def patchproperty(*cls, **kwargs):
    """
    class getter 함수 패치 decorator
    EX)
    class B(A):
        pass

    @patchproperty(B)
    def prop(self):
        return 'hello'

    :param cls:
    :param kwargs:
    """

    def _patch(fun):
        m = kwargs.pop('property', None) or fun.__name__
        p = property(fun)
        for c in cls:
            setattr(c, m, p)

    def wrap(fun):
        _patch(fun)
        return fun

    return wrap
class getter 함수 패치 decorator
    EX)
    class B(A):
        pass

    @patchproperty(B)
    def prop(self):
        return 'hello'

    :param cls:
    :param kwargs: