通过查看第一个示例中来自ASDF(Writing ASDF extensions)的示例,您可以看到一个ASDF文件,其中在“历史记录/扩展名”选项卡中写有:
history:
extensions:
- !core/extension_metadata-1.0.0
extension_class: asdf.extension.BuiltinExtension
software: {name: asdf, version: 2.4.0.dev582}
- !core/extension_metadata-1.0.0
extension_class: builtins.FractionExtension
software: {name: '', version: ''}
我尝试更改软件名称和版本。有没有一种方法可以直接从扩展本身或它的目录执行?可能使用包和__init__.py
文件
以下是我的实际解决方案:
import asdf
import fractions
tree = {'fraction': fractions.Fraction(10, 3)}
ff = asdf.AsdfFile(tree, extensions=FractionExtension())
# remove the old metadata
ff._extension_metadata.pop('builtins.FractionExtension')
# add my own metadata
ff._extension_metadata.setdefault('builtins.FractionExtension',('myname','1.2.3'))
ff.write_to("test.asdf")
现在看起来是这样的:
- !core/extension_metadata-1.0.0
extension_class: builtins.FractionExtension
software:
name: myname
version: 1.2.3
目前没有回答
相关问题 更多 >
编程相关推荐