Mesmo após a resposta de @Mickey Perlstein e suas 3 horas de trabalho de detetive, ainda levei mais alguns minutos para aplicar isso à minha própria bagunça. Caso alguém seja como eu e precise de um pouco mais de ajuda, eis o que estava acontecendo na minha situação.
- respostas é um módulo
- Response é uma classe base dentro do módulo de respostas
- GeoJsonResponse é uma nova classe derivada de Response
Classe inicial GeoJsonResponse:
from pyexample.responses import Response
class GeoJsonResponse(Response):
def __init__(self, geo_json_data):
Parece bem. Sem problemas até você tentar depurar a coisa, que é quando você recebe um monte de mensagens de erro aparentemente vagas como esta:
from pyexample.responses import GeoJsonResponse .. \ pyexample \ answers \ GeoJsonResponse.py: 12: na classe (do módulo) GeoJsonResponse (Response):
E TypeError: module () recebe no máximo 2 argumentos (3 dados)
=================================== ERROS ============== ======================
___________________ ERRO ao coletar testes / test_geojson.py ____________________
test_geojson.py:2: in (módulo) de pyexample.responses importa GeoJsonResponse .. \ pyexample \ answers \ GeoJsonResponse.py: 12: in (módulo)
classe GeoJsonResponse (Response): E TypeError: module () leva no máximo 2 argumentos (3 dados)
ERRO: não encontrado: \ PyExample \ tests \ test_geojson.py :: TestGeoJson :: test_api_response
C: \ Python37 \ lib \ pacotes de sites \ aenum__init __. Py: 163
(nenhum nome 'PyExample \ tests \ test_geojson.py :: TestGeoJson :: test_api_response' em qualquer um dos [])
Os erros estavam fazendo o possível para me apontar na direção certa, e a resposta de @Mickey Perlstein estava morta, levei apenas um minuto para reunir tudo no meu próprio contexto:
Eu estava importando o módulo :
from pyexample.responses import Response
quando eu deveria estar importando a classe :
from pyexample.responses.Response import Response
Espero que isso ajude alguém. (Em minha defesa, ainda é muito cedo.)