生物学分析器模块

NCBI的Deliverz Utilities返回的HTML结果的解析器。

该解析器由Bio. z中的read()函数使用,不打算直接使用。

问题是如何将一个HTML文件表示为Python对象。NCBI返回的一些文档看起来像列表,另一些则像字典,还有一些则像列表和字典的混合体。

我的方法是将XML中每个可能的元素分类为普通字符串、整数、列表、字典或结构。后者是一个字典,其中同一个键可以出现多次;在Python中,它表示为一个字典,其中该键只出现一次,指向XML文件中的值列表。

然后,解析器会检查该文档,并为每个元素创建适当的Python对象。在Python端保留了Python中遇到的不同级别。因此,元素的子元素的子元素是存储在列表中的字典中的值,该列表是其他字典中的值(或者列表中的值本身属于列表的值)。字典中的值,等等)。在该文档中遇到的属性作为字典存储在每个元素的member . attractments中,并且标签名称保存在member. tagement中。

为了确定哪种Python对象与ML中的每个元素相对应,解析器会分析在(几乎)Deliverz Utilities返回的每个ML文件顶部引用的DART。这比手写解决方案更可取,因为DDD的数量相当大,并且它们的内容可能会随着时间的推移而变化。该解析器中大约一半的代码用于解析DART,另一半用于解析HTML本身。

class Bio.Entrez.Parser.NoneElement(tag, attributes, key)

基类:object

NCBI Expressz映射到无的扩展。

__init__(tag, attributes, key)

创建一个NoneElement。

__eq__(other)

定义与其他无对象的相等。

__ne__(other)

定义不平等。

__repr__()

返回对象的字符串表示形式。

__firstlineno__ = 57
__hash__ = None
__static_attributes__ = ('attributes', 'key', 'tag')
class Bio.Entrez.Parser.IntegerElement(value, *args, **kwargs)

基类:int

NCBI z映射到一个整元的扩展符。

static __new__(cls, value, *args, **kwargs)

创建一个IntegerElement。

__init__(value, tag, attributes, key)

初始化IntegerElement。

__repr__()

返回对象的字符串表示形式。

__firstlineno__ = 93
__static_attributes__ = ('attributes', 'key', 'tag')
class Bio.Entrez.Parser.StringElement(value, *args, **kwargs)

基类:str

NCBI z映射到字符串的扩展符。

static __new__(cls, value, *args, **kwargs)

创建StringElement。

__init__(value, tag, attributes, key)

初始化StringElement。

__repr__()

返回对象的字符串表示形式。

__firstlineno__ = 116
__static_attributes__ = ('attributes', 'key', 'tag')
class Bio.Entrez.Parser.ListElement(tag, attributes, allowed_tags, key=None)

基类:list

NCBI z映射到列表的扩展符。

__init__(tag, attributes, allowed_tags, key=None)

创建列表元素。

__repr__()

返回对象的字符串表示形式。

store(value)

将元素添加到列表中,检查标签。

__firstlineno__ = 138
__static_attributes__ = ('allowed_tags', 'attributes', 'key', 'tag')
class Bio.Entrez.Parser.DictionaryElement(tag, attrs, allowed_tags, repeated_tags=None, key=None)

基类:dict

NCBI z映射到词典的扩展符。

__init__(tag, attrs, allowed_tags, repeated_tags=None, key=None)

创建DictionaryElement。

__repr__()

返回对象的字符串表示形式。

store(value)

将条目添加到字典中,检查标签。

__firstlineno__ = 168
__static_attributes__ = ('allowed_tags', 'attributes', 'key', 'repeated_tags', 'tag')
class Bio.Entrez.Parser.OrderedListElement(tag, attributes, allowed_tags, first_tag, key=None)

基类:list

NCBI Deliverz映射到列表的扩展符。

Order ListElement用于描述重复元素的列表,例如A、B、C、A、B、C、A、B、C.其中A、B、C的每一组形成一个组。然后将其存储为 [[A, B, C] , [A, B, C] , [A, B, C] , ...]

__init__(tag, attributes, allowed_tags, first_tag, key=None)

创建有序列表元素。

__repr__()

返回对象的字符串表示形式。

store(value)

将元素添加到列表中,检查标签。

__firstlineno__ = 206
__static_attributes__ = ('allowed_tags', 'attributes', 'first_tag', 'key', 'tag')
class Bio.Entrez.Parser.ErrorElement(value, *args, **kwargs)

基类:str

包含错误消息的NCBI Deliverz HTML元素。

static __new__(cls, value, *args, **kwargs)

创建一个错误元素。

__init__(value, tag)

初始化errorElement。

__repr__()

以字符串形式返回错误消息。

__firstlineno__ = 243
__static_attributes__ = ('key', 'tag')
exception Bio.Entrez.Parser.NotXMLError(message)

基类:ValueError

未能将文件解析为HTML。

__init__(message)

初始化课程。

__str__()

返回异常的字符串摘要。

__firstlineno__ = 261
__static_attributes__ = ('msg',)
exception Bio.Entrez.Parser.CorruptedXMLError(message)

基类:ValueError

损坏的HTML。

__init__(message)

初始化课程。

__str__()

返回异常的字符串摘要。

__firstlineno__ = 276
__static_attributes__ = ('msg',)
exception Bio.Entrez.Parser.ValidationError(name)

基类:ValueError

找到了DTE中未定义的HTML标记。

如果解析器在MTD中未定义的标记,则验证解析器会引发此错误。非验证分析器不会引发此错误。Bio.Entrez.read和Bio. guardz.parse函数默认使用验证解析器(有关更多信息,请参阅这些函数)。

__init__(name)

初始化课程。

__str__()

返回异常的字符串摘要。

__firstlineno__ = 291
__static_attributes__ = ('name',)
class Bio.Entrez.Parser.DataHandlerMeta(*args, **kwargs)

基类:type

在Python支持@classproperty之前需要一个元类。

__init__(*args, **kwargs)

初始化课程。

property directory

用于缓存LGA和DTE文件的目录。

__annotations__ = {}
__firstlineno__ = 313
__static_attributes__ = ()
class Bio.Entrez.Parser.DataHandler(validate, escape, ignore_errors)

基类:object

用于解析NCBI XML的数据处理程序。

global_dtd_dir = '/xpy/lib/python3.13/site-packages/Bio/Entrez/DTDs'
global_xsd_dir = '/xpy/lib/python3.13/site-packages/Bio/Entrez/XSDs'
local_dtd_dir = '/home/bk/.config/biopython/Bio/Entrez/DTDs'
local_xsd_dir = '/home/bk/.config/biopython/Bio/Entrez/XSDs'
__init__(validate, escape, ignore_errors)

创建数据库对象。

read(source)

设置解析器并让它读取HTML结果。

parse(source)

设置解析器并让它读取HTML结果。

xmlDeclHandler(version, encoding, standalone)

当找到ML声明时设置ML处理程序。

handleMissingDocumentDefinition(tag, attrs)

如果既未找到DART也未找到HTML架构,引发异常。

startNamespaceDeclHandler(prefix, uri)

处理ML命名空间声明的开始。

endNamespaceDeclHandler(prefix)

处理ML命名空间声明的结尾。

schemaHandler(name, attrs)

处理HTML模式(在处理元素之前)。

startElementHandler(tag, attrs)

处理HTML元素的开始。

startRawElementHandler(name, attrs)

处理HTML原始元素的开始。

startSkipElementHandler(name, attrs)

处理HTML跳过元素的开始。

endStringElementHandler(tag)

ML字符串元素的处理结束。

endRawElementHandler(name)

处理HTML原始元素的结尾。

endSkipElementHandler(name)

处理HTML跳过元素的结尾。

endErrorElementHandler(tag)

处理HTML错误元素的结尾。

endElementHandler(name)

处理HTML元素的结尾。

endIntegerElementHandler(tag)

处理ML integer元素的结尾。

characterDataHandlerRaw(content)

按原样处理字符数据(原始)。

characterDataHandlerEscape(content)

通过编码来处理字符数据。

skipCharacterDataHandler(content)

通过跳过字符数据来处理字符数据。

parse_xsd(root)

解析NSX文件。

__firstlineno__ = 353
__static_attributes__ = ('allowed_tags', 'attributes', 'characterDataHandler', 'constructors', 'data', 'dtd_urls', 'element', 'errors', 'ignore_errors', 'items', 'level', 'namespace_level', 'namespace_prefix', 'parser', 'record', 'schema_namespace', 'strings', 'validating')
elementDecl(name, model)

为DART中的每个元素声明调用回调函数。

这用于td中的每个元素声明,例如::

<!ELEMENT       name          (...)>

此函数的目的是确定此元素是否应视为字符串、integer、list、dictionary、结构或错误。

open_dtd_file(filename)

打开指定的DART文件。

open_xsd_file(filename)

打开指定的LGA文件。

save_dtd_file(filename, text)

将td文件保存到缓存。

save_xsd_file(filename, text)

将NSX文件保存到缓存。

externalEntityRefHandler(context, base, systemId, publicId)

处理外部实体引用以在本地缓存td。

此函数的目的是在本地加载td,而不是从ML中指定的URL下载它。使用本地td可以实现更快的解析。如果本地找不到td,我们会尝试下载它。如果NCBI提供了新的td,则将它们放入Bio/Deliverz/TDS中将允许解析器查看它们。