Incluso después de la respuesta de @Mickey Perlstein y sus 3 horas de trabajo de detective, todavía me tomó unos minutos más aplicar esto a mi propio desastre. En caso de que alguien más sea como yo y necesite un poco más de ayuda, esto es lo que estaba sucediendo en mi situación.
- respuestas es un módulo
- La respuesta es una clase base dentro del módulo de respuestas
- GeoJsonResponse es una nueva clase derivada de Response
Clase inicial GeoJsonResponse:
from pyexample.responses import Response
class GeoJsonResponse(Response):
def __init__(self, geo_json_data):
Se ve bien. No hay problemas hasta que intente depurar el problema, que es cuando recibe un montón de mensajes de error aparentemente vagos como este:
from pyexample.responses import GeoJsonResponse .. \ pyexample \ answers \ GeoJsonResponse.py: 12: en la clase (módulo) GeoJsonResponse (Response):
E TypeError: module () toma como máximo 2 argumentos (3 dados)
=================================== ERRORES ============== ======================
___________________ ERROR al recopilar pruebas / test_geojson.py ____________________
test_geojson.py:2: in (module) from pyexample.responses import GeoJsonResponse .. \ pyexample \ answers \ GeoJsonResponse.py: 12: in (módulo)
class GeoJsonResponse (Response): E TypeError: module () toma como máximo 2 argumentos (3 dados)
ERROR: no encontrado: \ PyExample \ tests \ test_geojson.py :: TestGeoJson :: test_api_response
C: \ Python37 \ lib \ site-packages \ aenum__init __. Py: 163
(sin nombre 'PyExample \ tests \ test_geojson.py :: TestGeoJson :: test_api_response' en ninguno de [])
Los errores hicieron todo lo posible para señalarme en la dirección correcta, y la respuesta de @Mickey Perlstein fue acertada, solo me llevó un minuto poner todo junto en mi propio contexto:
Estaba importando el módulo :
from pyexample.responses import Response
cuando debería haber estado importando la clase :
from pyexample.responses.Response import Response
Espero que esto ayude a alguien. (En mi defensa, todavía es bastante temprano).