Skip to main content

将新 NASA/SAO ADS 中的文章添加到您的 BibDesk 书目(基于 J. Sick 等人的 ads_bibdesk)。

项目描述

ADS 到 BibDesk API 版本 (ads2bibdesk)

ads2bibdesk使用新的ADS 开发人员 API帮助您将 NASA/ADS 上列出的天体物理学文章添加到您的BibDesk数据库。

该程序大致基于 J. Sick 等人的原始ads_bibdesk但是,查询是由 ADS API 的 python 客户端处理的(ads,由 A. Casey 维护)。过时的代码被替换为具有简化代码结构的更新的内置 Python 模块。macOS 工作流程构建过程已更新。项目打包现在遵循新的 PyPA指南

由于 API 的使用,ads2bibdesk要求用户根据新的 NASA/ADS 政策指定个人 API 密钥。有关如何获取密钥的说明可以在此官方 github 存储库中找到:adsabs-dev-api。简而言之,要获得对 ADS Developer API 的访问权限,必须做两件事:

API 密钥可以写入您的ads2bibdesk首选项文件~/.ads/ads2bibdesk.cfg(请参阅模板)。按照 Python/ads 包的说明,还可以将密钥保存到~/.ads/dev_key或作为名为ADS_DEV_KEY的环境变量。

感谢原始ads_bibdesk @jonathansick @RuiPereira @keflavich的最初实施的贡献者。

快速开始

安装

命令行脚本可以通过以下方式安装:

pip install --user git+https://github.com/r-xue/ads2bibdesk.git # from GitHub
pip install --user ads2bibdesk                                  # from PyPI (likely behind the GitHub version)
pip install --user .                                            # from a local copy

要构建 macOS 应用和服务工作流程,您需要进一步运行:

pip install --user -U --no-deps --force-reinstall --install-option="--service" ads2bibdesk     # from PyPI

选项“–service”将创建两个文件Add to BibDesk.workflowAdd to BibDesk.app in ~/Downloads/。要安装该服务,请单击添加到 BibDesk.workflow,它将被移动到~/Library/Services/。对于该应用程序,只需将其拖放到任何首选位置即可。

笔记:

  • 仅支持 Python >=3.7(见下文)。

  • 使用“--user”选项,您必须将用户级别的 bin 目录(例如,~/Library/Python/3.X/bin)添加到您的 PATH 环境变量中才能启动ads2bibdesk

  • macOS 服务和应用程序都基于 Automator工作流程)。它们只是围绕命令行程序并用作其快捷方式。

  • 由于 macOS 内置了新的隐私和安全功能,该服务快捷方式在 macOS >=10.14 上的某些应用程序(例如 Safari)中不起作用(请参阅此问题

用法

从命令行

从 ADS 添加或更新新文章:

ads2bibdesk "1807.04291"
ads2bibdesk "2018ApJ...864L..11X"
ads2bibdesk "2013ARA&A..51..105C"
ads2bibdesk "10.3847/2041-8213/aaf872"

ads2bibdesk 此时接受三种文章标识符

  • ADS bibcode (例如1998ApJ...500..525S , 2019arXiv190404507R )

  • arXiv id(例如0911.4956)。

  • doi (例如10.3847/1538-4357/aafd37 )

ads2bibdesk命令的完整摘要可通过以下方式获得:

ads2bibdesk --help

从 macOS 应用程序

  1. 在任何应用程序中将文章标识符复制到剪贴板

  2. 启动添加到 BibDesk.app

从 macOS 服务

  1. 高亮并右键单击文章标识符

  2. 从右键菜单中选择“服务 > 添加到 Bibdesk”

兼容性和依赖性

我只在以下 macOS 设置上测试了该程序:

  • macOS (>=10.14)

  • Python (>=3.7.3)

  • BibDesk (>=1.7.1)

虽然该程序可能适用于稍旧的软件版本,但我并不关注向后兼容性。在我的工作机器(Catalina)上,我将 MacPorts 的 Python 3.8 设置为默认值:

sudo port install python38 py38-pip py38-ipython
sudo port select python python38
sudo port select ipython py38-ipython
sudo port select pip pip38

地位

包中已经实现了以下功能:

  • 通过文章标识符使用新 API 查询文章元数据(标题、摘要、BibTeX 等)(不再有内部 ADS/arxiv HTML 解析函数)

  • 使用 ADS 网关链接下载文章 PDF

  • 使用授权的校园ssh代理机器(使用您的公钥)下载期刊付费墙后面的 PDF

  • 添加/更新 BibDesk 数据库并附加下载的 PDF(主要从原始ads_bibdesk借用AppleScript方法)

与原始ads_bibdesk 相比的其他更改包括:

  • 清理依赖需求

  • 用较新的替换过时的 Python 语法/函数/模块,例如 optparser->argparser、f-string 格式,并使用 configparser()

  • macOS Automator 工作流程正在运行已安装的控制台脚本,而不是嵌入式 Python 程序

原始ads_bibdesk中一些较少使用的功能已经消失:特别是“摄取”和“预印本更新”模式。但我计划通过扫描/更新与 arXiv 关联的article_bibcode至少添加“预印本更新”选项。我的改进建议可以在这里找到。

项目详情


下载文件

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

源分布

ads2bibdesk-0.2.dev3.tar.gz (184.1 kB 查看哈希

已上传 source

内置分布

ads2bibdesk-0.2.dev3-py3-none-any.whl (26.1 kB 查看哈希

已上传 py3