PyADB : Python wrapper on ADB
I designed a wrapper for ADB in Python. See it in Action:

Code Sample:
For listing connected USB devices, the most widely used command for adb, I had to consider different path definition for different OS.
def list_devices():
global ADB_COMMAND
platform_system = platform.system()
if platform_system == 'Windows':
pwd = os.popen("cd").read().strip()
ADB_COMMAND = WINDOWS_ADB.format(CURRENT_DIR=pwd) + 'adb.exe'
elif platform_system == 'Darwin':
os.popen('chmod 700 ' + MACOS_ADB + 'adb')
ADB_COMMAND = MACOS_ADB + 'adb'
elif platform_system == 'Linux':
os.popen('chmod 700 ' + LINUX_ADB + 'adb')
ADB_COMMAND = LINUX_ADB + 'adb'
else:
exit()
adb_devs = os.popen(ADB_COMMAND + " devices").read()
serials = re.findall("[0-9A-Z]{6,20}", adb_devs)
devices = []
for sl in serials:
model_ = os.popen(f'{ADB_COMMAND} -s {sl} shell getprop ro.product.model').read().strip()
devices.append(sl + " " + model_)
return devices