summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-05 08:33:43 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-05 08:33:43 +0000
commitee41533f5593afc009737a4096345d9c841e79dc (patch)
tree1dbdf77be63bb608a73bdb221d20a8c2b0ccf372
parent251838618cbc87ed3d4dd5ae442f71051200ca6a (diff)
automatic import of python-relevanceaiopeneuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-relevanceai.spec753
-rw-r--r--sources1
3 files changed, 755 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..ffb9cb5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/RelevanceAI-3.2.22.tar.gz
diff --git a/python-relevanceai.spec b/python-relevanceai.spec
new file mode 100644
index 0000000..363f2f5
--- /dev/null
+++ b/python-relevanceai.spec
@@ -0,0 +1,753 @@
+%global _empty_manifest_terminate_build 0
+Name: python-RelevanceAI
+Version: 3.2.22
+Release: 1
+Summary: please add a summary manually as the author left a blank one
+License: Apache Software License
+URL: https://tryrelevance.com/
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/cb/b9/e2c302e1b7af5b72efff6d37e4a7fcb0d0eb2233938ebe9fb2da7241e2a4/RelevanceAI-3.2.22.tar.gz
+BuildArch: noarch
+
+Requires: python3-tqdm
+Requires: python3-pandas
+Requires: python3-loguru
+Requires: python3-document-utils
+Requires: python3-requests
+Requires: python3-numpy
+Requires: python3-joblib
+Requires: python3-scikit-learn
+Requires: python3-typing-extensions
+Requires: python3-analytics-python
+Requires: python3-aiohttp
+Requires: python3-appdirs
+Requires: python3-orjson
+Requires: python3-psutil
+Requires: python3-autopep8
+Requires: python3-pylint
+Requires: python3-jupyter
+Requires: python3-pre-commit
+Requires: python3-black
+Requires: python3-mypy
+Requires: python3-xenon
+Requires: python3-pytest
+Requires: python3-pytest-dotenv
+Requires: python3-pytest-xdist
+Requires: python3-pytest-cov
+Requires: python3-pytest-mock
+Requires: python3-types-requests
+Requires: python3-pytest-sugar
+Requires: python3-pytest-rerunfailures
+Requires: python3-tqdm
+Requires: python3-pandas
+Requires: python3-loguru
+Requires: python3-document-utils
+Requires: python3-requests
+Requires: python3-numpy
+Requires: python3-joblib
+Requires: python3-scikit-learn
+Requires: python3-typing-extensions
+Requires: python3-analytics-python
+Requires: python3-aiohttp
+Requires: python3-appdirs
+Requires: python3-orjson
+Requires: python3-psutil
+Requires: python3-openpyxl
+Requires: python3-fsspec
+Requires: python3-umap-learn
+Requires: python3-sphinx-rtd-theme
+Requires: python3-pydata-sphinx-theme
+Requires: python3-sphinx-autoapi
+Requires: python3-sphinx-autodoc-typehints
+Requires: python3-autopep8
+Requires: python3-pylint
+Requires: python3-jupyter
+Requires: python3-pytest
+Requires: python3-pytest-dotenv
+Requires: python3-pytest-xdist
+Requires: python3-pytest-cov
+Requires: python3-pytest-mock
+Requires: python3-mypy
+Requires: python3-types-requests
+Requires: python3-pytest-sugar
+Requires: python3-pytest-rerunfailures
+Requires: python3-tqdm
+Requires: python3-pandas
+Requires: python3-loguru
+Requires: python3-document-utils
+Requires: python3-requests
+Requires: python3-numpy
+Requires: python3-joblib
+Requires: python3-scikit-learn
+Requires: python3-typing-extensions
+Requires: python3-analytics-python
+Requires: python3-aiohttp
+Requires: python3-appdirs
+Requires: python3-orjson
+Requires: python3-psutil
+Requires: python3-openpyxl
+Requires: python3-fsspec
+Requires: python3-umap-learn
+Requires: python3-sphinx-rtd-theme
+Requires: python3-pydata-sphinx-theme
+Requires: python3-sphinx-autoapi
+Requires: python3-sphinx-autodoc-typehints
+Requires: python3-autopep8
+Requires: python3-pylint
+Requires: python3-jupyter
+Requires: python3-pytest
+Requires: python3-pytest-dotenv
+Requires: python3-pytest-xdist
+Requires: python3-pytest-cov
+Requires: python3-pytest-mock
+Requires: python3-mypy
+Requires: python3-types-requests
+Requires: python3-pytest-sugar
+Requires: python3-pytest-rerunfailures
+Requires: python3-tqdm
+Requires: python3-pandas
+Requires: python3-loguru
+Requires: python3-document-utils
+Requires: python3-requests
+Requires: python3-numpy
+Requires: python3-joblib
+Requires: python3-scikit-learn
+Requires: python3-typing-extensions
+Requires: python3-analytics-python
+Requires: python3-aiohttp
+Requires: python3-appdirs
+Requires: python3-orjson
+Requires: python3-psutil
+Requires: python3-openpyxl
+Requires: python3-fsspec
+Requires: python3-umap-learn
+Requires: python3-sphinx-rtd-theme
+Requires: python3-pydata-sphinx-theme
+Requires: python3-sphinx-autoapi
+Requires: python3-sphinx-autodoc-typehints
+Requires: python3-sphinx-rtd-theme
+Requires: python3-pydata-sphinx-theme
+Requires: python3-sphinx-autoapi
+Requires: python3-sphinx-autodoc-typehints
+Requires: python3-tqdm
+Requires: python3-pandas
+Requires: python3-loguru
+Requires: python3-document-utils
+Requires: python3-requests
+Requires: python3-numpy
+Requires: python3-joblib
+Requires: python3-scikit-learn
+Requires: python3-typing-extensions
+Requires: python3-analytics-python
+Requires: python3-aiohttp
+Requires: python3-appdirs
+Requires: python3-orjson
+Requires: python3-psutil
+Requires: python3-openpyxl
+Requires: python3-fsspec
+Requires: python3-hdbscan
+Requires: python3-scikit-learn-extra
+Requires: python3-tqdm
+Requires: python3-pandas
+Requires: python3-loguru
+Requires: python3-document-utils
+Requires: python3-requests
+Requires: python3-numpy
+Requires: python3-joblib
+Requires: python3-scikit-learn
+Requires: python3-typing-extensions
+Requires: python3-analytics-python
+Requires: python3-aiohttp
+Requires: python3-appdirs
+Requires: python3-orjson
+Requires: python3-psutil
+Requires: python3-sentence-transformers
+Requires: python3-jsonshower
+Requires: python3-tqdm
+Requires: python3-pandas
+Requires: python3-loguru
+Requires: python3-document-utils
+Requires: python3-requests
+Requires: python3-numpy
+Requires: python3-joblib
+Requires: python3-scikit-learn
+Requires: python3-typing-extensions
+Requires: python3-analytics-python
+Requires: python3-aiohttp
+Requires: python3-appdirs
+Requires: python3-orjson
+Requires: python3-psutil
+Requires: python3-pytest
+Requires: python3-pytest-dotenv
+Requires: python3-pytest-xdist
+Requires: python3-pytest-cov
+Requires: python3-pytest-mock
+Requires: python3-mypy
+Requires: python3-types-requests
+Requires: python3-pytest-sugar
+Requires: python3-pytest-rerunfailures
+Requires: python3-tqdm
+Requires: python3-pandas
+Requires: python3-loguru
+Requires: python3-document-utils
+Requires: python3-requests
+Requires: python3-numpy
+Requires: python3-joblib
+Requires: python3-scikit-learn
+Requires: python3-typing-extensions
+Requires: python3-analytics-python
+Requires: python3-aiohttp
+Requires: python3-appdirs
+Requires: python3-orjson
+Requires: python3-psutil
+Requires: python3-openpyxl
+Requires: python3-fsspec
+Requires: python3-umap-learn
+Requires: python3-umap-learn
+
+%description
+![Github Banner](assets/github_banner.png)
+
+## Relevance AI - The ML Platform for Unstructured Data Analysis
+[![Documentation Status](https://readthedocs.org/projects/relevanceai/badge/?version=latest)](https://relevanceai.readthedocs.io/en/latest/?badge=latest)
+[![License](https://img.shields.io/pypi/l/relevanceai)](https://img.shields.io/pypi/l/relevanceai)
+
+🌎 80% of data in the world is unstructured in the form of text, image, audio, videos, and more.
+
+🔥 Use Relevance to unlock the value of your unstructured data:
+- ⚡ Quickly analyze unstructured data with pre-trained machine learning models in a few lines of code.
+- ✨ Visualize your unstructured data. Text highlights from Named entity recognition, Word cloud from keywords, Bounding box from images.
+- 📊 Create charts for both structured and unstructured.
+- 🔎 Drilldown with filters and similarity search to explore and find insights.
+- 🚀 Share data apps with your team.
+
+[Sign up for a free account ->](https://hubs.ly/Q017CkXK0)
+
+Relevance AI also acts as a platform for:
+- 🔑 Vectors, storing and querying vectors with flexible vector similarity search, that can be combined with multiple vectors, aggregates and filters.
+- 🔮 ML Dataset Evaluation, for debugging dataset labels, model outputs and surfacing edge cases.
+
+
+## 🧠 Documentation
+
+| Type | Link |
+| ------------- | ----------- |
+| Python API | [Documentation](https://sdk.tryrelevance.com/) |
+| Python Reference | [Documentation](https://relevanceai.readthedocs.io/en/latest/) |
+| Cloud Dashboard | [Documentation](https://docs.tryrelevance.com/) |
+
+## 🛠️ Installation
+
+Using pip:
+
+```{bash}
+pip install -U relevanceai
+```
+Using conda:
+
+```{bash}
+conda install -c relevance relevanceai
+```
+
+## ⏩ Quickstart
+[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/RelevanceAI/RelevanceAI/blob/development/guides/quickstart_guide.ipynb)
+
+Login to `relevanceai`:
+```{python}
+from relevanceai import Client
+
+client = Client()
+```
+
+Prepare your documents for insertion by following the below format:
+- Each document should be a dictionary
+- Include a field `_id` as a primary key, otherwise it's automatically generated
+- Suffix vector fields with `_vector_`
+
+```{python}
+docs = [
+ {"_id": "1", "example_vector_": [0.1, 0.1, 0.1], "data": "Documentation"},
+ {"_id": "2", "example_vector_": [0.2, 0.2, 0.2], "data": "Best document!"},
+ {"_id": "3", "example_vector_": [0.3, 0.3, 0.3], "data": "document example"},
+ {"_id": "4", "example_vector_": [0.4, 0.4, 0.4], "data": "this is another doc"},
+ {"_id": "5", "example_vector_": [0.5, 0.5, 0.5], "data": "this is a doc"},
+]
+```
+
+### Insert data into a dataset
+
+Create a dataset object with the name of the dataset you'd like to use. If it doesn't exist, it'll be created for you.
+
+```{python}
+ds = client.Dataset("quickstart")
+ds.insert_documents(docs)
+```
+> Quick tip! Our Dataset object is compatible with common dataframes methods like `.head()`, `.shape()` and `.info()`.
+
+### Perform vector search
+
+```{python}
+query = [
+ {"vector": [0.2, 0.2, 0.2], "field": "example_vector_"}
+]
+results = ds.search(
+ vector_search_query=query,
+ page_size=3,
+)
+```
+[Learn more about how to flexibly configure your vector search ->](https://sdk.tryrelevance.com/docs/search)
+
+### Perform clustering
+
+Generate clusters
+```{python}
+clusterop = ds.cluster(vector_fields=["example_vector_"])
+clusterop.list_closest()
+```
+
+Generate clusters with sklearn
+```{python}
+from sklearn.cluster import AgglomerativeClustering
+
+cluster_model = AgglomerativeClustering()
+clusterop = ds.cluster(vector_fields=["example_vector_"], model=cluster_model, alias="agglomerative")
+clusterop.list_closest()
+```
+[Learn more about how to flexibly configure your clustering ->](https://sdk.tryrelevance.com/docs/search)
+
+## 🧰 Config
+
+The config object contains the adjustable global settings for the SDK. For a description of all the settings, see [here](https://github.com/RelevanceAI/RelevanceAI/blob/development/relevanceai/constants/config.ini).
+
+To view setting options, run the following:
+
+```{python}
+client.config.options
+```
+
+The syntax for selecting an option is section.key. For example, to disable logging, run the following to modify logging.enable_logging:
+
+```{python}
+client.config.set_option('logging.enable_logging', False)
+```
+
+To restore all options to their default, run the following:
+
+### Changing the base URL
+
+You can change the base URL as such:
+
+```{python}
+client.base_url = "https://.../latest"
+```
+
+## 🚧 Development
+
+### Getting Started
+To get started with development, ensure you have pytest and mypy installed. These will help ensure typechecking and testing.
+
+```{bash}
+python -m pip install pytest mypy
+```
+
+Then run testing using:
+
+> Don't forget to set your test credentials!
+
+```{bash}
+export TEST_PROJECT = xxx
+export TEST_API_KEY = xxx
+
+python -m pytest
+mypy relevanceai
+```
+
+Set up precommit
+
+```{bash}
+pip install precommit
+pre-commit install
+```
+
+
+%package -n python3-RelevanceAI
+Summary: please add a summary manually as the author left a blank one
+Provides: python-RelevanceAI
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-RelevanceAI
+![Github Banner](assets/github_banner.png)
+
+## Relevance AI - The ML Platform for Unstructured Data Analysis
+[![Documentation Status](https://readthedocs.org/projects/relevanceai/badge/?version=latest)](https://relevanceai.readthedocs.io/en/latest/?badge=latest)
+[![License](https://img.shields.io/pypi/l/relevanceai)](https://img.shields.io/pypi/l/relevanceai)
+
+🌎 80% of data in the world is unstructured in the form of text, image, audio, videos, and more.
+
+🔥 Use Relevance to unlock the value of your unstructured data:
+- ⚡ Quickly analyze unstructured data with pre-trained machine learning models in a few lines of code.
+- ✨ Visualize your unstructured data. Text highlights from Named entity recognition, Word cloud from keywords, Bounding box from images.
+- 📊 Create charts for both structured and unstructured.
+- 🔎 Drilldown with filters and similarity search to explore and find insights.
+- 🚀 Share data apps with your team.
+
+[Sign up for a free account ->](https://hubs.ly/Q017CkXK0)
+
+Relevance AI also acts as a platform for:
+- 🔑 Vectors, storing and querying vectors with flexible vector similarity search, that can be combined with multiple vectors, aggregates and filters.
+- 🔮 ML Dataset Evaluation, for debugging dataset labels, model outputs and surfacing edge cases.
+
+
+## 🧠 Documentation
+
+| Type | Link |
+| ------------- | ----------- |
+| Python API | [Documentation](https://sdk.tryrelevance.com/) |
+| Python Reference | [Documentation](https://relevanceai.readthedocs.io/en/latest/) |
+| Cloud Dashboard | [Documentation](https://docs.tryrelevance.com/) |
+
+## 🛠️ Installation
+
+Using pip:
+
+```{bash}
+pip install -U relevanceai
+```
+Using conda:
+
+```{bash}
+conda install -c relevance relevanceai
+```
+
+## ⏩ Quickstart
+[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/RelevanceAI/RelevanceAI/blob/development/guides/quickstart_guide.ipynb)
+
+Login to `relevanceai`:
+```{python}
+from relevanceai import Client
+
+client = Client()
+```
+
+Prepare your documents for insertion by following the below format:
+- Each document should be a dictionary
+- Include a field `_id` as a primary key, otherwise it's automatically generated
+- Suffix vector fields with `_vector_`
+
+```{python}
+docs = [
+ {"_id": "1", "example_vector_": [0.1, 0.1, 0.1], "data": "Documentation"},
+ {"_id": "2", "example_vector_": [0.2, 0.2, 0.2], "data": "Best document!"},
+ {"_id": "3", "example_vector_": [0.3, 0.3, 0.3], "data": "document example"},
+ {"_id": "4", "example_vector_": [0.4, 0.4, 0.4], "data": "this is another doc"},
+ {"_id": "5", "example_vector_": [0.5, 0.5, 0.5], "data": "this is a doc"},
+]
+```
+
+### Insert data into a dataset
+
+Create a dataset object with the name of the dataset you'd like to use. If it doesn't exist, it'll be created for you.
+
+```{python}
+ds = client.Dataset("quickstart")
+ds.insert_documents(docs)
+```
+> Quick tip! Our Dataset object is compatible with common dataframes methods like `.head()`, `.shape()` and `.info()`.
+
+### Perform vector search
+
+```{python}
+query = [
+ {"vector": [0.2, 0.2, 0.2], "field": "example_vector_"}
+]
+results = ds.search(
+ vector_search_query=query,
+ page_size=3,
+)
+```
+[Learn more about how to flexibly configure your vector search ->](https://sdk.tryrelevance.com/docs/search)
+
+### Perform clustering
+
+Generate clusters
+```{python}
+clusterop = ds.cluster(vector_fields=["example_vector_"])
+clusterop.list_closest()
+```
+
+Generate clusters with sklearn
+```{python}
+from sklearn.cluster import AgglomerativeClustering
+
+cluster_model = AgglomerativeClustering()
+clusterop = ds.cluster(vector_fields=["example_vector_"], model=cluster_model, alias="agglomerative")
+clusterop.list_closest()
+```
+[Learn more about how to flexibly configure your clustering ->](https://sdk.tryrelevance.com/docs/search)
+
+## 🧰 Config
+
+The config object contains the adjustable global settings for the SDK. For a description of all the settings, see [here](https://github.com/RelevanceAI/RelevanceAI/blob/development/relevanceai/constants/config.ini).
+
+To view setting options, run the following:
+
+```{python}
+client.config.options
+```
+
+The syntax for selecting an option is section.key. For example, to disable logging, run the following to modify logging.enable_logging:
+
+```{python}
+client.config.set_option('logging.enable_logging', False)
+```
+
+To restore all options to their default, run the following:
+
+### Changing the base URL
+
+You can change the base URL as such:
+
+```{python}
+client.base_url = "https://.../latest"
+```
+
+## 🚧 Development
+
+### Getting Started
+To get started with development, ensure you have pytest and mypy installed. These will help ensure typechecking and testing.
+
+```{bash}
+python -m pip install pytest mypy
+```
+
+Then run testing using:
+
+> Don't forget to set your test credentials!
+
+```{bash}
+export TEST_PROJECT = xxx
+export TEST_API_KEY = xxx
+
+python -m pytest
+mypy relevanceai
+```
+
+Set up precommit
+
+```{bash}
+pip install precommit
+pre-commit install
+```
+
+
+%package help
+Summary: Development documents and examples for RelevanceAI
+Provides: python3-RelevanceAI-doc
+%description help
+![Github Banner](assets/github_banner.png)
+
+## Relevance AI - The ML Platform for Unstructured Data Analysis
+[![Documentation Status](https://readthedocs.org/projects/relevanceai/badge/?version=latest)](https://relevanceai.readthedocs.io/en/latest/?badge=latest)
+[![License](https://img.shields.io/pypi/l/relevanceai)](https://img.shields.io/pypi/l/relevanceai)
+
+🌎 80% of data in the world is unstructured in the form of text, image, audio, videos, and more.
+
+🔥 Use Relevance to unlock the value of your unstructured data:
+- ⚡ Quickly analyze unstructured data with pre-trained machine learning models in a few lines of code.
+- ✨ Visualize your unstructured data. Text highlights from Named entity recognition, Word cloud from keywords, Bounding box from images.
+- 📊 Create charts for both structured and unstructured.
+- 🔎 Drilldown with filters and similarity search to explore and find insights.
+- 🚀 Share data apps with your team.
+
+[Sign up for a free account ->](https://hubs.ly/Q017CkXK0)
+
+Relevance AI also acts as a platform for:
+- 🔑 Vectors, storing and querying vectors with flexible vector similarity search, that can be combined with multiple vectors, aggregates and filters.
+- 🔮 ML Dataset Evaluation, for debugging dataset labels, model outputs and surfacing edge cases.
+
+
+## 🧠 Documentation
+
+| Type | Link |
+| ------------- | ----------- |
+| Python API | [Documentation](https://sdk.tryrelevance.com/) |
+| Python Reference | [Documentation](https://relevanceai.readthedocs.io/en/latest/) |
+| Cloud Dashboard | [Documentation](https://docs.tryrelevance.com/) |
+
+## 🛠️ Installation
+
+Using pip:
+
+```{bash}
+pip install -U relevanceai
+```
+Using conda:
+
+```{bash}
+conda install -c relevance relevanceai
+```
+
+## ⏩ Quickstart
+[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/RelevanceAI/RelevanceAI/blob/development/guides/quickstart_guide.ipynb)
+
+Login to `relevanceai`:
+```{python}
+from relevanceai import Client
+
+client = Client()
+```
+
+Prepare your documents for insertion by following the below format:
+- Each document should be a dictionary
+- Include a field `_id` as a primary key, otherwise it's automatically generated
+- Suffix vector fields with `_vector_`
+
+```{python}
+docs = [
+ {"_id": "1", "example_vector_": [0.1, 0.1, 0.1], "data": "Documentation"},
+ {"_id": "2", "example_vector_": [0.2, 0.2, 0.2], "data": "Best document!"},
+ {"_id": "3", "example_vector_": [0.3, 0.3, 0.3], "data": "document example"},
+ {"_id": "4", "example_vector_": [0.4, 0.4, 0.4], "data": "this is another doc"},
+ {"_id": "5", "example_vector_": [0.5, 0.5, 0.5], "data": "this is a doc"},
+]
+```
+
+### Insert data into a dataset
+
+Create a dataset object with the name of the dataset you'd like to use. If it doesn't exist, it'll be created for you.
+
+```{python}
+ds = client.Dataset("quickstart")
+ds.insert_documents(docs)
+```
+> Quick tip! Our Dataset object is compatible with common dataframes methods like `.head()`, `.shape()` and `.info()`.
+
+### Perform vector search
+
+```{python}
+query = [
+ {"vector": [0.2, 0.2, 0.2], "field": "example_vector_"}
+]
+results = ds.search(
+ vector_search_query=query,
+ page_size=3,
+)
+```
+[Learn more about how to flexibly configure your vector search ->](https://sdk.tryrelevance.com/docs/search)
+
+### Perform clustering
+
+Generate clusters
+```{python}
+clusterop = ds.cluster(vector_fields=["example_vector_"])
+clusterop.list_closest()
+```
+
+Generate clusters with sklearn
+```{python}
+from sklearn.cluster import AgglomerativeClustering
+
+cluster_model = AgglomerativeClustering()
+clusterop = ds.cluster(vector_fields=["example_vector_"], model=cluster_model, alias="agglomerative")
+clusterop.list_closest()
+```
+[Learn more about how to flexibly configure your clustering ->](https://sdk.tryrelevance.com/docs/search)
+
+## 🧰 Config
+
+The config object contains the adjustable global settings for the SDK. For a description of all the settings, see [here](https://github.com/RelevanceAI/RelevanceAI/blob/development/relevanceai/constants/config.ini).
+
+To view setting options, run the following:
+
+```{python}
+client.config.options
+```
+
+The syntax for selecting an option is section.key. For example, to disable logging, run the following to modify logging.enable_logging:
+
+```{python}
+client.config.set_option('logging.enable_logging', False)
+```
+
+To restore all options to their default, run the following:
+
+### Changing the base URL
+
+You can change the base URL as such:
+
+```{python}
+client.base_url = "https://.../latest"
+```
+
+## 🚧 Development
+
+### Getting Started
+To get started with development, ensure you have pytest and mypy installed. These will help ensure typechecking and testing.
+
+```{bash}
+python -m pip install pytest mypy
+```
+
+Then run testing using:
+
+> Don't forget to set your test credentials!
+
+```{bash}
+export TEST_PROJECT = xxx
+export TEST_API_KEY = xxx
+
+python -m pytest
+mypy relevanceai
+```
+
+Set up precommit
+
+```{bash}
+pip install precommit
+pre-commit install
+```
+
+
+%prep
+%autosetup -n RelevanceAI-3.2.22
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-RelevanceAI -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 3.2.22-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..3ea1312
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+f62cc67786eaadb7365dfdbb003a0ea7 RelevanceAI-3.2.22.tar.gz