Exemplo n.º 1
0
    def get_by(cls, **filters):
        """ Retrieve all instances that match specified filters and class.

        Filters are specified as keyword arguments, argument names follow SuRF
        naming convention (they take form `namespace_name`).

        Example::

            >>> Person = session.get_class(surf.ns.FOAF['Person'])
            >>> johns = Person.get_by(foaf_name = u"John")

        """

        if not hasattr(cls, "uri") or cls == Resource:
            return []

        store = cls.session[cls.store_key]
        filters = filters.copy()
        # Client specified rdf_type(s) override our own.
        if not "rdf_type" in filters:
            filters["rdf_type"] = cls.uri
        proxy = ResultProxy(store=store,
                            instance_factory=cls.__instance_factory)

        return proxy.get_by(**filters)
Exemplo n.º 2
0
    def all(cls):
        """ Retrieve all or limited number of `instances`. """

        if not hasattr(cls, 'uri') or cls == Resource:
            return []

        store = cls.session[cls.store_key]
        proxy = ResultProxy(store=store, instancemaker=cls.__instancemaker)

        return proxy.get_by(rdf_type=cls.uri)
Exemplo n.º 3
0
    def query_attribute(self, attribute_name):
        """ Return ResultProxy for querying attribute values. """

        # If we want to get john.foaf_knows values, we have to formulate
        # query like friends = get_by(is_foaf_knows_of = john), thus the
        # attribute name inversion
        uri, direct = attr2rdf(attribute_name)

        # We'll be using inverse_attribute_name as keyword argument.
        # Python 2.6.2 and older don't allow unicode keyword arguments,
        # so we revert back to str().
        inverse_attribute_name = str(rdf2attr(uri, not direct))

        store = self.session[self.store_key]
        proxy = ResultProxy(store=store,
                            instance_factory=self.__instance_factory)

        kwargs = {inverse_attribute_name: self.subject}
        return proxy.get_by(**kwargs)
 def query_attribute(self, attribute_name):
     return ResultProxy(store=self.store,
                        instance_factory=mock_instance_factory)
Exemplo n.º 5
0
def store_proxy():
    store = MockStore()
    params = {"store": store, "instance_factory": mock_instance_factory}
    proxy = ResultProxy(params)
    return store, proxy
Exemplo n.º 6
0
 def setUp(self):
     self.store = MockStore()
     params = {"store": self.store, "instancemaker": mock_instancemaker}
     self.proxy = ResultProxy(params)