diff --git a/.gitignore b/.gitignore index 87fcc66ae..6dec32b5c 100644 --- a/.gitignore +++ b/.gitignore @@ -29,4 +29,10 @@ Cargo.lock docker/ragflow-logs/ /flask_session /logs -rag/res/deepdoc \ No newline at end of file +rag/res/deepdoc + +# Exclude sdk generated files +SDK/python/ragflow.egg-info/ +SDK/python/build/ +SDK/python/dist/ +SDK/python/ragflow_sdk.egg-info/ \ No newline at end of file diff --git a/SDK/python/README.md b/SDK/python/README.md new file mode 100644 index 000000000..984936384 --- /dev/null +++ b/SDK/python/README.md @@ -0,0 +1 @@ +# infinity \ No newline at end of file diff --git a/SDK/python/hello_ragflow.py b/SDK/python/hello_ragflow.py new file mode 100644 index 000000000..d652da85d --- /dev/null +++ b/SDK/python/hello_ragflow.py @@ -0,0 +1,3 @@ +import ragflow + +print(ragflow.__version__) \ No newline at end of file diff --git a/SDK/python/pyproject.toml b/SDK/python/pyproject.toml new file mode 100644 index 000000000..54b44f482 --- /dev/null +++ b/SDK/python/pyproject.toml @@ -0,0 +1,24 @@ +[project] +name = "ragflow" +version = "0.8.0.dev1" +authors = [ + { name = "The RAGFlow Development Team", email = "author@example.com" }, +] # TODO: email +dependencies = ["pytest~=8.2.0"] +description = "ragflow" +readme = "README.md" +requires-python = ">=3.10" +classifiers = [ + "Programming Language :: Python :: 3", + "License :: OSI Approved :: Apache License2", + "Operating System :: OS Independent", +] + +[build-system] +requires = ["setuptools>=61.0", "wheel"] +build-backend = "setuptools.build_meta" + +[project.urls] +"Homepage" = "https://github.com/pypa/sampleproject" +"Bug Tracker" = "https://github.com/pypa/sampleproject/issues" +# TODO \ No newline at end of file diff --git a/SDK/python/ragflow/__init__.py b/SDK/python/ragflow/__init__.py new file mode 100644 index 000000000..35019df13 --- /dev/null +++ b/SDK/python/ragflow/__init__.py @@ -0,0 +1,3 @@ +import importlib.metadata + +__version__ = importlib.metadata.version("ragflow") \ No newline at end of file diff --git a/SDK/python/ragflow/ragflow.py b/SDK/python/ragflow/ragflow.py new file mode 100644 index 000000000..331a5ced1 --- /dev/null +++ b/SDK/python/ragflow/ragflow.py @@ -0,0 +1,28 @@ +# +# Copyright 2024 The InfiniFlow Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import os +import dotenv +import typing +from api.utils.file_utils import get_project_base_directory + + +def get_versions() -> typing.Mapping[str, typing.Any]: + dotenv.load_dotenv(dotenv.find_dotenv()) + return dotenv.dotenv_values() + + +def get_rag_version() -> typing.Optional[str]: + return get_versions().get("RAGFLOW_VERSION", "dev") \ No newline at end of file diff --git a/SDK/python/setup.py b/SDK/python/setup.py new file mode 100644 index 000000000..1ce9854c4 --- /dev/null +++ b/SDK/python/setup.py @@ -0,0 +1,19 @@ +# Copyright(C) 2023 InfiniFlow, Inc. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import setuptools + +if __name__ == "__main__": + setuptools.setup(packages=['ragflow']) + diff --git a/SDK/python/test/test_basic.py b/SDK/python/test/test_basic.py new file mode 100644 index 000000000..1673e389e --- /dev/null +++ b/SDK/python/test/test_basic.py @@ -0,0 +1,8 @@ +from test_sdkbase import TestSdk +import ragflow +import pytest + + +class TestCase(TestSdk): + def test_version(self): + print(ragflow.__version__) \ No newline at end of file diff --git a/SDK/python/test/test_sdkbase.py b/SDK/python/test/test_sdkbase.py new file mode 100644 index 000000000..584dbbc4f --- /dev/null +++ b/SDK/python/test/test_sdkbase.py @@ -0,0 +1,3 @@ +class TestSdk(): + def test_version(self): + print("test_sdk")