Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Incomplete
-
0.9.2
-
None
-
None
-
Thrift version 0.9.2
-
Important
Description
Here the problem happens.
See the error first:
from ttypes import *
File "../gen-py-ofs/ofs/ttypes.py", line 200, in <module>
class FeatureGetParams:
File "../gen-py-ofs/ofs/ttypes.py", line 210, in FeatureGetParams
(2, TType.LIST, 'featureScenes', (TType.STRUCT,(FeatureScene, FeatureScene.thrift_spec)), None, ), # 2
NameError: name 'FeatureScene' is not defined
Class FeatureScene is defined in line 391 of ttype.py, and is used by another class GetParams in line of 200. Then I got this error.
I have a test.
If I moved class FeatureScene to the front of class GetParams, the error was gone.
I googled character of language Python, it did happen in this situation that we must define it at the place before we refer to it.
So I have a question, if it's true, why doesn't ttypes.py generate two classes in the correct order?
It confused me for a while. Hope get your reply, thank you.
Paste details of two classes for you reference:
Defined in line 391:
class FeatureScene:
"""
Attributes:
- featureSceneType
- featureKeys
"""
thrift_spec = (
None, # 0
(1, TType.I32, 'featureSceneType', None, None, ), # 1
(2, TType.LIST, 'featureKeys', (TType.STRING,None), None, ), # 2
)
Defined in line 200:
class GetParams:
"""
Attributes:
- orderId
- featureScenes
"""
thrift_spec = (
None, # 0
(1, TType.I64, 'orderId', None, None, ), # 1
(2, TType.LIST, 'featureScenes', (TType.STRUCT,(FeatureScene, FeatureScene.thrift_spec)), None, ), # 2
)