Change to using setup.cfg

Change from configuring everything in the setup.py file to using the
newer setup.cfg file for a lot of the metadata associated with the qtile
package.
master
Sean Vig 2019-02-11 23:05:02 -05:00
parent 23cd20be59
commit 749dfc9bc6
9 changed files with 96 additions and 113 deletions

View File

@ -6,7 +6,6 @@ include CONTRIBUTING.md
exclude .coveragerc
exclude tox.ini
exclude requirements.in
exclude requirements.txt
exclude requirements-dev.txt
exclude libqtile/_ffi*.py

View File

@ -5,7 +5,6 @@ default:
@echo "'make ckpatch'" to check a patch
@echo "'make clean'" to clean generated files
@echo "'make man'" to generate sphinx documentation
@echo "'make update-requirements'" to update the requirements files
.PHONY: check
check:
@ -35,7 +34,3 @@ clean:
man:
python setup.py build_sphinx -b man
cp build/sphinx/man/* resources/
.PHONY: update-requirements
update-requirements:
pip-compile requirements.in

View File

@ -1,4 +1,3 @@
mock # for python <= 3.2
sphinx
sphinx_rtd_theme
sphinxcontrib-seqdiag

View File

@ -1,5 +1,4 @@
flake8
pep8-naming
pytest-cov
pip-tools
xvfbwrapper

View File

@ -1,3 +0,0 @@
xcffib
cairocffi
cffi

View File

@ -1,10 +1,3 @@
#
# This file is autogenerated by pip-compile
# To update, run:
#
# pip-compile --output-file requirements.txt requirements.in
#
cairocffi==0.9.0
cffi==1.11.5
pycparser==2.19 # via cffi
xcffib==0.6.0
cairocffi >= 0.9.0
cffi >= 1.1.0
xcffib >= 0.5.0

View File

@ -1,3 +1,93 @@
[metadata]
name = qtile
version = 0.13.0
url = http://qtile.org
license = MIT
license_file = LICENSE
description = A pure-Python tiling window manager.
long_description = file: README.rst
long_description_content_type = text/x-rst
author = Aldo Cortesi
author_email = aldo@nullcube.com
maintainer = Sean Vig
maintainer_email = sean.v.775@gmail.com
keywords =
qtile
tiling
window
manager
classifiers =
Development Status :: 3 - Alpha
Intended Audience :: End Users/Desktop
License :: OSI Approved :: MIT License
Operating System :: POSIX :: BSD :: FreeBSD
Operating System :: POSIX :: Linux
Programming Language :: Python :: 3 :: Only
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
Programming Language :: Python :: Implementation :: CPython
Topic :: Desktop Environment :: Window Managers
project_urls =
Documentation = http://docs.qtile.org/
Code = https://github.com/qtile/qtile/
Issue tracker = https://github.com/qtile/qtile/issues
[options]
packages = find:
python_requires >= 3.6
setup_requires =
cffi >= 1.1.0
cairocffi[xcb] >= 0.9.0
setuptools
install_requires =
cffi >= 1.1.0
cairocffi[xcb] >= 0.9.0
xcffib >= 0.5.0
tests_require =
flake8
pep8-naming
pytest-cov
xvfbwrapper
scripts =
bin/dqtile-cmd
bin/iqshell
[options.data_files]
/share/man/man1 =
resources/qtile.1
resources/qshell.1
[options.entry_points]
console_scripts =
qshell = libqtile.scripts.qshell:main
qtile = libqtile.scripts.qtile:main
qtile-cmd = libqtile.scripts.qtile_cmd:main
qtile-run = libqtile.scripts.qtile_run:main
qtile-top = libqtile.scripts.qtile_top:main
[options.extras_require]
doc =
sphinx
sphinx_rtd_theme
sphinxcontrib-seqdiag
numpydoc
test =
flake8
pep8-naming
pytest-cov
xvfbwrapper
ipython =
ipykernel
jupyter_console
[options.package_data]
libqtile.resources.battery-icons = *.png
libqtile.resources.layout-icons = *.png
[build_sphinx]
source-dir = docs
build-dir = docs/_build
[flake8]
exclude = libqtile/_ffi*.py,libqtile/core/_ffi*.py
max-line-length = 120

View File

@ -26,7 +26,6 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
import os
import sys
import textwrap
@ -65,90 +64,7 @@ class CheckCairoXcb(install):
install.finalize_options(self)
long_description = """
A pure-Python tiling window manager.
Features
========
* Simple, small and extensible. It's easy to write your own layouts,
widgets and commands.
* Configured in Python.
* Command shell that allows all aspects of
Qtile to be managed and inspected.
* Complete remote scriptability - write scripts to set up workspaces,
manipulate windows, update status bar widgets and more.
* Qtile's remote scriptability makes it one of the most thoroughly
unit-tested window mangers around.
"""
if '_cffi_backend' in sys.builtin_module_names: # pypy has cffi builtin
import _cffi_backend
requires_cffi = "cffi==" + _cffi_backend.__version__
else:
requires_cffi = "cffi>=1.1.0"
dependencies = ['xcffib>=0.5.0', 'cairocffi>=0.9[xcb]', requires_cffi]
setup(
name="qtile",
version="0.13.0",
description="A pure-Python tiling window manager.",
long_description=long_description,
classifiers=[
"Intended Audience :: End Users/Desktop",
"License :: OSI Approved :: MIT License",
"Development Status :: 3 - Alpha",
"Programming Language :: Python",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: Implementation :: CPython",
"Operating System :: Unix",
"Topic :: Desktop Environment :: Window Managers",
],
keywords="qtile tiling window manager",
author="Aldo Cortesi",
author_email="aldo@nullcube.com",
maintainer="Sean Vig",
maintainer_email="sean.v.775@gmail.com",
url="http://qtile.org",
license="MIT",
install_requires=dependencies,
setup_requires=dependencies,
extras_require={
'ipython': ["ipykernel", "jupyter_console"],
},
packages=['libqtile',
'libqtile.core',
'libqtile.interactive',
'libqtile.layout',
'libqtile.scripts',
'libqtile.widget',
'libqtile.extension',
'libqtile.resources'
],
package_data={'libqtile.resources': [
'{}/*'.format(item)
for item
in os.listdir('libqtile/resources')
if os.path.isdir(os.path.join('libqtile/resources', item))
]},
entry_points={
'console_scripts': [
'qshell = libqtile.scripts.qshell:main',
'qtile = libqtile.scripts.qtile:main',
'qtile-cmd = libqtile.scripts.qtile_cmd:main',
'qtile-run = libqtile.scripts.qtile_run:main',
'qtile-top = libqtile.scripts.qtile_top:main',
]
},
scripts=[
'bin/dqtile-cmd',
'bin/iqshell',
],
data_files=[
('share/man/man1', ['resources/qtile.1',
'resources/qshell.1'])],
cmdclass={'install': CheckCairoXcb},
cffi_modules=[
'libqtile/pango_ffi_build.py:pango_ffi',

11
tox.ini
View File

@ -17,18 +17,13 @@ setenv = LC_CTYPE = en_US.UTF-8
# Pass Display down to have it for the tests available
passenv = DISPLAY TRAVIS TRAVIS_JOB_ID TRAVIS_BRANCH
whitelist_externals=convert
# Install trollius for 2 and pypy
# Asyncio is in the standard library for 3.4+
deps =
pytest-cov
xvfbwrapper
trollius: trollius
tulip: asyncio
commands =
# xcffib has to be installed before cairo
# xcffib has to be installed before cairocffi
pip install xcffib
# Install unpinned requirements from requirements.in
pip install -r {toxinidir}/requirements.in
pip install -r {toxinidir}/requirements.txt
{toxinidir}/scripts/ffibuild
pytest --cov libqtile --cov-report term-missing {posargs}
@ -52,4 +47,4 @@ commands = mypy -p libqtile
[testenv:docs]
deps = -r{toxinidir}/docs/requirements.txt
commands = sphinx-build -W -b html -d {envtmpdir}/doctrees docs docs/_build/html
commands = python setup.py build_sphinx -W