aws / aws/aws-xray-sdk-python

Pymongo patch does not work in Python 3.5

Open
#166 3 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Python
Stars
338
Forks
147
PR merge metrics
No merged PRs in 30d

Description

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

Contributor guide

Open the contributing guide

Research direction

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.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, django, python
Domain
backend, databases
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.