亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? interfaces.py

?? SQLAlchemy. 經典的Python ORM框架。學習必看。
?? PY
?? 第 1 頁 / 共 2 頁
字號:
        ``PropertyLoaders``.        This is called by a ``Query``'s ``join_by`` method to formulate a set        of key/value pairs into a ``WHERE`` criterion that spans multiple        tables if needed.        """        return None    def set_parent(self, parent):        self.parent = parent    def init(self, key, parent):        """Called after all mappers are compiled to assemble        relationships between mappers, establish instrumented class        attributes.        """        self.key = key        self.do_init()    def do_init(self):        """Perform subclass-specific initialization steps.        This is a *template* method called by the        ``MapperProperty`` object's init() method."""        pass    def register_dependencies(self, *args, **kwargs):        """Called by the ``Mapper`` in response to the UnitOfWork        calling the ``Mapper``'s register_dependencies operation.        Should register with the UnitOfWork all inter-mapper        dependencies as well as dependency processors (see UOW docs        for more details).        """        pass    def is_primary(self):        """Return True if this ``MapperProperty``'s mapper is the        primary mapper for its class.        This flag is used to indicate that the ``MapperProperty`` can        define attribute instrumentation for the class at the class        level (as opposed to the individual instance level).        """        return not self.parent.non_primary    def merge(self, session, source, dest):        """Merge the attribute represented by this ``MapperProperty``        from source to destination object"""        raise NotImplementedError()    def compare(self, operator, value):        """Return a compare operation for the columns represented by        this ``MapperProperty`` to the given value, which may be a        column value or an instance.  'operator' is an operator from        the operators module, or from sql.Comparator.        By default uses the PropComparator attached to this MapperProperty        under the attribute name "comparator".        """        return operator(self.comparator, value)class PropComparator(expression.ColumnOperators):    """defines comparison operations for MapperProperty objects"""    def expression_element(self):        return self.clause_element()    def contains_op(a, b):        return a.contains(b)    contains_op = staticmethod(contains_op)    def any_op(a, b, **kwargs):        return a.any(b, **kwargs)    any_op = staticmethod(any_op)    def has_op(a, b, **kwargs):        return a.has(b, **kwargs)    has_op = staticmethod(has_op)    def __init__(self, prop):        self.prop = prop    def contains(self, other):        """Return true if this collection contains other"""        return self.operate(PropComparator.contains_op, other)    def any(self, criterion=None, **kwargs):        """Return true if this collection contains any member that meets the given criterion.        criterion          an optional ClauseElement formulated against the member class' table          or attributes.        \**kwargs          key/value pairs corresponding to member class attribute names which          will be compared via equality to the corresponding values.        """        return self.operate(PropComparator.any_op, criterion, **kwargs)    def has(self, criterion=None, **kwargs):        """Return true if this element references a member which meets the given criterion.        criterion          an optional ClauseElement formulated against the member class' table          or attributes.        \**kwargs          key/value pairs corresponding to member class attribute names which          will be compared via equality to the corresponding values.        """        return self.operate(PropComparator.has_op, criterion, **kwargs)class StrategizedProperty(MapperProperty):    """A MapperProperty which uses selectable strategies to affect    loading behavior.    There is a single default strategy selected by default.  Alternate    strategies can be selected at Query time through the usage of    ``StrategizedOption`` objects via the Query.options() method.    """    def _get_context_strategy(self, context):        path = context.path        return self._get_strategy(context.attributes.get(("loaderstrategy", path), self.strategy.__class__))    def _get_strategy(self, cls):        try:            return self._all_strategies[cls]        except KeyError:            # cache the located strategy per class for faster re-lookup            strategy = cls(self)            strategy.init()            self._all_strategies[cls] = strategy            return strategy    def setup(self, querycontext, **kwargs):        self._get_context_strategy(querycontext).setup_query(querycontext, **kwargs)    def create_row_processor(self, selectcontext, mapper, row):        return self._get_context_strategy(selectcontext).create_row_processor(selectcontext, mapper, row)    def do_init(self):        self._all_strategies = {}        self.strategy = self.create_strategy()        self._all_strategies[self.strategy.__class__] = self.strategy        self.strategy.init()        if self.is_primary():            self.strategy.init_class_attribute()def build_path(mapper, key, prev=None):    if prev:        return prev + (mapper.base_mapper, key)    else:        return (mapper.base_mapper, key)def serialize_path(path):    if path is None:        return None    return [        (mapper.class_, mapper.entity_name, key)        for mapper, key in [(path[i], path[i+1]) for i in range(0, len(path)-1, 2)]    ]def deserialize_path(path):    if path is None:        return None    global class_mapper    if class_mapper is None:        from sqlalchemy.orm import class_mapper    return tuple(        chain(*[(class_mapper(cls, entity), key) for cls, entity, key in path])    )class MapperOption(object):    """Describe a modification to a Query."""    def process_query(self, query):        pass    def process_query_conditionally(self, query):        """same as process_query(), except that this option may not apply        to the given query.        Used when secondary loaders resend existing options to a new        Query."""        self.process_query(query)class ExtensionOption(MapperOption):    """a MapperOption that applies a MapperExtension to a query operation."""    def __init__(self, ext):        self.ext = ext    def process_query(self, query):        query._extension = query._extension.copy()        query._extension.insert(self.ext)class PropertyOption(MapperOption):    """A MapperOption that is applied to a property off the mapper or    one of its child mappers, identified by a dot-separated key.    """    def __init__(self, key, mapper=None):        self.key = key        self.mapper = mapper    def process_query(self, query):        self._process(query, True)    def process_query_conditionally(self, query):        self._process(query, False)    def _process(self, query, raiseerr):        if self._should_log_debug:            self.logger.debug("applying option to Query, property key '%s'" % self.key)        paths = self._get_paths(query, raiseerr)        if paths:            self.process_query_property(query, paths)    def process_query_property(self, query, paths):        pass    def _get_paths(self, query, raiseerr):        path = None        l = []        current_path = list(query._current_path)        if self.mapper:            global class_mapper            if class_mapper is None:                from sqlalchemy.orm import class_mapper            mapper = self.mapper            if isinstance(self.mapper, type):                mapper = class_mapper(mapper)            if mapper is not query.mapper and mapper not in [q[0] for q in query._entities]:                raise exceptions.ArgumentError("Can't find entity %s in Query.  Current list: %r" % (str(mapper), [str(m) for m in [query.mapper] + query._entities]))        else:            mapper = query.mapper        for token in self.key.split('.'):            if current_path and token == current_path[1]:                current_path = current_path[2:]                continue            prop = mapper.get_property(token, resolve_synonyms=True, raiseerr=raiseerr)            if prop is None:                return []            path = build_path(mapper, prop.key, path)            l.append(path)            mapper = getattr(prop, 'mapper', None)        return lPropertyOption.logger = logging.class_logger(PropertyOption)PropertyOption._should_log_debug = logging.is_debug_enabled(PropertyOption.logger)class AttributeExtension(object):    """An abstract class which specifies `append`, `delete`, and `set`    event handlers to be attached to an object property.    """    def append(self, obj, child, initiator):        pass    def remove(self, obj, child, initiator):        pass    def set(self, obj, child, oldchild, initiator):        passclass StrategizedOption(PropertyOption):    """A MapperOption that affects which LoaderStrategy will be used    for an operation by a StrategizedProperty.    """    def is_chained(self):        return False    def process_query_property(self, query, paths):        if self.is_chained():            for path in paths:                query._attributes[("loaderstrategy", path)] = self.get_strategy_class()        else:            query._attributes[("loaderstrategy", paths[-1])] = self.get_strategy_class()    def get_strategy_class(self):        raise NotImplementedError()class LoaderStrategy(object):    """Describe the loading behavior of a StrategizedProperty object.    The ``LoaderStrategy`` interacts with the querying process in three    ways:    * it controls the configuration of the ``InstrumentedAttribute``      placed on a class to handle the behavior of the attribute.  this      may involve setting up class-level callable functions to fire      off a select operation when the attribute is first accessed      (i.e. a lazy load)    * it processes the ``QueryContext`` at statement construction time,      where it can modify the SQL statement that is being produced.      simple column attributes may add their represented column to the      list of selected columns, *eager loading* properties may add      ``LEFT OUTER JOIN`` clauses to the statement.    * it processes the ``SelectionContext`` at row-processing time.  This      includes straight population of attributes corresponding to rows,      setting instance-level lazyloader callables on newly      constructed instances, and appending child items to scalar/collection      attributes in response to eagerly-loaded relations.    """    def __init__(self, parent):        self.parent_property = parent        self.is_class_level = False    def init(self):        self.parent = self.parent_property.parent        self.key = self.parent_property.key    def init_class_attribute(self):        pass    def setup_query(self, context, **kwargs):        pass    def create_row_processor(self, selectcontext, mapper, row):        """Return row processing functions which fulfill the contract specified        by MapperProperty.create_row_processor.        StrategizedProperty delegates its create_row_processor method directly        to this method.        """        raise NotImplementedError()

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲女同ⅹxx女同tv| 丰满白嫩尤物一区二区| 美国毛片一区二区| 成人午夜精品一区二区三区| 欧美日韩国产大片| 中文字幕第一页久久| 五月综合激情网| av电影在线不卡| 日韩欧美一区二区视频| 亚洲精品老司机| 国产91丝袜在线观看| 欧美成人vps| 免费在线观看一区| 在线观看一区二区视频| 中文乱码免费一区二区| 紧缚奴在线一区二区三区| 欧美性受xxxx| 一区二区在线观看视频 | 欧美成人精品高清在线播放| 亚洲精品久久嫩草网站秘色| 国产福利一区在线| 精品国产第一区二区三区观看体验| 亚洲国产精品自拍| 色综合中文字幕国产 | 国产一区二区三区免费| 欧美日本视频在线| 亚洲美女精品一区| 91视频在线观看免费| 国产精品久久久久影院亚瑟| 国产宾馆实践打屁股91| 国产视频一区在线播放| 国产盗摄女厕一区二区三区| 久久影音资源网| 国产麻豆午夜三级精品| 日本一区二区三区国色天香| 国产成人在线视频网址| 国产亚洲人成网站| 国产成人在线看| 国产精品久久久一区麻豆最新章节| 国产精品一区二区三区网站| 国产亚洲精品7777| 成人av影视在线观看| 中文字幕亚洲一区二区av在线| 成人天堂资源www在线| 国产精品剧情在线亚洲| 色屁屁一区二区| 日日夜夜精品视频免费| 欧美r级在线观看| 国产成人免费在线| 亚洲私人影院在线观看| 在线观看视频欧美| 丝袜诱惑制服诱惑色一区在线观看 | 久久亚洲一区二区三区明星换脸| 国产麻豆精品一区二区| 中文字幕一区在线观看| 欧美影视一区在线| 久久精品国产澳门| 久久久精品免费网站| 92精品国产成人观看免费| 亚洲一区二区三区中文字幕在线| 欧美一区二区三区影视| 国产盗摄一区二区| 亚洲第一精品在线| 久久夜色精品一区| 在线视频一区二区三区| 美女视频网站久久| 国产精品每日更新| 欧美日韩国产另类一区| 国产剧情av麻豆香蕉精品| 一区二区在线免费| 久久久久久综合| 欧美久久婷婷综合色| 成人综合激情网| 天天av天天翘天天综合网色鬼国产| 久久午夜免费电影| 在线观看一区二区精品视频| 国产一区二区影院| 亚洲午夜激情网站| 欧美激情一区二区三区全黄| 9191国产精品| 91蝌蚪porny九色| 国产一区二区三区免费| 婷婷中文字幕一区三区| 中文字幕在线一区免费| 精品成人一区二区| 欧美人伦禁忌dvd放荡欲情| 成人av免费在线观看| 狠狠色狠狠色综合日日91app| 亚洲人亚洲人成电影网站色| 久久久久久久久久久电影| 欧美日韩国产在线播放网站| 91丝袜美腿高跟国产极品老师 | 日韩精品一区二区三区视频播放| 91麻豆福利精品推荐| 国产精品18久久久久久久久| 亚洲成av人片在线观看无码| 中文字幕在线观看一区| 国产日产欧产精品推荐色| 日韩亚洲电影在线| 欧美日韩在线一区二区| 色婷婷综合久色| 99精品视频在线免费观看| 成人一道本在线| 国产剧情一区在线| 国产综合久久久久久鬼色| 毛片一区二区三区| 日韩主播视频在线| 三级影片在线观看欧美日韩一区二区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 午夜精品123| 亚洲精品国产一区二区精华液 | 北条麻妃国产九九精品视频| 国产一区视频导航| 国产主播一区二区| 激情五月婷婷综合网| 黄色日韩网站视频| 国产在线观看一区二区| 国产一区在线看| 福利一区二区在线| 成人综合日日夜夜| 色综合天天综合给合国产| 93久久精品日日躁夜夜躁欧美| 99久久伊人久久99| 91麻豆精品秘密| 色视频一区二区| 欧美日韩精品一区二区在线播放| 在线不卡一区二区| 日韩一区二区精品葵司在线| 精品少妇一区二区三区视频免付费 | 国产日韩欧美激情| 中文字幕av一区 二区| 国产精品久久福利| 亚洲黄色性网站| 亚洲第一搞黄网站| 久久99精品国产.久久久久久| 国产真实乱对白精彩久久| 国产成人一区二区精品非洲| 99精品桃花视频在线观看| 欧美日韩一区二区三区高清| 91精品国产综合久久福利| 久久先锋影音av鲁色资源| 亚洲人成网站精品片在线观看| 亚洲国产成人av网| 国精产品一区一区三区mba视频| 国产成人免费在线观看不卡| 欧洲视频一区二区| 精品成人在线观看| 亚洲精品视频观看| 精品中文字幕一区二区小辣椒| av在线一区二区| 6080国产精品一区二区| 国产精品污污网站在线观看| 亚洲一卡二卡三卡四卡五卡| 久久精品99国产国产精| 99在线精品免费| 欧美一区二区视频免费观看| 中文天堂在线一区| 日本女优在线视频一区二区| 成人激情av网| 欧美一区日韩一区| 中文字幕一区二区在线观看| 蜜臀av一级做a爰片久久| 99久久综合国产精品| 亚洲精品一区二区三区福利| 亚洲一区二区三区中文字幕在线| 国产一区二区三区在线看麻豆| 欧美调教femdomvk| 中文字幕日韩一区| 激情五月激情综合网| 欧美精品乱码久久久久久| 国产精品女同互慰在线看| 捆绑调教一区二区三区| 欧美亚洲综合另类| 国产精品久久久爽爽爽麻豆色哟哟| 看片网站欧美日韩| 欧美综合在线视频| 国产精品福利在线播放| 久久国产精品免费| 欧美三级日韩三级| 亚洲欧美日韩综合aⅴ视频| 国产老妇另类xxxxx| 欧美一区二区三区四区视频| 亚洲一区二区三区自拍| 91丝袜美女网| 国产精品久久久久久久浪潮网站 | 一区二区三区在线播| 国产成人av电影在线| 日韩一级片在线观看| 午夜精品久久久久久久99樱桃| 99久久久久久| 国产精品久久影院| 不卡影院免费观看| 国产精品五月天| 成人h动漫精品一区二| 国产精品美女久久久久高潮| 成人精品鲁一区一区二区| 欧美国产1区2区| av在线不卡网| 亚洲欧美日韩国产成人精品影院| 91在线视频官网|