本文整理汇总了Python中pyasm.search.Search.add_null_filter方法的典型用法代码示例。如果您正苦于以下问题:Python Search.add_null_filter方法的具体用法?Python Search.add_null_filter怎么用?Python Search.add_null_filter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pyasm.search.Search
的用法示例。
在下文中一共展示了Search.add_null_filter方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: delete_sobject
# 需要导入模块: from pyasm.search import Search [as 别名]
# 或者: from pyasm.search.Search import add_null_filter [as 别名]
def delete_sobject(my, sobject):
search_type = sobject.get_base_search_type()
# this is used by API method delete_sobject
auto_discover = my.kwargs.get("auto_discover")
values = my.kwargs.get("values")
if values:
related_types = values.get("related_types")
elif auto_discover:
related_types = SearchType.get_related_types(search_type, direction="children")
else:
related_types = None
# always delete notes and task and snapshot
#if not related_types:
# related_types = ['sthpw/note', 'sthpw/task', 'sthpw/snapshot']
#related_types = my.schema.get_related_search_types(search_type)
if related_types:
for related_type in related_types:
if not related_type or related_type == search_type:
continue
# snapshots take care of sthpw/file in the proper manner, so
# skip them here
if related_type == 'sthpw/file':
continue
related_sobjects = sobject.get_related_sobjects(related_type)
for related_sobject in related_sobjects:
if related_type == 'sthpw/snapshot':
my.delete_snapshot(related_sobject)
else:
related_sobject.delete()
# implicitly remove "directory" files associated with the sobject
search = Search("sthpw/file")
search.add_op("begin")
search.add_filter("file_name", "")
search.add_null_filter("file_name")
search.add_op("or")
search.add_parent_filter(sobject)
file_objects = search.get_sobjects()
for file_object in file_objects:
base_dir = Environment.get_asset_dir()
relative_dir = file_object.get("relative_dir")
lib_dir = "%s/%s" % (base_dir, relative_dir)
print "removing: ", lib_dir
FileUndo.rmdir(lib_dir)
file_object.delete()
# finally delete the sobject
print "deleting: ", sobject.get_search_key()
if search_type == 'sthpw/snapshot':
my.delete_snapshot(sobject)
else:
sobject.delete()
示例2: get_by_key
# 需要导入模块: from pyasm.search import Search [as 别名]
# 或者: from pyasm.search.Search import add_null_filter [as 别名]
def get_by_key(cls, key, user=None, project_code=None, use_cache=True):
if not user:
user = Environment.get_user_name()
# ignore the project_code column for now
dict_key = '%s:%s:%s' %(cls.SEARCH_TYPE, project_code, user)
if use_cache:
settings_dict = Container.get(dict_key)
else:
settings_dict = None
# explicit check for None
if settings_dict == None:
settings_dict = {}
if use_cache:
Container.put(dict_key, settings_dict)
search = Search(cls.SEARCH_TYPE)
search.add_filter("login", user)
if project_code:
search.add_filter("project_code", project_code)
else:
search.add_null_filter("project_code")
# don't filter with the key in order to build a dict
pref_settings = search.get_sobjects()
for setting in pref_settings:
settings_dict[setting.get_value('key')] = setting
pref_setting = settings_dict.get(key)
return pref_setting
示例3: do_delete
# 需要导入模块: from pyasm.search import Search [as 别名]
# 或者: from pyasm.search.Search import add_null_filter [as 别名]
def do_delete(self, sobject, related_types=None):
search_type = sobject.get_base_search_type()
# always delete notes and task and snapshot
if not related_types:
related_types = ['sthpw/note', 'sthpw/task', 'sthpw/snapshot']
#related_types = self.schema.get_related_search_types(search_type)
if related_types:
for related_type in related_types:
if not related_type or related_type == search_type:
continue
# snapshots take care of sthpw/file in the proper manner, so
# skip them here
if related_type == 'sthpw/file':
continue
related_sobjects = sobject.get_related_sobjects(related_type)
for related_sobject in related_sobjects:
if related_type == 'sthpw/snapshot':
self.delete_snapshot(related_sobject)
else:
related_sobject.delete()
#self.do_delete(related_sobject)
# implicitly remove "directory" files associated with the sobject
search = Search("sthpw/file")
search.add_op("begin")
search.add_filter("file_name", "")
search.add_null_filter("file_name")
search.add_op("or")
search.add_parent_filter(sobject)
file_objects = search.get_sobjects()
#if file_objects:
# print("Removing [%s] file objects" % len(file_objects))
for file_object in file_objects:
base_dir = Environment.get_asset_dir()
relative_dir = file_object.get("relative_dir")
lib_dir = "%s/%s" % (base_dir, relative_dir)
FileUndo.rmdir(lib_dir)
file_object.delete()
# finally delete the sobject
print("Deleting: ", sobject.get_search_key())
if search_type == 'sthpw/snapshot':
self.delete_snapshot(sobject)
else:
sobject.delete()