生物学分析器模块
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中将允许解析器查看它们。