Index: server/lib/gutenbach/ipp/attribute.py
===================================================================
--- server/lib/gutenbach/ipp/attribute.py	(revision df510617607a17049c40187f93c7ce3d26508ae1)
+++ server/lib/gutenbach/ipp/attribute.py	(revision 5c5fe6d38787555b1c90b7285e0deb6f61633266)
@@ -8,8 +8,7 @@
 
 class Attribute(object):
-    """
-    In addition to what the RFC reports, an attribute has an
-    'attribute tag', which specifies what type of attribute it is.
-    It is 1 bytes long, and comes before the list of values.
+    """In addition to what the RFC reports, an attribute has an
+    'attribute tag', which specifies what type of attribute it is.  It
+    is 1 bytes long, and comes before the list of values.
 
     From RFC 2565:
@@ -38,10 +37,10 @@
     |                     value                   |   w bytes |
     -----------------------------------------------------------
+
     """
 
     def __init__(self, name=None, values=None):
-        """
-        Initialize an Attribute.  This function can be called in three
-        different ways:
+        """Initialize an Attribute.  This function can be called in
+        three different ways:
 
             Attribute() -- creates an empty Attribute
@@ -57,4 +56,5 @@
 
             values -- a list of Values.  May not be empty.
+
         """
 
@@ -73,6 +73,6 @@
     @property
     def packed_value(self):
-        """
-        Packs the attribute data into binary data.
+        """Packs the attribute data into binary data.
+        
         """
 
@@ -132,7 +132,8 @@
     @property
     def packed_value_size(self):
+        """Gets the total size of the attribute.
+        
         """
-        Gets the total size of the attribute.
-        """
+
         return len(self.packed_value)
 
Index: server/lib/gutenbach/ipp/attributegroup.py
===================================================================
--- server/lib/gutenbach/ipp/attributegroup.py	(revision df510617607a17049c40187f93c7ce3d26508ae1)
+++ server/lib/gutenbach/ipp/attributegroup.py	(revision 5c5fe6d38787555b1c90b7285e0deb6f61633266)
@@ -8,15 +8,14 @@
 
 class AttributeGroup(object):
-    """
-    An AttributeGroup consists of an attribute-group-tag, followed by
-    a sequence of Attributes. According to RFC 2565, "Within an
+    """An AttributeGroup consists of an attribute-group-tag, followed
+    by a sequence of Attributes. According to RFC 2565, 'Within an
     attribute-sequence, if two attributes have the same name, the
-    first occurrence MUST be ignored.", so we can effectively treat
+    first occurrence MUST be ignored.', so we can effectively treat
     this as an ordered dictionary.
+    
     """
 
     def __init__(self, attribute_group_tag=None, attributes=[]):
-        """
-        Initialize an AttributeGroup.  An AttributeGroup can be
+        """Initialize an AttributeGroup.  An AttributeGroup can be
         initialized in three ways:
 
@@ -31,4 +30,5 @@
 
             attributes -- a list of attributes
+
         """
 
@@ -43,6 +43,6 @@
 
     def __getitem__(self, name):
-        """
-        Returns a list of attributes which have name 'name'.
+        """Returns a list of attributes which have name 'name'.
+        
         """
         
@@ -62,7 +62,7 @@
 
     def __setitem__(self, name, attribute):
-        """
-        Sets an attribute in the attribute group. Note that the key is
-        ignored and the attribute is queried for its name.
+        """Sets an attribute in the attribute group. Note that the key
+        is ignored and the attribute is queried for its name.
+        
         """
 
@@ -77,6 +77,6 @@
 
     def extend(self, attributes):
-        """
-        Sets the attributes for the attribute group.
+        """Sets the attributes for the attribute group.
+        
         """
 
@@ -93,6 +93,6 @@
     @property
     def packed_value(self):
-        """
-        Convert the AttributeGroup to binary.
+        """Convert the AttributeGroup to binary.
+        
         """
 
Index: server/lib/gutenbach/ipp/constants.py
===================================================================
--- server/lib/gutenbach/ipp/constants.py	(revision df510617607a17049c40187f93c7ce3d26508ae1)
+++ server/lib/gutenbach/ipp/constants.py	(revision 5c5fe6d38787555b1c90b7285e0deb6f61633266)
@@ -2,6 +2,6 @@
 
 class Misc():
-    """
-    Miscellaneous config options for the IPP server.
+    """Miscellaneous config options for the IPP server.
+    
     """
     
@@ -12,6 +12,6 @@
 
 class JobStates():
-    """
-    Job state codes, as defined by RFC 2911, Section 4.3.7
+    """Job state codes, as defined by RFC 2911, Section 4.3.7
+    
     """
     
@@ -27,6 +27,6 @@
 
 class PrinterStates():
-    """
-    Printer state codes, as defined by RFC 2911, Section 4.4.11
+    """Printer state codes, as defined by RFC 2911, Section 4.4.11
+    
     """
 
@@ -38,6 +38,5 @@
 
 class Operations():
-    """
-    IPP and CUPS IPP Operations, as defined in various RFCs:
+    """IPP and CUPS IPP Operations, as defined in various RFCs:
 
         0x0002 - 0x0012      RFC 2911 (Section 4.4.15)
@@ -46,4 +45,5 @@
         0x0022 - 0x0031      RFC 3998 (Section 14.3)
         0x4000 - 0x4027      CUPS IPP Actions
+        
     """
 
@@ -120,6 +120,6 @@
 
 class SuccessCodes():
-    """
-    Success status codes as defined in RFC 2911, Section 13
+    """Success status codes as defined in RFC 2911, Section 13
+    
     """
     
@@ -135,6 +135,6 @@
 
 class ClientErrorCodes():
-    """
-    Client error codes as defined in RFC 2911, Section 13
+    """Client error codes as defined in RFC 2911, Section 13
+    
     """
     
@@ -167,6 +167,6 @@
 
 class ServerErrorCodes():
-    """
-    Server error codes as defined in RFC 2911, Section 13
+    """Server error codes as defined in RFC 2911, Section 13
+    
     """
 
@@ -189,9 +189,9 @@
 
 class CUPSPrinterType():
-    """
-    Printer types as defined by cups_ptype_e in the CUPS API
+    """Printer types as defined by cups_ptype_e in the CUPS API
     specification:
     
     http://www.cups.org/documentation.php/doc-1.3/api-cups.html#cups_ptype_e
+    
     """
 
@@ -232,7 +232,7 @@
 
 class AttributeTags():
-    """
-    Contains constants for the attribute IPP tags, as defined by RFC
-    2565.
+    """Contains constants for the attribute IPP tags, as defined by
+    RFC 2565.
+    
     """
     
@@ -249,7 +249,7 @@
 
 class OutOfBandTags():
-    """
-    Contains constants for the out-of-band value IPP tags, as defined
-    by RFC 2565.
+    """Contains constants for the out-of-band value IPP tags, as
+    defined by RFC 2565.
+    
     """
     
@@ -265,7 +265,7 @@
 
 class IntegerTags():
-    """
-    Contains constants for the integer value IPP tags, as defined by
-    RFC 2565.
+    """Contains constants for the integer value IPP tags, as defined
+    by RFC 2565.
+    
     """
     
@@ -278,7 +278,7 @@
 
 class OctetStringTags():
-    """
-    Contains constants for the octetString value IPP tags, as defined
-    by RFC 2565.
+    """Contains constants for the octetString value IPP tags, as
+    defined by RFC 2565.
+    
     """
     
@@ -295,7 +295,7 @@
 
 class CharacterStringTags():
-    """
-    Contains constants for the character-string value IPP tags, as
+    """Contains constants for the character-string value IPP tags, as
     defined by RFC 2565.
+    
     """
     
Index: server/lib/gutenbach/ipp/request.py
===================================================================
--- server/lib/gutenbach/ipp/request.py	(revision df510617607a17049c40187f93c7ce3d26508ae1)
+++ server/lib/gutenbach/ipp/request.py	(revision 5c5fe6d38787555b1c90b7285e0deb6f61633266)
@@ -11,6 +11,5 @@
 
 class Request():
-    """
-    From RFC 2565:
+    """From RFC 2565:
     
     The encoding for an operation request or response consists of:
@@ -32,4 +31,5 @@
     |                     data                    |   q bytes  - optional
     -----------------------------------------------
+
     """
 
@@ -39,6 +39,5 @@
     def __init__(self, version=None, operation_id=None, request_id=None,
                  attribute_groups=[], data=None, request=None, length=sys.maxint):
-        """
-        Create a Request.  Takes either the segments of the request
+        """Create a Request.  Takes either the segments of the request
         separately, or a file handle for the request to parse.  If the
         file handle is passed in, all other arguments are ignored.
@@ -65,4 +64,5 @@
             request -- a file handle that supports the read()
                        operation
+
         """
 
@@ -198,6 +198,6 @@
     @property
     def packed_value(self):
-        """
-        Packs the value data into binary data.
+        """Packs the value data into binary data.
+        
         """
 
Index: server/lib/gutenbach/ipp/value.py
===================================================================
--- server/lib/gutenbach/ipp/value.py	(revision df510617607a17049c40187f93c7ce3d26508ae1)
+++ server/lib/gutenbach/ipp/value.py	(revision 5c5fe6d38787555b1c90b7285e0deb6f61633266)
@@ -7,12 +7,6 @@
 logger = logging.getLogger(__name__)
 
-def setter(prop):
-    def f(func):
-        return property(prop.fget, func, prop.fdel, prop.__doc__)
-    return f
-
 class Value(object):
-    """
-    An IPP value consists of a tag and a value.
+    """An IPP value consists of a tag and a value.
 
     From RFC 2565:
@@ -26,9 +20,9 @@
      |                     value                   |   v bytes
      -----------------------------------------------    
+
     """
 
     def __init__(self, value_tag=None, value=None):
-        """
-        Initialize a Value.  There are three different ways you can
+        """Initialize a Value.  There are three different ways you can
         call this method:
 
@@ -48,4 +42,5 @@
             value -- variable size, containing the actual value.
             It should be a string or number.
+
         """
 
@@ -62,7 +57,5 @@
     @classmethod
     def unpack(cls, value_tag, packed_value):
-        """Unpack a binary IPP value
-
-        Unpacks a binary string into a Value object.
+        """Unpack a binary IPP value into a Value object.
 
         """
@@ -71,8 +64,7 @@
     @staticmethod
     def _unpack(value_tag, packed_value):
-        """
-        Given self.value_tag and self.packed_value, unpack the binary
-        value into either a string or number.  These values MUST NOT
-        be null.
+        """Given self.value_tag and self.packed_value, unpack the
+        binary value into either a string or number.  These values
+        MUST NOT be null.
 
         Returns: unpacked value
@@ -170,6 +162,5 @@
     @property
     def packed_value(self):
-        """
-        Given self.value_tag and self.value, pack the value into
+        """Given self.value_tag and self.value, pack the value into
         binary form.  These values MUST NOT be null.
 
@@ -270,5 +261,5 @@
         return packed_value
 
-    @setter(packed_value)
+    @packed_value.setter
     def packed_value(self, packed_value):
         """Replace a value using a new packed value
@@ -281,6 +272,6 @@
     @property
     def packed_value_size(self):
-        """
-        Get the size of the value in bytes.
+        """Get the size of the value in bytes.
+        
         """
         
@@ -289,6 +280,6 @@
     @property
     def total_size(self):
-        """
-        Get the total size of the IPP value.
+        """Get the total size of the IPP value.
+        
         """
 
