Bible Ref Py是一个建立在python经典库之上的python库,由david davisd<davisd@davisd.com>实现(版权所有(c)2010-2015)。它是一个python包和正则表达式库,用于验证、提取和规范来自文本的圣经引用。

beatitud-scriptures的Python项目详细描述


圣经参考号py

Bible Ref Py是一个与Python2和Python3兼容的包,并且是常规的 用于验证、提取和规范圣经的表达式库 参考文献。

bible ref py由Beatitud developers在python经典库之上构建,最初由 David Davis(版权所有(c)2010-2015)。

典型用法如下:

fromscriptures.textimportTextstring="Le service est le billet à présenter à l’entrée des noces éternelles. Ce qui reste de la vie au seuil de l’éternité, ce n’est pas ce que nous avons gagné, mais ce que nous avons donné (cf. Mt 6, 19-21 ; 1Co 13, 8)"text=Text(string,language='fr',canon='catholic')text.extract_refs(guess=True)# [<Ref(Matthieu 6:19-21)>, <Ref(I Corinthiens 13:8)>]

范围验证是自动执行的,无效引用不是 提取。

fromscriptures.referenceimportReferenceReference(book='Rom',chapter=2,verse=30).is_valid()# FalseReference(book='Rom',chapter=3,verse=23).is_valid()# True

根据以下三条规则,可以猜出单节数字引用:

  • 如果在同一句话中有一个完整的参考文献,那么在前面,我们假设同一个诗句所指的书籍和章节与这个完整的参考文献相同
  • 否则,如果在同一段中有一个完整的参考文献,那么我们假设这一节引用的书和章节与这一完整的参考文献相同
  • 否则,如果文本中有完整的参考文献,在前面的段落中,我们假设单个诗句指的是那些书籍和章节
fromscriptures.textimportTextstring="Les disciples « sortirent à la rencontre de l’époux » (Mt 25, 1). Puis : « Voici l’époux, sortez à sa rencontre ! » (v. 6)."text=Text(string,language='fr',canon='catholic')text.extract_refs(guess=True)# [<Ref(Matthieu 25:1)>, <Ref(Matthieu 25:6)>]

安装

要安装,只需使用install命令运行脚本:

$ pip install beatitud-scriptures

或者把经文包放在python路径的某个地方。

API

返回值

当“经文参考”被返回时,它总是一个具有五个属性的对象 包括:

  • 书本
  • 章节
  • 结束章节
  • 结束语
fromscriptures.referenceimportReferenceref=Reference(book='Rom',chapter=2,verse=30)print(ref.book)# Romansprint(ref.chapter)# 2

正则表达式

这个包公开了两个已编译的正则表达式模式。

预订

匹配有效的缩写或书名。

示例:

fromscriptures.canonsimportget_canonimportrecanon=get_canon(name="catholic")re.findall(canon.book_re,'Matt test Ecclesiastes and 2 peter')# ['Matt', 'Ecclesiastes', '2 peter']    

经文

根据有效的缩写或书名匹配经文参考模式。

示例:

fromscriptures.textimportTextimportretxt=Text("",language="en",canon="catholic")re.findall(txt.scripture_re,'Matt 3 & Acts 1:2-3 Rev 2:1-3:2')# [('Matt', '3', '', '', ''), ('Acts', '1', '2', '', '3'),# ('Rev', '2', '1', '3', '2')]

佳能

此库当前提供以下佳能:

  • 天主教-经文.教规.天主教.教规
  • 新教徒-经文.教规.新教徒.教规
  • 申命记-经文.经典.申命记.经典
  • kjv1611-经文.canons.kjv1611.canon

用法

要使用其他文本,只需实例化文本对象并使用api 新实例上的函数和正则表达式。

示例

fromscriptures.canons.catholicimportCanoncc=Canon(language='en')print(cc.books)# {'gn': {#                'en': ('Genesis', 'Gen', 'Gen(?:esis)?'),#                'fr': ('Genèse', 'Gn', 'Gen(?:èse)?'),#                'chapters':#                    [31, 25, 24, 26, 32, 22, 24, 22, 29, 32, 32, 20, 18, 24, 21, 16, 27, 33, 38, 18, 34, 24, 20, 67, 34, 35,#                     46, 22, 35, 43, 55, 32, 20, 31, 29, 43, 36, 30, 23, 23, 57, 38, 34, 34, 28, 34, 31, 22, 33, 26]#  },#  ...}

定制佳能

图书馆通过自定义文本扩展图书馆 通过附加模块实现。请考虑投稿 通过在经文/正典下创建正典并提交本项目的模块 拉取请求。

创建新佳能

要创建新佳能,

  1. 创建继承自经典.base.canonbase的类
  2. 实现“books”字典
  3. 实例化您的新佳能并使用它

测试套件

提供单元测试来验证章节和诗体风格的规范化、输出 格式,书名和缩写。

要运行测试套件,请将cwd设置为刚好在经文包之外,然后:

$ python -m unittest discover

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何表示1。。Java中的n关系   java在安卓应用程序中添加polaris viewer   Java字符串::replaceAll仅替换第一个出现(可能不正确的正则表达式)   java Tomcat/JBoss部署后脚本   如何在Heroku Java应用程序中运行发出web请求的周期进程   java如何以纳秒为单位证明算法的时间   Solaris上的java自定义ListCellRenderer(使用jre5)   java试图为我的播放器类测试块实现播放器重力(RealtutsGml平台教程)   c#消耗一个。带有java的net web服务未显示预期结果   java在KOI8\R中检索html   基于java图形的搜索与基于随机的搜索   java如何检查安卓设备上的可用空间?在SD卡上?