1import io 2import os 3import re 4import sys 5from setuptools import setup, find_packages 6 7 8REQUIRES_PYTHON = ">=3.7.0" 9 10# Use repository Markdown README.md for PyPI long description 11try: 12 with io.open("README.md", encoding="utf-8") as f: 13 readme = f.read() 14except IOError as readme_e: 15 sys.stderr.write( 16 "[ERROR] setup.py: Failed to read the README.md file for the long description definition: {}".format( 17 str(readme_e) 18 ) 19 ) 20 raise readme_e 21 22 23def version_read(): 24 settings_file = open( 25 os.path.join(os.path.dirname(__file__), "lib", "fontv", "settings.py") 26 ).read() 27 major_regex = r"""major_version\s*?=\s*?["']{1}(\d+)["']{1}""" 28 minor_regex = r"""minor_version\s*?=\s*?["']{1}(\d+)["']{1}""" 29 patch_regex = r"""patch_version\s*?=\s*?["']{1}(\d+)["']{1}""" 30 major_match = re.search(major_regex, settings_file) 31 minor_match = re.search(minor_regex, settings_file) 32 patch_match = re.search(patch_regex, settings_file) 33 major_version = major_match.group(1) 34 minor_version = minor_match.group(1) 35 patch_version = patch_match.group(1) 36 if len(major_version) == 0: 37 major_version = 0 38 if len(minor_version) == 0: 39 minor_version = 0 40 if len(patch_version) == 0: 41 patch_version = 0 42 return major_version + "." + minor_version + "." + patch_version 43 44 45setup( 46 name="font-v", 47 version=version_read(), 48 description="Font version reporting and modification tool", 49 long_description=readme, 50 long_description_content_type="text/markdown", 51 url="https://github.com/source-foundry/font-v", 52 license="MIT license", 53 author="Christopher Simpkins", 54 author_email="chris@sourcefoundry.org", 55 platforms=["any"], 56 packages=find_packages("lib"), 57 package_dir={"": "lib"}, 58 python_requires=REQUIRES_PYTHON, 59 install_requires=["gitpython", "fonttools"], 60 entry_points={ 61 "console_scripts": ["font-v = fontv.app:main"], 62 }, 63 keywords="", 64 include_package_data=True, 65 classifiers=[ 66 "Development Status :: 5 - Production/Stable", 67 "Natural Language :: English", 68 "License :: OSI Approved :: MIT License", 69 "Operating System :: OS Independent", 70 "Programming Language :: Python", 71 "Programming Language :: Python :: 3", 72 "Programming Language :: Python :: 3.7", 73 "Programming Language :: Python :: 3.8", 74 "Programming Language :: Python :: 3.9", 75 "Programming Language :: Python :: 3.10", 76 ], 77) 78