aiosteampy


Nameaiosteampy JSON
Version 0.7.1 PyPI version JSON
download
home_pagehttps://aiosteampy.somespecial.one
SummaryTrade and interact with steam market, webapi, guard
upload_time2024-11-11 16:53:41
maintainerNone
docs_urlNone
authorDmytro Tkachenko
requires_python<4.0,>=3.10
licenseMIT
keywords steam trade steamguard asyncio steam-market
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <!--header-start-->

# AIOSTEAMPY

[![Made in Ukraine](https://img.shields.io/badge/made_in-ukraine-ffd700.svg?labelColor=0057b7)](https://stand-with-ukraine.pp.ua)
[![steam](https://shields.io/badge/steam-1b2838?logo=steam)](https://store.steampowered.com/)
[![license](https://img.shields.io/github/license/somespecialone/aiosteampy)](https://github.com/somespecialone/aiosteampy/blob/master/LICENSE)
[![Poetry](https://img.shields.io/endpoint?url=https://python-poetry.org/badge/v0.json)](https://python-poetry.org/)
[![black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Snyk Badge](https://img.shields.io/badge/Snyk-4C4A73?logo=snyk&logoColor=fff&style=flat)](https://security.snyk.io/package/pip/aiosteampy)
[![pypi](https://img.shields.io/pypi/v/aiosteampy)](https://pypi.org/project/aiosteampy)
[![versions](https://img.shields.io/pypi/pyversions/aiosteampy)](https://pypi.org/project/aiosteampy)
[![Tests](https://github.com/somespecialone/aiosteampy/actions/workflows/tests.yml/badge.svg)](https://github.com/somespecialone/aiosteampy/actions/workflows/tests.yml)
[![Publish](https://github.com/somespecialone/aiosteampy/actions/workflows/publish.yml/badge.svg)](https://github.com/somespecialone/aiosteampy/actions/workflows/publish.yml)
[![Docs](https://github.com/somespecialone/aiosteampy/actions/workflows/docs.yml/badge.svg)](https://github.com/somespecialone/aiosteampy/actions/workflows/docs.yml)
[![codecov](https://codecov.io/gh/somespecialone/aiosteampy/branch/master/graph/badge.svg?token=SP7EQKPIQ3)](https://codecov.io/gh/somespecialone/aiosteampy)
[![CodeFactor](https://www.codefactor.io/repository/github/somespecialone/aiosteampy/badge)](https://www.codefactor.io/repository/github/somespecialone/aiosteampy)
[![health](https://snyk.io//advisor/python/aiosteampy/badge.svg)](https://snyk.io//advisor/python/aiosteampy)

Previously this library was a soft fork of [bukson/steampy](https://github.com/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](https://github.com/DoctorMcKay/node-steamcommunity)

---

[![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner-direct-single.svg)](https://stand-with-ukraine.pp.ua)

<!--header-end-->

> [!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](#todo-)
> 
> See full documentation [here](https://aiosteampy.somespecial.one/) ๐Ÿ“–

<!--install-start-->

## Installation

```shell
pip install aiosteampy
```

```shell
pipenv install aiosteampy
```

```shell
poetry add aiosteampy
```

Project have some extras [currencies converter](https://aiosteampy.somespecial.one/ext/converter/),
[socks proxies](https://aiosteampy.somespecial.one/proxies).
To install them all, please, use `aiosteampy[all]` install target:

```shell
poetry add aiosteampy[all]
```

<!--install-end-->

> [!TIP]
> [aiohttp docs](https://docs.aiohttp.org/en/stable/#installing-all-speedups-in-one-command) recommends installing
> speedups (`aiodns`, `cchardet`, ...)

<!--intro-start-->

AIOSTEAMPY use [aiohttp](https://github.com/aio-libs/aiohttp) underneath to do asynchronous requests to steam servers,
with modern async/await syntax.

## Key features โœจ

- **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` and `PyCharm`.
- **Simple**: Fit most important related to steam trading process methods.
- **Web proxy** support.

## What can I do with this

- 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.

## What I can't do

- 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.

<!--intro-end-->

## Tests ๐Ÿงช

> [!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 ๐Ÿซฃ

[//]: # (Read [test documentation]&#40;https://aiosteampy.somespecial.one/tests/&#41; ๐Ÿ“–)

<!--footer-start-->

## TODO ๐Ÿ“ƒ

> 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.

### v0.6.0

- [x] Listings, items, offers pagination/iteration
- [x] Get single item from inventory as browser does
- [x] Change client username method

### v0.7.0

- [x] Remove storage methods. Caching entities must be user responsibility
- [x] Rename `fetch_...` methods to `get_...` to remove annoying methods symantic mess
- [x] ~~Web browser mechanism to fetch trade offers from `Steam`, avoiding `Steam Web Api`~~
- [x] Edit profile privacy settings

### v0.8.0

- [ ] Context managers as helpers to login/logout, load/dump or get/put cookies
- [x] Fetch/paginate over market search pages

### v0.9.0

- [ ] `Steam user` model with minimal attrs, retrieving/fetching
- [x] Refresh `access_token` mechanism

### v1.0.0

- [ ] 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 

## Contribution ๐Ÿ’›

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.

## Credits

- [bukson/steampy](https://github.com/bukson/steampy)
- [aiohttp-socks](https://github.com/romis2012/aiohttp-socks)
- [croniter](https://github.com/kiorky/croniter)
- [DoctorMcKay/node-steamcommunity](https://github.com/DoctorMcKay/node-steamcommunity)
- [Identifying Steam items](https://dev.doctormckay.com/topic/332-identifying-steam-items/)
- [Revadike/InternalSteamWebAPI](https://github.com/Revadike/InternalSteamWebAPI)
- [Gobot1234/steam.py](https://github.com/Gobot1234/steam.py)
- [Steam Market id's storage repo](https://github.com/somespecialone/steam-item-name-ids)
- [steamapi.xpaw.me](https://steamapi.xpaw.me/)
- [Steam Exchange Rate Tracker](https://github.com/somespecialone/sert)
- [ethanfurman/aenum](https://github.com/ethanfurman/aenum)

<!--footer-end-->


            

Raw data

            {
    "_id": null,
    "home_page": "https://aiosteampy.somespecial.one",
    "name": "aiosteampy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": null,
    "keywords": "steam, trade, steamguard, asyncio, steam-market",
    "author": "Dmytro Tkachenko",
    "author_email": "itsme@somespecial.one",
    "download_url": "https://files.pythonhosted.org/packages/3e/52/db21f363baffeb460cab2deffb384b8d3d1ece68505553f543ac6ff6027d/aiosteampy-0.7.1.tar.gz",
    "platform": null,
    "description": "<!--header-start-->\n\n# AIOSTEAMPY\n\n[![Made in Ukraine](https://img.shields.io/badge/made_in-ukraine-ffd700.svg?labelColor=0057b7)](https://stand-with-ukraine.pp.ua)\n[![steam](https://shields.io/badge/steam-1b2838?logo=steam)](https://store.steampowered.com/)\n[![license](https://img.shields.io/github/license/somespecialone/aiosteampy)](https://github.com/somespecialone/aiosteampy/blob/master/LICENSE)\n[![Poetry](https://img.shields.io/endpoint?url=https://python-poetry.org/badge/v0.json)](https://python-poetry.org/)\n[![black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Snyk Badge](https://img.shields.io/badge/Snyk-4C4A73?logo=snyk&logoColor=fff&style=flat)](https://security.snyk.io/package/pip/aiosteampy)\n[![pypi](https://img.shields.io/pypi/v/aiosteampy)](https://pypi.org/project/aiosteampy)\n[![versions](https://img.shields.io/pypi/pyversions/aiosteampy)](https://pypi.org/project/aiosteampy)\n[![Tests](https://github.com/somespecialone/aiosteampy/actions/workflows/tests.yml/badge.svg)](https://github.com/somespecialone/aiosteampy/actions/workflows/tests.yml)\n[![Publish](https://github.com/somespecialone/aiosteampy/actions/workflows/publish.yml/badge.svg)](https://github.com/somespecialone/aiosteampy/actions/workflows/publish.yml)\n[![Docs](https://github.com/somespecialone/aiosteampy/actions/workflows/docs.yml/badge.svg)](https://github.com/somespecialone/aiosteampy/actions/workflows/docs.yml)\n[![codecov](https://codecov.io/gh/somespecialone/aiosteampy/branch/master/graph/badge.svg?token=SP7EQKPIQ3)](https://codecov.io/gh/somespecialone/aiosteampy)\n[![CodeFactor](https://www.codefactor.io/repository/github/somespecialone/aiosteampy/badge)](https://www.codefactor.io/repository/github/somespecialone/aiosteampy)\n[![health](https://snyk.io//advisor/python/aiosteampy/badge.svg)](https://snyk.io//advisor/python/aiosteampy)\n\nPreviously this library was a soft fork of [bukson/steampy](https://github.com/bukson/steampy) with intend to\nprovide asynchronous methods and proxies support.\nBut now it _standalone_ project. \n\n> Created for steam trading purposes mostly.\nInspired by [DoctorMcKay/node-steamcommunity](https://github.com/DoctorMcKay/node-steamcommunity)\n\n---\n\n[![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner-direct-single.svg)](https://stand-with-ukraine.pp.ua)\n\n<!--header-end-->\n\n> [!IMPORTANT]\n> The project is unstable and there might be some breaking changes in the future unless stable (**first major**) version \n> is released.\n> \n> Take a look at [TODO](#todo-)\n> \n> See full documentation [here](https://aiosteampy.somespecial.one/) \ud83d\udcd6\n\n<!--install-start-->\n\n## Installation\n\n```shell\npip install aiosteampy\n```\n\n```shell\npipenv install aiosteampy\n```\n\n```shell\npoetry add aiosteampy\n```\n\nProject have some extras [currencies converter](https://aiosteampy.somespecial.one/ext/converter/),\n[socks proxies](https://aiosteampy.somespecial.one/proxies).\nTo install them all, please, use `aiosteampy[all]` install target:\n\n```shell\npoetry add aiosteampy[all]\n```\n\n<!--install-end-->\n\n> [!TIP]\n> [aiohttp docs](https://docs.aiohttp.org/en/stable/#installing-all-speedups-in-one-command) recommends installing\n> speedups (`aiodns`, `cchardet`, ...)\n\n<!--intro-start-->\n\nAIOSTEAMPY use [aiohttp](https://github.com/aio-libs/aiohttp) underneath to do asynchronous requests to steam servers,\nwith modern async/await syntax.\n\n## Key features \u2728\n\n- **Stateless**: low-middle layer API wrapper of some steam services and methods like market,\n  tradeoffers, confirmations, steamguard, etc.\n- **Declarative**: there is models or `TypedDict`s for every data.\n- **Typed**: High-end support with extensive typing, tested on `VSCode` and `PyCharm`.\n- **Simple**: Fit most important related to steam trading process methods.\n- **Web proxy** support.\n\n## What can I do with this\n\n- Operate with steam trade offers.\n- Sell, buy items on market. Place, cancel orders.\n- Login trough steam to 3rd party sites.\n- Fetch data from market.\n- Manipulate many accounts with proxies for each session.\n- Get and load cookies to stay logged in (session persistence).\n- Convert market prices into different currencies.\n\n## What I can't do\n\n- Chat.\n- Get apps, packages.\n- All, that need connection to CM.\n- Interact with game servers (inspect CS2 (ex. CSGO) items, ...).\n- Social interaction(groups, clans).\n- Handle entities (listings, items, tradeoffers) lifecycle for easy if you need to store it.\n\n<!--intro-end-->\n\n## Tests \ud83e\uddea\n\n> [!WARNING]\n> Test cases and test code as a whole are deprecated and will not work until they are updated (a lot of work).\n> I'll leave the code and this heading here as a reminder \ud83e\udee3\n\n[//]: # (Read [test documentation]&#40;https://aiosteampy.somespecial.one/tests/&#41; \ud83d\udcd6)\n\n<!--footer-start-->\n\n## TODO \ud83d\udcc3\n\n> Hard to say **roadmap**. Can be a little changed or updated later, get ready.\n\nPath to first **stable release**. Non-exhaustive list, scheduled tasks can be done earlier than the version mentioned,\nbut not otherwise.\n\n### v0.6.0\n\n- [x] Listings, items, offers pagination/iteration\n- [x] Get single item from inventory as browser does\n- [x] Change client username method\n\n### v0.7.0\n\n- [x] Remove storage methods. Caching entities must be user responsibility\n- [x] Rename `fetch_...` methods to `get_...` to remove annoying methods symantic mess\n- [x] ~~Web browser mechanism to fetch trade offers from `Steam`, avoiding `Steam Web Api`~~\n- [x] Edit profile privacy settings\n\n### v0.8.0\n\n- [ ] Context managers as helpers to login/logout, load/dump or get/put cookies\n- [x] Fetch/paginate over market search pages\n\n### v0.9.0\n\n- [ ] `Steam user` model with minimal attrs, retrieving/fetching\n- [x] Refresh `access_token` mechanism\n\n### v1.0.0\n\n- [ ] Tests with `Steam API` mocking. Target coverage ~70%. Key points (listings, inventory items, trade offers) testing\nsuits is mandatory\n- [ ] Maturity, battle-testing in **more** different cases by **more** participants/users \n\n## Contribution \ud83d\udc9b\n\nThere is no rules or requirements to contribute. Feedbacks, suggests, other are welcome.\nI will be very grateful for helping me get the things right.\n\n## Credits\n\n- [bukson/steampy](https://github.com/bukson/steampy)\n- [aiohttp-socks](https://github.com/romis2012/aiohttp-socks)\n- [croniter](https://github.com/kiorky/croniter)\n- [DoctorMcKay/node-steamcommunity](https://github.com/DoctorMcKay/node-steamcommunity)\n- [Identifying Steam items](https://dev.doctormckay.com/topic/332-identifying-steam-items/)\n- [Revadike/InternalSteamWebAPI](https://github.com/Revadike/InternalSteamWebAPI)\n- [Gobot1234/steam.py](https://github.com/Gobot1234/steam.py)\n- [Steam Market id's storage repo](https://github.com/somespecialone/steam-item-name-ids)\n- [steamapi.xpaw.me](https://steamapi.xpaw.me/)\n- [Steam Exchange Rate Tracker](https://github.com/somespecialone/sert)\n- [ethanfurman/aenum](https://github.com/ethanfurman/aenum)\n\n<!--footer-end-->\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Trade and interact with steam market, webapi, guard",
    "version": "0.7.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/somespecialone/aiosteampy/issues",
        "Documentation": "https://aiosteampy.somespecial.one",
        "Homepage": "https://aiosteampy.somespecial.one",
        "Repository": "https://github.com/somespecialone/aiosteampy"
    },
    "split_keywords": [
        "steam",
        " trade",
        " steamguard",
        " asyncio",
        " steam-market"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5b4b3742aebf96896930a050a373e1aa3fbaed90d796178ae78e52874f29b3d9",
                "md5": "7fbd985401242f091a6696f5046c974f",
                "sha256": "9b7198b8a479d274da067fb4939320be6000f57a7f5f30ae35c9d52c8a3d142c"
            },
            "downloads": -1,
            "filename": "aiosteampy-0.7.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7fbd985401242f091a6696f5046c974f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 65220,
            "upload_time": "2024-11-11T16:53:40",
            "upload_time_iso_8601": "2024-11-11T16:53:40.628001Z",
            "url": "https://files.pythonhosted.org/packages/5b/4b/3742aebf96896930a050a373e1aa3fbaed90d796178ae78e52874f29b3d9/aiosteampy-0.7.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3e52db21f363baffeb460cab2deffb384b8d3d1ece68505553f543ac6ff6027d",
                "md5": "efe9184c80ac623b52788c50dc2f13af",
                "sha256": "6baf399f38bb0325b918d09c25b8993f2fb459f9bb3963a170ef99a709dc1da0"
            },
            "downloads": -1,
            "filename": "aiosteampy-0.7.1.tar.gz",
            "has_sig": false,
            "md5_digest": "efe9184c80ac623b52788c50dc2f13af",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 57491,
            "upload_time": "2024-11-11T16:53:41",
            "upload_time_iso_8601": "2024-11-11T16:53:41.891210Z",
            "url": "https://files.pythonhosted.org/packages/3e/52/db21f363baffeb460cab2deffb384b8d3d1ece68505553f543ac6ff6027d/aiosteampy-0.7.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-11 16:53:41",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "somespecialone",
    "github_project": "aiosteampy",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "aiosteampy"
}
        
Elapsed time: 0.50755s