Commit b5a62c5c96f95b78c3c4350943c477e4070818c3
1 parent
7838cd47
Exists in
master
and in
1 other branch
- fixed code to run with networkx 2.0
Showing
3 changed files
with
9 additions
and
9 deletions
Show diff stats
BUGS.md
@@ -24,6 +24,7 @@ TODO: | @@ -24,6 +24,7 @@ TODO: | ||
24 | 24 | ||
25 | FIXED: | 25 | FIXED: |
26 | 26 | ||
27 | +- ver documentacao de migracao para networkx 2.0 https://networkx.github.io/documentation/stable/release/migration_guide_from_1.x_to_2.0.html | ||
27 | - script para adicionar users/reset passwords. | 28 | - script para adicionar users/reset passwords. |
28 | - os topicos locked devem estar inactivos no sidebar. | 29 | - os topicos locked devem estar inactivos no sidebar. |
29 | - enter faz GET /question, que responde com json no ecran. (solution: disabled enter) | 30 | - enter faz GET /question, que responde com json no ecran. (solution: disabled enter) |
app.py
@@ -39,7 +39,6 @@ class LearnApp(object): | @@ -39,7 +39,6 @@ class LearnApp(object): | ||
39 | 39 | ||
40 | self.depgraph = build_dependency_graph(conffile) | 40 | self.depgraph = build_dependency_graph(conffile) |
41 | 41 | ||
42 | - | ||
43 | # connect to database and check registered students | 42 | # connect to database and check registered students |
44 | self.db_setup(self.depgraph.graph['database']) | 43 | self.db_setup(self.depgraph.graph['database']) |
45 | 44 | ||
@@ -153,7 +152,7 @@ class LearnApp(object): | @@ -153,7 +152,7 @@ class LearnApp(object): | ||
153 | def db_add_topics(self): | 152 | def db_add_topics(self): |
154 | with self.db_session() as s: | 153 | with self.db_session() as s: |
155 | tt = [t[0] for t in s.query(Topic.id)] # db list of topics | 154 | tt = [t[0] for t in s.query(Topic.id)] # db list of topics |
156 | - nn = self.depgraph.nodes_iter() # topics in the graph | 155 | + nn = self.depgraph.nodes() # topics in the graph |
157 | s.add_all([Topic(id=n) for n in nn if n not in tt]) | 156 | s.add_all([Topic(id=n) for n in nn if n not in tt]) |
158 | 157 | ||
159 | # ------------------------------------------------------------------------ | 158 | # ------------------------------------------------------------------------ |
@@ -276,7 +275,7 @@ def build_dependency_graph(config_file): | @@ -276,7 +275,7 @@ def build_dependency_graph(config_file): | ||
276 | 275 | ||
277 | # iterate over topics and create question factories | 276 | # iterate over topics and create question factories |
278 | logger.info('Loading:') | 277 | logger.info('Loading:') |
279 | - for tref in g.nodes_iter(): | 278 | + for tref in g.nodes(): |
280 | tnode = g.node[tref] # current node (topic) | 279 | tnode = g.node[tref] # current node (topic) |
281 | fullpath = path.expanduser(path.join(prefix, tref)) | 280 | fullpath = path.expanduser(path.join(prefix, tref)) |
282 | filename = path.join(fullpath, 'questions.yaml') | 281 | filename = path.join(fullpath, 'questions.yaml') |
knowledge.py
@@ -33,8 +33,8 @@ class Knowledge(object): | @@ -33,8 +33,8 @@ class Knowledge(object): | ||
33 | 33 | ||
34 | self.state = state # {'topic_id': {'level':0.5, 'date': datetime}, ...} | 34 | self.state = state # {'topic_id': {'level':0.5, 'date': datetime}, ...} |
35 | 35 | ||
36 | - # compute recommended sequence of topics ['a', 'b',...] | ||
37 | - self.topic_sequence = nx.topological_sort(self.depgraph) | 36 | + # compute recommended sequence of topics ['a', 'b', ...] |
37 | + self.topic_sequence = list(nx.topological_sort(self.depgraph)) | ||
38 | 38 | ||
39 | # select a topic to do and initialize questions | 39 | # select a topic to do and initialize questions |
40 | self.start_topic() | 40 | self.start_topic() |
@@ -44,15 +44,15 @@ class Knowledge(object): | @@ -44,15 +44,15 @@ class Knowledge(object): | ||
44 | # If all levels > 0.8, will stay in the last one forever... | 44 | # If all levels > 0.8, will stay in the last one forever... |
45 | # ------------------------------------------------------------------------ | 45 | # ------------------------------------------------------------------------ |
46 | def start_topic(self, topic=''): | 46 | def start_topic(self, topic=''): |
47 | - # unlock topics that have satisfied dependencies | ||
48 | - unlock_topics = [] | 47 | + # unlock topics whose dependencies are done |
48 | + unlocked_topics = [] | ||
49 | for t in self.topic_sequence: | 49 | for t in self.topic_sequence: |
50 | if t not in self.state: # is locked | 50 | if t not in self.state: # is locked |
51 | deps = self.depgraph.predecessors(t) | 51 | deps = self.depgraph.predecessors(t) |
52 | if all(d in self.state and self.state[d]['level'] > 0.01 for d in deps): # dependencies done | 52 | if all(d in self.state and self.state[d]['level'] > 0.01 for d in deps): # dependencies done |
53 | - unlock_topics.append(t) | 53 | + unlocked_topics.append(t) |
54 | 54 | ||
55 | - for t in unlock_topics: | 55 | + for t in unlocked_topics: |
56 | self.state[t] = {'level': 0.0, 'date': datetime.now()} | 56 | self.state[t] = {'level': 0.0, 'date': datetime.now()} |
57 | logger.info(f'User "{self.student}" unlocked "{t}"') | 57 | logger.info(f'User "{self.student}" unlocked "{t}"') |
58 | 58 |