Browse Source

format code with black

Fabian Peter Hammerle 2 years ago
parent
commit
ef00c8cd67
10 changed files with 122 additions and 67 deletions
  1. 18 0
      .github/workflows/python.yml
  2. 1 0
      Pipfile
  3. 30 1
      Pipfile.lock
  4. 2 0
      README.rst
  5. 5 5
      pubmed_bibtex/__init__.py
  6. 8 7
      pubmed_bibtex/__main__.py
  7. 36 38
      setup.py
  8. 1 1
      tests/conftest.py
  9. 20 14
      tests/test_main.py
  10. 1 1
      tests/test_version.py

+ 18 - 0
.github/workflows/python.yml

@@ -13,6 +13,24 @@ on:
   - cron: '0 20 * * 5'
 
 jobs:
+  code-format:
+    runs-on: ubuntu-20.04
+    strategy:
+      matrix:
+        python-verison: ['3.9']
+    steps:
+    - uses: actions/checkout@v2.4.0
+    - uses: actions/setup-python@v2.3.1
+      with:
+        python-version: ${{ matrix.python-version }}
+        # did not reduce runtime of `pipenv install` (still approx. 1 min)
+        #cache: pipenv
+    - run: pip install --upgrade pipenv==2020.8.13
+    - run: pipenv install --python "$PYTHON_VERSION" --deploy --dev
+      env:
+        PYTHON_VERSION: ${{ matrix.python-version }}
+    - run: pipenv graph
+    - run: pipenv run black --check .
   tests:
     runs-on: ubuntu-20.04
     strategy:

+ 1 - 0
Pipfile

@@ -7,6 +7,7 @@ name = "pypi"
 pubmed-bibtex = {editable = true, path = "."}
 
 [dev-packages]
+black = "==21.12b0"
 pylint = "*"
 pytest = "*"
 pytest-cov = "*"

+ 30 - 1
Pipfile.lock

@@ -1,7 +1,7 @@
 {
     "_meta": {
         "hash": {
-            "sha256": "a39c75095a6a8ac1ed524368ea72c95b6c2e07d74fcadf6378b38673ed39fffc"
+            "sha256": "f0943efdde478fec1e14549ab744c51ece9b41f685d35e64256aa413345f95ed"
         },
         "pipfile-spec": 6,
         "requires": {
@@ -73,6 +73,21 @@
             ],
             "version": "==21.4.0"
         },
+        "black": {
+            "hashes": [
+                "sha256:77b80f693a569e2e527958459634f18df9b0ba2625ba4e0c2d5da5be42e6f2b3",
+                "sha256:a615e69ae185e08fdd73e4715e260e2479c861b5740057fde6e8b4e3b7dd589f"
+            ],
+            "index": "pypi",
+            "version": "==21.12b0"
+        },
+        "click": {
+            "hashes": [
+                "sha256:353f466495adaeb40b6b5f592f9f91cb22372351c84caeb068132442a4518ef3",
+                "sha256:410e932b050f5eed773c4cda94de75971c89cdb3155a72a0831139a79e5ecb5b"
+            ],
+            "version": "==8.0.3"
+        },
         "coverage": {
             "hashes": [
                 "sha256:01774a2c2c729619760320270e42cd9e797427ecfddd32c2a7b639cdc481f3c0",
@@ -196,6 +211,13 @@
             ],
             "version": "==0.6.1"
         },
+        "mypy-extensions": {
+            "hashes": [
+                "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d",
+                "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"
+            ],
+            "version": "==0.4.3"
+        },
         "packaging": {
             "hashes": [
                 "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb",
@@ -203,6 +225,13 @@
             ],
             "version": "==21.3"
         },
+        "pathspec": {
+            "hashes": [
+                "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a",
+                "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"
+            ],
+            "version": "==0.9.0"
+        },
         "platformdirs": {
             "hashes": [
                 "sha256:367a5e80b3d04d2428ffa76d33f124cf11e8fff2acdaa9b43d545f5c7d661ef2",

+ 2 - 0
README.rst

@@ -1,6 +1,8 @@
 pubmed-bibtex
 =============
 
+.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
+    :target: https://github.com/psf/black
 .. image:: https://github.com/fphammerle/pubmed-bibtex/workflows/tests/badge.svg
     :target: https://github.com/fphammerle/pubmed-bibtex/actions
 .. image:: https://coveralls.io/repos/github/fphammerle/pubmed-bibtex/badge.svg?branch=master

+ 5 - 5
pubmed_bibtex/__init__.py

@@ -44,22 +44,22 @@ import requests
 
 from pubmed_bibtex.version import __version__
 
-_TEXMED_URL_PATTERN = 'https://www.bioinformatics.org/texmed/cgi-bin' \
-                      '/list.cgi?PMID={pmid}&linkOut'
+_TEXMED_URL_PATTERN = (
+    "https://www.bioinformatics.org/texmed/cgi-bin/list.cgi?PMID={pmid}&linkOut"
+)
 
 
 class _TeXMedHtmlParser(html.parser.HTMLParser):
-
     def __init__(self):
         self.bibtex_entry: typing.Optional[str] = None
         super().__init__()
 
     @staticmethod
     def _strip_bibtex_entry(data: str) -> str:
-        return re.sub(r'\n\% \d+\s?\n', '', data).strip() + '\n'
+        return re.sub(r"\n\% \d+\s?\n", "", data).strip() + "\n"
 
     def handle_data(self, data: str) -> None:
-        if 'Author' in data:
+        if "Author" in data:
             self.bibtex_entry = self._strip_bibtex_entry(data)
 
     def error(self, message) -> None:

+ 8 - 7
pubmed_bibtex/__main__.py

@@ -26,14 +26,15 @@ __version__ = pubmed_bibtex.__version__
 def main():
     argparser = argparse.ArgumentParser(
         description=pubmed_bibtex.__doc__.strip(),
-        formatter_class=argparse.RawDescriptionHelpFormatter)
-    argparser.add_argument('--version', action='version',
-                           version=pubmed_bibtex.__version__)
-    argparser.add_argument('pmid')
+        formatter_class=argparse.RawDescriptionHelpFormatter,
+    )
+    argparser.add_argument(
+        "--version", action="version", version=pubmed_bibtex.__version__
+    )
+    argparser.add_argument("pmid")
     args = argparser.parse_args()
-    print(pubmed_bibtex.bibtex_entry_from_pmid(pmid=args.pmid),
-          end='')
+    print(pubmed_bibtex.bibtex_entry_from_pmid(pmid=args.pmid), end="")
 
 
-if __name__ == '__main__':
+if __name__ == "__main__":
     main()

+ 36 - 38
setup.py

@@ -2,64 +2,62 @@ import os
 
 import setuptools
 
-with open('README.rst', 'r') as readme:
+with open("README.rst", "r") as readme:
     LONG_DESCRIPTION = readme.read()
 
 setuptools.setup(
-    name='pubmed-bibtex',
+    name="pubmed-bibtex",
     use_scm_version={
-        'write_to': os.path.join('pubmed_bibtex', 'version.py'),
+        "write_to": os.path.join("pubmed_bibtex", "version.py"),
         # `version` triggers pylint C0103
-        'write_to_template': "__version__ = '{version}'\n",
+        "write_to_template": "__version__ = '{version}'\n",
     },
-    description='Generate BibTeX Entries for PubMed Publications',
+    description="Generate BibTeX Entries for PubMed Publications",
     long_description=LONG_DESCRIPTION,
-    author='Fabian Peter Hammerle',
-    author_email='fabian@hammerle.me',
-    url='https://github.com/fphammerle/pubmed-bibtex',
-    license='GPLv3+',
+    author="Fabian Peter Hammerle",
+    author_email="fabian@hammerle.me",
+    url="https://github.com/fphammerle/pubmed-bibtex",
+    license="GPLv3+",
     keywords=[
-        'article',
-        'bibtex',
-        'citation',
-        'journal',
-        'latex',
-        'publication',
-        'pubmed',
-        'reference',
-        'research',
-        'tex',
-        'texmed',
+        "article",
+        "bibtex",
+        "citation",
+        "journal",
+        "latex",
+        "publication",
+        "pubmed",
+        "reference",
+        "research",
+        "tex",
+        "texmed",
     ],
     classifiers=[
-        'Development Status :: 4 - Beta',
-        'Intended Audience :: Healthcare Industry',
-        'Intended Audience :: Science/Research',
-        'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)',
+        "Development Status :: 4 - Beta",
+        "Intended Audience :: Healthcare Industry",
+        "Intended Audience :: Science/Research",
+        "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
         # .github/workflows/python.yml
-        'Programming Language :: Python :: 3.6',
-        'Programming Language :: Python :: 3.7',
-        'Programming Language :: Python :: 3.8',
-        'Topic :: Scientific/Engineering :: Medical Science Apps.',
-        'Topic :: Utilities',
+        "Programming Language :: Python :: 3.6",
+        "Programming Language :: Python :: 3.7",
+        "Programming Language :: Python :: 3.8",
+        "Topic :: Scientific/Engineering :: Medical Science Apps.",
+        "Topic :: Utilities",
     ],
     packages=setuptools.find_packages(),
     entry_points={
-        'console_scripts': [
-            'pubmed-bibtex = pubmed_bibtex.__main__:main',
+        "console_scripts": [
+            "pubmed-bibtex = pubmed_bibtex.__main__:main",
         ],
     },
     # >=3.6 for variable type hints
     python_requires=">=3.6",
     install_requires=[
-        'requests>=2,<3',
-    ],
-    setup_requires=[
-        'setuptools_scm',
+        "requests>=2,<3",
     ],
+    setup_requires=["setuptools_scm"],
     tests_require=[
-        'pylint>=2.3.0,<3',
-        'pytest<5',
-        'pytest-cov<3,>=2',
+        "pylint>=2.3.0,<3",
+        "pytest<5",
+        "pytest-cov<3,>=2",
     ],
 )

+ 1 - 1
tests/conftest.py

@@ -1,4 +1,4 @@
-TEST_PMID = '31025164'
+TEST_PMID = "31025164"
 
 # PMID invalid (expecting 31025164)
 TEST_BIBTEX_ENTRY = r"""@Article{pmid31025164,

+ 20 - 14
tests/test_main.py

@@ -9,7 +9,7 @@ from conftest import TEST_PMID, TEST_BIBTEX_ENTRY
 
 
 def test_main(capsys):
-    with unittest.mock.patch('sys.argv', ['', TEST_PMID]):
+    with unittest.mock.patch("sys.argv", ["", TEST_PMID]):
         main()
     out, err = capsys.readouterr()
     assert not err
@@ -17,27 +17,33 @@ def test_main(capsys):
 
 
 def test_script_module():
-    proc_info = subprocess.run(['python', '-m', 'pubmed_bibtex', TEST_PMID],
-                               check=True,
-                               stdout=subprocess.PIPE,
-                               stderr=subprocess.PIPE)
+    proc_info = subprocess.run(
+        ["python", "-m", "pubmed_bibtex", TEST_PMID],
+        check=True,
+        stdout=subprocess.PIPE,
+        stderr=subprocess.PIPE,
+    )
     assert not proc_info.stderr
     assert proc_info.stdout == TEST_BIBTEX_ENTRY.encode()
 
 
 def test_script():
-    proc_info = subprocess.run(['pubmed-bibtex', TEST_PMID],
-                               check=True,
-                               stdout=subprocess.PIPE,
-                               stderr=subprocess.PIPE)
+    proc_info = subprocess.run(
+        ["pubmed-bibtex", TEST_PMID],
+        check=True,
+        stdout=subprocess.PIPE,
+        stderr=subprocess.PIPE,
+    )
     assert not proc_info.stderr
     assert proc_info.stdout == TEST_BIBTEX_ENTRY.encode()
 
 
 def test_version():
-    proc_info = subprocess.run(['pubmed-bibtex', '--version'],
-                               check=True,
-                               stdout=subprocess.PIPE,
-                               stderr=subprocess.PIPE)
+    proc_info = subprocess.run(
+        ["pubmed-bibtex", "--version"],
+        check=True,
+        stdout=subprocess.PIPE,
+        stderr=subprocess.PIPE,
+    )
     assert not proc_info.stderr
-    assert proc_info.stdout == pubmed_bibtex.__version__.encode() + b'\n'
+    assert proc_info.stdout == pubmed_bibtex.__version__.encode() + b"\n"

+ 1 - 1
tests/test_version.py

@@ -4,4 +4,4 @@ import pubmed_bibtex
 
 
 def test_version():
-    assert re.match(r'^\d+\.\d+\.', pubmed_bibtex.__version__)
+    assert re.match(r"^\d+\.\d+\.", pubmed_bibtex.__version__)