Previously this library was a soft fork of bukson/steampy with intend to provide asynchronous methods and proxies support. But now it standalone project.
Created for steam trading purposes mostly. Inspired by DoctorMcKay/node-steamcommunity
Important
The project is unstable and there might be some breaking changes in the future unless stable (first major) version is released.
Take a look at TODO
See full documentation here π
pip install aiosteampy
pipenv install aiosteampy
poetry add aiosteampy
Project have some extras currencies converter,
socks proxies.
To install them all, please, use aiosteampy[all]
install target:
poetry add aiosteampy[all]
Tip
aiohttp docs recommends installing
speedups (aiodns
, cchardet
, ...)
AIOSTEAMPY use aiohttp underneath to do asynchronous requests to steam servers, with modern async/await syntax.
- Stateless: low-middle layer API wrapper of some steam services and methods like market, tradeoffers, confirmations, steamguard, etc.
- Declarative: there is models or
TypedDict
s for every data. - Typed: High-end support with extensive typing, tested on
VSCode
andPyCharm
. - Simple: Fit most important related to steam trading process methods.
- Web proxy support.
- Operate with steam trade offers.
- Sell, buy items on market. Place, cancel orders.
- Login trough steam to 3rd party sites.
- Fetch data from market.
- Manipulate many accounts with proxies for each session.
- Get and load cookies to stay logged in (session persistence).
- Convert market prices into different currencies.
- Chat.
- Get apps, packages.
- All, that need connection to CM.
- Interact with game servers (inspect CS2 (ex. CSGO) items, ...).
- Social interaction(groups, clans).
- Handle entities (listings, items, tradeoffers) lifecycle for easy if you need to store it.
Warning
Test cases and test code as a whole are deprecated and will not work until they are updated (a lot of work). I'll leave the code and this heading here as a reminder π«£
Hard to say roadmap. Can be a little changed or updated later, get ready.
Path to first stable release. Non-exhaustive list, scheduled tasks can be done earlier than the version mentioned, but not otherwise.
- Listings, items, offers pagination/iteration
- Get single item from inventory as browser does
- Change client username method
- Remove storage methods. Caching entities must be user responsibility
- Rename
fetch_...
methods toget_...
to remove annoying methods symantic mess -
Web browser mechanism to fetch trade offers fromSteam
, avoidingSteam Web Api
- Edit profile privacy settings
- Context managers as helpers to login/logout, load/dump or get/put cookies
- Fetch/paginate over market search pages
-
Steam user
model with minimal attrs, retrieving/fetching - Refresh
access_token
mechanism
- Tests with
Steam API
mocking. Target coverage ~70%. Key points (listings, inventory items, trade offers) testing suits is mandatory - Maturity, battle-testing in more different cases by more participants/users
There is no rules or requirements to contribute. Feedbacks, suggests, other are welcome. I will be very grateful for helping me get the things right.