Python API wrapper for Prosperous Universes community API FIO.
Project description
pyfio
FIO API wrapper with pydantic data validation and easy-to-use querying. fio_wrapper implements the most used endpoints of Prosperous Universes community game data API.
Endpoints
The following endpoints are available as classes of the wrapper:
# Planet
- /planet/{Planet}
- /planet/allplanets
- /planet/allplanets/full
- /planet/sites/{Planet}
# Material
- /material/{MaterialTicker}
- /material/allmaterials
- /material/category/{CategoryName}
# Building
- /building/{BuildingTicker}
- /building/allbuildings
# Recipe
- /recipes/{Ticker}
- /recipes/allrecipes
# Exchange
- /exchange/{ExchangeTicker}
- /exchange/all
- /exchange/full
- /exchange/orders/{CompanyCode}
- /exchange/orders/{CompanyCode}/{ExchangeCode}
# LocalMarket
- /localmarket/planet/{Planet}
- /localmarket/planet/{Planet}/{Type}
- /localmarket/shipping/source/{Planet}
- /localmarket/shipping/destination/{Planet}
- /localmarket/company/{Company}
Usage
Installation
pip install fio-wrapper
Access data
Creating the FIO adapter and looking for information about the material Drinking Water by its ticker "DW".
from fio_wrapper import FIO
fio = FIO()
material = fio.Material.get("DW")
print(material)
print(material.model_dump_json())
This will print the material information of Drinking Water as MaterialModel and it's JSON.
MaterialId='4fca6f5b5e6c3b8a1b887c6dc99db146' CategoryName='consumables (basic)' CategoryId='3f047ec3043bdd795fd7272d6be98799' Name='drinkingWater' Ticker='DW' Weight=0.10000000149011612 Volume=0.10000000149011612 UserNameSubmitted='SAGANAKI' Timestamp=datetime.datetime(2023, 10, 28, 19, 26, 21, 831707)
{
"MaterialId": "4fca6f5b5e6c3b8a1b887c6dc99db146",
"CategoryName": "consumables (basic)",
"CategoryId": "3f047ec3043bdd795fd7272d6be98799",
"Name": "drinkingWater",
"Ticker": "DW",
"Weight": 0.10000000149011612,
"Volume": 0.10000000149011612,
"UserNameSubmitted": "SAGANAKI",
"Timestamp": "2023-10-28T19:26:21.831707"
}
Contributing
We welcome contributions of all types! In order to set up fio_wrapper locally please do the following:
- Install Python + Poetry
- Run the poetry environment and install depenencies
- We are aiming for 100% code coverage
Tests
fio_wrapper uses pytest
, requests_mock
and pytest-cov
to run tests, mock calls towards FIO endpoints and generate the code coverage report and use black
as formatter.
Run tests:
pytest
Generate coverage report:
pytest --cov --cov-report=html:coverage --cov-config=.coveragerc
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for fio_wrapper-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f4e07c29c5916796682b85b69b69f5347aacb9b483f545047ee3d25496505887 |
|
MD5 | 70269894b169a4265527f8fe57202c9b |
|
BLAKE2b-256 | b3ee80080733ebc4b7d845e83c58f8150218845bb42dd37b33245af195e9bd68 |