import os import sys from setuptools import setup from setuptools.command.test import test as TestCommand cwd = os.path.realpath(os.path.dirname(__file__)) class PyTest(TestCommand): user_options = [("pytest-args=", "a", "Arguments to pass into py.test")] def initialize_options(self): TestCommand.initialize_options(self) self.pytest_args = "" def run_tests(self): import shlex import pytest errno = pytest.main(shlex.split(self.pytest_args)) sys.exit(errno) # "setup.py publish" shortcut. if sys.argv[-1] == "publish": os.system("python setup.py sdist bdist_wheel") os.system("twine upload dist/*") sys.exit() if sys.argv[-1] == "check": os.system("python setup.py sdist bdist_wheel") os.system("twine check dist/*") sys.exit() packages = ["symspellpy"] requires = [ "numpy>=1.13.1" ] test_requirements = [ 'pytest-cov', 'pytest>=3.7.1' ] about = {} with open(os.path.join(cwd, "symspellpy", "__version__.py"), "r", encoding="utf-8") as infile: exec(infile.read(), about) with open(os.path.join(cwd, "README.md"), "r", encoding="utf-8") as infile: readme = infile.read() with open(os.path.join(cwd, "CHANGELOG.md"), "r", encoding="utf-8") as infile: changelog = infile.read() setup( name=about["__title__"], version=about["__version__"], description=about["__description__"], long_description=readme + "\n\n" + changelog, long_description_content_type="text/markdown", author=about["__author__"], author_email=about["__author_email__"], url=about["__url__"], packages=packages, package_data={"symspellpy": ["frequency_dictionary_en_82_765.txt", "frequency_bigramdictionary_en_243_342.txt"]}, package_dir={"symspellpy": "symspellpy"}, include_package_data=True, python_requires=">=3.4", install_requires=requires, license=about["__license__"], zip_safe=False, classifiers=[ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Natural Language :: English", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], cmdclass={"test": PyTest}, tests_require=test_requirements, )