Files
CursoPythonDavidBombal/m01b_intermediate/l_14_tuples.py
Antonio Torres Míguez 0ba559cb48 Actualización de proyecto
2021-01-19 19:49:55 +01:00

49 lines
1.8 KiB
Python

from util.create_utils import create_devices
from pprint import pprint
from collections import namedtuple
# --- Main program --------------------------------------------
if __name__ == '__main__':
devices = tuple(create_devices(num_devices=4, num_subnets=1))
print("\n----- TUPLE OF DEVICES --------------------")
pprint(devices)
print("\n----- DEVICE AS TUPLE --------------------")
device = ("sbx-n9kv-ao", "cisco", "Nexus9000 C9300v Chassis", "nxos", "10.0.1.1")
print(" name:", device[0])
print("vendor:", device[1])
print(" model:", device[2])
print(" os:", device[3])
print(" ip:", device[4])
print("\n----- DEVICE AS NAMED TUPLE --------------------")
Device = namedtuple('Device', ['name', 'vendor', 'model', 'os', 'ip'])
device = Device("sbx-n9kv-ao", "cisco", "Nexus9000 C9300v Chassis", "nxos", "10.0.1.1")
print(" name:", device.name)
print("vendor:", device.vendor)
print(" model:", device.model)
print(" os:", device.os)
print(" ip:", device.ip)
print("\n----- PPRINT OF DEVICE NAMED TUPLE --------------------")
pprint(device)
print("\n----- CONVERT DEVICES TO NAMED TUPLES --------------------")
devices = create_devices(num_devices=10, num_subnets=2, random_ip=True)
devices_as_namedtuples = list()
for device in devices:
Device = namedtuple("Device", device.keys())
devices_as_namedtuples.append(Device(**device))
print("\n----- PPRINT VERSION OF DEVICES AS NAMED TUPLES --------------------")
pprint(devices_as_namedtuples)
print("\n----- NICELY FORMATTED --------------------\n")
print(" NAME VENDOR : OS IP ADDRESS")
print(" ----- ------- ----- --------------")
for device in devices_as_namedtuples:
print(f'{device.name:>7} {device.vendor:>10} : {device.os:<6} {device.ip:<15}')