next()
should be wrapped in try-except
212 logger.debug("Ranks calculated")
213
214 sentences = get_best_sentences(
215 NLP_SENTENCES, NUM_SENTENCES_IN_SUMMARY, lambda s: next(ranks) 216 )
217 logger.debug("Top " + str(NUM_SENTENCES_IN_SUMMARY) + " sentences found")
218
next()
should be wrapped in try-except
69
70 # Save the original state of the model and optimizer so they can be restored if
71 # needed
72 self.model_device = next(self.model.parameters()).device 73 self.state_cacher = StateCacher(memory_cache, cache_dir=cache_dir)
74 self.state_cacher.store("model", self.model.state_dict())
75 self.state_cacher.store("optimizer", self.optimizer.state_dict())
next()
should be wrapped in try-except
19class _BaseWrapper:
20 def __init__(self, model):
21 super(_BaseWrapper, self).__init__()
22 self.device = next(model.parameters()).device 23 self.model = model
24 self.handlers = [] # a set of hook function handlers
25
Calls to next()
should be inside try-except
block.
When the iterator is exhausted, StopIteration
exception is raised. When used inside a generator, this can cause unexpected behavior. If not handled, it will propagate out of the generator causing termination. PEP-479 has been accepted to fix this problem. It will modify the behavior of StopIteration
in generators.
Each call to next()
should be wrapped in a try-except
block to explicitly handle StopIteration
exceptions.
def get_team_structure(team):
for team in class:
students = iter(team)
# StopIteration exception will be raised if team doesn't have members.
leader = next(students)
members = [m for m in students]
yield leader, members
def print_teams(teams):
for leader, members in get_team_structure(teams):
print("Leader: "leader)
for member in members:
print(member)
def get_team_structure(team):
for team in class:
# StopIteration exception will be raised if team has no members.
students = iter(team)
# Added `try` block, to guard against the exception
try:
leader = next(students)
except StopIteration:
# team has no members, skip it
continue
members = [m for m in students]
yield leader, members
def print_teams(teams):
for leader, members in get_team_structure(teams):
print("Leader: "leader)
for member in members:
print(member)
...