A python wrapper for the pythonanywhere.com API
Project description
MyPythonAnywhere
A python async package to communicate with PythonAnywhere api.
Installation
The beta package is available at PyPi.
Get Started
Requirements
-
Api Token: get your api token from pythonanywhere account page.
-
Determine if your account is US_Based or EU_Based ( It's commonly US. )
-
Your username.
Create Client
from mypythonanywhere import AccountType, FriendlyPythonAnywhereClient
client = FriendlyPythonAnywhereClient(
username='MerrilleChoate',
token='API_TOKEN',
account_type=AccountType.UsBased
)
Send Requests
Get cpu usage.
>>> result = await client.cpu.get_cpu_usage()
>>> print(result)
# CpuUsage(daily_cpu_limit_seconds=100, next_reset_time='2022-04-17T11:23:40', daily_cpu_total_usage_seconds=0.0)
Get all of your consoles.
>>> result = await client.consoles.get_consoles()
>>> print(result)
# [Console(id=24036640, user='MerrilleChoate', executable='python2.7', arguments='', working_directory=None, name='Python2.7 console 24036640', console_url='/user/MerrilleChoate/consoles/24036640/', console_frame_url='/user/MerrilleChoate/consoles/24036640/frame/')]
A full example
Send requests one by one
import asyncio
async def main():
client = FriendlyPythonAnywhereClient(
username='MerrilleChoate',
token='API_TOKEN',
account_type=AccountType.UsBased
)
consoles = await client.console.get_consoles()
print(consoles)
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
Send a batch of requests using one session
import asyncio
async def main():
client = FriendlyPythonAnywhereClient(
username='MerrilleChoate',
token='API_TOKEN',
account_type=AccountType.UsBased
)
async with client:
consoles = await client.console.get_consoles()
for x in consoles:
await client.console.kill_console(x.id)
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
Direct Call
from mypythonanywhere.pythonanywhere import PythonAnywhereClient
from mypythonanywhere.types.requests.console_requests import GetConsoleInfo
client = PythonAnywhereClient(
# --- sniff ---
)
console = await client(GetConsoleInfo(123456789)) # Console
🍟 Not all methods are implemented yet! ...
Contribute
There're api methods that are not implemented. following the order of https://help.pythonanywhere.com/pages/API, methods related to files and below are yet to implement.
Implement Methods?
Take a look at requests dir for examples of implementing api methods.
All you need is to inherit from BaseRequest[T]
( where T
is the method return type ). then filling the abstract methods, unless you face something new.
Automated tests
Tests are missing for most of methods.
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 mypythonanywhere-0.1.5rc0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f9705dec06cfa3f02fd76a760c01c61c4bef2724b9649148a5bf458c9ca3506 |
|
MD5 | 5c59297e15b5583420bec779392a7f87 |
|
BLAKE2b-256 | 16a5df5dceb7a3c879274df9ec15c3a646fdb0165fb72944565f72cac3ec2fd1 |
Hashes for mypythonanywhere-0.1.5rc0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb1e5deb474dbbfb14338c4d5acae42910b19596898e6f6f0ed42245afddb17f |
|
MD5 | 14b5e983dce58cfc36815b259b59478d |
|
BLAKE2b-256 | 4381c1912d920aba765383021d0e4ea242798ae926e0d5958aaa8ff3b96c6110 |