跳转到主要内容

未提供项目描述

项目描述

tableschema-spss-py

Travis Coveralls PyPi Github Gitter

根据Table Schema描述符生成和加载SPSS文件。

功能

  • 实现tableschema.Storage接口

内容

入门

安装

该软件包使用语义版本控制。这意味着主要版本可能包括破坏性更改。强烈建议在您的setup/requirements文件中指定package版本范围,例如package>=1.0,<2.0

pip install tableschema-spss

示例

本readme中的代码示例需要Python 3.3+解释器。您还可以在示例目录中查看更多示例。

对于此示例,您的模式应与SPSS存储兼容 - https://github.com/frictionlessdata/tableschema-spss-py#creating-sav-files

from tableschema import Table

# Load and save table to SPSS
table = Table('data.csv', schema='schema.json')
table.save('data', storage='spss', base_path='dir/path')

文档

本包的整个公共API在此描述,并遵循语义版本控制规则。readme之外的API属于私有API,且在新版本中可能不进行任何通知而进行更改。

存储

包实现了表存储接口(详细信息请参阅链接)

Storage

此驱动程序提供额外的API

Storage(base_path=None)

  • base_path (str) - 可以创建和读取.sav文件的合法目录路径。如果没有提供base_path,则Storage对象方法将接受文件路径而不是存储桶名称。

storage.buckets

列出基础路径下的所有.sav和.zsav文件。只有当Storage有有效的base_path时,才会维护存储桶列表,否则将返回None。

  • (str[]/None) - 返回存储桶列表或None

具有基础路径

我们可以这样获取具有指定基础路径的存储

from tableschema_spss import Storage

storage_base_path = 'path/to/storage/dir'
storage = Storage(storage_base_path)

然后我们可以与存储桶进行交互(在此上下文中,“存储桶”是指SPSS .sav/.zsav文件)

storage.buckets  # list buckets in storage
storage.create('bucket', descriptor)
storage.delete('bucket')  # deletes named bucket
storage.delete()  # deletes all buckets in storage
storage.describe('bucket') # return tableschema descriptor
storage.iter('bucket') # yields rows
storage.read('bucket') # return rows
storage.write('bucket', rows)

没有基础路径

我们也可以这样创建没有基础路径的存储

from tableschema_spss import Storage

storage = Storage()  # no base path argument

然后我们可以直接通过传递文件路径(而不是存储桶名称)来指定SPSS文件

storage.create('data/my-bucket.sav', descriptor)
storage.delete('data/my-bucket.sav')  # deletes named file
storage.describe('data/my-bucket.sav') # return tableschema descriptor
storage.iter('data/my-bucket.sav') # yields rows
storage.read('data/my-bucket.sav') # return rows
storage.write('data/my-bucket.sav', rows)

请注意,没有基础路径的存储不会维护内部存储桶列表,因此调用storage.buckets将返回None

读取.sav文件

读取SPSS数据时,SPSS日期格式DATEJDATEEDATESDATEADATEDATETIMETIME将转换为适当的Python datedatetimetime对象。

其他SPSS日期格式WKDAYMONTHMOYRWKYRQYRDTIME不支持原生转换,将作为字符串返回。

创建.sav文件

从表模式创建SPSS文件时,datedatetimetime字段类型必须具有以下模式的格式属性

  • date: %Y-%m-%d
  • datetime: %Y-%m-%d %H:%M:%S
  • time: %H:%M:%S.%f

传递给storage.create()的表模式描述符应包含自定义spss:format属性,定义数据预期的SPSS类型格式。例如。

{
    "fields": [
        {
            "name": "person_id",
            "type": "integer",
            "spss:format": "F8"
        },
        {
            "name": "name",
            "type": "string",
            "spss:format": "A10"
        },
        {
            "type": "number",
            "name": "salary",
            "title": "Current Salary",
            "spss:format": "DOLLAR8"
        },
        {
           "type": "date",
           "name": "bdate",
           "title": "Date of Birth",
           "format": "%Y-%m-%d",
           "spss:format": "ADATE10"
        }
    ]
}

贡献

项目遵循开放知识国际编码标准

开始项目的推荐方法是创建和激活项目虚拟环境。要将包和开发依赖项安装到活动环境中

$ make install

要运行测试并执行代码检查和覆盖率分析

$ make test

对于代码检查,使用在pylama.ini中配置的pylama。在此阶段,它已安装到您的环境中,并可以单独使用,如文档中所述 - https://pylama.readthedocs.io/en/latest/

例如,按错误类型排序结果

$ pylama --sort <path>

对于测试,使用在tox.ini中配置的tox。它已安装到您的环境中,并可以单独使用,如文档中所述 - https://testrun.org/tox/latest/

例如,以增加详细程度检查Python 2环境的子集测试。所有位置参数和选项在--之后都将传递给py.test

tox -e py27 -- -v tests/<path>

在内部,tox使用在pytest.ini中配置的pytestcoveragemock包。这些包仅在tox环境中可用。

变更日志

此处仅描述破坏性和最重要的更改。有关所有已发布版本的完整变更日志和文档,可以在格式良好的提交历史记录中找到。

v1.0

  • 初始驱动程序版本

项目详细信息


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

tableschema-spss-1.0.14.tar.gz (13.9 kB 查看哈希值)

上传时间 源代码

构建分发

tableschema_spss-1.0.14-py2.py3-none-any.whl (10.0 kB 查看哈希值)

上传时间 Python 2 Python 3