aws / aws/aws-xray-sdk-python

Pymongo patch does not work in Python 3.5

Aperta
#166 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub
bug
Lingua principale
Python
Stelle
338
Fork
147
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

I tried to patch `pymongo` in mi project that is in Python 3.5 but when i run it the following error appear:

```python
Unhandled exception in thread started by .wrapper at 0x7f81714f5620>
Traceback (most recent call last):
File "/home/julianad/Alkanza/virtualenv/alkanza-django3.5/lib/python3.5/site-packages/django/utils/autoreload.py", line 228, in wrapper
fn(*args, **kwargs)
File "/home/julianad/Alkanza/virtualenv/alkanza-django3.5/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 117, in inner_run
autoreload.raise_last_exception()
File "/home/julianad/Alkanza/virtualenv/alkanza-django3.5/lib/python3.5/site-packages/django/utils/autoreload.py", line 251, in raise_last_exception
six.reraise(*_exception)
File "/home/julianad/Alkanza/virtualenv/alkanza-django3.5/lib/python3.5/site-packages/django/utils/six.py", line 685, in reraise
raise value.with_traceback(tb)
File "/home/julianad/Alkanza/virtualenv/alkanza-django3.5/lib/python3.5/site-packages/django/utils/autoreload.py", line 228, in wrapper
fn(*args, **kwargs)
File "/home/julianad/Alkanza/virtualenv/alkanza-django3.5/lib/python3.5/site-packages/django/__init__.py", line 27, in setup
apps.populate(settings.INSTALLED_APPS)
File "/home/julianad/Alkanza/virtualenv/alkanza-django3.5/lib/python3.5/site-packages/django/apps/registry.py", line 116, in populate
app_config.ready()
File "/home/julianad/Alkanza/virtualenv/alkanza-django3.5/lib/python3.5/site-packages/aws_xray_sdk/ext/django/apps.py", line 47, in ready
patch(settings.PATCH_MODULES, ignore_module_patterns=settings.IGNORE_MODULE_PATTERNS)
File "/home/julianad/Alkanza/virtualenv/alkanza-django3.5/lib/python3.5/site-packages/aws_xray_sdk/core/patcher.py", line 96, in patch
_patch_module(m, raise_errors)
File "/home/julianad/Alkanza/virtualenv/alkanza-django3.5/lib/python3.5/site-packages/aws_xray_sdk/core/patcher.py", line 105, in _patch_module
_patch(module_to_patch)
File "/home/julianad/Alkanza/virtualenv/alkanza-django3.5/lib/python3.5/site-packages/aws_xray_sdk/core/patcher.py", line 120, in _patch
imported_module = importlib.import_module(path)
File "/usr/local/lib/python3.5/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 986, in _gcd_import
File "", line 969, in _find_and_load
File "", line 958, in _find_and_load_unlocked
File "", line 673, in _load_unlocked
File "", line 665, in exec_module
File "", line 222, in _call_with_frames_removed
File "/home/julianad/Alkanza/virtualenv/alkanza-django3.5/lib/python3.5/site-packages/aws_xray_sdk/ext/pymongo/__init__.py", line 2, in
from .patch import patch
File "/home/julianad/Alkanza/virtualenv/alkanza-django3.5/lib/python3.5/site-packages/aws_xray_sdk/ext/pymongo/patch.py", line 23
host_and_port_str = f'{host}:{port}'
^
SyntaxError: invalid syntax
```
I notice that you are using the `f` prefix but i think is not compatible with Python 3.5. I removed `pymongo` from the list of modules to patch and it worked.

I don't know if there is a way to build `pymongo` patch with a syntax that is compatible with all python versions that you support but i would really appreciate it

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inspect aws_xray_sdk/ext/pymongo/patch.py, especially line 23 shown in the traceback, and reproduce the issue with the Python 3.5 environment while pymongo remains in PATCH_MODULES. Done means the pymongo patch imports and Django starts without the SyntaxError.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
aws, django, python
Ambito
backend, databases
Tipo di issue
Bug
Difficoltà
2/5
Tempo stimato
1-3 ore
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.