本文整理汇总了Python中mixgene.redis_helper.ExpKeys.get_exp_blocks_list_key方法的典型用法代码示例。如果您正苦于以下问题:Python ExpKeys.get_exp_blocks_list_key方法的具体用法?Python ExpKeys.get_exp_blocks_list_key怎么用?Python ExpKeys.get_exp_blocks_list_key使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mixgene.redis_helper.ExpKeys
的用法示例。
在下文中一共展示了ExpKeys.get_exp_blocks_list_key方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: remove_block
# 需要导入模块: from mixgene.redis_helper import ExpKeys [as 别名]
# 或者: from mixgene.redis_helper.ExpKeys import get_exp_blocks_list_key [as 别名]
def remove_block(self, block):
r = get_redis_instance()
block_key = ExpKeys.get_block_key(block.uuid)
pipe = r.pipeline(transaction=True)
if block.create_new_scope:
for sub_block_uuid in block.children_blocks:
sub_block = self.get_block(sub_block_uuid)
self.remove_block(sub_block)
pipe.hdel(ExpKeys.get_scope_creating_block_uuid_keys(self.pk), block.sub_scope_name)
block.on_remove(exp=self)
# find all bound variables, that provided by this block
for other_uuid, other_block in self.get_blocks(self.get_all_block_uuids()):
if other_uuid == block.uuid:
continue
for f_name, bound_var in other_block.bound_inputs.items():
if bound_var.block_uuid == block.uuid:
other_block.bound_inputs.pop(f_name)
self.store_block(other_block)
# Remove information related to block from redis
pipe.lrem(ExpKeys.get_exp_blocks_list_key(self.pk), 0, block.uuid)
pipe.srem(ExpKeys.get_all_exp_keys_key(self.pk), block_key)
pipe.hdel(ExpKeys.get_blocks_uuid_by_alias(self.pk), block.base_name)
scope = Scope(self, block.scope_name)
scope.remove_vars_from_block(block)
pipe.execute()
示例2: get_all_block_uuids
# 需要导入模块: from mixgene.redis_helper import ExpKeys [as 别名]
# 或者: from mixgene.redis_helper.ExpKeys import get_exp_blocks_list_key [as 别名]
def get_all_block_uuids(self, redis_instance=None):
"""
@param redis_instance: Redis client
@return: list of block uuids
"""
if redis_instance is None:
r = get_redis_instance()
else:
r = redis_instance
return r.lrange(ExpKeys.get_exp_blocks_list_key(self.pk), 0, -1) or []
示例3: get_all_block_uuids
# 需要导入模块: from mixgene.redis_helper import ExpKeys [as 别名]
# 或者: from mixgene.redis_helper.ExpKeys import get_exp_blocks_list_key [as 别名]
def get_all_block_uuids(self, redis_instance=None):
"""
@type included_inner_blocks: list of str
@param included_inner_blocks: uuids of inner blocks to be included
@param redis_instance: Redis client
@return: list of block uuids
"""
if redis_instance is None:
r = get_redis_instance()
else:
r = redis_instance
return r.lrange(ExpKeys.get_exp_blocks_list_key(self.pk), 0, -1) or []
示例4: post_init
# 需要导入模块: from mixgene.redis_helper import ExpKeys [as 别名]
# 或者: from mixgene.redis_helper.ExpKeys import get_exp_blocks_list_key [as 别名]
def post_init(self, redis_instance=None):
## TODO: RENAME TO init experiment and invoke on first save
if redis_instance is None:
r = get_redis_instance()
else:
r = redis_instance
pipe = r.pipeline()
pipe.hset(ExpKeys.get_scope_creating_block_uuid_keys(self.pk), "root", None)
pipe.sadd(ExpKeys.get_all_exp_keys_key(self.pk),[
ExpKeys.get_exp_blocks_list_key(self.pk),
ExpKeys.get_blocks_uuid_by_alias(self.pk),
ExpKeys.get_scope_creating_block_uuid_keys(self.pk),
ExpKeys.get_scope_key(self.pk, "root")
])
pipe.execute()
示例5: store_block
# 需要导入模块: from mixgene.redis_helper import ExpKeys [as 别名]
# 或者: from mixgene.redis_helper.ExpKeys import get_exp_blocks_list_key [as 别名]
def store_block(self, block, new_block=False, redis_instance=None, dont_execute_pipe=False):
if redis_instance is None:
r = get_redis_instance()
else:
r = redis_instance
if not isinstance(r, StrictPipeline):
pipe = r.pipeline()
else:
pipe = r
block_key = ExpKeys.get_block_key(block.uuid)
if new_block:
pipe.rpush(ExpKeys.get_exp_blocks_list_key(self.pk), block.uuid)
pipe.sadd(ExpKeys.get_all_exp_keys_key(self.pk), block_key)
pipe.hset(ExpKeys.get_blocks_uuid_by_alias(self.pk), block.base_name, block.uuid)
if block.create_new_scope:
pipe.hset(ExpKeys.get_scope_creating_block_uuid_keys(self.pk),
block.sub_scope_name, block.uuid)
if block.scope_name != "root":
# need to register in parent block
parent_uuid = r.hget(ExpKeys.get_scope_creating_block_uuid_keys(self.pk), block.scope_name)
parent = self.get_block(parent_uuid, r)
# TODO: remove code dependency here
parent.children_blocks.append(block.uuid)
self.store_block(parent,
new_block=False,
redis_instance=pipe,
dont_execute_pipe=True)
pipe.set(block_key, pickle.dumps(block))
if not dont_execute_pipe:
pipe.execute()
log.info("block %s was stored with state: %s [uuid: %s]",
block.base_name, block.state, block.uuid)