]> git.sesse.net Git - vlc/commitdiff
python-ctypes: generate list methods when possible
authorOlivier Aubert <olivier.aubert@liris.cnrs.fr>
Fri, 31 Jul 2009 12:55:55 +0000 (14:55 +0200)
committerOlivier Aubert <olivier.aubert@liris.cnrs.fr>
Fri, 31 Jul 2009 12:55:55 +0000 (14:55 +0200)
bindings/python-ctypes/generate.py

index d44142ffb2b5d3fe7dca62192ca5f57525f622db..edb97e439eebf0c11239c46ede0a446d08a9fecb 100755 (executable)
@@ -520,6 +520,26 @@ class %(name)s(object):
             else:
                 print "        return %s(%s)" % (method, args)
             print
+
+            # Check for standard methods
+            if name == 'count':
+                # There is a count method. Generate a __len__ one.
+                print "    def __len__(self):"
+                print "        e=VLCException()"
+                print "        return %s(self, e)" % method
+                print
+            elif name.endswith('item_at_index'):
+                # Indexable (and thus iterable)"
+                print "    def __getitem__(self, i):"
+                print "        e=VLCException()"
+                print "        return %s(self, i, e)" % method
+                print
+                print "    def __iter__(self):"
+                print "        e=VLCException()"
+                print "        for i in xrange(len(self)):"
+                print "            yield self[i]"
+                print
+
     return ret
 
 if __name__ == '__main__':