<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _set_actual_container(self):
 """ Set the actual container, based on the specified container format. If the container format is not specified, infer it from the (lowercased) extension of the file path. If the format cannot be inferred, it is assumed to be of type :class:`~aeneas.container.ContainerFormat.UNPACKED` (unpacked directory). """

        # infer container format
        if self.container_format is None:
            self.log(u"Inferring actual container format...")
            path_lowercased = self.file_path.lower()
            self.log([u"Lowercased file path: '%s'", path_lowercased])
            self.container_format = ContainerFormat.UNPACKED
            for fmt in ContainerFormat.ALLOWED_FILE_VALUES:
                if path_lowercased.endswith(fmt):
                    self.container_format = fmt
                    break
            self.log(u"Inferring actual container format... done")
            self.log([u"Inferred format: '%s'", self.container_format])

        # set the actual container
        self.log(u"Setting actual container...")
        class_map = {
            ContainerFormat.ZIP: (_ContainerZIP, None),
            ContainerFormat.EPUB: (_ContainerZIP, None),
            ContainerFormat.TAR: (_ContainerTAR, ""),
            ContainerFormat.TAR_GZ: (_ContainerTAR, ":gz"),
            ContainerFormat.TAR_BZ2: (_ContainerTAR, ":bz2"),
            ContainerFormat.UNPACKED: (_ContainerUnpacked, None)
        }
        actual_class, variant = class_map[self.container_format]
        self.actual_container = actual_class(
            file_path=self.file_path,
            variant=variant,
            rconf=self.rconf,
            logger=self.logger
        )
        self.log([u"Actual container format: '%s'", self.container_format])
        self.log(u"Setting actual container... done")