diff --git a/.pylintrc b/.pylintrc deleted file mode 100644 index 6784a7c..0000000 --- a/.pylintrc +++ /dev/null @@ -1,534 +0,0 @@ -[MASTER] - -# A comma-separated list of package or module names from where C extensions may -# be loaded. Extensions are loading into the active Python interpreter and may -# run arbitrary code -extension-pkg-whitelist= - -# Add files or directories to the blacklist. They should be base names, not -# paths. -ignore=CVS - -# Add files or directories matching the regex patterns to the blacklist. The -# regex matches against base names, not paths. -ignore-patterns=.*_pb2.*.py - -# Python code to execute, usually for sys.path manipulation such as -# pygtk.require(). -#init-hook= - -# Use multiple processes to speed up Pylint. -jobs=1 - -# List of plugins (as comma separated values of python modules names) to load, -# usually to register additional checkers. -load-plugins= - -# Pickle collected data for later comparisons. -persistent=yes - -# Specify a configuration file. -rcfile=.pylintrc - -# When enabled, pylint would attempt to guess common misconfiguration and emit -# user-friendly hints instead of false-positive error messages -suggestion-mode=yes - -# Allow loading of arbitrary C extensions. Extensions are imported into the -# active Python interpreter and may run arbitrary code. -unsafe-load-any-extension=no - - -[MESSAGES CONTROL] - -# Only show warnings with the listed confidence levels. Leave empty to show -# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED -confidence= - -# Disable the message, report, category or checker with the given id(s). You -# can either give multiple identifiers separated by comma (,) or put this -# option multiple times (only on the command line, not in the configuration -# file where it should appear only once).You can also use "--disable=all" to -# disable everything first and then reenable specific checks. For example, if -# you want to run only the similarities checker, you can use "--disable=all -# --enable=similarities". If you want to run only the classes checker, but have -# no Warning level messages displayed, use"--disable=all --enable=classes -# --disable=W" -disable=print-statement, - parameter-unpacking, - unpacking-in-except, - old-raise-syntax, - backtick, - long-suffix, - old-ne-operator, - old-octal-literal, - import-star-module-level, - non-ascii-bytes-literal, - raw-checker-failed, - bad-inline-option, - locally-disabled, - locally-enabled, - file-ignored, - suppressed-message, - useless-suppression, - deprecated-pragma, - apply-builtin, - basestring-builtin, - buffer-builtin, - cmp-builtin, - coerce-builtin, - execfile-builtin, - file-builtin, - long-builtin, - raw_input-builtin, - reduce-builtin, - standarderror-builtin, - unicode-builtin, - xrange-builtin, - coerce-method, - delslice-method, - getslice-method, - setslice-method, - no-absolute-import, - old-division, - dict-iter-method, - dict-view-method, - next-method-called, - metaclass-assignment, - indexing-exception, - raising-string, - reload-builtin, - oct-method, - hex-method, - nonzero-method, - cmp-method, - input-builtin, - round-builtin, - intern-builtin, - unichr-builtin, - map-builtin-not-iterating, - zip-builtin-not-iterating, - range-builtin-not-iterating, - filter-builtin-not-iterating, - using-cmp-argument, - eq-without-hash, - div-method, - idiv-method, - rdiv-method, - exception-message-attribute, - invalid-str-codec, - sys-max-int, - bad-python3-import, - deprecated-string-function, - deprecated-str-translate-call, - deprecated-itertools-function, - deprecated-types-field, - next-method-defined, - dict-items-not-iterating, - dict-keys-not-iterating, - dict-values-not-iterating, - missing-docstring, - cyclic-import, - duplicate-code, - -# Enable the message, report, category or checker with the given id(s). You can -# either give multiple identifier separated by comma (,) or put this option -# multiple time (only on the command line, not in the configuration file where -# it should appear only once). See also the "--disable" option for examples. -enable=c-extension-no-member - - -[REPORTS] - -# Python expression which should return a note less than 10 (10 is the highest -# note). You have access to the variables errors warning, statement which -# respectively contain the number of errors / warnings messages and the total -# number of statements analyzed. This is used by the global evaluation report -# (RP0004). -evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) - -# Template used to display messages. This is a python new-style format string -# used to format the message information. See doc for all details -#msg-template= - -# Set the output format. Available formats are text, parseable, colorized, json -# and msvs (visual studio).You can also give a reporter class, eg -# mypackage.mymodule.MyReporterClass. -output-format=text - -# Tells whether to display a full report or only the messages -reports=no - -# Activate the evaluation score. -score=no - - -[REFACTORING] - -# Maximum number of nested blocks for function / method body -max-nested-blocks=5 - - -[LOGGING] - -# Logging modules to check that the string format arguments are in logging -# function parameter format -logging-modules=logging - - -[SPELLING] - -# Limits count of emitted suggestions for spelling mistakes -max-spelling-suggestions=4 - -# Spelling dictionary name. Available dictionaries: none. To make it working -# install python-enchant package. -spelling-dict= - -# List of comma separated words that should not be checked. -spelling-ignore-words= - -# A path to a file that contains private dictionary; one word per line. -spelling-private-dict-file= - -# Tells whether to store unknown words to indicated private dictionary in -# --spelling-private-dict-file option instead of raising a message. -spelling-store-unknown-words=no - - -[MISCELLANEOUS] - -# List of note tags to take in consideration, separated by a comma. -notes= - - -[TYPECHECK] - -# List of decorators that produce context managers, such as -# contextlib.contextmanager. Add to this list to register other decorators that -# produce valid context managers. -contextmanager-decorators=contextlib.contextmanager - -# List of members which are set dynamically and missed by pylint inference -# system, and so shouldn't trigger E1101 when accessed. Python regular -# expressions are accepted. -generated-members= - -# Tells whether missing members accessed in mixin class should be ignored. A -# mixin class is detected if its name ends with "mixin" (case insensitive). -ignore-mixin-members=yes - -# This flag controls whether pylint should warn about no-member and similar -# checks whenever an opaque object is returned when inferring. The inference -# can return multiple potential results while evaluating a Python object, but -# some branches might not be evaluated, which results in partial inference. In -# that case, it might be useful to still emit no-member and other checks for -# the rest of the inferred objects. -ignore-on-opaque-inference=yes - -# List of class names for which member attributes should not be checked (useful -# for classes with dynamically set attributes). This supports the use of -# qualified names. -ignored-classes=optparse.Values,thread._local,_thread._local - -# List of module names for which member attributes should not be checked -# (useful for modules/projects where namespaces are manipulated during runtime -# and thus existing member attributes cannot be deduced by static analysis. It -# supports qualified module names, as well as Unix pattern matching. -ignored-modules= - -# Show a hint with possible names when a member name was not found. The aspect -# of finding the hint is based on edit distance. -missing-member-hint=yes - -# The minimum edit distance a name should have in order to be considered a -# similar match for a missing member name. -missing-member-hint-distance=1 - -# The total number of similar names that should be taken in consideration when -# showing a hint for a missing member. -missing-member-max-choices=1 - - -[VARIABLES] - -# List of additional names supposed to be defined in builtins. Remember that -# you should avoid to define new builtins when possible. -additional-builtins= - -# Tells whether unused global variables should be treated as a violation. -allow-global-unused-variables=yes - -# List of strings which can identify a callback function by name. A callback -# name must start or end with one of those strings. -callbacks=cb_, - _cb - -# A regular expression matching the name of dummy variables (i.e. expectedly -# not used). -dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_ - -# Argument names that match this expression will be ignored. Default to name -# with leading underscore -ignored-argument-names=_.*|^ignored_|^unused_ - -# Tells whether we should check for unused import in __init__ files. -init-import=no - -# List of qualified module names which can have objects that can redefine -# builtins. -redefining-builtins-modules=six.moves,past.builtins,future.builtins - - -[FORMAT] - -# Expected format of line ending, e.g. empty (any line ending), LF or CRLF. -expected-line-ending-format= - -# Regexp for a line that is allowed to be longer than the limit. -ignore-long-lines=^\s*(# )??$ - -# Number of spaces of indent required inside a hanging or continued line. -indent-after-paren=4 - -# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 -# tab). -indent-string=" " - -# Maximum number of characters on a single line. -max-line-length=100 - -# Maximum number of lines in a module -max-module-lines=1000 - -# List of optional constructs for which whitespace checking is disabled. `dict- -# separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}. -# `trailing-comma` allows a space between comma and closing bracket: (a, ). -# `empty-line` allows space-only lines. -no-space-check=trailing-comma, - dict-separator - -# Allow the body of a class to be on the same line as the declaration if body -# contains single statement. -single-line-class-stmt=no - -# Allow the body of an if to be on the same line as the test if there is no -# else. -single-line-if-stmt=no - - -[SIMILARITIES] - -# Ignore comments when computing similarities. -ignore-comments=yes - -# Ignore docstrings when computing similarities. -ignore-docstrings=yes - -# Ignore imports when computing similarities. -ignore-imports=yes - -# Minimum lines number of a similarity. -min-similarity-lines=8 - - -[BASIC] - -# Naming style matching correct argument names -argument-naming-style=snake_case - -# Regular expression matching correct argument names. Overrides argument- -# naming-style -#argument-rgx= - -# Naming style matching correct attribute names -attr-naming-style=snake_case - -# Regular expression matching correct attribute names. Overrides attr-naming- -# style -#attr-rgx= - -# Bad variable names which should always be refused, separated by a comma -bad-names=foo, - bar, - baz, - toto, - tutu, - tata - -# Naming style matching correct class attribute names -class-attribute-naming-style=any - -# Regular expression matching correct class attribute names. Overrides class- -# attribute-naming-style -#class-attribute-rgx= - -# Naming style matching correct class names -class-naming-style=PascalCase - -# Regular expression matching correct class names. Overrides class-naming-style -#class-rgx= - -# Naming style matching correct constant names -const-naming-style=UPPER_CASE - -# Regular expression matching correct constant names. Overrides const-naming- -# style -#const-rgx= - -# Minimum line length for functions/classes that require docstrings, shorter -# ones are exempt. -docstring-min-length=-1 - -# Naming style matching correct function names -function-naming-style=snake_case - -# Regular expression matching correct function names. Overrides function- -# naming-style -#function-rgx= - -# Good variable names which should always be accepted, separated by a comma -good-names=i, - j, - k, - ex, - Run, - _ - -# Include a hint for the correct naming format with invalid-name -include-naming-hint=no - -# Naming style matching correct inline iteration names -inlinevar-naming-style=any - -# Regular expression matching correct inline iteration names. Overrides -# inlinevar-naming-style -#inlinevar-rgx= - -# Naming style matching correct method names -method-naming-style=snake_case - -# Regular expression matching correct method names. Overrides method-naming- -# style -#method-rgx= - -# Naming style matching correct module names -module-naming-style=snake_case - -# Regular expression matching correct module names. Overrides module-naming- -# style -#module-rgx= - -# Colon-delimited sets of names that determine each other's naming style when -# the name regexes allow several styles. -name-group= - -# Regular expression which should only match function or class names that do -# not require a docstring. -no-docstring-rgx=^_ - -# List of decorators that produce properties, such as abc.abstractproperty. Add -# to this list to register other decorators that produce valid properties. -property-classes=abc.abstractproperty - -# Naming style matching correct variable names -variable-naming-style=snake_case - -# Regular expression matching correct variable names. Overrides variable- -# naming-style -#variable-rgx= - - -[IMPORTS] - -# Allow wildcard imports from modules that define __all__. -allow-wildcard-with-all=no - -# Analyse import fallback blocks. This can be used to support both Python 2 and -# 3 compatible code, which means that the block might have code that exists -# only in one or another interpreter, leading to false positives when analysed. -analyse-fallback-blocks=no - -# Deprecated modules which should not be used, separated by a comma -deprecated-modules=optparse,tkinter.tix - -# Create a graph of external dependencies in the given file (report RP0402 must -# not be disabled) -ext-import-graph= - -# Create a graph of every (i.e. internal and external) dependencies in the -# given file (report RP0402 must not be disabled) -import-graph= - -# Create a graph of internal dependencies in the given file (report RP0402 must -# not be disabled) -int-import-graph= - -# Force import order to recognize a module as part of the standard -# compatibility libraries. -known-standard-library= - -# Force import order to recognize a module as part of a third party library. -known-third-party=enchant - - -[CLASSES] - -# List of method names used to declare (i.e. assign) instance attributes. -defining-attr-methods=__init__, - __new__, - setUp - -# List of member names, which should be excluded from the protected access -# warning. -exclude-protected=_asdict, - _fields, - _replace, - _source, - _make - -# List of valid names for the first argument in a class method. -valid-classmethod-first-arg=cls - -# List of valid names for the first argument in a metaclass class method. -valid-metaclass-classmethod-first-arg=mcs - - -[DESIGN] - -# Maximum number of arguments for function / method -max-args=5 - -# Maximum number of attributes for a class (see R0902). -max-attributes=7 - -# Maximum number of boolean expressions in a if statement -max-bool-expr=5 - -# Maximum number of branch for function / method body -max-branches=12 - -# Maximum number of locals for function / method body -max-locals=15 - -# Maximum number of parents for a class (see R0901). -max-parents=7 - -# Maximum number of public methods for a class (see R0904). -max-public-methods=20 - -# Maximum number of return / yield for function / method body -max-returns=6 - -# Maximum number of statements in function / method body -max-statements=50 - -# Minimum number of public methods for a class (see R0903). -min-public-methods=2 - - -[EXCEPTIONS] - -# Exceptions that will emit a warning when being caught. Defaults to -# "Exception" -overgeneral-exceptions=Exception \ No newline at end of file diff --git a/libp2p/__init__.py b/libp2p/__init__.py index 32fa008..110aba4 100644 --- a/libp2p/__init__.py +++ b/libp2p/__init__.py @@ -70,7 +70,6 @@ def initialize_default_swarm( :param disc_opt: optional discovery :return: return a default swarm instance """ - # pylint: disable=too-many-arguments, unused-argument if not id_opt: id_opt = generate_id() @@ -112,7 +111,6 @@ async def new_node( :param disc_opt: optional discovery :return: return a host instance """ - # pylint: disable=too-many-arguments if not id_opt: id_opt = generate_id() diff --git a/libp2p/kademlia/crawling.py b/libp2p/kademlia/crawling.py index 0e43a9b..97a4855 100644 --- a/libp2p/kademlia/crawling.py +++ b/libp2p/kademlia/crawling.py @@ -5,17 +5,15 @@ from .kad_peerinfo import KadPeerHeap, create_kad_peerinfo from .utils import gather_dict -log = logging.getLogger(__name__) # pylint: disable=invalid-name +log = logging.getLogger(__name__) -# pylint: disable=too-few-public-methods class SpiderCrawl: """ Crawl the network and look for given 160-bit keys. """ def __init__(self, protocol, node, peers, ksize, alpha): - # pylint: disable=too-many-arguments """ Create a new C{SpiderCrawl}er. @@ -72,7 +70,6 @@ class SpiderCrawl: class ValueSpiderCrawl(SpiderCrawl): def __init__(self, protocol, node, peers, ksize, alpha): - # pylint: disable=too-many-arguments SpiderCrawl.__init__(self, protocol, node, peers, ksize, alpha) # keep track of the single nearest node without value - per # section 2.3 so we can set the key there if found diff --git a/libp2p/kademlia/kad_peerinfo.py b/libp2p/kademlia/kad_peerinfo.py index 0805e2d..ea05aeb 100644 --- a/libp2p/kademlia/kad_peerinfo.py +++ b/libp2p/kademlia/kad_peerinfo.py @@ -21,7 +21,6 @@ class KadPeerInfo(PeerInfo): self.addrs = peer_data.get_addrs() if peer_data else None - # pylint: disable=invalid-name self.ip = self.addrs[0].value_for_protocol(P_IP) if peer_data else None self.port = int(self.addrs[0].value_for_protocol(P_UDP)) if peer_data else None @@ -143,7 +142,7 @@ def create_kad_peerinfo(node_id_bytes=None, sender_ip=None, sender_port=None): ) peer_data = None if sender_ip and sender_port: - peer_data = PeerData() # pylint: disable=no-value-for-parameter + peer_data = PeerData() addr = [ Multiaddr( "/" + P_IP + "/" + str(sender_ip) + "/" + P_UDP + "/" + str(sender_port) diff --git a/libp2p/kademlia/network.py b/libp2p/kademlia/network.py index ed8457e..27cfe32 100644 --- a/libp2p/kademlia/network.py +++ b/libp2p/kademlia/network.py @@ -12,10 +12,9 @@ from .kad_peerinfo import create_kad_peerinfo from .crawling import ValueSpiderCrawl from .crawling import NodeSpiderCrawl -log = logging.getLogger(__name__) # pylint: disable=invalid-name +log = logging.getLogger(__name__) -# pylint: disable=too-many-instance-attributes class KademliaServer: """ High level view of a node instance. This is the object that should be @@ -260,4 +259,4 @@ def check_dht_value_type(value): placing in the dht. """ typeset = [int, float, bool, str, bytes] - return type(value) in typeset # pylint: disable=unidiomatic-typecheck + return type(value) in typeset diff --git a/libp2p/kademlia/protocol.py b/libp2p/kademlia/protocol.py index afbef44..eade292 100644 --- a/libp2p/kademlia/protocol.py +++ b/libp2p/kademlia/protocol.py @@ -7,7 +7,7 @@ from .kad_peerinfo import create_kad_peerinfo from .routing import RoutingTable -log = logging.getLogger(__name__) # pylint: disable=invalid-name +log = logging.getLogger(__name__) class KademliaProtocol(RPCProtocol): @@ -37,7 +37,7 @@ class KademliaProtocol(RPCProtocol): ids.append(rid) return ids - def rpc_stun(self, sender): # pylint: disable=no-self-use + def rpc_stun(self, sender): return sender def rpc_ping(self, sender, nodeid): @@ -75,7 +75,6 @@ class KademliaProtocol(RPCProtocol): return {"value": value} def rpc_add_provider(self, sender, nodeid, key, provider_id): - # pylint: disable=unused-argument """ rpc when receiving an add_provider call should validate received PeerInfo matches sender nodeid @@ -91,7 +90,6 @@ class KademliaProtocol(RPCProtocol): return False def rpc_get_providers(self, sender, key): - # pylint: disable=unused-argument """ rpc when receiving a get_providers call should look up key in data store and respond with records diff --git a/libp2p/network/connection/raw_connection.py b/libp2p/network/connection/raw_connection.py index 034298e..abde006 100644 --- a/libp2p/network/connection/raw_connection.py +++ b/libp2p/network/connection/raw_connection.py @@ -20,7 +20,6 @@ class RawConnection(IRawConnection): writer: asyncio.StreamWriter, initiator: bool, ) -> None: - # pylint: disable=too-many-arguments self.conn_ip = ip self.conn_port = port self.reader = reader diff --git a/libp2p/network/connection/raw_connection_interface.py b/libp2p/network/connection/raw_connection_interface.py index 5814c44..ace31f4 100644 --- a/libp2p/network/connection/raw_connection_interface.py +++ b/libp2p/network/connection/raw_connection_interface.py @@ -1,6 +1,5 @@ from abc import ABC, abstractmethod -# pylint: disable=too-few-public-methods class IRawConnection(ABC): diff --git a/libp2p/network/swarm.py b/libp2p/network/swarm.py index d25b7fe..ce6b67c 100644 --- a/libp2p/network/swarm.py +++ b/libp2p/network/swarm.py @@ -26,7 +26,6 @@ StreamHandlerFn = Callable[[INetStream], Awaitable[None]] class Swarm(INetwork): - # pylint: disable=too-many-instance-attributes,cell-var-from-loop,too-many-arguments self_id: ID peerstore: PeerStore @@ -249,7 +248,6 @@ class Swarm(INetwork): # TODO: `tear_down` async def tear_down(self) -> None: - # pylint: disable=line-too-long # Reference: https://github.com/libp2p/go-libp2p-swarm/blob/8be680aef8dea0a4497283f2f98470c2aeae6b65/swarm.go#L118 # noqa: E501 pass diff --git a/libp2p/peer/id.py b/libp2p/peer/id.py index 48b4892..7a3f919 100644 --- a/libp2p/peer/id.py +++ b/libp2p/peer/id.py @@ -45,7 +45,6 @@ class ID: __repr__ = __str__ = pretty = to_string = to_base58 def __eq__(self, other: object) -> bool: - # pylint: disable=protected-access, no-else-return if isinstance(other, str): return self.to_base58() == other elif isinstance(other, bytes): diff --git a/libp2p/peer/peerinfo.py b/libp2p/peer/peerinfo.py index ed4eed0..a2f0842 100644 --- a/libp2p/peer/peerinfo.py +++ b/libp2p/peer/peerinfo.py @@ -7,7 +7,6 @@ from .peerdata import PeerData class PeerInfo: - # pylint: disable=too-few-public-methods peer_id: ID addrs: List[multiaddr.Multiaddr] diff --git a/libp2p/pubsub/floodsub.py b/libp2p/pubsub/floodsub.py index 757a4fa..198d2fa 100644 --- a/libp2p/pubsub/floodsub.py +++ b/libp2p/pubsub/floodsub.py @@ -8,7 +8,6 @@ from .pubsub_router_interface import IPubsubRouter class FloodSub(IPubsubRouter): - # pylint: disable=no-member protocols: List[str] diff --git a/libp2p/pubsub/gossipsub.py b/libp2p/pubsub/gossipsub.py index 5a3c91d..9ffa743 100644 --- a/libp2p/pubsub/gossipsub.py +++ b/libp2p/pubsub/gossipsub.py @@ -12,9 +12,6 @@ from .pubsub_router_interface import IPubsubRouter class GossipSub(IPubsubRouter): - # pylint: disable=no-member - # pylint: disable=too-many-instance-attributes - # pylint: disable=too-many-public-methods protocols: List[str] pubsub: Pubsub @@ -50,7 +47,6 @@ class GossipSub(IPubsubRouter): gossip_history: int = 5, heartbeat_interval: int = 120, ) -> None: - # pylint: disable=too-many-arguments self.protocols = list(protocols) self.pubsub = None @@ -154,7 +150,6 @@ class GossipSub(IPubsubRouter): await self.handle_prune(prune, sender_peer_id) async def publish(self, msg_forwarder: ID, pubsub_msg: rpc_pb2.Message) -> None: - # pylint: disable=too-many-locals """ Invoked to forward a new message that has been validated. """ @@ -182,7 +177,6 @@ class GossipSub(IPubsubRouter): :param origin: peer id of the peer the message originate from. :return: a generator of the peer ids who we send data to. """ - # pylint: disable=len-as-condition send_to: Set[ID] = set() for topic in topic_ids: if topic not in self.pubsub.peer_topics: @@ -367,7 +361,6 @@ class GossipSub(IPubsubRouter): self.fanout[topic].extend(selected_peers) async def gossip_heartbeat(self) -> None: - # pylint: disable=too-many-nested-blocks for topic in self.mesh: msg_ids = self.mcache.window(topic) if msg_ids: diff --git a/libp2p/pubsub/mcache.py b/libp2p/pubsub/mcache.py index 08390b7..159047b 100644 --- a/libp2p/pubsub/mcache.py +++ b/libp2p/pubsub/mcache.py @@ -4,7 +4,6 @@ from .pb import rpc_pb2 class CacheEntry: - # pylint: disable=too-few-public-methods mid: Tuple[bytes, bytes] topics: List[str] diff --git a/libp2p/pubsub/pubsub.py b/libp2p/pubsub/pubsub.py index 71102f5..262f26b 100644 --- a/libp2p/pubsub/pubsub.py +++ b/libp2p/pubsub/pubsub.py @@ -1,4 +1,3 @@ -# pylint: disable=no-name-in-module import asyncio import time from typing import Any, Dict, List, Tuple, TYPE_CHECKING @@ -23,7 +22,6 @@ def get_msg_id(msg: rpc_pb2.Message) -> Tuple[bytes, bytes]: class Pubsub: - # pylint: disable=too-many-instance-attributes, no-member, unsubscriptable-object host: IHost my_id: ID @@ -144,7 +142,6 @@ class Pubsub: for message in rpc_incoming.subscriptions: self.handle_subscription(peer_id, message) - # pylint: disable=line-too-long # NOTE: Check if `rpc_incoming.control` is set through `HasField`. # This is necessary because `control` is an optional field in pb2. # Ref: https://developers.google.com/protocol-buffers/docs/reference/python-generated#singular-fields-proto2 @@ -201,7 +198,6 @@ class Pubsub: hello: bytes = self.get_hello_packet() await stream.write(hello) - # pylint: disable=line-too-long # TODO: Investigate whether this should be replaced by `handlePeerEOF` # Ref: https://github.com/libp2p/go-libp2p-pubsub/blob/49274b0e8aecdf6cad59d768e5702ff00aa48488/comm.go#L80 # noqa: E501 # Pass stream off to stream reader diff --git a/libp2p/pubsub/pubsub_notifee.py b/libp2p/pubsub/pubsub_notifee.py index e73bd17..bc7197e 100644 --- a/libp2p/pubsub/pubsub_notifee.py +++ b/libp2p/pubsub/pubsub_notifee.py @@ -14,7 +14,6 @@ if TYPE_CHECKING: class PubsubNotifee(INotifee): - # pylint: disable=too-many-instance-attributes, cell-var-from-loop, unsubscriptable-object initiator_peers_queue: "asyncio.Queue[ID]" diff --git a/libp2p/routing/interfaces.py b/libp2p/routing/interfaces.py index d040e71..1947072 100644 --- a/libp2p/routing/interfaces.py +++ b/libp2p/routing/interfaces.py @@ -4,7 +4,6 @@ from typing import Iterable from libp2p.peer.id import ID from libp2p.peer.peerinfo import PeerInfo -# pylint: disable=too-few-public-methods class IContentRouting(ABC): diff --git a/libp2p/routing/kademlia/kademlia_peer_router.py b/libp2p/routing/kademlia/kademlia_peer_router.py index e8413cf..061bdda 100644 --- a/libp2p/routing/kademlia/kademlia_peer_router.py +++ b/libp2p/routing/kademlia/kademlia_peer_router.py @@ -8,7 +8,6 @@ from libp2p.routing.interfaces import IPeerRouting class KadmeliaPeerRouter(IPeerRouting): - # pylint: disable=too-few-public-methods server: KademliaServer @@ -34,7 +33,7 @@ def decode_peerinfo(encoded: Union[bytes, str]) -> KadPeerInfo: lines = ast.literal_eval(encoded) except SyntaxError: return None - ip = lines[1] # pylint: disable=invalid-name + ip = lines[1] port = lines[2] peer_id = lines[3] peer_info = create_kad_peerinfo(peer_id, ip, port) diff --git a/libp2p/security/secure_conn_interface.py b/libp2p/security/secure_conn_interface.py index f5de4cd..e39d853 100644 --- a/libp2p/security/secure_conn_interface.py +++ b/libp2p/security/secure_conn_interface.py @@ -6,7 +6,6 @@ if TYPE_CHECKING: from libp2p.network.connection.raw_connection_interface import IRawConnection from .typing import TSecurityDetails -# pylint: disable=W0105 """ Represents a secured connection object, which includes a connection and details about the security diff --git a/libp2p/security/secure_transport_interface.py b/libp2p/security/secure_transport_interface.py index 99a3936..865d5ea 100644 --- a/libp2p/security/secure_transport_interface.py +++ b/libp2p/security/secure_transport_interface.py @@ -7,7 +7,6 @@ if TYPE_CHECKING: from libp2p.network.connection.raw_connection_interface import IRawConnection from libp2p.peer.id import ID -# pylint: disable=W0105 """ Transport that is used to secure a connection. This transport is diff --git a/libp2p/security/security_multistream.py b/libp2p/security/security_multistream.py index 2f5648b..d81824a 100644 --- a/libp2p/security/security_multistream.py +++ b/libp2p/security/security_multistream.py @@ -14,7 +14,6 @@ if TYPE_CHECKING: TProtocol = NewType("TProtocol", str) -# pylint: disable=W0105 """ Represents a secured connection object, which includes a connection and details about the security diff --git a/libp2p/stream_muxer/mplex/mplex.py b/libp2p/stream_muxer/mplex/mplex.py index ecbb6c7..12a2a55 100644 --- a/libp2p/stream_muxer/mplex/mplex.py +++ b/libp2p/stream_muxer/mplex/mplex.py @@ -6,7 +6,6 @@ from ..muxed_connection_interface import IMuxedConn class Mplex(IMuxedConn): - # pylint: disable=too-many-instance-attributes """ reference: https://github.com/libp2p/go-mplex/blob/master/multiplex.go """ diff --git a/libp2p/stream_muxer/mplex/mplex_stream.py b/libp2p/stream_muxer/mplex/mplex_stream.py index c7ebb54..0f7b0fa 100644 --- a/libp2p/stream_muxer/mplex/mplex_stream.py +++ b/libp2p/stream_muxer/mplex/mplex_stream.py @@ -6,7 +6,6 @@ from .utils import get_flag class MplexStream(IMuxedStream): - # pylint: disable=too-many-instance-attributes """ reference: https://github.com/libp2p/go-mplex/blob/master/stream.go """ diff --git a/libp2p/transport/upgrader.py b/libp2p/transport/upgrader.py index 2ccce24..29e6a52 100644 --- a/libp2p/transport/upgrader.py +++ b/libp2p/transport/upgrader.py @@ -3,7 +3,6 @@ from libp2p.security.security_multistream import SecurityMultistream class TransportUpgrader: - # pylint: disable=no-self-use def __init__(self, secOpt, muxerOpt): # Store security option diff --git a/setup.py b/setup.py index b24d0cf..6cb4e3d 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,6 @@ import setuptools classifiers = [f"Programming Language :: Python :: {version}" for version in ["3.7"]] -# pylint: disable=invalid-name extras_require = { "test": [ "codecov>=2.0.15,<3.0.0", diff --git a/tests/libp2p/test_libp2p.py b/tests/libp2p/test_libp2p.py index b98738f..9e669e0 100644 --- a/tests/libp2p/test_libp2p.py +++ b/tests/libp2p/test_libp2p.py @@ -5,7 +5,6 @@ from tests.utils import cleanup, set_up_nodes_by_transport_opt from libp2p.peer.peerinfo import info_from_p2p_addr -# pylint: disable=too-many-locals @pytest.mark.asyncio async def test_simple_messages(): transport_opt_list = [["/ip4/127.0.0.1/tcp/0"], ["/ip4/127.0.0.1/tcp/0"]] diff --git a/tests/libp2p/test_notify.py b/tests/libp2p/test_notify.py index 4dfd880..c7ca52d 100644 --- a/tests/libp2p/test_notify.py +++ b/tests/libp2p/test_notify.py @@ -22,11 +22,9 @@ from libp2p import new_node, initialize_default_swarm from libp2p.network.notifee_interface import INotifee from libp2p.host.basic_host import BasicHost -# pylint: disable=too-many-locals class MyNotifee(INotifee): - # pylint: disable=too-many-instance-attributes, cell-var-from-loop def __init__(self, events, val_to_append_to_event): self.events = events @@ -52,7 +50,6 @@ class MyNotifee(INotifee): class InvalidNotifee: - # pylint: disable=too-many-instance-attributes, cell-var-from-loop def __init__(self): pass diff --git a/tests/peer/test_peerid.py b/tests/peer/test_peerid.py index aac06e4..692a8e7 100644 --- a/tests/peer/test_peerid.py +++ b/tests/peer/test_peerid.py @@ -14,13 +14,11 @@ def test_init(): for _ in range(10): random_id_string += random.SystemRandom().choice(ALPHABETS) peer_id = ID(random_id_string.encode()) - # pylint: disable=protected-access assert peer_id == random_id_string.encode() def test_no_init_value(): with pytest.raises(Exception) as _: - # pylint: disable=no-value-for-parameter ID() diff --git a/tests/peer/test_peerinfo.py b/tests/peer/test_peerinfo.py index 7c8c805..e98a877 100644 --- a/tests/peer/test_peerinfo.py +++ b/tests/peer/test_peerinfo.py @@ -28,7 +28,6 @@ def test_init_(): def test_init_no_value(): with pytest.raises(Exception) as _: - # pylint: disable=no-value-for-parameter PeerInfo() @@ -50,7 +49,6 @@ def test_info_from_p2p_addr_invalid(addr): def test_info_from_p2p_addr_valid(): - # pylint: disable=line-too-long m_addr = multiaddr.Multiaddr( "/ip4/127.0.0.1/tcp/8000/p2p/3YgLAeMKSAPcGqZkAt8mREqhQXmJT8SN8VCMN4T6ih4GNX9wvK8mWJnWZ1qA2mLdCQ" ) diff --git a/tests/pubsub/conftest.py b/tests/pubsub/conftest.py index a531175..a052fb0 100644 --- a/tests/pubsub/conftest.py +++ b/tests/pubsub/conftest.py @@ -8,7 +8,6 @@ from .configs import GOSSIPSUB_PARAMS from .factories import FloodsubFactory, GossipsubFactory, HostFactory, PubsubFactory -# pylint: disable=redefined-outer-name @pytest.fixture diff --git a/tests/pubsub/floodsub_integration_test_settings.py b/tests/pubsub/floodsub_integration_test_settings.py index 7b1c20f..dabcd89 100644 --- a/tests/pubsub/floodsub_integration_test_settings.py +++ b/tests/pubsub/floodsub_integration_test_settings.py @@ -137,14 +137,12 @@ FLOODSUB_PROTOCOL_TEST_CASES = [ }, ] -# pylint: disable=invalid-name floodsub_protocol_pytest_params = [ pytest.param(test_case, id=test_case["name"]) for test_case in FLOODSUB_PROTOCOL_TEST_CASES ] -# pylint: disable=too-many-locals async def perform_test_from_obj(obj, router_factory): """ Perform pubsub tests from a test obj. diff --git a/tests/pubsub/test_dummyaccount_demo.py b/tests/pubsub/test_dummyaccount_demo.py index e92bd38..2aa1298 100644 --- a/tests/pubsub/test_dummyaccount_demo.py +++ b/tests/pubsub/test_dummyaccount_demo.py @@ -7,7 +7,6 @@ from tests.utils import cleanup, connect from .dummy_account_node import DummyAccountNode -# pylint: disable=too-many-locals def create_setup_in_new_thread_func(dummy_node): diff --git a/tests/pubsub/test_floodsub.py b/tests/pubsub/test_floodsub.py index 3dc6645..9743923 100644 --- a/tests/pubsub/test_floodsub.py +++ b/tests/pubsub/test_floodsub.py @@ -13,7 +13,6 @@ from .floodsub_integration_test_settings import ( ) -# pylint: disable=too-many-locals @pytest.mark.parametrize("num_hosts", (2,)) diff --git a/tests/pubsub/test_gossipsub_backward_compatibility.py b/tests/pubsub/test_gossipsub_backward_compatibility.py index 8f7469c..2fef354 100644 --- a/tests/pubsub/test_gossipsub_backward_compatibility.py +++ b/tests/pubsub/test_gossipsub_backward_compatibility.py @@ -10,7 +10,6 @@ from .floodsub_integration_test_settings import ( ) -# pylint: disable=too-many-locals @pytest.mark.asyncio async def test_gossipsub_initialize_with_floodsub_protocol(): GossipsubFactory(protocols=[FLOODSUB_PROTOCOL_ID]) diff --git a/tests/pubsub/test_mcache.py b/tests/pubsub/test_mcache.py index 7ef0c91..b6d0a4c 100644 --- a/tests/pubsub/test_mcache.py +++ b/tests/pubsub/test_mcache.py @@ -3,10 +3,8 @@ import pytest from libp2p.pubsub.mcache import MessageCache -# pylint: disable=too-few-public-methods class Msg: def __init__(self, topicIDs, seqno, from_id): - # pylint: disable=invalid-name self.topicIDs = topicIDs self.seqno = seqno self.from_id = from_id diff --git a/tests/pubsub/test_pubsub.py b/tests/pubsub/test_pubsub.py index b02445e..bd21c9a 100644 --- a/tests/pubsub/test_pubsub.py +++ b/tests/pubsub/test_pubsub.py @@ -75,7 +75,6 @@ async def test_get_hello_packet(pubsubs_fsub): packet.ParseFromString(pubsubs_fsub[0].get_hello_packet()) return tuple(sub.topicid for sub in packet.subscriptions) - # pylint: disable=len-as-condition # Test: No subscription, so there should not be any topic ids in the hello packet. assert len(_get_hello_packet_topic_ids()) == 0 @@ -295,7 +294,6 @@ async def test_publish(pubsubs_fsub, monkeypatch): @pytest.mark.parametrize("num_hosts", (1,)) @pytest.mark.asyncio async def test_push_msg(pubsubs_fsub, monkeypatch): - # pylint: disable=protected-access msg_0 = make_pubsub_msg( origin_id=pubsubs_fsub[0].my_id, topic_ids=[TESTING_TOPIC], diff --git a/tests/test_example.py b/tests/test_example.py index a31fa64..a05bdd9 100644 --- a/tests/test_example.py +++ b/tests/test_example.py @@ -1,6 +1,5 @@ import pytest -# pylint: disable=eval-used @pytest.mark.parametrize("test_input,expected", [("3+5", 8), ("2+4", 6), ("6*9", 54)])