Version: 2.5.0
sdv.utils
Module¶
-
sdv.utils.
children
(node)[source]¶ Returns an iterable collection of etree Element nodes that are direct children of node.
-
sdv.utils.
descendants
(node)[source]¶ Returns a list of etree Element nodes that are descendants of node.
-
sdv.utils.
get_document_namespaces
(doc)[source]¶ Returns namespace dictionary for all the namespaces declared in the input doc.
Parameters: doc – A read()-able XML document or etree node.
-
sdv.utils.
get_etree_root
(doc)[source]¶ Returns an instance of lxml.etree._Element for the given doc input.
Parameters: doc – The input XML document. Can be an instance of lxml.etree._Element
,lxml.etree._ElementTree
, a file-like object, or a string filename.Returns: An lxml.etree._Element
instance for doc.Raises: ValidationError
– If doc cannot be found or is not a well-formed XML document.
-
sdv.utils.
get_namespace
(node)[source]¶ Returns the namespace for which node falls under.
Parameters: node – An etree node.
-
sdv.utils.
get_schemaloc_pairs
(node)[source]¶ Parses the xsi:schemaLocation attribute on node.
Returns: A list of (ns, schemaLocation) tuples for the node. Raises: KeyError
– If node does not have an xsi:schemaLocation attribute.
-
sdv.utils.
get_target_ns
(doc)[source]¶ Returns the value of the
targetNamespace
attribute found on doc.Returns: The value of the
targetNamespace
attribute found at the root of doc.Raises: KeyError
– If doc does not contain atargetNamespace
attribute.ValidationError
– If doc cannot be found or is not a well-formed XML document.
-
sdv.utils.
get_type_ns
(doc, typename)[source]¶ Returns the namespace associated with the
xsi:type
typename found in the XML document doc.Parameters: - doc – An XML document. This can be a filename, file-like object,
etree._Element
, oretree._ElementTree
instance. - typename – The
xsi:type
value for a given vocabulary instance.
- doc – An XML document. This can be a filename, file-like object,
-
sdv.utils.
get_xml_files
(files, recursive=False)[source]¶ Returns a list of files to validate from files. If a member of files is a directory, its children with a
.xml
extension will be added to the return value.Parameters: - files – A list of file paths and/or directory paths.
- recursive – If
true
, this will descend into any subdirectories of input directories.
Returns: A list of file paths to validate.
-
sdv.utils.
get_xml_parser
(encoding=None)[source]¶ Returns the global XML parser object. If no global XML parser has been set, one will be created and then returned.
Parameters: encoding – The expected encoding of input documents. By default, an attempt will be made to determine the input document encoding. Returns: The global XML parser object.
-
sdv.utils.
has_content
(node)[source]¶ Returns
True
if the node has children or text nodes.Note
This will ignore whitespace and XML comments.
-
sdv.utils.
has_tzinfo
(timestamp)[source]¶ Returns
True
if the timestamp includes timezone or UTC offset information.
-
sdv.utils.
ignored
(*args, **kwds)[source]¶ Allows you to ignore exceptions cleanly using context managers. This exists in Python 3.4 as
contextlib.suppress()
.
-
sdv.utils.
is_cybox
(doc)[source]¶ Attempts to determine if the input doc is a CybOX XML instance document. If the root-level element falls under a namespace which starts with
http://cybox.mitre.org
orhttp://docs.oasis-open.org/cti/ns/cybox
, this will return True.
-
sdv.utils.
is_equal_timestamp
(ts1, ts2)[source]¶ Returns
True
if the timestamps ts1 and ts2 are equal.Parameters: - ts1 – Timestamp string/datetime or etree Element node with ‘timestamp’ attribute.
- ts2 – Timestamp string/datetime or etree Element node with ‘timestamp’ attribute.
-
sdv.utils.
is_iterable
(x)[source]¶ Returns
True
if x is an iterable collection.Note
This will return
False
if x is a string type.
-
sdv.utils.
is_stix
(doc)[source]¶ Attempts to determine if the input doc is a STIX XML instance document. If the root-level element falls under a namespace which starts with
http://stix.mitre.org
orhttp://docs.oasis-open.org/cti/ns/stix
, this will return True.
-
sdv.utils.
is_version_equal
(x, y)[source]¶ Attempts to determine if the x amd y version numbers are semantically equivalent.
Examples
The version strings “2.1.0” and “2.1” represent semantically equivalent versions, despite not being equal strings.
Parameters: - x – A string version number. Ex: ‘2.1.0’
- y – A string version number. Ex: ‘2.1’
-
sdv.utils.
iterchildren
(node)[source]¶ Returns an iterator which yields direct child elements of node.
-
sdv.utils.
iterdescendants
(node)[source]¶ Returns an iterator which yields descendant elements of node.
-
sdv.utils.
list_xml_files
(directory, recursive=False)[source]¶ Returns a list of file paths for XML files contained within dir_.
Parameters: - dir – A path to a directory.
- recursive – If
True
, this function will descend into all subdirectories.
Returns: A list of XML file paths directly under dir_.
-
sdv.utils.
parse_timestamp
(value)[source]¶ Attempts to parse value into an instance of
datetime.datetime
. If value isNone
, this function will returnNone
.Parameters: value – A timestamp. This can be a string or datetime.datetime value.
-
sdv.utils.
remove_version_prefix
(version)[source]¶ Strips the ‘stix-‘ prefix from a version number string so it can be compared with older version strings which do not have the prefix.