summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--misc/requirements/requirements-check-manifest-raw.txt1
-rw-r--r--misc/requirements/requirements-check-manifest.txt2
-rw-r--r--misc/requirements/requirements-codecov-raw.txt1
-rw-r--r--misc/requirements/requirements-codecov.txt2
-rw-r--r--misc/requirements/requirements-cxfreeze-raw.txt1
-rw-r--r--misc/requirements/requirements-cxfreeze.txt4
-rw-r--r--misc/requirements/requirements-flake8-raw.txt21
-rw-r--r--misc/requirements/requirements-flake8.txt2
-rw-r--r--misc/requirements/requirements-pyinstaller-raw.txt1
-rw-r--r--misc/requirements/requirements-pyinstaller.txt2
-rw-r--r--misc/requirements/requirements-pylint-master-raw.txt6
-rw-r--r--misc/requirements/requirements-pylint-master.in2
-rw-r--r--misc/requirements/requirements-pylint-master.txt9
-rw-r--r--misc/requirements/requirements-pylint-raw.txt2
-rw-r--r--misc/requirements/requirements-pylint.txt5
-rw-r--r--misc/requirements/requirements-pyroma-raw.txt1
-rw-r--r--misc/requirements/requirements-pyroma.txt4
-rw-r--r--misc/requirements/requirements-tests-raw.txt22
-rw-r--r--misc/requirements/requirements-tests.txt3
-rw-r--r--misc/requirements/requirements-tox-raw.txt1
-rw-r--r--misc/requirements/requirements-tox.txt2
-rw-r--r--misc/requirements/requirements-vulture-raw.txt1
-rw-r--r--misc/requirements/requirements-vulture.txt2
-rw-r--r--scripts/dev/recompile_requirements.py105
25 files changed, 195 insertions, 8 deletions
diff --git a/.gitignore b/.gitignore
index b9d41a67f..d260445bd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -36,3 +36,4 @@ TODO
/scripts/testbrowser_cpp/Makefile
/scripts/testbrowser_cpp/main.o
/scripts/testbrowser_cpp/testbrowser
+/scripts/dev/pylint_checkers/qute_pylint.egg-info
diff --git a/misc/requirements/requirements-check-manifest-raw.txt b/misc/requirements/requirements-check-manifest-raw.txt
new file mode 100644
index 000000000..dcc0efe13
--- /dev/null
+++ b/misc/requirements/requirements-check-manifest-raw.txt
@@ -0,0 +1 @@
+check-manifest
diff --git a/misc/requirements/requirements-check-manifest.txt b/misc/requirements/requirements-check-manifest.txt
index 1fbfb0e14..a7620caaa 100644
--- a/misc/requirements/requirements-check-manifest.txt
+++ b/misc/requirements/requirements-check-manifest.txt
@@ -1 +1,3 @@
+# This file is automatically generated by scripts/dev/recompile_requirements.py
+
check-manifest==0.31
diff --git a/misc/requirements/requirements-codecov-raw.txt b/misc/requirements/requirements-codecov-raw.txt
new file mode 100644
index 000000000..15f1c729d
--- /dev/null
+++ b/misc/requirements/requirements-codecov-raw.txt
@@ -0,0 +1 @@
+codecov
diff --git a/misc/requirements/requirements-codecov.txt b/misc/requirements/requirements-codecov.txt
index 54943cf9c..2ffacd7ea 100644
--- a/misc/requirements/requirements-codecov.txt
+++ b/misc/requirements/requirements-codecov.txt
@@ -1,3 +1,5 @@
+# This file is automatically generated by scripts/dev/recompile_requirements.py
+
codecov==2.0.5
coverage==4.1
requests==2.10.0
diff --git a/misc/requirements/requirements-cxfreeze-raw.txt b/misc/requirements/requirements-cxfreeze-raw.txt
new file mode 100644
index 000000000..c95cfcbb6
--- /dev/null
+++ b/misc/requirements/requirements-cxfreeze-raw.txt
@@ -0,0 +1 @@
+cx_Freeze
diff --git a/misc/requirements/requirements-cxfreeze.txt b/misc/requirements/requirements-cxfreeze.txt
index 6e6f1835b..17b849d65 100644
--- a/misc/requirements/requirements-cxfreeze.txt
+++ b/misc/requirements/requirements-cxfreeze.txt
@@ -1 +1,3 @@
-cx_Freeze==4.3.4
+# This file is automatically generated by scripts/dev/recompile_requirements.py
+
+cx-Freeze==4.3.4
diff --git a/misc/requirements/requirements-flake8-raw.txt b/misc/requirements/requirements-flake8-raw.txt
new file mode 100644
index 000000000..3a45b6130
--- /dev/null
+++ b/misc/requirements/requirements-flake8-raw.txt
@@ -0,0 +1,21 @@
+ebb-lint
+flake8
+flake8-copyright
+flake8-debugger
+flake8-deprecated
+flake8-docstrings
+flake8-future-import
+flake8-mock
+flake8-pep3101
+flake8-putty
+flake8-string-format
+flake8-tidy-imports
+flake8-tuple
+hacking
+pep8-naming
+pydocstyle
+pyflakes
+
+mccabe==0.5.0
+
+# pep257: still needed by flake8-docstrings but ignored
diff --git a/misc/requirements/requirements-flake8.txt b/misc/requirements/requirements-flake8.txt
index f364e976a..74cc5f2c2 100644
--- a/misc/requirements/requirements-flake8.txt
+++ b/misc/requirements/requirements-flake8.txt
@@ -1,3 +1,5 @@
+# This file is automatically generated by scripts/dev/recompile_requirements.py
+
ebb-lint==0.4.4
flake8==2.5.4
flake8-copyright==0.1
diff --git a/misc/requirements/requirements-pyinstaller-raw.txt b/misc/requirements/requirements-pyinstaller-raw.txt
new file mode 100644
index 000000000..c313980b0
--- /dev/null
+++ b/misc/requirements/requirements-pyinstaller-raw.txt
@@ -0,0 +1 @@
+PyInstaller
diff --git a/misc/requirements/requirements-pyinstaller.txt b/misc/requirements/requirements-pyinstaller.txt
index 8518d5aac..b2032623c 100644
--- a/misc/requirements/requirements-pyinstaller.txt
+++ b/misc/requirements/requirements-pyinstaller.txt
@@ -1 +1,3 @@
+# This file is automatically generated by scripts/dev/recompile_requirements.py
+
PyInstaller==3.2
diff --git a/misc/requirements/requirements-pylint-master-raw.txt b/misc/requirements/requirements-pylint-master-raw.txt
new file mode 100644
index 000000000..d438b1617
--- /dev/null
+++ b/misc/requirements/requirements-pylint-master-raw.txt
@@ -0,0 +1,6 @@
+-e git+https://github.com/PyCQA/astroid.git#egg=astroid
+-e git+https://github.com/PyCQA/pylint.git#egg=pylint
+./scripts/dev/pylint_checkers
+
+# https://github.com/PyCQA/pylint/issues/932
+mccabe==0.5.0
diff --git a/misc/requirements/requirements-pylint-master.in b/misc/requirements/requirements-pylint-master.in
new file mode 100644
index 000000000..71bb8a5ff
--- /dev/null
+++ b/misc/requirements/requirements-pylint-master.in
@@ -0,0 +1,2 @@
+-e git+https://github.com/PyCQA/astroid.git@master#egg=astroid
+-e git+https://github.com/PyCQA/pylint.git@master#egg=pylint
diff --git a/misc/requirements/requirements-pylint-master.txt b/misc/requirements/requirements-pylint-master.txt
index ab3a47755..b386dc24d 100644
--- a/misc/requirements/requirements-pylint-master.txt
+++ b/misc/requirements/requirements-pylint-master.txt
@@ -1,9 +1,10 @@
-git+https://github.com/PyCQA/astroid.git
-git+https://github.com/PyCQA/pylint.git
+# This file is automatically generated by scripts/dev/recompile_requirements.py
+
+-e git+https://github.com/PyCQA/astroid.git#egg=astroid
isort==4.2.5
lazy-object-proxy==1.2.2
mccabe==0.5.0
+-e git+https://github.com/PyCQA/pylint.git#egg=pylint
+./scripts/dev/pylint_checkers
six==1.10.0
wrapt==1.10.8
-requests==2.10.0
-./scripts/dev/pylint_checkers
diff --git a/misc/requirements/requirements-pylint-raw.txt b/misc/requirements/requirements-pylint-raw.txt
new file mode 100644
index 000000000..f68ee007a
--- /dev/null
+++ b/misc/requirements/requirements-pylint-raw.txt
@@ -0,0 +1,2 @@
+pylint
+./scripts/dev/pylint_checkers
diff --git a/misc/requirements/requirements-pylint.txt b/misc/requirements/requirements-pylint.txt
index b5cc6d479..e5ddb5da5 100644
--- a/misc/requirements/requirements-pylint.txt
+++ b/misc/requirements/requirements-pylint.txt
@@ -1,8 +1,9 @@
+# This file is automatically generated by scripts/dev/recompile_requirements.py
+
astroid==1.4.6
colorama==0.3.7
lazy-object-proxy==1.2.2
pylint==1.5.6
-requests==2.10.0
+./scripts/dev/pylint_checkers
six==1.10.0
wrapt==1.10.8
-./scripts/dev/pylint_checkers
diff --git a/misc/requirements/requirements-pyroma-raw.txt b/misc/requirements/requirements-pyroma-raw.txt
new file mode 100644
index 000000000..5ddfb659c
--- /dev/null
+++ b/misc/requirements/requirements-pyroma-raw.txt
@@ -0,0 +1 @@
+pyroma
diff --git a/misc/requirements/requirements-pyroma.txt b/misc/requirements/requirements-pyroma.txt
index 8200d46be..0741454d3 100644
--- a/misc/requirements/requirements-pyroma.txt
+++ b/misc/requirements/requirements-pyroma.txt
@@ -1,2 +1,4 @@
-pyroma==2.0.2
+# This file is automatically generated by scripts/dev/recompile_requirements.py
+
docutils==0.12
+pyroma==2.0.2
diff --git a/misc/requirements/requirements-tests-raw.txt b/misc/requirements/requirements-tests-raw.txt
new file mode 100644
index 000000000..4727827f4
--- /dev/null
+++ b/misc/requirements/requirements-tests-raw.txt
@@ -0,0 +1,22 @@
+beautifulsoup4
+CherryPy
+coverage
+Flask==0.10.1
+httpbin
+hypothesis
+pytest
+pytest-bdd
+pytest-catchlog
+pytest-cov
+pytest-faulthandler
+pytest-instafail
+pytest-mock
+pytest-qt
+pytest-repeat
+pytest-rerunfailures
+pytest-travis-fold
+pytest-xvfb
+vulture
+
+# Flask: rq.filter: != 0.11.0
+# ignore: Jinja2
diff --git a/misc/requirements/requirements-tests.txt b/misc/requirements/requirements-tests.txt
index e7de88059..da398d7f8 100644
--- a/misc/requirements/requirements-tests.txt
+++ b/misc/requirements/requirements-tests.txt
@@ -1,3 +1,5 @@
+# This file is automatically generated by scripts/dev/recompile_requirements.py
+
beautifulsoup4==4.4.1
CherryPy==6.0.1
coverage==4.1
@@ -8,6 +10,7 @@ httpbin==0.4.1
hypothesis==3.4.0
itsdangerous==0.24
Mako==1.0.4
+MarkupSafe==0.23
parse==1.6.6
parse-type==0.3.4
py==1.4.31
diff --git a/misc/requirements/requirements-tox-raw.txt b/misc/requirements/requirements-tox-raw.txt
new file mode 100644
index 000000000..053148f84
--- /dev/null
+++ b/misc/requirements/requirements-tox-raw.txt
@@ -0,0 +1 @@
+tox
diff --git a/misc/requirements/requirements-tox.txt b/misc/requirements/requirements-tox.txt
index 033670f83..b47b75bd3 100644
--- a/misc/requirements/requirements-tox.txt
+++ b/misc/requirements/requirements-tox.txt
@@ -1,3 +1,5 @@
+# This file is automatically generated by scripts/dev/recompile_requirements.py
+
pluggy==0.3.1
py==1.4.31
tox==2.3.1
diff --git a/misc/requirements/requirements-vulture-raw.txt b/misc/requirements/requirements-vulture-raw.txt
new file mode 100644
index 000000000..a10f86041
--- /dev/null
+++ b/misc/requirements/requirements-vulture-raw.txt
@@ -0,0 +1 @@
+vulture
diff --git a/misc/requirements/requirements-vulture.txt b/misc/requirements/requirements-vulture.txt
index d8393639c..47a2c6741 100644
--- a/misc/requirements/requirements-vulture.txt
+++ b/misc/requirements/requirements-vulture.txt
@@ -1 +1,3 @@
+# This file is automatically generated by scripts/dev/recompile_requirements.py
+
vulture==0.8.1
diff --git a/scripts/dev/recompile_requirements.py b/scripts/dev/recompile_requirements.py
new file mode 100644
index 000000000..70f4df642
--- /dev/null
+++ b/scripts/dev/recompile_requirements.py
@@ -0,0 +1,105 @@
+#!/usr/bin/env python3
+# vim: ft=python fileencoding=utf-8 sts=4 sw=4 et:
+
+# Copyright 2016 Florian Bruhin (The Compiler) <mail@qutebrowser.org>
+#
+# This file is part of qutebrowser.
+#
+# qutebrowser is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# qutebrowser is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with qutebrowser. If not, see <http://www.gnu.org/licenses/>.
+
+"""Script to regenerate requirements files in misc/requirements."""
+
+import re
+import sys
+import os.path
+import glob
+import subprocess
+import tempfile
+
+sys.path.insert(0, os.path.join(os.path.dirname(__file__), os.pardir,
+ os.pardir))
+
+from scripts import utils
+
+REQ_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)),
+ '..', '..', # /scripts/dev -> /scripts -> /
+ 'misc', 'requirements')
+
+
+def convert_line(line, comments):
+ replacements = {
+ (r'@.*#', '#'), # remove @commit-id for scm installs
+ (r'qute-pylint==.*', './scripts/dev/pylint_checkers'),
+ }
+ for pattern, repl in replacements:
+ line = re.sub(pattern, repl, line)
+
+ pkgname = line.split('=')[0]
+ ignored = comments.get('ignore', '').split(',')
+
+ if pkgname in ignored:
+ return None
+
+ if pkgname in comments:
+ line += ' # ' + comments[pkgname]
+
+ return line
+
+
+def read_comments(fobj):
+ comments = {}
+ for line in fobj:
+ if line.startswith('#') and ':' in line:
+ pkg, comment = line.split(':', maxsplit=1)
+ pkg = pkg.lstrip('# ')
+ comment = comment.strip()
+ comments[pkg] = comment
+ return comments
+
+
+def get_all_names():
+ for filename in glob.glob(os.path.join(REQ_DIR, 'requirements-*-raw.txt')):
+ basename = os.path.basename(filename)
+ yield basename[len('requirements-'):-len('-raw.txt')]
+
+
+def main():
+ names = sys.argv[1:] if len(sys.argv) > 1 else get_all_names()
+
+ for name in names:
+ utils.print_title(name)
+ filename = os.path.join(REQ_DIR,
+ 'requirements-{}-raw.txt'.format(name))
+ outfile = os.path.join(REQ_DIR, 'requirements-{}.txt'.format(name))
+
+ with tempfile.TemporaryDirectory() as tmpdir:
+ pip_bin = os.path.join(tmpdir, 'bin', 'pip')
+ subprocess.check_call(['virtualenv', tmpdir])
+ subprocess.check_call([pip_bin, 'install', '-r', filename])
+ reqs = subprocess.check_output([pip_bin, 'freeze']).decode('utf-8')
+
+ with open(filename, 'r', encoding='utf-8') as f:
+ comments = read_comments(f)
+
+ with open(outfile, 'w', encoding='utf-8') as f:
+ f.write("# This file is automatically generated by "
+ "scripts/dev/recompile_requirements.py\n\n")
+ for line in reqs.splitlines():
+ converted = convert_line(line, comments)
+ if converted is not None:
+ f.write(converted + '\n')
+
+
+if __name__ == '__main__':
+ main()