steam.py
A modern, easy to use, and async ready package to interact with the Steam API. Heavily inspired by discord.py and borrowing functionality from ValvePython/steam.
Key Features
- Modern Pythonic API using
async
/await
syntax - Command extension to aid with bot creation
- Easy to use with an object-oriented design
- Fully typed hinted for faster development
Installation
Python 3.7 or higher is required
To install the library just run either of the following commands:
# Linux/macOS
python3 -m pip install -U steamio
# Windows
py -m pip install -U steamio
Or for the development version.
# Linux/macOS
python3 -m pip install -U "steamio @ git+https://github.com/Gobot1234/steam.py@main"
# Windows
py -m pip install -U "steamio @ git+https://github.com/Gobot1234/steam.py@main"
Quick Example
import steam
class MyClient(steam.Client):
async def on_ready(self) -> None:
print("Logged in as", self.user)
async def on_trade_receive(self, trade: steam.TradeOffer) -> None:
await trade.partner.send("Thank you for your trade")
print(f"Received trade: #{trade.id}")
print("Trade partner is:", trade.partner)
print("We would send:", len(trade.items_to_send), "items")
print("We would receive:", len(trade.items_to_receive), "items")
if trade.is_gift():
print("Accepting the trade as it is a gift")
await trade.accept()
client = MyClient()
client.run("username", "password")
Bot Example
from steam.ext import commands
bot = commands.Bot(command_prefix="!")
@bot.command
async def ping(ctx: commands.Context) -> None:
await ctx.send("Pong!")
bot.run("username", "password")