Index: server/lib/gutenbach/ipp/object_attributes/job_description_attributes.py
===================================================================
--- server/lib/gutenbach/ipp/object_attributes/job_description_attributes.py	(revision aded2d1280aa9d2333d252f6f2557cfa3b1b1cd1)
+++ server/lib/gutenbach/ipp/object_attributes/job_description_attributes.py	(revision b828a96dac6143596be1f8d07d8f319288fde70d)
@@ -37,5 +37,5 @@
 from ..constants import *
 
-class JobUri(Attribute):
+def JobUri(val):
     """4.3.1 job-uri (uri)
 
@@ -61,10 +61,9 @@
     """
 
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            'job-uri',
-            [Value(CharacterStringTags.URI, val)])
-
-class JobId(Attribute):
+    return Attribute(
+        'job-uri',
+        [Value(CharacterStringTags.URI, val)])
+
+def JobId(val):
     """4.3.2 job-id (integer(1:MAX))
 
@@ -82,10 +81,9 @@
     """
     
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            'job-id',
-            [Value(IntegerTags.INTEGER, val)])
-
-class JobPrinterUri(Attribute):
+    return Attribute(
+        'job-id',
+        [Value(IntegerTags.INTEGER, val)])
+
+def JobPrinterUri(val):
     """4.3.3 job-printer-uri (uri)
 
@@ -105,18 +103,16 @@
     """
 
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            'job-printer-uri',
-            [Value(CharacterStringTags.URI, val)])
-
-class JobMoreInfo(Attribute):
+    return Attribute(
+        'job-printer-uri',
+        [Value(CharacterStringTags.URI, val)])
+
+def JobMoreInfo(val):
     """4.3.4 job-more-info (uri)
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "job-more-info"
-
-class JobName(Attribute):
+    raise ClientErrorAttributes, "job-more-info"
+
+def JobName(val):
     """4.3.5 job-name (name(MAX))
     
@@ -138,10 +134,9 @@
     """
     
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            'job-name',
-            [Value(CharacterStringTags.NAME_WITHOUT_LANGUAGE, val)])
-
-class JobOriginatingUserName(Attribute):
+    return Attribute(
+        'job-name',
+        [Value(CharacterStringTags.NAME_WITHOUT_LANGUAGE, val)])
+
+def JobOriginatingUserName(val):
     """4.3.6 job-originating-user-name (name(MAX))
 
@@ -163,10 +158,9 @@
     """
     
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            'job-originating-user-name',
-            [Value(CharacterStringTags.NAME_WITHOUT_LANGUAGE, val)])
-
-class JobState(Attribute):
+    return Attribute(
+        'job-originating-user-name',
+        [Value(CharacterStringTags.NAME_WITHOUT_LANGUAGE, val)])
+
+def JobState(val):
     """4.3.7 job-state (type1 enum)
 
@@ -181,10 +175,9 @@
     """
     
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            'job-state',
-            [Value(IntegerTags.ENUM, val)])
-
-class JobStateReasons(Attribute):
+    return Attribute(
+        'job-state',
+        [Value(IntegerTags.ENUM, val)])
+
+def JobStateReasons(val):
     """4.3.8 job-state-reasons (1setOf type2 keyword)
 
@@ -212,50 +205,44 @@
     """
 
-    def __init__(self, *vals):
-        super(type(self), self).__init__(
-            'job-state-reasons',
-            [Value(CharacterStringTags.KEYWORD, val) for val in vals])
-
-class JobStateMessage(Attribute):
+    return Attribute(
+        'job-state-reasons',
+        [Value(CharacterStringTags.KEYWORD, val) for val in vals])
+
+def JobStateMessage(val):
     """4.3.9 job-state-message (text(MAX))
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "job-state-message"
-
-class JobDetailedStatusMessages(Attribute):
+    raise ClientErrorAttributes, "job-state-message"
+
+def JobDetailedStatusMessages(val):
     """4.3.10 job-detailed-status-messages (1setOf text(MAX))
 
     """
 
-    def __init__(self, *vals):
-        raise ClientErrorAttributes, "job-detailed-status-messages"
-
-class JobDocumentAccessErrors(Attribute):
+    raise ClientErrorAttributes, "job-detailed-status-messages"
+
+def JobDocumentAccessErrors(val):
     """4.3.11 job-document-access-errors (1setOf text(MAX))
 
     """
 
-    def __init__(self, *vals):
-        raise ClientErrorAttributes, "job-document-access-errors"
-
-class NumberOfDocuments(Attribute):
+    raise ClientErrorAttributes, "job-document-access-errors"
+
+def NumberOfDocuments(val):
     """4.3.12 number-of-documents (integer(0:MAX))
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "number-of-documents"
-
-class OutputDeviceAssigned(Attribute):
+    raise ClientErrorAttributes, "number-of-documents"
+
+def OutputDeviceAssigned(val):
     """4.3.13 output-device-assigned (name(127))
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "output-device-assigned"
-
-class TimeAtCreation(Attribute):
+    raise ClientErrorAttributes, "output-device-assigned"
+
+def TimeAtCreation(val):
     """4.3.14.1 time-at-creation (integer(MIN:MAX))
 
@@ -265,10 +252,9 @@
     """
     
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            "time-at-creation",
-            [Value(IntegerTags.INTEGER, val)])
-
-class TimeAtProcessing(Attribute):
+    return Attribute(
+        "time-at-creation",
+        [Value(IntegerTags.INTEGER, val)])
+
+def TimeAtProcessing(val):
     """4.3.14.2 time-at-processing (integer(MIN:MAX))
 
@@ -281,10 +267,9 @@
     """
 
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            "time-at-processing",
-            [Value(IntegerTags.INTEGER, val)])
-
-class TimeAtCompleted(Attribute):
+    return Attribute(
+        "time-at-processing",
+        [Value(IntegerTags.INTEGER, val)])
+
+def TimeAtCompleted(val):
     """4.3.14.3 time-at-completed (integer(MIN:MAX))
 
@@ -296,10 +281,9 @@
     """
 
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            "time-at-completed",
-            [Value(IntegerTags.INTEGER, val)])
-
-class JobPrinterUpTime(Attribute):
+    return Attribute(
+        "time-at-completed",
+        [Value(IntegerTags.INTEGER, val)])
+
+def JobPrinterUpTime(val):
     """4.3.14.4 job-printer-up-time (integer(1:MAX))
 
@@ -321,51 +305,45 @@
     """
 
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            "job-printer-up-time",
-            [Value(IntegerTags.INTEGER, val)])
-
-
-class DateTimeAtCreation(Attribute):
+    return Attribute(
+        "job-printer-up-time",
+        [Value(IntegerTags.INTEGER, val)])
+
+
+def DateTimeAtCreation(val):
     """4.3.14.5 date-time-at-creation (dateTime)
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "date-time-at-creation"
-
-class DateTimeAtProcessing(Attribute):
+    raise ClientErrorAttributes, "date-time-at-creation"
+
+def DateTimeAtProcessing(val):
     """4.3.14.6 date-time-at-processing (dateTime)
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "date-time-at-processing"
-
-class DateTimeAtCompletion(Attribute):
+    raise ClientErrorAttributes, "date-time-at-processing"
+
+def DateTimeAtCompletion(val):
     """4.3.14.7 date-time-at-completed (dateTime)
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "date-time-at-completion"
-
-class NumberOfInterveningJobs(Attribute):
+    raise ClientErrorAttributes, "date-time-at-completion"
+
+def NumberOfInterveningJobs(val):
     """4.3.15 number-of-intervening-jobs (integer(0:MAX))
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "number-of-intervening-jobs"
-
-class JobMessageFromOperator(Attribute):
+    raise ClientErrorAttributes, "number-of-intervening-jobs"
+
+def JobMessageFromOperator(val):
     """4.3.16 job-message-from-operator (text(127))
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "job-message-from-operator"
-
-class JobKOctets(Attribute):
+    raise ClientErrorAttributes, "job-message-from-operator"
+
+def JobKOctets(val):
     """4.3.17.1 job-k-octets (integer(0:MAX))
 
@@ -392,50 +370,44 @@
     """
     
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            'job-k-octets',
-            [Value(IntegerTags.INTEGER, val)])
-
-class JobImpressions(Attribute):
+    return Attribute(
+        'job-k-octets',
+        [Value(IntegerTags.INTEGER, val)])
+
+def JobImpressions(val):
     """4.3.17.2 job-impressions (integer(0:MAX))
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "job-impressions"
-
-class JobMediaSheets(Attribute):
+    raise ClientErrorAttributes, "job-impressions"
+
+def JobMediaSheets(val):
     """4.3.17.3 job-media-sheets (integer(0:MAX))
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "job-media-sheets"
-
-class JobKOctetsProcessed(Attribute):
+    raise ClientErrorAttributes, "job-media-sheets"
+
+def JobKOctetsProcessed(val):
     """4.3.18.1 job-k-octets-processed (integer(0:MAX))
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "job-k-octets-processed"
-
-class JobImpressionsCompleted(Attribute):
+    raise ClientErrorAttributes, "job-k-octets-processed"
+
+def JobImpressionsCompleted(val):
     """4.3.18.2 job-impressions-completed (integer(0:MAX))
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "job-impressions-completed"
-
-class JobMediaSheetsCompleted(Attribute):
+    raise ClientErrorAttributes, "job-impressions-completed"
+
+def JobMediaSheetsCompleted(val):
     """4.3.18.3 job-media-sheets-completed (integer(0:MAX))
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "job-media-sheets-completed"
-
-class AttributesCharset(Attribute):
+    raise ClientErrorAttributes, "job-media-sheets-completed"
+
+def AttributesCharset(val):
     """4.3.19 attributes-charset (charset)
 
@@ -456,10 +428,9 @@
     """
     
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            'attributes-charset',
-            [Value(CharacterStringTags.CHARSET, val)])
-
-class AttributesNaturalLanguage(Attribute):
+    return Attribute(
+        'attributes-charset',
+        [Value(CharacterStringTags.CHARSET, val)])
+
+def AttributesNaturalLanguage(val):
     """4.3.20 attributes-natural-language (naturalLanguage)
 
@@ -477,6 +448,5 @@
     """
     
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            'attributes-natural-language',
-            [Value(CharacterStringTags.NATURAL_LANGUAGE, val)])
+    return Attribute(
+        'attributes-natural-language',
+        [Value(CharacterStringTags.NATURAL_LANGUAGE, val)])
