The recommended way of retrieving an item by key when extending configmanager's behaviour.
        Attribute and dictionary key access is configurable and may not always return items
        (see PlainConfig for example), whereas this method will always return the corresponding
        Item as long as NOT_FOUND hook callbacks don't break this convention.

        Args:
            *key

        Returns:
            item (:class:`.Item`):

def get_item(self, *key):
        """
        The recommended way of retrieving an item by key when extending configmanager's behaviour.
        Attribute and dictionary key access is configurable and may not always return items
        (see PlainConfig for example), whereas this method will always return the corresponding
        Item as long as NOT_FOUND hook callbacks don't break this convention.

        Args:
            *key

        Returns:
            item (:class:`.Item`):
        """
        item = self._get_item_or_section(key)
        if not item.is_item:
            raise RuntimeError('{} is a section, not an item'.format(key))
        return item