CyberSource / CyberSource/cybersource-rest-client-python
Exception: Callable has no attribute __abc_registry
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 24
- Fork
- 42
- Merge medio
- 29m
- PR unite (30g)
- 1
Descrizione
Expected Behavior
Cybersource-REST-Client-Python should work with the Python 3.7.
Actual Behavior
Users receive a Callable has no attribute __abc_registry error.
This is a known issue when installing typing on a system that has Python > 3.6 because typing is in the standard library since version 3.5. Importing typing with Python 3.7 fails.
Cloudwatch Log
[ERROR] AttributeError: type object 'Callable' has no attribute '_abc_registry'
Traceback (most recent call last):
File "/var/lang/lib/python3.7/imp.py", line 234, in load_module
return load_source(name, filename, file)
File "/var/lang/lib/python3.7/imp.py", line 171, in load_source
module = _load(spec)
File "<frozen importlib._bootstrap>", line 696, in _load
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/var/task/app.py", line 4, in <module>
from typing import Optional
File "/var/task/typing.py", line 1347, in <module>
class Callable(extra=collections_abc.Callable, metaclass=CallableMeta):
File "/var/task/typing.py", line 1003, in __new__
self._abc_registry = extra._abc_registry
Steps to Reproduce the Problem
- Installed the latest available version of the SDK through pip so it will install all required dependencies too.
- Create a test.py file and import the Cybersource SDK in an environment with Python > 3.5.
- Execute the script python or upload the code to Lambda and run it.
Suggestion for Fix
Opened a PR here: https://github.com/CyberSource/cybersource-rest-client-python/pull/21
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Riproduci il problema installando l’SDK più recente con pip e importando il client o typing.Optional da test.py, usando Python 3.7 o Lambda come descritto. Esamina il comportamento delle dipendenze e PR #21; il lavoro è completato quando l’SDK viene importato correttamente su Python 3.7 senza l’errore Callable __abc_registry.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- api
- Tipo di issue
- Bug
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 25/100