Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KeyError: '__file__' #80

Closed
messense opened this issue Apr 1, 2017 · 7 comments
Closed

KeyError: '__file__' #80

messense opened this issue Apr 1, 2017 · 7 comments

Comments

@messense
Copy link

messense commented Apr 1, 2017

2017-04-01 10:44:17,525 INFO werkzeug._log:87    127.0.0.1 - - [01/Apr/2017 10:44:17] "GET /apispec_1.json HTTP/1.1" 500 -
Traceback (most recent call last):
  File "/usr/local/var/pyenv/versions/3.6.1/envs/brm-api/lib/python3.6/site-packages/flask/app.py", line 1997, in __call__
    return self.wsgi_app(environ, start_response)
  File "/usr/local/var/pyenv/versions/3.6.1/envs/brm-api/lib/python3.6/site-packages/werkzeug/contrib/profiler.py", line 103, in __call__
    p.runcall(runapp)
  File "/usr/local/var/pyenv/versions/3.6.1/lib/python3.6/cProfile.py", line 109, in runcall
    return func(*args, **kw)
  File "/usr/local/var/pyenv/versions/3.6.1/envs/brm-api/lib/python3.6/site-packages/werkzeug/contrib/profiler.py", line 96, in runapp
    appiter = self._app(environ, catching_start_response)
  File "/usr/local/var/pyenv/versions/3.6.1/envs/brm-api/lib/python3.6/site-packages/flask/app.py", line 1985, in wsgi_app
    response = self.handle_exception(e)
  File "/usr/local/var/pyenv/versions/3.6.1/envs/brm-api/lib/python3.6/site-packages/flask_cors/extension.py", line 161, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "/usr/local/var/pyenv/versions/3.6.1/envs/brm-api/lib/python3.6/site-packages/flask/app.py", line 1540, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/var/pyenv/versions/3.6.1/envs/brm-api/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
    raise value
  File "/usr/local/var/pyenv/versions/3.6.1/envs/brm-api/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/var/pyenv/versions/3.6.1/envs/brm-api/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/var/pyenv/versions/3.6.1/envs/brm-api/lib/python3.6/site-packages/flask_cors/extension.py", line 161, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "/usr/local/var/pyenv/versions/3.6.1/envs/brm-api/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/var/pyenv/versions/3.6.1/envs/brm-api/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
    raise value
  File "/usr/local/var/pyenv/versions/3.6.1/envs/brm-api/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/var/pyenv/versions/3.6.1/envs/brm-api/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/var/pyenv/versions/3.6.1/envs/brm-api/lib/python3.6/site-packages/flask/views.py", line 84, in view
    return self.dispatch_request(*args, **kwargs)
  File "/usr/local/var/pyenv/versions/3.6.1/envs/brm-api/lib/python3.6/site-packages/flask/views.py", line 149, in dispatch_request
    return meth(*args, **kwargs)
  File "/usr/local/var/pyenv/versions/3.6.1/envs/brm-api/lib/python3.6/site-packages/flasgger/base.py", line 478, in get
    endpoint=rule.endpoint, verb=verb
  File "/usr/local/var/pyenv/versions/3.6.1/envs/brm-api/lib/python3.6/site-packages/flasgger/base.py", line 76, in _parse_docstring
    obj.__globals__['__file__']
KeyError: '__file__'
@messense
Copy link
Author

messense commented Apr 1, 2017

0.6.1 workes fine, 0.6.2 breaks.

@messense
Copy link
Author

messense commented Apr 1, 2017

Caused by 7a3db94

@rochacbruno
Copy link
Member

hi tks for reporting
which example to reproduce the error? can you share example code for the app?

@rochacbruno
Copy link
Member

this may be replaced with inspect.getfile

@messense
Copy link
Author

messense commented Apr 1, 2017

inspect.getfile gets:

>>> inspect.getfile(obj)
'<decorator-gen-38>'

The view func has a decorator applied (Used decorator package).

Get __file__ by: obj.__wrapped__.__global__['__file__'] worked as expected.

rochacbruno added a commit that referenced this issue Apr 1, 2017
@rochacbruno
Copy link
Member

@messense I added a fix, and a test examples/decorator_package.py please try again ans let me know if works so I can release 0.6.3

Thanks

@messense
Copy link
Author

messense commented Apr 1, 2017

@rochacbruno It works, thanks.

@messense messense closed this as completed Apr 1, 2017
rochacbruno added a commit that referenced this issue Apr 1, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants