Skip to content

Commit

Permalink
Use pylint
Browse files Browse the repository at this point in the history
  • Loading branch information
Gallaecio committed Aug 12, 2019
1 parent 2f0c46e commit c1bcb32
Show file tree
Hide file tree
Showing 170 changed files with 403 additions and 44 deletions.
2 changes: 2 additions & 0 deletions .travis.yml
Expand Up @@ -7,6 +7,8 @@ branches:
- /^\d\.\d+\.\d+(rc\d+|\.dev\d+)?$/
matrix:
include:
- env: TOXENV=static
python: 3.7
- env: TOXENV=py27
python: 2.7
- env: TOXENV=py27-pinned
Expand Down
93 changes: 50 additions & 43 deletions docs/utils/linkfix.py
Expand Up @@ -14,50 +14,57 @@

import re

# Used for remembering the file (and its contents)
# so we don't have to open the same file again.
_filename = None
_contents = None

# A regex that matches standard linkcheck output lines
line_re = re.compile(u'(.*)\:\d+\:\s\[(.*)\]\s(?:(.*)\sto\s(.*)|(.*))')

# Read lines from the linkcheck output file
try:
with open("build/linkcheck/output.txt") as out:
output_lines = out.readlines()
except IOError:
print("linkcheck output not found; please run linkcheck first.")
exit(1)

# For every line, fix the respective file
for line in output_lines:
match = re.match(line_re, line)

if match:
newfilename = match.group(1)
errortype = match.group(2)

# Broken links can't be fixed and
# I am not sure what do with the local ones.
if errortype.lower() in ["broken", "local"]:
print("Not Fixed: " + line)
else:
# If this is a new file
if newfilename != _filename:

# Update the previous file
if _filename:
with open(_filename, "w") as _file:
_file.write(_contents)
def main():

# Used for remembering the file (and its contents)
# so we don't have to open the same file again.
_filename = None
_contents = None

# A regex that matches standard linkcheck output lines
line_re = re.compile(u'(.*)\:\d+\:\s\[(.*)\]\s(?:(.*)\sto\s(.*)|(.*))')

# Read lines from the linkcheck output file
try:
with open("build/linkcheck/output.txt") as out:
output_lines = out.readlines()
except IOError:
print("linkcheck output not found; please run linkcheck first.")
exit(1)

# For every line, fix the respective file
for line in output_lines:
match = re.match(line_re, line)

if match:
newfilename = match.group(1)
errortype = match.group(2)

_filename = newfilename
# Broken links can't be fixed and
# I am not sure what do with the local ones.
if errortype.lower() in ["broken", "local"]:
print("Not Fixed: " + line)
else:
# If this is a new file
if newfilename != _filename:

# Update the previous file
if _filename:
with open(_filename, "w") as _file:
_file.write(_contents)

_filename = newfilename

# Read the new file to memory
with open(_filename) as _file:
_contents = _file.read()

_contents = _contents.replace(match.group(3), match.group(4))
else:
# We don't understand what the current line means!
print("Not Understood: " + line)

# Read the new file to memory
with open(_filename) as _file:
_contents = _file.read()

_contents = _contents.replace(match.group(3), match.group(4))
else:
# We don't understand what the current line means!
print("Not Understood: " + line)
if __name__ == '__main__':
main()
7 changes: 7 additions & 0 deletions pylintrc
@@ -0,0 +1,7 @@
[MASTER]
persistent=no
jobs=1 # >1 hides results

[MESSAGES CONTROL]
disable=duplicate-code, # https://github.com/PyCQA/pylint/issues/214
useless-object-inheritance # Required for Python 2 support
2 changes: 2 additions & 0 deletions scrapy/__init__.py
@@ -1,3 +1,5 @@
# pylint: disable=invalid-name,wrong-import-order,wrong-import-position

"""
Scrapy - a web crawling and web scraping framework written for Python
"""
Expand Down
2 changes: 2 additions & 0 deletions scrapy/__main__.py
@@ -1,3 +1,5 @@
# pylint: disable=missing-docstring

from scrapy.cmdline import execute

if __name__ == '__main__':
Expand Down
2 changes: 2 additions & 0 deletions scrapy/_monkeypatches.py
@@ -1,3 +1,5 @@
# pylint: disable=import-error,missing-docstring,trailing-whitespace,unused-import,wrong-import-position

import six
from six.moves import copyreg

Expand Down
2 changes: 2 additions & 0 deletions scrapy/cmdline.py
@@ -1,3 +1,5 @@
# pylint: disable=deprecated-module,fixme,inconsistent-return-statements,invalid-name,line-too-long,missing-docstring,multiple-imports,multiple-statements,unused-argument

from __future__ import print_function
import sys
import os
Expand Down
2 changes: 2 additions & 0 deletions scrapy/commands/__init__.py
@@ -1,3 +1,5 @@
# pylint: disable=attribute-defined-outside-init,bad-continuation,deprecated-module,invalid-name,missing-docstring,no-self-use,unused-argument

"""
Base class for Scrapy commands
"""
Expand Down
2 changes: 2 additions & 0 deletions scrapy/commands/bench.py
@@ -1,3 +1,5 @@
# pylint: disable=attribute-defined-outside-init,missing-docstring

import sys
import time
import subprocess
Expand Down
2 changes: 2 additions & 0 deletions scrapy/commands/check.py
@@ -1,3 +1,5 @@
# pylint: disable=invalid-name,missing-docstring,too-many-locals,trailing-newlines,unused-import

from __future__ import print_function
import time
import sys
Expand Down
2 changes: 2 additions & 0 deletions scrapy/commands/crawl.py
@@ -1,3 +1,5 @@
# pylint: disable=len-as-condition,line-too-long,missing-docstring,no-else-raise

import os
from scrapy.commands import ScrapyCommand
from scrapy.utils.conf import arglist_to_dict
Expand Down
2 changes: 2 additions & 0 deletions scrapy/commands/edit.py
@@ -1,3 +1,5 @@
# pylint: disable=inconsistent-return-statements,missing-docstring,unsubscriptable-object

import sys
import os

Expand Down
2 changes: 2 additions & 0 deletions scrapy/commands/fetch.py
@@ -1,3 +1,5 @@
# pylint: disable=bad-continuation,invalid-name,missing-docstring,multiple-imports,no-self-use

from __future__ import print_function
import sys, six
from w3lib.url import is_url
Expand Down
2 changes: 2 additions & 0 deletions scrapy/commands/genspider.py
@@ -1,3 +1,5 @@
# pylint: disable=bad-continuation,inconsistent-return-statements,invalid-name,missing-docstring,too-many-arguments,ungrouped-imports,unsubscriptable-object

from __future__ import print_function
import os
import shutil
Expand Down
2 changes: 2 additions & 0 deletions scrapy/commands/list.py
@@ -1,3 +1,5 @@
# pylint: disable=invalid-name,missing-docstring

from __future__ import print_function
from scrapy.commands import ScrapyCommand

Expand Down
2 changes: 2 additions & 0 deletions scrapy/commands/parse.py
@@ -1,3 +1,5 @@
# pylint: disable=attribute-defined-outside-init,bad-continuation,inconsistent-return-statements,invalid-name,line-too-long,missing-docstring,no-else-raise,no-self-use,too-many-branches

from __future__ import print_function
import json
import logging
Expand Down
2 changes: 2 additions & 0 deletions scrapy/commands/runspider.py
@@ -1,3 +1,5 @@
# pylint: disable=invalid-name,missing-docstring,redefined-builtin

import sys
import os
from importlib import import_module
Expand Down
2 changes: 2 additions & 0 deletions scrapy/commands/settings.py
@@ -1,3 +1,5 @@
# pylint: disable=bad-continuation,invalid-name,missing-docstring

from __future__ import print_function
import json

Expand Down
2 changes: 2 additions & 0 deletions scrapy/commands/shell.py
@@ -1,3 +1,5 @@
# pylint: disable=bad-continuation,invalid-name,missing-docstring,protected-access,redefined-builtin,unnecessary-pass

"""
Scrapy Shell
Expand Down
2 changes: 2 additions & 0 deletions scrapy/commands/startproject.py
@@ -1,3 +1,5 @@
# pylint: disable=bad-continuation,missing-docstring,no-self-use,trailing-newlines,ungrouped-imports,unsubscriptable-object

from __future__ import print_function
import re
import os
Expand Down
2 changes: 2 additions & 0 deletions scrapy/commands/version.py
@@ -1,3 +1,5 @@
# pylint: disable=bad-continuation,missing-docstring,trailing-newlines

from __future__ import print_function

import scrapy
Expand Down
2 changes: 2 additions & 0 deletions scrapy/commands/view.py
@@ -1,3 +1,5 @@
# pylint: disable=missing-docstring,unused-import

from scrapy.commands import fetch, ScrapyCommand
from scrapy.utils.response import open_in_browser

Expand Down
2 changes: 2 additions & 0 deletions scrapy/contracts/__init__.py
@@ -1,3 +1,5 @@
# pylint: disable=broad-except,inconsistent-return-statements,invalid-name,lost-exception,missing-docstring,no-member,no-self-argument,no-self-use

import sys
import re
from functools import wraps
Expand Down
2 changes: 2 additions & 0 deletions scrapy/contracts/default.py
@@ -1,3 +1,5 @@
# pylint: disable=invalid-name,missing-docstring

from scrapy.item import BaseItem
from scrapy.http import Request
from scrapy.exceptions import ContractFail
Expand Down
2 changes: 2 additions & 0 deletions scrapy/core/downloader/__init__.py
@@ -1,3 +1,5 @@
# pylint: disable=no-member,missing-docstring,too-many-instance-attributes,unused-argument

from __future__ import absolute_import
import random
import warnings
Expand Down
2 changes: 2 additions & 0 deletions scrapy/core/downloader/contextfactory.py
@@ -1,3 +1,5 @@
# pylint: disable=arguments-differ,bad-continuation,invalid-name,keyword-arg-before-vararg,missing-docstring,too-few-public-methods,ungrouped-imports,unused-argument

from OpenSSL import SSL
from twisted.internet.ssl import ClientContextFactory

Expand Down
2 changes: 2 additions & 0 deletions scrapy/core/downloader/handlers/__init__.py
@@ -1,3 +1,5 @@
# pylint: disable=broad-except,invalid-name,missing-docstring,too-few-public-methods

"""Download handlers for different schemes"""

import logging
Expand Down
2 changes: 2 additions & 0 deletions scrapy/core/downloader/handlers/datauri.py
@@ -1,3 +1,5 @@
# pylint: disable=missing-docstring,no-self-use,too-few-public-methods,unused-argument

from w3lib.url import parse_data_uri

from scrapy.http import TextResponse
Expand Down
2 changes: 2 additions & 0 deletions scrapy/core/downloader/handlers/file.py
@@ -1,3 +1,5 @@
# pylint: disable=invalid-name,missing-docstring,no-self-use,too-few-public-methods,unused-argument

from w3lib.url import file_uri_to_path
from scrapy.responsetypes import responsetypes
from scrapy.utils.decorators import defers
Expand Down
2 changes: 2 additions & 0 deletions scrapy/core/downloader/handlers/ftp.py
@@ -1,3 +1,5 @@
# pylint: disable=anomalous-backslash-in-string,attribute-defined-outside-init,bad-continuation,expression-not-assigned,invalid-name,line-too-long,missing-docstring,trailing-newlines,unused-argument

"""
An asynchronous FTP file download handler for scrapy which somehow emulates an http response.
Expand Down
2 changes: 2 additions & 0 deletions scrapy/core/downloader/handlers/http.py
@@ -1,3 +1,5 @@
# pylint: disable=missing-docstring,too-few-public-methods,unused-import

from __future__ import absolute_import
from .http10 import HTTP10DownloadHandler
from .http11 import HTTP11DownloadHandler as HTTPDownloadHandler
2 changes: 2 additions & 0 deletions scrapy/core/downloader/handlers/http10.py
@@ -1,3 +1,5 @@
# pylint: disable=invalid-name,line-too-long,missing-docstring,no-else-return,no-member,too-few-public-methods,unused-argument

"""Download handlers for http and https schemes
"""
from twisted.internet import reactor
Expand Down
2 changes: 2 additions & 0 deletions scrapy/core/downloader/handlers/http11.py
@@ -1,3 +1,5 @@
# pylint: disable=anomalous-backslash-in-string,arguments-differ,attribute-defined-outside-init,bad-continuation,bad-whitespace,deprecated-method,invalid-name,line-too-long,missing-docstring,no-else-return,no-member,no-self-use,protected-access,redefined-builtin,redefined-outer-name,signature-differs,too-few-public-methods,too-many-arguments,too-many-function-args,too-many-instance-attributes,unused-argument,unused-import

"""Download handlers for http and https schemes"""

import re
Expand Down
2 changes: 2 additions & 0 deletions scrapy/core/downloader/handlers/s3.py
@@ -1,3 +1,5 @@
# pylint: disable=arguments-differ,bad-continuation,import-error,invalid-name,missing-docstring,no-name-in-module,no-self-use,too-few-public-methods,unused-argument,unused-import

from six.moves.urllib.parse import unquote

from scrapy.exceptions import NotConfigured
Expand Down
2 changes: 2 additions & 0 deletions scrapy/core/downloader/middleware.py
@@ -1,3 +1,5 @@
# pylint: disable=line-too-long,missing-docstring

"""
Downloader Middleware manager
Expand Down
2 changes: 2 additions & 0 deletions scrapy/core/downloader/tls.py
@@ -1,3 +1,5 @@
# pylint: disable=catching-non-exception,fixme,invalid-name,line-too-long,logging-format-interpolation,missing-docstring,no-name-in-module,protected-access,too-few-public-methods,ungrouped-imports

import logging
from OpenSSL import SSL

Expand Down
2 changes: 2 additions & 0 deletions scrapy/core/downloader/webclient.py
@@ -1,3 +1,5 @@
# pylint: disable=arguments-differ,attribute-defined-outside-init,invalid-name,missing-docstring,no-member,super-init-not-called,too-many-instance-attributes,trailing-newlines

from time import time
from six.moves.urllib.parse import urlparse, urlunparse, urldefrag

Expand Down
2 changes: 2 additions & 0 deletions scrapy/core/engine.py
@@ -1,3 +1,5 @@
# pylint: disable=attribute-defined-outside-init,bad-continuation,broad-except,inconsistent-return-statements,invalid-name,missing-docstring,no-else-return,too-many-instance-attributes,unused-argument

"""
This is the Scrapy engine which controls the Scheduler, Downloader and Spiders.
Expand Down
2 changes: 2 additions & 0 deletions scrapy/core/scheduler.py
@@ -1,3 +1,5 @@
# pylint: disable=attribute-defined-outside-init,inconsistent-return-statements,invalid-name,missing-docstring,no-self-use,too-many-arguments,too-many-instance-attributes,ungrouped-imports,unused-argument

import os
import json
import logging
Expand Down
2 changes: 2 additions & 0 deletions scrapy/core/scraper.py
@@ -1,3 +1,5 @@
# pylint: disable=bad-continuation,inconsistent-return-statements,invalid-name,missing-docstring,no-else-return,no-self-use,trailing-newlines

"""This module implements the Scraper component which parses responses and
extracts information from them"""

Expand Down
2 changes: 2 additions & 0 deletions scrapy/core/spidermw.py
@@ -1,3 +1,5 @@
# pylint: disable=bad-continuation,bad-whitespace,broad-except,invalid-name,line-too-long,missing-docstring,no-else-return

"""
Spider Middleware manager
Expand Down
2 changes: 2 additions & 0 deletions scrapy/crawler.py
@@ -1,3 +1,5 @@
# pylint: disable=attribute-defined-outside-init,invalid-name,missing-docstring,no-member,no-self-use,too-many-instance-attributes,wrong-import-order

import six
import signal
import logging
Expand Down
2 changes: 2 additions & 0 deletions scrapy/downloadermiddlewares/ajaxcrawl.py
@@ -1,4 +1,6 @@
# -*- coding: utf-8 -*-
# pylint: disable=fixme,invalid-name,line-too-long,missing-docstring

from __future__ import absolute_import
import re
import logging
Expand Down
2 changes: 2 additions & 0 deletions scrapy/downloadermiddlewares/chunked.py
@@ -1,3 +1,5 @@
# pylint: disable=missing-docstring,no-self-use,too-few-public-methods,unused-argument

import warnings

from scrapy.exceptions import ScrapyDeprecationWarning
Expand Down
2 changes: 2 additions & 0 deletions scrapy/downloadermiddlewares/cookies.py
@@ -1,3 +1,5 @@
# pylint: disable=invalid-name,missing-docstring,no-self-use,unused-import,wrong-import-order

import os
import six
import logging
Expand Down
2 changes: 2 additions & 0 deletions scrapy/downloadermiddlewares/decompression.py
@@ -1,3 +1,5 @@
# pylint: disable=inconsistent-return-statements,invalid-name,missing-docstring,no-self-use,too-few-public-methods,unused-argument

""" This module implements the DecompressionMiddleware which tries to recognise
and extract the potentially compressed responses that may arrive.
"""
Expand Down
2 changes: 2 additions & 0 deletions scrapy/downloadermiddlewares/defaultheaders.py
@@ -1,3 +1,5 @@
# pylint: disable=invalid-name,missing-docstring,unused-argument

"""
DefaultHeaders downloader middleware
Expand Down
2 changes: 2 additions & 0 deletions scrapy/downloadermiddlewares/downloadtimeout.py
@@ -1,3 +1,5 @@
# pylint: disable=invalid-name,missing-docstring,unused-argument

"""
Download timeout middleware
Expand Down
2 changes: 2 additions & 0 deletions scrapy/downloadermiddlewares/httpauth.py
@@ -1,3 +1,5 @@
# pylint: disable=attribute-defined-outside-init,invalid-name,missing-docstring,unused-argument

"""
HTTP basic auth downloader middleware
Expand Down

0 comments on commit c1bcb32

Please sign in to comment.