AI4Finance-Foundation / FinGPT

FinGPT: Open-Source Financial Large Language Models! Revolutionize 🔥 We release the trained model on HuggingFace.
https://ai4finance.org
MIT License
13.84k stars 1.92k forks source link

Setup Configuration Improvements in FinGPT #13

Closed Madhav-MKNC closed 1 year ago

Madhav-MKNC commented 1 year ago

There are a few improvements that can enhance its readability and maintainability. Here are the details:

Error Handling for Missing Requirements File: The code attempts to read the requirements.txt file to gather the project's dependencies. However, if the file is not found, the code simply prints an error message to the console. It would be better to raise an exception or exit the setup process with an appropriate error message to inform the user of the missing file.

Use of "with" Statement for File Handling: The code currently uses a try-except block to handle file operations without utilizing the recommended with statement. Using with ensures proper handling of file resources, including automatic closing, even if an exception occurs.

Consistent Quoting Style: The code uses both single and double quotes for string literals. It is recommended to use a consistent quoting style throughout the codebase to improve readability. Choose either single quotes or double quotes and apply it consistently.

To improve the code, consider the following suggestions:

from setuptools import setup, find_packages

# Read requirements.txt, ignore comments
try:
    with open("requirements.txt", "r") as f:
        REQUIRES = [line.split('#', 1)[0].strip() for line in f if line.strip()]
except FileNotFoundError:
    raise FileNotFoundError("requirements.txt not found!")

setup(
    name="FinGPT",
    version="0.0.0",
    include_package_data=True,
    author="Hongyang Yang, Xiao-Yang Liu",
    author_email="hy2500@columbia.edu",
    url="https://github.com/AI4Finance-Foundation/FinGPT",
    license="MIT",
    packages=find_packages(),
    install_requires=REQUIRES,
    description="FinGPT",
    long_description="FinGPT",
    classifiers=[
        # Trove classifiers
        # Full list: https://pypi.python.org/pypi?%3Aaction=list_classifiers
        "License :: OSI Approved :: MIT License",
        "Programming Language :: Python",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.6",
        "Programming Language :: Python :: 3.7",
        "Programming Language :: Python :: 3.8",
        "Programming Language :: Python :: Implementation :: CPython",
        "Programming Language :: Python :: Implementation :: PyPy",
    ],
    keywords="Financial Large Language Models",
    platforms=["any"],
    python_requires=">=3.6",
)
oliverwang15 commented 1 year ago

Wow! Thank you very much for your suggestion and we will update it soon!