{"action":"opened","issue":{"url":"https://api.github.com/repos/mitsuhiko/werkzeug/issues/811","labels_url":"https://api.github.com/repos/mitsuhiko/werkzeug/issues/811/labels{/name}","comments_url":"https://api.github.com/repos/mitsuhiko/werkzeug/issues/811/comments","events_url":"https://api.github.com/repos/mitsuhiko/werkzeug/issues/811/events","html_url":"https://github.com/mitsuhiko/werkzeug/issues/811","id":117097017,"number":811,"title":"local goes into infinite recursion","user":{"login":"greut","id":1388,"avatar_url":"https://avatars.githubusercontent.com/u/1388?v=3","gravatar_id":"","url":"https://api.github.com/users/greut","html_url":"https://github.com/greut","followers_url":"https://api.github.com/users/greut/followers","following_url":"https://api.github.com/users/greut/following{/other_user}","gists_url":"https://api.github.com/users/greut/gists{/gist_id}","starred_url":"https://api.github.com/users/greut/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/greut/subscriptions","organizations_url":"https://api.github.com/users/greut/orgs","repos_url":"https://api.github.com/users/greut/repos","events_url":"https://api.github.com/users/greut/events{/privacy}","received_events_url":"https://api.github.com/users/greut/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-11-16T10:49:37Z","updated_at":"2015-11-16T10:49:37Z","closed_at":null,"body":"Running werkzeug from github, our code goes into a full loop when it attemps to perform a deepcopy of a proxy:\r\n```\r\n...\r\n  File \"/home/travis/virtualenv/python2.7.9/src/flask-admin/flask_admin/contrib/sqla/form.py\", line 147, in convert\r\n    kwargs.update(deepcopy(field_args))\r\n  File \"/opt/python/2.7.9/lib/python2.7/copy.py\", line 163, in deepcopy\r\n    y = copier(x, memo)\r\n  File \"/opt/python/2.7.9/lib/python2.7/copy.py\", line 257, in _deepcopy_dict\r\n    y[deepcopy(key, memo)] = deepcopy(value, memo)\r\n  File \"/opt/python/2.7.9/lib/python2.7/copy.py\", line 190, in deepcopy\r\n    y = _reconstruct(x, rv, 1, memo)\r\n  File \"/opt/python/2.7.9/lib/python2.7/copy.py\", line 346, in _reconstruct\r\n    setattr(y, key, value)\r\n  File \"/home/travis/virtualenv/python2.7.9/src/werkzeug/werkzeug/local.py\", line 359, in <lambda>\r\n    __setattr__ = lambda x, n, v: setattr(x._get_current_object(), n, v)\r\n  File \"/home/travis/virtualenv/python2.7.9/src/werkzeug/werkzeug/local.py\", line 300, in _get_current_object\r\n    if not hasattr(self.__local, '__release_local__'):\r\n  File \"/home/travis/virtualenv/python2.7.9/src/werkzeug/werkzeug/local.py\", line 342, in __getattr__\r\n    return getattr(self._get_current_object(), name)\r\n  File \"/home/travis/virtualenv/python2.7.9/src/werkzeug/werkzeug/local.py\", line 300, in _get_current_object\r\n    if not hasattr(self.__local, '__release_local__'):\r\n  File \"/home/travis/virtualenv/python2.7.9/src/werkzeug/werkzeug/local.py\", line 342, in __getattr__\r\n...\r\n  File \"/home/travis/virtualenv/python2.7.9/src/werkzeug/werkzeug/local.py\", line 300, in _get_current_object\r\n    if not hasattr(self.__local, '__release_local__'):\r\nRuntimeError: maximum recursion depth exceeded while calling a Python object\r\n```\r\nvia: https://travis-ci.org/inveniosoftware/invenio/jobs/88744469\r\n\r\nThis behaviour isn't observed on released versions."}}