Inheritance of NumericalPropagatorBuilder class in python


I would like to implement the class NumericalPropagatorBuilder thanks to the python wrapper to do an equivalent of this code in python :

However, it seems that the PythonNumericalPropagatorBuilder class is not availble in the python wrapper to do so.

I have tried to construct a class which implements the PythonAbstractPropagatorBuilder since the class NumericalPropagatorBuilder inherits from this class.

However it should also extend the interface IntegratedPropagatorBuilder which doesn’t seem available in Python neither. Indeed, I can’t use the custom class in functions wich have an IntegratedPropagatorBuilder argument, even if it extends the interface like this:

class CustomPropagatorBuilder(PythonAbstractPropagatorBuilder,IntegratedPropagatorBuilder):

Does anyone have an idea to solve the problem?
Thank you very much in advance for your help!


This would need some thought how to do, I do not think multiple inheritance is possible.

PythonNumericalPropagatorBuilder does not exist indeed as it isnt an abstract class or interface. we could implement it (and then it would have right signature) but note that you would need to write all the methods of that class / or a preselected set. Best would indeed be to find a way to use the abstract class.

seems like this architecture is changed in v11.0 that is about to be released.

would need to look at this later.

Hi Petrus,

thank you very much for your answer. Yes it seems that I will have to write all the methods of the class NumericalPropagatorBuilder in python in both cases, but I can’t figure out how to get the correct signature if the Python class is not implemented in Orekit. Maybe there is a way to cast the python class to the correct interface?

I took a look at the v11.0, the interface IntegratedPropagatorBuilder is renamed OrbitDeterminationPropagatorBuilder but if I am not wrong, the problem will be the same ?

Thank you for your time!

Yes, it has the same: IntegratedPropagatorBuilder has been renamed to OrbitDeterminationPropagatorBuilder when we introduced orbit determination capabilities using TLE orbit propagator. Indeed, TLE propagator is not an integrated orbit propagator, so we had to update the name of this interface.