On 02/10/2015 03:29 AM, OmPs wrote:
On 10 Feb 2015 13:12, "Chris Angelico" <ros...@gmail.com> wrote:

On Tue, Feb 10, 2015 at 6:30 PM, OmPs <torque.in...@gmail.com> wrote:
     def _getPackgeVersion(xmlfile, p):
         package = str(p)
         if isinstance(fpmdict["application"]["package"], list):
             for i in fpmdict["application"]["package"]:
                 if i["@name"] == p:
                     _pkgVersion = i["version"]
         else:
             _pkgversion = fpmdict["application"]["package"]["version"]
             return _pkgVersion

One of your branches doesn't have a return statement in it, so Python
just returns None. You may want to unindent that return statement one
level.

Tried that as well getting the same error.

The code above has at least two errors. Fix them both, post a new version, and tell us the error you now get.

First error is that there's no return statement for the case where the first if is true. You might fix that by unindenting, or by adding another return somewhere, or whatever.

Second error, depending on how you fixed the first one, is that for some paths through the function, _pkgVersion isn't initialized. So if those conditions happen, and if you fixed the first error, you'll get an exception like:

UnboundLocalError: local variable '_pkgVersion' referenced before assignment

There also may be logic errors. For example, if there are multiple places where the if i["@name... logic triggers, do you want the _pkgversion to be the first such, or the last such. What do you want for a value if there no matches?




--
DaveA
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to