-
Project description
Free software: MIT license
Documentation: https://trackr.readthedocs.io.
trackr is a lightweight Python lib to access carriers’ tracking information.
Installation
pip install trackr
Works with Python 2.7, 3.5 and 3.6.
Usage
from trackr import Trackr
package = Trackr.track('ect', 'PN871429404BR')
for t in package.tracking_info:
print t.location, t.status
Or also using Trackr cli:
$ trackr --carrier=ect --object-id=PN871429404BR
Available carriers
ect (brazilian “Correios”)
fake (for testing purposes)
ECT
Data is retrieved from Correios using its SOAP webservice. For that you’ll need an username and password. Get in touch with your ECT representative to gain acess.
The easiest way to provide the credentials is exporting as env variable:
export TRACKR_ECT_USERNAME=**
export TRACKR_ECT_PASSWORD=**
You can also pass a function keyword args:
package = Trackr.track('ect', 'PN871429404BR', ect_username='**', ect_password='**')
Fake
Fake carrier is meant to be used when testing and developing integrations. It will always return as package found with 4 tracking info rows. Example
$ trackr --carrier=fake --object-id=123456789
Package found!
2017-04-23 15:12:23.521052 - City 1 - In transit 1
2017-04-23 15:12:23.521075 - City 2 - In transit 2
2017-04-23 15:12:23.521081 - City 3 - In transit 3
2017-04-23 15:12:23.521086 - City 4 - In transit 4
Integrating a new carrier
To add a new carrier, inherit carriers.base.BaseCarrier and fillout _track_single() and/or _track_bulk() methods, it must return one instance or a list of carriers.base.Package instance. See an example below:
from datetime import datetime
from .base import BaseCarrier
class MyOwnCarrier(BaseCarrier):
id = 'mycarrier'
name = 'My Carrier'
def _track_single(self, object_id):
# ... fetch data from carrier's data source
package = self.create_package(
object_id=object_id,
service_name='Express service',
)
package.add_tracking_info(
date=datetime(2017, 1, 1, 10, 00),
location='Last Location',
status='In transit to another location'
description='Get ready!',
)
package.add_tracking_info(
date=datetime.now(),
location='Current Location',
status='Delivered'
description='Finally',
)
return package
Then update the carrier mapping on trackr/carriers/__init__.py (this should be improved with some autodiscover feature). Remember to write tests!
Credits
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.
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 Distributions
Built Distribution
File details
Details for the file trackr-2.1.0-py2.py3-none-any.whl
.
File metadata
- Download URL: trackr-2.1.0-py2.py3-none-any.whl
- Upload date:
- Size: 8.5 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 16eb37dcbb6d3cb5cb757ba45ce18d5f56c83865f8d66ae018d071eb1c66b2f4 |
|
MD5 | 7021d0624f2d4120331d9514f9293a92 |
|
BLAKE2b-256 | 981d41c7916ad85449e90d1a432def052095a928af761d19c6482c8a7e023ef8 |