Pylint fixes.
diff --git a/infocalypse/requestingbundles.py b/infocalypse/requestingbundles.py --- a/infocalypse/requestingbundles.py +++ b/infocalypse/requestingbundles.py @@ -38,7 +38,6 @@ from statemachine import RetryingRequest from chk import clear_control_bytes -# REDFLAG: Make sure that you are copying lists. eg. updates # FUNCTIONAL REQUIREMENTS: # 0) Update as fast as possible # 1) Single block fetch alternate keys. @@ -48,20 +47,12 @@ from chk import clear_control_bytes # 5) Optionally disable alternate single block fetching? # ?6) serialize? Easier to write from scratch? -# No graph case -# CHKs ARE EDGES! dont need to store extra state -# can bootstrap from a chk_list -> edges (slowly) -# -# Can unwind padding hack w/o graph -# len < 32K done -# len == 32K re-request DONE - # What this does: # 0) Fetches graph(s) # 1) Fetches early bundles in parallel with graphs # 2) Fixes up pending requests to graph edges when the graph arrives # 3) Handles metadata salting for bundle requests -# 4) Keeps track of what requests are required to update and request them. +# 4) Keeps track of what requests are required to update and requests them. # a candidate is a list: # [CHK, tries, single_block, edge_triple, update_data, msg, is_graph_request] @@ -88,11 +79,6 @@ class RequestingBundles(RetryingRequestL self._initialize() #self.dump() - # REDFLAG: delete this? - def leave(self, to_state): - """ Implementation of State virtual. """ - pass - def reset(self): """ Implementation of State virtual. """ #print "reset -- pending: ", len(self.pending) @@ -118,7 +104,7 @@ class RequestingBundles(RetryingRequestL + "machine stalled.\n") self.parent.transition(self.failure_state) - # DONT add to pending. Base clase does that. + # DONT add to pending. Base class does that. def make_request(self, candidate): """ Implementation of RetryingRequestList virtual. """ #print "CANDIDATE: ", candidate @@ -158,10 +144,7 @@ class RequestingBundles(RetryingRequestL return request ############################################################ - - # DEALING: With partial heads, partial bases? - # REDFLAG: deal with optional request serialization? # REDFLAG: Move # ASSUMPTION: Keys are in descenting order of latest_rev. @@ -521,8 +504,6 @@ class RequestingBundles(RetryingRequestL self._handle_graph_failure(candidate) return True - # REDFLAG: move - # REDFLAG: Too slow? def _force_single_block(self, edge): """ INTERNAL: Make sure there is only one non-single-block request running for a redundant edge. """ @@ -550,7 +531,6 @@ class RequestingBundles(RetryingRequestL if chk.split(',')[:-1] == target: # Reset the CHK because the control bytes were zorched. candidate[0] = chk - #candidate[1] += 1 candidate[2] = False candidate[5] = None # Reset! self.current_candidates.insert(0, candidate) @@ -926,7 +906,7 @@ class RequestingBundles(RetryingRequestL graph.index_table[step[1]][1]) def _known_chks(self): - """ INTERNAL: Returns a tuple of sets off all CHKs which are + """ INTERNAL: Returns a tuple of sets of all CHKs which are pending, currently scheduled, scheduled next or already finished. """ return (set([candidate[0] for candidate in @@ -938,40 +918,30 @@ class RequestingBundles(RetryingRequestL # REDFLAG: need to fix these to skip graph special case candidates # otherwise you get a None in the sets. def _known_edges(self): - """ INTERNAL: Returns a tuple of sets off all edges which are + """ INTERNAL: Returns a tuple of sets of all edges which are pending, currently scheduled, scheduled next or already finished. """ + def process_queue(queue, never_run=None): + """ INTERNAL: Helper function to reduce c&p. """ + ret = set([]) + for candidate in queue: + if candidate[3] is None: + continue + ret.add(candidate[3]) + if not never_run is None and candidate[1] <= 0: + never_run.add(candidate[3]) + return ret + never_run = set([]) pending = set([candidate[3] for candidate in self.pending_candidates() if not candidate[3] is None]) - current = set([]) - for candidate in self.current_candidates: - if candidate[3] is None: - continue - current.add(candidate[3]) - if candidate[1] <= 0: - never_run.add(candidate[3]) - - next = set([]) - for candidate in self.next_candidates: - if candidate[3] is None: - continue - next.add(candidate[3]) - if candidate[1] <= 0: - never_run.add(candidate[3]) - - finished = set([]) - for candidate in self.finished_candidates: - if candidate[3] is None: - continue - finished.add(candidate[3]) - #if candidate[1] <= 0: - # print "Finished candidate never ran???", candidate[3] - + current = process_queue(self.current_candidates, never_run) + next = process_queue(self.next_candidates, never_run) + finished = process_queue(self.finished_candidates) return (pending, current, next, finished, never_run) def _remove_unrun(self, never_run): @@ -985,12 +955,6 @@ class RequestingBundles(RetryingRequestL never_run.remove(candidate[3]) assert len(never_run) == 0 -# return (set([candidate[3] for candidate in -# self.pending_candidates()]), -# set([candidate[3] for candidate in self.current_candidates]), -# set([candidate[3] for candidate in self.next_candidates]), -# set([candidate[3] for candidate in self.finished_candidates])) - ############################################################ # Public helper functions for debugging