yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #03163
Re: better python wrapping
Seems a very good thing!
Just requires some work to put everything in order.
Does it mean, that soon we will have only the documentation, generated by
sphinx?
And we will have there all together: c++, python, yade manual?
Thanks
______________________________
Anton Gladkyy
2010/1/24 Václav Šmilauer <eudoxos@xxxxxxxx>
> There was not much reaction...
>
> I added YADE_CLASS_BASE_DOC_ATTRS and
> YADE_CLASS_BASE_DOC_ATTRDECL_CTOR_PY macros in the last commit. When
> Yade starts, it screams about classes that don't use those macros yet.
>
> Please convert "your" classes to use those macros instead of
> REGISTER_ATTRIBUTES, REGISTER_CLASS_AND_BASE, REGISTER_CLASS_NAME,
> REGISTER_BASE_CLASS.
>
> The advantages are the following:
>
> 1. All data members will be documented.
> 2. All classes will be properly exposed to python, along with their
> attributes and interactive help.
> 3. Class methods can be (if you choose so) also exposed to python.
>
> If you use YADE_CLASS_BASE_DOC_ATTRDECL_CTOR_PY, then you additionally
> get:
>
> 4. All attributes will be initialized, and the default values will
> appear in the documentation as well. See e.g.
> https://www.yade-dem.org/sphinx/yade.wrapper.html#yade.wrapper.CpmMat
> which is generated from
>
> class CpmMat: public FrictMat {
> public:
> virtual shared_ptr<State> newAssocState() const { return
> shared_ptr<State>(new CpmState); }
> virtual bool stateTypeOk(State* s) const { return
> (bool)dynamic_cast<CpmState*>(s); }
>
> YADE_CLASS_BASE_DOC_ATTRDECL_CTOR_PY(CpmMat,FrictMat,"Concrete
> material, for use with other Cpm classes. (note: density is initialized to
> 4800 automatically)",
> ((Real,G_over_E,NaN,"Ratio of normal/shear stiffness at
> interaction level [-]"))
> ((Real,sigmaT,NaN,"Initial cohesion [Pa]"))
> ((bool,neverDamage,false,"If true, no damage will occur (for
> testing only)."))
> ((Real,epsCrackOnset,NaN,"Limit elastic strain [-]"))
> ((Real,relDuctility,NaN,"Relative ductility, for damage
> evolution law peak right-tangent. [-]"))
> ((Real,dmgTau,((void)"deactivated if
> negative",-1),"Characteristic time for normal viscosity. [s]"))
> ((Real,dmgRateExp,0,"Exponent for normal viscosity function.
> [-]"))
> ((Real,plTau,((void)"deactivated if
> negative",-1),"Characteristic time for visco-plasticity. [s]"))
> ((Real,plRateExp,0,"Exponent for visco-plasticity function.
> [-]"))
> ((Real,isoPrestress,0,"Isotropic prestress of the whole
> specimen. [Pa]")),
> createIndex(); density=4800 /* goes inside the constructor
> */ ,
> /*py; nothing we need*/
> );
> REGISTER_CLASS_INDEX(CpmMat,FrictMat);
> };
> REGISTER_SERIALIZABLE(CpmMat);
>
>
>
>
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-dev<https://launchpad.net/%7Eyade-dev>
> Post to : yade-dev@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~yade-dev<https://launchpad.net/%7Eyade-dev>
> More help : https://help.launchpad.net/ListHelp
>
References