From f6f95d25c1e379fbc87a530cc15f6bcf3a3e6704 Mon Sep 17 00:00:00 2001 From: Christoph Ladurner <christoph.ladurner@tugraz.at> Date: Sat, 18 Feb 2023 23:13:28 +0100 Subject: [PATCH] migrate setup.py to setup.cfg --- .github/workflows/pypi-publish.yml | 2 +- .github/workflows/tests.yml | 2 +- docs/conf.py | 13 +--- invenio_previewer/__init__.py | 3 +- pyproject.toml | 4 + setup.cfg | 68 ++++++++++++++++- setup.py | 118 +---------------------------- 7 files changed, 79 insertions(+), 131 deletions(-) create mode 100644 pyproject.toml diff --git a/.github/workflows/pypi-publish.yml b/.github/workflows/pypi-publish.yml index 556367a..2657cbc 100644 --- a/.github/workflows/pypi-publish.yml +++ b/.github/workflows/pypi-publish.yml @@ -20,7 +20,7 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - pip install setuptools wheel + pip install setuptools wheel babel - name: Build package # Remove `compile_catalog` if the package has no translations. diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 9af31ac..e5c71db 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -38,7 +38,7 @@ jobs: - name: Generate dependencies run: | - python -m pip install --upgrade pip setuptools py wheel requirements-builder + pip install wheel requirements-builder requirements-builder -e ${{ matrix.EXTRAS }} --level=${{ matrix.REQUIREMENTS_LEVEL }} setup.py > .${{ matrix.REQUIREMENTS_LEVEL }}-${{ matrix.python-version }}-requirements.txt - name: Cache pip diff --git a/docs/conf.py b/docs/conf.py index 65c66bc..68a75b7 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -8,7 +8,7 @@ from __future__ import print_function -import os +from invenio_previewer import __version__ import sphinx.environment @@ -56,17 +56,8 @@ author = u'CERN' # # The short X.Y version. -# Get the version string. Cannot be done with import! -g = {} -g = {} -with open(os.path.join(os.path.dirname(__file__), '..', - 'invenio_previewer', 'version.py'), - 'rt') as fp: - exec(fp.read(), g) - version = g['__version__'] - # The full version, including alpha/beta/rc tags. -release = version +release = __version__ # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/invenio_previewer/__init__.py b/invenio_previewer/__init__.py index 8dd99ff..9487c04 100644 --- a/invenio_previewer/__init__.py +++ b/invenio_previewer/__init__.py @@ -319,6 +319,7 @@ from __future__ import absolute_import, print_function from .ext import InvenioPreviewer from .proxies import current_previewer -from .version import __version__ + +__version__ = "1.3.9" __all__ = ('__version__', 'current_previewer', 'InvenioPreviewer') diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..f00e778 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,4 @@ +[build-system] +requires = ["setuptools", "wheel", "babel>2.8"] +build-backend = "setuptools.build_meta" + diff --git a/setup.cfg b/setup.cfg index 2358924..7a2d773 100644 --- a/setup.cfg +++ b/setup.cfg @@ -2,13 +2,77 @@ # # This file is part of Invenio. # Copyright (C) 2016-2020 CERN. +# Copyright (C) 2022 Graz University of Technology. # # Invenio is free software; you can redistribute it and/or modify it # under the terms of the MIT License; see LICENSE file for more details. +[metadata] +name = invenio-previewer +version = attr: invenio_previewer.__version__ +description = "Invenio module for previewing files." +long_description = file: README.rst, CHANGES.rst +keywords = invenio previewer +license = MIT +author = CERN +author_email = info@inveniosoftware.org +platforms = any +url = https://github.com/inveniosoftware/invenio-previewer +classifiers = + Development Status :: 5 - Production/Stable -[aliases] -test = pytest +[options] +include_package_data = True +packages = find: +python_requires = >=3.6 +zip_safe = False +install_requires = + cchardet>=1.0.0 + invenio-assets>=1.2.7 + invenio-base>=1.2.10 + invenio-formatter>=1.1.3 + invenio-i18n>=1.3.1 + invenio-pidstore>=1.2.3 + invenio-records-ui>=1.2.0 + ipython>=4.1.0 + mistune>=0.8.1 + nbconvert>=6.0,<7.0 + nbclient>=0.5,<1.0 + nbformat>=5.1,<6.0 + tornado>=6.1,<7.0 + +[options.extras_require] +tests = + invenio-config>=1.0.3 + invenio-theme>=1.3.20 + invenio-db[versioning]>=1.0.14 + mock>=1.3.0 + pytest-invenio>=1.4.5 + Sphinx>=4.2.0,<5.0.0 + invenio-files-rest>=1.3.2 + invenio-records-files>=1.2.1 +# Kept for backwards compatibility +docs = +files = + +[options.entry_points] +invenio_base.apps = + invenio_previewer = invenio_previewer:InvenioPreviewer +invenio_i18n.translations = + messages = invenio_previewer +invenio_assets.webpack = + invenio_previewer_theme = invenio_previewer.webpack:previewer +invenio_previewer.previewers = + csv_dthreejs = invenio_previewer.extensions.csv_dthreejs + json_prismjs = invenio_previewer.extensions.json_prismjs + simple_image = invenio_previewer.extensions.simple_image + xml_prismjs = invenio_previewer.extensions.xml_prismjs + mistune = invenio_previewer.extensions.mistune + txt = invenio_previewer.extensions.txt + pdfjs = invenio_previewer.extensions.pdfjs + zip = invenio_previewer.extensions.zip + ipynb = invenio_previewer.extensions.ipynb + default = invenio_previewer.extensions.default [build_sphinx] source-dir = docs/ diff --git a/setup.py b/setup.py index bdbbd90..a4562d0 100644 --- a/setup.py +++ b/setup.py @@ -2,125 +2,13 @@ # # This file is part of Invenio. # Copyright (C) 2016-2020 CERN. +# Copyright (C) 2022 Graz University of Technology. # # Invenio is free software; you can redistribute it and/or modify it # under the terms of the MIT License; see LICENSE file for more details. """Invenio module for previewing files.""" -import os +from setuptools import setup -from setuptools import find_packages, setup -from setuptools.command.test import test as TestCommand # noqa - -readme = open('README.rst').read() -history = open('CHANGES.rst').read() - -tests_require = [ - 'invenio-config>=1.0.3', - 'invenio-theme>=1.3.20', - 'invenio-db[versioning]>=1.0.14', - 'mock>=1.3.0', - 'pytest-invenio>=1.4.5', -] - -extras_require = { - 'docs': [ - 'Sphinx>=4.2.0,<5.0.0', - ], - 'files': [ - 'invenio-files-rest>=1.3.2', - 'invenio-records-files>=1.2.1', - ], - 'tests': tests_require, -} - -extras_require['all'] = [] -for reqs in extras_require.values(): - extras_require['all'].extend(reqs) - -setup_requires = [ - 'Babel>=2.8', -] - -install_requires = [ - 'cchardet>=1.0.0', - 'invenio-assets>=1.2.7', - 'invenio-base>=1.2.11', - 'invenio-formatter>=1.1.3', - 'invenio-i18n>=2.0.0', - 'invenio-pidstore>=1.2.3', - 'invenio-records-ui>=1.2.0', - 'ipython>=4.1.0', - 'mistune>=0.8.1', - # NOTE: nbclient package provides execute in nbconvert >= 6.X - 'nbconvert>=6.0,<7.0', - 'nbclient>=0.5,<1.0', - 'nbformat>=5.1,<6.0', - 'tornado>=6.1,<7.0', # required by nbconvert -> jupyter-client -] - -packages = find_packages() - -# Get the version string. Cannot be done with import! -g = {} -with open(os.path.join('invenio_previewer', 'version.py'), 'rt') as fp: - exec(fp.read(), g) - version = g['__version__'] - -setup( - name='invenio-previewer', - version=version, - description=__doc__, - long_description=readme + '\n\n' + history, - keywords='invenio previewer', - license='MIT', - author='CERN', - author_email='info@inveniosoftware.org', - url='https://github.com/inveniosoftware/invenio-previewer', - packages=packages, - zip_safe=False, - include_package_data=True, - platforms='any', - entry_points={ - 'invenio_base.apps': [ - 'invenio_previewer = invenio_previewer:InvenioPreviewer', - ], - 'invenio_i18n.translations': [ - 'messages = invenio_previewer', - ], - 'invenio_assets.webpack': { - 'invenio_previewer_theme = invenio_previewer.webpack:previewer' - }, - 'invenio_previewer.previewers': [ - 'csv_dthreejs = invenio_previewer.extensions.csv_dthreejs', - 'json_prismjs = invenio_previewer.extensions.json_prismjs', - 'simple_image = invenio_previewer.extensions.simple_image', - 'xml_prismjs = invenio_previewer.extensions.xml_prismjs', - 'mistune = invenio_previewer.extensions.mistune', - 'txt = invenio_previewer.extensions.txt', - 'pdfjs = invenio_previewer.extensions.pdfjs', - 'zip = invenio_previewer.extensions.zip', - 'ipynb = invenio_previewer.extensions.ipynb', - 'default = invenio_previewer.extensions.default', - ], - }, - extras_require=extras_require, - install_requires=install_requires, - setup_requires=setup_requires, - tests_require=tests_require, - classifiers=[ - 'Environment :: Web Environment', - 'Intended Audience :: Developers', - 'License :: OSI Approved :: MIT License', - 'Operating System :: OS Independent', - 'Programming Language :: Python', - 'Topic :: Internet :: WWW/HTTP :: Dynamic Content', - 'Topic :: Software Development :: Libraries :: Python Modules', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: Implementation :: CPython', - 'Development Status :: 5 - Production/Stable', - ], -) +setup() -- GitLab