1 new commit in py:
https://bitbucket.org/hpk42/py/changeset/c8e97602a6cb/ changeset: c8e97602a6cb user: hpk42 date: 2011-11-20 21:55:43 summary: fix issue7 - raise a proper error if no valid statementrange can be found affected #: 5 files diff -r 07ca410dedff1dceec578ad0a629e3bfd29869b7 -r c8e97602a6cb3a2b3332f1bb3f76a857bfa7c5fa CHANGELOG --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,9 @@ +Changes between 1.4.5 and 1.4.x +================================================== + +- fix issue7: source.getstatementrange() now raises proper error + if no valid statement can be found + Changes between 1.4.4 and 1.4.5 ================================================== diff -r 07ca410dedff1dceec578ad0a629e3bfd29869b7 -r c8e97602a6cb3a2b3332f1bb3f76a857bfa7c5fa py/__init__.py --- a/py/__init__.py +++ b/py/__init__.py @@ -8,7 +8,7 @@ (c) Holger Krekel and others, 2004-2010 """ -__version__ = '1.4.5' +__version__ = '1.4.6.dev1' from py import _apipkg diff -r 07ca410dedff1dceec578ad0a629e3bfd29869b7 -r c8e97602a6cb3a2b3332f1bb3f76a857bfa7c5fa py/_code/source.py --- a/py/_code/source.py +++ b/py/_code/source.py @@ -108,6 +108,7 @@ def getstatementrange(self, lineno, assertion=False): """ return (start, end) tuple which spans the minimal statement region which containing the given lineno. + raise a ValueError if no such statementrange can be found. """ # XXX there must be a better than these heuristic ways ... # XXX there may even be better heuristics :-) @@ -116,6 +117,7 @@ # 1. find the start of the statement from codeop import compile_command + end = None for start in range(lineno, -1, -1): if assertion: line = self.lines[start] @@ -139,6 +141,8 @@ trysource = self[start:end] if trysource.isparseable(): return start, end + if end is None: + raise ValueError("no valid source range around line %d " % (lineno,)) return start, end def getblockend(self, lineno): diff -r 07ca410dedff1dceec578ad0a629e3bfd29869b7 -r c8e97602a6cb3a2b3332f1bb3f76a857bfa7c5fa setup.py --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ name='py', description='library with cross-python path, ini-parsing, io, code, log facilities', long_description = open('README.txt').read(), - version='1.4.5', + version='1.4.6.dev1', url='http://pylib.org', license='MIT license', platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'], diff -r 07ca410dedff1dceec578ad0a629e3bfd29869b7 -r c8e97602a6cb3a2b3332f1bb3f76a857bfa7c5fa testing/code/test_source.py --- a/testing/code/test_source.py +++ b/testing/code/test_source.py @@ -236,6 +236,10 @@ r = source.getstatementrange(1) assert r == (1,2) + def test_getstatementrange_with_syntaxerror_issue7(self): + source = Source(":") + py.test.raises(ValueError, lambda: source.getstatementrange(0)) + @py.test.mark.skipif("sys.version_info < (2,6)") def test_compile_to_ast(self): import ast Repository URL: https://bitbucket.org/hpk42/py/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. _______________________________________________ py-svn mailing list py-svn@codespeak.net http://codespeak.net/mailman/listinfo/py-svn