[PATCH] libosmocore[master]: utils/conv_gen.py: improve output formatting

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Vadim Yanitskiy gerrit-no-reply at lists.osmocom.org
Tue Oct 18 17:07:38 UTC 2016


Hello Harald Welte, Jenkins Builder,

I'd like you to reexamine a change.  Please visit

    https://gerrit.osmocom.org/829

to look at the new patch set (#7).

utils/conv_gen.py: improve output formatting

To keep the generated tables readable, line with should be limited.
So, now there are the following limitations:

 - _print_term(): up to 12 numbers per line,
 - _print_puncture(): up to 12 numbers per line,
 - _print_x(): up to 4 blocks per line.

Change-Id: I95256c4ad402a3c088bdb6c5a5cda8b17c31881c
---
M src/gsm/Makefile.am
M utils/conv_gen.py
2 files changed, 34 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/29/829/7

diff --git a/src/gsm/Makefile.am b/src/gsm/Makefile.am
index d60e60e..3877f78 100644
--- a/src/gsm/Makefile.am
+++ b/src/gsm/Makefile.am
@@ -35,3 +35,5 @@
 # Convolutional codes generation
 gsm0503_conv.c:
 	$(AM_V_GEN)python2 $(top_srcdir)/utils/conv_gen.py
+
+CLEANFILES = gsm0503_conv.c
diff --git a/utils/conv_gen.py b/utils/conv_gen.py
index 38ea63b..4b42378 100644
--- a/utils/conv_gen.py
+++ b/utils/conv_gen.py
@@ -129,17 +129,23 @@
 		return ns, nb
 
 	def _print_term(self, fi, num_states, pack = False):
+		items = []
 		d = []
+
 		for state in range(num_states):
 			if pack:
 				x = pack(self.next_term_output(state))
 			else:
 				x = self.next_term_state(state)
 
-			d.append("%d, " % x)
-		print >>fi, "\t%s" % ''.join(d)
+			items.append(x)
+
+		# Up to 12 numbers should be placed per line
+		print_formatted(items, "%3d, ", 12, fi)
 
 	def _print_x(self, fi, num_states, pack = False):
+		items = []
+
 		for state in range(num_states):
 			if pack:
 				x0 = pack(self.next_output(state, 0))
@@ -148,7 +154,14 @@
 				x0 = self.next_state(state, 0)
 				x1 = self.next_state(state, 1)
 
-			print >>fi, "\t{ %2d, %2d }," % (x0, x1)
+			items.append((x0, x1))
+
+		# Up to 4 blocks should be placed per line
+		print_formatted(items, "{ %2d, %2d }, ", 4, fi)
+
+	def _print_puncture(self, fi):
+		# Up to 12 numbers should be placed per line
+		print_formatted(self.puncture, "%3d, ", 12, fi)
 
 	def gen_tables(self, pref, fi):
 		pack = lambda n: \
@@ -175,8 +188,7 @@
 
 		if len(self.puncture):
 			print >>fi, "\nstatic const int %s_puncture[] = {" % self.name
-			for p in self.puncture:
-				print >>fi, "\t%d," % p
+			self._print_puncture(fi)
 			print >>fi, "};"
 
 		# Write description as a multi-line comment
@@ -207,6 +219,21 @@
 	fn_xor = lambda x, y: x ^ y
 	return reduce(fn_xor, [(x >> n) & 1 for n in range(nb)])
 
+def print_formatted(items, format, count, fi):
+	counter = 0
+
+	# Print initial indent
+	fi.write("\t")
+
+	for item in items:
+		if counter > 0 and counter % count == 0:
+			fi.write("\n\t")
+
+		fi.write(format % item)
+		counter += 1
+
+	fi.write("\n")
+
 # Polynomials according to 3GPP TS 05.03 Annex B
 G0 = poly(0, 3, 4)
 G1 = poly(0, 1, 3, 4)

-- 
To view, visit https://gerrit.osmocom.org/829
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I95256c4ad402a3c088bdb6c5a5cda8b17c31881c
Gerrit-PatchSet: 7
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Owner: Vadim Yanitskiy <axilirator at gmail.com>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr at sysmocom.de>



More information about the gerrit-log mailing list