Anche dopo la risposta di @Mickey Perlstein e le sue 3 ore di lavoro investigativo, mi ci sono voluti ancora alcuni minuti per applicare questo al mio pasticcio. Nel caso in cui qualcun altro sia come me e abbia bisogno di un po 'più di aiuto, ecco cosa stava succedendo nella mia situazione.
- risposte è un modulo
- La risposta è una classe di base all'interno del modulo risposte
- GeoJsonResponse è una nuova classe derivata da Response
Classe iniziale GeoJsonResponse:
from pyexample.responses import Response
class GeoJsonResponse(Response):
def __init__(self, geo_json_data):
Sembra a posto. Nessun problema fino a quando non provi a eseguire il debug della cosa, ovvero quando ricevi un sacco di messaggi di errore apparentemente vaghi come questo:
da pyexample.responses importa GeoJsonResponse .. \ pyexample \ responses \ GeoJsonResponse.py: 12: nella classe (modulo) GeoJsonResponse (Response):
E TypeError: module () accetta al massimo 2 argomenti (3 forniti)
=================================== ERRORI ============== ======================
___________________ ERRORE raccolta test / test_geojson.py ____________________
test_geojson.py:2: in (modulo) da pyexample.responses import GeoJsonResponse .. \ pyexample \ responses \ GeoJsonResponse.py: 12: in (modulo)
class GeoJsonResponse (Response): E TypeError: module () accetta al massimo 2 argomenti (3 forniti)
ERRORE: non trovato: \ PyExample \ tests \ test_geojson.py :: TestGeoJson :: test_api_response
C:. \ Python37 \ lib \ site-packages \ __ aenum__init py: 163
(nessun nome "PyExample \ tests \ test_geojson.py :: TestGeoJson :: test_api_response" in nessuno dei [])
Gli errori stavano facendo del loro meglio per indicarmi la giusta direzione, e la risposta di @Mickey Perlstein era morta, mi ci è voluto solo un minuto per mettere tutto insieme nel mio contesto:
Stavo importando il modulo :
from pyexample.responses import Response
quando avrei dovuto importare la classe :
from pyexample.responses.Response import Response
Spero che questo aiuti qualcuno. (A mia difesa, è ancora piuttosto presto.)