Skip to main content
Yanked

This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 1.4.0 instead.
Reason given by maintainers: doesn't include staticmethod start so you need to import the class itself to use willump

Willump

Willump is a Python3 helper for the League of Legends LCU API. Willump is asynchronous and can communicate on both HTTPS and WSS channels.

Starting Willump

Starting Willump is as easy as:

from willump import Willump
import asyncio

willump = await Willump.start()

This starts willump's http and websocket clients, and blocks until willump can connect to the League Client Ux process and server

Using HTTP methods

Willump can can make http requests to any LCU endpoint

response = await willump.request('get', '/lol-summoner/v1/current-summoner')
#request can be used to execute 'get', as well as any other http method
print(await response.json())

Subscribing to websocket events

Willump's websocket can subscribe to LCU events. Willump can attach a user defined default_handler to an event subscription which will be fired any time willump receives a websocket message pertaining to the event and the message is not otherwise handled. default_handler is a function which accepts json formatted data as its sole argument and returns None, or a disposable value.

async def un_default_event_handler(data):
  print("user defined default event handler")
  print(json.dumps(data, indent=4, sort_keys=True))

my_first_subscription = await willump.subscribe('OnJsonApiEvent', default_handler=un_default_event_handler)

You can add subscriptions to an event by resubscribing to the same event

new_subscription = await willump.subscribe('OnJsonApiEvent')

If you want to attach an already made subscription to another event, you can pass it to the subscription handler:

same_as_new_subscription = await willump.subscribe('OnJsonApiEvent_patcher_v1_status', subscription=new_subscription)
print(same_subscription_as_new_subscription is new_subscription) #subscription is shallow copied so this should print true

You can get the attached subscriptions to an event:

all_subscriptions = willump.get_subscriptions('OnJsonApiEvent')

Willump can also unsubscribe from events to stop listening for them entirely, or can remove a subscription from an event:

await willump.unsubscribe('OnJsonApiEvent', my_first_subscription) #new_subscription is still active
await willump.unsubscribe('OnJsonApiEvent') #This removes new_subscription, as well as any other subscriptions on 'OnJsonApiEvent'

Attaching endpoint filters to event subscriptions

Willump's subscriptions contain two further kinds of filters on websocket events -- uri filters and path filters. These are collectively known as endpoint filters. An endpoint filter is a function that runs when a certain endpoint is specified by the event response. A subscription can have multiple endpoint handlers attached to it. Path filters end in '/', and run when the specified endpoint is any sub-endpoint of the path. Uri filters run when the endpoint is the same as the filter's uri. You can attach endpoint filters through the subscription itself, or via Willump with the subscription instance. Endpoint handlers take the same signature as default_handler. They must take in json formatted data and return None, or a disposable value. Uri handlers and path handlers will both fire if they overlap. If an endpoint filter is fired, the subscription's default_handler will not fire. Attaching two endpoint handlers to the same endpoint will overwrite the pre-existing endpoint handler.

async def custom_uri_handler(data):
  print('current-summoner uri got triggered. This is custom_uri_handler')

async def custom_path_handler(data):
  print('/lol-summoner/ path got triggered. This is custom_path_handler')
  print('full triggered uri is:', data['uri'])

#adding uri endpoint filter via subscription instance
my_first_subscription.filter_endpoint('/lol-summoner/v1/current-summoner',
                                      custom_uri_handler)

#adding path endpoint filter via subscription instance through Willump
willump.subscription_filter_endpoint(my_first_subscription, '/lol-summoner/',
                                 custom_path_handler)

#unfiltering endpoints
willump.subscription_unfilter_endpoint(my_first_subscription, '/lol-summoner/')
my_first_subscription.unfilter_endpoint('/lol-summoner/v1/current-summoner')

Closing willump

Closing willump attempts to close the http and ws connections, gather outstanding subscription tasks, and gracefully exit.

await willump.close()

Willump isn't endorsed by Riot Games and doesn't reflect the views or opinions of Riot Games or anyone officially involved in producing or managing Riot Games properties. Riot Games, and all associated properties are trademarks or registered trademarks of Riot Games, Inc.

Metadata

Release files for willump 1.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for willump 1.1.2
File Size Uploaded Provenance
willump-1.1.2.tar.gz 5.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for willump 1.1.2
File Interpreter ABI Platform
willump-1.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 12.4 kB

Release files / willump-1.1.2.tar.gz

Download URL willump-1.1.2.tar.gz
Size 5.8 kB
Tags Source
SHA-256 checksum
How to use checksums
e30006d7702b0ea4311f4efe643d6c2a80a6e2328855f1dff9eaf404d38d711e
BLAKE2b-256 checksum
How to use checksums
6f3eddd6512eb114f8324df6e5bfcb685671932e669f9c5e270322e6a420b745
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.5

Release files / willump-1.1.2-py3-none-any.whl

Download URL willump-1.1.2-py3-none-any.whl
Size 6.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c1ce6fc900ad0c0de58b24865a1288f83dbfe8476e4d3b10fbca3ca94e3c8a10
BLAKE2b-256 checksum
How to use checksums
54980d564434d4f3d22347af8c07451c8a85ea37a9659b076938a4e862948c3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.5

Security for willump 1.1.2

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.

Release history Release notifications | RSS feed

This release

1.1.2 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page