diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-12 04:11:25 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-12 04:11:25 +0000 |
commit | 7fd05494f4db388141c7a4a851e3603ba80f487d (patch) | |
tree | db37f2aebd73d053a1c7b70ea999b5dae043b5f0 | |
parent | 755d6e04d4f48319a93108ad8fb790ee523d628f (diff) |
automatic import of python-solana
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-solana.spec | 385 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 387 insertions, 0 deletions
@@ -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 +[](https://github.com/michaelhly/solanapy/actions?query=workflow%3ACI) +[](https://badge.fury.io/py/solana) +[](https://codecov.io/gh/michaelhly/solana-py/branch/master) +[](https://github.com/michaelhly/solana-py/blob/master/LICENSE) +[](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 +[](https://github.com/michaelhly/solanapy/actions?query=workflow%3ACI) +[](https://badge.fury.io/py/solana) +[](https://codecov.io/gh/michaelhly/solana-py/branch/master) +[](https://github.com/michaelhly/solana-py/blob/master/LICENSE) +[](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 +[](https://github.com/michaelhly/solanapy/actions?query=workflow%3ACI) +[](https://badge.fury.io/py/solana) +[](https://codecov.io/gh/michaelhly/solana-py/branch/master) +[](https://github.com/michaelhly/solana-py/blob/master/LICENSE) +[](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 @@ -0,0 +1 @@ +1f1fe2b437846ed985b14f93472eed7b solana-0.29.2.tar.gz |