> > # HG changeset patch > > # User Sigurd Meldgaard <[EMAIL PROTECTED]> > > # Date 1221574030 -7200 > > # Node ID f879ad687faab381f1208885a5c1330265e3e119 > > # Parent 5aa168c8778a1e2909cda7c1ea08da8501b66a95 > > Added a function viff.runtime.make_runtime_class, that creates a new > runtime class with mixins > > Please try to make the first line in the commit message fit in 80 chars, > otherwise it looks weird in my terminals :-) Then put the bigger > description in a paragraph after the first line. > Ok, will try that!
> > diff -r 5aa168c8778a -r f879ad687faa viff/runtime.py > > --- a/viff/runtime.py Tue Sep 16 16:11:10 2008 +0200 > > +++ b/viff/runtime.py Tue Sep 16 16:07:10 2008 +0200 > > @@ -1079,6 +1079,19 @@ > > result.addCallback(shamir.recombine) > > return result > > > > +def make_runtime_class(runtime_class = Runtime, mixins = ()): > > No space around default arguments in functions. Also, I don't think it > makes sense to give mixins as default argument -- people should only use > this function if they actually have something to mix. > The default arguments are more for being able to call the function with keyword-parameters - often you want the runtime_class to be the default value, but you do not want it to go after the mixins ... good ideas? One possibility is to special case like: def make_runtime_class(runtime_class=Runtime, mixins=None): """Creates a new runtime class with *runtime_class* as a base class mixing in the *mixins*. *mixins* must be a list or tuple of mixin-classes. """ if mixins=None: return runtime_class else: # We must include at least one new-style class in bases. We # include it last to avoid overriding __init__ from the other base # classes. bases = (runtime_class,) + tuple(mixins) + (object,) return type("ExtendedRuntime", bases, {}) > > + """Creates a new runtime class with runtime_class as a base class > > + mixing in the mixins. > > Please mark parameters a *runtime_class* in the docstrings, that makes > the Sphinx generated output nicer. > > > + mixins must be a list or tuple of mixin-classes. > > + """ > > + > > + # We must include at least one new-style class in bases. We > > + # include it last to avoid overriding __init__ from the other base > > + # classes. > > + bases = (runtime_class,) + tuple(mixins) + (object,) > > + > > + return type("ExtendedRuntime", bases, {}) > > Great idea with such a function so that people wont have to do the scary > dynamic class stuff themselves -- could you please make another patch > which updates apps/benchmark.py to use this function? > Sure > > -- > Martin Geisler > > VIFF (Virtual Ideal Functionality Framework) brings easy and efficient > SMPC (Secure Multi-Party Computation) to Python. See: http://viff.dk/. > _______________________________________________ viff-patches mailing list viff-patches@viff.dk http://lists.viff.dk/listinfo.cgi/viff-patches-viff.dk