平面文件中的时间序列存储。
teafiles的Python项目详细描述
时间序列周期
这个python包根据teafile文件格式以平面文件的形式提供时间序列存储。
使用中
>>> tf = TeaFile.create("acme.tea", "Time Price Volume", "qdq", "ACME at NYSE", {"decimals": 2, "url": "www.acme.com" }) >>> tf.write(DateTime(2011, 3, 4, 9, 0), 45.11, 4500) >>> tf.write(DateTime(2011, 3, 4, 10, 0), 46.33, 1100) >>> tf.close()
>>> tf = TeaFile.openread("acme.tea") >>> tf.read() TPV(Time=2011-03-04 09:00:00:000, Price=45.11, Volume=4500) >>> tf.read() TPV(Time=2011-03-04 10:00:00:000, Price=46.33, Volume=1100) >>> tf.read() >>> tf.close()
在应用程序/操作系统之间交换时间序列
您可以使用
- 右,
- c或
- 其他应用程序
打开
- Linux、Unix,
- Mac操作系统
- 窗口
python api示例
teafiles
teafiles是一种非常简单的,但非常高效的存储时间序列数据的方法 提供C++、C语言或R、倍频程等应用程序之间的数据交换, Matlab,运行在Linux、Unix、MacOSX或Windows上。
- binary由ieee 754格式的基本数据类型signed和unsigned integers、double和float组成的数据前面有一个包含项结构和内容描述的header。
- 数据可以通过内存映射直接访问。
- teafiles是自描述的:包含对项结构的描述,它们消除了直接二进制文件的不透明性。知道一个文件是teafile就足以访问它的数据。
链接到规范http://tbd
python api的作用域
python api使得tea文件在任何地方都可以访问。它只需要在任何操作系统上安装python来检查描述和数据 茶水文件:
>>> # Show the decimals and displayname for all files in a folder: ... >>> def showdecimals(): ... for filename in os.listdir('.'): ... with TeaFile.openread(filename) as tf: ... nvs = tf.description.namevalues ... print('{} {} {}'.format(filename, nvs.get('Decimals'), nvs.get('DisplayName'))) ... >>> showdecimals() AA.day.tea 2 Alcoa, Inc. AA.tick.tea 2 Alcoa, Inc. AXP.day.tea 2 American Express Co. ...
从web服务下载数据也很合适。请参阅包源代码中的examples.py文件,以获取大约30行的Yahoo Finance下载功能。
限制
当涉及到非常大的时间序列文件的高性能处理时,该API目前的速度不如C++和C语言API(即将在^ {A3}上出现的数字)快。如果有必要的话,有很多方法可以改进这一点,但目前在Discretelogics没有这样做的计划。建议使用其他语言/api。如果您希望python api更快,或者希望使用它,请与我们联系。
测试
从包根目录运行单元测试
$python-m pytest.test
Python2.7/3.2
根据CPython 2.7测试包。 python 3.2计划的
0.7版
当前版本由doctests和一些pytests进行了合理的测试。更好的单元测试覆盖率(目前使用pytest) 是可取的。
- 1.0版待定
- 增强pytest覆盖率
- 考虑API反馈
- 清理测试运行,清理测试文件
- 可选
- 在python 3中对其进行度量后,提高性能(可能struct module在其中起着次要的作用)
许可证
此软件包在GNU通用公共许可下发布,请参阅license.txt。