Skip to content
Snippets Groups Projects
setup.py 1.39 KiB
Newer Older
Bastien Abadie's avatar
Bastien Abadie committed
#!/usr/bin/env python
Bastien Abadie's avatar
Bastien Abadie committed
import os.path

from setuptools import find_packages, setup
Bastien Abadie's avatar
Bastien Abadie committed

Bastien Abadie's avatar
Bastien Abadie committed

Erwan Rouchet's avatar
Erwan Rouchet committed
def _parse_requirement(line):
Bastien Abadie's avatar
Bastien Abadie committed
    if "#egg=" not in line:
Erwan Rouchet's avatar
Erwan Rouchet committed
        return line
    # When a requirement is from Git, remove the Git part and keep the egg name.
    # This is needed as setup.py does not want any Git requirements in install_requires
Bastien Abadie's avatar
Bastien Abadie committed
    return line.rpartition("#egg=")[2]
Erwan Rouchet's avatar
Erwan Rouchet committed


Bastien Abadie's avatar
Bastien Abadie committed
def requirements(path):
Bastien Abadie's avatar
Bastien Abadie committed
    assert os.path.exists(path), "Missing requirements {}".format(path)
Bastien Abadie's avatar
Bastien Abadie committed
    with open(path) as f:
Erwan Rouchet's avatar
Erwan Rouchet committed
        return list(map(_parse_requirement, f.read().splitlines()))
Bastien Abadie's avatar
Bastien Abadie committed
with open("VERSION") as f:
Bastien Abadie's avatar
Bastien Abadie committed
    VERSION = f.read()

Bastien Abadie's avatar
Bastien Abadie committed
install_requires = requirements("requirements.txt") + requirements("base/requirements.txt")
tests_requires = requirements("tests-requirements.txt")
Bastien Abadie's avatar
Bastien Abadie committed
setup(
Bastien Abadie's avatar
Bastien Abadie committed
    name="arkindex",
Bastien Abadie's avatar
Bastien Abadie committed
    version=VERSION,
Bastien Abadie's avatar
Bastien Abadie committed
    license_files=("LICENSE",),
Bastien Abadie's avatar
Bastien Abadie committed
    description="Manuscripts indexation framework",
    author="Teklia",
    author_email="abadie@teklia.com",
    url="https://arkindex.teklia.com",
    python_requires=">=3.10",
Bastien Abadie's avatar
Bastien Abadie committed
    install_requires=install_requires,
Bastien Abadie's avatar
Bastien Abadie committed
    test_suite="arkindex.project.runtests.run",
Bastien Abadie's avatar
Bastien Abadie committed
    tests_require=tests_requires,
    extras_require={
Bastien Abadie's avatar
Bastien Abadie committed
        "test": tests_requires,
    packages=find_packages(),
    include_package_data=True,
Bastien Abadie's avatar
Bastien Abadie committed
    py_modules=["arkindex", ],
    entry_points={"console_scripts": ["arkindex=arkindex.manage:main"]},
Bastien Abadie's avatar
Bastien Abadie committed
    scripts=[
Bastien Abadie's avatar
Bastien Abadie committed
        "arkindex/manage.py",
Bastien Abadie's avatar
Bastien Abadie committed
    ],
)