Petrus Hyvönen commented on PYLUCENE-51:

Hi! I will try to find what is going on, I have noticed these warnings appeared 
in PyCharm too.


In a quick run I find that under python 2.7 the classes (JCC wrapped java 
classes) do have a "__module__" property that is set to "__builtin__" while in 
current 3.7 it returns Attribute Error. But may be a difference between 2 and 3 
in general, don't know yet, I will try to dig in it a bit and see where the 
problem is.

> "AttributeError: __module__" when running doctest
> -------------------------------------------------
>                 Key: PYLUCENE-51
>                 URL: https://issues.apache.org/jira/browse/PYLUCENE-51
>             Project: PyLucene
>          Issue Type: Bug
>         Environment: Ubuntu 19.04, Python 3.7
>            Reporter: Clément Jonglez
>            Priority: Major
> Dear all,
> I am using the Orekit Python wrapper by [~petrush] . I am running into errors 
> & warnings when trying to run tests with doctest. When collecting tests, it 
> analyzes the classes (all the 1000+ wrapped Java classes it seems) and runs 
> into the following error:
> {noformat}
> [...]/lib/python3.7/site-packages/pytest_doctestplus/plugin.py:137: in collect
>  for test in finder.find(module):
>  [...]/lib/python3.7/site-packages/pytest_doctestplus/plugin.py:425: in find
>  extraglobs)
>  [...]/lib/python3.7/doctest.py:932: in find
>  self._find(tests, obj, name, module, source_lines, globs, {})
>  [...]/lib/python3.7/doctest.py:993: in _find
>  self._from_module(module, val)):
>  [...]/lib/python3.7/doctest.py:960: in _from_module
>  return module._name_ == object._module_
>  E AttributeError: _module_{noformat}
> In doctest 
> ([https://github.com/python/cpython/blob/master/Lib/doctest.py#L959]), the
> {code:java}
> inspect.isclass(object) {code}
> condition at line 959 returns `True`, and therefore doctest tries to access 
> the object's __module__ attribute, which does not seem to exist.
> Besides, pytest prints a warning for each Java class being wrapped, also 
> because they have no __module__ attribute (this is one example of 1000+ 
> warnings):
> {noformat}
> [...]/lib/python3.7/importlib/bootstrap.py:219: DeprecationWarning: builtin 
> type ExtendedKalmanFilter has no __module_ attribute
>  return f(*args, **kwds){noformat}
> This phenomenon is new because 6 months ago I could run pytest & doctest 
> successfully with Orekit. I could not find which module contains the change 
> that broke stuff since then though.
> To reproduce the phenomenon, you can check out 
> [https://github.com/GorgiAstro/poliastro/blob/orekit-validation/src/poliastro/tests/tests_twobody/test_propagation.py#L164]
>  I was trying to validate some poliastro features using the Orekit python 
> wrapper. So this code requires poliastro, it is available on conda-forge.
> Cheers
> Clément

This message was sent by Atlassian Jira

Reply via email to