From 3018baf1db450aca1919e186788bcdebacd90946 Mon Sep 17 00:00:00 2001 From: Elijas <4084885+Elijas@users.noreply.github.com> Date: Thu, 12 Oct 2023 06:18:54 +0300 Subject: [PATCH] chore: add 3.12 support --- sec_downloader/__init__.py | 2 +- settings.ini | 2 +- setup.py | 120 +++++++++++++++++++++++-------------- 3 files changed, 76 insertions(+), 48 deletions(-) diff --git a/sec_downloader/__init__.py b/sec_downloader/__init__.py index 0e728ce..fc79d80 100644 --- a/sec_downloader/__init__.py +++ b/sec_downloader/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.1.1" +__version__ = "0.1.2" from sec_downloader.core import DownloadStorage, FileContent __all__ = ["DownloadStorage", "FileContent"] diff --git a/settings.ini b/settings.ini index 8603c56..5fab0c5 100644 --- a/settings.ini +++ b/settings.ini @@ -1,7 +1,7 @@ [DEFAULT] repo = sec-downloader lib_name = sec-downloader -version = 0.1.1 +version = 0.1.2 min_python = 3.7 license = mit black_formatting = False diff --git a/setup.py b/setup.py index e3281ae..470837c 100644 --- a/setup.py +++ b/setup.py @@ -1,57 +1,85 @@ -from pkg_resources import parse_version +import shlex from configparser import ConfigParser -import setuptools, shlex -assert parse_version(setuptools.__version__)>=parse_version('36.2') + +import setuptools +from pkg_resources import parse_version + +assert parse_version(setuptools.__version__) >= parse_version("36.2") # note: all settings are in settings.ini; edit there, not here -config = ConfigParser(delimiters=['=']) -config.read('settings.ini', encoding='utf-8') -cfg = config['DEFAULT'] +config = ConfigParser(delimiters=["="]) +config.read("settings.ini", encoding="utf-8") +cfg = config["DEFAULT"] -cfg_keys = 'version description keywords author author_email'.split() -expected = cfg_keys + "lib_name user branch license status min_python audience language".split() -for o in expected: assert o in cfg, "missing expected setting: {}".format(o) -setup_cfg = {o:cfg[o] for o in cfg_keys} +cfg_keys = "version description keywords author author_email".split() +expected = ( + cfg_keys + + "lib_name user branch license status min_python audience language".split() +) +for o in expected: + assert o in cfg, "missing expected setting: {}".format(o) +setup_cfg = {o: cfg[o] for o in cfg_keys} licenses = { - 'apache2': ('Apache Software License 2.0','OSI Approved :: Apache Software License'), - 'mit': ('MIT License', 'OSI Approved :: MIT License'), - 'gpl2': ('GNU General Public License v2', 'OSI Approved :: GNU General Public License v2 (GPLv2)'), - 'gpl3': ('GNU General Public License v3', 'OSI Approved :: GNU General Public License v3 (GPLv3)'), - 'bsd3': ('BSD License', 'OSI Approved :: BSD License'), + "apache2": ( + "Apache Software License 2.0", + "OSI Approved :: Apache Software License", + ), + "mit": ("MIT License", "OSI Approved :: MIT License"), + "gpl2": ( + "GNU General Public License v2", + "OSI Approved :: GNU General Public License v2 (GPLv2)", + ), + "gpl3": ( + "GNU General Public License v3", + "OSI Approved :: GNU General Public License v3 (GPLv3)", + ), + "bsd3": ("BSD License", "OSI Approved :: BSD License"), } -statuses = [ '1 - Planning', '2 - Pre-Alpha', '3 - Alpha', - '4 - Beta', '5 - Production/Stable', '6 - Mature', '7 - Inactive' ] -py_versions = '3.6 3.7 3.8 3.9 3.10'.split() +statuses = [ + "1 - Planning", + "2 - Pre-Alpha", + "3 - Alpha", + "4 - Beta", + "5 - Production/Stable", + "6 - Mature", + "7 - Inactive", +] +py_versions = "3.6 3.7 3.8 3.9 3.10 3.11 3.12".split() -requirements = shlex.split(cfg.get('requirements', '')) -if cfg.get('pip_requirements'): requirements += shlex.split(cfg.get('pip_requirements', '')) -min_python = cfg['min_python'] -lic = licenses.get(cfg['license'].lower(), (cfg['license'], None)) -dev_requirements = (cfg.get('dev_requirements') or '').split() +requirements = shlex.split(cfg.get("requirements", "")) +if cfg.get("pip_requirements"): + requirements += shlex.split(cfg.get("pip_requirements", "")) +min_python = cfg["min_python"] +lic = licenses.get(cfg["license"].lower(), (cfg["license"], None)) +dev_requirements = (cfg.get("dev_requirements") or "").split() setuptools.setup( - name = cfg['lib_name'], - license = lic[0], - classifiers = [ - 'Development Status :: ' + statuses[int(cfg['status'])], - 'Intended Audience :: ' + cfg['audience'].title(), - 'Natural Language :: ' + cfg['language'].title(), - ] + ['Programming Language :: Python :: '+o for o in py_versions[py_versions.index(min_python):]] + (['License :: ' + lic[1] ] if lic[1] else []), - url = cfg['git_url'], - packages = setuptools.find_packages(), - include_package_data = True, - install_requires = requirements, - extras_require={ 'dev': dev_requirements }, - dependency_links = cfg.get('dep_links','').split(), - python_requires = '>=' + cfg['min_python'], - long_description = open('README.md', encoding='utf-8').read(), - long_description_content_type = 'text/markdown', - zip_safe = False, - entry_points = { - 'console_scripts': cfg.get('console_scripts','').split(), - 'nbdev': [f'{cfg.get("lib_path")}={cfg.get("lib_path")}._modidx:d'] + name=cfg["lib_name"], + license=lic[0], + classifiers=[ + "Development Status :: " + statuses[int(cfg["status"])], + "Intended Audience :: " + cfg["audience"].title(), + "Natural Language :: " + cfg["language"].title(), + ] + + [ + "Programming Language :: Python :: " + o + for o in py_versions[py_versions.index(min_python) :] + ] + + (["License :: " + lic[1]] if lic[1] else []), + url=cfg["git_url"], + packages=setuptools.find_packages(), + include_package_data=True, + install_requires=requirements, + extras_require={"dev": dev_requirements}, + dependency_links=cfg.get("dep_links", "").split(), + python_requires=">=" + cfg["min_python"], + long_description=open("README.md", encoding="utf-8").read(), + long_description_content_type="text/markdown", + zip_safe=False, + entry_points={ + "console_scripts": cfg.get("console_scripts", "").split(), + "nbdev": [f'{cfg.get("lib_path")}={cfg.get("lib_path")}._modidx:d'], }, - **setup_cfg) - - + **setup_cfg, +)