| From 3658d861c3c83caab9040bec04b195be3f86d4ce Mon Sep 17 00:00:00 2001 |
| From: Jason Wessel <jason.wessel@windriver.com> |
| Date: Thu, 29 Jun 2017 20:33:23 -0700 |
| Subject: [PATCH] Python3 compatibility: Convert print statements |
| |
| Commit d34a1cc02536f9a812517a71accec3fbd3c6c98b from |
| https://github.com/openvswitch/ovs.git |
| |
| This patch fixes up all the print statements to work with python3 or |
| python2. |
| |
| Signed-off-by: Jason Wessel <jason.wessel@windriver.com> |
| Signed-off-by: Ben Pfaff <blp@ovn.org> |
| |
| --- |
| build-aux/check-structs | 4 +- |
| build-aux/extract-ofp-actions | 68 +++--- |
| build-aux/extract-ofp-errors | 2 +- |
| build-aux/extract-ofp-fields | 2 +- |
| build-aux/extract-ofp-msgs | 6 +- |
| ovsdb/ovsdb-doc | 6 +- |
| ovsdb/ovsdb-idlc.in | 523 +++++++++++++++++++++--------------------- |
| 7 files changed, 306 insertions(+), 305 deletions(-) |
| |
| diff --git a/build-aux/check-structs b/build-aux/check-structs |
| index 5129b72..cbb19b6 100755 |
| --- a/build-aux/check-structs |
| +++ b/build-aux/check-structs |
| @@ -211,7 +211,7 @@ def checkStructs(): |
| |
| if '--help' in sys.argv: |
| argv0 = os.path.basename(sys.argv[0]) |
| - print '''\ |
| + print('''\ |
| %(argv0)s, for checking struct and struct member alignment |
| usage: %(argv0)s -Ipath HEADER [HEADER]... |
| |
| @@ -226,7 +226,7 @@ assertions using OFP_ASSERT. |
| |
| This program is specialized for reading Open vSwitch's OpenFlow header |
| files. It will not work on arbitrary header files without extensions.\ |
| -''' % {"argv0": argv0} |
| +''' % {"argv0": argv0}) |
| sys.exit(0) |
| |
| global fileName |
| diff --git a/build-aux/extract-ofp-actions b/build-aux/extract-ofp-actions |
| index ee8c4ff..67e3848 100755 |
| --- a/build-aux/extract-ofp-actions |
| +++ b/build-aux/extract-ofp-actions |
| @@ -67,7 +67,7 @@ def fatal(msg): |
| |
| def usage(): |
| argv0 = os.path.basename(sys.argv[0]) |
| - print ('''\ |
| + print('''\ |
| %(argv0)s, for extracting OpenFlow action data |
| usage: %(argv0)s OFP_ACTIONS.C [--prototypes | --definitions] |
| |
| @@ -238,36 +238,36 @@ def extract_ofp_actions(fn, definitions): |
| if n_errors: |
| sys.exit(1) |
| |
| - print """\ |
| + print("""\ |
| /* Generated automatically; do not modify! -*- buffer-read-only: t -*- */ |
| -""" |
| +""") |
| |
| if definitions: |
| - print "/* Verify that structs used as actions are reasonable sizes. */" |
| + print("/* Verify that structs used as actions are reasonable sizes. */") |
| for s in sorted(arg_structs): |
| - print "BUILD_ASSERT_DECL(sizeof(%s) %% OFP_ACTION_ALIGN == 0);" % s |
| + print("BUILD_ASSERT_DECL(sizeof(%s) %% OFP_ACTION_ALIGN == 0);" % s) |
| |
| - print "\nstatic struct ofpact_raw_instance all_raw_instances[] = {" |
| + print("\nstatic struct ofpact_raw_instance all_raw_instances[] = {") |
| for vendor in domain: |
| for type_ in domain[vendor]: |
| for version in domain[vendor][type_]: |
| d = domain[vendor][type_][version] |
| - print " { { 0x%08x, %2d, 0x%02x }, " % ( |
| - vendor, type_, version) |
| - print " %s," % d["enum"] |
| - print " HMAP_NODE_NULL_INITIALIZER," |
| - print " HMAP_NODE_NULL_INITIALIZER," |
| - print " %s," % d["min_length"] |
| - print " %s," % d["max_length"] |
| - print " %s," % d["arg_ofs"] |
| - print " %s," % d["arg_len"] |
| - print " \"%s\"," % re.sub('_RAW[0-9]*', '', d["enum"], 1) |
| + print(" { { 0x%08x, %2d, 0x%02x }, " % ( |
| + vendor, type_, version)) |
| + print(" %s," % d["enum"]) |
| + print(" HMAP_NODE_NULL_INITIALIZER,") |
| + print(" HMAP_NODE_NULL_INITIALIZER,") |
| + print(" %s," % d["min_length"]) |
| + print(" %s," % d["max_length"]) |
| + print(" %s," % d["arg_ofs"]) |
| + print(" %s," % d["arg_len"]) |
| + print(" \"%s\"," % re.sub('_RAW[0-9]*', '', d["enum"], 1)) |
| if d["deprecation"]: |
| - print " \"%s\"," % re.sub(r'(["\\])', r'\\\1', d["deprecation"]) |
| + print(" \"%s\"," % re.sub(r'(["\\])', r'\\\1', d["deprecation"])) |
| else: |
| - print " NULL," |
| - print " }," |
| - print "};"; |
| + print(" NULL,") |
| + print(" },") |
| + print("};") |
| |
| for versions in enums.values(): |
| need_ofp_version = False |
| @@ -314,11 +314,11 @@ def extract_ofp_actions(fn, definitions): |
| decl += "}" |
| else: |
| decl += ";" |
| - print decl |
| - print |
| + print(decl) |
| + print("") |
| |
| if definitions: |
| - print """\ |
| + print("""\ |
| static enum ofperr |
| ofpact_decode(const struct ofp_action_header *a, enum ofp_raw_action_type raw, |
| enum ofp_version version, uint64_t arg, |
| @@ -326,14 +326,14 @@ ofpact_decode(const struct ofp_action_header *a, enum ofp_raw_action_type raw, |
| uint64_t *tlv_bitmap, struct ofpbuf *out) |
| { |
| switch (raw) {\ |
| -""" |
| +""") |
| for versions in enums.values(): |
| enum = versions[0]["enum"] |
| - print " case %s:" % enum |
| + print(" case %s:" % enum) |
| base_argtype = versions[0]["base_argtype"] |
| arg_vl_mff_map = versions[0]["arg_vl_mff_map"] |
| if base_argtype == 'void': |
| - print " return decode_%s(out);" % enum |
| + print(" return decode_%s(out);" % enum) |
| else: |
| if base_argtype.startswith('struct'): |
| arg = "ALIGNED_CAST(const %s *, a)" % base_argtype |
| @@ -344,16 +344,16 @@ ofpact_decode(const struct ofp_action_header *a, enum ofp_raw_action_type raw, |
| else: |
| arg = "arg" |
| if arg_vl_mff_map: |
| - print " return decode_%s(%s, version, vl_mff_map, tlv_bitmap, out);" % (enum, arg) |
| + print(" return decode_%s(%s, version, vl_mff_map, tlv_bitmap, out);" % (enum, arg)) |
| else: |
| - print " return decode_%s(%s, version, out);" % (enum, arg) |
| - print |
| - print """\ |
| + print(" return decode_%s(%s, version, out);" % (enum, arg)) |
| + print("") |
| + print("""\ |
| default: |
| OVS_NOT_REACHED(); |
| } |
| }\ |
| -""" |
| +""") |
| else: |
| for versions in enums.values(): |
| enum = versions[0]["enum"] |
| @@ -368,15 +368,15 @@ ofpact_decode(const struct ofp_action_header *a, enum ofp_raw_action_type raw, |
| if arg_vl_mff_map: |
| prototype += 'const struct vl_mff_map *, uint64_t *, ' |
| prototype += "struct ofpbuf *);" |
| - print prototype |
| + print(prototype) |
| |
| - print """ |
| + print(""" |
| static enum ofperr ofpact_decode(const struct ofp_action_header *, |
| enum ofp_raw_action_type raw, |
| enum ofp_version version, |
| uint64_t arg, const struct vl_mff_map *vl_mff_map, |
| uint64_t *tlv_bitmap, struct ofpbuf *out); |
| -""" |
| +""") |
| |
| if __name__ == '__main__': |
| if '--help' in sys.argv: |
| diff --git a/build-aux/extract-ofp-errors b/build-aux/extract-ofp-errors |
| index e36444e..97d62d2 100755 |
| --- a/build-aux/extract-ofp-errors |
| +++ b/build-aux/extract-ofp-errors |
| @@ -426,7 +426,7 @@ static const struct ofperr_domain %s = { |
| vendor, type_, code = map[enum] |
| if code == None: |
| code = -1 |
| - print " { %#8x, %2d, %3d }, /* %s */" % (vendor, type_, code, enum) |
| + print (" { %#8x, %2d, %3d }, /* %s */" % (vendor, type_, code, enum)) |
| else: |
| print (" { -1, -1, -1 }, /* %s */" % enum) |
| print ("""\ |
| diff --git a/build-aux/extract-ofp-fields b/build-aux/extract-ofp-fields |
| index c248e76..80c7d35 100755 |
| --- a/build-aux/extract-ofp-fields |
| +++ b/build-aux/extract-ofp-fields |
| @@ -728,7 +728,7 @@ def make_ovs_fields(meta_flow_h, meta_flow_xml): |
| ovs\-fields \- protocol header fields in OpenFlow and Open vSwitch |
| . |
| .PP |
| -''') % version |
| +''' % version) |
| |
| recursively_replace(doc, 'oxm_classes', make_oxm_classes_xml(document)) |
| |
| diff --git a/build-aux/extract-ofp-msgs b/build-aux/extract-ofp-msgs |
| index c2a91f9..92c4bda 100755 |
| --- a/build-aux/extract-ofp-msgs |
| +++ b/build-aux/extract-ofp-msgs |
| @@ -56,14 +56,14 @@ def fatal(msg): |
| |
| def usage(): |
| argv0 = os.path.basename(sys.argv[0]) |
| - print '''\ |
| + print('''\ |
| %(argv0)s, for extracting OpenFlow message types from header files |
| usage: %(argv0)s INPUT OUTPUT |
| where INPUT is the name of the input header file |
| and OUTPUT is the output file name. |
| Despite OUTPUT, the output is written to stdout, and the OUTPUT argument |
| only controls #line directives in the output.\ |
| -''' % {"argv0": argv0} |
| +''' % {"argv0": argv0}) |
| sys.exit(0) |
| |
| def make_sizeof(s): |
| @@ -378,5 +378,5 @@ if __name__ == '__main__': |
| line_number = 0 |
| |
| for line in extract_ofp_msgs(sys.argv[2]): |
| - print line |
| + print(line) |
| |
| diff --git a/ovsdb/ovsdb-doc b/ovsdb/ovsdb-doc |
| index bdf2dcc..e82ad59 100755 |
| --- a/ovsdb/ovsdb-doc |
| +++ b/ovsdb/ovsdb-doc |
| @@ -258,7 +258,7 @@ represent strong references; thin lines represent weak references. |
| return s |
| |
| def usage(): |
| - print """\ |
| + print("""\ |
| %(argv0)s: ovsdb schema documentation generator |
| Prints documentation for an OVSDB schema as an nroff-formatted manpage. |
| usage: %(argv0)s [OPTIONS] SCHEMA XML |
| @@ -269,7 +269,7 @@ The following options are also available: |
| --er-diagram=DIAGRAM.PIC include E-R diagram from DIAGRAM.PIC |
| --version=VERSION use VERSION to display on document footer |
| -h, --help display this help message\ |
| -""" % {'argv0': argv0} |
| +""" % {'argv0': argv0}) |
| sys.exit(0) |
| |
| if __name__ == "__main__": |
| @@ -304,7 +304,7 @@ if __name__ == "__main__": |
| for line in s.split("\n"): |
| line = line.strip() |
| if len(line): |
| - print line |
| + print(line) |
| |
| except error.Error, e: |
| sys.stderr.write("%s: %s\n" % (argv0, e.msg)) |
| diff --git a/ovsdb/ovsdb-idlc.in b/ovsdb/ovsdb-idlc.in |
| index bfbcf23..62442ee 100755 |
| --- a/ovsdb/ovsdb-idlc.in |
| +++ b/ovsdb/ovsdb-idlc.in |
| @@ -1,5 +1,6 @@ |
| #! /usr/bin/env @PYTHON@ |
| |
| +from __future__ import print_function |
| import getopt |
| import os |
| import re |
| @@ -123,7 +124,7 @@ def sorted_columns(table): |
| def printCIDLHeader(schemaFile): |
| schema = parseSchema(schemaFile) |
| prefix = schema.idlPrefix |
| - print '''\ |
| + print('''\ |
| /* Generated automatically -- do not modify! -*- buffer-read-only: t -*- */ |
| |
| #ifndef %(prefix)sIDL_HEADER |
| @@ -135,39 +136,39 @@ def printCIDLHeader(schemaFile): |
| #include "ovsdb-data.h" |
| #include "ovsdb-idl-provider.h" |
| #include "smap.h" |
| -#include "uuid.h"''' % {'prefix': prefix.upper()} |
| +#include "uuid.h"''' % {'prefix': prefix.upper()}) |
| |
| for tableName, table in sorted(schema.tables.iteritems()): |
| structName = "%s%s" % (prefix, tableName.lower()) |
| |
| - print "" |
| - print "/* %s table. */" % tableName |
| - print "struct %s {" % structName |
| - print "\tstruct ovsdb_idl_row header_;" |
| + print("") |
| + print("/* %s table. */" % tableName) |
| + print("struct %s {" % structName) |
| + print("\tstruct ovsdb_idl_row header_;") |
| for columnName, column in sorted_columns(table): |
| - print "\n\t/* %s column. */" % columnName |
| + print("\n\t/* %s column. */" % columnName) |
| comment, members = cMembers(prefix, tableName, |
| columnName, column, False) |
| for member in members: |
| - print "\t%(type)s%(name)s;%(comment)s" % member |
| - print "};" |
| + print("\t%(type)s%(name)s;%(comment)s" % member) |
| + print("};") |
| |
| # Column indexes. |
| printEnum("%s_column_id" % structName.lower(), ["%s_COL_%s" % (structName.upper(), columnName.upper()) |
| for columnName, column in sorted_columns(table)] |
| + ["%s_N_COLUMNS" % structName.upper()]) |
| |
| - print |
| + print("") |
| for columnName in table.columns: |
| - print "#define %(s)s_col_%(c)s (%(s)s_columns[%(S)s_COL_%(C)s])" % { |
| + print("#define %(s)s_col_%(c)s (%(s)s_columns[%(S)s_COL_%(C)s])" % { |
| 's': structName, |
| 'S': structName.upper(), |
| 'c': columnName, |
| - 'C': columnName.upper()} |
| + 'C': columnName.upper()}) |
| |
| - print "\nextern struct ovsdb_idl_column %s_columns[%s_N_COLUMNS];" % (structName, structName.upper()) |
| + print("\nextern struct ovsdb_idl_column %s_columns[%s_N_COLUMNS];" % (structName, structName.upper())) |
| |
| - print ''' |
| + print(''' |
| const struct %(s)s *%(s)s_get_for_uuid(const struct ovsdb_idl *, const struct uuid *); |
| const struct %(s)s *%(s)s_first(const struct ovsdb_idl *); |
| const struct %(s)s *%(s)s_next(const struct %(s)s *); |
| @@ -205,87 +206,87 @@ void %(s)s_init(struct %(s)s *); |
| void %(s)s_delete(const struct %(s)s *); |
| struct %(s)s *%(s)s_insert(struct ovsdb_idl_txn *); |
| bool %(s)s_is_updated(const struct %(s)s *, enum %(s)s_column_id); |
| -''' % {'s': structName, 'S': structName.upper()} |
| +''' % {'s': structName, 'S': structName.upper()}) |
| |
| for columnName, column in sorted_columns(table): |
| - print 'void %(s)s_verify_%(c)s(const struct %(s)s *);' % {'s': structName, 'c': columnName} |
| + print('void %(s)s_verify_%(c)s(const struct %(s)s *);' % {'s': structName, 'c': columnName}) |
| |
| - print |
| + print("") |
| for columnName, column in sorted_columns(table): |
| if column.type.value: |
| valueParam = ', enum ovsdb_atomic_type value_type' |
| else: |
| valueParam = '' |
| - print 'const struct ovsdb_datum *%(s)s_get_%(c)s(const struct %(s)s *, enum ovsdb_atomic_type key_type%(v)s);' % { |
| - 's': structName, 'c': columnName, 'v': valueParam} |
| + print('const struct ovsdb_datum *%(s)s_get_%(c)s(const struct %(s)s *, enum ovsdb_atomic_type key_type%(v)s);' % { |
| + 's': structName, 'c': columnName, 'v': valueParam}) |
| |
| - print |
| + print("") |
| for columnName, column in sorted_columns(table): |
| - print 'void %(s)s_set_%(c)s(const struct %(s)s *,' % {'s': structName, 'c': columnName}, |
| + print('void %(s)s_set_%(c)s(const struct %(s)s *,' % {'s': structName, 'c': columnName}, end=' ') |
| if column.type.is_smap(): |
| args = ['const struct smap *'] |
| else: |
| comment, members = cMembers(prefix, tableName, columnName, |
| column, True) |
| args = ['%(type)s%(name)s' % member for member in members] |
| - print '%s);' % ', '.join(args) |
| + print('%s);' % ', '.join(args)) |
| |
| - print |
| + print("") |
| for columnName, column in sorted_columns(table): |
| if column.type.is_map(): |
| - print 'void %(s)s_update_%(c)s_setkey(const struct %(s)s *, ' % {'s': structName, 'c': columnName}, |
| - print '%(coltype)s, %(valtype)s);' % {'coltype':column.type.key.to_const_c_type(prefix), 'valtype':column.type.value.to_const_c_type(prefix)} |
| - print 'void %(s)s_update_%(c)s_delkey(const struct %(s)s *, ' % {'s': structName, 'c': columnName}, |
| - print '%(coltype)s);' % {'coltype':column.type.key.to_const_c_type(prefix)} |
| + print('void %(s)s_update_%(c)s_setkey(const struct %(s)s *, ' % {'s': structName, 'c': columnName}, end=' ') |
| + print('%(coltype)s, %(valtype)s);' % {'coltype':column.type.key.to_const_c_type(prefix), 'valtype':column.type.value.to_const_c_type(prefix)}) |
| + print('void %(s)s_update_%(c)s_delkey(const struct %(s)s *, ' % {'s': structName, 'c': columnName}, end=' ') |
| + print('%(coltype)s);' % {'coltype':column.type.key.to_const_c_type(prefix)}) |
| if column.type.is_set(): |
| - print 'void %(s)s_update_%(c)s_addvalue(const struct %(s)s *, ' % {'s': structName, 'c': columnName}, |
| - print '%(valtype)s);' % {'valtype':column.type.key.to_const_c_type(prefix)} |
| - print 'void %(s)s_update_%(c)s_delvalue(const struct %(s)s *, ' % {'s': structName, 'c': columnName}, |
| - print '%(valtype)s);' % {'valtype':column.type.key.to_const_c_type(prefix)} |
| + print('void %(s)s_update_%(c)s_addvalue(const struct %(s)s *, ' % {'s': structName, 'c': columnName}, end=' ') |
| + print('%(valtype)s);' % {'valtype':column.type.key.to_const_c_type(prefix)}) |
| + print('void %(s)s_update_%(c)s_delvalue(const struct %(s)s *, ' % {'s': structName, 'c': columnName}, end=' ') |
| + print('%(valtype)s);' % {'valtype':column.type.key.to_const_c_type(prefix)}) |
| |
| - print 'void %(s)s_add_clause_%(c)s(struct ovsdb_idl_condition *, enum ovsdb_function function,' % {'s': structName, 'c': columnName}, |
| + print('void %(s)s_add_clause_%(c)s(struct ovsdb_idl_condition *, enum ovsdb_function function,' % {'s': structName, 'c': columnName}, end=' ') |
| if column.type.is_smap(): |
| args = ['const struct smap *'] |
| else: |
| comment, members = cMembers(prefix, tableName, columnName, |
| column, True, refTable=False) |
| args = ['%(type)s%(name)s' % member for member in members] |
| - print '%s);' % ', '.join(args) |
| + print('%s);' % ', '.join(args)) |
| |
| - print 'void %(s)s_set_condition(struct ovsdb_idl *, struct ovsdb_idl_condition *);' % {'s': structName}, |
| + print('void %(s)s_set_condition(struct ovsdb_idl *, struct ovsdb_idl_condition *);' % {'s': structName}) |
| |
| - print |
| + print("") |
| |
| # Table indexes. |
| printEnum("%stable_id" % prefix.lower(), ["%sTABLE_%s" % (prefix.upper(), tableName.upper()) for tableName in sorted(schema.tables)] + ["%sN_TABLES" % prefix.upper()]) |
| - print |
| + print("") |
| for tableName in schema.tables: |
| - print "#define %(p)stable_%(t)s (%(p)stable_classes[%(P)sTABLE_%(T)s])" % { |
| + print("#define %(p)stable_%(t)s (%(p)stable_classes[%(P)sTABLE_%(T)s])" % { |
| 'p': prefix, |
| 'P': prefix.upper(), |
| 't': tableName.lower(), |
| - 'T': tableName.upper()} |
| - print "\nextern struct ovsdb_idl_table_class %stable_classes[%sN_TABLES];" % (prefix, prefix.upper()) |
| + 'T': tableName.upper()}) |
| + print("\nextern struct ovsdb_idl_table_class %stable_classes[%sN_TABLES];" % (prefix, prefix.upper())) |
| |
| - print "\nextern struct ovsdb_idl_class %sidl_class;" % prefix |
| + print("\nextern struct ovsdb_idl_class %sidl_class;" % prefix) |
| |
| - print "\nconst char * %sget_db_version(void);" % prefix |
| - print "\n#endif /* %(prefix)sIDL_HEADER */" % {'prefix': prefix.upper()} |
| + print("\nconst char * %sget_db_version(void);" % prefix) |
| + print("\n#endif /* %(prefix)sIDL_HEADER */" % {'prefix': prefix.upper()}) |
| |
| def printEnum(type, members): |
| if len(members) == 0: |
| return |
| |
| - print "\nenum %s {" % type |
| + print("\nenum %s {" % type) |
| for member in members[:-1]: |
| - print " %s," % member |
| - print " %s" % members[-1] |
| - print "};" |
| + print(" %s," % member) |
| + print(" %s" % members[-1]) |
| + print("};") |
| |
| def printCIDLSource(schemaFile): |
| schema = parseSchema(schemaFile) |
| prefix = schema.idlPrefix |
| - print '''\ |
| + print('''\ |
| /* Generated automatically -- do not modify! -*- buffer-read-only: t -*- */ |
| |
| #include <config.h> |
| @@ -296,33 +297,33 @@ def printCIDLSource(schemaFile): |
| #include "ovsdb-error.h" |
| #include "util.h" |
| |
| -''' % schema.idlHeader |
| +''' % schema.idlHeader) |
| |
| # Cast functions. |
| for tableName, table in sorted(schema.tables.iteritems()): |
| structName = "%s%s" % (prefix, tableName.lower()) |
| - print ''' |
| + print(''' |
| static struct %(s)s * |
| %(s)s_cast(const struct ovsdb_idl_row *row) |
| { |
| return row ? CONTAINER_OF(row, struct %(s)s, header_) : NULL; |
| }\ |
| -''' % {'s': structName} |
| +''' % {'s': structName}) |
| |
| |
| for tableName, table in sorted(schema.tables.iteritems()): |
| structName = "%s%s" % (prefix, tableName.lower()) |
| - print "" |
| - print "/* %s table. */" % (tableName) |
| + print("") |
| + print("/* %s table. */" % (tableName)) |
| |
| # Parse functions. |
| for columnName, column in sorted_columns(table): |
| - print ''' |
| + print(''' |
| static void |
| %(s)s_parse_%(c)s(struct ovsdb_idl_row *row_, const struct ovsdb_datum *datum) |
| { |
| struct %(s)s *row = %(s)s_cast(row_);''' % {'s': structName, |
| - 'c': columnName} |
| + 'c': columnName}) |
| type = column.type |
| if type.value: |
| keyVar = "row->key_%s" % columnName |
| @@ -332,89 +333,89 @@ static void |
| valueVar = None |
| |
| if type.is_smap(): |
| - print " smap_init(&row->%s);" % columnName |
| - print " for (size_t i = 0; i < datum->n; i++) {" |
| - print " smap_add(&row->%s," % columnName |
| - print " datum->keys[i].string," |
| - print " datum->values[i].string);" |
| - print " }" |
| + print(" smap_init(&row->%s);" % columnName) |
| + print(" for (size_t i = 0; i < datum->n; i++) {") |
| + print(" smap_add(&row->%s," % columnName) |
| + print(" datum->keys[i].string,") |
| + print(" datum->values[i].string);") |
| + print(" }") |
| elif (type.n_min == 1 and type.n_max == 1) or type.is_optional_pointer(): |
| - print |
| - print " if (datum->n >= 1) {" |
| + print("") |
| + print(" if (datum->n >= 1) {") |
| if not type.key.ref_table: |
| - print " %s = datum->keys[0].%s;" % (keyVar, type.key.type.to_string()) |
| + print(" %s = datum->keys[0].%s;" % (keyVar, type.key.type.to_string())) |
| else: |
| - print " %s = %s%s_cast(ovsdb_idl_get_row_arc(row_, &%stable_%s, &datum->keys[0].uuid));" % (keyVar, prefix, type.key.ref_table.name.lower(), prefix, type.key.ref_table.name.lower()) |
| + print(" %s = %s%s_cast(ovsdb_idl_get_row_arc(row_, &%stable_%s, &datum->keys[0].uuid));" % (keyVar, prefix, type.key.ref_table.name.lower(), prefix, type.key.ref_table.name.lower())) |
| |
| if valueVar: |
| if not type.value.ref_table: |
| - print " %s = datum->values[0].%s;" % (valueVar, type.value.type.to_string()) |
| + print(" %s = datum->values[0].%s;" % (valueVar, type.value.type.to_string())) |
| else: |
| - print " %s = %s%s_cast(ovsdb_idl_get_row_arc(row_, &%stable_%s, &datum->values[0].uuid));" % (valueVar, prefix, type.value.ref_table.name.lower(), prefix, type.value.ref_table.name.lower()) |
| - print " } else {" |
| - print " %s" % type.key.initCDefault(keyVar, type.n_min == 0) |
| + print(" %s = %s%s_cast(ovsdb_idl_get_row_arc(row_, &%stable_%s, &datum->values[0].uuid));" % (valueVar, prefix, type.value.ref_table.name.lower(), prefix, type.value.ref_table.name.lower())) |
| + print(" } else {") |
| + print(" %s" % type.key.initCDefault(keyVar, type.n_min == 0)) |
| if valueVar: |
| - print " %s" % type.value.initCDefault(valueVar, type.n_min == 0) |
| - print " }" |
| + print(" %s" % type.value.initCDefault(valueVar, type.n_min == 0)) |
| + print(" }") |
| else: |
| if type.n_max != sys.maxint: |
| - print " size_t n = MIN(%d, datum->n);" % type.n_max |
| + print(" size_t n = MIN(%d, datum->n);" % type.n_max) |
| nMax = "n" |
| else: |
| nMax = "datum->n" |
| - print " %s = NULL;" % keyVar |
| + print(" %s = NULL;" % keyVar) |
| if valueVar: |
| - print " %s = NULL;" % valueVar |
| - print " row->n_%s = 0;" % columnName |
| - print " for (size_t i = 0; i < %s; i++) {" % nMax |
| + print(" %s = NULL;" % valueVar) |
| + print(" row->n_%s = 0;" % columnName) |
| + print(" for (size_t i = 0; i < %s; i++) {" % nMax) |
| if type.key.ref_table: |
| - print """\ |
| + print("""\ |
| struct %s%s *keyRow = %s%s_cast(ovsdb_idl_get_row_arc(row_, &%stable_%s, &datum->keys[i].uuid)); |
| if (!keyRow) { |
| continue; |
| }\ |
| -""" % (prefix, type.key.ref_table.name.lower(), prefix, type.key.ref_table.name.lower(), prefix, type.key.ref_table.name.lower()) |
| +""" % (prefix, type.key.ref_table.name.lower(), prefix, type.key.ref_table.name.lower(), prefix, type.key.ref_table.name.lower())) |
| keySrc = "keyRow" |
| else: |
| keySrc = "datum->keys[i].%s" % type.key.type.to_string() |
| if type.value and type.value.ref_table: |
| - print """\ |
| + print("""\ |
| struct %s%s *valueRow = %s%s_cast(ovsdb_idl_get_row_arc(row_, &%stable_%s, &datum->values[i].uuid)); |
| if (!valueRow) { |
| continue; |
| }\ |
| -""" % (prefix, type.value.ref_table.name.lower(), prefix, type.value.ref_table.name.lower(), prefix, type.value.ref_table.name.lower()) |
| +""" % (prefix, type.value.ref_table.name.lower(), prefix, type.value.ref_table.name.lower(), prefix, type.value.ref_table.name.lower())) |
| valueSrc = "valueRow" |
| elif valueVar: |
| valueSrc = "datum->values[i].%s" % type.value.type.to_string() |
| - print " if (!row->n_%s) {" % (columnName) |
| + print(" if (!row->n_%s) {" % (columnName)) |
| |
| - print " %s = xmalloc(%s * sizeof *%s);" % ( |
| - keyVar, nMax, keyVar) |
| + print(" %s = xmalloc(%s * sizeof *%s);" % ( |
| + keyVar, nMax, keyVar)) |
| if valueVar: |
| - print " %s = xmalloc(%s * sizeof *%s);" % ( |
| - valueVar, nMax, valueVar) |
| - print " }" |
| - print " %s[row->n_%s] = %s;" % (keyVar, columnName, keySrc) |
| + print(" %s = xmalloc(%s * sizeof *%s);" % ( |
| + valueVar, nMax, valueVar)) |
| + print(" }") |
| + print(" %s[row->n_%s] = %s;" % (keyVar, columnName, keySrc)) |
| if valueVar: |
| - print " %s[row->n_%s] = %s;" % (valueVar, columnName, valueSrc) |
| - print " row->n_%s++;" % columnName |
| - print " }" |
| - print "}" |
| + print(" %s[row->n_%s] = %s;" % (valueVar, columnName, valueSrc)) |
| + print(" row->n_%s++;" % columnName) |
| + print(" }") |
| + print("}") |
| |
| # Unparse functions. |
| for columnName, column in sorted_columns(table): |
| type = column.type |
| if type.is_smap() or (type.n_min != 1 or type.n_max != 1) and not type.is_optional_pointer(): |
| - print ''' |
| + print(''' |
| static void |
| %(s)s_unparse_%(c)s(struct ovsdb_idl_row *row_) |
| { |
| struct %(s)s *row = %(s)s_cast(row_);''' % {'s': structName, |
| - 'c': columnName} |
| + 'c': columnName}) |
| |
| if type.is_smap(): |
| - print " smap_destroy(&row->%s);" % columnName |
| + print(" smap_destroy(&row->%s);" % columnName) |
| else: |
| if type.value: |
| keyVar = "row->key_%s" % columnName |
| @@ -422,45 +423,45 @@ static void |
| else: |
| keyVar = "row->%s" % columnName |
| valueVar = None |
| - print " free(%s);" % keyVar |
| + print(" free(%s);" % keyVar) |
| if valueVar: |
| - print " free(%s);" % valueVar |
| - print '}' |
| + print(" free(%s);" % valueVar) |
| + print('}') |
| else: |
| - print ''' |
| + print(''' |
| static void |
| %(s)s_unparse_%(c)s(struct ovsdb_idl_row *row OVS_UNUSED) |
| { |
| /* Nothing to do. */ |
| -}''' % {'s': structName, 'c': columnName} |
| +}''' % {'s': structName, 'c': columnName}) |
| |
| # Generic Row Initialization function. |
| - print """ |
| + print(""" |
| static void |
| %(s)s_init__(struct ovsdb_idl_row *row) |
| { |
| %(s)s_init(%(s)s_cast(row)); |
| -}""" % {'s': structName} |
| +}""" % {'s': structName}) |
| |
| # Row Initialization function. |
| - print """ |
| + print(""" |
| /* Clears the contents of 'row' in table "%(t)s". */ |
| void |
| %(s)s_init(struct %(s)s *row) |
| { |
| - memset(row, 0, sizeof *row); """ % {'s': structName, 't': tableName} |
| + memset(row, 0, sizeof *row); """ % {'s': structName, 't': tableName}) |
| for columnName, column in sorted_columns(table): |
| if column.type.is_smap(): |
| - print " smap_init(&row->%s);" % columnName |
| + print(" smap_init(&row->%s);" % columnName) |
| elif (column.type.n_min == 1 and |
| column.type.n_max == 1 and |
| column.type.key.type == ovs.db.types.StringType and |
| not column.type.value): |
| - print " row->%s = \"\";" % columnName |
| - print "}" |
| + print(" row->%s = \"\";" % columnName) |
| + print("}") |
| |
| # First, next functions. |
| - print ''' |
| + print(''' |
| /* Searches table "%(t)s" in 'idl' for a row with UUID 'uuid'. Returns |
| * a pointer to the row if there is one, otherwise a null pointer. */ |
| const struct %(s)s * |
| @@ -514,9 +515,9 @@ const struct %(s)s |
| 'P': prefix.upper(), |
| 't': tableName, |
| 'tl': tableName.lower(), |
| - 'T': tableName.upper()} |
| + 'T': tableName.upper()}) |
| |
| - print ''' |
| + print(''' |
| |
| /* Deletes 'row' from table "%(t)s". 'row' may be freed, so it must not be |
| * accessed afterward. |
| @@ -550,11 +551,11 @@ bool |
| 'P': prefix.upper(), |
| 't': tableName, |
| 'tl': tableName.lower(), |
| - 'T': tableName.upper()} |
| + 'T': tableName.upper()}) |
| |
| # Verify functions. |
| for columnName, column in sorted_columns(table): |
| - print ''' |
| + print(''' |
| /* Causes the original contents of column "%(c)s" in 'row' to be |
| * verified as a prerequisite to completing the transaction. That is, if |
| * "%(c)s" in 'row' changed (or if 'row' was deleted) between the |
| @@ -585,7 +586,7 @@ void |
| }''' % {'s': structName, |
| 'S': structName.upper(), |
| 'c': columnName, |
| - 'C': columnName.upper()} |
| + 'C': columnName.upper()}) |
| |
| # Get functions. |
| for columnName, column in sorted_columns(table): |
| @@ -597,7 +598,7 @@ void |
| valueParam = '' |
| valueType = '' |
| valueComment = '' |
| - print """ |
| + print(""" |
| /* Returns the "%(c)s" column's value from the "%(t)s" table in 'row' |
| * as a struct ovsdb_datum. This is useful occasionally: for example, |
| * ovsdb_datum_find_key() is an easier and more efficient way to search |
| @@ -625,7 +626,7 @@ const struct ovsdb_datum * |
| return ovsdb_idl_read(&row->header_, &%(s)s_col_%(c)s); |
| }""" % {'t': tableName, 's': structName, 'c': columnName, |
| 'kt': column.type.key.toAtomicType(), |
| - 'v': valueParam, 'vt': valueType, 'vc': valueComment} |
| + 'v': valueParam, 'vt': valueType, 'vc': valueComment}) |
| |
| # Set functions. |
| for columnName, column in sorted_columns(table): |
| @@ -635,8 +636,8 @@ const struct ovsdb_datum * |
| column, True) |
| |
| if type.is_smap(): |
| - print comment |
| - print """void |
| + print(comment) |
| + print("""void |
| %(s)s_set_%(c)s(const struct %(s)s *row, const struct smap *%(c)s) |
| { |
| struct ovsdb_datum datum; |
| @@ -654,7 +655,7 @@ const struct ovsdb_datum * |
| 's': structName, |
| 'S': structName.upper(), |
| 'c': columnName, |
| - 'C': columnName.upper()} |
| + 'C': columnName.upper()}) |
| continue |
| |
| keyVar = members[0]['name'] |
| @@ -668,84 +669,84 @@ const struct ovsdb_datum * |
| if len(members) > 1: |
| nVar = members[1]['name'] |
| |
| - print comment |
| - print """\ |
| + print(comment) |
| + print("""\ |
| void |
| %(s)s_set_%(c)s(const struct %(s)s *row, %(args)s) |
| { |
| struct ovsdb_datum datum;""" % {'s': structName, |
| 'c': columnName, |
| 'args': ', '.join(['%(type)s%(name)s' |
| - % m for m in members])} |
| + % m for m in members])}) |
| if type.n_min == 1 and type.n_max == 1: |
| - print " union ovsdb_atom key;" |
| + print(" union ovsdb_atom key;") |
| if type.value: |
| - print " union ovsdb_atom value;" |
| - print |
| - print " datum.n = 1;" |
| - print " datum.keys = &key;" |
| - print " " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), keyVar) |
| + print(" union ovsdb_atom value;") |
| + print("") |
| + print(" datum.n = 1;") |
| + print(" datum.keys = &key;") |
| + print(" " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), keyVar)) |
| if type.value: |
| - print " datum.values = &value;" |
| - print " "+ type.value.assign_c_value_casting_away_const("value.%s" % type.value.type.to_string(), valueVar) |
| + print(" datum.values = &value;") |
| + print(" "+ type.value.assign_c_value_casting_away_const("value.%s" % type.value.type.to_string(), valueVar)) |
| else: |
| - print " datum.values = NULL;" |
| + print(" datum.values = NULL;") |
| txn_write_func = "ovsdb_idl_txn_write_clone" |
| elif type.is_optional_pointer(): |
| - print " union ovsdb_atom key;" |
| - print |
| - print " if (%s) {" % keyVar |
| - print " datum.n = 1;" |
| - print " datum.keys = &key;" |
| - print " " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), keyVar) |
| - print " } else {" |
| - print " datum.n = 0;" |
| - print " datum.keys = NULL;" |
| - print " }" |
| - print " datum.values = NULL;" |
| + print(" union ovsdb_atom key;") |
| + print("") |
| + print(" if (%s) {" % keyVar) |
| + print(" datum.n = 1;") |
| + print(" datum.keys = &key;") |
| + print(" " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), keyVar)) |
| + print(" } else {") |
| + print(" datum.n = 0;") |
| + print(" datum.keys = NULL;") |
| + print(" }") |
| + print(" datum.values = NULL;") |
| txn_write_func = "ovsdb_idl_txn_write_clone" |
| elif type.n_max == 1: |
| - print " union ovsdb_atom key;" |
| - print |
| - print " if (%s) {" % nVar |
| - print " datum.n = 1;" |
| - print " datum.keys = &key;" |
| - print " " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), "*" + keyVar) |
| - print " } else {" |
| - print " datum.n = 0;" |
| - print " datum.keys = NULL;" |
| - print " }" |
| - print " datum.values = NULL;" |
| + print(" union ovsdb_atom key;") |
| + print("") |
| + print(" if (%s) {" % nVar) |
| + print(" datum.n = 1;") |
| + print(" datum.keys = &key;") |
| + print(" " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), "*" + keyVar)) |
| + print(" } else {") |
| + print(" datum.n = 0;") |
| + print(" datum.keys = NULL;") |
| + print(" }") |
| + print(" datum.values = NULL;") |
| txn_write_func = "ovsdb_idl_txn_write_clone" |
| else: |
| - print |
| - print " datum.n = %s;" % nVar |
| - print " datum.keys = %s ? xmalloc(%s * sizeof *datum.keys) : NULL;" % (nVar, nVar) |
| + print("") |
| + print(" datum.n = %s;" % nVar) |
| + print(" datum.keys = %s ? xmalloc(%s * sizeof *datum.keys) : NULL;" % (nVar, nVar)) |
| if type.value: |
| - print " datum.values = xmalloc(%s * sizeof *datum.values);" % nVar |
| + print(" datum.values = xmalloc(%s * sizeof *datum.values);" % nVar) |
| else: |
| - print " datum.values = NULL;" |
| - print " for (size_t i = 0; i < %s; i++) {" % nVar |
| - print " " + type.key.copyCValue("datum.keys[i].%s" % type.key.type.to_string(), "%s[i]" % keyVar) |
| + print(" datum.values = NULL;") |
| + print(" for (size_t i = 0; i < %s; i++) {" % nVar) |
| + print(" " + type.key.copyCValue("datum.keys[i].%s" % type.key.type.to_string(), "%s[i]" % keyVar)) |
| if type.value: |
| - print " " + type.value.copyCValue("datum.values[i].%s" % type.value.type.to_string(), "%s[i]" % valueVar) |
| - print " }" |
| + print(" " + type.value.copyCValue("datum.values[i].%s" % type.value.type.to_string(), "%s[i]" % valueVar)) |
| + print(" }") |
| if type.value: |
| valueType = type.value.toAtomicType() |
| else: |
| valueType = "OVSDB_TYPE_VOID" |
| txn_write_func = "ovsdb_idl_txn_write" |
| - print " %(f)s(&row->header_, &%(s)s_col_%(c)s, &datum);" \ |
| + print(" %(f)s(&row->header_, &%(s)s_col_%(c)s, &datum);" \ |
| % {'f': txn_write_func, |
| 's': structName, |
| 'S': structName.upper(), |
| - 'c': columnName} |
| - print "}" |
| + 'c': columnName}) |
| + print("}") |
| # Update/Delete of partial map column functions |
| for columnName, column in sorted_columns(table): |
| type = column.type |
| if type.is_map(): |
| - print ''' |
| + print(''' |
| /* Sets an element of the "%(c)s" map column from the "%(t)s" table in 'row' |
| * to 'new_value' given the key value 'new_key'. |
| * |
| @@ -761,17 +762,17 @@ void |
| datum->values = xmalloc(datum->n * sizeof *datum->values); |
| ''' % {'s': structName, 'c': columnName,'coltype':column.type.key.to_const_c_type(prefix), |
| 'valtype':column.type.value.to_const_c_type(prefix), 'S': structName.upper(), |
| - 'C': columnName.upper(), 't': tableName} |
| + 'C': columnName.upper(), 't': tableName}) |
| |
| - print " "+ type.key.copyCValue("datum->keys[0].%s" % type.key.type.to_string(), "new_key") |
| - print " "+ type.value.copyCValue("datum->values[0].%s" % type.value.type.to_string(), "new_value") |
| - print ''' |
| + print(" "+ type.key.copyCValue("datum->keys[0].%s" % type.key.type.to_string(), "new_key")) |
| + print(" "+ type.value.copyCValue("datum->values[0].%s" % type.value.type.to_string(), "new_value")) |
| + print(''' |
| ovsdb_idl_txn_write_partial_map(&row->header_, |
| &%(s)s_col_%(c)s, |
| datum); |
| }''' % {'s': structName, 'c': columnName,'coltype':column.type.key.toCType(prefix), |
| - 'valtype':column.type.value.to_const_c_type(prefix), 'S': structName.upper()} |
| - print ''' |
| + 'valtype':column.type.value.to_const_c_type(prefix), 'S': structName.upper()}) |
| + print(''' |
| /* Deletes an element of the "%(c)s" map column from the "%(t)s" table in 'row' |
| * given the key value 'delete_key'. |
| * |
| @@ -787,19 +788,19 @@ void |
| datum->values = NULL; |
| ''' % {'s': structName, 'c': columnName,'coltype':column.type.key.to_const_c_type(prefix), |
| 'valtype':column.type.value.to_const_c_type(prefix), 'S': structName.upper(), |
| - 'C': columnName.upper(), 't': tableName} |
| + 'C': columnName.upper(), 't': tableName}) |
| |
| - print " "+ type.key.copyCValue("datum->keys[0].%s" % type.key.type.to_string(), "delete_key") |
| - print ''' |
| + print(" "+ type.key.copyCValue("datum->keys[0].%s" % type.key.type.to_string(), "delete_key")) |
| + print(''' |
| ovsdb_idl_txn_delete_partial_map(&row->header_, |
| &%(s)s_col_%(c)s, |
| datum); |
| }''' % {'s': structName, 'c': columnName,'coltype':column.type.key.toCType(prefix), |
| - 'valtype':column.type.value.to_const_c_type(prefix), 'S': structName.upper()} |
| + 'valtype':column.type.value.to_const_c_type(prefix), 'S': structName.upper()}) |
| # End Update/Delete of partial maps |
| # Update/Delete of partial set column functions |
| if type.is_set(): |
| - print ''' |
| + print(''' |
| /* Adds the value 'new_value' to the "%(c)s" set column from the "%(t)s" table |
| * in 'row'. |
| * |
| @@ -814,16 +815,16 @@ void |
| datum->keys = xmalloc(datum->n * sizeof *datum->values); |
| datum->values = NULL; |
| ''' % {'s': structName, 'c': columnName, |
| - 'valtype':column.type.key.to_const_c_type(prefix), 't': tableName} |
| + 'valtype':column.type.key.to_const_c_type(prefix), 't': tableName}) |
| |
| - print " "+ type.key.copyCValue("datum->keys[0].%s" % type.key.type.to_string(), "new_value") |
| - print ''' |
| + print(" "+ type.key.copyCValue("datum->keys[0].%s" % type.key.type.to_string(), "new_value")) |
| + print(''' |
| ovsdb_idl_txn_write_partial_set(&row->header_, |
| &%(s)s_col_%(c)s, |
| datum); |
| }''' % {'s': structName, 'c': columnName,'coltype':column.type.key.toCType(prefix), |
| - 'valtype':column.type.key.to_const_c_type(prefix), 'S': structName.upper()} |
| - print ''' |
| + 'valtype':column.type.key.to_const_c_type(prefix), 'S': structName.upper()}) |
| + print(''' |
| /* Deletes the value 'delete_value' from the "%(c)s" set column from the |
| * "%(t)s" table in 'row'. |
| * |
| @@ -839,15 +840,15 @@ void |
| datum->values = NULL; |
| ''' % {'s': structName, 'c': columnName,'coltype':column.type.key.to_const_c_type(prefix), |
| 'valtype':column.type.key.to_const_c_type(prefix), 'S': structName.upper(), |
| - 'C': columnName.upper(), 't': tableName} |
| + 'C': columnName.upper(), 't': tableName}) |
| |
| - print " "+ type.key.copyCValue("datum->keys[0].%s" % type.key.type.to_string(), "delete_value") |
| - print ''' |
| + print(" "+ type.key.copyCValue("datum->keys[0].%s" % type.key.type.to_string(), "delete_value")) |
| + print(''' |
| ovsdb_idl_txn_delete_partial_set(&row->header_, |
| &%(s)s_col_%(c)s, |
| datum); |
| }''' % {'s': structName, 'c': columnName,'coltype':column.type.key.toCType(prefix), |
| - 'valtype':column.type.key.to_const_c_type(prefix), 'S': structName.upper()} |
| + 'valtype':column.type.key.to_const_c_type(prefix), 'S': structName.upper()}) |
| # End Update/Delete of partial set |
| |
| # Add clause functions. |
| @@ -858,8 +859,8 @@ void |
| column, True, refTable=False) |
| |
| if type.is_smap(): |
| - print comment |
| - print """void |
| + print(comment) |
| + print("""void |
| %(s)s_add_clause_%(c)s(struct ovsdb_idl_condition *cond, enum ovsdb_function function, const struct smap *%(c)s) |
| { |
| struct ovsdb_datum datum; |
| @@ -884,7 +885,7 @@ void |
| 'P': prefix.upper(), |
| 's': structName, |
| 'S': structName.upper(), |
| - 'c': columnName} |
| + 'c': columnName}) |
| continue |
| |
| keyVar = members[0]['name'] |
| @@ -898,73 +899,73 @@ void |
| if len(members) > 1: |
| nVar = members[1]['name'] |
| |
| - print comment |
| - print 'void' |
| - print '%(s)s_add_clause_%(c)s(struct ovsdb_idl_condition *cond, enum ovsdb_function function, %(args)s)' % \ |
| + print(comment) |
| + print('void') |
| + print('%(s)s_add_clause_%(c)s(struct ovsdb_idl_condition *cond, enum ovsdb_function function, %(args)s)' % \ |
| {'s': structName, 'c': columnName, |
| - 'args': ', '.join(['%(type)s%(name)s' % m for m in members])} |
| - print "{" |
| - print " struct ovsdb_datum datum;" |
| + 'args': ', '.join(['%(type)s%(name)s' % m for m in members])}) |
| + print("{") |
| + print(" struct ovsdb_datum datum;") |
| free = [] |
| if type.n_min == 1 and type.n_max == 1: |
| - print " union ovsdb_atom key;" |
| + print(" union ovsdb_atom key;") |
| if type.value: |
| - print " union ovsdb_atom value;" |
| - print |
| - print " datum.n = 1;" |
| - print " datum.keys = &key;" |
| - print " " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), keyVar, refTable=False) |
| + print(" union ovsdb_atom value;") |
| + print("") |
| + print(" datum.n = 1;") |
| + print(" datum.keys = &key;") |
| + print(" " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), keyVar, refTable=False)) |
| if type.value: |
| - print " datum.values = &value;" |
| - print " "+ type.value.assign_c_value_casting_away_const("value.%s" % type.value.type.to_string(), valueVar, refTable=False) |
| + print(" datum.values = &value;") |
| + print(" "+ type.value.assign_c_value_casting_away_const("value.%s" % type.value.type.to_string(), valueVar, refTable=False)) |
| else: |
| - print " datum.values = NULL;" |
| + print(" datum.values = NULL;") |
| elif type.is_optional_pointer(): |
| - print " union ovsdb_atom key;" |
| - print |
| - print " if (%s) {" % keyVar |
| - print " datum.n = 1;" |
| - print " datum.keys = &key;" |
| - print " " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), keyVar, refTable=False) |
| - print " } else {" |
| - print " datum.n = 0;" |
| - print " datum.keys = NULL;" |
| - print " }" |
| - print " datum.values = NULL;" |
| + print(" union ovsdb_atom key;") |
| + print("") |
| + print(" if (%s) {" % keyVar) |
| + print(" datum.n = 1;") |
| + print(" datum.keys = &key;") |
| + print(" " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), keyVar, refTable=False)) |
| + print(" } else {") |
| + print(" datum.n = 0;") |
| + print(" datum.keys = NULL;") |
| + print(" }") |
| + print(" datum.values = NULL;") |
| elif type.n_max == 1: |
| - print " union ovsdb_atom key;" |
| - print |
| - print " if (%s) {" % nVar |
| - print " datum.n = 1;" |
| - print " datum.keys = &key;" |
| - print " " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), "*" + keyVar, refTable=False) |
| - print " } else {" |
| - print " datum.n = 0;" |
| - print " datum.keys = NULL;" |
| - print " }" |
| - print " datum.values = NULL;" |
| + print(" union ovsdb_atom key;") |
| + print("") |
| + print(" if (%s) {" % nVar) |
| + print(" datum.n = 1;") |
| + print(" datum.keys = &key;") |
| + print(" " + type.key.assign_c_value_casting_away_const("key.%s" % type.key.type.to_string(), "*" + keyVar, refTable=False)) |
| + print(" } else {") |
| + print(" datum.n = 0;") |
| + print(" datum.keys = NULL;") |
| + print(" }") |
| + print(" datum.values = NULL;") |
| else: |
| - print " datum.n = %s;" % nVar |
| - print " datum.keys = %s ? xmalloc(%s * sizeof *datum.keys) : NULL;" % (nVar, nVar) |
| + print(" datum.n = %s;" % nVar) |
| + print(" datum.keys = %s ? xmalloc(%s * sizeof *datum.keys) : NULL;" % (nVar, nVar)) |
| free += ['datum.keys'] |
| if type.value: |
| - print " datum.values = xmalloc(%s * sizeof *datum.values);" % nVar |
| + print(" datum.values = xmalloc(%s * sizeof *datum.values);" % nVar) |
| free += ['datum.values'] |
| else: |
| - print " datum.values = NULL;" |
| - print " for (size_t i = 0; i < %s; i++) {" % nVar |
| - print " " + type.key.assign_c_value_casting_away_const("datum.keys[i].%s" % type.key.type.to_string(), "%s[i]" % keyVar, refTable=False) |
| + print(" datum.values = NULL;") |
| + print(" for (size_t i = 0; i < %s; i++) {" % nVar) |
| + print(" " + type.key.assign_c_value_casting_away_const("datum.keys[i].%s" % type.key.type.to_string(), "%s[i]" % keyVar, refTable=False)) |
| if type.value: |
| - print " " + type.value.assign_c_value_casting_away_const("datum.values[i].%s" % type.value.type.to_string(), "%s[i]" % valueVar, refTable=False) |
| - print " }" |
| + print(" " + type.value.assign_c_value_casting_away_const("datum.values[i].%s" % type.value.type.to_string(), "%s[i]" % valueVar, refTable=False)) |
| + print(" }") |
| if type.value: |
| valueType = type.value.toAtomicType() |
| else: |
| valueType = "OVSDB_TYPE_VOID" |
| - print " ovsdb_datum_sort_unique(&datum, %s, %s);" % ( |
| - type.key.toAtomicType(), valueType) |
| + print(" ovsdb_datum_sort_unique(&datum, %s, %s);" % ( |
| + type.key.toAtomicType(), valueType)) |
| |
| - print""" ovsdb_idl_condition_add_clause(cond, |
| + print(""" ovsdb_idl_condition_add_clause(cond, |
| function, |
| &%(s)s_col_%(c)s, |
| &datum);\ |
| @@ -974,28 +975,28 @@ void |
| 'P': prefix.upper(), |
| 's': structName, |
| 'S': structName.upper(), |
| - 'c': columnName} |
| + 'c': columnName}) |
| for var in free: |
| - print " free(%s);" % var |
| - print "}" |
| + print(" free(%s);" % var) |
| + print("}") |
| |
| - print """ |
| + print(""" |
| void |
| %(s)s_set_condition(struct ovsdb_idl *idl, struct ovsdb_idl_condition *condition) |
| { |
| ovsdb_idl_set_condition(idl, &%(p)stable_%(tl)s, condition); |
| }""" % {'p': prefix, |
| 's': structName, |
| - 'tl': tableName.lower()} |
| + 'tl': tableName.lower()}) |
| |
| # Table columns. |
| for columnName, column in sorted_columns(table): |
| prereqs = [] |
| x = column.type.cInitType("%s_col_%s" % (tableName, columnName), prereqs) |
| if prereqs: |
| - print '\n'.join(prereqs) |
| - print "\nstruct ovsdb_idl_column %s_columns[%s_N_COLUMNS] = {" % ( |
| - structName, structName.upper()) |
| + print('\n'.join(prereqs)) |
| + print("\nstruct ovsdb_idl_column %s_columns[%s_N_COLUMNS] = {" % ( |
| + structName, structName.upper())) |
| for columnName, column in sorted_columns(table): |
| if column.mutable: |
| mutable = "true" |
| @@ -1003,7 +1004,7 @@ void |
| mutable = "false" |
| type_init = '\n'.join(" " + x |
| for x in column.type.cInitType("%s_col_%s" % (tableName, columnName), prereqs)) |
| - print """\ |
| + print("""\ |
| [%(P)s%(T)s_COL_%(C)s] = { |
| .name = "%(c)s", |
| .type = { |
| @@ -1018,38 +1019,38 @@ void |
| 'C': columnName.upper(), |
| 's': structName, |
| 'mutable': mutable, |
| - 'type': type_init} |
| - print "};" |
| + 'type': type_init}) |
| + print("};") |
| |
| # Table classes. |
| - print "" |
| - print "struct ovsdb_idl_table_class %stable_classes[%sN_TABLES] = {" % (prefix, prefix.upper()) |
| + print("") |
| + print("struct ovsdb_idl_table_class %stable_classes[%sN_TABLES] = {" % (prefix, prefix.upper())) |
| for tableName, table in sorted(schema.tables.iteritems()): |
| structName = "%s%s" % (prefix, tableName.lower()) |
| if table.is_root: |
| is_root = "true" |
| else: |
| is_root = "false" |
| - print " {\"%s\", %s," % (tableName, is_root) |
| - print " %s_columns, ARRAY_SIZE(%s_columns)," % ( |
| - structName, structName) |
| - print " sizeof(struct %s), %s_init__}," % (structName, structName) |
| - print "};" |
| + print(" {\"%s\", %s," % (tableName, is_root)) |
| + print(" %s_columns, ARRAY_SIZE(%s_columns)," % ( |
| + structName, structName)) |
| + print(" sizeof(struct %s), %s_init__}," % (structName, structName)) |
| + print("};") |
| |
| # IDL class. |
| - print "\nstruct ovsdb_idl_class %sidl_class = {" % prefix |
| - print " \"%s\", %stable_classes, ARRAY_SIZE(%stable_classes)" % ( |
| - schema.name, prefix, prefix) |
| - print "};" |
| + print("\nstruct ovsdb_idl_class %sidl_class = {" % prefix) |
| + print(" \"%s\", %stable_classes, ARRAY_SIZE(%stable_classes)" % ( |
| + schema.name, prefix, prefix)) |
| + print("};") |
| |
| - print """ |
| + print(""" |
| /* Return the schema version. The caller must not free the returned value. */ |
| const char * |
| %sget_db_version(void) |
| { |
| return "%s"; |
| } |
| -""" % (prefix, schema.version) |
| +""" % (prefix, schema.version)) |
| |
| |
| |
| @@ -1075,7 +1076,7 @@ def ovsdb_escape(string): |
| return re.sub(r'["\\\000-\037]', escape, string) |
| |
| def usage(): |
| - print """\ |
| + print("""\ |
| %(argv0)s: ovsdb schema compiler |
| usage: %(argv0)s [OPTIONS] COMMAND ARG... |
| |
| @@ -1087,7 +1088,7 @@ The following commands are supported: |
| The following options are also available: |
| -h, --help display this help message |
| -V, --version display version information\ |
| -""" % {'argv0': argv0} |
| +""" % {'argv0': argv0}) |
| sys.exit(0) |
| |
| if __name__ == "__main__": |
| @@ -1105,7 +1106,7 @@ if __name__ == "__main__": |
| if key in ['-h', '--help']: |
| usage() |
| elif key in ['-V', '--version']: |
| - print "ovsdb-idlc (Open vSwitch) @VERSION@" |
| + print("ovsdb-idlc (Open vSwitch) @VERSION@") |
| elif key in ['-C', '--directory']: |
| os.chdir(value) |
| else: |