<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def pull(self, datafile: str = ''):
 """Pull the content from the JSON and memorize one. Opens JSON file ``file`` in the folder ``data/locale`` and get content from the file and memorize ones using lru_cache. :param datafile: The name of file. :return: The content of the file. :raises UnsupportedLocale: if locale is not supported. """

        locale = self.locale
        data_dir = self._data_dir

        if not datafile:
            datafile = self._datafile

        def get_data(locale_name: str) -> JSON:
            """Pull JSON data from file.

            :param locale_name: Locale name.
            :return: Content of JSON file as dict.
            """
            file_path = Path(data_dir).joinpath(locale_name, datafile)
            with open(file_path, 'r', encoding='utf8') as f:
                return json.load(f)

        separator = locales.LOCALE_SEPARATOR

        master_locale = locale.split(separator).pop(0)
        data = get_data(master_locale)

        if separator in locale:
            data = self._update_dict(data, get_data(locale))

        self._data = data