Wednesday, February 11, 2015

Announcing Padme v1.0


I've just released Padme (named after the Star Wars character).

Padme is an implementation of mostly transparent proxy class for Python. What is unique about it is the ability to proxy objects of any class and to selectively un-proxy any method in a subclass. Check out the documentation for more examples, I'll post a quick one here:

>>> from padme import proxy
>>> pets = ['cat', 'dog', 'fish']
>>> pets_proxy = proxy(pets)
>>> pets_proxy
['cat', 'dog', 'fish']
>>> pets_proxy.append('rooster')
>>> pets
['cat', 'dog', 'fish', 'rooster']
>>> from padme import unproxied
>>> class censor_cat(proxy):
...     @unproxied
...     def __repr__(self):
...         return super(censor_cat, self).__repr__().replace('cat', '***') 
>>> pets_proxy = censor_cat(pets)
>>> pets_proxy
['***', 'dog', 'fish', 'rooster']

At the same time, I'd like to ask interested parties to contribute and port Padme to Python 2.7, so that it can be universally useful to everyone. Please have a look at the contribution guide if you are interested.

Thursday, February 5, 2015

Checkbox Enchancement Proposal 8: Certification Status update

I've sent an update to checkbox-dev mailing list on th progress of implementation of CEP-8. Here's the summary if you want to quickly follow that:
  • spec done
  • need to finish xparsers to handle new override syntax
  • need to finish TestPlanUnit class to have bulk/single update methods to apply all overrides
  • need to think about how to handle multiple test plans in that configuration
  • need to think about how to handle test plan in suspend/resume code (we need to store the one's we're running so that after resume we can still apply overrides to generated jobs)
  • real data for cdts missing
  • real data for 14.04 prototyped, blocked by xparsers, can land after review once unblocked
If you're interested in the hardware certification process at Canonical, and want to know more check out this message in our mailing list archives or join us on #checkbox on freenode.