本文整理汇总了Python中anytree.AnyNode方法的典型用法代码示例。如果您正苦于以下问题:Python anytree.AnyNode方法的具体用法?Python anytree.AnyNode怎么用?Python anytree.AnyNode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类anytree
的用法示例。
在下文中一共展示了anytree.AnyNode方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: create_tree
# 需要导入模块: import anytree [as 别名]
# 或者: from anytree import AnyNode [as 别名]
def create_tree(root_json, root_node):
con_name = root_json['name']
if con_name is None:
con_name = 'container'
if con_name in ['__i3', 'topdock', 'bottomdock']:
return None
else:
this_node = at.AnyNode(id=con_name,
parent=root_node,
con_id=root_json['id'],
workspace=False,
container=False)
if con_name == 'container':
this_node.container = True
for a_node in root_json['nodes']:
create_tree(a_node, this_node)
开发者ID:sainathadapa,项目名称:i3-wm-multi-disp-scripts,代码行数:22,代码来源:bring_container_to_current_workspace.py
示例2: __init__
# 需要导入模块: import anytree [as 别名]
# 或者: from anytree import AnyNode [as 别名]
def __init__(
self, hierarchy_jsonpath: str, nms_threshold: float = 0.85, max_given_constraints: int = 3
):
def __read_hierarchy(node: anytree.AnyNode, parent: Optional[anytree.AnyNode] = None):
# Cast an ``anytree.AnyNode`` (after first level of recursion) to dict.
attributes = dict(node)
children = attributes.pop("Subcategory", [])
node = anytree.AnyNode(parent=parent, **attributes)
for child in children:
__read_hierarchy(child, parent=node)
return node
# Read the object class hierarchy as a tree, to make searching easier.
self._hierarchy = __read_hierarchy(json.load(open(hierarchy_jsonpath)))
self._nms_threshold = nms_threshold
self._max_given_constraints = max_given_constraints
示例3: __init__
# 需要导入模块: import anytree [as 别名]
# 或者: from anytree import AnyNode [as 别名]
def __init__(self, nodecls=AnyNode):
u"""
Import Tree from dictionary.
Every dictionary is converted to an instance of `nodecls`.
The dictionaries listed in the children attribute are converted
likewise and added as children.
Keyword Args:
nodecls: class used for nodes.
>>> from anytree.importer import DictImporter
>>> from anytree import RenderTree
>>> importer = DictImporter()
>>> data = {
... 'a': 'root',
... 'children': [{'a': 'sub0',
... 'children': [{'a': 'sub0A', 'b': 'foo'}, {'a': 'sub0B'}]},
... {'a': 'sub1'}]}
>>> root = importer.import_(data)
>>> print(RenderTree(root))
AnyNode(a='root')
├── AnyNode(a='sub0')
│ ├── AnyNode(a='sub0A', b='foo')
│ └── AnyNode(a='sub0B')
└── AnyNode(a='sub1')
"""
self.nodecls = nodecls
示例4: test_dict_exporter
# 需要导入模块: import anytree [as 别名]
# 或者: from anytree import AnyNode [as 别名]
def test_dict_exporter():
"""Dict Exporter."""
root = AnyNode(id="root")
s0 = AnyNode(id="sub0", parent=root)
s0b = AnyNode(id="sub0B", parent=s0)
s0a = AnyNode(id="sub0A", parent=s0)
s1 = AnyNode(id="sub1", parent=root, foo="bar")
s1a = AnyNode(id="sub1A", parent=s1)
s1b = AnyNode(id="sub1B", parent=s1)
s1c = AnyNode(id="sub1C", parent=s1)
s1ca = AnyNode(id="sub1Ca", parent=s1c)
exporter = DictExporter()
eq_(exporter.export(root),
{'id': 'root', 'children': [
{'id': 'sub0', 'children': [
{'id': 'sub0B'},
{'id': 'sub0A'}
]},
{'id': 'sub1', 'foo': 'bar', 'children': [
{'id': 'sub1A'},
{'id': 'sub1B'},
{'id': 'sub1C', 'children': [
{'id': 'sub1Ca'}
]}
]}
]}
)
示例5: test_anynode_children_init
# 需要导入模块: import anytree [as 别名]
# 或者: from anytree import AnyNode [as 别名]
def test_anynode_children_init():
"""Anynode With Children Attribute."""
root = AnyNode(foo="root", children=[
AnyNode(foo="a", children=[
AnyNode(foo="aa")
]),
AnyNode(foo="b")
])
eq_(repr(root.descendants),
"(AnyNode(foo='a'), AnyNode(foo='aa'), AnyNode(foo='b'))")
示例6: test_any_node_parent_error
# 需要导入模块: import anytree [as 别名]
# 或者: from anytree import AnyNode [as 别名]
def test_any_node_parent_error():
"""Any Node Parent Error."""
with assert_raises(TreeError, "Parent node 'r' is not of type 'NodeMixin'."):
AnyNode("r")
示例7: test_any_node
# 需要导入模块: import anytree [as 别名]
# 或者: from anytree import AnyNode [as 别名]
def test_any_node():
"""Any Node."""
r = AnyNode()
a = AnyNode()
b = AnyNode(foo=4)
eq_(r.parent, None)
eq_(a.parent, None)
eq_(b.parent, None)
a.parent = r
b.parent = r
eq_(r.children, (a, b))
eq_(repr(r), "AnyNode()")
eq_(repr(a), "AnyNode()")
eq_(repr(b), "AnyNode(foo=4)")
示例8: main
# 需要导入模块: import anytree [as 别名]
# 或者: from anytree import AnyNode [as 别名]
def main(ioc_file, output_dir):
with open(ioc_file) as csvfile:
iocreader = csv.reader(csvfile, delimiter=',')
for row in iocreader:
root = AnyNode(id=row[1], type=row[0])
logger.info('=========Start to explore IOC: %s', root.id)
ioc_list = build_ioc_relation(root)
timestamp = datetime.now().strftime('%Y%m%d%H%M')
query_depth = config.get('general','depth')
txtfile = output_dir + root.id + '_depth_'+ query_depth + '_'+timestamp + '.txt'
file = open(txtfile, "w")
file.write(str(RenderTree(root)))
file.close()
logger.info('Export IOCs to TXT file: %s', txtfile)
jsonfile = output_dir + root.id + '_depth_'+ query_depth + '_'+timestamp + '.json'
file = open(jsonfile, "w")
exporter = JsonExporter(indent=2, sort_keys=False)
exporter.write(root, file)
file.close()
logger.info('Export IOCs to JSON file: %s', jsonfile)
logger.info('=========Done exploration for IOC: %s', root.id)
return
示例9: new_top_node
# 需要导入模块: import anytree [as 别名]
# 或者: from anytree import AnyNode [as 别名]
def new_top_node(self):
'''create a new top node'''
return anytree.AnyNode(name=self.TOPNAME, type=self.TYPE_TOP)
示例10: update_metanode
# 需要导入模块: import anytree [as 别名]
# 或者: from anytree import AnyNode [as 别名]
def update_metanode(self, top):
'''create or update meta node information'''
meta = self._get_meta_node(top)
epoch = int(time.time())
if not meta:
attr = {}
attr['created'] = epoch
attr['created_version'] = VERSION
meta = anytree.AnyNode(name=self.METANAME, type=self.TYPE_META,
attr=attr)
meta.attr['access'] = epoch
meta.attr['access_version'] = VERSION
return meta
示例11: storage_node
# 需要导入模块: import anytree [as 别名]
# 或者: from anytree import AnyNode [as 别名]
def storage_node(self, name, path, parent, attr=None):
'''create a new node representing a storage'''
path = os.path.abspath(path)
free = shutil.disk_usage(path).free
total = shutil.disk_usage(path).total
epoch = int(time.time())
return anytree.AnyNode(name=name, type=self.TYPE_STORAGE, free=free,
total=total, parent=parent, attr=attr, ts=epoch)
示例12: archive_node
# 需要导入模块: import anytree [as 别名]
# 或者: from anytree import AnyNode [as 别名]
def archive_node(self, name, path, parent, archive):
'''crete a new node for archive data'''
return anytree.AnyNode(name=name, type=self.TYPE_ARC, relpath=path,
parent=parent, size=0, md5=None,
archive=archive)
示例13: _node
# 需要导入模块: import anytree [as 别名]
# 或者: from anytree import AnyNode [as 别名]
def _node(self, name, type, relpath, parent,
size=None, md5=None, maccess=None):
'''generic node creation'''
return anytree.AnyNode(name=name, type=type, relpath=relpath,
parent=parent, size=size,
md5=md5, maccess=maccess)
###############################################################
# printing
###############################################################
示例14: vt_ip_to_file
# 需要导入模块: import anytree [as 别名]
# 或者: from anytree import AnyNode [as 别名]
def vt_ip_to_file(parent):
"""
Files downloaded from the IP address
Output is a list of file nodes with sha256 value
Example: 192.99.142.235
https://developers.virustotal.com/v3.0/reference#domains-relationships
"""
result = []
if parent.type != 'ip_address':
return result
ip_address = parent.id
headers = {'x-apikey': config.get('VirusTotal','api_key')}
params = {'limit': int(config.get('VirusTotal', 'limit'))}
re_url = config.get('VirusTotal', 'ip_downloaded_files').replace('{ip}', ip_address)
try:
logger.debug('[Processing] Relationship query - VT: IP to downloaded files - %s', ip_address)
r = requests.get(re_url, headers=headers, params=params, timeout=5)
except:
logger.debug('[Error] Relationship query - VT: IP to downloaded files - %s', ip_address)
return result
logger.debug('[Done] Relationship query - VT: IP to downloaded files - %s', ip_address)
if r.status_code == 200 and len(r.json()['data']) > 0:
for i in r.json()['data']:
if 'attributes' in i:
child_node = AnyNode(id=i['attributes']['sha256'],
type='file',
relation='VT: IP to downloaded file',
parent=parent)
result.append(child_node)
return result
示例15: vt_domain_to_file
# 需要导入模块: import anytree [as 别名]
# 或者: from anytree import AnyNode [as 别名]
def vt_domain_to_file(parent):
"""
Files downloaded from the domain
Output is a list of file nodes with sha256 value
Example: xnz.freetzi.com
https://developers.virustotal.com/v3.0/reference#domains-relationships
"""
result = []
if parent.type != 'domain':
return result
domain = parent.id
headers = {'x-apikey': config.get('VirusTotal','api_key')}
params = {'limit': int(config.get('VirusTotal', 'limit'))}
re_url = config.get('VirusTotal', 'domain_downloaded_files').replace('{domain}', domain)
try:
logger.debug('[Processing] Relationship query - VT: domain to downloaded files - %s', domain)
r = requests.get(re_url, headers=headers, params=params, timeout=5)
except:
logger.debug('[Error] Relationship query - VT: domain to downloaded files - %s', domain)
return result
logger.debug('[Done] Relationship query - VT: domain to downloaded files - %s', domain)
if r.status_code == 200 and len(r.json()['data']) > 0:
for i in r.json()['data']:
if 'attributes' in i:
child_node = AnyNode(id=i['attributes']['sha256'],
type='file',
relation='VT: domain to downloaded file',
parent=parent)
result.append(child_node)
return result