FinGPT icon indicating copy to clipboard operation
FinGPT copied to clipboard

Setup Configuration Improvements in FinGPT

Open Madhav-MKNC opened this issue 1 year ago • 1 comments

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="[email protected]",
    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",
)

Madhav-MKNC avatar Jun 16 '23 13:06 Madhav-MKNC

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

oliverwang15 avatar Jun 17 '23 16:06 oliverwang15