From 5f53f5bbf0df72a67bddfc4815a1da7301dd46db Mon Sep 17 00:00:00 2001 From: Nils Gillmann Date: Thu, 17 May 2018 14:52:33 +0000 Subject: 2to3 lint in consensus-simulation, sed the python location. Signed-off-by: Nils Gillmann --- src/consensus/Makefile.am | 18 +++++- src/consensus/consensus-simulation.py | 108 ------------------------------- src/consensus/consensus-simulation.py.in | 106 ++++++++++++++++++++++++++++++ 3 files changed, 123 insertions(+), 109 deletions(-) delete mode 100644 src/consensus/consensus-simulation.py create mode 100644 src/consensus/consensus-simulation.py.in (limited to 'src') diff --git a/src/consensus/Makefile.am b/src/consensus/Makefile.am index c0205ee5d..c673e0407 100644 --- a/src/consensus/Makefile.am +++ b/src/consensus/Makefile.am @@ -27,6 +27,15 @@ libexec_PROGRAMS += \ gnunet-service-evil-consensus endif +do_subst = $(SED) -e 's,[@]PYTHON[@],$(PYTHON),g' + +SUFFIXES = .py.in .py + +.py.in.py: + $(do_subst) < $< > $@ + chmod +x $@ + + lib_LTLIBRARIES = \ libgnunetconsensus.la @@ -103,5 +112,12 @@ test_consensus_api_LDADD = \ $(top_builddir)/src/testing/libgnunettesting.la \ libgnunetconsensus.la +noinst_SCRIPTS = \ + consensus-simulation.py + +CLEANFILES = \ + $(noinst_SCRIPTS) + EXTRA_DIST = \ - test_consensus.conf + test_consensus.conf \ + consensus-simulation.py.in diff --git a/src/consensus/consensus-simulation.py b/src/consensus/consensus-simulation.py deleted file mode 100644 index 542fe0dac..000000000 --- a/src/consensus/consensus-simulation.py +++ /dev/null @@ -1,108 +0,0 @@ -#!/usr/bin/python -# This file is part of GNUnet -# (C) 2013 Christian Grothoff (and other contributing authors) -# -# GNUnet is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published -# by the Free Software Foundation; either version 2, or (at your -# option) any later version. -# -# GNUnet is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNUnet; see the file COPYING. If not, write to the -# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. - -from __future__ import absolute_import -from __future__ import print_function -import argparse -import random -from math import ceil,log,floor - - -def bsc(n): - """ count the bits set in n""" - l = n.bit_length() - c = 0 - x = 1 - for _ in range(0, l): - if n & x: - c = c + 1 - x = x << 1 - return c - - -def simulate(k, n, verbose): - assert k < n - largest_arc = int(2**ceil(log(n, 2))) / 2 - num_ghosts = (2 * largest_arc) - n - if verbose: - print "we have", num_ghosts, "ghost peers" - # n.b. all peers with idx 1: - print "type of", str(peer_physical) + ":", peer_type - info = new_info - arc = arc << 1; - rounds = rounds + 1 - random.shuffle(peers) - return rounds - - -if __name__ == "__main__": - parser = argparse.ArgumentParser() - parser.add_argument("k", metavar="k", type=int, help="#(bad peers)") - parser.add_argument("n", metavar="n", type=int, help="#(all peers)") - parser.add_argument("r", metavar="r", type=int, help="#(rounds)") - parser.add_argument('--verbose', '-v', action='count') - - args = parser.parse_args() - sum = 0.0; - for n in xrange (0, args.r): - sum += simulate(args.k, args.n, args.verbose) - printsum / args.r; - - diff --git a/src/consensus/consensus-simulation.py.in b/src/consensus/consensus-simulation.py.in new file mode 100644 index 000000000..71a91302e --- /dev/null +++ b/src/consensus/consensus-simulation.py.in @@ -0,0 +1,106 @@ +#!@PYTHON@ +# This file is part of GNUnet +# (C) 2013, 2018 Christian Grothoff (and other contributing authors) +# +# GNUnet is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published +# by the Free Software Foundation; either version 2, or (at your +# option) any later version. +# +# GNUnet is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNUnet; see the file COPYING. If not, write to the +# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. + +from __future__ import absolute_import +from __future__ import print_function +import argparse +import random +from math import ceil,log,floor + + +def bsc(n): + """ count the bits set in n""" + l = n.bit_length() + c = 0 + x = 1 + for _ in range(0, l): + if n & x: + c = c + 1 + x = x << 1 + return c + + +def simulate(k, n, verbose): + assert k < n + largest_arc = int(2**ceil(log(n, 2))) / 2 + num_ghosts = (2 * largest_arc) - n + if verbose: + print("we have", num_ghosts, "ghost peers") + # n.b. all peers with idx 1: + print("type of", str(peer_physical) + ":", peer_type) + info = new_info + arc = arc << 1; + rounds = rounds + 1 + random.shuffle(peers) + return rounds + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("k", metavar="k", type=int, help="#(bad peers)") + parser.add_argument("n", metavar="n", type=int, help="#(all peers)") + parser.add_argument("r", metavar="r", type=int, help="#(rounds)") + parser.add_argument('--verbose', '-v', action='count') + + args = parser.parse_args() + sum = 0.0; + for n in xrange (0, args.r): + sum += simulate(args.k, args.n, args.verbose) + print(sum / args.r) -- cgit v1.2.3