in path_utils.py [0:0]
def top_level_folder(p: str, windows: Optional[bool] = None) -> str:
r"""
Gets the top-level folder from path [p].
This function behaves differently for Windows vs. Unix paths. Set
windows=True if [p] is a Windows path. Set windows=None (default) to treat
[p] as a native system path.
On Windows, will use the top-level folder that isn't the drive.
>>> top_level_folder(r'c:\blah\foo')
'c:\blah'
On Unix, does not include the leaf node.
>>> top_level_folder('/blah/foo')
'/blah'
"""
if p == '':
return ''
default_lib = os.path # save default os.path
if windows is not None:
os.path = ntpath if windows else posixpath
# Path('/blah').parts is ('/', 'blah')
parts = split_path(p)
drive = os.path.splitdrive(p)[0]
if len(parts) > 1 and (
parts[0] == drive
or parts[0] == drive + '/'
or parts[0] == drive + '\\'
or parts[0] in ['\\', '/']):
result = os.path.join(parts[0], parts[1])
else:
result = parts[0]
os.path = default_lib # restore default os.path
return result