# Buggy code
def _transfer_transBlock_data(self, fromBlock, toBlock):
    # We know that we have a list of transformed disjuncts on both. We need
    # to move those over. Then there might be constraints on the block also
    # (at this point only the diaggregation constraints from chull,
    # but... I'll leave it general for now.
    disjunctList = toBlock.relaxedDisjuncts
    for idx, disjunctBlock in iteritems(fromBlock.relaxedDisjuncts):
        # TODO [ESJ 07/18/2019] John! I thought you said something like this
        # would work?
        # newblock = disjunctList[len(disjunctList)] = disjunctBlock
        # Try:
        # disjunctList[len(disjunctList)] = disjunctBlock
        # newblock = disjunctList[len(disjunctList)-1]
        # I'm just hacking for now because I am confused:
        newblock = disjunctList[len(disjunctList)]
        self._copy_to_block(disjunctBlock, newblock)
        # update the mappings
        original = disjunctBlock._srcDisjunct()
        original._transformation_block = weakref_ref(newblock)
        newblock._srcDisjunct = weakref_ref(original)

    # move any constraints. I'm assuming they are all just on the
    # transformation block right now, because that is in our control and I
    # can't think why we would do anything messier at the moment. (And I
    # don't want to descend into Blocks because we already handled the
    # above).
    for cons in fromBlock.component_data_objects(Constraint):
        toBlock.add_component(unique_component_name(cons.name, toBlock), cons)


# Traceback (TypeError)
Traceback (most recent call last):
File "blockSetValue.py", line 11, in <module>
m.block_list[1] = movingBlock
File "/home/esjohn/src/pyomo/pyomo/core/base/indexed_component.py", line 412, in __setitem__
return self._setitem_when_not_present(index, val)
File "/home/esjohn/src/pyomo/pyomo/core/base/indexed_component.py", line 675, in _setitem_when_not_present
obj.set_value(value)
File "/home/esjohn/src/pyomo/pyomo/core/base/block.py", line 711, in set_value
self.add_component(k,val[k])
File "/home/esjohn/src/pyomo/pyomo/core/base/block.py", line 923, in add_component
super(_BlockData, self).__setattr__(name, val)
TypeError: attribute name must be string, not 'NoneType'

# Fixed code
def _transfer_transBlock_data(self, fromBlock, toBlock):
    # We know that we have a list of transformed disjuncts on both. We need
    # to move those over. Then there might be constraints on the block also
    # (at this point only the diaggregation constraints from chull,
    # but... I'll leave it general for now.
    disjunctList = toBlock.relaxedDisjuncts
    for idx, disjunctBlock in iteritems(fromBlock.relaxedDisjuncts):
        # I think this should work when #1106 is resolved:
        # disjunctList[len(disjunctList)] = disjunctBlock
        # newblock = disjunctList[len(disjunctList)-1]

        # HACK in the meantime:
        newblock = disjunctList[len(disjunctList)]
        self._copy_to_block(disjunctBlock, newblock)

        # update the mappings
        original = disjunctBlock._srcDisjunct()
        original._transformation_block = weakref_ref(newblock)
        newblock._srcDisjunct = weakref_ref(original)

    # move any constraints. I'm assuming they are all just on the
    # transformation block right now, because that is in our control and I
    # can't think why we would do anything messier at the moment. (And I
    # don't want to descend into Blocks because we already handled the
    # above).
    for cons in fromBlock.component_data_objects(Constraint):
        toBlock.add_component(unique_component_name(cons.name, toBlock), cons)