Ho un po 'di codice utilizzando una semplice configurazione del socket TCP per testare qualcosa. Eseguiamo pylint --errors-only
sui nostri file python, generalmente come un modo per convalidare tutto il nostro codice.Come impedire a Python Pylint di lamentarsi del metodo Sendall della classe socket
Tuttavia, il semplice codice di esempio riportato sulla documentazione della libreria Python presa - http://docs.python.org/library/socket.html - uscita volontà:
************* Module SocketExample
E: 16: Instance of '_socketobject' has no 'recv' member
E: 18: Instance of '_socketobject' has no 'sendall' member
La documentazione mostra questi membri, le piste di codici e opere.
Un dir di presa mostra loro esistente troppo:
>>> import socket
>>> s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>>> dir(s)
['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '__weakref__', '_sock', 'accept', 'bind', 'close', 'connect', 'connect_ex', 'dup', 'family', 'fileno', 'getpeername', 'getsockname', 'getsockopt', 'gettimeout', 'listen', 'makefile', 'proto', 'recv', 'recv_into', 'recvfrom', 'recvfrom_into', 'send', 'sendall', 'sendto', 'setblocking', 'setsockopt', 'settimeout', 'shutdown', 'type']
Questo è giù per il frammento:
for method in _delegate_methods:
setattr(self, method, getattr(_sock, method))
Nell'attuazione socket.py.
È possibile fare un comando per accettare questo stile (e convalidarlo) oppure è l'unica opzione per ignorare gli avvisi di "nessun membro" con # pylint: disable-msg=E1101
?
Aggiungerlo al file rc ha molto senso. Significa che l'oggetto non riceve alcun controllo, ma è più piacevole delle disabilitazioni locali. –
Chiamare questa risposta - perché funzionerà oggi. La risposta di sthenault è buona, ma richiederà uno sforzo maggiore. Tuttavia, è uno sforzo nobile: mettetelo in github e il macchinista che usa la comunità può iniziare a contribuire con parti di base e comuni di lib. –
Sì, la mia risposta sembrava hacky in confronto, e certamente troppo ampia per ciò di cui abbiamo veramente bisogno, ma si spera non sia così ampia da causare problemi. – bossylobster