Skip to content

Commit 2c24b9e

Browse files
committed
drop python 2.7 from test matrix, more cleanup
1 parent 21ce464 commit 2c24b9e

File tree

5 files changed

+124
-50
lines changed

5 files changed

+124
-50
lines changed

.travis.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ env:
44
- DB=mysql
55
- DB=sqlite
66
python:
7-
- 2.6
87
- 2.7
98
- 3.3
109
- 3.4

rdflib_sqlalchemy/store.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -543,7 +543,7 @@ def __init__(self, identifier=None, configuration=None, engine=None):
543543
@property
544544
def table_names(self):
545545
return [
546-
table_name_template.format(self._interned_id)
546+
table_name_template.format(interned_id=self._interned_id)
547547
for table_name_template in TABLE_NAME_TEMPLATES
548548
]
549549

rdflib_sqlalchemy/tables.py

Lines changed: 103 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,90 @@
1-
from rdflib.graph import Graph, QuotedGraph
2-
from rdflib.term import Node
3-
from six import text_type
41
from sqlalchemy import Column, Table, Index, types
52

3+
from rdflib_sqlalchemy.types import TermType
4+
65

76
MYSQL_MAX_INDEX_LENGTH = 200
87

98
TABLE_NAME_TEMPLATES = [
10-
"{}_asserted_statements",
11-
"{}_type_statements",
12-
"{}_quoted_statements",
13-
"{}_namespace_binds",
14-
"{}_literal_statements"
9+
"{interned_id}_asserted_statements",
10+
"{interned_id}_literal_statements"
11+
"{interned_id}_namespace_binds",
12+
"{interned_id}_quoted_statements",
13+
"{interned_id}_type_statements",
1514
]
1615

1716

18-
class TermType(types.TypeDecorator):
19-
"""Term typology."""
20-
21-
impl = types.Text
22-
23-
def process_bind_param(self, value, dialect):
24-
"""Process bound parameters."""
25-
if isinstance(value, (QuotedGraph, Graph)):
26-
return text_type(value.identifier)
27-
elif isinstance(value, Node):
28-
return text_type(value)
29-
else:
30-
return value
31-
32-
3317
def create_asserted_statements_table(interned_id, metadata):
3418
return Table(
35-
"{}_asserted_statements".format(interned_id),
19+
"{interned_id}_asserted_statements".format(interned_id=interned_id),
3620
metadata,
3721
Column("id", types.Integer, nullable=False, primary_key=True),
3822
Column("subject", TermType, nullable=False),
3923
Column("predicate", TermType, nullable=False),
4024
Column("object", TermType, nullable=False),
4125
Column("context", TermType, nullable=False),
4226
Column("termcomb", types.Integer, nullable=False, key="termComb"),
43-
Index("{}_A_termComb_index".format(interned_id), "termComb"),
44-
Index("{}_A_s_index".format(interned_id), "subject", mysql_length=MYSQL_MAX_INDEX_LENGTH),
45-
Index("{}_A_p_index".format(interned_id), "predicate", mysql_length=MYSQL_MAX_INDEX_LENGTH),
46-
Index("{}_A_o_index".format(interned_id), "object", mysql_length=MYSQL_MAX_INDEX_LENGTH),
47-
Index("{}_A_c_index".format(interned_id), "context", mysql_length=MYSQL_MAX_INDEX_LENGTH)
27+
Index(
28+
"{interned_id}_A_termComb_index".format(interned_id=interned_id),
29+
"termComb",
30+
),
31+
Index(
32+
"{interned_id}_A_s_index".format(interned_id=interned_id),
33+
"subject",
34+
mysql_length=MYSQL_MAX_INDEX_LENGTH,
35+
),
36+
Index(
37+
"{interned_id}_A_p_index".format(interned_id=interned_id),
38+
"predicate",
39+
mysql_length=MYSQL_MAX_INDEX_LENGTH,
40+
),
41+
Index(
42+
"{interned_id}_A_o_index".format(interned_id=interned_id),
43+
"object",
44+
mysql_length=MYSQL_MAX_INDEX_LENGTH,
45+
),
46+
Index(
47+
"{interned_id}_A_c_index".format(interned_id=interned_id),
48+
"context",
49+
mysql_length=MYSQL_MAX_INDEX_LENGTH,
50+
)
4851
)
4952

5053

5154
def create_type_statements_table(interned_id, metadata):
5255
return Table(
53-
"{}_type_statements".format(interned_id),
56+
"{interned_id}_type_statements".format(interned_id=interned_id),
5457
metadata,
5558
Column("id", types.Integer, nullable=False, primary_key=True),
5659
Column("member", TermType, nullable=False),
5760
Column("klass", TermType, nullable=False),
5861
Column("context", TermType, nullable=False),
5962
Column("termcomb", types.Integer, nullable=False, key="termComb"),
60-
Index("{}_T_termComb_index".format(interned_id), "termComb"),
61-
Index("{}_member_index".format(interned_id), "member", mysql_length=MYSQL_MAX_INDEX_LENGTH),
62-
Index("{}_klass_index".format(interned_id), "klass", mysql_length=MYSQL_MAX_INDEX_LENGTH),
63-
Index("{}_c_index".format(interned_id), "context", mysql_length=MYSQL_MAX_INDEX_LENGTH)
63+
Index(
64+
"{interned_id}_T_termComb_index".format(interned_id=interned_id),
65+
"termComb",
66+
),
67+
Index(
68+
"{interned_id}_member_index".format(interned_id=interned_id),
69+
"member",
70+
mysql_length=MYSQL_MAX_INDEX_LENGTH,
71+
),
72+
Index(
73+
"{interned_id}_klass_index".format(interned_id=interned_id),
74+
"klass",
75+
mysql_length=MYSQL_MAX_INDEX_LENGTH,
76+
),
77+
Index(
78+
"{interned_id}_c_index".format(interned_id=interned_id),
79+
"context",
80+
mysql_length=MYSQL_MAX_INDEX_LENGTH,
81+
)
6482
)
6583

6684

6785
def create_literal_statements_table(interned_id, metadata):
6886
return Table(
69-
"{}_literal_statements".format(interned_id),
87+
"{interned_id}_literal_statements".format(interned_id=interned_id),
7088
metadata,
7189
Column("id", types.Integer, nullable=False, primary_key=True),
7290
Column("subject", TermType, nullable=False),
@@ -76,16 +94,31 @@ def create_literal_statements_table(interned_id, metadata):
7694
Column("termcomb", types.Integer, nullable=False, key="termComb"),
7795
Column("objlanguage", types.String(255), key="objLanguage"),
7896
Column("objdatatype", types.String(255), key="objDatatype"),
79-
Index("{}_L_termComb_index".format(interned_id), "termComb"),
80-
Index("{}_L_s_index".format(interned_id), "subject", mysql_length=MYSQL_MAX_INDEX_LENGTH),
81-
Index("{}_L_p_index".format(interned_id), "predicate", mysql_length=MYSQL_MAX_INDEX_LENGTH),
82-
Index("{}_L_c_index".format(interned_id), "context", mysql_length=MYSQL_MAX_INDEX_LENGTH)
97+
Index(
98+
"{interned_id}_L_termComb_index".format(interned_id=interned_id),
99+
"termComb",
100+
),
101+
Index(
102+
"{interned_id}_L_s_index".format(interned_id=interned_id),
103+
"subject",
104+
mysql_length=MYSQL_MAX_INDEX_LENGTH,
105+
),
106+
Index(
107+
"{interned_id}_L_p_index".format(interned_id=interned_id),
108+
"predicate",
109+
mysql_length=MYSQL_MAX_INDEX_LENGTH,
110+
),
111+
Index(
112+
"{interned_id}_L_c_index".format(interned_id=interned_id),
113+
"context",
114+
mysql_length=MYSQL_MAX_INDEX_LENGTH,
115+
)
83116
)
84117

85118

86119
def create_quoted_statements_table(interned_id, metadata):
87120
return Table(
88-
"{}_quoted_statements".format(interned_id),
121+
"{interned_id}_quoted_statements".format(interned_id=interned_id),
89122
metadata,
90123
Column("id", types.Integer, nullable=False, primary_key=True),
91124
Column("subject", TermType, nullable=False),
@@ -95,19 +128,42 @@ def create_quoted_statements_table(interned_id, metadata):
95128
Column("termcomb", types.Integer, nullable=False, key="termComb"),
96129
Column("objlanguage", types.String(255), key="objLanguage"),
97130
Column("objdatatype", types.String(255), key="objDatatype"),
98-
Index("{}_Q_termComb_index".format(interned_id), "termComb"),
99-
Index("{}_Q_s_index".format(interned_id), "subject", mysql_length=MYSQL_MAX_INDEX_LENGTH),
100-
Index("{}_Q_p_index".format(interned_id), "predicate", mysql_length=MYSQL_MAX_INDEX_LENGTH),
101-
Index("{}_Q_o_index".format(interned_id), "object", mysql_length=MYSQL_MAX_INDEX_LENGTH),
102-
Index("{}_Q_c_index".format(interned_id), "context", mysql_length=MYSQL_MAX_INDEX_LENGTH)
131+
Index(
132+
"{interned_id}_Q_termComb_index".format(interned_id=interned_id),
133+
"termComb",
134+
),
135+
Index(
136+
"{interned_id}_Q_s_index".format(interned_id=interned_id),
137+
"subject",
138+
mysql_length=MYSQL_MAX_INDEX_LENGTH,
139+
),
140+
Index(
141+
"{interned_id}_Q_p_index".format(interned_id=interned_id),
142+
"predicate",
143+
mysql_length=MYSQL_MAX_INDEX_LENGTH,
144+
),
145+
Index(
146+
"{interned_id}_Q_o_index".format(interned_id=interned_id),
147+
"object",
148+
mysql_length=MYSQL_MAX_INDEX_LENGTH,
149+
),
150+
Index(
151+
"{interned_id}_Q_c_index".format(interned_id=interned_id),
152+
"context",
153+
mysql_length=MYSQL_MAX_INDEX_LENGTH,
154+
)
103155
)
104156

105157

106158
def create_namespace_binds_table(interned_id, metadata):
107159
return Table(
108-
"{}_namespace_binds".format(interned_id),
160+
"{interned_id}_namespace_binds".format(interned_id=interned_id),
109161
metadata,
110162
Column("prefix", types.String(20), unique=True, nullable=False, primary_key=True),
111163
Column("uri", types.Text),
112-
Index("{}_uri_index".format(interned_id), "uri", mysql_length=MYSQL_MAX_INDEX_LENGTH)
164+
Index(
165+
"{interned_id}_uri_index".format(interned_id=interned_id),
166+
"uri",
167+
mysql_length=MYSQL_MAX_INDEX_LENGTH,
168+
)
113169
)

rdflib_sqlalchemy/types.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from rdflib.graph import Graph, QuotedGraph
2+
from rdflib.term import Node
3+
from six import text_type
4+
from sqlalchemy import types
5+
6+
7+
class TermType(types.TypeDecorator):
8+
"""Term typology."""
9+
10+
impl = types.Text
11+
12+
def process_bind_param(self, value, dialect):
13+
"""Process bound parameters."""
14+
if isinstance(value, (QuotedGraph, Graph)):
15+
return text_type(value.identifier)
16+
elif isinstance(value, Node):
17+
return text_type(value)
18+
else:
19+
return value

tox.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tox]
22
envlist =
3-
py26,py27,py34,py35,cover,lint
3+
py27,py34,py35,cover,lint
44

55
[testenv]
66
passenv = DB DBURI

0 commit comments

Comments
 (0)