create the python sdk to return version (#1039)

### What problem does this PR solve?

Create python SDK to return the version of RAGFlow.

### Type of change

- [x] New Feature (non-breaking change which adds functionality)

---------

Co-authored-by: cecilia-uu <konghui1996@163.com>
This commit is contained in:
cecilia-uu 2024-06-03 15:59:50 +08:00 committed by GitHub
parent 9517a27844
commit 7d41de42a1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 96 additions and 1 deletions

8
.gitignore vendored
View File

@ -29,4 +29,10 @@ Cargo.lock
docker/ragflow-logs/
/flask_session
/logs
rag/res/deepdoc
rag/res/deepdoc
# Exclude sdk generated files
SDK/python/ragflow.egg-info/
SDK/python/build/
SDK/python/dist/
SDK/python/ragflow_sdk.egg-info/

1
SDK/python/README.md Normal file
View File

@ -0,0 +1 @@
# infinity

View File

@ -0,0 +1,3 @@
import ragflow
print(ragflow.__version__)

24
SDK/python/pyproject.toml Normal file
View File

@ -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

View File

@ -0,0 +1,3 @@
import importlib.metadata
__version__ = importlib.metadata.version("ragflow")

View File

@ -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")

19
SDK/python/setup.py Normal file
View File

@ -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'])

View File

@ -0,0 +1,8 @@
from test_sdkbase import TestSdk
import ragflow
import pytest
class TestCase(TestSdk):
def test_version(self):
print(ragflow.__version__)

View File

@ -0,0 +1,3 @@
class TestSdk():
def test_version(self):
print("test_sdk")