-

trackr的Python项目详细描述


https://img.shields.io/pypi/v/trackr.svghttps://img.shields.io/travis/rpedigoni/trackr.svgDocumentation StatusUpdates

trackr是访问运营商跟踪信息的轻量级python库。

安装

pip install trackr

使用python2.73.33.43.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上的载波映射(这应该通过一些自动发现功能加以改进)。记得写测试!

学分

这个包是用Cookiecutteraudreyr/cookiecutter-pypackage项目模板创建的。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将Scanner对象作为构造函数参数传递给UserInterface类   spring未能启动bean“subtocolWebSocketHandler”;嵌套的例外是java。lang.IllegalArgumentException:没有处理程序   Java EE应用程序中后台服务的多线程Java线程(设置守护进程和优先级)?   java Pull to refresh返回列表的第一个位置   无法将comparator类转换为java。可比的   java将json从servlet传递到dojo   JavaHibernate:将子类实例转换为超类实例   java警告调用servlet类时非法反射访问   java静态变量值   java@Entity和@embeddeble之间有什么区别   java将作业配置导入公共作业配置类(注释配置)   sql公共表表达式(以values语句开头)在java中给出错误   java在ImageJ中使用ImageProcessor   java PostgreSQL executeBatch()会随着时间的推移而变慢   java在安卓中以表格形式排列sqllite表数据?   java中SVG的swing定制呈现   java删除与另一个实体映射的实体   java何时/如何添加ListView适配器,使用back按钮恢复它?(片段)   java为什么IBinder和Binder之间的类型转换不是非法的?   java在方法参数列表中使用ArrayList或List