{"action":"created","issue":{"url":"https://api.github.com/repos/singingwolfboy/flask-dance/issues/42","labels_url":"https://api.github.com/repos/singingwolfboy/flask-dance/issues/42/labels{/name}","comments_url":"https://api.github.com/repos/singingwolfboy/flask-dance/issues/42/comments","events_url":"https://api.github.com/repos/singingwolfboy/flask-dance/issues/42/events","html_url":"https://github.com/singingwolfboy/flask-dance/issues/42","id":123510107,"number":42,"title":"Unmanaged access of declarative attribute __tablename__","user":{"login":"citizenken","id":6420955,"avatar_url":"https://avatars.githubusercontent.com/u/6420955?v=3","gravatar_id":"","url":"https://api.github.com/users/citizenken","html_url":"https://github.com/citizenken","followers_url":"https://api.github.com/users/citizenken/followers","following_url":"https://api.github.com/users/citizenken/following{/other_user}","gists_url":"https://api.github.com/users/citizenken/gists{/gist_id}","starred_url":"https://api.github.com/users/citizenken/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/citizenken/subscriptions","organizations_url":"https://api.github.com/users/citizenken/orgs","repos_url":"https://api.github.com/users/citizenken/repos","events_url":"https://api.github.com/users/citizenken/events{/privacy}","received_events_url":"https://api.github.com/users/citizenken/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-12-22T16:11:07Z","updated_at":"2015-12-22T16:47:55Z","closed_at":null,"body":"When I start up my Flask app, I get the following warning:\r\n\r\n    /repo/package_venv/lib/python2.7/site-packages/sqlalchemy/ext/declarative/api.py:173: \r\n    SAWarning: Unmanaged access of declarative attribute __tablename__ \r\n    from non-mapped class OAuthConsumerMixin(desc.fget.__name__, cls.__name__))\r\n\r\nLooking at the mixin, it is because __tablename__ is a function instead of a property of the mixin. You pass cls into that function to dynamically create the tablename. Is there a way to fix this?"},"comment":{"url":"https://api.github.com/repos/singingwolfboy/flask-dance/issues/comments/166670836","html_url":"https://github.com/singingwolfboy/flask-dance/issues/42#issuecomment-166670836","issue_url":"https://api.github.com/repos/singingwolfboy/flask-dance/issues/42","id":166670836,"user":{"login":"singingwolfboy","id":132355,"avatar_url":"https://avatars.githubusercontent.com/u/132355?v=3","gravatar_id":"","url":"https://api.github.com/users/singingwolfboy","html_url":"https://github.com/singingwolfboy","followers_url":"https://api.github.com/users/singingwolfboy/followers","following_url":"https://api.github.com/users/singingwolfboy/following{/other_user}","gists_url":"https://api.github.com/users/singingwolfboy/gists{/gist_id}","starred_url":"https://api.github.com/users/singingwolfboy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/singingwolfboy/subscriptions","organizations_url":"https://api.github.com/users/singingwolfboy/orgs","repos_url":"https://api.github.com/users/singingwolfboy/repos","events_url":"https://api.github.com/users/singingwolfboy/events{/privacy}","received_events_url":"https://api.github.com/users/singingwolfboy/received_events","type":"User","site_admin":false},"created_at":"2015-12-22T16:47:55Z","updated_at":"2015-12-22T16:47:55Z","body":"I don't understand: [the SQLAlchemy docs follow this exact pattern for attributes on mixin classes](http://docs.sqlalchemy.org/en/rel_1_0/orm/extensions/declarative/mixins.htm). Can you provide a code snippet that demonstrates the problem -- or even better, an automated test?"}}