Skip to main content
Help the Python Software Foundation raise $60,000 USD by December 31st!  Building the PSF Q4 Fundraiser

A Simple Python API for 17track.net

Project description

📦 py17track: A Simple Python API for 17track.net

CI PyPi Version License Code Coverage Maintainability Say Thanks

py17track is a simple Python library to track packages in 17track.net accounts.

Since this is uses an unofficial API, there's no guarantee that 17track.net will provide every field for every package, all the time. Additionally, this API may stop working at any moment.

Python Versions

py17track is currently supported on:

  • Python 3.6
  • Python 3.7
  • Python 3.8

Installation

pip install py17track

Usage

py17track starts within an aiohttp ClientSession:

import asyncio

from aiohttp import ClientSession

from py17track 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 then get to it:

import asyncio

from aiohttp import ClientSession

from py17track import Client


async def main() -> None:
    """Create the aiohttp session and run the example."""
    async with ClientSession() as websession:
      client = Client(websession)

      # Login to 17track.net:
      await client.profile.login('<EMAIL>', '<PASSWORD>')

      # Get the account ID:
      client.profile.account_id
      # >>> 1234567890987654321

      # Get a summary of the user's packages:
      summary = await client.profile.summary()
      # >>> {'In Transit': 3, 'Expired': 3, ... }

      # Get all packages associated with a user's account:
      packages = await client.profile.packages()
      # >>> [py17track.package.Package(..), ...]


asyncio.get_event_loop().run_until_complete(main())

Each Package object has the following info:

  • destination_country: the country the package was shipped to
  • friendly_name: the human-friendly name of the package
  • info: a text description of the latest status
  • location: the current location (if known)
  • origin_country: the country the package was shipped from
  • package_type: the type of package (if known)
  • status: the overall package status ("In Transit", "Delivered", etc.)
  • tracking_info_language: the language of the tracking info
  • tracking_number: the all-important tracking number

Contributing

  1. Check for open features/bugs or initiate a discussion on one.
  2. Fork the repository.
  3. (optional, but highly recommended) Create a virtual environment: python3 -m venv .venv
  4. (optional, but highly recommended) Enter the virtual environment: source ./venv/bin/activate
  5. Install the dev environment: script/setup
  6. Code your new feature or bug fix.
  7. Write tests that cover your new functionality.
  8. Run tests and ensure 100% code coverage: script/test
  9. Update README.md with any new documentation.
  10. Add yourself to AUTHORS.md.
  11. Submit a pull request!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for py17track, version 2.2.6
Filename, size File type Python version Upload date Hashes
Filename, size py17track-2.2.6-py3-none-any.whl (9.5 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size py17track-2.2.6.tar.gz (9.7 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page