Changeset 98
- Timestamp:
- 02/09/08 16:04:53 (4 years ago)
- Location:
- rdfalchemy/trunk
- Files:
-
- 3 added
- 1 removed
- 13 modified
-
rdfalchemy/descriptors.py (modified) (11 diffs)
-
rdfalchemy/__init__.py (modified) (1 diff)
-
rdfalchemy/Literal.py (added)
-
rdfalchemy/orm.py (modified) (2 diffs)
-
rdfalchemy/rdfalchemy.py (deleted)
-
rdfalchemy/rdfSubject.py (added)
-
rdfalchemy/samples/company.py (modified) (2 diffs)
-
rdfalchemy/samples/doap.py (modified) (2 diffs)
-
rdfalchemy/samples/example.py (modified) (4 diffs)
-
rdfalchemy/samples/foaf.py (modified) (2 diffs)
-
rdfalchemy/sesame2.py (modified) (1 diff)
-
rdfalchemy/sparql.py (modified) (1 diff)
-
test/company_test.py (modified) (4 diffs)
-
test/count_test.py (modified) (1 diff)
-
test/delete_test.py (modified) (4 diffs)
-
test/get_test.py (modified) (5 diffs)
-
test/literal_test.py (added)
Legend:
- Unmodified
- Added
- Removed
-
rdfalchemy/trunk/rdfalchemy/descriptors.py
r97 r98 8 8 """ 9 9 10 from rdflib import Literal,URIRef, BNode, Namespace10 from rdflib import URIRef, BNode, Namespace 11 11 from rdflib.Identifier import Identifier 12 from rdfalchemy import rdfSubject 13 from copy import copy12 from rdfalchemy import rdfSubject, Literal 13 from copy import copy 14 14 15 15 #from rdfalchemy import rdfSubject … … 18 18 ##formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s') 19 19 ##console.setFormatter(formatter) 20 log=logging.getLogger( 'rdfalchemy')20 log=logging.getLogger(__name__) 21 21 22 22 RDF = Namespace("http://www.w3.org/1999/02/22-rdf-syntax-ns#") … … 80 80 ################################################################################## 81 81 82 class rdf libAbstract(object):82 class rdfAbstract(object): 83 83 """Abstract base class for descriptors 84 84 Descriptors are to map class instance variables to predicates … … 121 121 122 122 123 class rdf libSingle(rdflibAbstract):123 class rdfSingle(rdfAbstract): 124 124 '''This is a Discriptor 125 125 Takes a the URI of the predicate at initialization … … 128 128 ONLY triple with that subject,predicate pair''' 129 129 def __init__(self, pred, cacheName=None, range_type=None): 130 super(rdf libSingle, self).__init__(pred, cacheName, range_type)130 super(rdfSingle, self).__init__(pred, cacheName, range_type) 131 131 132 132 def __get__(self, obj, cls): … … 150 150 151 151 152 class rdf libMultiple(rdflibAbstract):152 class rdfMultiple(rdfAbstract): 153 153 '''This is a Discriptor 154 154 Expects to return a list of values (could be a list of one)''' 155 155 def __init__(self, pred, cacheName=None, range_type=None): 156 super(rdf libMultiple, self).__init__(pred, cacheName, range_type)156 super(rdfMultiple, self).__init__(pred, cacheName, range_type) 157 157 158 158 def __get__(self, obj, cls): … … 180 180 log.debug("SET with descriptor value %s of type %s"%(newvals,type(newvals))) 181 181 if not isinstance(newvals, list): 182 raise AttributeError("to set a rdf libMulti you must pass in a list (it can be a list of one)")182 raise AttributeError("to set a rdfMulti you must pass in a list (it can be a list of one)") 183 183 try: 184 184 oldvals = obj.__dict__[self.name] … … 197 197 198 198 199 class rdf libList(rdflibMultiple):199 class rdfList(rdfMultiple): 200 200 '''This is a Discriptor 201 201 Expects to return a list of values (could be a list of one) 202 202 `__set__` will set the predicate as a RDF List''' 203 203 def __init__(self, pred, range_type=None): 204 super(rdf libMultiple, self).__init__(pred, range_type)204 super(rdfMultiple, self).__init__(pred, range_type) 205 205 206 206 def __get__(self, obj, cls): … … 231 231 log.debug("SET with descriptor value %s of type %s"%(newvals,type(newvals))) 232 232 if not isinstance(newvals, list): 233 raise AttributeError("to set a rdf libList you must pass in a list (it can be a list of one)")233 raise AttributeError("to set a rdfList you must pass in a list (it can be a list of one)") 234 234 try: 235 235 oldvals = obj.__dict__[self.name] … … 265 265 266 266 267 class rdf libContainer(rdflibMultiple):267 class rdfContainer(rdfMultiple): 268 268 '''This is a Discriptor 269 269 Expects to return a list of values (could be a list of one) 270 270 `__set__` will set the predicate as a RDF Container type (defaults to rdf:Seq)''' 271 271 def __init__(self, pred, range_type=None, container_type="http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq"): 272 super(rdf libMultiple, self).__init__(pred, range_type)272 super(rdfMultiple, self).__init__(pred, range_type) 273 273 self.container_type = container_type 274 274 … … 301 301 log.debug("SET with descriptor value %s of type %s"%(newvals,type(newvals))) 302 302 if not isinstance(newvals, list): 303 raise AttributeError("to set a rdf libList you must pass in a list (it can be a list of one)")303 raise AttributeError("to set a rdfList you must pass in a list (it can be a list of one)") 304 304 seq = obj.db.value(obj.resUri, self.pred) 305 305 if not seq: -
rdfalchemy/trunk/rdfalchemy/__init__.py
r91 r98 1 from rdfalchemy import * 2 from descriptors import * 1 from rdflib import Namespace 2 from rdfalchemy.Literal import Literal 3 from rdfalchemy.rdfSubject import rdfSubject 4 from rdfalchemy.descriptors import * -
rdfalchemy/trunk/rdfalchemy/orm.py
r92 r98 8 8 """ 9 9 10 from rdfalchemy import rdfSubject11 from descriptors import rdflibAbstract10 from rdfalchemy.rdfSubject import rdfSubject 11 from rdfalchemy.descriptors import rdfAbstract 12 12 13 13 import logging 14 log=logging.getLogger( 'rdfAlchemy')14 log=logging.getLogger(__name__) 15 15 16 16 def allsub(cl, beenthere = set([])): … … 35 35 for cl in classes: # for each class 36 36 for v in cl.__dict__.values(): # for each desciptor 37 if isinstance(v,rdf libAbstract) and v.range_type: #if its a descriptor with a range37 if isinstance(v,rdfAbstract) and v.range_type: #if its a descriptor with a range 38 38 try: 39 39 v._mappedClass = class_dict[str(v.range_type)] -
rdfalchemy/trunk/rdfalchemy/samples/company.py
r91 r98 11 11 class Company(rdfSubject): 12 12 rdf_type = ov.Company 13 symbol = rdf libSingle(ov.symbol,)14 cik = rdf libSingle(ov.secCik,'cik')15 companyName = rdf libSingle(ov.companyName,'companyName')16 stockDescription = rdf libSingle(ov.stockDescription,'stockDescription')17 stock = rdf libMultiple(ov.hasIssue)13 symbol = rdfSingle(ov.symbol,) 14 cik = rdfSingle(ov.secCik,'cik') 15 companyName = rdfSingle(ov.companyName,'companyName') 16 stockDescription = rdfSingle(ov.stockDescription,'stockDescription') 17 stock = rdfMultiple(ov.hasIssue) 18 18 19 19 … … 21 21 class EdgarFiling(rdfSubject): 22 22 rdf_type = edgarns.xbrlFiling 23 accessionNumber = rdf libSingle(edgarns.accessionNumber)24 companyName = rdf libSingle(edgarns.companyName)25 filingDate = rdf libSingle(edgarns.filingDate)26 formType = rdf libSingle(edgarns.formType)23 accessionNumber = rdfSingle(edgarns.accessionNumber) 24 companyName = rdfSingle(edgarns.companyName) 25 filingDate = rdfSingle(edgarns.filingDate) 26 formType = rdfSingle(edgarns.formType) 27 27 -
rdfalchemy/trunk/rdfalchemy/samples/doap.py
r91 r98 1 from rdfalchemy import rdfSubject, rdf libSingle, rdflibMultiple1 from rdfalchemy import rdfSubject, rdfSingle, rdfMultiple 2 2 from rdflib import Namespace 3 3 … … 8 8 class Project(rdfSubject): 9 9 rdf_type = DOAP.Project 10 name = rdf libSingle(DOAP.name)11 created = rdf libSingle(DOAP.created)12 homepage = rdf libSingle(DOAP.homepage)13 shortdesc = rdf libMultiple(DOAP.shortdesc)14 releases = rdf libMultiple(DOAP.release)15 language = rdf libSingle(DOAP['programming-language']) # the hyphen means we can't use DOAP.programming-language16 maintainer = rdf libSingle(DOAP.maintainer,range_type=FOAF.Person)10 name = rdfSingle(DOAP.name) 11 created = rdfSingle(DOAP.created) 12 homepage = rdfSingle(DOAP.homepage) 13 shortdesc = rdfMultiple(DOAP.shortdesc) 14 releases = rdfMultiple(DOAP.release) 15 language = rdfSingle(DOAP['programming-language']) # the hyphen means we can't use DOAP.programming-language 16 maintainer = rdfSingle(DOAP.maintainer,range_type=FOAF.Person) 17 17 18 18 if __name__ == '__main__': -
rdfalchemy/trunk/rdfalchemy/samples/example.py
r94 r98 1 from rdfalchemy import rdfSubject, rdf libSingle, rdflibMultiple1 from rdfalchemy import rdfSubject, rdfSingle, rdfMultiple 2 2 from rdflib import ConjunctiveGraph, Namespace, Literal 3 3 … … 10 10 class Company(rdfSubject): 11 11 rdf_type = OV.Company 12 symbol = rdf libSingle(OV.symbol,'symbol')13 cik = rdf libSingle(OV.secCik,'cik')14 companyName = rdf libSingle(OV.companyName)15 address = rdf libSingle(VCARD.adr)12 symbol = rdfSingle(OV.symbol,'symbol') 13 cik = rdfSingle(OV.secCik,'cik') 14 companyName = rdfSingle(OV.companyName) 15 address = rdfSingle(VCARD.adr) 16 16 17 17 … … 35 35 36 36 ## Add a descriptor on the fly 37 Company.stockDescription = rdf libSingle(OV.stockDescription,'stockDescription')37 Company.stockDescription = rdfSingle(OV.stockDescription,'stockDescription') 38 38 39 39 print "%s: %s"%(c.companyName,c.stockDescription) … … 46 46 47 47 ## add another descriptor on the fly 48 Company.industry = rdf libSingle(OV.yindustry,'industry')48 Company.industry = rdfSingle(OV.yindustry,'industry') 49 49 50 50 ## add an attribute (from the database) -
rdfalchemy/trunk/rdfalchemy/samples/foaf.py
r92 r98 7 7 Copyright (c) 2007 Openvest. All rights reserved. 8 8 """ 9 from rdfalchemy import rdfSubject, rdf libSingle, rdflibMultiple9 from rdfalchemy import rdfSubject, rdfSingle, rdfMultiple 10 10 from rdflib import Namespace 11 11 … … 14 14 class Agent(rdfSubject): 15 15 rdf_type = FOAF.Agent 16 name = rdf libSingle(FOAF.name)17 mbox = rdf libSingle(FOAF.mbox)18 openid = rdf libSingle(FOAF.openid)16 name = rdfSingle(FOAF.name) 17 mbox = rdfSingle(FOAF.mbox) 18 openid = rdfSingle(FOAF.openid) 19 19 20 20 21 21 class Person(Agent): 22 22 rdf_type = FOAF.Person 23 first = rdf libSingle(FOAF.firstName,'first')24 last = rdf libSingle(FOAF.surname,'last')25 givenname = rdf libSingle(FOAF.givenname,'first')26 surname = rdf libSingle(FOAF.surname,'last')23 first = rdfSingle(FOAF.firstName,'first') 24 last = rdfSingle(FOAF.surname,'last') 25 givenname = rdfSingle(FOAF.givenname,'first') 26 surname = rdfSingle(FOAF.surname,'last') -
rdfalchemy/trunk/rdfalchemy/sesame2.py
r96 r98 10 10 import simplejson 11 11 12 log=logging.getLogger( 'rdfAlchemy')12 log=logging.getLogger(__name__) 13 13 14 14 RDF =Namespace("http://www.w3.org/1999/02/22-rdf-syntax-ns#") -
rdfalchemy/trunk/rdfalchemy/sparql.py
r94 r98 10 10 import logging 11 11 12 log=logging.getLogger( 'rdfAlchemy')12 log=logging.getLogger(__name__) 13 13 14 14 class DumpSink(object): -
rdfalchemy/trunk/test/company_test.py
r95 r98 1 from rdfalchemy import rdfSubject, rdf libSingle, rdflibMultiple1 from rdfalchemy import rdfSubject, rdfSingle, rdfMultiple 2 2 from rdflib import ConjunctiveGraph, Namespace, Literal, BNode, URIRef 3 3 … … 40 40 class Company(rdfSubject): 41 41 rdf_type = OV.Company 42 symbol = rdf libSingle(OV.symbol,'symbol')43 cik = rdf libSingle(OV.secCik,'cik')44 companyName = rdf libSingle(OV.companyName)45 address = rdf libSingle(VCARD.adr)42 symbol = rdfSingle(OV.symbol,'symbol') 43 cik = rdfSingle(OV.secCik,'cik') 44 companyName = rdfSingle(OV.companyName) 45 address = rdfSingle(VCARD.adr) 46 46 47 47 … … 69 69 def test_2(): 70 70 ## Add a descriptor on the fly 71 Company.stockDescription = rdf libSingle(OV.stockDescription,'stockDescription')71 Company.stockDescription = rdfSingle(OV.stockDescription,'stockDescription') 72 72 73 73 assert c.companyName == c[OV.companyName] … … 75 75 76 76 ## add another descriptor on the fly 77 Company.industry = rdf libSingle(OV.yindustry,'industry')77 Company.industry = rdfSingle(OV.yindustry,'industry') 78 78 79 79 ## add an attribute (from the database) -
rdfalchemy/trunk/test/count_test.py
r91 r98 20 20 21 21 22 Person.m=rdf libMultiple(FOAF.multi)23 Person.l=rdf libList(FOAF.list)24 Person.c=rdf libContainer(FOAF.seq)22 Person.m=rdfMultiple(FOAF.multi) 23 Person.l=rdfList(FOAF.list) 24 Person.c=rdfContainer(FOAF.seq) 25 25 26 26 def test_multi(): -
rdfalchemy/trunk/test/delete_test.py
r94 r98 2 2 from rdfalchemy.samples.doap import * 3 3 from rdfalchemy.samples.foaf import * 4 from rdfalchemy.orm import mapper 4 5 from rdflib import ConjunctiveGraph 5 6 … … 12 13 13 14 Person.db=ConjunctiveGraph() 14 Person.knows = rdf libMultiple(FOAF.knows, range_type=FOAF.Person)15 Person.knows = rdfMultiple(FOAF.knows, range_type=FOAF.Person) 15 16 16 17 … … 21 22 22 23 def test_addBNodeKnowsL(): 23 Person.knows = rdflibList(FOAF.knows, range_type=FOAF.Person) 24 Person.knows = rdfList(FOAF.knows, range_type=FOAF.Person) 25 mapper() 24 26 p1=Person.get_by(first="Philip") 25 27 p2=Person(last="Cooper" , first="Ben") … … 34 36 35 37 def test_addBNodeKnowsM(): 36 Person.knows = rdf libMultiple(FOAF.knows, range_type=FOAF.Person)38 Person.knows = rdfMultiple(FOAF.knows, range_type=FOAF.Person) 37 39 p1=Person.get_by(first="Philip") 38 40 p2=Person(last="Cooper" , first="Ben") -
rdfalchemy/trunk/test/get_test.py
r97 r98 1 1 from rdfalchemy import * 2 from rdfalchemy.orm import mapper 2 3 from rdfalchemy.samples.doap import * 3 4 from rdfalchemy.samples.foaf import * … … 5 6 6 7 import logging 7 log = logging.getLogger( 'rdfalchemy')8 log = logging.getLogger() 8 9 if not log.handlers: 9 10 log.addHandler(logging.StreamHandler()) … … 15 16 16 17 def test_addBNodeKnowsL(): 17 Person.knows = rdf libList(FOAF.knowsL, range_type=FOAF.Person)18 Person.knows = rdfList(FOAF.knowsL, range_type=FOAF.Person) 18 19 p1=Person(first="PhilipL") 19 20 p2=Person(last="Cooper" , first="Ben") … … 26 27 27 28 def test_addBNodeKnowsC(): 28 Person.knows = rdflibContainer(FOAF.knowsC, range_type=FOAF.Person) 29 Person.knows = rdfContainer(FOAF.knowsC, range_type=FOAF.Person) 30 mapper() 29 31 p1=Person(first="PhilipC") 30 32 p2=Person(last="Cooper" , first="Ben") … … 37 39 38 40 def test_addBNodeKnowsM(): 39 Person.knows = rdflibMultiple(FOAF.knowsM, range_type=FOAF.Person) 41 Person.knows = rdfMultiple(FOAF.knowsM, range_type=FOAF.Person) 42 mapper() 40 43 p1=Person(first="PhilipM") 41 44 p2=Person(last="Cooper" , first="Ben")
