跳转到主要内容

Invenio-Records是一个元数据存储模块。

项目描述

https://img.shields.io/github/license/inveniosoftware/invenio-records.svg https://github.com/inveniosoftware/invenio-records/workflows/CI/badge.svg https://img.shields.io/coveralls/inveniosoftware/invenio-records.svg https://img.shields.io/pypi/v/invenio-records.svg

Invenio-Records是一个元数据存储模块。一个记录是一个带有修订历史记录的JSON文档,通过唯一的UUID标识。

特性

  • 具有修订历史的通用JSON文档存储。

  • 文档的JSONSchema验证。

  • 记录的创建、更新和删除。

  • 对记录进行CRUD操作的行政界面。

更多文档可在此处找到:[文档](https://invenio-records.readthedocs.io/)

变更

版本2.3.0(发布于2024-02-19)

  • tests:添加filter_dict_keys的测试

  • dictutils:添加filter_dict_keys

版本2.2.2(发布于2023-09-12)

  • search:防止在搜索查询上刷新

版本2.2.1(发布于2023-09-12)

  • revert dumper:将记录合并到工作数据而不是替换

版本2.2.0(发布于2023-09-05)

  • dumper:将记录合并到工作数据而不是替换

版本2.1.0(发布于2023-03-02)

  • 移除已弃用的flask-babelex依赖项和导入

  • 升级invenio-i18n

  • 升级invenio-admin

版本2.0.1(发布于2022-11-18)

  • 添加翻译

  • 升级pytest-invenio

版本2.0.0(发布于2022-09-07)

  • Renames SearchDumper classes to remove Elasticsearch naming.

版本1.7.6(发布于2022-09-07)

  • Moves the _fields attribute of RelationFields into a cached property. This allows delayed calculation of its values.

版本1.7.5(发布于2022-09-06)

  • Fixes a bug on MultiRelationsField where fields would be calculated multiple times. Now they are calculated only once, and cached.

版本1.7.4(发布于2022-08-23)

  • Adds support for nested RelationFields via MultiRelationsField

  • Migrates to declarative module (setup.cfg)

  • Migrates code to Black formatter

  • Adds german translations

  • Removes babel extensions for Jinja

版本1.7.3(发布于2022-05-04)

  • 添加合并Python字典的工具

版本 1.7.2(发布日期:2022-05-03)

  • 修复了1.7.1版本中的回归问题。

版本 1.7.1(发布日期:2022-04-26)

  • 修复了在解引用可选/不存在的键期间的字典查找问题。

版本 1.7.0(发布日期:2022-04-13)

  • 增加了通过数据库级外键定义关系的支持。

  • 向后不兼容:将关系定义更改以支持字典键和对象属性,而不是仅支持字典键。将现有代码从

    Relation(
        # ...
        attrs=['title'],
    ),

    改为

    Relation(
        # ...
        keys=['title'],
    ),
  • 将setup.py移至setup.cfg以进行纯声明性包定义。

版本 1.6.2(发布日期:2022-04-06)

  • 从测试套件中移除python 3.6。

  • 初始化ModelField的父类。

  • 将几个依赖项(invenio-db、invenio-base等)升级以支持Flask 2.1。

版本 1.6.1(发布日期:2021-12-04)

  • 增加了对提交后生命周期的钩子的支持。

版本 1.6.0(发布日期:2021-10-20)

  • 增加了一个新的关系系统字段,用于管理记录之间的关系。是RFC #40的一部分。

  • 增加了一个新的相关模型系统字段,用于将相关对象序列化/转储到记录JSON中。

  • 增加了新的配置变量,允许注入自定义JSONSchema RefResolver以及自定义JSONSchema存储。是RFC #42的一部分,以简化JSON Schema解析和注册管理,并更轻松地构建可组合的JSONSchemas。

  • 弃用了Record.patch()方法。

版本 1.5.0

  • 未发布,以避免污染Invenio v3.4。

版本 1.4.0(发布日期:2020-12-09)

  • 向后不兼容:默认情况下,现在在RecordMetadataBase(RecordMetadata仍然是可版本化的)中禁用了版本表。如果您子类化了RecordMetadataBase并且需要版本化,您需要在其类中添加以下行

    class MyRecordMetadata(db.Model, RecordMetadataBase):
        __versioned__ = {}
  • 向后不兼容:Record.validate()方法现在分为两个方法validate()和_validate()。如果您在子类中重写了validate()方法,您可能需要重写_validate()。

  • 向后不兼容:由于JSON编码/解码支持,表示记录的Python字典和SQLAlchemy模型是独立的对象,更新一个不会自动更新另一个。通常,您不应该在您的代码中访问record.model.json,但是如果您确实这样做了,您需要重写它并依赖于create()和commit()方法来更新模型的json列。

  • 在记录API中添加了一个新的is_deleted属性。

  • 移除了用于从其他字段中区分元数据字段的@前缀。

  • 添加了SystemFieldContext,它允许在通过类而不是对象实例访问属性时知道记录类。

  • 添加了用于在记录上缓存相关对象的辅助函数。

  • 增加了对数据库中的JSON编码/解码的支持。这允许例如具有复杂数据类型(如datetime对象)的记录。JSONSchema验证发生在记录的JSON编码版本上。

  • 增加了将记录从二级副本(例如存储在Elasticsearch索引中的记录)导出和加载的支持。

  • 增加了作为比信号更严格替换的记录扩展支持。允许编写扩展(如系统字段),这些扩展可以集成到记录API中。

  • 增加了对系统字段的支持,这些字段是Record上的Python数据描述符,允许对Record字典进行管理访问。

  • 增加了禁用信号的支持。

  • 增加了禁用JSONRef替换的支持。

  • 增加了在类级别而不是每次验证调用时指定JSONSchema格式检查器和验证类。

  • 增加了对指定类级JSONSchema格式检查器的支持

  • 在数据库模型中使用is_deleted混合属性,为软删除记录提供了一个更清晰的定义。

  • 增加了恢复软删除记录的支持。

版本 1.3.2(发布日期:2020-05-27)

  • 修复了一个导致获取错误修订版本的bug。如果在调用db.session.commit()之前多次调用record.commit(),则数据库中持久化的版本ID将存在间隙。这意味着如果您使用record.revisions[revision_id]来访问修订版本,则不能保证返回特定的修订版本ID。参见#221

版本 1.3.1(发布日期:2020-05-07)

  • 弃用了低于3.6.0的Python版本。现在支持3.6.0和3.7.0。

  • 移除了对Invenio-PIDStore及其相关文档的依赖。功能在v1.3.0中删除。

版本 1.3.0(发布日期:2019-08-01)

  • 移除了过时的CLI。

版本 1.2.2(发布日期:2019-07-11)

  • 修复了管理界面中的XSS漏洞。

版本 1.2.1(发布日期:2019-05-14)

  • 放宽了对Flask的依赖到v0.11.1。

版本 1.2.0(发布日期:2019-05-08)

  • 允许将RecordMetadata存储在自定义的数据库表中。

版本 1.1.1(发布日期:2019-07-11)

  • 修复了管理界面中的XSS漏洞。

版本 1.1.0(发布日期:2019-02-22)

  • 移除了过时的Celery任务。

  • 弃用了CLI

版本 1.0.2(发布日期:2019-07-11)

  • 修复了管理界面中的XSS漏洞。

版本 1.0.1(发布日期:2018-12-14)

  • 修复了CliRunner异常。

  • 修复了JSON Schema URL。

版本 1.0.0(发布日期:2018-03-23)

  • 首次公开发布。

项目详情


发布历史 发布通知 | RSS订阅

下载文件

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

源分布

invenio-records-2.3.0.tar.gz (146.1 kB 查看哈希值)

上传时间

构建分布

invenio_records-2.3.0-py2.py3-none-any.whl (185.2 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面