Repository: ManiacalLabs/BiblioPixel
Pull request #188 (2017-05-13 12:53:58)

Renaming and fix a problem in animation/receiver.py.

adammhaile: Damn... talk about breaking changes :P A begrudging +1
rec: I originally thought of doing this four months ago.  :-D

It was only when I did the docs that I became convinced of this...

On Sat, May 13, 2017 at 2:59 PM, Adam Haile <notifications@github.com>
wrote:

> Damn... talk about breaking changes :P A begrudging +1
>
> —
> You are receiving this because you authored the thread.
> Reply to this email directly, view it on GitHub
> <https://github.com/ManiacalLabs/BiblioPixel/pull/188#issuecomment-301246728>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AAPdsvgDWHBT1WFLgOeP1bdN9WzsQSHSks5r5ak6gaJpZM4NaD_4>
> .
>



-- 
     /t

*https://tom.ritchford.com <https://tom.ritchford.com>*
*https://tom.swirly.com <https://tom.swirly.com>*

rec: NOPE, I screwed up.  I can make this a non-breaking change!  BRB...

On Sat, May 13, 2017 at 3:05 PM, Tom Swirly <tom@swirly.com> wrote:

> I originally thought of doing this four months ago.  :-D
>
> It was only when I did the docs that I became convinced of this...
>
> On Sat, May 13, 2017 at 2:59 PM, Adam Haile <notifications@github.com>
> wrote:
>
>> Damn... talk about breaking changes :P A begrudging +1
>>
>> —
>> You are receiving this because you authored the thread.
>> Reply to this email directly, view it on GitHub
>> <https://github.com/ManiacalLabs/BiblioPixel/pull/188#issuecomment-301246728>,
>> or mute the thread
>> <https://github.com/notifications/unsubscribe-auth/AAPdsvgDWHBT1WFLgOeP1bdN9WzsQSHSks5r5ak6gaJpZM4NaD_4>
>> .
>>
>
>
>
> --
>      /t
>
> *https://tom.ritchford.com <https://tom.ritchford.com>*
> *https://tom.swirly.com <https://tom.swirly.com>*
>



-- 
     /t

*https://tom.ritchford.com <https://tom.ritchford.com>*
*https://tom.swirly.com <https://tom.swirly.com>*

rec: All right!  This should be a non-breaking change!  The old symbols still exist, but are aliases for the new ones, and deprecated.

adammhaile: Oh... nevermind. I see now. +1
That will certainly save a lot of headaches :)

On Sat, May 13, 2017 at 9:28 AM, Tom Swirly <notifications@github.com>
wrote:

> *@rec* commented on this pull request.
> ------------------------------
>
> In bibliopixel/led/__init__.py
> <https://github.com/ManiacalLabs/BiblioPixel/pull/188#discussion_r116358409>
> :
>
> >  from .. layout import Rotation
>  from .. layout.matrix import gen_matrix
>  from .. layout.circle import gen_circle
>  from .. layout.cube import gen_cube
>
> +# These are DEPRECATED
>
> Nah. It's just a comment for the reader. Everything that was defined
> before, is still defined now - however, the old names are now just synonyms
> for the new, shorter names.
>
> —
> You are receiving this because you commented.
> Reply to this email directly, view it on GitHub
> <https://github.com/ManiacalLabs/BiblioPixel/pull/188#discussion_r116358409>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AA6a6pSwsccyYOLGxHVOUmxYLF9SVLYnks5r5bANgaJpZM4NaD_4>
> .
>


Patch:
diff --git a/bibliopixel/__init__.py b/bibliopixel/__init__.py
index d7ca750..aa28e40 100644
--- a/bibliopixel/__init__.py
+++ b/bibliopixel/__init__.py
@@ -1,10 +1,13 @@
-from . led import LEDCircle, LEDMatrix, LEDPOV, LEDStrip, LEDCube
+from . led import Circle, Matrix, POV, Strip, Cube
 from . layout import Rotation
 from . layout.matrix import gen_matrix
 from . layout.circle import gen_circle
 from . layout.cube import gen_cube
 from . import animation, colors, font, gamma, led, log, util
 
+# These are DEPRECATED
+from . led import LEDCircle, LEDMatrix, LEDPOV, LEDStrip, LEDCube
+
 
 def _get_version():
     from os.path import abspath, dirname, join
diff --git a/bibliopixel/animation/circle.py b/bibliopixel/animation/circle.py
index f4cba7f..e7548b9 100644
--- a/bibliopixel/animation/circle.py
+++ b/bibliopixel/animation/circle.py
@@ -1,5 +1,5 @@
 from . animation import BaseAnimation
-from .. led import LEDCircle
+from .. led import Circle
 
 
 class BaseCircleAnim(BaseAnimation):
@@ -7,8 +7,8 @@ class BaseCircleAnim(BaseAnimation):
     def __init__(self, led):
         super().__init__(led)
 
-        if not isinstance(led, LEDCircle):
-            raise RuntimeError("Must use LEDCircle with Circle Animations!")
+        if not isinstance(led, Circle):
+            raise RuntimeError("Must use Circle with Circle Animations!")
 
         self.rings = led.rings
         self.ringCount = led.ringCount
diff --git a/bibliopixel/animation/cube.py b/bibliopixel/animation/cube.py
index 59b4e81..63968bc 100644
--- a/bibliopixel/animation/cube.py
+++ b/bibliopixel/animation/cube.py
@@ -1,12 +1,12 @@
 from . animation import BaseAnimation
-from .. led import LEDCube
+from .. led import Cube
 
 
 class BaseCubeAnim(BaseAnimation):
 
     def __init__(self, led):
         super().__init__(led)
-        if not isinstance(led, LEDCube):  # pragma: no cover
-            raise RuntimeError("Must use LEDCube with Matrix Animations!")
+        if not isinstance(led, Cube):  # pragma: no cover
+            raise RuntimeError("Must use Cube with Matrix Animations!")
 
         self.x, self.y, self.z = led.x, led.y, led.z
diff --git a/bibliopixel/animation/matrix.py b/bibliopixel/animation/matrix.py
index df1b1c1..7f05791 100644
--- a/bibliopixel/animation/matrix.py
+++ b/bibliopixel/animation/matrix.py
@@ -1,13 +1,13 @@
 from . animation import BaseAnimation
-from .. led import LEDMatrix
+from .. led import Matrix
 
 
 class BaseMatrixAnim(BaseAnimation):
 
     def __init__(self, led, width=0, height=0, startX=0, startY=0):
         super().__init__(led)
-        if not isinstance(led, LEDMatrix):  # pragma: no cover
-            raise RuntimeError("Must use LEDMatrix with Matrix Animations!")
+        if not isinstance(led, Matrix):  # pragma: no cover
+            raise RuntimeError("Must use Matrix with Matrix Animations!")
 
         self.width = width or led.width
         self.height = height or led.height
diff --git a/bibliopixel/animation/receiver.py b/bibliopixel/animation/receiver.py
index f0317a8..3e27ccc 100644
--- a/bibliopixel/animation/receiver.py
+++ b/bibliopixel/animation/receiver.py
@@ -1,18 +1,21 @@
 from . animation import BaseAnimation
 from .. import log
 import threading
+from enum import IntEnum
 
 
-class HOST_TYPE:
+class HOST_TYPE(IntEnum):
     STRIP = 1
     MATRIX = 2
     CIRCLE = 3
+    CUBE = 4
 
 
 HOST_MAP = {
-    'LEDStrip': HOST_TYPE.STRIP,
-    'LEDMatrix': HOST_TYPE.MATRIX,
-    'LEDCircle': HOST_TYPE.CIRCLE
+    'Strip': HOST_TYPE.STRIP,
+    'Matrix': HOST_TYPE.MATRIX,
+    'Circle': HOST_TYPE.CIRCLE,
+    'Cube': HOST_TYPE.CUBE,
 }
 
 
@@ -22,11 +25,11 @@ class BaseReceiver(BaseAnimation):
     def __init__(self, led):
         super().__init__(led)
         name = type(self._led).__name__
-        if name in HOST_MAP:
-            self.host_type = HOST_MAP[name]
-        else:
-            raise ValueError('led must be of type {}'.format(', '.join(HOST_MAP.keys())))
 
+        if name not in HOST_MAP:
+            raise ValueError('led must be of type' + ', '.join(HOST_MAP))
+
+        self.host_type = HOST_MAP[name]
         self._hold_for_data = threading.Event()
         self._stop_event = threading.Event()
         self._stop_event.clear()
diff --git a/bibliopixel/animation/strip.py b/bibliopixel/animation/strip.py
index 2cb6ed7..906a9c4 100644
--- a/bibliopixel/animation/strip.py
+++ b/bibliopixel/animation/strip.py
@@ -1,5 +1,5 @@
 from . animation import BaseAnimation
-from .. led import LEDStrip
+from .. led import Strip
 
 
 class BaseStripAnim(BaseAnimation):
@@ -7,8 +7,8 @@ class BaseStripAnim(BaseAnimation):
     def __init__(self, led, start=0, end=-1):
         super().__init__(led)
 
-        if not isinstance(led, LEDStrip):
-            raise RuntimeError("Must use LEDStrip with Strip Animations!")
+        if not isinstance(led, Strip):
+            raise RuntimeError("Must use Strip with Strip Animations!")
 
         self._start = max(start, 0)
         self._end = end
diff --git a/bibliopixel/drivers/APA102.py b/bibliopixel/drivers/APA102.py
index 7d86617..6cfbc74 100644
--- a/bibliopixel/drivers/APA102.py
+++ b/bibliopixel/drivers/APA102.py
@@ -2,7 +2,7 @@ from . channel_order import ChannelOrder
 from . spi_driver_base import DriverSPIBase
 
 
-class DriverAPA102(DriverSPIBase):
+class APA102(DriverSPIBase):
     """Main driver for APA102 based LED strips on devices like the Raspberry Pi and BeagleBone"""
 
     def __init__(self, num, c_order=ChannelOrder.RGB, use_py_spi=True,
@@ -23,10 +23,13 @@ class DriverAPA102(DriverSPIBase):
         self._buf.extend([0xFF, 0, 0, 0] * self._latchBytes)
 
 
+# This is DEPRECATED.
+DriverAPA102 = APA102
+
 MANIFEST = [
     {
         "id": "APA102",
-        "class": DriverAPA102,
+        "class": APA102,
         "type": "driver",
         "display": "APA102 (SPI Native)",
         "desc": "Interface with APA102 strips over a native SPI port (Pi, BeagleBone, etc.)",
diff --git a/bibliopixel/drivers/LPD8806.py b/bibliopixel/drivers/LPD8806.py
index 3330a43..2319179 100644
--- a/bibliopixel/drivers/LPD8806.py
+++ b/bibliopixel/drivers/LPD8806.py
@@ -3,7 +3,7 @@ from . channel_order import ChannelOrder
 from . spi_driver_base import DriverSPIBase
 
 
-class DriverLPD8806(DriverSPIBase):
+class LPD8806(DriverSPIBase):
     """Main driver for LPD8806 based LED strips on devices like the Raspberry Pi
        and BeagleBone."""
 
@@ -24,10 +24,13 @@ class DriverLPD8806(DriverSPIBase):
     # running each value through gamma will fix all of this.
 
 
+# This is DEPRECATED.
+DriverLPD8806 = LPD8806
+
 MANIFEST = [
     {
         "id": "LPD8806",
-        "class": DriverLPD8806,
+        "class": LPD8806,
         "type": "driver",
         "display": "LPD8806 (SPI Native)",
         "desc": "Interface with LPD8806 strips over a native SPI port (Pi, BeagleBone, etc.)",
diff --git a/bibliopixel/drivers/SimPixel/__init__.py b/bibliopixel/drivers/SimPixel/__init__.py
index 87da547..f90ae8e 100644
--- a/bibliopixel/drivers/SimPixel/__init__.py
+++ b/bibliopixel/drivers/SimPixel/__init__.py
@@ -1,1 +1,1 @@
-from . driver import DriverSimPixel
+from . driver import SimPixel
diff --git a/bibliopixel/drivers/SimPixel/driver.py b/bibliopixel/drivers/SimPixel/driver.py
index 3e0db37..d8fb5dd 100644
--- a/bibliopixel/drivers/SimPixel/driver.py
+++ b/bibliopixel/drivers/SimPixel/driver.py
@@ -4,7 +4,7 @@ from .. driver_base import DriverBase
 from . import websocket
 
 
-class DriverSimPixel(DriverBase):
+class SimPixel(DriverBase):
 
     def __init__(self, num, port=1337, layout=None, **kwds):
         super().__init__(num, **kwds)
@@ -54,3 +54,7 @@ class DriverSimPixel(DriverBase):
     def _send_packet(self):
         for ws in self.websocks.values():
             ws(self._buf)
+
+
+# This is DEPRECATED.
+DriverSimPixel = SimPixel
diff --git a/bibliopixel/drivers/WS2801.py b/bibliopixel/drivers/WS2801.py
index 9be8bcf..b9d6e49 100644
--- a/bibliopixel/drivers/WS2801.py
+++ b/bibliopixel/drivers/WS2801.py
@@ -4,7 +4,7 @@ import os
 from .. import gamma
 
 
-class DriverWS2801(DriverSPIBase):
+class WS2801(DriverSPIBase):
     """Main driver for WS2801 based LED strips on devices like the Raspberry Pi and BeagleBone"""
 
     def __init__(self, num, c_order=ChannelOrder.RGB, use_py_spi=True,
@@ -16,10 +16,13 @@ class DriverWS2801(DriverSPIBase):
                          SPISpeed=SPISpeed, open=open, gamma=gamma.WS2801)
 
 
+# This is DEPRECATED.
+DriverWS2801 = WS2801
+
 MANIFEST = [
     {
         "id": "WS2801",
-        "class": DriverWS2801,
+        "class": WS2801,
         "type": "driver",
         "display": "WS2801 (SPI Native)",
         "desc": "Interface with WS2801 strips over a native SPI port (Pi, BeagleBone, etc.)",
diff --git a/bibliopixel/drivers/dummy_driver.py b/bibliopixel/drivers/dummy_driver.py
index 756016a..34923fb 100644
--- a/bibliopixel/drivers/dummy_driver.py
+++ b/bibliopixel/drivers/dummy_driver.py
@@ -2,7 +2,7 @@ from . driver_base import DriverBase
 import time
 
 
-class DriverDummy(DriverBase):
+class Dummy(DriverBase):
     """For Testing: Provides no ouput, just a valid interface"""
 
     def __init__(self, num, delay=0, **_):
@@ -16,3 +16,7 @@ class DriverDummy(DriverBase):
             time.sleep(self._delay)
         else:
             pass
+
+
+# This is DEPRECATED.
+DriverDummy = Dummy
diff --git a/bibliopixel/drivers/hue.py b/bibliopixel/drivers/hue.py
index 19f75ea..5240d89 100644
--- a/bibliopixel/drivers/hue.py
+++ b/bibliopixel/drivers/hue.py
@@ -11,7 +11,7 @@ except:
 import colorsys
 
 
-class DriverHue(DriverBase):
+class Hue(DriverBase):
 
     def __init__(self, num, ip, nameMap=None):
         super().__init__(num)
@@ -68,3 +68,7 @@ class DriverHue(DriverBase):
             cmd = {'on': s != 0, 'bri': bri, 'hue': h, 'saturation': s,
                    'transitiontime': self._transitionTime}
             self._bridge.set_light(self._ids[i], cmd)
+
+
+# This is DEPRECATED.
+DriverHue = Hue
diff --git a/bibliopixel/drivers/image_sequence.py b/bibliopixel/drivers/image_sequence.py
index 4c91fc7..dbb734e 100644
--- a/bibliopixel/drivers/image_sequence.py
+++ b/bibliopixel/drivers/image_sequence.py
@@ -5,7 +5,7 @@ from .. import log
 
 try:
     import PIL
-    from PIL import Image, ImageSequence, ImageDraw
+    from PIL import Image, ImageDraw
 
 except ImportError as e:
     error = "Please install Python Imaging Library: pip install pillow"
@@ -13,7 +13,7 @@ except ImportError as e:
     raise ImportError(error)
 
 
-class DriverImageSequence(DriverBase):
+class ImageSequence(DriverBase):
 
     def __init__(self, num=0, width=0, height=0, pixelSize=10):
         """delay: time to wait in milliseconds to simulate actual hardware interface time"""
@@ -58,3 +58,7 @@ class DriverImageSequence(DriverBase):
 
         if clear:
             self._images = []
+
+
+# This is DEPRECATED.
+DriverImageSequence = ImageSequence
diff --git a/bibliopixel/drivers/network.py b/bibliopixel/drivers/network.py
index e99d495..a75855f 100644
--- a/bibliopixel/drivers/network.py
+++ b/bibliopixel/drivers/network.py
@@ -11,7 +11,7 @@ class CMDTYPE:
     BRIGHTNESS = 3
 
 
-class DriverNetwork(DriverBase):
+class Network(DriverBase):
     """Driver for communicating with another device on the network."""
 
     def __init__(self, num=0, width=0, height=0, host="localhost", port=3142):
@@ -65,10 +65,13 @@ class DriverNetwork(DriverBase):
         return resp == RETURN_CODES.SUCCESS
 
 
+# This is DEPRECATED.
+DriverNetwork = Network
+
 MANIFEST = [
     {
         "id": "network",
-        "class": DriverNetwork,
+        "class": Network,
         "type": "driver",
         "display": "Network",
         "desc": "Sends pixel data over the network to a reciever.",
diff --git a/bibliopixel/drivers/network_udp.py b/bibliopixel/drivers/network_udp.py
index 30abd18..519a4e5 100644
--- a/bibliopixel/drivers/network_udp.py
+++ b/bibliopixel/drivers/network_udp.py
@@ -11,7 +11,7 @@ class CMDTYPE:
     BRIGHTNESS = 3
 
 
-class DriverNetworkUDP(DriverBase):
+class NetworkUDP(DriverBase):
     """Driver for communicating with another device on the network."""
 
     def __init__(self, num=0, width=0, height=0, host="localhost", broadcast=False, port=3142, broadcast_interface=''):
diff --git a/bibliopixel/drivers/serial/__init__.py b/bibliopixel/drivers/serial/__init__.py
index d5e15d3..ab16b7d 100644
--- a/bibliopixel/drivers/serial/__init__.py
+++ b/bibliopixel/drivers/serial/__init__.py
@@ -1,2 +1,2 @@
-from . driver import DriverSerial
+from . driver import Serial
 from . codes import LEDTYPE
diff --git a/bibliopixel/drivers/serial/driver.py b/bibliopixel/drivers/serial/driver.py
index 841f4a2..2142727 100644
--- a/bibliopixel/drivers/serial/driver.py
+++ b/bibliopixel/drivers/serial/driver.py
@@ -8,7 +8,7 @@ from ... import log, util
 from ... return_codes import RETURN_CODES, print_error, BiblioSerialError
 
 
-class DriverSerial(DriverBase):
+class Serial(DriverBase):
     """Main driver for Serial based LED strips"""
 
     def __init__(self, type, num, dev="",
@@ -137,9 +137,17 @@ class DriverSerial(DriverBase):
         self._com.write(self._sync_packet)
 
 
-class DriverTeensySmartMatrix(DriverSerial):
+# This is DEPRECATED.
+DriverSerial = Serial
+
+
+class TeensySmartMatrix(Serial):
     def __init__(self, width, height, dev="", device_id=None,
                  hardwareID="16C0:0483"):
         super().__init__(type=LEDTYPE.GENERIC, num=width * height,
                          device_id=device_id, hardwareID=hardwareID)
         self.sync = self._send_sync
+
+
+# This is DEPRECATED.
+DriverTeensySmartMatrix = TeensySmartMatrix
diff --git a/bibliopixel/drivers/serial/manifest.py b/bibliopixel/drivers/serial/manifest.py
index 4f34770..0246133 100644
--- a/bibliopixel/drivers/serial/manifest.py
+++ b/bibliopixel/drivers/serial/manifest.py
@@ -1,10 +1,10 @@
 from ... import gamma
-from . driver import DriverSerial, DriverTeensySmartMatrix
+from . driver import Serial, TeensySmartMatrix
 
 MANIFEST = [
     {
         "id": "serial",
-        "class": DriverSerial,
+        "class": Serial,
         "type": "driver",
         "display": "Serial (AllPixel)",
         "desc": "Interface with USB Serial devices that support the AllPixel protocol.",
@@ -113,7 +113,7 @@ MANIFEST = [
     },
     {
         "id": "teensysmartmatrix",
-        "class": DriverTeensySmartMatrix,
+        "class": TeensySmartMatrix,
         "type": "driver",
         "display": "Teensy SmartMatrix",
         "desc": "Interface with Teensy SmartMatrix Controller.",
diff --git a/bibliopixel/image.py b/bibliopixel/image.py
index dd8d5e3..5c3f1b5 100644
--- a/bibliopixel/image.py
+++ b/bibliopixel/image.py
@@ -1,6 +1,6 @@
 import glob, numbers, os, sys
 from . import colors, log
-from . led import LEDMatrix
+from . led import Matrix
 
 try:
     from PIL import Image, ImageSequence
@@ -56,8 +56,8 @@ def show_image(setter, width, height,
 
 def showImage(led, imagePath="", imageObj=None, offset=(0, 0), bgcolor=colors.Off, brightness=255):
     """Display an image on the matrix"""
-    if not isinstance(led, LEDMatrix):
-        raise RuntimeError("Must use LEDMatrix with showImage!")
+    if not isinstance(led, Matrix):
+        raise RuntimeError("Must use Matrix with showImage!")
 
     led.all_off()
 
@@ -68,8 +68,8 @@ def showImage(led, imagePath="", imageObj=None, offset=(0, 0), bgcolor=colors.Of
 def loadImage(led, imagePath="", imageObj=None, offset=(0, 0), bgcolor=colors.Off, brightness=255):
     """Display an image on the matrix"""
 
-    if not isinstance(led, LEDMatrix):
-        raise RuntimeError("Must use LEDMatrix with loadImage!")
+    if not isinstance(led, Matrix):
+        raise RuntimeError("Must use Matrix with loadImage!")
 
     texture = [[colors.Off for x in range(led.width)] for y in range(led.height)]
 
diff --git a/bibliopixel/led/__init__.py b/bibliopixel/led/__init__.py
index 4d1562e..b75e824 100644
--- a/bibliopixel/led/__init__.py
+++ b/bibliopixel/led/__init__.py
@@ -1,20 +1,27 @@
-from . circle import LEDCircle
-from . matrix import LEDMatrix
-from . cube import LEDCube
-from . pov import LEDPOV
-from . strip import LEDStrip
+from . circle import Circle
+from . matrix import Matrix
+from . cube import Cube
+from . pov import POV
+from . strip import Strip
 from .. layout import Rotation
 from .. layout.matrix import gen_matrix
 from .. layout.circle import gen_circle
 from .. layout.cube import gen_cube
 
+# These are DEPRECATED
+from . circle import LEDCircle
+from . cube import LEDCube
+from . matrix import LEDMatrix
+from . pov import LEDPOV
+from . strip import LEDStrip
+
 MANIFEST = [
     {
         "id": "strip",
-        "class": LEDStrip,
+        "class": Strip,
         "type": "controller",
         "control_type": "strip",
-        "display": "LEDStrip",
+        "display": "Strip",
         "params": [{
                 "id": "threadedUpdate",
                 "label": "Threaded Update",
@@ -41,10 +48,10 @@ MANIFEST = [
     },
     {
         "id": "matrix",
-        "class": LEDMatrix,
+        "class": Matrix,
         "type": "controller",
         "control_type": "matrix",
-        "display": "LEDMatrix",
+        "display": "Matrix",
         "params": [{
                 "id": "width",
                 "label": "Width",
diff --git a/bibliopixel/led/circle.py b/bibliopixel/led/circle.py
index 5afa3c7..f94de2a 100644
--- a/bibliopixel/led/circle.py
+++ b/bibliopixel/led/circle.py
@@ -3,7 +3,7 @@ from .. import data_maker
 from .. layout.circle import gen_circle, calc_ring_steps, calc_ring_pixel_count, layout_from_rings
 
 
-class LEDCircle(LEDBase):
+class Circle(LEDBase):
 
     def __init__(self, drivers, rings=None, pixels_per=None,
                  maxAngleDiff=0, rotation=0,
@@ -109,3 +109,7 @@ class LEDCircle(LEDBase):
 
         for i in pixels:
             self._set_base(i, color)
+
+
+# This is DEPRECATED
+LEDCircle = Circle
diff --git a/bibliopixel/led/cube.py b/bibliopixel/led/cube.py
index ac9016b..3c7acbf 100644
--- a/bibliopixel/led/cube.py
+++ b/bibliopixel/led/cube.py
@@ -6,7 +6,7 @@ from .. layout.cube import gen_cube, layout_from_cube
 from .. import log
 
 
-class LEDCube(LEDBase):
+class Cube(LEDBase):
 
     def __init__(self, drivers, x, y, z, coordMap=None,
                  threadedUpdate=False, brightness=255, **kwargs):
@@ -55,3 +55,7 @@ class LEDCube(LEDBase):
     def setRGB(self, x, y, z, r, g, b):
         color = (r, g, b)
         self._set(x, y, z, color)
+
+
+# This is DEPRECATED
+LEDCube = Cube
diff --git a/bibliopixel/led/led.py b/bibliopixel/led/led.py
index 21dfe72..17f9557 100644
--- a/bibliopixel/led/led.py
+++ b/bibliopixel/led/led.py
@@ -7,7 +7,7 @@ class LEDBase(object):
 
     def __init__(self, drivers, threadedUpdate, brightness,
                  maker=data_maker.MAKER):
-        """Base LED class. Use LEDStrip or LEDMatrix instead!"""
+        """Base LED class. Use Strip or Matrix instead!"""
         self.drivers = drivers if isinstance(drivers, list) else [drivers]
 
         if not hasattr(self, 'numLEDs'):
diff --git a/bibliopixel/led/matrix.py b/bibliopixel/led/matrix.py
index e9b3c49..c476851 100644
--- a/bibliopixel/led/matrix.py
+++ b/bibliopixel/led/matrix.py
@@ -5,7 +5,7 @@ from . led import LEDBase
 from .. layout.matrix import Rotation, gen_matrix, layout_from_matrix
 
 
-class LEDMatrix(LEDBase):
+class Matrix(LEDBase):
 
     def __init__(self, drivers, width=0, height=0, coordMap=None,
                  rotation=Rotation.ROTATE_0, vert_flip=False,
@@ -226,3 +226,7 @@ class LEDMatrix(LEDBase):
     def drawText(self, text, x=0, y=0, color=None, bg=colors.Off, aa=False, font=font.default_font, font_scale=1):
         matrix.draw_text(self.fonts, self.set, text, self.width, self.height,
                          x, y, color, bg, aa, font, font_scale)
+
+
+# This is DEPRECATED
+LEDMatrix = Matrix
diff --git a/bibliopixel/led/pov.py b/bibliopixel/led/pov.py
index 2e74899..b3af4cf 100644
--- a/bibliopixel/led/pov.py
+++ b/bibliopixel/led/pov.py
@@ -1,10 +1,10 @@
 import math, threading, time
 from .. import data_maker
-from . matrix import LEDMatrix, Rotation
+from . matrix import Matrix, Rotation
 
 
 # Takes a matrix and displays it as individual columns over time
-class LEDPOV(LEDMatrix):
+class POV(Matrix):
 
     def __init__(self, drivers, povHeight, width, rotation=Rotation.ROTATE_0,
                  vert_flip=False, threadedUpdate=False,
@@ -39,3 +39,7 @@ class LEDPOV(LEDMatrix):
             sendTime = time.time() - start
             if sleep:
                 time.sleep(max(0, sleep - sendTime))
+
+
+# This is DEPRECATED
+LEDPOV = POV
diff --git a/bibliopixel/led/strip.py b/bibliopixel/led/strip.py
index 3371f59..e7c5db7 100644
--- a/bibliopixel/led/strip.py
+++ b/bibliopixel/led/strip.py
@@ -3,7 +3,7 @@ from . led import LEDBase
 from .. layout.strip import gen_strip
 
 
-class LEDStrip(LEDBase):
+class Strip(LEDBase):
 
     def __init__(self, drivers, threadedUpdate=False,
                  brightness=255, pixelWidth=1, **kwargs):
@@ -53,3 +53,7 @@ class LEDStrip(LEDBase):
     def setOff(self, pixel):
         """Set single pixel off"""
         self.set(pixel, (0, 0, 0))
+
+
+# This is DEPRECATED
+LEDStrip = Strip
diff --git a/bibliopixel/main/all_pixel.py b/bibliopixel/main/all_pixel.py
index 27e574d..b3533bf 100644
--- a/bibliopixel/main/all_pixel.py
+++ b/bibliopixel/main/all_pixel.py
@@ -48,7 +48,7 @@ def showSelectList(msg, values):
 
 
 def run(args, settings):
-    from ..drivers.serial.driver import DriverSerial
+    from ..drivers.serial.driver import Serial
     from ..drivers.serial.devices import Devices
     from ..drivers.serial.codes import SPIChipsets
 
@@ -96,7 +96,7 @@ def run(args, settings):
         O(details + "\n")
 
         try:
-            DriverSerial(t[0], num, dev=d, SPISpeed=spi, restart_timeout=6)
+            Serial(t[0], num, dev=d, SPISpeed=spi, restart_timeout=6)
             O("Configure complete!")
         except BiblioSerialError as e:
             O("Error configuring device!")
diff --git a/bibliopixel/main/demo.py b/bibliopixel/main/demo.py
index 25da9f8..ca672c3 100644
--- a/bibliopixel/main/demo.py
+++ b/bibliopixel/main/demo.py
@@ -1,7 +1,7 @@
 import random, webbrowser
 
-from bibliopixel.drivers.SimPixel import DriverSimPixel
-from bibliopixel import LEDCircle, LEDMatrix, layout
+from bibliopixel.drivers.SimPixel import SimPixel
+from bibliopixel import Circle, Matrix, layout
 from bibliopixel.animation import Sequence
 from bibliopixel.project import project
 
@@ -126,8 +126,8 @@ CUBE_PROJECT = {
 
 
 def matrix(args):
-    driver = DriverSimPixel(args.width * args.height)
-    led = LEDMatrix(driver, width=args.width, height=args.height)
+    driver = SimPixel(args.width * args.height)
+    led = Matrix(driver, width=args.width, height=args.height)
 
     anim = Sequence(led)
 
@@ -152,8 +152,8 @@ def circle(args):
     pixels_per = [1, 4, 8, 12, 18, 24, 32, 40, 52, 64]
     rings, steps = layout.gen_circle(pixels_per=pixels_per)
     points = layout.layout_from_rings(rings, origin=(200, 200, 0), z_diff=8)
-    driver = DriverSimPixel(sum(pixels_per), layout=points)
-    led = LEDCircle(driver, rings=rings, maxAngleDiff=0)
+    driver = SimPixel(sum(pixels_per), layout=points)
+    led = Circle(driver, rings=rings, maxAngleDiff=0)
 
     from BiblioPixelAnimations.circle.bloom import CircleBloom
     return CircleBloom(led)
diff --git a/bibliopixel/main/devices.py b/bibliopixel/main/devices.py
index b14eff6..2c6b15a 100644
--- a/bibliopixel/main/devices.py
+++ b/bibliopixel/main/devices.py
@@ -5,7 +5,7 @@ HELP = """Find serial devices."""
 
 
 def run(args, settings):
-    from ..drivers.serial.driver import DriverSerial
+    from ..drivers.serial.driver import Serial
     from ..drivers.serial.devices import Devices
     import serial
 
diff --git a/bibliopixel/project/aliases.py b/bibliopixel/project/aliases.py
index fafe003..94e9dd6 100644
--- a/bibliopixel/project/aliases.py
+++ b/bibliopixel/project/aliases.py
@@ -3,23 +3,23 @@ from .importer import import_symbol
 
 ALIASES = {
     'driver': {
-        'apa102': 'bibliopixel.drivers.APA102.DriverAPA102',
-        'dummy': 'bibliopixel.drivers.dummy_driver.DriverDummy',
-        'hue': 'bibliopixel.drivers.hue.DriverHue',
-        'image': 'bibliopixel.drivers.image_sequence.DriverImageSequence',
-        'lpd8806': 'bibliopixel.drivers.LPD8806.DriverLPD8806',
-        'network': 'bibliopixel.drivers.network.DriverNetwork',
-        'network_udp': 'bibliopixel.drivers.network.DriverNetworkUDP',
-        'simpixel': 'bibliopixel.drivers.SimPixel.DriverSimPixel',
-        'ws2801': 'bibliopixel.drivers.WS2801.DriverWS2801',
+        'apa102': 'bibliopixel.drivers.APA102.APA102',
+        'dummy': 'bibliopixel.drivers.dummy_driver.Dummy',
+        'hue': 'bibliopixel.drivers.hue.Hue',
+        'image': 'bibliopixel.drivers.image_sequence.ImageSequence',
+        'lpd8806': 'bibliopixel.drivers.LPD8806.LPD8806',
+        'network': 'bibliopixel.drivers.network.Network',
+        'network_udp': 'bibliopixel.drivers.network.NetworkUDP',
+        'simpixel': 'bibliopixel.drivers.SimPixel.SimPixel',
+        'ws2801': 'bibliopixel.drivers.WS2801.WS2801',
     },
 
     'led': {
-        'circle': 'bibliopixel.led.circle.LEDCircle',
-        'cube': 'bibliopixel.led.cube.LEDCube',
-        'matrix': 'bibliopixel.led.matrix.LEDMatrix',
-        'pov': 'bibliopixel.led.pov.LEDPOV',
-        'strip': 'bibliopixel.led.strip.LEDStrip',
+        'circle': 'bibliopixel.led.circle.Circle',
+        'cube': 'bibliopixel.led.cube.Cube',
+        'matrix': 'bibliopixel.led.matrix.Matrix',
+        'pov': 'bibliopixel.led.pov.POV',
+        'strip': 'bibliopixel.led.strip.Strip',
     },
 
     'animation': {
diff --git a/bibliopixel/project/defaults.py b/bibliopixel/project/defaults.py
index 2032609..2c3aeba 100644
--- a/bibliopixel/project/defaults.py
+++ b/bibliopixel/project/defaults.py
@@ -4,12 +4,12 @@ from . aliases import resolve_aliases
 
 DEFAULTS = {
     'driver': {
-        'typename': 'bibliopixel.drivers.SimPixel.DriverSimPixel',
+        'typename': 'bibliopixel.drivers.SimPixel.SimPixel',
         'num': 1024
     },
 
     'led': {
-        'typename': 'bibliopixel.led.matrix.LEDMatrix',
+        'typename': 'bibliopixel.led.matrix.Matrix',
         'width': 32,
         'height': 32,
     },


Test patch:
diff --git a/test/aliases_test.py b/test/aliases_test.py
index fe6ac9e..cdc6e94 100644
--- a/test/aliases_test.py
+++ b/test/aliases_test.py
@@ -8,7 +8,7 @@ class AliasTest(unittest.TestCase):
 
     def test_simple(self):
         self.assertEqual(resolve_aliases({'led': {}}), {'led': {}})
-        d = {'led': {'typename': 'bibliopixel.led.circle.LEDCircle'}}
+        d = {'led': {'typename': 'bibliopixel.led.circle.Circle'}}
         self.assertEqual(resolve_aliases(d), d)
 
     def test_exception(self):
@@ -20,7 +20,7 @@ class AliasTest(unittest.TestCase):
         self.assertTrue('install' not in e.exception.msg)
 
     def test_resolve(self):
-        d = {'led': {'typename': 'bibliopixel.led.circle.LEDCircle'}}
+        d = {'led': {'typename': 'bibliopixel.led.circle.Circle'}}
         self.assertEqual(resolve_aliases({'led': 'circle'}), d)
         self.assertEqual(resolve_aliases({'led': {'typename': 'circle'}}), d)
 
diff --git a/test/driver_test.py b/test/driver_test.py
index 15ba08f..868c288 100644
--- a/test/driver_test.py
+++ b/test/driver_test.py
@@ -2,9 +2,9 @@ import unittest
 
 from bibliopixel import gamma
 from bibliopixel.drivers.driver_base import DriverBase, ChannelOrder
-from bibliopixel.drivers.APA102 import DriverAPA102
-from bibliopixel.drivers.LPD8806 import DriverLPD8806
-from bibliopixel.drivers.WS2801 import DriverWS2801
+from bibliopixel.drivers.APA102 import APA102
+from bibliopixel.drivers.LPD8806 import LPD8806
+from bibliopixel.drivers.WS2801 import WS2801
 
 
 def mock_open(self, fname, perm='r'):
@@ -54,18 +54,18 @@ class DriverTest(unittest.TestCase):
         self.do_test(driver, expected)
 
     def test_apa102(self):
-        driver = DriverAPA102(num=4, **self.SPD)
+        driver = APA102(num=4, **self.SPD)
         expected = [0, 0, 0, 0, 255, 0, 0, 0, 255, 1, 8, 64,
                     255, 2, 16, 128, 255, 3, 24, 192, 255, 0, 0, 0]
         self.do_test(driver, expected)
 
     def test_lpd8806(self):
-        driver = DriverLPD8806(num=4, **self.SPD)
+        driver = LPD8806(num=4, **self.SPD)
         expected = [
             128, 128, 128, 128, 128, 132, 128, 128, 151, 128, 128, 190, 0]
         self.do_test(driver, expected)
 
     def test_ws2801(self):
-        driver = DriverWS2801(num=4, **self.SPD)
+        driver = WS2801(num=4, **self.SPD)
         expected = [0, 0, 0, 0, 0, 8, 0, 0, 45, 0, 0, 125]
         self.do_test(driver, expected)
diff --git a/test/dummy_test.py b/test/dummy_test.py
index 0fac553..430c370 100644
--- a/test/dummy_test.py
+++ b/test/dummy_test.py
@@ -1,11 +1,11 @@
 import unittest
 
-from bibliopixel.led.strip import LEDStrip
-from bibliopixel.drivers.dummy_driver import DriverDummy
+from bibliopixel.led.strip import Strip
+from bibliopixel.drivers.dummy_driver import Dummy
 
 
 class DummyTest(unittest.TestCase):
     def test_dummy(self):
-        for driver in DriverDummy(32), DriverDummy(32, 0.01):
-            led = LEDStrip([driver])
+        for driver in Dummy(32), Dummy(32, 0.01):
+            led = Strip([driver])
             led.push_to_driver()
diff --git a/test/importer_test.py b/test/importer_test.py
index a8a33eb..731be89 100644
--- a/test/importer_test.py
+++ b/test/importer_test.py
@@ -44,7 +44,7 @@ class ImporterTest(unittest.TestCase):
         self.assertEqual(td, datetime.timedelta(5, 23, milliseconds=35))
 
     def test_aliasing(self):
-        import_symbol('bibliopixel.drivers.SimPixel.DriverSimPixel')
+        import_symbol('bibliopixel.drivers.SimPixel.SimPixel')
 
     def test_exception_unknown(self):
         with self.assertRaises(ImportError) as cm:
diff --git a/test/matrix_test.py b/test/matrix_test.py
index 1c59d57..3bb4130 100644
--- a/test/matrix_test.py
+++ b/test/matrix_test.py
@@ -1,7 +1,7 @@
 import unittest
 
 from bibliopixel import data_maker
-from bibliopixel.led import LEDMatrix
+from bibliopixel.led import Matrix
 from bibliopixel.drivers.driver_base import DriverBase
 
 
@@ -12,9 +12,8 @@ class BaseMatrixTest(unittest.TestCase):
 
     def make_matrix(self, width, height, **kwds):
         driver = DriverBase(num=width * height)
-        return LEDMatrix(driver, width=width, height=height,
-                         maker=self.maker,
-                         **kwds)
+        return Matrix(
+            driver, width=width, height=height, maker=self.maker, **kwds)
 
     def assert_changed(self, matrix, expected):
         changed = [i for i, c in enumerate(matrix._colors) if c[0]]
diff --git a/test/project.json b/test/project.json
index 498b1a2..6904803 100644
--- a/test/project.json
+++ b/test/project.json
@@ -1,11 +1,11 @@
 {
     "driver": {
-        "typename": "bibliopixel.drivers.dummy_driver.DriverDummy",
+        "typename": "bibliopixel.drivers.dummy_driver.Dummy",
         "num": 12
     },
 
     "led": {
-        "typename": "bibliopixel.led.strip.LEDStrip"
+        "typename": "bibliopixel.led.strip.Strip"
     },
 
     "animation": {
diff --git a/test/project_test.py b/test/project_test.py
index f9c5a86..9b6f86b 100644
--- a/test/project_test.py
+++ b/test/project_test.py
@@ -67,12 +67,12 @@ PROJECT_SHARED = """
 PROJECT_SIM = """
 {
     "driver": {
-        "typename": "bibliopixel.drivers.SimPixel.DriverSimPixel",
+        "typename": "bibliopixel.drivers.SimPixel.SimPixel",
         "num": 12
     },
 
     "led": {
-        "typename": "bibliopixel.led.strip.LEDStrip"
+        "typename": "bibliopixel.led.strip.Strip"
     },
 
     "animation": {
diff --git a/test/serial_test.py b/test/serial_test.py
index 58b5d3f..7410ea8 100644
--- a/test/serial_test.py
+++ b/test/serial_test.py
@@ -8,9 +8,9 @@ class SerialTest(unittest.TestCase):
         # Code taken from
         # https://gist.github.com/adammhaile/1b43fdde6ae6cbbd35560c68a9b90beb
 
-        from bibliopixel import LEDStrip
+        from bibliopixel import Strip
         from bibliopixel.drivers.channel_order import ChannelOrder
-        from bibliopixel.drivers.serial import DriverSerial, LEDTYPE
+        from bibliopixel.drivers.serial import Serial, LEDTYPE
         from bibliopixel.drivers.serial.devices import Devices
         from bibliopixel.animation import StripChannelTest
 
@@ -46,9 +46,9 @@ class SerialTest(unittest.TestCase):
         log.info('Device version for: ' + first_dev)
         log.info(devs._get_device_version(first_dev))
 
-        driver = DriverSerial(LEDTYPE.APA102, 600, SPISpeed=4,
-                              c_order=ChannelOrder.RGB)
-        led = LEDStrip(driver)
+        driver = Serial(
+            LEDTYPE.APA102, 600, SPISpeed=4, c_order=ChannelOrder.RGB)
+        led = Strip(driver)
 
         for b in range(7, 256, 8):
             log.info('Set brightness ' + str(b))