Skip to content

Commit 8a5c4e3

Browse files
committed
Use 'uv' for dependency management
1 parent 65a8fab commit 8a5c4e3

3 files changed

Lines changed: 1754 additions & 43 deletions

File tree

README.md

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Steam Python
22

33
![Documentation](https://img.shields.io/badge/Docs-brightgreen?link=https%3A%2F%2Fpython.steam.style)
4-
![Python Version](https://img.shields.io/badge/python-3.8%2B-blue)
4+
![Python Version](https://img.shields.io/badge/python-3.10%2B-blue)
55
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
66

77
A fast and lightweight Python interface for interacting with Steam. Largely inspired by [Valve Python's Steam package](https://github.com/ValvePython/steam) and [the fork by Solstice Game Studios](https://github.com/solsticegamestudios/steam), this library introduces various tweaks to modernize and improve the structure, including complete typing support and modern dependencies. Some logic is also taken from [SteamRE's SteamKit](https://github.com/SteamRE/SteamKit).
@@ -52,14 +52,29 @@ if __name__ == "__main__":
5252

5353
## Development
5454

55-
To set up the development environment:
55+
This project uses uv for Python dependency management.
5656

57-
1. Clone the repository.
58-
2. Install dependencies:
57+
1. Prerequisites
5958

60-
```bash
61-
pip install -e ".[dev]"
62-
```
59+
Install `uv` if you haven't already.
60+
61+
```bash
62+
# macOS/Linux
63+
curl -LsSf https://astral.sh/uv/install.sh | sh
64+
65+
# Windows
66+
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
67+
```
68+
69+
2. Setup the project:
70+
71+
Clone the repository and sync the dependencies. uv will automatically download the correct Python version and create a virtual environment for you:
72+
73+
```bash
74+
git clone https://github.com/Steam-Style/steam-python.git
75+
cd steam-python
76+
uv sync --all-groups
77+
```
6378

6479
---
6580

pyproject.toml

Lines changed: 20 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,34 @@
1-
[build-system]
2-
requires = ["setuptools>=61.0"]
3-
build-backend = "setuptools.build_meta"
4-
51
[project]
62
name = "steam-python"
73
version = "0.0.1"
8-
description = "A fast and lightweight Python interface for interacting with Steam."
4+
description = "A fast and lightweight Python interface for interacting with Steam asynchronously."
5+
license = "MIT"
96
readme = "README.md"
10-
requires-python = ">=3.8"
11-
classifiers = [
12-
"Programming Language :: Python :: 3",
13-
"License :: OSI Approved :: MIT License",
14-
"Operating System :: OS Independent",
15-
]
7+
requires-python = ">=3.10"
168
dependencies = [
17-
"requests",
18-
"aiohttp",
19-
"pycryptodome",
20-
"protobuf",
9+
"requests (>=2.32.5,<3.0.0)",
10+
"aiohttp (>=3.13.2,<4.0.0)",
11+
"pycryptodome (>=3.23.0,<4.0.0)",
12+
"protobuf (>=6.33.2,<7.0.0)",
2113
]
2214

23-
[project.optional-dependencies]
15+
[dependency-groups]
2416
dev = [
25-
"grpcio-tools",
26-
"pylint",
27-
"pytest",
28-
"pytest-asyncio",
17+
"grpcio-tools (>=1.76.0,<2.0.0)",
18+
"pylint (>=4.0.4,<5.0.0)",
19+
"pytest (>=9.0.2,<10.0.0)",
20+
"pytest-asyncio (>=1.3.0,<2.0.0)",
2921
]
3022
docs = [
31-
"mkdocs",
32-
"mkdocs-material",
33-
"mkdocstrings[python]",
23+
"mkdocs (>=1.6.1,<2.0.0)",
24+
"mkdocs-material (>=9.7.1,<10.0.0)",
25+
"mkdocstrings[python] (>=1.0.0,<2.0.0)",
3426
]
3527

36-
[tool.setuptools.packages.find]
37-
where = ["src"]
3828

39-
[project.urls]
40-
"Homepage" = "https://python.steam.style"
41-
"Bug Tracker" = "https://github.com/Steam-Style/steam/issues"
42-
43-
[tool.pylint.main]
44-
ignore = ["CVS", "protobufs", "enums"]
29+
[build-system]
30+
requires = ["hatchling"]
31+
build-backend = "hatchling.build"
4532

46-
[tool.pylint.messages_control]
47-
disable = [
48-
"missing-module-docstring",
49-
"unused-argument",
50-
]
33+
[tool.hatch.build.targets.wheel]
34+
packages = ["src/steam"]

0 commit comments

Comments
 (0)