diff options
-rw-r--r-- | setup.cfg | 52 | ||||
-rwxr-xr-x | setup.py | 70 |
2 files changed, 69 insertions, 53 deletions
diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 295c77e26..000000000 --- a/setup.cfg +++ /dev/null @@ -1,52 +0,0 @@ -[metadata] -name = qutebrowser -version = attr: qutebrowser.__version__ -description = A keyboard-driven, vim-like browser based on PyQt5. -long_description = file: README.asciidoc -long_description_content_type = text/plain -url = https://www.qutebrowser.org/ -author = Florian Bruhin -author_email = mail@qutebrowser.org -license = GPL-3.0-or-later -license_file = LICENSE -classifiers = - Development Status :: 5 - Production/Stable - Environment :: X11 Applications :: Qt - Intended Audience :: End Users/Desktop - License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+) - Natural Language :: English - Operating System :: MacOS - Operating System :: Microsoft :: Windows - Operating System :: POSIX :: BSD - Operating System :: POSIX :: Linux - Programming Language :: Python :: 3 - Programming Language :: Python :: 3 :: Only - Programming Language :: Python :: 3.6 - Programming Language :: Python :: 3.7 - Programming Language :: Python :: 3.8 - Programming Language :: Python :: 3.9 - Programming Language :: Python :: Implementation :: CPython - Topic :: Internet - Topic :: Internet :: WWW/HTTP - Topic :: Internet :: WWW/HTTP :: Browsers -keywords = pyqt, browser, web, qt, webkit, qtwebkit, qtwebengine -packages = find: - -[options] -install_requires = - PyYAML - jinja2 - dataclasses;python_version < "3.7" - importlib_resources>=1.1.0;python_version < "3.9" -python_requires = >=3.6 -include_package_data = True -zip_safe = True - -[options.entry_points] -gui_scripts = - qutebrowser = qutebrowser.qutebrowser:main - -[options.packages.find] -exclude = - scripts - scripts.* @@ -21,6 +21,8 @@ """setuptools installer script for qutebrowser.""" +import re +import ast import os import os.path @@ -35,9 +37,75 @@ except NameError: BASEDIR = None +def read_file(name): + """Get the string contained in the file named name.""" + with common.open_file(name, 'r', encoding='utf-8') as f: + return f.read() + + +def _get_constant(name): + """Read a __magic__ constant from qutebrowser/__init__.py. + + We don't import qutebrowser here because it can go wrong for multiple + reasons. Instead we use re/ast to get the value directly from the source + file. + + Args: + name: The name of the argument to get. + + Return: + The value of the argument. + """ + field_re = re.compile(r'__{}__\s+=\s+(.*)'.format(re.escape(name))) + path = os.path.join(BASEDIR, 'qutebrowser', '__init__.py') + line = field_re.search(read_file(path)).group(1) + value = ast.literal_eval(line) + return value + + try: common.write_git_file() - setuptools.setup() # data is in setup.cfg + setuptools.setup( + packages=setuptools.find_packages(exclude=['scripts', 'scripts.*']), + include_package_data=True, + entry_points={'gui_scripts': + ['qutebrowser = qutebrowser.qutebrowser:main']}, + zip_safe=True, + install_requires=['jinja2', 'PyYAML', + 'dataclasses; python_version < "3.7"', + 'importlib_resources>=1.1.0; python_version < "3.9"'], + python_requires='>=3.6', + name='qutebrowser', + version=_get_constant('version'), + description=_get_constant('description'), + long_description=read_file('README.asciidoc'), + long_description_content_type='text/plain', + url='https://www.qutebrowser.org/', + author=_get_constant('author'), + author_email=_get_constant('email'), + license=_get_constant('license'), + classifiers=[ + 'Development Status :: 5 - Production/Stable', + 'Environment :: X11 Applications :: Qt', + 'Intended Audience :: End Users/Desktop', + 'License :: OSI Approved :: GNU General Public License v3 or later ' + '(GPLv3+)', + 'Natural Language :: English', + 'Operating System :: Microsoft :: Windows', + 'Operating System :: POSIX :: Linux', + 'Operating System :: MacOS', + 'Operating System :: POSIX :: BSD', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', + 'Topic :: Internet', + 'Topic :: Internet :: WWW/HTTP', + 'Topic :: Internet :: WWW/HTTP :: Browsers', + ], + keywords='pyqt browser web qt webkit qtwebkit qtwebengine', + ) finally: if BASEDIR is not None: path = os.path.join(BASEDIR, 'qutebrowser', 'git-commit-id') |