mirror of
https://github.com/Cian-H/invenio-theme-iform.git
synced 2025-12-22 20:51:58 +00:00
global: migrate setup.py to setup.cfg
This commit is contained in:
committed by
Mojib Wali
parent
d8c91df396
commit
4fd0501c58
2
.github/workflows/pypi-publish.yml
vendored
2
.github/workflows/pypi-publish.yml
vendored
@@ -15,7 +15,7 @@ jobs:
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install setuptools wheel
|
||||
pip install setuptools wheel babel
|
||||
- name: Build package
|
||||
run: |
|
||||
python setup.py compile_catalog sdist bdist_wheel
|
||||
|
||||
42
.github/workflows/tests.yml
vendored
42
.github/workflows/tests.yml
vendored
@@ -1,3 +1,11 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2020-2022 Graz University of Technology.
|
||||
#
|
||||
# invenio-theme-tugraz is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the MIT License; see LICENSE file for more
|
||||
# details.
|
||||
|
||||
name: CI
|
||||
|
||||
on:
|
||||
@@ -20,42 +28,18 @@ jobs:
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: [3.6, 3.7, 3.8, 3.9]
|
||||
requirements-level: [min, pypi]
|
||||
db-service: [postgresql12]
|
||||
python-version: [3.8, 3.9]
|
||||
requirements-level: [pypi]
|
||||
db-service: [postgresql13]
|
||||
search-service: [elasticsearch7]
|
||||
exclude:
|
||||
- python-version: 3.6
|
||||
requirements-level: pypi
|
||||
|
||||
- python-version: 3.7
|
||||
requirements-level: min
|
||||
|
||||
- python-version: 3.8
|
||||
requirements-level: min
|
||||
|
||||
- python-version: 3.9
|
||||
requirements-level: min
|
||||
|
||||
- db-service: postgresql12
|
||||
requirements-level: min
|
||||
|
||||
- search-service: elasticsearch7
|
||||
requirements-level: min
|
||||
|
||||
include:
|
||||
|
||||
- db-service: postgresql12
|
||||
DB_EXTRAS: "postgresql"
|
||||
|
||||
|
||||
- search-service: elasticsearch7
|
||||
SEARCH_EXTRAS: "elasticsearch7"
|
||||
|
||||
env:
|
||||
DB: ${{ matrix.db-service }}
|
||||
SEARCH: ${{ matrix.search-service }}
|
||||
EXTRAS: all,${{ matrix.DB_EXTRAS }},${{ matrix.SEARCH_EXTRAS }}
|
||||
EXTRAS: tests,${{ matrix.SEARCH_EXTRAS }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
@@ -67,7 +51,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 "$EXTRAS" --level=${{ matrix.requirements-level }} setup.py > .${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt
|
||||
- name: Cache pip
|
||||
uses: actions/cache@v2
|
||||
|
||||
13
docs/conf.py
13
docs/conf.py
@@ -8,7 +8,7 @@
|
||||
|
||||
"""Sphinx configuration."""
|
||||
|
||||
import os
|
||||
from invenio_theme_tugraz import __version__
|
||||
|
||||
# -- General configuration ------------------------------------------------
|
||||
|
||||
@@ -54,17 +54,8 @@ author = u"Graz University of Technology"
|
||||
#
|
||||
# The short X.Y version.
|
||||
|
||||
# Get the version string. Cannot be done with import!
|
||||
g = {}
|
||||
with open(
|
||||
os.path.join(os.path.dirname(__file__), "..", "invenio_theme_tugraz", "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.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
||||
# Copyright (C) 2020-2022 Graz University of Technology.
|
||||
#
|
||||
# invenio-theme-tugraz is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the MIT License; see LICENSE file for more
|
||||
@@ -9,6 +9,7 @@
|
||||
"""invenio module for TUGRAZ theme."""
|
||||
|
||||
from .ext import InvenioThemeTugraz
|
||||
from .version import __version__
|
||||
|
||||
__version__ = "3.8.0"
|
||||
|
||||
__all__ = ("__version__", "InvenioThemeTugraz")
|
||||
|
||||
@@ -8,8 +8,6 @@
|
||||
|
||||
"""Frontpage records."""
|
||||
|
||||
from __future__ import absolute_import, print_function
|
||||
|
||||
from elasticsearch_dsl.query import Q
|
||||
from invenio_search.api import RecordsSearch
|
||||
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2020-2022 Graz University of Technology.
|
||||
#
|
||||
# invenio-theme-tugraz is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the MIT License; see LICENSE file for more
|
||||
# details.
|
||||
|
||||
"""Version information for invenio-theme-tugraz.
|
||||
|
||||
This file is imported by ``invenio_theme_tugraz.__init__``,
|
||||
and parsed by ``setup.py``.
|
||||
"""
|
||||
|
||||
__version__ = "3.8.0"
|
||||
@@ -8,8 +8,6 @@
|
||||
|
||||
"""invenio module for TUGRAZ theme."""
|
||||
|
||||
import binascii
|
||||
from os import environ
|
||||
from typing import Dict
|
||||
|
||||
from elasticsearch_dsl.utils import AttrDict
|
||||
|
||||
3
pyproject.toml
Normal file
3
pyproject.toml
Normal file
@@ -0,0 +1,3 @@
|
||||
[build-system]
|
||||
requires = ["setuptools", "wheel", "babel>2.8"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
@@ -16,17 +16,8 @@ set -o errexit
|
||||
# Quit on unbound symbols
|
||||
set -o nounset
|
||||
|
||||
# Always bring down docker services
|
||||
|
||||
function cleanup() {
|
||||
eval "$(docker-services-cli down --env)"
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
|
||||
python -m check_manifest --ignore ".*-requirements.txt"
|
||||
python -m sphinx.cmd.build -qnN docs docs/_build/html
|
||||
eval "$(docker-services-cli up --db ${DB:-postgresql} --search ${SEARCH:-elasticsearch} --cache ${CACHE:-redis} --env)"
|
||||
python -m pytest
|
||||
tests_exit_code=$?
|
||||
python -m sphinx.cmd.build -qnN -b doctest docs docs/_build/doctest
|
||||
|
||||
56
setup.cfg
56
setup.cfg
@@ -6,6 +6,62 @@
|
||||
# modify it under the terms of the MIT License; see LICENSE file for more
|
||||
# details.
|
||||
|
||||
[metadata]
|
||||
name = invenio-theme-tugraz
|
||||
version = attr: invenio_theme_tugraz.__version__
|
||||
description = "Invenio module for TUGRAZ theme."
|
||||
long_description = file: README.rst, CHANGES.rst
|
||||
keywords = invenio theme invenioRDM TU-Graz
|
||||
license = MIT
|
||||
author = "Graz University of Technology"
|
||||
author_email = mojib.wali@tugraz.at
|
||||
url = https://github.com/tu-graz-library/invenio-theme-tugraz
|
||||
platforms = any
|
||||
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.7
|
||||
Programming Language :: Python :: 3.8
|
||||
Programming Language :: Python :: 3.9
|
||||
Development Status :: 3 - Alpha
|
||||
|
||||
[options]
|
||||
include_package_data = True
|
||||
packages = find:
|
||||
python_requires = >=3.8
|
||||
zip_safe = False
|
||||
install_requires =
|
||||
Flask-BabelEx>=0.9.4
|
||||
Flask-WebpackExt>=1.0.0
|
||||
invenio-assets>=1.2.0
|
||||
invenio-i18n>=1.2.0
|
||||
invenio_config_tugraz>=0.8.2,<0.9.0
|
||||
|
||||
[options.extras_require]
|
||||
tests =
|
||||
sphinx>=4.2.0,<5
|
||||
pytest-invenio>=1.4.7
|
||||
invenio-app>=1.3.0,<2.0.0
|
||||
elasticsearch7 =
|
||||
invenio-search[elasticsearch7]>=1.4.2,<2.0
|
||||
|
||||
[options.entry_points]
|
||||
invenio_base.apps =
|
||||
invenio_theme_tugraz = invenio_theme_tugraz:InvenioThemeTugraz
|
||||
invenio_base.blueprints =
|
||||
invenio_theme_tugraz = invenio_theme_tugraz.views:ui_blueprint
|
||||
invenio_i18n.translations =
|
||||
messages = invenio_theme_tugraz
|
||||
invenio_assets.webpack =
|
||||
invenio_theme_tugraz_theme = invenio_theme_tugraz.webpack:theme
|
||||
invenio_config.module =
|
||||
invenio_theme_tugraz = invenio_theme_tugraz.config
|
||||
|
||||
[aliases]
|
||||
test = pytest
|
||||
|
||||
|
||||
113
setup.py
113
setup.py
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
||||
# Copyright (C) 2020-2022 Graz University of Technology.
|
||||
#
|
||||
# invenio-theme-tugraz is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the MIT License; see LICENSE file for more
|
||||
@@ -8,113 +8,6 @@
|
||||
|
||||
"""invenio module for TUGRAZ theme."""
|
||||
|
||||
import os
|
||||
from setuptools import setup
|
||||
|
||||
from setuptools import find_packages, setup
|
||||
|
||||
readme = open("README.rst").read()
|
||||
history = open("CHANGES.rst").read()
|
||||
|
||||
tests_require = [
|
||||
"pytest-invenio>=1.4.0",
|
||||
"invenio-app>=1.3.0,<2.0.0",
|
||||
]
|
||||
|
||||
# Should follow invenio-app-rdm
|
||||
invenio_search_version = ">=1.4.0,<1.5.0"
|
||||
invenio_db_version = ">=1.0.9,<1.1.0"
|
||||
|
||||
extras_require = {
|
||||
"elasticsearch7": [f"invenio-search[elasticsearch7]{invenio_search_version}"],
|
||||
"mysql": [f"invenio-db[mysql,versioning]{invenio_db_version}"],
|
||||
"postgresql": [f"invenio-db[postgresql,versioning]{invenio_db_version}"],
|
||||
"sqlite": [f"invenio-db[versioning]{invenio_db_version}"],
|
||||
"docs": [
|
||||
"Sphinx==4.2.0",
|
||||
],
|
||||
"tests": tests_require,
|
||||
}
|
||||
|
||||
extras_require["all"] = []
|
||||
for name, reqs in extras_require.items():
|
||||
if name[0] == ":" or name in (
|
||||
"elasticsearch7",
|
||||
"mysql",
|
||||
"postgresql",
|
||||
"sqlite",
|
||||
):
|
||||
continue
|
||||
extras_require["all"].extend(reqs)
|
||||
|
||||
setup_requires = [
|
||||
"Babel>=1.3",
|
||||
"pytest-runner>=3.0.0,<5",
|
||||
]
|
||||
|
||||
install_requires = [
|
||||
"Flask-BabelEx>=0.9.4",
|
||||
"Flask-WebpackExt>=1.0.0",
|
||||
"invenio-assets>=1.2.0",
|
||||
"invenio-i18n>=1.2.0",
|
||||
"invenio_config_tugraz>=0.8.2,<0.9.0",
|
||||
]
|
||||
|
||||
packages = find_packages()
|
||||
|
||||
|
||||
# Get the version string. Cannot be done with import!
|
||||
g = {}
|
||||
with open(os.path.join("invenio_theme_tugraz", "version.py"), "rt") as fp:
|
||||
exec(fp.read(), g)
|
||||
version = g["__version__"]
|
||||
|
||||
setup(
|
||||
name="invenio-theme-tugraz",
|
||||
version=version,
|
||||
description=__doc__,
|
||||
long_description=readme + "\n\n" + history,
|
||||
keywords="invenio, theme, invenioRDM, TU-Graz, Graz University of Technology, statistics",
|
||||
license="MIT",
|
||||
author="Graz University of Technology",
|
||||
author_email="mojib.wali@tugraz.at",
|
||||
url="https://github.com/tu-graz-library/invenio-theme-tugraz",
|
||||
packages=packages,
|
||||
zip_safe=False,
|
||||
include_package_data=True,
|
||||
platforms="any",
|
||||
entry_points={
|
||||
"invenio_base.apps": [
|
||||
"invenio_theme_tugraz = invenio_theme_tugraz:InvenioThemeTugraz",
|
||||
],
|
||||
"invenio_base.blueprints": [
|
||||
"invenio_theme_tugraz = invenio_theme_tugraz.views:ui_blueprint",
|
||||
],
|
||||
"invenio_i18n.translations": [
|
||||
"messages = invenio_theme_tugraz",
|
||||
],
|
||||
"invenio_assets.webpack": [
|
||||
"invenio_theme_tugraz_theme = invenio_theme_tugraz.webpack:theme",
|
||||
],
|
||||
"invenio_config.module": [
|
||||
"invenio_theme_tugraz = invenio_theme_tugraz.config",
|
||||
],
|
||||
},
|
||||
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 :: 3.8",
|
||||
"Development Status :: 3 - Alpha",
|
||||
],
|
||||
)
|
||||
setup()
|
||||
|
||||
@@ -12,62 +12,21 @@ See https://pytest-invenio.readthedocs.io/ for documentation on which test
|
||||
fixtures are available.
|
||||
"""
|
||||
|
||||
import os
|
||||
import shutil
|
||||
import tempfile
|
||||
|
||||
import pytest
|
||||
from flask import Flask
|
||||
from flask_babelex import Babel
|
||||
from invenio_db import InvenioDB, db
|
||||
from invenio_i18n import InvenioI18N
|
||||
from invenio_search import InvenioSearch
|
||||
from sqlalchemy_utils.functions import create_database, database_exists, drop_database
|
||||
|
||||
from invenio_theme_tugraz import InvenioThemeTugraz
|
||||
|
||||
|
||||
@pytest.fixture(scope="module")
|
||||
def celery_config():
|
||||
"""Override pytest-invenio fixture.
|
||||
|
||||
TODO: Remove this fixture if you add Celery support.
|
||||
"""
|
||||
return {}
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def app(request):
|
||||
"""Basic Flask application."""
|
||||
instance_path = tempfile.mkdtemp()
|
||||
app = Flask("testapp")
|
||||
DB = os.getenv("SQLALCHEMY_DATABASE_URI", "sqlite://")
|
||||
app.config.update(
|
||||
I18N_LANGUAGES=[("en", "English"), ("de", "German")],
|
||||
SQLALCHEMY_DATABASE_URI=DB,
|
||||
SQLALCHEMY_TRACK_MODIFICATIONS=False,
|
||||
)
|
||||
Babel(app)
|
||||
InvenioDB(app)
|
||||
InvenioSearch(app)
|
||||
InvenioThemeTugraz(app)
|
||||
InvenioI18N(app)
|
||||
|
||||
with app.app_context():
|
||||
db_url = str(db.engine.url)
|
||||
if db_url != "sqlite://" and not database_exists(db_url):
|
||||
create_database(db_url)
|
||||
db.create_all()
|
||||
|
||||
def teardown():
|
||||
with app.app_context():
|
||||
db_url = str(db.engine.url)
|
||||
db.session.close()
|
||||
if db_url != "sqlite://":
|
||||
drop_database(db_url)
|
||||
shutil.rmtree(instance_path)
|
||||
|
||||
request.addfinalizer(teardown)
|
||||
app.test_request_context().push()
|
||||
|
||||
return app
|
||||
|
||||
@@ -35,4 +35,4 @@ def test_init():
|
||||
|
||||
def test_app(app):
|
||||
"""Test extension initialization."""
|
||||
theme = InvenioThemeTugraz(app)
|
||||
_ = InvenioThemeTugraz(app)
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (C) 2020-2021 Graz University of Technology.
|
||||
#
|
||||
# invenio-theme-tugraz is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the MIT License; see LICENSE file for more
|
||||
# details.
|
||||
|
||||
"""Pytest configuration.
|
||||
|
||||
See https://pytest-invenio.readthedocs.io/ for documentation on which test
|
||||
fixtures are available.
|
||||
"""
|
||||
|
||||
import pytest
|
||||
from invenio_app.factory import create_ui
|
||||
|
||||
|
||||
@pytest.fixture(scope='module')
|
||||
def create_app(instance_path):
|
||||
"""Application factory fixture."""
|
||||
return create_ui
|
||||
@@ -1,33 +0,0 @@
|
||||
# # -*- coding: utf-8 -*-
|
||||
# #
|
||||
# # Copyright (C) 2020-2021 Graz University of Technology.
|
||||
# #
|
||||
# # invenio-theme-tugraz is free software; you can redistribute it and/or
|
||||
# # modify it under the terms of the MIT License; see LICENSE file for more
|
||||
# # details.
|
||||
|
||||
# """Test views."""
|
||||
|
||||
# from elasticsearch_dsl.utils import AttrDict
|
||||
|
||||
# from invenio_theme_tugraz.views import cast_to_dict, make_dict_like
|
||||
|
||||
|
||||
# def test_make_dict_like():
|
||||
# """Test make_dict_like."""
|
||||
# access = {
|
||||
# "access_right" : "open"
|
||||
# }
|
||||
# dicts = make_dict_like("open", "access_right")
|
||||
# assert access == dicts
|
||||
|
||||
|
||||
# def test_cast_to_dict():
|
||||
# """Test cast_to_dict."""
|
||||
# resource_type = {
|
||||
# "subtype" : "publication-datamanagementplan",
|
||||
# "type" : "publication"
|
||||
# }
|
||||
# expected = {'subtype': 'publication-datamanagementplan', 'type': 'publication'}
|
||||
# attr = cast_to_dict(AttrDict(resource_type))
|
||||
# assert expected == attr
|
||||
Reference in New Issue
Block a user