本文整理汇总了Python中atom.Atom.is_cached方法的典型用法代码示例。如果您正苦于以下问题:Python Atom.is_cached方法的具体用法?Python Atom.is_cached怎么用?Python Atom.is_cached使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类atom.Atom
的用法示例。
在下文中一共展示了Atom.is_cached方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __getattr__
# 需要导入模块: from atom import Atom [as 别名]
# 或者: from atom.Atom import is_cached [as 别名]
def __getattr__(self, name):
attr = None
if self.__cachedir__ and Atom.is_cached(self.__cachedir__, name):
attr = Atom.load(self.__cachedir__, name, is_client=self.__is_client__)
setattr(self, name, attr)
return attr
if self.__source__ is None and self.__factory__ is not None:
source = self.__factory__()
self.__source__ = source
#Not really the right place for this.
#if self.__cachedir__ is not None:
# print '%s = %s' % (self.__cachedir__, len(self))
if self.__source__ is not None:
attr = getattr(self.__source__, name)
if attr is not None and self.__index__ is not None:
#Although this is simple and effective it is not very efficienct
# a = Ai(Bi(C[xy])))
#Using this method:
# ax = Cx[Bi][Ai], xy = ay[Bi][Ai]
#A better approach is to calculate the index then apply it
# bai = Bi[Ai], ax = Cx[bai], ay = Cx[bai]
attr = attr[self.__index__]
if attr is not None:
setattr(self, name, attr)
return attr
示例2: __init__
# 需要导入模块: from atom import Atom [as 别名]
# 或者: from atom.Atom import is_cached [as 别名]
def __init__(self, source=None, factory=None, cachedir=None, index=None,
cnames=None, name=None, columns=None, is_client=True, kw={}):
if cachedir and not os.path.exists(cachedir):
os.makedirs(cachedir)
self.__cachedir__ = cachedir
self.__source__ = source
self.__factory__ = factory
self.__index__ = index
#cnames and source.cnames
def __cnames():
__cnames = None
if cnames:
if hasattr(cnames, '__call__'):
__cnames = cnames(self)
elif isinstance(cnames, str):
__cnames = cnames.split(',')
else:
__cnames = cnames
else:
__cnames = []
if source is not None:
__cnames += source.__cnames__
if kw:
__cnames += [x for x in kw.keys() if x not in __cnames]
return __cnames
self.__cnames__ = __cnames()
if columns is not None:
for name, value in zip(self.__cnames__, columns):
setattr(self, name, value)
if name is None:
if source is not None:
name = source.__name__
else:
name = 'element_%s' % id(self)
self.__name__ = name
self.__columns__ = columns
self.__is_client__ = is_client
for name, value in kw.items():
if isinstance(value, str):
value = getcolumn(self, value)
elif hasattr(value, '__call__'):
value = value(self)
if isinstance(value, list):
value = Atom.fromlist(value)
value = value
if isinstance(value, list):
value = Atom.fromlist(value)
elif isinstance(value, np.ndarray) and not isinstance(value, Atom):
value = Atom(value)
setattr(self, name, value)
if cachedir is not None:
for name in self.__cnames__:
if not Atom.is_cached(cachedir, name):
getattr(self, name).persist(cachedir, name)