|
import setuptools |
|
from pathlib import Path |
|
|
|
|
|
|
|
def read_long_description(): |
|
try: |
|
return Path("README.md").read_text(encoding="utf-8") |
|
except FileNotFoundError: |
|
return "A description of LightRAG is currently unavailable." |
|
|
|
|
|
|
|
def retrieve_metadata(): |
|
vars2find = ["__author__", "__version__", "__url__"] |
|
vars2readme = {} |
|
try: |
|
with open("./lightrag/__init__.py") as f: |
|
for line in f.readlines(): |
|
for v in vars2find: |
|
if line.startswith(v): |
|
line = ( |
|
line.replace(" ", "") |
|
.replace('"', "") |
|
.replace("'", "") |
|
.strip() |
|
) |
|
vars2readme[v] = line.split("=")[1] |
|
except FileNotFoundError: |
|
raise FileNotFoundError("Metadata file './lightrag/__init__.py' not found.") |
|
|
|
|
|
missing_vars = [v for v in vars2find if v not in vars2readme] |
|
if missing_vars: |
|
raise ValueError( |
|
f"Missing required metadata variables in __init__.py: {missing_vars}" |
|
) |
|
|
|
return vars2readme |
|
|
|
|
|
|
|
def read_requirements(): |
|
deps = [] |
|
try: |
|
with open("./requirements.txt") as f: |
|
deps = [line.strip() for line in f if line.strip()] |
|
except FileNotFoundError: |
|
print( |
|
"Warning: 'requirements.txt' not found. No dependencies will be installed." |
|
) |
|
return deps |
|
|
|
|
|
metadata = retrieve_metadata() |
|
long_description = read_long_description() |
|
requirements = read_requirements() |
|
|
|
setuptools.setup( |
|
name="lightrag-hku", |
|
url=metadata["__url__"], |
|
version=metadata["__version__"], |
|
author=metadata["__author__"], |
|
description="LightRAG: Simple and Fast Retrieval-Augmented Generation", |
|
long_description=long_description, |
|
long_description_content_type="text/markdown", |
|
packages=setuptools.find_packages( |
|
exclude=("tests*", "docs*") |
|
), |
|
classifiers=[ |
|
"Development Status :: 4 - Beta", |
|
"Programming Language :: Python :: 3", |
|
"License :: OSI Approved :: MIT License", |
|
"Operating System :: OS Independent", |
|
"Intended Audience :: Developers", |
|
"Topic :: Software Development :: Libraries :: Python Modules", |
|
], |
|
python_requires=">=3.9", |
|
install_requires=requirements, |
|
include_package_data=True, |
|
project_urls={ |
|
"Documentation": metadata.get("__url__", ""), |
|
"Source": metadata.get("__url__", ""), |
|
"Tracker": f"{metadata.get('__url__', '')}/issues" |
|
if metadata.get("__url__") |
|
else "", |
|
}, |
|
) |
|
|