@classmethod
    def for_function(cls, func, curdir=None):
        func = unwrap_function(func)
        function_code = six.get_function_code(func)
        filename = function_code.co_filename
        line_number = function_code.co_firstlineno

        curdir = curdir or os.getcwd()
        filename = os.path.relpath(filename, curdir)
        return cls(filename, line_number)


# -----------------------------------------------------------------------------
# ABSTRACT MODEL CLASSES (and concepts):
# -----------------------------------------------------------------------------
Testing the PUT review-requests/<id>/draft/ API
dataset/ETHPy150Open behave/behave/behave/model_core.py/FileLocation.for_function--crossover with--dataset/ETHPy150Open reviewboard/reviewboard/reviewboard/webapi/tests/test_review_request_draft.py/ResourceTests.test_put_with_depends_on_invalid_id