summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-12 04:11:25 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-12 04:11:25 +0000
commit7fd05494f4db388141c7a4a851e3603ba80f487d (patch)
treedb37f2aebd73d053a1c7b70ea999b5dae043b5f0
parent755d6e04d4f48319a93108ad8fb790ee523d628f (diff)
automatic import of python-solana
-rw-r--r--.gitignore1
-rw-r--r--python-solana.spec385
-rw-r--r--sources1
3 files changed, 387 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..14ccd33 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/solana-0.29.2.tar.gz
diff --git a/python-solana.spec b/python-solana.spec
new file mode 100644
index 0000000..d54f846
--- /dev/null
+++ b/python-solana.spec
@@ -0,0 +1,385 @@
+%global _empty_manifest_terminate_build 0
+Name: python-solana
+Version: 0.29.2
+Release: 1
+Summary: Solana Python API
+License: MIT
+URL: https://github.com/michaelhly/solanapy
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/12/ed/55a245cbce9061f0990f40dad594fa5aa936ea1d77bcf618462745e90270/solana-0.29.2.tar.gz
+BuildArch: noarch
+
+Requires: python3-construct-typing
+Requires: python3-httpx
+Requires: python3-typing-extensions
+Requires: python3-cachetools
+Requires: python3-types-cachetools
+Requires: python3-websockets
+Requires: python3-solders
+
+%description
+[![Actions
+Status](https://github.com/michaelhly/solanapy/workflows/CI/badge.svg)](https://github.com/michaelhly/solanapy/actions?query=workflow%3ACI)
+[![PyPI version](https://badge.fury.io/py/solana.svg)](https://badge.fury.io/py/solana)
+[![Codecov](https://codecov.io/gh/michaelhly/solana-py/branch/master/graph/badge.svg)](https://codecov.io/gh/michaelhly/solana-py/branch/master)
+[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/michaelhly/solana-py/blob/master/LICENSE)
+[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
+# Solana.py
+**🐍 The Solana Python SDK 🐍**
+Solana.py is the base Python library for interacting with Solana.
+You can use it to build transactions and interact
+with the
+[Solana JSON RPC API](https://docs.solana.com/apps/jsonrpc-api),
+much like you would do with
+[solana-web3.js](https://github.com/solana-labs/solana-web3.js/)
+It also covers the
+[SPL Token Program](https://spl.solana.com/token).
+[Latest Documentation](https://michaelhly.github.io/solana-py/).
+Note: This library uses many core types from the [Solders](https://github.com/kevinheavey/solders) package which used to be provided by `solana-py` itself. If you are upgrading from an old version and you're looking for something that was deleted, it's probably in `solders` now.
+**⚓︎ See also: [AnchorPy](https://github.com/kevinheavey/anchorpy),**
+**a Python client for**
+**[Anchor](https://project-serum.github.io/anchor/getting-started/introduction.html)-based**
+**programs on Solana. ⚓︎**
+## ⚡ Quickstart
+### Installation
+```sh
+pip install solana
+```
+### General Usage
+Note: check out the
+[Solana Cookbook](https://solanacookbook.com/)
+for more detailed examples!
+```py
+import solana
+```
+### API Client
+```py
+from solana.rpc.api import Client
+http_client = Client("https://api.devnet.solana.com")
+```
+### Async API Client
+```py
+import asyncio
+from solana.rpc.async_api import AsyncClient
+async def main():
+ async with AsyncClient("https://api.devnet.solana.com") as client:
+ res = await client.is_connected()
+ print(res) # True
+ # Alternatively, close the client explicitly instead of using a context manager:
+ client = AsyncClient("https://api.devnet.solana.com")
+ res = await client.is_connected()
+ print(res) # True
+ await client.close()
+asyncio.run(main())
+```
+### Websockets Client
+```py
+import asyncio
+from asyncstdlib import enumerate
+from solana.rpc.websocket_api import connect
+async def main():
+ async with connect("wss://api.devnet.solana.com") as websocket:
+ await websocket.logs_subscribe()
+ first_resp = await websocket.recv()
+ subscription_id = first_resp.result
+ next_resp = await websocket.recv()
+ print(next_resp)
+ await websocket.logs_unsubscribe(subscription_id)
+ # Alternatively, use the client as an infinite asynchronous iterator:
+ async with connect("wss://api.devnet.solana.com") as websocket:
+ await websocket.logs_subscribe()
+ first_resp = await websocket.recv()
+ subscription_id = first_resp.result
+ async for idx, msg in enumerate(websocket):
+ if idx == 3:
+ break
+ print(msg)
+ await websocket.logs_unsubscribe(subscription_id)
+asyncio.run(main())
+```
+## 🔨 Development
+### Setup
+1. Install [poetry](https://python-poetry.org/docs/#installation)
+2. Install dev dependencies:
+```sh
+poetry install
+```
+3. Activate the poetry shell.
+```sh
+poetry shell
+```
+### Lint
+```sh
+make lint
+```
+### Tests
+```sh
+# All tests
+make tests
+# Unit tests only
+make unit-tests
+# Integration tests only
+make int-tests
+```
+
+%package -n python3-solana
+Summary: Solana Python API
+Provides: python-solana
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-solana
+[![Actions
+Status](https://github.com/michaelhly/solanapy/workflows/CI/badge.svg)](https://github.com/michaelhly/solanapy/actions?query=workflow%3ACI)
+[![PyPI version](https://badge.fury.io/py/solana.svg)](https://badge.fury.io/py/solana)
+[![Codecov](https://codecov.io/gh/michaelhly/solana-py/branch/master/graph/badge.svg)](https://codecov.io/gh/michaelhly/solana-py/branch/master)
+[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/michaelhly/solana-py/blob/master/LICENSE)
+[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
+# Solana.py
+**🐍 The Solana Python SDK 🐍**
+Solana.py is the base Python library for interacting with Solana.
+You can use it to build transactions and interact
+with the
+[Solana JSON RPC API](https://docs.solana.com/apps/jsonrpc-api),
+much like you would do with
+[solana-web3.js](https://github.com/solana-labs/solana-web3.js/)
+It also covers the
+[SPL Token Program](https://spl.solana.com/token).
+[Latest Documentation](https://michaelhly.github.io/solana-py/).
+Note: This library uses many core types from the [Solders](https://github.com/kevinheavey/solders) package which used to be provided by `solana-py` itself. If you are upgrading from an old version and you're looking for something that was deleted, it's probably in `solders` now.
+**⚓︎ See also: [AnchorPy](https://github.com/kevinheavey/anchorpy),**
+**a Python client for**
+**[Anchor](https://project-serum.github.io/anchor/getting-started/introduction.html)-based**
+**programs on Solana. ⚓︎**
+## ⚡ Quickstart
+### Installation
+```sh
+pip install solana
+```
+### General Usage
+Note: check out the
+[Solana Cookbook](https://solanacookbook.com/)
+for more detailed examples!
+```py
+import solana
+```
+### API Client
+```py
+from solana.rpc.api import Client
+http_client = Client("https://api.devnet.solana.com")
+```
+### Async API Client
+```py
+import asyncio
+from solana.rpc.async_api import AsyncClient
+async def main():
+ async with AsyncClient("https://api.devnet.solana.com") as client:
+ res = await client.is_connected()
+ print(res) # True
+ # Alternatively, close the client explicitly instead of using a context manager:
+ client = AsyncClient("https://api.devnet.solana.com")
+ res = await client.is_connected()
+ print(res) # True
+ await client.close()
+asyncio.run(main())
+```
+### Websockets Client
+```py
+import asyncio
+from asyncstdlib import enumerate
+from solana.rpc.websocket_api import connect
+async def main():
+ async with connect("wss://api.devnet.solana.com") as websocket:
+ await websocket.logs_subscribe()
+ first_resp = await websocket.recv()
+ subscription_id = first_resp.result
+ next_resp = await websocket.recv()
+ print(next_resp)
+ await websocket.logs_unsubscribe(subscription_id)
+ # Alternatively, use the client as an infinite asynchronous iterator:
+ async with connect("wss://api.devnet.solana.com") as websocket:
+ await websocket.logs_subscribe()
+ first_resp = await websocket.recv()
+ subscription_id = first_resp.result
+ async for idx, msg in enumerate(websocket):
+ if idx == 3:
+ break
+ print(msg)
+ await websocket.logs_unsubscribe(subscription_id)
+asyncio.run(main())
+```
+## 🔨 Development
+### Setup
+1. Install [poetry](https://python-poetry.org/docs/#installation)
+2. Install dev dependencies:
+```sh
+poetry install
+```
+3. Activate the poetry shell.
+```sh
+poetry shell
+```
+### Lint
+```sh
+make lint
+```
+### Tests
+```sh
+# All tests
+make tests
+# Unit tests only
+make unit-tests
+# Integration tests only
+make int-tests
+```
+
+%package help
+Summary: Development documents and examples for solana
+Provides: python3-solana-doc
+%description help
+[![Actions
+Status](https://github.com/michaelhly/solanapy/workflows/CI/badge.svg)](https://github.com/michaelhly/solanapy/actions?query=workflow%3ACI)
+[![PyPI version](https://badge.fury.io/py/solana.svg)](https://badge.fury.io/py/solana)
+[![Codecov](https://codecov.io/gh/michaelhly/solana-py/branch/master/graph/badge.svg)](https://codecov.io/gh/michaelhly/solana-py/branch/master)
+[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/michaelhly/solana-py/blob/master/LICENSE)
+[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
+# Solana.py
+**🐍 The Solana Python SDK 🐍**
+Solana.py is the base Python library for interacting with Solana.
+You can use it to build transactions and interact
+with the
+[Solana JSON RPC API](https://docs.solana.com/apps/jsonrpc-api),
+much like you would do with
+[solana-web3.js](https://github.com/solana-labs/solana-web3.js/)
+It also covers the
+[SPL Token Program](https://spl.solana.com/token).
+[Latest Documentation](https://michaelhly.github.io/solana-py/).
+Note: This library uses many core types from the [Solders](https://github.com/kevinheavey/solders) package which used to be provided by `solana-py` itself. If you are upgrading from an old version and you're looking for something that was deleted, it's probably in `solders` now.
+**⚓︎ See also: [AnchorPy](https://github.com/kevinheavey/anchorpy),**
+**a Python client for**
+**[Anchor](https://project-serum.github.io/anchor/getting-started/introduction.html)-based**
+**programs on Solana. ⚓︎**
+## ⚡ Quickstart
+### Installation
+```sh
+pip install solana
+```
+### General Usage
+Note: check out the
+[Solana Cookbook](https://solanacookbook.com/)
+for more detailed examples!
+```py
+import solana
+```
+### API Client
+```py
+from solana.rpc.api import Client
+http_client = Client("https://api.devnet.solana.com")
+```
+### Async API Client
+```py
+import asyncio
+from solana.rpc.async_api import AsyncClient
+async def main():
+ async with AsyncClient("https://api.devnet.solana.com") as client:
+ res = await client.is_connected()
+ print(res) # True
+ # Alternatively, close the client explicitly instead of using a context manager:
+ client = AsyncClient("https://api.devnet.solana.com")
+ res = await client.is_connected()
+ print(res) # True
+ await client.close()
+asyncio.run(main())
+```
+### Websockets Client
+```py
+import asyncio
+from asyncstdlib import enumerate
+from solana.rpc.websocket_api import connect
+async def main():
+ async with connect("wss://api.devnet.solana.com") as websocket:
+ await websocket.logs_subscribe()
+ first_resp = await websocket.recv()
+ subscription_id = first_resp.result
+ next_resp = await websocket.recv()
+ print(next_resp)
+ await websocket.logs_unsubscribe(subscription_id)
+ # Alternatively, use the client as an infinite asynchronous iterator:
+ async with connect("wss://api.devnet.solana.com") as websocket:
+ await websocket.logs_subscribe()
+ first_resp = await websocket.recv()
+ subscription_id = first_resp.result
+ async for idx, msg in enumerate(websocket):
+ if idx == 3:
+ break
+ print(msg)
+ await websocket.logs_unsubscribe(subscription_id)
+asyncio.run(main())
+```
+## 🔨 Development
+### Setup
+1. Install [poetry](https://python-poetry.org/docs/#installation)
+2. Install dev dependencies:
+```sh
+poetry install
+```
+3. Activate the poetry shell.
+```sh
+poetry shell
+```
+### Lint
+```sh
+make lint
+```
+### Tests
+```sh
+# All tests
+make tests
+# Unit tests only
+make unit-tests
+# Integration tests only
+make int-tests
+```
+
+%prep
+%autosetup -n solana-0.29.2
+
+%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-solana -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed Apr 12 2023 Python_Bot <Python_Bot@openeuler.org> - 0.29.2-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..a7b2420
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+1f1fe2b437846ed985b14f93472eed7b solana-0.29.2.tar.gz