Invenio-Records是一个元数据存储模块。
项目描述
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)
首次公开发布。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。