import ctypes
import os
import platform
import random
import string
import sys
APPNAME = 'audiolab'
[docs]def get_appdir():
if sys.platform == 'win32':
appdir = os.path.join(os.environ['APPDATA'], APPNAME)
else:
appdir = os.path.expanduser(os.path.join("~", "." + APPNAME))
return appdir
[docs]def get_project_directory():
return os.path.abspath(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
[docs]def get_src_directory():
return os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
[docs]def get_free_mb(folder):
""" Return folder/drive free space (in bytes)
"""
if platform.system() == 'Windows':
free_bytes = ctypes.c_ulonglong(0)
ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(folder), None, None, ctypes.pointer(free_bytes))
return free_bytes.value/1024/1024
else:
st = os.statvfs(folder)
return st.f_bavail * st.f_frsize/1024/1024
[docs]def get_drives():
if platform.system() == 'Windows':
return ['C:\\', 'D:\\']
else:
return ['/home']
[docs]def rand_id():
chars = string.ascii_uppercase + string.digits
return ''.join(random.choice(chars) for x in range(4))