当前位置: 首页>>代码示例>>Python>>正文


Python info.get_obj_info函数代码示例

本文整理汇总了Python中storm.info.get_obj_info函数的典型用法代码示例。如果您正苦于以下问题:Python get_obj_info函数的具体用法?Python get_obj_info怎么用?Python get_obj_info使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了get_obj_info函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: get_where_for_local

    def get_where_for_local(self, other):
        """Generate a column comparison expression for reference properties.

        The returned expression may be used to find objects of the I{local}
        type referring to C{other}.

        It handles the following cases::

            Class.reference == obj
            Class.reference == obj.id
            Class.reference == (obj.id1, obj.id2)

        Where the right-hand side is the C{other} object given.
        """
        try:
            obj_info = get_obj_info(other)
        except ClassInfoError:
            if type(other) is not tuple:
                remote_variables = (other,)
            else:
                remote_variables = other
        else:
            # Don't use other here, as it might be
            # security proxied or something.
            other = get_obj_info(other).get_obj()
            remote_variables = self.get_remote_variables(other)
        return compare_columns(self.local_key, remote_variables)
开发者ID:DamnWidget,项目名称:mamba-storm,代码行数:27,代码来源:references.py

示例2: __set__

    def __set__(self, local, remote):
        # Don't use local here, as it might be security proxied or something.
        local = get_obj_info(local).get_obj()

        if self._cls is None:
            self._cls = _find_descriptor_class(local.__class__, self)

        if remote is None:
            if self._on_remote:
                remote = self.__get__(local)
                if remote is None:
                    return
            else:
                remote = self._relation.get_remote(local)
            if remote is None:
                remote_info = None
            else:
                remote_info = get_obj_info(remote)
            self._relation.unlink(get_obj_info(local), remote_info, True)
        else:
            # Don't use remote here, as it might be
            # security proxied or something.
            try:
                remote = get_obj_info(remote).get_obj()
            except ClassInfoError:
                pass # It might fail when remote is a tuple or a raw value.
            self._relation.link(local, remote, True)
开发者ID:DamnWidget,项目名称:mamba-storm,代码行数:27,代码来源:references.py

示例3: test_set_get_delete_with_wrapper

 def test_set_get_delete_with_wrapper(self):
     obj = self.Class()
     get_obj_info(obj) # Ensure the obj_info exists for obj.
     self.Class.prop1.__set__(Wrapper(obj), 10)
     self.assertEquals(self.Class.prop1.__get__(Wrapper(obj)), 10)
     self.Class.prop1.__delete__(Wrapper(obj))
     self.assertEquals(self.Class.prop1.__get__(Wrapper(obj)), None)
开发者ID:anilbektash,项目名称:storm,代码行数:7,代码来源:properties.py

示例4: test_class_is_collectable

 def test_class_is_collectable(self):
     class Class(Storm):
         __storm_table__ = "table_name"
         prop = Property(primary=True)
     obj = Class()
     get_obj_info(obj) # Build all wanted meta-information.
     obj_ref = weakref.ref(obj)
     del obj
     gc.collect()
     self.assertEquals(obj_ref(), None)
开发者ID:DamnWidget,项目名称:mamba-storm,代码行数:10,代码来源:base.py

示例5: test_adding_similar_obj_infos

 def test_adding_similar_obj_infos(self):
     """If __eq__ is broken, this fails."""
     obj_info1 = get_obj_info(StubClass())
     obj_info2 = get_obj_info(StubClass())
     cache = self.Cache(5)
     cache.add(obj_info1)
     cache.add(obj_info2)
     cache.add(obj_info2)
     cache.add(obj_info1)
     self.assertEquals([hash(obj_info) for obj_info in cache.get_cached()],
                       [hash(obj_info1), hash(obj_info2)])
开发者ID:anilbektash,项目名称:storm,代码行数:11,代码来源:cache.py

示例6: __set__

    def __set__(self, local, remote):
        if self._relation is None:
            # Don't use local.__class__ here, as it might be security
            # proxied or something. # XXX UNTESTED!
            self._build_relation(get_obj_info(local).cls_info.cls)

        if remote is None:
            remote = self._relation.get_remote(local)
            if remote is not None:
                self._relation.unlink(get_obj_info(local), get_obj_info(remote), True)
        else:
            self._relation.link(local, remote, True)
开发者ID:paiser,项目名称:component-management,代码行数:12,代码来源:references.py

示例7: __get__

    def __get__(self, local, cls=None):
        if local is not None:
            # Don't use local here, as it might be security proxied.
            local = get_obj_info(local).get_obj()

        if self._cls is None:
            self._cls = _find_descriptor_class(cls or local.__class__, self)

        if local is None:
            return self

        remote = self._relation.get_remote(local)
        if remote is not None:
            return remote

        if self._relation.local_variables_are_none(local):
            return None

        store = Store.of(local)
        if store is None:
            return None

        if self._relation.remote_key_is_primary:
            remote = store.get(self._relation.remote_cls,
                               self._relation.get_local_variables(local))
        else:
            where = self._relation.get_where_for_remote(local)
            result = store.find(self._relation.remote_cls, where)
            remote = result.one()

        if remote is not None:
            self._relation.link(local, remote)

        return remote
开发者ID:DamnWidget,项目名称:mamba-storm,代码行数:34,代码来源:references.py

示例8: __get__

    def __get__(self, local, cls=None):
        if local is None:
            if self._cls is None:
                # Must set earlier, since __eq__() has no access
                # to the used class.
                self._cls = _find_descriptor_class(cls, self)
            return self

        if self._relation is None:
            # Don't use local.__class__ here, as it might be security
            # proxied or something. # XXX UNTESTED!
            self._build_relation(get_obj_info(local).cls_info.cls)

        remote = self._relation.get_remote(local)
        if remote is not None:
            return remote

        store = Store.of(local)
        if store is None:
            return None

        if self._relation.remote_key_is_primary:
            remote = store.get(self._relation.remote_cls, self._relation.get_local_variables(local))
        else:
            where = self._relation.get_where_for_remote(local)
            result = store.find(self._relation.remote_cls, where)
            remote = result.one()

        if remote is not None:
            self._relation.link(local, remote)

        return remote
开发者ID:paiser,项目名称:component-management,代码行数:32,代码来源:references.py

示例9: local_variables_are_none

 def local_variables_are_none(self, local):
     """Return true if all variables of the local key have None values."""
     local_info = get_obj_info(local)
     for column in self._get_local_columns(local.__class__):
         if local_info.variables[column].get() is not None:
             return False
     return True
开发者ID:DamnWidget,项目名称:mamba-storm,代码行数:7,代码来源:references.py

示例10: _remote_variables

def _remote_variables(relation, obj):
    """A helper function to extract the foreign key values of an object.
    """
    try:
        get_obj_info(obj)
    except ClassInfoError:
        if type(obj) is not tuple:
            remote_variables = (obj,)
        else:
            remote_variables = obj
    else:
        # Don't use other here, as it might be
        # security proxied or something.
        obj = get_obj_info(obj).get_obj()
        remote_variables = relation.get_remote_variables(obj)
    return remote_variables
开发者ID:pombreda,项目名称:UnnaturalCodeFork,代码行数:16,代码来源:stormexpr.py

示例11: remove

 def remove(self, remote):
     store = Store.of(self._local)
     if store is None:
         raise NoStoreError("Can't perform operation without a store")
     # Don't use remote here, as it might be security proxied or something.
     remote = get_obj_info(remote).get_obj()
     where = self._relation1.get_where_for_remote(self._local) & self._relation2.get_where_for_remote(remote)
     store.find(self._link_cls, where).remove()
开发者ID:puhep,项目名称:cms-pixel-db-pisa,代码行数:8,代码来源:references.py

示例12: get_remote

    def get_remote(self, local):
        """Return the remote object for this relation, using the local cache.

        If the object in the cache is invalidated, we validate it again to
        check if it's still in the database.
        """
        local_info = get_obj_info(local)
        try:
            obj = local_info[self]["remote"]
        except KeyError:
            return None
        remote_info = get_obj_info(obj)
        if remote_info.get("invalidated"):
            try:
                Store.of(obj)._validate_alive(remote_info)
            except LostObjectError:
                return None
        return obj
开发者ID:DamnWidget,项目名称:mamba-storm,代码行数:18,代码来源:references.py

示例13: remove

    def remove(self, obj):
        """Remove an objet from the store

        The associated row will be deleted from the database.
        """
        # Overwrite store.remove so we can emit our own event for when the
        # object is goin to be deleted (but before anything is actually modified)
        obj_info = get_obj_info(obj)
        obj_info.event.emit("before-removed")
        super(StoqlibStore, self).remove(obj)
开发者ID:rg3915,项目名称:stoq,代码行数:10,代码来源:runtime.py

示例14: event_key

    def event_key(self):
        """See `ILongPollEvent`.

        Constructs the key from the table name and primary key values of the
        Storm model object.
        """
        cls_info = get_obj_info(self.source).cls_info
        return generate_event_key(
            cls_info.table.name.lower(),
            *gen_primary_key(self.source))
开发者ID:pombreda,项目名称:UnnaturalCodeFork,代码行数:10,代码来源:storm.py

示例15: __get__

 def __get__(self, obj, cls=None):
     if obj is None:
         return self._get_column(cls)
     obj_info = get_obj_info(obj)
     if cls is None:
         # Don't get obj.__class__ because we don't trust it
         # (might be proxied or whatever).
         cls = obj_info.cls_info.cls
     column = self._get_column(cls)
     return obj_info.variables[column].get()
开发者ID:Jokymon,项目名称:timetracker,代码行数:10,代码来源:properties.py


注:本文中的storm.info.get_obj_info函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。