Added __module__ to JArray() types in rev 1868563.

On Thu, 17 Oct 2019, Petrus Hyvönen (Jira) wrote:


   [ 
https://issues.apache.org/jira/browse/PYLUCENE-51?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16953958#comment-16953958
 ]

Petrus Hyvönen commented on PYLUCENE-51:
----------------------------------------

Many Thanks for looking into this, most classes seems to have this property now 
but the JArray_* seems to use some other mechanism and do not have this?

"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
(v8.3.4#803005)

Reply via email to