PyCharm donne un avertissement de type lorsque vous travaillez avec la valeur d'un champ MongoEngine. Par exemple, lorsque vous travaillez avec StringField
comme avec str
:Champs MongoEngine, saisie et PyCharm
class ExampleDocument(Document):
s = StringField()
doc = ExampleDocument(s='mongoengine-test')
print(doc.s.endswith('test'))
Je reçois un avertissement référence attribut Unresolved « endswith » pour la classe Stringfield à moins d'utiliser typing.cast
(c.-à-typing.cast(str, doc.s).endswith('test')
Le code est exécuté comme prévu, mais il est là. de toute façon de se débarrasser de ces avertissements et aussi pour obtenir les autocompletes nécessaires pour les types de champs MongoEngine
Merci, c'est plus ou moins ce que j'utilise. Existe-t-il un moyen de déclarer qu'un type en étend un autre (par exemple, que 'StringField' implémente toutes les méthodes de' str')? –
Vous pouvez utiliser 'Union [str, StringField]' dans le commentaire ou les indications de type Python 3.x. L'union doit être importée du module 'typing'. – Markus