SyncML 适配器框架和协议的纯 python 实现。
项目描述
欢迎使用pysyncml库,这是 SyncML 适配器框架和协议的纯 Python 实现。SyncML是一种在多个客户端和服务器之间同步不透明对象的协议。尽管 pysyncml 确实提供了一些实用程序来同步某些类型的内容,因此按原样很有用,但它主要是供其他希望通过 SyncML 添加数据同步支持的应用程序用作库。
目标
pysyncml 项目有以下目标,其中一些目标与其他 SyncML 实现有很大不同,并且是创建新包而不是在其他现有实现上构建的原因:
可以通过单个“ pip install pysyncml ”(或easy_install)安装和使用。
是否兼容 python 2.7+ 和 3+。
实现足够大的 SyncML 1.2.2 子集(又名 OMA 数据同步规范),以便与其他实现互操作,而不必“符合”。
可以很容易地集成到基于SQLAlchemy的项目中,将数据存储在应用程序的数据库中,而不是分离出来(这样可以应用集成的数据库触发器和级联)。
可以扩展以使精心设计的客户端能够在“分布式”模式下运行 - 这意味着在没有网络的情况下,SyncML 客户端对等点能够在预期中央服务器可能会或可能不会相互同步的情况下最终再次可用。
尽可能少地区分“客户端”和“服务器”模式以实现之前的目标。
通过为常用方法提供标准实现,使基本同步变得容易和复杂同步成为可能,同时允许覆盖或扩展这些组件。
为常用同步数据类型提供基本命令行工具。
提供与传输无关的服务器推送通知框架。
自动发现 SyncML 服务器 URI 位置;即找到绑定对象类型的“正确”路径是自动完成的,而不需要容易出错的用户配置。
限制
该项目的目标是在尽可能短的时间内获得一个功能最少的库。为此,SyncML 的以下功能将在稍后阶段才会实现,即使这意味着该库不提供符合要求的实现:
不支持:过滤搜索或同步目标。
不支持:数据拆分为多条消息。
不支持:软删除。
不支持:内存约束管理。
不支持:挂起、恢复和忙信号。
不支持:MD5 认证方案。
不支持:按数据库层授权。
安装
使用PIP安装 pysyncml 几乎是微不足道的:
$ pip install pysyncml
或者,使用easy_install:
$ easy_install pysyncml
先决条件
需要 Python 2.7 或更高版本,因为以下内容被 pysyncml 开发人员“视为理所当然”:
相对进口,
“with”上下文管理器语句,
本机元素树,
三元表达式(EXPR if EXPR else EXPR),
以及其他一些在 2.6.4 中发现不起作用但作者不记得它是什么并且不希望再次遇到该限制的东西……
文档
对于下载的包,请在“doc”目录中查看生成的文档,否则您可以在pysyncml找到最新的操作指南和 API 参考文档的链接。