From 4ee1a5f487218be1bc46c2411982d08410ce189e Mon Sep 17 00:00:00 2001 From: Swen Kooij Date: Sat, 19 Oct 2019 12:40:43 +0300 Subject: [PATCH] Set up setup.py commands for auto formatting and linting --- setup.py | 104 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 85 insertions(+), 19 deletions(-) diff --git a/setup.py b/setup.py index b830c3d..60c9df1 100644 --- a/setup.py +++ b/setup.py @@ -1,5 +1,5 @@ -import os import distutils.cmd +import os import subprocess from setuptools import find_packages, setup @@ -28,9 +28,12 @@ def create_command(text, commands): return CustomCommand -with open(os.path.join(os.path.dirname(__file__), 'README.rst'), encoding='utf-8') as readme: +with open( + os.path.join(os.path.dirname(__file__), "README.rst"), encoding="utf-8" +) as readme: README = readme.read() + setup( name='django-localized-fields', version='6.0b1', @@ -43,26 +46,89 @@ setup( author='Sector Labs', author_email='open-source@sectorlabs.ro', keywords=['django', 'localized', 'language', 'models', 'fields'], - install_requires=[ - 'django-postgres-extra>=2.0a7', - 'Django>=2.0', - 'deprecation==2.0.7' - ], classifiers=[ - 'Environment :: Web Environment', - 'Framework :: Django', - 'Intended Audience :: Developers', - 'License :: OSI Approved :: MIT License', - 'Operating System :: OS Independent', - 'Programming Language :: Python', - 'Programming Language :: Python :: 3.5', - 'Topic :: Internet :: WWW/HTTP', - 'Topic :: Internet :: WWW/HTTP :: Dynamic Content', + "Environment :: Web Environment", + "Framework :: Django", + "Intended Audience :: Developers", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + "Programming Language :: Python", + "Programming Language :: Python :: 3.5", + "Topic :: Internet :: WWW/HTTP", + "Topic :: Internet :: WWW/HTTP :: Dynamic Content", ], cmdclass={ - 'lint': create_command( - 'Lints the code', - [['flake8', 'setup.py', 'localized_fields', 'tests']], + "lint": create_command( + "Lints the code", + [ + ["flake8", "setup.py", "localized_fields", "tests"], + ["pycodestyle", "setup.py", "localized_fields", "tests"], + ], + ), + "lint_fix": create_command( + "Lints the code", + [ + [ + "autoflake", + "--remove-all-unused-imports", + "-i", + "-r", + "setup.py", + "localized_fields", + "tests", + ], + ["autopep8", "-i", "-r", "setup.py", "localized_fields", "tests"], + ], + ), + "format": create_command( + "Formats the code", [["black", "setup.py", "localized_fields", "tests"]] + ), + "format_verify": create_command( + "Checks if the code is auto-formatted", + [["black", "--check", "setup.py", "localized_fields", "tests"]], + ), + "format_docstrings": create_command( + "Auto-formats doc strings", [["docformatter", "-r", "-i", "."]] + ), + "format_docstrings_verify": create_command( + "Verifies that doc strings are properly formatted", + [["docformatter", "-r", "-c", "."]], + ), + "sort_imports": create_command( + "Automatically sorts imports", + [ + ["isort", "setup.py"], + ["isort", "-rc", "localized_fields"], + ["isort", "-rc", "tests"], + ], + ), + "sort_imports_verify": create_command( + "Verifies all imports are properly sorted.", + [ + ["isort", "-c", "setup.py"], + ["isort", "-c", "-rc", "localized_fields"], + ["isort", "-c", "-rc", "tests"], + ], + ), + "fix": create_command( + "Automatically format code and fix linting errors", + [ + ["python", "setup.py", "format"], + ["python", "setup.py", "format_docstrings"], + ["python", "setup.py", "sort_imports"], + ["python", "setup.py", "lint_fix"], + ], + ), + "verify": create_command( + "Verifies whether the code is auto-formatted and has no linting errors", + [ + [ + ["python", "setup.py", "format_verify"], + ["python", "setup.py", "format_docstrings_verify"], + ["python", "setup.py", "sort_imports_verify"], + ["python", "setup.py", "lint"], + ] + ], ), }, )