diff --git a/ether/cell.py b/ether/cell.py index 5aa6385..8404f21 100644 --- a/ether/cell.py +++ b/ether/cell.py @@ -166,7 +166,14 @@ def materialize(self, topology: Topology, parent=None): class GeoCell(Cell): - def __init__(self, size, density, nodes) -> None: + def __init__(self, density, nodes, size: int = 1) -> None: + """ + Initializes the GeoCell :param density: int or Randomsampler. Used to divide the nodes in the cells :param + nodes: nodes the GeoCell will contain :param size: Number of times GeoCell will iterate over the nodes when + materializing. ATTENTION: If you want to supply your own nodes that aren't themselves generators, + this must be 1, since otherwise materialize will be called n times on your nodes, depending on what size you + choose + """ super().__init__(nodes, size) if isinstance(density, int): self.density = ConstantSampler(density) @@ -176,7 +183,7 @@ def __init__(self, size, density, nodes) -> None: raise ValueError('unknown density type %s' % type(density)) def materialize(self, topology: Topology, parent=None): - for i in range(self.size): + for _ in range(self.size): n = self.density.sample() for c in self.nodes: diff --git a/ether/scenarios/urbansensing.py b/ether/scenarios/urbansensing.py index 12ca524..480709f 100644 --- a/ether/scenarios/urbansensing.py +++ b/ether/scenarios/urbansensing.py @@ -51,7 +51,7 @@ def create_city(self) -> GeoCell: backhaul=MobileConnection(self.internet) ) - city = GeoCell(self.num_cells, nodes=[neighborhood], density=self.cell_density) + city = GeoCell(size=self.num_cells, nodes=[neighborhood], density=self.cell_density) return city diff --git a/examples/urbansensing.py b/examples/urbansensing.py index c3cbc46..e644c86 100644 --- a/examples/urbansensing.py +++ b/examples/urbansensing.py @@ -32,7 +32,7 @@ def main(): shared_bandwidth=500, backhaul=MobileConnection('internet_chix')) city = GeoCell( - 5, nodes=[neighborhood], density=lognorm((0.82, 2.02))) + size=5, nodes=[neighborhood], density=lognorm((0.82, 2.02))) cloudlet = Cloudlet( 5, 2, backhaul=FiberToExchange('internet_chix')) diff --git a/examples/vivaldi/urban_sensing.py b/examples/vivaldi/urban_sensing.py index d6ee69a..4526850 100644 --- a/examples/vivaldi/urban_sensing.py +++ b/examples/vivaldi/urban_sensing.py @@ -47,7 +47,7 @@ def create_edge_broker() -> Broker: nodes=[[aot_node] * size, [edge_broker_factory_with_region(region)]], backhaul=MobileConnection(region) ) - city = GeoCell(5, nodes=[neighborhood], density=lognorm((0.82, 2.02))) + city = GeoCell(size=5, nodes=[neighborhood], density=lognorm((0.82, 2.02))) topology.add(city) broker = Broker(f'cloud-broker_{region}', backhaul=region)