AttributeError: 'CollectionReference' object has no attribute 'stream' - python

I am looking at reading information from firestore. So I followed the examples from here. Here is my code. It's a Flask application which calls the firestore client.
#menuapi_routes.route("/api/menu")
def get_menus():
menu_items = get_menu_items()
retval = []
for item in menu_items.stream():
retval.append(u' {} => {}'.format(item.id, item.to_dict()))
return json.dumps(retval)
The code which is getting called is.
def get_menu_items():
db = firestore.Client()
doc_ref = db.collection(u'menus')
return doc_ref
The error I get is
127.0.0.1 - - [16/May/2020 22:09:24] "GET / HTTP/1.1" 404 -
[2020-05-16 22:09:34,236] ERROR in app: Exception on /api/menu [GET]
Traceback (most recent call last):
File "\venv\lib\site-packages\flask\app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "\venv\lib\site-packages\flask\app.py", line 1952, in full_dispatch_request
rv = self.handle_user_exception(e)
File "\venv\lib\site-packages\flask\app.py", line 1821, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "\venv\lib\site-packages\flask\_compat.py", line 39, in reraise
raise value
File "\venv\lib\site-packages\flask\app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "\venv\lib\site-packages\flask\app.py", line 1936, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "\app\api\menu\menu.py", line 13, in get_menus
for item in menu_items.stream():
AttributeError: 'CollectionReference' object has no attribute 'stream'
Exception on /api/menu [GET]
Traceback (most recent call last):
File "\venv\lib\site-packages\flask\app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "\venv\lib\site-packages\flask\app.py", line 1952, in full_dispatch_request
rv = self.handle_user_exception(e)
File "\venv\lib\site-packages\flask\app.py", line 1821, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "\venv\lib\site-packages\flask\_compat.py", line 39, in reraise
raise value
File "\venv\lib\site-packages\flask\app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "\venv\lib\site-packages\flask\app.py", line 1936, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "\app\api\menu\menu.py", line 13, in get_menus
for item in menu_items.stream():
AttributeError: 'CollectionReference' object has no attribute 'stream'
Exception on /api/menu [GET]
Traceback (most recent call last):
File "\venv\lib\site-packages\flask\app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "\venv\lib\site-packages\flask\app.py", line 1952, in full_dispatch_request
rv = self.handle_user_exception(e)
File "\venv\lib\site-packages\flask\app.py", line 1821, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "\venv\lib\site-packages\flask\_compat.py", line 39, in reraise
raise value
File "\venv\lib\site-packages\flask\app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "\venv\lib\site-packages\flask\app.py", line 1936, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "\app\api\menu\menu.py", line 13, in get_menus
for item in menu_items.stream():
AttributeError: 'CollectionReference' object has no attribute 'stream'
127.0.0.1 - - [16/May/2020 22:09:34] "GET /api/menu HTTP/1.1" 500 -

Related

Dash tutoriel error : Unexpected keyword argument

i'm learning Dash following this tutoriel https://github.com/amyoshino/Dash_Tutorial_Series
the problem is that when i install the project and try to run app.py function i found this error :
Traceback (most recent call last):
File "app.py", line 58, in <module>
dcc.Checklist(
File
"C:\Users\Asus\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\
LocalCache\local-packages\Python38\site-packages\dash\development\base_component.py",
line 42, in wrapper
return func(*args, **kwargs)
File
"C:\Users\Asus\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\
local-packages\Python38\site-packages\dash_core_components\Checklist.py", line 69, in __init__
super(Checklist, self).__init__(**args)
File
"C:\Users\Asus\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\
LocalCache\local-packages\Python38\site-packages\dash\development\base_component.py", line 82, in
__init__
raise TypeError(
TypeError: Unexpected keyword argument `values`
Allowed arguments: className, id, inputClassName, inputStyle, labelClassName, labelStyle,
loading_state, options, persisted_props, persistence, persistence_type, style, value
PS: I have installed all the requirements and libraries needed
when i change values with value the code runs but when i open the localhost another error occur
127.0.0.1 - - [17/Jan/2021 15:53:20] "←[35m←[1mGET /_dash-component-
suites/dash_renderer/dash_renderer.min.js.map?v=1.8.3 HTTP/1.1←[0m" 500 -
Traceback (most recent call last):
File
"C:\Users\Asus\AppData\Local\Packages\
PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-
packages\Python38\site-packages\flask\app.py", line 2464, in __call__
return self.wsgi_app(environ, start_response)
File
"C:\Users\Asus\AppData\Local\Packages\
PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-
packages\Python38\site-packages\flask\app.py", line 2450, in wsgi_app
response = self.handle_exception(e)
File
"C:\Users\Asus\AppData\Local\Packages\
PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-
packages\Python38\site-packages\flask\app.py", line 1867, in
handle_exception
reraise(exc_type, exc_value, tb)
File "C:\Users\Asus\AppData\Local\Packages\
PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-
packages\Python38\site-packages\flask\_compat.py", line 39, in reraise
raise value
File "C:\Users\Asus\AppData\Local\Packages\
PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-
packages\Python38\site-packages\flask\app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "C:\Users\Asus\AppData\Local\Packages\
PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-
packages\Python38\site-packages\flask\app.py", line 1952, in
full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Users\Asus\AppData\Local\Packages\
PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-
packages\Python38\site-packages\flask\app.py", line 1821, in
handle_user_exception
reraise(exc_type, exc_value, tb)
File "C:\Users\Asus\AppData\Local\Packages\
PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-
packages\Python38\site-packages\flask\_compat.py", line 39, in reraise
raise value
File "C:\Users\Asus\AppData\Local\Packages\
PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-
packages\Python38\site-packages\flask\app.py", line 1950, in
full_dispatch_request
rv = self.dispatch_request()
File "C:\Users\Asus\AppData\Local\Packages\
PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-
packages\Python38\site-packages\flask\app.py", line 1936, in
dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File
"C:\Users\Asus\AppData\Local\Packages\
PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-
packages\Python38\site-packages\
dash\dash.py", line 393, in serve_component_suites
mimetype = ({
KeyError: 'map'
127.0.0.1 - - [17/Jan/2021 15:53:21] "←[35m←[1mGET /_dash-component-
suites/dash_renderer/dash_renderer.min.js.map?v=1.8.3
HTTP/1.1←[0m" 500 -
Traceback (most recent call last):
File "C:\Users\Asus\AppData\Local\Packages\
PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-
packages\Python38\site-packages\flask\app.py", line 2464, in __call__
return self.wsgi_app(environ, start_response)
File "C:\Users\Asus\AppData\Local\Packages\
PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-
packages\Python38\site-packages\flask\app.py", line 2450, in wsgi_app
response = self.handle_exception(e)
File "C:\Users\Asus\AppData\Local\
Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-
packages\Python38\site-packages\flask\app.py", line 1867, in
handle_exception
reraise(exc_type, exc_value, tb)
File
"C:\Users\Asus\AppData\Local\Packages\
PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-
packages\Python38\site-packages\flask\_compat.py", line 39, in reraise
raise value
File "C:\Users\Asus\AppData\Local\
Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-
packages\Python38\site-packages\flask\app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "C:\Users\Asus\AppData\Local\Packages\
PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-
packages\Python38\site-packages\flask\app.py", line 1952, in
full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Users\Asus\AppData\Local\Packages\
PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-
packages\Python38\site-packages\flask\app.py", line 1821, in
handle_user_exception
reraise(exc_type, exc_value, tb)
File "C:\Users\Asus\AppData\Local\Packages\
PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-
packages\Python38\site-packages\flask\_compat.py", line 39, in reraise
raise value
File "C:\Users\Asus\AppData\Local\Packages\
PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-
packages\Python38\site-packages\flask\app.py", line 1950, in
full_dispatch_request
rv = self.dispatch_request()
File "C:\Users\Asus\AppData\Local\Packages\
PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-
packages\Python38\site-packages\flask\app.py", line 1936, in
dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "C:\Users\Asus\AppData\Local\Packages\
PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-
packages\Python38\site-packages\dash\dash.py", line 393, in
serve_component_suites
mimetype = ({
KeyError: 'map'
127.0.0.1 - - [17/Jan/2021 15:53:21] "←[37mGET /favicon.ico HTTP/1.1←[0m" 200 -
That repo contains the error. As the traceback informs you, values is not allowed there, but you can use value. Change it locally and it should resolve the error. Additionally, you could make a pull request to that repo and help the original author(s) by fixing a bug in their code.

Flask doesn't see the static file

Regards, It's been seeing my static files by now. I am using VS Code as an editor. I clicked accidentally debug mode and then it stopped seeing my static files. I started VS Code again but the result hasn't changed. How can I solve this problem? When I open localhost, it shows 127.0.0.1:5000/static/css/main.css but it gives an error when I display the page source and open the css file on the new page.
The error I get in the browser is: TypeError: make_conditional() got an unexpected keyword argument 'accept_ranges'
The error I received in VS Code is as follows:
127.0.0.1 - - [12/Dec/2018 23:17:50] "GET /static/css/main.css HTTP/1.1" 500 -
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 2309, in __call__
return self.wsgi_app(environ, start_response)
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 2295, in wsgi_app
response = self.handle_exception(e)
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1741, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.6/site-packages/flask/_compat.py", line 35, in reraise
raise value
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 2292, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1815, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1718, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.6/site-packages/flask/_compat.py", line 35, in reraise
raise value
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1813, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1799, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/usr/local/lib/python3.6/site-packages/flask/helpers.py", line 976, in send_static_file
cache_timeout=cache_timeout)
File "/usr/local/lib/python3.6/site-packages/flask/helpers.py", line 713, in send_from_directory
return send_file(filename, **options)
File "/usr/local/lib/python3.6/site-packages/flask/helpers.py", line 628, in send_file
complete_length=fsize)
TypeError: make_conditional() got an unexpected keyword argument 'accept_ranges'
According to flask, the required Werkzeug version is Werkzeug >= 0.14 from here

KeyError: 'oauth_state'

Hi I am currently trying to test the code on https://github.com/futurice/whereareyou
I have a problem on the master server side.
The error received
Traceback (most recent call last):
File "/home/arms/.local/lib/python2.7/site-packages/flask/app.py", line 1997, in call
return self.wsgi_app(environ, start_response)
File "/home/arms/.local/lib/python2.7/site-packages/flask/app.py", line 1985, in wsgi_app
response = self.handle_exception(e)
File "/home/arms/.local/lib/python2.7/site-packages/flask/app.py", line 1540, in handle_exception
reraise(exc_type, exc_value, tb)
File "/home/arms/.local/lib/python2.7/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/home/arms/.local/lib/python2.7/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/arms/.local/lib/python2.7/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/home/arms/.local/lib/python2.7/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/home/arms/.local/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functionsrule.endpoint
File "/home/arms/Project/whereareyou/app.py", line 112, in callback
google = get_google_auth(state=session['oauth_state'])
File "/home/arms/.local/lib/python2.7/site-packages/werkzeug/local.py", line 377, in
getitem = lambda x, i: x._get_current_object()[i]
KeyError: 'oauth_state'
Please help. Thank you.
I was facing the same problem when I was using session in my app with the following link provided by Flask :
http://127.0.0.1:5000/
Solution: It however perfectly works with http://localhost:5000/
Just replace your local IP address(127.0.0.1) with "localhost".

Peewee 'Connection already open' in url_value_preprocessor with Flask

What I am trying to do is check the subdomain value passed to the route methods just like explained here
Whenever I access the panel blueprint I receive this error: peewee.OperationalError: Connection already open
This is how I initialize the database in my main app file.
flask_db = FlaskDB(app)
database = flask_db.database
The problematic code seems to be
#panel.url_value_preprocessor
def check_client_and_user(endpoint, values):
client = Client.get(Client.subdomain == values.pop('client'))
The full source code can be found on Gitlab
__init__.py is the main app file. panel/__init__.py has the problematic code. This is the full traceback I receive:
Traceback (most recent call last):
File "/home/marten/Projects/Comp/server/venv/lib/python3.6/site-packages/flask/app.py", line 1997, in __call__
return self.wsgi_app(environ, start_response)
File "/home/marten/Projects/Comp/server/venv/lib/python3.6/site-packages/flask/app.py", line 1985, in wsgi_app
response = self.handle_exception(e)
File "/home/marten/Projects/Comp/server/venv/lib/python3.6/site-packages/flask/app.py", line 1540, in handle_exception
reraise(exc_type, exc_value, tb)
File "/home/marten/Projects/Comp/server/venv/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/home/marten/Projects/Comp/server/venv/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/home/marten/Projects/Comp/server/venv/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/marten/Projects/Comp/server/venv/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/home/marten/Projects/Comp/server/venv/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/home/marten/Projects/Comp/server/venv/lib/python3.6/site-packages/flask/app.py", line 1610, in full_dispatch_request
rv = self.preprocess_request()
File "/home/marten/Projects/Comp/server/venv/lib/python3.6/site-packages/flask/app.py", line 1831, in preprocess_request
rv = func()
File "/home/marten/Projects/Comp/server/venv/lib/python3.6/site-packages/playhouse/flask_utils.py", line 171, in connect_db
self.database.connect()
File "/home/marten/Projects/Comp/server/venv/lib/python3.6/site-packages/peewee.py", line 3679, in connect
raise OperationalError('Connection already open')
peewee.OperationalError: Connection already open
I don't know where the extra connection is coming from. It seems like it is being generated by the Client.select() query.
Edit:
This code here
def get_or_404(client):
app.logger.debug(database.get_tables())
cli = Client.select().where(Client.subdomain == client)
Generates this response
--------------------------------------------------------------------------------
DEBUG in models [/home/marten/Projects/Comp/server/app/panel/models.py:14]:
['client', 'role', 'user', 'userroles']
--------------------------------------------------------------------------------
127.0.0.1 - - [17/Aug/2017 14:57:31] "GET / HTTP/1.1" 500 -
Traceback (most recent call last):
File "/home/marten/Projects/Comp/server/venv/lib/python3.6/site-packages/flask/app.py", line 1997, in __call__
return self.wsgi_app(environ, start_response)
File "/home/marten/Projects/Comp/server/venv/lib/python3.6/site-packages/flask/app.py", line 1985, in wsgi_app
response = self.handle_exception(e)
File "/home/marten/Projects/Comp/server/venv/lib/python3.6/site-packages/flask/app.py", line 1540, in handle_exception
reraise(exc_type, exc_value, tb)
File "/home/marten/Projects/Comp/server/venv/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/home/marten/Projects/Comp/server/venv/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/home/marten/Projects/Comp/server/venv/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/marten/Projects/Comp/server/venv/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/home/marten/Projects/Comp/server/venv/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/home/marten/Projects/Comp/server/venv/lib/python3.6/site-packages/flask/app.py", line 1610, in full_dispatch_request
rv = self.preprocess_request()
File "/home/marten/Projects/Comp/server/venv/lib/python3.6/site-packages/flask/app.py", line 1831, in preprocess_request
rv = func()
File "/home/marten/Projects/Comp/server/venv/lib/python3.6/site-packages/playhouse/flask_utils.py", line 171, in connect_db
self.database.connect()
File "/home/marten/Projects/Comp/server/venv/lib/python3.6/site-packages/peewee.py", line 3679, in connect
raise OperationalError('Connection already open')
peewee.OperationalError: Connection already open
As you can see the database is actually connected, and the client table is available.
Edit 2:
Well, I just found that apparently just database.get_tables() will cause this error. However, that code does fetch all tables from the database...
Does url_value_preprocessor run before the database is initialized? That would be strange since I import the object calling this decorator after initializing the database.

TypeError: 'str' does not support the buffer interface when using flask sendmail

I'm attempting to use sendmail within flask to send some emails - but the error message coming back are a bit cryptic.
from flask.ext.sendmail import Message
from flask.ext.sendmail import Mail
mail = Mail()
mail.init_app(app)
msg = Message("Hello".encode('utf-8'), sender="xxx#xxx.com".encode('utf-8'), recipients="xxx#xxx.com".encode('utf-8'))
msg.body = "testing"
msg.html = "testing"
mail.send(msg)
The problem appears at mail.send(msg). Here is the full trace:
Traceback (most recent call last):
File "/home/xxx/xxx/lib/python3.4/site-packages/flask/app.py", line 1836, in __call__
return self.wsgi_app(environ, start_response)
File "/home/xxx/xxx/lib/python3.4/site-packages/flask/app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/home/xxx/xxx/lib/python3.4/site-packages/flask/app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
File "/home/xxx/xxx/lib/python3.4/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/home/xxx/xxx/lib/python3.4/site-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/home/xxx/xxx/lib/python3.4/site-packages/flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/xxx/xxx/lib/python3.4/site-packages/flask/app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/home/xxx/xxx/lib/python3.4/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/home/xxx/xxx/lib/python3.4/site-packages/flask/app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "/home/xxx/xxx/lib/python3.4/site-packages/flask/app.py", line 1461, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/home/xxx/xxx/login.py", line 129, in registersub
mail.send(msg)
File "/home/xxx/xxx/lib/python3.4/site-packages/flask_sendmail/mail.py", line 40, in send
message.send(self.connect())
File "/home/xxx/xxx/lib/python3.4/site-packages/flask_sendmail/message.py", line 115, in send
if self.is_bad_headers():
File "/home/xxx/xxx/lib/python3.4/site-packages/flask_sendmail/message.py", line 72, in is_bad_headers
if c in val:
TypeError: 'str' does not support the buffer interface
Where is the likely culprit?
Have a look at this example
>>> 'c' in b'val'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' does not support the buffer interface
It's the same error you've got, so don't encode the str values you're using.

Categories

Resources