Python-valve
Python-valve is a Python library which intends to provide an all-in-one interface to various Valve products and services, including:
Source servers
A2S server queries
RCON
Source master server
Steam web API
Local Steam Clients
Valve Data Format/KeyValues (.vdf)
To get started, install Python-valve with pip: pip install python-valve.
RCON Example
In this example we connect to a Source servers remote console and issue a simple echo command to it.
from valve.source.rcon import RCON
SERVER_ADDRESS = ("...", 27015)
PASSWORD = "top_secret"
with RCON(SERVER_ADDRESS, PASSWORD) as rcon:
print(rcon("echo Hello, world!"))
Server Query Example
In this example we demonstrate the Source master server and A2S query implementations by listing all Team Fortress 2 servers in Europe and Asia running the map ctf_2fort, along with the players on each server sorted by their score.
import valve.source
import valve.source.a2s
import valve.source.master_server
with valve.source.master_server.MasterServerQuerier() as msq:
try:
for address in msq.find(region=[u"eu", u"as"],
gamedir=u"tf",
map=u"ctf_2fort"):
with valve.source.a2s.ServerQuerier(address) as server:
info = server.info()
players = server.players()
print("{player_count}/{max_players} {server_name}".format(**info))
for player in sorted(players["players"],
key=lambda p: p["score"], reverse=True):
print("{score} {name}".format(**player))
except valve.source.NoResponseError:
print "Master server request timed out!"
Versioning
Python-valve uses Semantic Versioning. At this time, Python-valve is yet to reach its 1.0 release. Hence, every minor version should be considered to potentially contain breaking changes. Hence, when specifying Python-valve as a requirement, either in setup.py or requirements.txt, it’s advised to to pin the specific minor version. E.g. python-valve==0.2.0.
Testing
Python-valve uses Pytest for running its test suite. Unit test coverage is always improving. There are also functional tests included which run against real Source servers.
If working on Python-valve use the following to install the test dependencies and run the tests:
pip install -e .[test]
py.test tests/ --cov valve/
Documentation
Documentation is written using Sphinx and is hosted on Read the Docs.
If working on Python-valve use the following to install the documentation dependencies, build the docs and then open them in a browser.
pip install -e .[docs]
(cd docs/ && make html)
xdg-open docs/_build/html/index.html
Python 2
Python-valve supports Python 2.7! However, it’s important to bare in mind that Python 2.7 will not be maintained past 2020. Python-valve may drop support for Python 2.7 in a future major release before 2020 in order to make use of new, non-backwards compatible Python 3 features.
It’s strongly encouraged that new Python-valve projects use Python 3.
Trademarks
Valve, the Valve logo, Half-Life, the Half-Life logo, the Lambda logo, Steam, the Steam logo, Team Fortress, the Team Fortress logo, Opposing Force, Day of Defeat, the Day of Defeat logo, Counter-Strike, the Counter-Strike logo, Source, the Source logo, Counter-Strike: Condition Zero, Portal, the Portal logo, Dota, the Dota 2 logo, and Defense of the Ancients are trademarks and/or registered trademarks of Valve Corporation.
Any reference to these are purely for the purpose of identification. Valve Corporation is not affiliated with Python-valve or any Python-valve contributors in any way.
Metadata
Release files for python-valve 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| python-valve-0.2.1.tar.gz | 43.7 kB | Without provenance | Details for python-valve-0.2.1.tar.gz |
Release files / python-valve-0.2.1.tar.gz
| Download URL | python-valve-0.2.1.tar.gz |
|---|---|
| Size | 43.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
589283d2235bd14992c2c81f98112b20b7aeac5cb72da0597fd57eea72a19c95
|
|
BLAKE2b-256 checksum How to use checksums |
504e4887a216bc7f562b55fbc95259d46eccdd19d682755b8d09c6d82e8f77b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for python-valve 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.