In the interest of speed, to avoid calls to `sys,platform`, I would make foo a (module level) @lazy_attribute or @cached_function. IMO a full class is a lot more than you need.
Best, Travis On Friday, January 15, 2016 at 8:49:40 AM UTC-8, Volker Braun wrote: > > THats fine (except that you should use new-style classes) > > > On Friday, January 15, 2016 at 5:34:35 PM UTC+1, fhivert wrote: >> >> Dear all, >> >> I'd like to have a class with a method with some implementation internal >> that >> differ if the os is MacOS of anything else. >> >> Context >> ======= >> >> I'm Fixing #13580 "Parallel map reduce on SearchForest" where I'm writing >> code >> to parallelize some specific computation. In the internal, I need some >> synchronizing primitive such as semaphore. However, on MacOS the >> semaphore are >> broken (or at least are not fully POSIX compliant). In particular, on >> standard >> unixes, when two processes are trying to acquire a semaphore whose value >> is >> more than two, they always both succeeded. On MacOS, one of them may >> fail. As >> a consequence, I'm writing a different code form MacOS relying on a Lock >> and a >> shared integer. It may be slower on system where semaphore are >> implemented in >> a lockless way. >> >> Question >> ======== >> >> I'd like to write a *Python* (not C/C++/Cython) code which is supposed to >> work >> fast on any Posix compliant plateform and an alternative implementation >> on >> MacOS. Surprisingly, I can't find any other instance on the whole Sage >> library. Do you think it's ok to do that ? Is a code like >> >> class foo: >> if sys.platform != 'darwin': >> def meth(self): >> print "I'm on a good Posix compliant OS" >> else: >> def meth(self): >> print "I'm using the fallback implementation" >> >> the right way to do it ? >> >> Thanks for any suggestions. >> >> Cheers, >> >> Florent >> > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.