-
trackr的Python项目详细描述
- 自由软件:麻省理工学院许可证
- 文档:https://trackr.readthedocs.io。
trackr是访问运营商跟踪信息的轻量级python库。
安装
pip install trackr
使用python2.7,3.3,3.4和3.5。
用法
fromtrackrimportTrackrpackage=Trackr.track('ect','PN871429404BR')fortinpackage.tracking_info:printt.location,t.status
或者也可以使用trackr cli:
$ trackr --carrier=ect --object-id=PN871429404BR
可用载体
- ect(巴西“correios”)
- fake(用于测试目的)
ect
使用其soap webservice从correios检索数据。为此,你需要一个用户名和密码。与您的ECT代表取得联系以获得成功。
提供凭据的最简单方法是导出为env变量:
exportTRACKR_ECT_USERNAME=** exportTRACKR_ECT_PASSWORD=**
还可以传递函数关键字args:
package=Trackr.track('ect','PN871429404BR',ect_username='**',ect_password='**')
警告
correios为集成目的提供的默认用户名和密码(usernameect,password`sro`)将不允许批量跟踪。
假
假载体是用来测试和开发集成。它将始终以包的形式返回,其中包含4个跟踪信息行。示例
$ trackr --carrier=fake --object-id=123456789
Package found! 2017-04-23 15:12:23.521052 - City 1 - In transit 12017-04-23 15:12:23.521075 - City 2 - In transit 22017-04-23 15:12:23.521081 - City 3 - In transit 32017-04-23 15:12:23.521086 - City 4 - In transit 4
集成新载波
要添加新的载体,继承carriers.base.base carrier并填写\u track\u single()和/或\u track\u bulk()方法,它必须返回一个实例或carriers.base.package实例列表。请参见下面的示例:
fromdatetimeimportdatetimefrom.baseimportBaseCarrierclassMyOwnCarrier(BaseCarrier):id='mycarrier'name='My Carrier'def_track_single(self,object_id):# ... fetch data from carrier's data sourcepackage=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',)returnpackage
然后更新trackr/carriers/__init__.py上的载波映射(这应该通过一些自动发现功能加以改进)。记得写测试!
学分
这个包是用Cookiecutter和audreyr/cookiecutter-pypackage项目模板创建的。