Skip to main content

A Simple Python API for 17track.net

Project description

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

CI PyPi Version License Code Coverage Maintainability Say Thanks

pyseventeentrack 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

pyseventeentrack is currently supported on:

  • Python 3.9
  • Python 3.10
  • Python 3.11

Installation

pip install pyseventeentrack

Usage

import asyncio

from aiohttp import ClientSession

from pyseventeentrack import Client


async def main() -> None:
    """Run!"""
    client = Client()

    # 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()
    # >>> [pyseventeentrack.package.Package(..), ...]
    
    # Add new packages by tracking number
    await client.profile.add_package('<TRACKING NUMBER>', '<FRIENDLY NAME>')


asyncio.run(main())

By default, the library creates a new connection to 17track with each coroutine. If you are calling a large number of coroutines (or merely want to squeeze out every second of runtime savings possible), an aiohttp ClientSession can be used for connection pooling:

import asyncio

from aiohttp import ClientSession

from pyseventeentrack import Client


async def main() -> None:
    """Run!"""
    async with ClientSession() as session:
        client = Client(session=session)

        # ...


asyncio.run(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)
  • timestamp: the timestamp of the latest event
  • 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.

Source Distribution

pyseventeentrack-1.0.2.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyseventeentrack-1.0.2-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file pyseventeentrack-1.0.2.tar.gz.

File metadata

  • Download URL: pyseventeentrack-1.0.2.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for pyseventeentrack-1.0.2.tar.gz
Algorithm Hash digest
SHA256 4ac6516d7ec7b62dd6b3d1ba10d8f1befba5523bf343c6b120a30f853285538e
MD5 36301b0ed5c5303143757d5ca51d01e7
BLAKE2b-256 03cedf7fe4a225999cd90ca42f89d13a05215ece8b2d12a2f33552f46b6babc8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyseventeentrack-1.0.2.tar.gz:

Publisher: ci-cd.yml on shaiu/pyseventeentrack

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyseventeentrack-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for pyseventeentrack-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 57445f36f6cbc9d52656d6867b1de68026b1cceae83f050fc1d4c9c98c42b2e7
MD5 e5e1aad20d6b45cdf19b3e6f890a0cd3
BLAKE2b-256 f217b7d6b617dbbd1497e55bcb1cdc5e15ca74ddf4450ae4e27f97c10a320aa5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyseventeentrack-1.0.2-py3-none-any.whl:

Publisher: ci-cd.yml on shaiu/pyseventeentrack

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page