Skip to main content

Asyncsteampy

license pypi Tests codecov CodeFactor versions black steam

This library is a soft fork of bukson/steampy ⚠ and created only to provide asynchronous methods and proxies support.

Docs, examples you can read from original README. Differences of usage and new features listed below 📖

Must work with python 3.6 and above like origin, but tested only on 3.10


Navigation


Installation

pip install asyncsteampy

pipenv install asyncsteampy

poetry add asyncsteampy

Login&Init

Now you don't need to pass username, password, steamguard args to login method, you can do this in constructor.

from asyncsteampy.client import SteamClient as AsyncSteamClient

async_steam_client = AsyncSteamClient('MY_USERNAME', 'MY_PASSWORD', 'PATH_TO_STEAMGUARD_FILE/STEAMGUARD_DICT',
                                      api_key="API_KEY")

Instead of passing str path or pathlib.Path to steamguard.txt file or even json serialized string you can just use dict object:

steamguard = {
    "steamid": "YOUR_STEAM_ID_64",
    "shared_secret": "YOUR_SHARED_SECRET",
    "identity_secret": "YOUR_IDENTITY_SECRET",
}

AsyncIO

All methods that require connection to steam network now have asyncio support (it uses aiohttp) and are asynchronous : client, market, chat.

from asyncsteampy.client import SteamClient as AsyncSteamClient

async_steam_client = AsyncSteamClient('MY_USERNAME', 'MY_PASSWORD', 'PATH_TO_STEAMGUARD_FILE/STEAMGUARD_DICT',
                                      api_key="API_KEY")
await async_steam_client.login()
buy_order_id = "some_buy_order_id"
response = await async_steam_client.market.cancel_buy_order(buy_order_id)
# do other async work
await async_steam_client.close(logout=True)

If you end your operations, ⚠️ keep in mind, you always need to close your async_steam_client. This will do logout (if logout=True) and close aiohttp session properly. Also, you can await async_steam_client.logout() without closing session if you need this for some reason.

Async context manager usage example:

from asyncsteampy.client import SteamClient as AsyncSteamClient

async with AsyncSteamClient('MY_USERNAME', 'MY_PASSWORD', 'PATH_TO_STEAMGUARD_FILE/STEAMGUARD_DICT',
                            api_key="API_KEY") as async_steam_client:
    await async_steam_client.do_what_you_need()

There you don't need to call close, async context manager do it automatically when execution passes the block of code.

Proxy support

If your proxy type is socks4/5 you should look at this small but precious library aiohttp-socks, if proxy type http/https, or you don't like aiohttp-socks you can use aiohttp-proxy instead.

import aiohttp
from aiohttp_socks import ProxyConnector

from asyncsteampy.client import SteamClient as AsyncSteamClient

connector = ProxyConnector.from_url('proxy_type://proxy_url_with_or_no_auth')
session_with_proxy = aiohttp.ClientSession(connector=connector)

# Finally, pass session object in AsyncSteamClient

async_steam_client = AsyncSteamClient(..., session=session_with_proxy)
async with AsyncSteamClient(..., session=session_with_proxy) as async_steam_client:
    ...

Tests

To run tests clone repo, install with dev dependencies

poetry install

Create env variables listed in tests/data and run pytest from project dir:

pytest

Release files for asyncsteampy 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for asyncsteampy 0.1.3
File Size Uploaded
asyncsteampy-0.1.3.tar.gz 18.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for asyncsteampy 0.1.3
File Interpreter ABI Platform
asyncsteampy-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 38.2 kB

Release files / asyncsteampy-0.1.3.tar.gz

Download URL asyncsteampy-0.1.3.tar.gz
Size 18.1 kB
Tags Source
SHA-256 checksum
How to use checksums
d2b6ceab23c84cc9ace78654884b1ff21c00c47248a4e59b0d3ffe9bef0c065d
BLAKE2b-256 checksum
How to use checksums
4f02551b178998f3f2822652fa4e5e4040185e1bf8d8fd6038854f1ddf18188b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.2.2 CPython/3.11.0 Linux/5.15.0-1022-azure

Release files / asyncsteampy-0.1.3-py3-none-any.whl

Download URL asyncsteampy-0.1.3-py3-none-any.whl
Size 20.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c71d507997933dec2fa24eb416d1763af7f6e8ead064e843ed7d739f03bdb5ad
BLAKE2b-256 checksum
How to use checksums
963d8c17aa3e420216912343c6b0c9000606642ddf7e62939d149c6d97f46ec0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.2.2 CPython/3.11.0 Linux/5.15.0-1022-azure

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page