Merge pull request #130 from jatin9823/main

Key Enhancements:
This commit is contained in:
zrguo
2024-10-26 13:49:40 +08:00
committed by GitHub

View File

@@ -1,39 +1,71 @@
import setuptools import setuptools
from pathlib import Path
with open("README.md", "r", encoding="utf-8") as fh: # Reading the long description from README.md
long_description = fh.read() def read_long_description():
try:
return Path("README.md").read_text(encoding="utf-8")
except FileNotFoundError:
return "A description of LightRAG is currently unavailable."
# Retrieving metadata from __init__.py
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.")
vars2find = ["__author__", "__version__", "__url__"] # Checking if all required variables are found
vars2readme = {} missing_vars = [v for v in vars2find if v not in vars2readme]
with open("./lightrag/__init__.py") as f: if missing_vars:
for line in f.readlines(): raise ValueError(f"Missing required metadata variables in __init__.py: {missing_vars}")
for v in vars2find:
if line.startswith(v):
line = line.replace(" ", "").replace('"', "").replace("'", "").strip()
vars2readme[v] = line.split("=")[1]
deps = [] return vars2readme
with open("./requirements.txt") as f:
for line in f.readlines(): # Reading dependencies from requirements.txt
if not line.strip(): def read_requirements():
continue deps = []
deps.append(line.strip()) 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( setuptools.setup(
name="lightrag-hku", name="lightrag-hku",
url=vars2readme["__url__"], url=metadata["__url__"],
version=vars2readme["__version__"], version=metadata["__version__"],
author=vars2readme["__author__"], author=metadata["__author__"],
description="LightRAG: Simple and Fast Retrieval-Augmented Generation", description="LightRAG: Simple and Fast Retrieval-Augmented Generation",
long_description=long_description, long_description=long_description,
long_description_content_type="text/markdown", long_description_content_type="text/markdown",
packages=["lightrag"], packages=setuptools.find_packages(exclude=("tests*", "docs*")), # Automatically find packages
classifiers=[ classifiers=[
"Development Status :: 4 - Beta",
"Programming Language :: Python :: 3", "Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License", "License :: OSI Approved :: MIT License",
"Operating System :: OS Independent", "Operating System :: OS Independent",
"Intended Audience :: Developers",
"Topic :: Software Development :: Libraries :: Python Modules",
], ],
python_requires=">=3.9", python_requires=">=3.9",
install_requires=deps, install_requires=requirements,
include_package_data=True, # Includes non-code files from MANIFEST.in
project_urls={ # Additional project metadata
"Documentation": metadata.get("__url__", ""),
"Source": metadata.get("__url__", ""),
"Tracker": f"{metadata.get('__url__', '')}/issues" if metadata.get("__url__") else ""
},
) )