Skip to content
Snippets Groups Projects
Select Git revision
  • 68dd12335219c09c538d9694436d4555325f6615
  • master default protected
  • tester-variable-taux-allegement-cotisations
  • ppa-rsa
  • documentations-html-acad4c9f95a39e798170e3e9ab147b24b9f7e613
  • 184-ajouter-une-variable-sur-le-non-recours
  • aides-logement
  • statistiques_impot
  • documentations-html-ab2ff75179b3a97939d5c802e370f32c1978b99b
  • statistiques_impot_corrections_chloe
  • documentations-html-e96b6fd1b3963bc54903d8de1e23ea3f7dbb2e00
  • cdhr_reform
  • memo_pfu
  • 177-integration-erfs-2021-pipeline
  • 175-ajout-code-casd
  • memo-navbar-color
  • memo-rsa-rmi
  • memo-aah-modif
  • baby-memo
  • 163-memo-niveaux-de-vie-choix-des-cas-types
  • 143-memo-aides-au-logement
21 results

setup.py

Blame
  • setup.py 2.53 KiB
    from configparser import ConfigParser
    
    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")
    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}
    
    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"),
    }
    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()
    
    requirements = cfg.get("requirements", "").split()
    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_namespace_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").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,
    )