From a5cf0654463c83f96eab7982b9ae5b5ae3e6525f Mon Sep 17 00:00:00 2001
From: Maximilian Moser <maximilian.moser@tuwien.ac.at>
Date: Fri, 22 Jan 2021 16:16:35 +0100
Subject: [PATCH] Apply black formatting to docs, setup.py and tests

---
 docs/conf.py                        | 212 +++++++++++++++-------------
 setup.py                            |  92 ++++++------
 tests/conftest.py                   |   8 +-
 tests/test_invenio_utilities_tuw.py |  11 +-
 4 files changed, 170 insertions(+), 153 deletions(-)

diff --git a/docs/conf.py b/docs/conf.py
index 5a45220..849faf2 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -15,40 +15,40 @@ import sphinx.environment
 # -- General configuration ------------------------------------------------
 
 # If your documentation needs a minimal Sphinx version, state it here.
-#needs_sphinx = '1.0'
+# needs_sphinx = '1.0'
 
 # Do not warn on external images.
-suppress_warnings = ['image.nonlocal_uri']
+suppress_warnings = ["image.nonlocal_uri"]
 
 # Add any Sphinx extension module names here, as strings. They can be
 # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
 # ones.
 extensions = [
-    'sphinx.ext.autodoc',
-    'sphinx.ext.coverage',
-    'sphinx.ext.doctest',
-    'sphinx.ext.intersphinx',
-    'sphinx.ext.viewcode',
+    "sphinx.ext.autodoc",
+    "sphinx.ext.coverage",
+    "sphinx.ext.doctest",
+    "sphinx.ext.intersphinx",
+    "sphinx.ext.viewcode",
 ]
 
 # Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
+templates_path = ["_templates"]
 
 # The suffix(es) of source filenames.
 # You can specify multiple suffix as a list of string:
 # source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
+source_suffix = ".rst"
 
 # The encoding of source files.
-#source_encoding = 'utf-8-sig'
+# source_encoding = 'utf-8-sig'
 
 # The master toctree document.
-master_doc = 'index'
+master_doc = "index"
 
 # General information about the project.
-project = u'Invenio-Utilities-TUW'
-copyright = u'2020, TU Wien'
-author = u'TU Wien'
+project = u"Invenio-Utilities-TUW"
+copyright = u"2020, TU Wien"
+author = u"TU Wien"
 
 # The version info for the project you're documenting, acts as replacement for
 # |version| and |release|, also used in various other places throughout the
@@ -58,11 +58,14 @@ author = u'TU Wien'
 
 # Get the version string. Cannot be done with import!
 g = {}
-with open(os.path.join(os.path.dirname(__file__), '..',
-                       'invenio_utilities_tuw', 'version.py'),
-          'rt') as fp:
+with open(
+    os.path.join(
+        os.path.dirname(__file__), "..", "invenio_utilities_tuw", "version.py"
+    ),
+    "rt",
+) as fp:
     exec(fp.read(), g)
-    version = g['__version__']
+    version = g["__version__"]
 
 # The full version, including alpha/beta/rc tags.
 release = version
@@ -76,9 +79,9 @@ language = None
 
 # There are two options for replacing |today|: either, you set today to some
 # non-false value, then it is used:
-#today = ''
+# today = ''
 # Else, today_fmt is used as the format for a strftime call.
-#today_fmt = '%B %d, %Y'
+# today_fmt = '%B %d, %Y'
 
 # List of patterns, relative to source directory, that match files and
 # directories to ignore when looking for source files.
@@ -86,46 +89,46 @@ exclude_patterns = []
 
 # The reST default role (used for this markup: `text`) to use for all
 # documents.
-#default_role = None
+# default_role = None
 
 # If true, '()' will be appended to :func: etc. cross-reference text.
-#add_function_parentheses = True
+# add_function_parentheses = True
 
 # If true, the current module name will be prepended to all description
 # unit titles (such as .. function::).
-#add_module_names = True
+# add_module_names = True
 
 # If true, sectionauthor and moduleauthor directives will be shown in the
 # output. They are ignored by default.
-#show_authors = False
+# show_authors = False
 
 # The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
+pygments_style = "sphinx"
 
 # A list of ignored prefixes for module index sorting.
-#modindex_common_prefix = []
+# modindex_common_prefix = []
 
 # If true, keep warnings as "system message" paragraphs in the built documents.
-#keep_warnings = False
+# keep_warnings = False
 
 # If true, `todo` and `todoList` produce output, else they produce nothing.
 todo_include_todos = False
 
 
 # -- Options for HTML output ----------------------------------------------
-html_theme = 'alabaster'
+html_theme = "alabaster"
 
 html_theme_options = {
-    'description': 'Some utilities for InvenioRDM.',
-    'github_user': 'inveniosoftware',
-    'github_repo': 'invenio-utilities-tuw',
-    'github_button': False,
-    'github_banner': True,
-    'show_powered_by': False,
-    'extra_nav_links': {
-        'invenio-utilities-tuw@GitHub': 'https://github.com/inveniosoftware/invenio-utilities-tuw',
-        'invenio-utilities-tuw@PyPI': 'https://pypi.python.org/pypi/invenio-utilities-tuw/',
-    }
+    "description": "Some utilities for InvenioRDM.",
+    "github_user": "inveniosoftware",
+    "github_repo": "invenio-utilities-tuw",
+    "github_button": False,
+    "github_banner": True,
+    "show_powered_by": False,
+    "extra_nav_links": {
+        "invenio-utilities-tuw@GitHub": "https://github.com/inveniosoftware/invenio-utilities-tuw",
+        "invenio-utilities-tuw@PyPI": "https://pypi.python.org/pypi/invenio-utilities-tuw/",
+    },
 }
 
 # The theme to use for HTML and HTML Help pages.  See the documentation for
@@ -134,146 +137,148 @@ html_theme_options = {
 # Theme options are theme-specific and customize the look and feel of a theme
 # further.  For a list of options available for each theme, see the
 # documentation.
-#html_theme_options = {}
+# html_theme_options = {}
 
 # Add any paths that contain custom themes here, relative to this directory.
-#html_theme_path = []
+# html_theme_path = []
 
 # The name for this set of Sphinx documents.  If None, it defaults to
 # "<project> v<release> documentation".
-#html_title = None
+# html_title = None
 
 # A shorter title for the navigation bar.  Default is the same as html_title.
-#html_short_title = None
+# html_short_title = None
 
 # The name of an image file (relative to this directory) to place at the top
 # of the sidebar.
-#html_logo = None
+# html_logo = None
 
 # The name of an image file (within the static path) to use as favicon of the
 # docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
 # pixels large.
-#html_favicon = None
+# html_favicon = None
 
 # Add any paths that contain custom static files (such as style sheets) here,
 # relative to this directory. They are copied after the builtin static files,
 # so a file named "default.css" will overwrite the builtin "default.css".
-#html_static_path = ['_static']
+# html_static_path = ['_static']
 
 # Add any extra paths that contain custom files (such as robots.txt or
 # .htaccess) here, relative to this directory. These files are copied
 # directly to the root of the documentation.
-#html_extra_path = []
+# html_extra_path = []
 
 # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
 # using the given strftime format.
-#html_last_updated_fmt = '%b %d, %Y'
+# html_last_updated_fmt = '%b %d, %Y'
 
 # If true, SmartyPants will be used to convert quotes and dashes to
 # typographically correct entities.
-#html_use_smartypants = True
+# html_use_smartypants = True
 
 # Custom sidebar templates, maps document names to template names.
 html_sidebars = {
-    '**': [
-        'about.html',
-        'navigation.html',
-        'relations.html',
-        'searchbox.html',
-        'donate.html',
+    "**": [
+        "about.html",
+        "navigation.html",
+        "relations.html",
+        "searchbox.html",
+        "donate.html",
     ]
 }
 
 # Additional templates that should be rendered to pages, maps page names to
 # template names.
-#html_additional_pages = {}
+# html_additional_pages = {}
 
 # If false, no module index is generated.
-#html_domain_indices = True
+# html_domain_indices = True
 
 # If false, no index is generated.
-#html_use_index = True
+# html_use_index = True
 
 # If true, the index is split into individual pages for each letter.
-#html_split_index = False
+# html_split_index = False
 
 # If true, links to the reST sources are added to the pages.
-#html_show_sourcelink = True
+# html_show_sourcelink = True
 
 # If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
-#html_show_sphinx = True
+# html_show_sphinx = True
 
 # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
-#html_show_copyright = True
+# html_show_copyright = True
 
 # If true, an OpenSearch description file will be output, and all pages will
 # contain a <link> tag referring to it.  The value of this option must be the
 # base URL from which the finished HTML is served.
-#html_use_opensearch = ''
+# html_use_opensearch = ''
 
 # This is the file name suffix for HTML files (e.g. ".xhtml").
-#html_file_suffix = None
+# html_file_suffix = None
 
 # Language to be used for generating the HTML full-text search index.
 # Sphinx supports the following languages:
 #   'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja'
 #   'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr'
-#html_search_language = 'en'
+# html_search_language = 'en'
 
 # A dictionary with options for the search language support, empty by default.
 # Now only 'ja' uses this config value
-#html_search_options = {'type': 'default'}
+# html_search_options = {'type': 'default'}
 
 # The name of a javascript file (relative to the configuration directory) that
 # implements a search results scorer. If empty, the default will be used.
-#html_search_scorer = 'scorer.js'
+# html_search_scorer = 'scorer.js'
 
 # Output file base name for HTML help builder.
-htmlhelp_basename = 'invenio-utilities-tuw_namedoc'
+htmlhelp_basename = "invenio-utilities-tuw_namedoc"
 
 # -- Options for LaTeX output ---------------------------------------------
 
 latex_elements = {
-# The paper size ('letterpaper' or 'a4paper').
-#'papersize': 'letterpaper',
-
-# The font size ('10pt', '11pt' or '12pt').
-#'pointsize': '10pt',
-
-# Additional stuff for the LaTeX preamble.
-#'preamble': '',
-
-# Latex figure (float) alignment
-#'figure_align': 'htbp',
+    # The paper size ('letterpaper' or 'a4paper').
+    #'papersize': 'letterpaper',
+    # The font size ('10pt', '11pt' or '12pt').
+    #'pointsize': '10pt',
+    # Additional stuff for the LaTeX preamble.
+    #'preamble': '',
+    # Latex figure (float) alignment
+    #'figure_align': 'htbp',
 }
 
 # Grouping the document tree into LaTeX files. List of tuples
 # (source start file, target name, title,
 #  author, documentclass [howto, manual, or own class]).
 latex_documents = [
-    (master_doc, 'invenio-utilities-tuw.tex', u'invenio-utilities-tuw Documentation',
-     u'TU Wien', 'manual'),
+    (
+        master_doc,
+        "invenio-utilities-tuw.tex",
+        u"invenio-utilities-tuw Documentation",
+        u"TU Wien",
+        "manual",
+    ),
 ]
 
 # The name of an image file (relative to this directory) to place at the top of
 # the title page.
-#latex_logo = None
+# latex_logo = None
 
 # For "manual" documents, if this is true, then toplevel headings are parts,
 # not chapters.
-#latex_use_parts = False
+# latex_use_parts = False
 
 # If true, show page references after internal links.
-#latex_show_pagerefs = False
+# latex_show_pagerefs = False
 
 # If true, show URL addresses after external links.
-#latex_show_urls = False
+# latex_show_urls = False
 
 # Documents to append as an appendix to all manuals.
-#latex_appendices = []
+# latex_appendices = []
 
 # If false, no module index is generated.
-#latex_domain_indices = True
+# latex_domain_indices = True
 
 
 # -- Options for manual page output ---------------------------------------
@@ -281,12 +286,17 @@ latex_documents = [
 # One entry per manual page. List of tuples
 # (source start file, name, description, authors, manual section).
 man_pages = [
-    (master_doc, 'invenio-utilities-tuw', u'invenio-utilities-tuw Documentation',
-     [author], 1)
+    (
+        master_doc,
+        "invenio-utilities-tuw",
+        u"invenio-utilities-tuw Documentation",
+        [author],
+        1,
+    )
 ]
 
 # If true, show URL addresses after external links.
-#man_show_urls = False
+# man_show_urls = False
 
 
 # -- Options for Texinfo output -------------------------------------------
@@ -295,30 +305,36 @@ man_pages = [
 # (source start file, target name, title, author,
 #  dir menu entry, description, category)
 texinfo_documents = [
-    (master_doc, 'invenio-utilities-tuw', u'Invenio-Utilities-TUW Documentation',
-     author, 'invenio-utilities-tuw', 'Some utilities for InvenioRDM.',
-     'Miscellaneous'),
+    (
+        master_doc,
+        "invenio-utilities-tuw",
+        u"Invenio-Utilities-TUW Documentation",
+        author,
+        "invenio-utilities-tuw",
+        "Some utilities for InvenioRDM.",
+        "Miscellaneous",
+    ),
 ]
 
 # Documents to append as an appendix to all manuals.
-#texinfo_appendices = []
+# texinfo_appendices = []
 
 # If false, no module index is generated.
-#texinfo_domain_indices = True
+# texinfo_domain_indices = True
 
 # How to display URL addresses: 'footnote', 'no', or 'inline'.
-#texinfo_show_urls = 'footnote'
+# texinfo_show_urls = 'footnote'
 
 # If true, do not generate a @detailmenu in the "Top" node's menu.
-#texinfo_no_detailmenu = False
+# texinfo_no_detailmenu = False
 
 
 # Example configuration for intersphinx: refer to the Python standard library.
 intersphinx_mapping = {
-    'python': ('https://docs.python.org/', None),
+    "python": ("https://docs.python.org/", None),
     # TODO: Configure external documentation references, eg:
     # 'Flask-Admin': ('https://flask-admin.readthedocs.io/en/latest/', None),
 }
 
 # Autodoc configuraton.
-autoclass_content = 'both'
+autoclass_content = "both"
diff --git a/setup.py b/setup.py
index ad3b24b..48aed7b 100644
--- a/setup.py
+++ b/setup.py
@@ -12,35 +12,35 @@ import os
 
 from setuptools import find_packages, setup
 
-readme = open('README.rst').read()
-history = open('CHANGES.rst').read()
+readme = open("README.rst").read()
+history = open("CHANGES.rst").read()
 
 tests_require = [
-    'pytest-invenio>=1.4.0',
+    "pytest-invenio>=1.4.0",
 ]
 
 extras_require = {
-    'docs': [
-        'Sphinx>=3,<4',
+    "docs": [
+        "Sphinx>=3,<4",
     ],
-    'tests': tests_require,
+    "tests": tests_require,
 }
 
-extras_require['all'] = []
+extras_require["all"] = []
 for reqs in extras_require.values():
-    extras_require['all'].extend(reqs)
+    extras_require["all"].extend(reqs)
 
 setup_requires = [
-    'Babel>=2.8',
+    "Babel>=2.8",
 ]
 
 install_requires = [
-    'invenio-i18n>=1.2.0',
-    'invenio-access>=1.4.1',
-    'invenio-accounts>=1.3.1',
-    'invenio-rdm-records>=0.24',
-    'sqlalchemy-continuum>=1.3.11',
-    'invenio-search[elasticsearch7]>=1.4.0',
+    "invenio-i18n>=1.2.0",
+    "invenio-access>=1.4.1",
+    "invenio-accounts>=1.3.1",
+    "invenio-rdm-records>=0.24",
+    "sqlalchemy-continuum>=1.3.11",
+    "invenio-search[elasticsearch7]>=1.4.0",
 ]
 
 packages = find_packages()
@@ -48,36 +48,34 @@ packages = find_packages()
 
 # Get the version string. Cannot be done with import!
 g = {}
-with open(os.path.join('invenio_utilities_tuw', 'version.py'), 'rt') as fp:
+with open(os.path.join("invenio_utilities_tuw", "version.py"), "rt") as fp:
     exec(fp.read(), g)
-    version = g['__version__']
+    version = g["__version__"]
 
 setup(
-    name='invenio-utilities-tuw',
+    name="invenio-utilities-tuw",
     version=version,
     description=__doc__,
-    long_description=readme + '\n\n' + history,
-    keywords='invenio utilities tu wien',
-    license='MIT',
-    author='TU Wien',
-    author_email='maximilian.moser@tuwien.ac.at',
-    url='https://github.com/inveniosoftware/invenio-utilities-tuw',
+    long_description=readme + "\n\n" + history,
+    keywords="invenio utilities tu wien",
+    license="MIT",
+    author="TU Wien",
+    author_email="maximilian.moser@tuwien.ac.at",
+    url="https://github.com/inveniosoftware/invenio-utilities-tuw",
     packages=packages,
     zip_safe=False,
     include_package_data=True,
-    platforms='any',
+    platforms="any",
     entry_points={
-        'flask.commands': [
-            'tuw = invenio_utilities_tuw.cli:utilities'
+        "flask.commands": ["tuw = invenio_utilities_tuw.cli:utilities"],
+        "invenio_base.apps": [
+            "invenio_utilities_tuw = invenio_utilities_tuw:InvenioUtilitiesTUW",
         ],
-        'invenio_base.apps': [
-            'invenio_utilities_tuw = invenio_utilities_tuw:InvenioUtilitiesTUW',
+        "invenio_base.blueprints": [
+            "invenio_utilities_tuw = invenio_utilities_tuw.views:blueprint",
         ],
-        'invenio_base.blueprints': [
-            'invenio_utilities_tuw = invenio_utilities_tuw.views:blueprint',
-        ],
-        'invenio_i18n.translations': [
-            'messages = invenio_utilities_tuw',
+        "invenio_i18n.translations": [
+            "messages = invenio_utilities_tuw",
         ],
     },
     extras_require=extras_require,
@@ -85,18 +83,18 @@ setup(
     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',
-        'Programming Language :: Python :: 3.9',
-        'Development Status :: 1 - Planning',
+        "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",
+        "Programming Language :: Python :: 3.9",
+        "Development Status :: 1 - Planning",
     ],
 )
diff --git a/tests/conftest.py b/tests/conftest.py
index 8533222..dbccb04 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -23,7 +23,7 @@ from invenio_utilities_tuw import InvenioUtilitiesTUW
 from invenio_utilities_tuw.views import blueprint
 
 
-@pytest.fixture(scope='module')
+@pytest.fixture(scope="module")
 def celery_config():
     """Override pytest-invenio fixture.
 
@@ -32,14 +32,16 @@ def celery_config():
     return {}
 
 
-@pytest.fixture(scope='module')
+@pytest.fixture(scope="module")
 def create_app(instance_path):
     """Application factory fixture."""
+
     def factory(**config):
-        app = Flask('testapp', instance_path=instance_path)
+        app = Flask("testapp", instance_path=instance_path)
         app.config.update(**config)
         Babel(app)
         InvenioUtilitiesTUW(app)
         app.register_blueprint(blueprint)
         return app
+
     return factory
diff --git a/tests/test_invenio_utilities_tuw.py b/tests/test_invenio_utilities_tuw.py
index 9536913..a3d3dba 100644
--- a/tests/test_invenio_utilities_tuw.py
+++ b/tests/test_invenio_utilities_tuw.py
@@ -16,17 +16,18 @@ from invenio_utilities_tuw import InvenioUtilitiesTUW
 def test_version():
     """Test version import."""
     from invenio_utilities_tuw import __version__
+
     assert __version__
 
 
 def test_init():
     """Test extension initialization."""
-    app = Flask('testapp')
+    app = Flask("testapp")
     ext = InvenioUtilitiesTUW(app)
-    assert 'invenio-utilities-tuw' in app.extensions
+    assert "invenio-utilities-tuw" in app.extensions
 
-    app = Flask('testapp')
+    app = Flask("testapp")
     ext = InvenioUtilitiesTUW()
-    assert 'invenio-utilities-tuw' not in app.extensions
+    assert "invenio-utilities-tuw" not in app.extensions
     ext.init_app(app)
-    assert 'invenio-utilities-tuw' in app.extensions
+    assert "invenio-utilities-tuw" in app.extensions
-- 
GitLab