Byron Clark avatar Byron Clark committed 7acd21e

Greatly simplify the handleable check.

The DeviceIsSystemInternal actually checks what we really want: that a disk is
removable or on a bus that implies removability.

fixes #8

Comments (0)

Files changed (1)

udiskie/device.py

     def partition_slave(self):
         return self._get_property('PartitionSlave')
 
-    def is_removable(self):
-        """Is the device removable?
-
-        Also checks parent devices recursively because udisks doesn't report a
-        partition on a removable device as removable."""
-        if self._get_property('DeviceIsRemovable'):
-            return True
-        elif self.is_partition():
-            parent = Device(self.bus, self.partition_slave())
-            return parent.is_removable()
-        else:
-            return False
-
     def is_partition_table(self):
         return self._get_property('DeviceIsPartitionTable')
 
-    def is_partition(self):
-        return self._get_property('DeviceIsPartition')
-
     def is_systeminternal(self):
         return self._get_property('DeviceIsSystemInternal')
 
-    def is_opticaldisc(self):
-        return self._get_property('DeviceIsOpticalDisc')
-
-    def is_hasmedia(self):
-        return self._get_property('DeviceIsMediaAvailable')
-
     def is_handleable(self):
         """Should this device be handled by udiskie?
 
         Currently this just means that the device is removable and holds a
         filesystem."""
 
-        if self.is_systeminternal():
+        if self.is_filesystem() and not self.is_systeminternal():
+            return True
+        else:
             return False
 
-        if self.is_partition_table():
-            return False
-
-        if self.is_opticaldisc():
-            if self.is_hasmedia() and self.is_filesystem():
-                return True
-            else:
-                return False
-
-        if self.is_removable():
-            if self.is_filesystem():
-                return True
-            else:
-                return False
-
-        return False
-
     def is_mounted(self):
         return self._get_property('DeviceIsMounted')
 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.