š” pytile: A simple Python API for TileĀ® Bluetooth trackers
pytile
is a simple Python library for retrieving information on
TileĀ® Bluetooth trackers (including last
location and more).
This library is built on an unpublished, unofficial Tile API; it may alter or cease operation at any point.
PLEASE READ: Version 2.0.0 and Beyond
Version 2.0.0 of pytile
makes several breaking, but necessary changes:
- Moves the underlying library from Requests to aiohttp
- Changes the entire library to use
asyncio
- Makes 3.6 the minimum version of Python required
If you wish to continue using the previous, synchronous version of pytile
,
make sure to pin version 1.1.0.
Python Versions
pytile
is currently supported on:
- Python 3.6
- Python 3.7
Installation
pip install pytile
Usage
pytile
starts within an
aiohttp ClientSession
(if you are receiving SSL errors, use ClientSession(connector=TCPConnector(verify_ssl=False))
instead):
import asyncio
from aiohttp import ClientSession
from pytile import Client
async def main() -> None:
"""Create the aiohttp session and run the example."""
async with ClientSession() as websession:
# YOUR CODE HERE
asyncio.get_event_loop().run_until_complete(main())
Create a client, initialize it, and get to work:
import asyncio
from aiohttp import ClientSession
from pytile import Client
async def main() -> None:
"""Create the aiohttp session and run the example."""
async with ClientSession() as websession:
client = Client("<EMAIL>", "<PASSWORD>", websession)
await client.async_init()
# Get all Tiles associated with an account:
await client.tiles.all()
asyncio.get_event_loop().run_until_complete(main())
Contributing
- Check for open features/bugs or initiate a discussion on one.
- Fork the repository.
- Install the dev environment:
make init
. - Enter the virtual environment:
pipenv shell
- Code your new feature or bug fix.
- Write a test that covers your new functionality.
- Run tests and ensure 100% code coverage:
make coverage
- Add yourself to
AUTHORS.md
. - Submit a pull request!