Skip to content

Commit 236e46e

Browse files
authored
Merge pull request #705 from dimitri-yatsenko/master
Fix #675
2 parents f804a66 + 134a254 commit 236e46e

File tree

3 files changed

+24
-29
lines changed

3 files changed

+24
-29
lines changed

datajoint/diagram.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -236,8 +236,8 @@ def _make_graph(self):
236236
for name in self.nodes_to_show:
237237
foreign_attributes = set(
238238
attr for p in self.in_edges(name, data=True) for attr in p[2]['attr_map'] if p[2]['primary'])
239-
self.node[name]['distinguished'] = (
240-
'primary_key' in self.node[name] and foreign_attributes < self.node[name]['primary_key'])
239+
self.nodes[name]['distinguished'] = (
240+
'primary_key' in self.nodes[name] and foreign_attributes < self.nodes[name]['primary_key'])
241241
# include aliased nodes that are sandwiched between two displayed nodes
242242
gaps = set(nx.algorithms.boundary.node_boundary(self, self.nodes_to_show)).intersection(
243243
nx.algorithms.boundary.node_boundary(nx.DiGraph(self).reverse(), self.nodes_to_show))
@@ -307,7 +307,7 @@ def make_dot(self):
307307
props = graph.get_edge_data(src, dest)
308308
edge.set_color('#00000040')
309309
edge.set_style('solid' if props['primary'] else 'dashed')
310-
master_part = graph.node[dest]['node_type'] is Part and dest.startswith(src+'.')
310+
master_part = graph.nodes[dest]['node_type'] is Part and dest.startswith(src+'.')
311311
edge.set_weight(3 if master_part else 1)
312312
edge.set_arrowhead('none')
313313
edge.set_penwidth(.75 if props['multi'] else 2)

requirements.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ pyparsing
44
ipython
55
pandas
66
tqdm
7-
networkx<2.4
7+
networkx
88
pydot
99
minio
1010
matplotlib

tests/test_jobs.py

+20-25
Original file line numberDiff line numberDiff line change
@@ -10,44 +10,42 @@
1010

1111

1212
def test_reserve_job():
13-
# clean jobs table
14-
schema.schema.jobs.delete()
1513

14+
schema.schema.jobs.delete()
1615
assert_true(subjects)
1716
table_name = 'fake_table'
17+
1818
# reserve jobs
1919
for key in subjects.fetch('KEY'):
20-
assert_true(schema.schema.jobs.reserve(table_name, key),
21-
'failed to reserve a job')
20+
assert_true(schema.schema.jobs.reserve(table_name, key), 'failed to reserve a job')
21+
2222
# refuse jobs
2323
for key in subjects.fetch('KEY'):
24-
assert_false(schema.schema.jobs.reserve(table_name, key),
25-
'failed to respect reservation')
24+
assert_false(schema.schema.jobs.reserve(table_name, key), 'failed to respect reservation')
25+
2626
# complete jobs
2727
for key in subjects.fetch('KEY'):
2828
schema.schema.jobs.complete(table_name, key)
29-
assert_false(schema.schema.jobs,
30-
'failed to free jobs')
29+
assert_false(schema.schema.jobs, 'failed to free jobs')
30+
3131
# reserve jobs again
3232
for key in subjects.fetch('KEY'):
33-
assert_true(schema.schema.jobs.reserve(table_name, key),
34-
'failed to reserve new jobs')
33+
assert_true(schema.schema.jobs.reserve(table_name, key), 'failed to reserve new jobs')
34+
3535
# finish with error
3636
for key in subjects.fetch('KEY'):
37-
schema.schema.jobs.error(table_name, key,
38-
"error message")
37+
schema.schema.jobs.error(table_name, key, "error message")
38+
3939
# refuse jobs with errors
4040
for key in subjects.fetch('KEY'):
41-
assert_false(schema.schema.jobs.reserve(table_name, key),
42-
'failed to ignore error jobs')
41+
assert_false(schema.schema.jobs.reserve(table_name, key), 'failed to ignore error jobs')
42+
4343
# clear error jobs
4444
(schema.schema.jobs & dict(status="error")).delete()
45-
assert_false(schema.schema.jobs,
46-
'failed to clear error jobs')
45+
assert_false(schema.schema.jobs, 'failed to clear error jobs')
4746

4847

4948
def test_restrictions():
50-
# clear out jobs table
5149
jobs = schema.schema.jobs
5250
jobs.delete()
5351
jobs.reserve('a', {'key': 'a1'})
@@ -56,10 +54,9 @@ def test_restrictions():
5654
jobs.error('a', {'key': 'a2'}, 'error')
5755
jobs.error('b', {'key': 'b1'}, 'error')
5856

59-
assert_true(len(jobs & 'table_name = "a"') == 2, 'There should be two entries for table a')
60-
assert_true(len(jobs & 'status = "error"') == 2, 'There should be two entries with error status')
61-
assert_true(len(jobs & 'table_name = "a"' & 'status = "error"') == 1,
62-
'There should be only one entries with error status in table a')
57+
assert_true(len(jobs & {'table_name': "a"}) == 2)
58+
assert_true(len(jobs & {'status': "error"}) == 2)
59+
assert_true(len(jobs & {'table_name': "a", 'status': "error"}) == 1)
6360
jobs.delete()
6461

6562

@@ -96,9 +93,7 @@ def test_suppress_dj_errors():
9693
schema.schema.jobs.delete()
9794
with dj.config(enable_python_native_blobs=False):
9895
schema.ErrorClass.populate(reserve_jobs=True, suppress_errors=True)
99-
number_of_exceptions = len(schema.DjExceptionName())
100-
assert_true(number_of_exceptions > 0)
101-
assert_equals(number_of_exceptions, len(schema.schema.jobs))
96+
assert_true(len(schema.DjExceptionName()) == len(schema.schema.jobs) > 0)
10297

10398

10499
def test_long_error_message():
@@ -111,7 +106,7 @@ def test_long_error_message():
111106
assert_true(subjects)
112107
table_name = 'fake_table'
113108

114-
key = list(subjects.fetch('KEY'))[0]
109+
key = subjects.fetch('KEY')[0]
115110

116111
# test long error message
117112
schema.schema.jobs.reserve(table_name, key)

0 commit comments

Comments
 (0)