<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def open( self, fs_url, # type: Text writeable=True, # type: bool create=False, # type: bool cwd=".", # type: Text default_protocol="osfs", # type: Text ):
 """Open a filesystem from a FS URL. Returns a tuple of a filesystem object and a path. If there is no path in the FS URL, the path value will be `None`. Arguments: fs_url (str):
 A filesystem URL. writeable (bool, optional):
 `True` if the filesystem must be writeable. create (bool, optional):
 `True` if the filesystem should be created if it does not exist. cwd (str):
 The current working directory. Returns: (FS, str):
 a tuple of ``(<filesystem>, <path from url>)`` """

        if "://" not in fs_url:
            # URL may just be a path
            fs_url = "{}://{}".format(default_protocol, fs_url)

        parse_result = parse_fs_url(fs_url)
        protocol = parse_result.protocol
        open_path = parse_result.path

        opener = self.get_opener(protocol)

        open_fs = opener.open_fs(fs_url, parse_result, writeable, create, cwd)
        return open_fs, open_path