import os from setuptools import setup, find_packages NAME = "pdfplumber" HERE = os.path.abspath(os.path.dirname(__file__)) version_ns = {} def _open(subpath): path = os.path.join(HERE, subpath) return open(path, encoding="utf-8") with _open(NAME + "/_version.py") as f: exec(f.read(), {}, version_ns) with _open("requirements.txt") as f: base_reqs = f.read().strip().split("\n") with _open("requirements-dev.txt") as f: dev_reqs = f.read().strip().split("\n") with _open("README.md") as f: long_description = f.read() setup( name=NAME, url="https://github.com/jsvine/pdfplumber", author="Jeremy Singer-Vine", author_email="jsvine@gmail.com", description="Plumb a PDF for detailed information about each char, rectangle, and line.", long_description=long_description, long_description_content_type="text/markdown", version=version_ns["__version__"], packages=find_packages( exclude=[ "test", ] ), include_package_data=True, package_data={"pdfplumber": ["py.typed"]}, zip_safe=False, tests_require=base_reqs + dev_reqs, python_requires=">=3.8", install_requires=base_reqs, entry_points={"console_scripts": ["pdfplumber = pdfplumber.cli:main"]}, classifiers=[ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", ], )