根据[OPTIMADE API规范]公开AiiDA数据库(https://www.optimade.org).
aiida-optimade的Python项目详细描述
AiiDA的OPTIMADE API实现
Latest release | Build status | Activity |
---|---|---|
这是一个使用FastAPI创建的restfulapi服务器,它根据OPTIMADE specification公开AiiDA数据库。在
它主要用于Materials Cloud通过optimadeapi公开对归档AiiDA数据库的访问。 但任何人都可以自由地执行它来实现类似的目的。在
服务器基于^{
先决条件
安装AiiDA的环境。
包含StructureData
节点的AiiDA数据库,因为这些节点是当前使用此API公开的onlyAiiDA节点(在/structures
端点下)。在
安装
该软件包基于PyPI,因此您可以通过以下方式进行安装:
$ pip install aiida-optimade
否则,您还可以从GitHub git clone
存储库:
开发
对于开发人员,有一个特殊的setuptools extra dev
,可以通过以下方式安装:
$ pip install aiida-optimade[dev]
或者
$ pip install -e /path/to/aiida-optimade[dev]
此包使用Black进行格式化。 如果您愿意参与,请安装git pre-commit钩子:
/path/to/aiida-optimade$ pre-commit install
这将在运行git commit
时自动更新格式,并检查各种存储库JSON和YAML文件的有效性。在
初始化
您应该首先初始化AiiDA配置文件。在
这可以通过使用aiida-optimade
CLI来完成:
$ aiida-optimade -p <PROFILE> init
其中<PROFILE>
是AiiDA配置文件。在
Note: Currently, the default is
optimade_sqla
, if the-p / --profile
option is now specified. This will be changed in the future to use the default AiiDA profile.
初始化通过概要文件的StructureData
节点,添加一个额外的optimade
,其中存储所有没有等效AiiDA属性的OPTIMADE特定字段。在
如果将来有更多的StructureData
节点被添加到概要文件的数据库中,这些节点将在第一次查询时自动更新,并过滤这些OPTIMADE特定字段中的任何一个。
但是,如果您不希望用户出现明显的延迟,或者不想冒着同时收到多个GET请求的风险,尝试更新概要文件的数据库,您应该为概要文件重新运行aiida-optimade init
(在关闭服务器和重新启动服务器之间)。在
运行服务器
局部
使用aiida-optimade
CLI,可以执行以下操作:
$ aiida-optimade -p <PROFILE> run
其中<PROFILE>
是您希望服务的AiiDA配置文件。在
Note: Currently, the default is
optimade_sqla
, if the-p / --profile
option is now specified. This will be changed in the future to use the default AiiDA profile.
您还可以通过环境变量AIIDA_PROFILE
指定AiiDA概要文件。
但是请注意,如果一个概要文件名被传递给CLI,它将否决,并替换当前的AIIDA_PROFILE
环境变量。在
# Specifying AiiDA profile as an environment variable $ exportAIIDA_PROFILE=optimade $ aiida-optimade run
导航到http://localhost:5000/v1/info
Tip: To see the default AiiDA profile, type
verdi profile list
to find the colored profile name marked with an asterisk (*
), or typeverdi profile show
, which will show you more detailed information about the default profile.
Note: The
aiida-optimade run
command has more options to configure your server, run$ aiida-optimade run --helpfor more information.
与Docker
适当调整profiles/test_django.json
和{
$ docker-compose -f profiles/docker-compose.yml up --build
导航到http://localhost:3253/v1/info
停止使用
$ docker-compose -f profiles/docker-compose.yml down
Jinja模板
如果您熟悉Jinja,有两个模板可以创建JSON和YAML文件:profiles/config.j2
和{
配置服务器
您可以使用aiida_optimade/config.json
文件配置服务器或设置某些环境变量。在
要了解更多信息,请参阅^{
设计选择
Q:为什么要创建一个单独的config.json
文件,而不只是挂载现有的.aiida
目录并直接使用它?
A:这目前不起作用,因为REPOSITORY_URI
需要指向容器内的正确路径,而不是主机上。此外,将所有配置存储在同一个文件中可能很脆弱。在
- 项目
标签: