kotaemon/setup.py
Nguyen Trung Duc (john) d79b3744cb Simplify the BaseComponent inteface (#64)
This change remove `BaseComponent`'s:

- run_raw
- run_batch_raw
- run_document
- run_batch_document
- is_document
- is_batch

Each component is expected to support multiple types of inputs and a single type of output. Since we want the component to work out-of-the-box with both standardized and customized use cases, supporting multiple types of inputs are expected. At the same time, to reduce the complexity of understanding how to use a component, we restrict a component to only have a single output type.

To accommodate these changes, we also refactor some components to remove their run_raw, run_batch_raw... methods, and to decide the common output interface for those components.

Tests are updated accordingly.

Commit changes:

* Add kwargs to vector store's query
* Simplify the BaseComponent
* Update tests
* Remove support for Python 3.8 and 3.9
* Bump version 0.3.0
* Fix github PR caching still use old environment after bumping version

---------

Co-authored-by: ian <ian@cinnamon.is>
2023-11-13 15:10:18 +07:00

76 lines
1.9 KiB
Python

import codecs
import re
from pathlib import Path
import setuptools
def read(file_path: str) -> str:
return codecs.open(file_path, "r").read()
def get_version() -> str:
version_file = read(str(Path("kotaemon", "__init__.py")))
match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", version_file, re.M)
if match:
return match.group(1)
raise RuntimeError("Cannot find verison string")
setuptools.setup(
name="kotaemon",
version=get_version(),
author="john",
author_email="john@cinnamon.com",
description="Kotaemon core library for AI development",
long_description=read("README.md"),
long_description_content_type="text/markdown",
url="https://github.com/Cinnamon/kotaemon/",
packages=setuptools.find_packages(
exclude=("tests", "tests.*", "examples", "examples.*")
),
install_requires=[
"langchain",
"theflow",
"llama-index",
"llama-hub",
"gradio",
"openpyxl",
"cookiecutter",
"click",
"pandas",
],
extras_require={
"dev": [
"ipython",
"pytest",
"pre-commit",
"black",
"flake8",
"sphinx",
"coverage",
# optional dependency needed for test
"openai",
"chromadb",
"wikipedia",
"duckduckgo-search",
"googlesearch-python",
"python-dotenv",
"pytest-mock",
"unstructured[pdf]",
"farm-haystack==1.19.0",
"sentence_transformers",
"cohere",
"pypdf",
],
},
entry_points={"console_scripts": ["kh=kotaemon.cli:main"]},
python_requires=">=3.10",
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
include_package_data=True,
)