Commit 403ebcfc authored by Guillaume Desmottes's avatar Guillaume Desmottes

sync tools/ with telepathy-glib

This should allow Empathy to be build with Python 3.

https://bugzilla.gnome.org/show_bug.cgi?id=687616
parent 0aa79ada
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
from sys import argv, stdout, stderr from sys import argv, stdout, stderr
import xml.dom.minidom import xml.dom.minidom
from libtpcodegen import file_set_contents from libtpcodegen import file_set_contents, u
from libglibcodegen import NS_TP, get_docstring, \ from libglibcodegen import NS_TP, get_docstring, \
get_descendant_text, get_by_path get_descendant_text, get_by_path
...@@ -12,7 +12,7 @@ class Generator(object): ...@@ -12,7 +12,7 @@ class Generator(object):
self.prefix = prefix + '_' self.prefix = prefix + '_'
self.spec = get_by_path(dom, "spec")[0] self.spec = get_by_path(dom, "spec")[0]
self.output_base = output_base self.output_base = output_base
self.__header = [] self.__header = []
self.__docs = [] self.__docs = []
...@@ -21,14 +21,14 @@ class Generator(object): ...@@ -21,14 +21,14 @@ class Generator(object):
self.do_body() self.do_body()
self.do_footer() self.do_footer()
file_set_contents(self.output_base + '.h', ''.join(self.__header)) file_set_contents(self.output_base + '.h', u('').join(self.__header).encode('utf-8'))
file_set_contents(self.output_base + '-gtk-doc.h', ''.join(self.__docs)) file_set_contents(self.output_base + '-gtk-doc.h', u('').join(self.__docs).encode('utf-8'))
def write(self, code): def write(self, code):
self.__header.append(code.encode('utf-8')) self.__header.append(code)
def d(self, code): def d(self, code):
self.__docs.append(code.encode('utf-8')) self.__docs.append(code)
# Header # Header
def do_header(self): def do_header(self):
......
...@@ -27,8 +27,8 @@ import os.path ...@@ -27,8 +27,8 @@ import os.path
import xml.dom.minidom import xml.dom.minidom
from getopt import gnu_getopt from getopt import gnu_getopt
from libtpcodegen import file_set_contents from libtpcodegen import file_set_contents, key_by_name, u
from libglibcodegen import Signature, type_to_gtype, cmp_by_name, \ from libglibcodegen import Signature, type_to_gtype, \
get_docstring, xml_escape, get_deprecated get_docstring, xml_escape, get_deprecated
...@@ -74,18 +74,12 @@ class Generator(object): ...@@ -74,18 +74,12 @@ class Generator(object):
self.guard = opts.get('--guard', None) self.guard = opts.get('--guard', None)
def h(self, s): def h(self, s):
if isinstance(s, unicode):
s = s.encode('utf-8')
self.__header.append(s) self.__header.append(s)
def b(self, s): def b(self, s):
if isinstance(s, unicode):
s = s.encode('utf-8')
self.__body.append(s) self.__body.append(s)
def d(self, s): def d(self, s):
if isinstance(s, unicode):
s = s.encode('utf-8')
self.__docs.append(s) self.__docs.append(s)
def get_iface_quark(self): def get_iface_quark(self):
...@@ -1191,7 +1185,7 @@ class Generator(object): ...@@ -1191,7 +1185,7 @@ class Generator(object):
self.b('') self.b('')
nodes = self.dom.getElementsByTagName('node') nodes = self.dom.getElementsByTagName('node')
nodes.sort(cmp_by_name) nodes.sort(key=key_by_name)
for node in nodes: for node in nodes:
self.do_interface(node) self.do_interface(node)
...@@ -1244,9 +1238,9 @@ class Generator(object): ...@@ -1244,9 +1238,9 @@ class Generator(object):
self.h('#endif /* defined (%s) */' % self.guard) self.h('#endif /* defined (%s) */' % self.guard)
self.h('') self.h('')
file_set_contents(self.basename + '.h', '\n'.join(self.__header)) file_set_contents(self.basename + '.h', u('\n').join(self.__header).encode('utf-8'))
file_set_contents(self.basename + '-body.h', '\n'.join(self.__body)) file_set_contents(self.basename + '-body.h', u('\n').join(self.__body).encode('utf-8'))
file_set_contents(self.basename + '-gtk-doc.h', '\n'.join(self.__docs)) file_set_contents(self.basename + '-gtk-doc.h', u('\n').join(self.__docs).encode('utf-8'))
def types_to_gtypes(types): def types_to_gtypes(types):
return [type_to_gtype(t)[1] for t in types] return [type_to_gtype(t)[1] for t in types]
......
...@@ -31,23 +31,23 @@ class Generator(object): ...@@ -31,23 +31,23 @@ class Generator(object):
for signal in signals: for signal in signals:
self.do_signal(signal) self.do_signal(signal)
print 'void' print('void')
print '%s_register_dbus_glib_marshallers (void)' % self.prefix print('%s_register_dbus_glib_marshallers (void)' % self.prefix)
print '{' print('{')
all = self.marshallers.keys() all = list(self.marshallers.keys())
all.sort() all.sort()
for marshaller in all: for marshaller in all:
rhs = self.marshallers[marshaller] rhs = self.marshallers[marshaller]
print ' dbus_g_object_register_marshaller (' print(' dbus_g_object_register_marshaller (')
print ' g_cclosure_marshal_generic,' print(' g_cclosure_marshal_generic,')
print ' G_TYPE_NONE, /* return */' print(' G_TYPE_NONE, /* return */')
for type in rhs: for type in rhs:
print ' G_TYPE_%s,' % type.replace('VOID', 'NONE') print(' G_TYPE_%s,' % type.replace('VOID', 'NONE'))
print ' G_TYPE_INVALID);' print(' G_TYPE_INVALID);')
print '}' print('}')
def types_to_gtypes(types): def types_to_gtypes(types):
......
...@@ -12,13 +12,13 @@ class Generator(object): ...@@ -12,13 +12,13 @@ class Generator(object):
def __call__(self): def __call__(self):
print '{' print('{')
print ' GEnumClass *klass;' print(' GEnumClass *klass;')
print ' GEnumValue *value_by_name;' print(' GEnumValue *value_by_name;')
print ' GEnumValue *value_by_nick;' print(' GEnumValue *value_by_nick;')
print '' print('')
print ' g_type_init ();' print(' g_type_init ();')
print ' klass = g_type_class_ref (TP_TYPE_ERROR);' print(' klass = g_type_class_ref (TP_TYPE_ERROR);')
for error in self.errors.getElementsByTagNameNS(NS_TP, 'error'): for error in self.errors.getElementsByTagNameNS(NS_TP, 'error'):
ns = error.parentNode.getAttribute('namespace') ns = error.parentNode.getAttribute('namespace')
...@@ -28,30 +28,30 @@ class Generator(object): ...@@ -28,30 +28,30 @@ class Generator(object):
s = ('TP_ERROR_STR_' + s = ('TP_ERROR_STR_' +
error.getAttribute('name').replace(' ', '_').replace('.', '_').upper()) error.getAttribute('name').replace(' ', '_').replace('.', '_').upper())
print '' print('')
print ' /* %s.%s */' % (ns, nick) print(' /* %s.%s */' % (ns, nick))
print (' value_by_name = g_enum_get_value_by_name (klass, "%s");' print(' value_by_name = g_enum_get_value_by_name (klass, "%s");'
% enum) % enum)
print (' value_by_nick = g_enum_get_value_by_nick (klass, "%s");' print(' value_by_nick = g_enum_get_value_by_nick (klass, "%s");'
% nick) % nick)
print (' g_assert (value_by_name != NULL);') print(' g_assert (value_by_name != NULL);')
print (' g_assert (value_by_nick != NULL);') print(' g_assert (value_by_nick != NULL);')
print (' g_assert_cmpint (value_by_name->value, ==, %s);' print(' g_assert_cmpint (value_by_name->value, ==, %s);'
% enum) % enum)
print (' g_assert_cmpint (value_by_nick->value, ==, %s);' print(' g_assert_cmpint (value_by_nick->value, ==, %s);'
% enum) % enum)
print (' g_assert_cmpstr (value_by_name->value_name, ==, "%s");' print(' g_assert_cmpstr (value_by_name->value_name, ==, "%s");'
% enum) % enum)
print (' g_assert_cmpstr (value_by_nick->value_name, ==, "%s");' print(' g_assert_cmpstr (value_by_nick->value_name, ==, "%s");'
% enum) % enum)
print (' g_assert_cmpstr (value_by_name->value_nick, ==, "%s");' print(' g_assert_cmpstr (value_by_name->value_nick, ==, "%s");'
% nick) % nick)
print (' g_assert_cmpstr (value_by_nick->value_nick, ==, "%s");' print(' g_assert_cmpstr (value_by_nick->value_nick, ==, "%s");'
% nick) % nick)
print (' g_assert_cmpstr (%s, ==, TP_ERROR_PREFIX ".%s");' print(' g_assert_cmpstr (%s, ==, TP_ERROR_PREFIX ".%s");'
% (s, nick)) % (s, nick))
print '}' print('}')
if __name__ == '__main__': if __name__ == '__main__':
argv = sys.argv[1:] argv = sys.argv[1:]
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
import sys import sys
import xml.dom.minidom import xml.dom.minidom
from libtpcodegen import file_set_contents from libtpcodegen import file_set_contents, u
from libglibcodegen import NS_TP, get_docstring, xml_escape from libglibcodegen import NS_TP, get_docstring, xml_escape
class Generator(object): class Generator(object):
...@@ -17,18 +17,12 @@ class Generator(object): ...@@ -17,18 +17,12 @@ class Generator(object):
self.__docs = [] self.__docs = []
def h(self, s): def h(self, s):
if isinstance(s, unicode):
s = s.encode('utf-8')
self.__header.append(s) self.__header.append(s)
def b(self, s): def b(self, s):
if isinstance(s, unicode):
s = s.encode('utf-8')
self.__body.append(s) self.__body.append(s)
def d(self, s): def d(self, s):
if isinstance(s, unicode):
s = s.encode('utf-8')
self.__docs.append(s) self.__docs.append(s)
def __call__(self): def __call__(self):
...@@ -72,9 +66,9 @@ class Generator(object): ...@@ -72,9 +66,9 @@ class Generator(object):
self.h('') self.h('')
self.b('') self.b('')
file_set_contents(self.basename + '.h', '\n'.join(self.__header)) file_set_contents(self.basename + '.h', u('\n').join(self.__header).encode('utf-8'))
file_set_contents(self.basename + '.c', '\n'.join(self.__body)) file_set_contents(self.basename + '.c', u('\n').join(self.__body).encode('utf-8'))
file_set_contents(self.basename + '-gtk-doc.h', '\n'.join(self.__docs)) file_set_contents(self.basename + '-gtk-doc.h', u('\n').join(self.__docs).encode('utf-8'))
if __name__ == '__main__': if __name__ == '__main__':
argv = sys.argv[1:] argv = sys.argv[1:]
......
...@@ -26,8 +26,8 @@ import sys ...@@ -26,8 +26,8 @@ import sys
import os.path import os.path
import xml.dom.minidom import xml.dom.minidom
from libtpcodegen import file_set_contents from libtpcodegen import file_set_contents, key_by_name, u
from libglibcodegen import Signature, type_to_gtype, cmp_by_name, \ from libglibcodegen import Signature, type_to_gtype, \
NS_TP, dbus_gutils_wincaps_to_uscore NS_TP, dbus_gutils_wincaps_to_uscore
...@@ -85,18 +85,12 @@ class Generator(object): ...@@ -85,18 +85,12 @@ class Generator(object):
self.allow_havoc = allow_havoc self.allow_havoc = allow_havoc
def h(self, s): def h(self, s):
if isinstance(s, unicode):
s = s.encode('utf-8')
self.__header.append(s) self.__header.append(s)
def b(self, s): def b(self, s):
if isinstance(s, unicode):
s = s.encode('utf-8')
self.__body.append(s) self.__body.append(s)
def d(self, s): def d(self, s):
if isinstance(s, unicode):
s = s.encode('utf-8')
self.__docs.append(s) self.__docs.append(s)
def do_node(self, node): def do_node(self, node):
...@@ -733,7 +727,7 @@ class Generator(object): ...@@ -733,7 +727,7 @@ class Generator(object):
def __call__(self): def __call__(self):
nodes = self.dom.getElementsByTagName('node') nodes = self.dom.getElementsByTagName('node')
nodes.sort(cmp_by_name) nodes.sort(key=key_by_name)
self.h('#include <glib-object.h>') self.h('#include <glib-object.h>')
self.h('#include <dbus/dbus-glib.h>') self.h('#include <dbus/dbus-glib.h>')
...@@ -761,12 +755,12 @@ class Generator(object): ...@@ -761,12 +755,12 @@ class Generator(object):
self.h('') self.h('')
self.b('') self.b('')
file_set_contents(self.basename + '.h', '\n'.join(self.__header)) file_set_contents(self.basename + '.h', u('\n').join(self.__header).encode('utf-8'))
file_set_contents(self.basename + '.c', '\n'.join(self.__body)) file_set_contents(self.basename + '.c', u('\n').join(self.__body).encode('utf-8'))
file_set_contents(self.basename + '-gtk-doc.h', '\n'.join(self.__docs)) file_set_contents(self.basename + '-gtk-doc.h', u('\n').join(self.__docs).encode('utf-8'))
def cmdline_error(): def cmdline_error():
print """\ print("""\
usage: usage:
gen-ginterface [OPTIONS] xmlfile Prefix_ gen-ginterface [OPTIONS] xmlfile Prefix_
options: options:
...@@ -786,7 +780,7 @@ options: ...@@ -786,7 +780,7 @@ options:
void symbol (DBusGMethodInvocation *context) void symbol (DBusGMethodInvocation *context)
and return some sort of "not implemented" error via and return some sort of "not implemented" error via
dbus_g_method_return_error (context, ...) dbus_g_method_return_error (context, ...)
""" """)
sys.exit(1) sys.exit(1)
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
import sys import sys
import xml.dom.minidom import xml.dom.minidom
from libtpcodegen import file_set_contents from libtpcodegen import file_set_contents, u
from libglibcodegen import escape_as_identifier, \ from libglibcodegen import escape_as_identifier, \
get_docstring, \ get_docstring, \
NS_TP, \ NS_TP, \
...@@ -68,13 +68,13 @@ class GTypesGenerator(object): ...@@ -68,13 +68,13 @@ class GTypesGenerator(object):
self.need_other_arrays = {} self.need_other_arrays = {}
def h(self, code): def h(self, code):
self.header.append(code.encode("utf-8")) self.header.append(code)
def c(self, code): def c(self, code):
self.body.append(code.encode("utf-8")) self.body.append(code)
def d(self, code): def d(self, code):
self.docs.append(code.encode('utf-8')) self.docs.append(code)
def do_mapping_header(self, mapping): def do_mapping_header(self, mapping):
members = mapping.getElementsByTagNameNS(NS_TP, 'member') members = mapping.getElementsByTagNameNS(NS_TP, 'member')
...@@ -292,9 +292,9 @@ class GTypesGenerator(object): ...@@ -292,9 +292,9 @@ class GTypesGenerator(object):
self.c(' return t;\n') self.c(' return t;\n')
self.c('}\n\n') self.c('}\n\n')
file_set_contents(self.output + '.h', ''.join(self.header)) file_set_contents(self.output + '.h', u('').join(self.header).encode('utf-8'))
file_set_contents(self.output + '-body.h', ''.join(self.body)) file_set_contents(self.output + '-body.h', u('').join(self.body).encode('utf-8'))
file_set_contents(self.output + '-gtk-doc.h', ''.join(self.docs)) file_set_contents(self.output + '-gtk-doc.h', u('').join(self.docs).encode('utf-8'))
if __name__ == '__main__': if __name__ == '__main__':
argv = sys.argv[1:] argv = sys.argv[1:]
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
from sys import argv, stdout, stderr from sys import argv, stdout, stderr
import xml.dom.minidom import xml.dom.minidom
from libtpcodegen import file_set_contents from libtpcodegen import file_set_contents, u
from libglibcodegen import NS_TP, get_docstring, \ from libglibcodegen import NS_TP, get_docstring, \
get_descendant_text, get_by_path get_descendant_text, get_by_path
...@@ -24,22 +24,22 @@ class Generator(object): ...@@ -24,22 +24,22 @@ class Generator(object):
self.spec = get_by_path(dom, "spec")[0] self.spec = get_by_path(dom, "spec")[0]
def h(self, code): def h(self, code):
self.decls.append(code.encode('utf-8')) self.decls.append(code)
def c(self, code): def c(self, code):
self.impls.append(code.encode('utf-8')) self.impls.append(code)
def d(self, code): def d(self, code):
self.docs.append(code.encode('utf-8')) self.docs.append(code)
def __call__(self): def __call__(self):
for f in self.h, self.c: for f in self.h, self.c:
self.do_header(f) self.do_header(f)
self.do_body() self.do_body()
file_set_contents(self.implfile, ''.join(self.impls)) file_set_contents(self.implfile, u('').join(self.impls).encode('utf-8'))
file_set_contents(self.declfile, ''.join(self.decls)) file_set_contents(self.declfile, u('').join(self.decls).encode('utf-8'))
file_set_contents(self.docfile, ''.join(self.docs)) file_set_contents(self.docfile, u('').join(self.docs).encode('utf-8'))
# Header # Header
def do_header(self, f): def do_header(self, f):
......
...@@ -87,4 +87,4 @@ if __name__ == '__main__': ...@@ -87,4 +87,4 @@ if __name__ == '__main__':
head, tail = argv head, tail = argv
print '\n'.join(gobject_header(head, tail, as_interface=as_interface)) print('\n'.join(gobject_header(head, tail, as_interface=as_interface)))
...@@ -154,7 +154,7 @@ def type_to_gtype(s): ...@@ -154,7 +154,7 @@ def type_to_gtype(s):
return ("GHashTable *", "DBUS_TYPE_G_STRING_STRING_HASHTABLE", "BOXED", False) return ("GHashTable *", "DBUS_TYPE_G_STRING_STRING_HASHTABLE", "BOXED", False)
elif s[:2] == 'a{': #some arbitrary hash tables elif s[:2] == 'a{': #some arbitrary hash tables
if s[2] not in ('y', 'b', 'n', 'q', 'i', 'u', 's', 'o', 'g'): if s[2] not in ('y', 'b', 'n', 'q', 'i', 'u', 's', 'o', 'g'):
raise Exception, "can't index a hashtable off non-basic type " + s raise Exception("can't index a hashtable off non-basic type " + s)
first = type_to_gtype(s[2]) first = type_to_gtype(s[2])
second = type_to_gtype(s[3:-1]) second = type_to_gtype(s[3:-1])
return ("GHashTable *", "(dbus_g_type_get_map (\"GHashTable\", " + first[1] + ", " + second[1] + "))", "BOXED", False) return ("GHashTable *", "(dbus_g_type_get_map (\"GHashTable\", " + first[1] + ", " + second[1] + "))", "BOXED", False)
...@@ -169,4 +169,4 @@ def type_to_gtype(s): ...@@ -169,4 +169,4 @@ def type_to_gtype(s):
return ("GValueArray *", gtype, "BOXED", True) return ("GValueArray *", gtype, "BOXED", True)
# we just don't know .. # we just don't know ..
raise Exception, "don't know the GType for " + s raise Exception("don't know the GType for " + s)
...@@ -21,6 +21,7 @@ please make any changes there. ...@@ -21,6 +21,7 @@ please make any changes there.
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
import os import os
import sys
from string import ascii_letters, digits from string import ascii_letters, digits
...@@ -28,6 +29,20 @@ NS_TP = "http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0" ...@@ -28,6 +29,20 @@ NS_TP = "http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0"
_ASCII_ALNUM = ascii_letters + digits _ASCII_ALNUM = ascii_letters + digits
if sys.version_info[0] >= 3:
def u(s):
"""Return s, which must be a str literal with no non-ASCII characters.
This is like a more restricted form of the Python 2 u'' syntax.
"""
return s.encode('ascii').decode('ascii')
else:
def u(s):
"""Return a Unicode version of s, which must be a str literal
(a bytestring) in which each byte is an ASCII character.
This is like a more restricted form of the u'' syntax.
"""
return s.decode('ascii')
def file_set_contents(filename, contents): def file_set_contents(filename, contents):
try: try:
os.remove(filename) os.remove(filename)
...@@ -38,13 +53,15 @@ def file_set_contents(filename, contents): ...@@ -38,13 +53,15 @@ def file_set_contents(filename, contents):
except OSError: except OSError:
pass pass
open(filename + '.tmp', 'w').write(contents) open(filename + '.tmp', 'wb').write(contents)
os.rename(filename + '.tmp', filename) os.rename(filename + '.tmp', filename)
def cmp_by_name(node1, node2): def cmp_by_name(node1, node2):
return cmp(node1.getAttributeNode("name").nodeValue, return cmp(node1.getAttributeNode("name").nodeValue,
node2.getAttributeNode("name").nodeValue) node2.getAttributeNode("name").nodeValue)
def key_by_name(node):
return node.getAttributeNode("name").nodeValue
def escape_as_identifier(identifier): def escape_as_identifier(identifier):
"""Escape the given string to be a valid D-Bus object path or service """Escape the given string to be a valid D-Bus object path or service
...@@ -168,6 +185,9 @@ class _SignatureIter: ...@@ -168,6 +185,9 @@ class _SignatureIter:
self.remaining = string self.remaining = string
def next(self): def next(self):
return self.__next__()
def __next__(self):
if self.remaining == '': if self.remaining == '':
raise StopIteration raise StopIteration
......
...@@ -63,9 +63,9 @@ def main(abifiles, symbols=None, unreleased_version=None, ...@@ -63,9 +63,9 @@ def main(abifiles, symbols=None, unreleased_version=None,
if dpkg: if dpkg:
assert dpkg_first_line is not None assert dpkg_first_line is not None
print dpkg_first_line print(dpkg_first_line)
if dpkg_build_depends_package is not None: if dpkg_build_depends_package is not None:
print "* Build-Depends-Package: %s" % dpkg_build_depends_package print("* Build-Depends-Package: %s" % dpkg_build_depends_package)
for filename in abifiles: for filename in abifiles:
lines = open(filename, 'r').readlines() lines = open(filename, 'r').readlines()
...@@ -120,8 +120,8 @@ def main(abifiles, symbols=None, unreleased_version=None, ...@@ -120,8 +120,8 @@ def main(abifiles, symbols=None, unreleased_version=None,
lines = lines[cut:] lines = lines[cut:]
if gnuld: if gnuld:
print "%s {" % version print("%s {" % version)
print " global:" print(" global:")
for symbol in lines: for symbol in lines:
symbol = symbol.strip() symbol = symbol.strip()
...@@ -130,7 +130,7 @@ def main(abifiles, symbols=None, unreleased_version=None, ...@@ -130,7 +130,7 @@ def main(abifiles, symbols=None, unreleased_version=None,
continue continue
if gnuld: if gnuld:
print " %s;" % symbol print(" %s;" % symbol)
elif dpkg: elif dpkg:
dpkg_symbols.append('%s@%s %s' % (symbol, version, release)) dpkg_symbols.append('%s@%s %s' % (symbol, version, release))
...@@ -142,22 +142,22 @@ def main(abifiles, symbols=None, unreleased_version=None, ...@@ -142,22 +142,22 @@ def main(abifiles, symbols=None, unreleased_version=None,
if gnuld: if gnuld:
if extends == '-': if extends == '-':
print " local:" print(" local:")
print " *;" print(" *;")
print "};" print("};")
else: else:
print "} %s;" % extends print("} %s;" % extends)
print print("")
if dpkg: if dpkg:
dpkg_symbols.sort() dpkg_symbols.sort()
dpkg_versions.sort() dpkg_versions.sort()
for x in dpkg_versions: for x in dpkg_versions:
print " %s" % x print(" %s" % x)
for x in dpkg_symbols: for x in dpkg_symbols:
print " %s" % x print(" %s" % x)
if symbol_set is not None: if symbol_set is not None:
missing = versioned_symbols - symbol_set missing = versioned_symbols - symbol_set
...@@ -182,13 +182,13 @@ def main(abifiles, symbols=None, unreleased_version=None, ...@@ -182,13 +182,13 @@ def main(abifiles, symbols=None, unreleased_version=None,