diff --git a/src/sage/databases/oeis.py b/src/sage/databases/oeis.py index 50ad342a2b2..e40ebc7c539 100644 --- a/src/sage/databases/oeis.py +++ b/src/sage/databases/oeis.py @@ -722,7 +722,7 @@ def online_update(self): except AttributeError: pass - def _field(self, key): + def _field(self, key, warn=True): r""" Return the ``key`` field of the entry of ``self``. @@ -741,7 +741,7 @@ def _field(self, key): for line in self.raw_entry().splitlines(): fields[line[1]].append(line[11:]) self._fields = fields - self.is_dead(warn_only=True) + self.is_dead(warn_only=warn) return self._fields[key] def id(self, format='A'): @@ -959,7 +959,7 @@ def author(self): """ return self._field('A')[0] - def keywords(self): + def keywords(self, warn=True): r""" Return the keywords associated to the sequence ``self``. @@ -985,7 +985,7 @@ def keywords(self): sage: s.keywords() ('nonn', 'hard') """ - return tuple(self._field('K')[0].split(',')) + return tuple(self._field('K', warn=warn)[0].split(',')) def natural_object(self): r""" @@ -1108,8 +1108,8 @@ def is_dead(self, warn_only=False): EXAMPLES: - A warn_only test is triggered as soon as some information on the - sequence is queried:: + A warning is triggered if any field of a dead sequence is accessed, + unless :meth:`is_dead` is called before:: sage: s = oeis(17) sage: s # optional -- internet @@ -1138,11 +1138,11 @@ def is_dead(self, warn_only=False): True """ if warn_only: - if 'dead' in self.keywords(): + if 'dead' in self.keywords(warn_only): from warnings import warn warn('This sequence is dead: "{}: {}"'.format(self.id(), self.name()), RuntimeWarning) else: - return 'dead' in self.keywords() + return 'dead' in self.keywords(warn_only) def is_finite(self): r""" @@ -2010,6 +2010,7 @@ def test_compile_sage_code(self): True """ if self.is_dead(): + self.is_dead(warn_only=True) return True filt = self.programs(language='sage') if filt: