python中的书目管理器(使用sqlite和pyside2)
physbiblio的Python项目详细描述
physiblio
python中的书目管理器
作者:S.Gariazzo(Stefano.Gariazzo@gmail.com)
physiblio是一个帮助管理书目的程序,特别关注高能物理工具。
它是用python编写的,图形界面使用pyside2,数据库管理使用sqlite。
警告:
physiblio只在ubuntu(14.04lts到18.04版本)和sabayon linux上进行了密集测试,使用的是python
version2.7+
和3.5+
在运行macos的虚拟机上也进行了一些测试(10.14,python 3.7
)。
它在其他操作系统或不同的python版本中应该同样工作良好,但它还没有经过测试。
在任何情况下,肯定仍然存在几个bug,程序可能会意外冻结或崩溃。
请在这里报告您发现的任何错误。
安装
要将physiblio安装到计算机中,最简单的方法是使用pip
和正式的python存储库。
如果您的系统中没有安装pip,请参见本页。
请注意,目前pyside2
仅适用于python
2.7+和3.5+版本。
因此不支持其他python版本。
蟒蛇2
如果您使用Python2+
,只需使用(系统范围的安装)
sudo pip install physbiblio
或(仅限用户安装)
pip install --user physbiblio
蟒蛇3
对于python 3+
,命令几乎没有变化。
如果pip
指向您的python3
发行版,则上述命令将执行此操作。
否则,使用上述相同的命令,但使用pip3
而不是pip
条件
在这里,您可以找到使用conda和相关命令安装和运行physiblio.exe的说明列表。
请注意,以下命令尚未使用pyside2
进行测试。
请记住使用python版本2.7+或3.5+。
conda create --name physbiblio
conda activate physbiblio
pip install physbiblio
此时,安装已完成。
要正确启动主程序,请在激活相应的conda
环境(conda activate physiblio
),使用:
python PhysBiblio.exe
(如果省略了python,它将尝试使用默认python安装而不是conda安装,并且由于缺少库而失败)
附加信息
此时,physiblio.exe
将安装在您的计算机中,在Linux中,它将位于一些文件夹中,如/usr/bin/
、/usr/local/bin/
或/your/user/folder/.local/bin/
。
您可以找到软件包的安装位置
pip show -f physbiblio
主控制器位于 要从以前安装的版本升级,请在运行 或 安装软件后,您可能需要花几分钟来运行测试套件
检查一切正常。 整个测试套件将检查所有功能是否正常工作,并在几分钟内无错误和故障地完成,具体取决于Internet连接速度。 如果只想运行测试套件的一部分,可以使用命令行选项(请参见 如果测试由于分段错误而无法完成,或者出现随机行为,则可能是与python版本相关的问题。一个已知的案例包括sabayon linux中python 3.5.5的崩溃。使用python 3.6时不会出现问题。 要运行程序,请执行已安装的physiblio.exe。
默认情况下,它将使用 您可能需要创建指向physiblio的菜单快捷方式。
在ubuntu中,您只需使用自己选择的编辑器创建一个新文件 图标可以位于 首次打开physiblio时,需要设置一些配置参数。 physiblio依赖于几个python包: physiblio有一些很好的特性可以帮助管理参考书目。其中一些列在这里。 您可以管理不同的配置文件,每个配置文件具有不同的设置和独立的数据库。
如果您希望单独维护活动或收藏,这可能很有用。 默认导入界面可以从inspire-hep获取和下载信息。
高级导入还可以与广告,arxiv,dx.doi.org,isbn2bittex一起工作。
如果存在arxiv标识符,则可以从arxiv下载纸制摘要(默认情况下,可以选择这样做)。 很容易将一些条目导出到 physiblio可以使用inspire-hep信息来更新最近发布的条目的信息。
您会发现,使用日志信息更新数据库非常容易,您只需偶尔在单个文件或整个表上运行 请注意inspire-hep的维护人员不鼓励在长的条目列表上使用 默认数据库包含两类: 与类别不同,您可以组织由实验或协作发布的论文,并插入到实验网页的链接。
当你将一篇论文分配给一个实验时,它也将被归类到实验本身的相同类别中。 所有带有arxiv标识符的论文都有一个"从arxiv下载"功能。 您可以标记条目,以便能够轻松查看它们是好是坏,注意哪些条目需要阅读,哪些条目最有趣。 数据库中的条目可以使用不同的字段组合、它们的相关类别或实验、标记、条目类型(评论、会议记录、讲座等)进行搜索。 搜索表单应该很容易理解(如果不是,请帮助我改进它并提交一个问题)。
如果需要,可以使用逻辑运算符并添加更多字段。
您还可以保存经常需要的搜索或替换,它们将出现在新菜单中供以后使用。 还实现了一个非常强大的"search and replace"函数,它可以使用正则表达式(regex)。 两个(regex)搜索和替换示例: 要将"phys.rev."系列日志的字母从"volume"移动到"journal",请使用: 如果你想和"J.Phys"匹配的话。或其他日志,相应地更改模式字符串的第一部分(例如 要从jhep/jcap条目的"volume"字段中删除前两个数字,请使用: 0.5.0中的新功能:现在可以保存更频繁使用的搜索/替换。只需在新菜单中单击两次即可重新使用,并在所有配置文件中共享。 0.9.5中的新功能:您现在可以重新使用最近的搜索/替换,这些搜索/替换尚未明确保存,但已临时存储在数据库中。可使用"搜索/替换"表单中的向上/向下箭头键进行搜索。 inspire-hep有一个专门的接口,可以进行大规模收割,请参见本页
为了避免在长的条目列表上使用 最简单的方法(在Linux中)是使用cron作业,该作业将每天或每周运行,并使用命令 要设置cron作业,请使用crontab-e并添加以下行之一: 语法很简单: 然后,如果您想查看修改的完整列表,您可以检查日志文件的底部以查看修改的条目,并滚动整个内容。 您还可以使用更通用的 nasa的ads服务通过api访问,使用由andy casey维护的非官方python客户端。
目前,只能从广告中下载bibtex条目,现有条目的更新或其他功能尚不可用。 通过api执行搜索的方式与通过编写c新用户界面版本中的复杂搜索字符串。
有关ADS搜索中使用的语法的说明,请参见本页的 一些函数也可以作为简单的命令行指令使用,
因此它们可以包含在任何非图形脚本中。 用法很简单: 可用命令列表包括: 了解如何使用各种子命令和选项的最佳方法是 physiblio现在默认情况下使用 存储的配置包括一个 存储的数据包括: 您可以更改配置中的某些路径和文件名。
请注意,更改配置不会将现有文件移动到新位置。 该软件是一个项目的一部分,该项目获得了欧盟地平线2020研究和创新计划的资助,该计划是根据第796941号Marie Sk_odowska-Curie赠款协议进行的。 图形用户界面中采用的图标主要来自于breeze图标主题,也来自于kde主题。
位置下,您可以结合
文件列表提供的信息
pip
时添加选项-u
或--upgrade
,例如:sudo pip install -U physbiblio
pip install -U physbiblio
测试是否一切正常
测试套件可以通过同一个physiblio.exe可执行文件使用命令
test:
physiblio.exe测试
如果这不起作用,请检查全局变量路径是否正确配置。
另一种可能是使用以下命令之一直接指向physiblio脚本:/path/to/PhysBiblio.exe test
python /path/to/PhysBiblio.exe test
python3 /path/to/PhysBiblio.exe test
失败可能是由于缺少包、包版本不兼容、特定操作系统和包版本导致的特定不一致,或者缺少Internet连接(或错误)。
如果您不确定是哪种情况,并且在任何情况下都要报告您发现的任何问题,请转到此处physiblio.exe test-h
)。
例如,physiblio.exe test-o
将跳过所有联机测试。用法
python2.x
运行。
您可以通过命令行选择一个特定的python
版本,例如,您可以使用python3
python3 /path/to/PhysBiblio.exe
/your/home/.local/share/applications/physiblio.desktop
,然后插入以下行:
0
sudo pip install physbiblio
/usr/local/physiblio/icon.png
或/usr/physiblio/icon.png
默认设置
特别是,如果您没有正确设置Web浏览器和PDF阅读器,某些功能在使用命令行时可能无法工作。依赖关系
<H2>2。功能配置文件
导入
导出
.bib
文件中。
您可以导出整个bibtex数据库、一个选择或让程序只导出编译给定.tex
文件所需的条目。
所有功能都可以在文件
菜单中找到。
更新
up date
函数即可。
您还可以使用此功能更新现有文件的内容。update
函数,因为它会在服务器上产生大量负载。
请参见此处的"激励OAI" rel="nofollow",以获得一种替代的、要求更低的方法。类别
main
和标记
。
您可以在树结构中添加子类别,并根据分类筛选bibtex条目。实验
PDF
对于其他论文,您可以手动分配一个单独下载的pdf文件,并将其存储在子文件夹中。
您不需要知道它保存在何处,因为您可以从程序中访问它,但如果您可以使用此功能在任何需要的地方复制PDF。标记
搜索并替换
搜索功能与仅搜索的情况相同,但现在无法选择限制和偏移。
"替换"字段允许您从中选择要接受输入的字段以及要在其中存储新字符串的字段。
尝试匹配正则表达式时将执行其他筛选。不匹配,不执行操作。(phys.rev.[a-z]{1}([0-9]{1,3})。*
;\1
;\2
j.phys。[a-z]{1}
)。([0-9]{2})替换为
\2
INSPIRE-OAI
update
函数时服务器上的大量通信,您应该依赖oai函数。
基本上,代码不会查找每个条目,而是下载在给定时间间隔内修改的所有条目的信息,并使用本地数据库中需要的内容。
这样,数据通信量更高,但inspire-hep的服务器端负载更可持续。physiblio.exe daily
或physiblio.exe weekly
(另请参见3)。命令行用法)。daily
(weekly
)例程将从Inspire-HEP数据库下载最后一天(星期)的更新,并更新本地数据库。
1
sudo pip install physbiblio
daily
(weekly
)脚本将每天(每周六)7:00运行,并将日志文件保存在所需的文件夹中。physiblio.exe dates[date1[,date2]]
命令,该命令允许您获取两个给定日期之间的内容(格式必须为yyyy-mm-dd
)。
如果未指定,则默认日期与daily
命令的日期相同。美国宇航局的广告
2
sudo pip install physbiblio
gui
:运行图形界面(如果未使用任何选项,则为默认设置)。测试
:执行测试套件。清除
:处理数据库中的所有bibtex条目以删除错误字符并重新格式化它们。cli
:用于处理内部命令的内部命令行界面。主要用于开发。每日
:请参见此处的日期
:请参见此处的导出
:
导出数据库中的所有bibtex条目,创建具有给定文件名
的文件。
如果已经存在,文件将被覆盖。tex
:
读取一个或多个.tex
文件,
扫描\cite
或类似命令,并生成单个.bib
文件
使用所需的bibtex项编译.tex
文件集。
如果它们在本地数据库中,bibtex就被复制到输出文件中,
否则脚本将连接到inspire-hep以下载条目,
它将存储在数据库和输出文件中。
如果存在输出文件,将创建备份副本。更新
:
对于数据库中的每个条目,如果需要,可以从inspire-hep获取更新的信息(例如,发布信息或标题更新)。
如果您有一个大型数据库,建议您不要使用此功能,请参见此处的。每周
:请参见此处的
3
<H2>4。数据路径sudo pip install physbiblio
user-config-dir
和user-data-dir>将数据保存在
appdirs
包指定的目录中。
通过命令行启动physiblio.exe时,这两个目录都在开头指示。profiles.db
文件,其中包含有关现有配置文件的信息。pdf/
子文件夹,包含所有论文的pdf。这通常在所有配置文件之间共享,除非在每个配置文件的配置中设置不同的路径;.db
和.log
文件,其中包含每个配置文件的数据库和错误日志。推荐PyPI第三方库