def generate_vms_by_range(vm_configuration): validate_vm_block_numbers( tuple(block_number for block_number, _ in vm_configuration)) # Organize the Chain classes by their starting blocks. vms_by_range = collections.OrderedDict( sorted(vm_configuration, key=operator.itemgetter(0))) return vms_by_range
def generate_vms_by_range(vm_configuration): validate_vm_block_numbers(tuple( block_number for block_number, _ in vm_configuration )) # Organize the Chain classes by their starting blocks. vms_by_range = collections.OrderedDict( sorted(vm_configuration, key=operator.itemgetter(0)) ) return vms_by_range
def configure(cls, name=None, vm_configuration=None): if vm_configuration is None: vms_by_range = cls.vms_by_range else: # Organize the EVM classes by their starting blocks. validate_vm_block_numbers( tuple(block_number for block_number, _ in vm_configuration)) vms_by_range = collections.OrderedDict( sorted(vm_configuration, key=itemgetter(0))) if name is None: name = cls.__name__ props = { 'vms_by_range': vms_by_range, } return type(name, (cls, ), props)
def configure(cls, name, vm_configuration, **overrides): if 'vms_by_range' in overrides: raise ValueError("Cannot override vms_by_range.") for key in overrides: if not hasattr(cls, key): raise TypeError( "The Chain.configure cannot set attributes that are not " "already present on the base class. The attribute `{0}` was " "not found on the base class `{1}`".format(key, cls) ) validate_vm_block_numbers(tuple( block_number for block_number, _ in vm_configuration )) # Organize the Chain classes by their starting blocks. overrides['vms_by_range'] = collections.OrderedDict( sorted(vm_configuration, key=itemgetter(0))) return type(name, (cls,), overrides)
def test_validate_vm_block_numbers(vm_block_numbers, is_valid): if is_valid: validate_vm_block_numbers(vm_block_numbers) else: with pytest.raises(ValidationError): validate_vm_block_numbers(vm_block_numbers)
def test_validate_vm_block_numbers(vm_block_numbers, is_valid): if is_valid: validate_vm_block_numbers(vm_block_numbers) else: with pytest.raises(ValidationError): validate_vm_block_numbers(vm_block_numbers)