Index: server/lib/gutenbach/ipp/object_attributes/printer_description_attributes.py
===================================================================
--- server/lib/gutenbach/ipp/object_attributes/printer_description_attributes.py	(revision aded2d1280aa9d2333d252f6f2557cfa3b1b1cd1)
+++ server/lib/gutenbach/ipp/object_attributes/printer_description_attributes.py	(revision b828a96dac6143596be1f8d07d8f319288fde70d)
@@ -44,5 +44,5 @@
 from ..constants import *
 
-class PrinterUriSupported(Attribute):
+def PrinterUriSupported(*vals):
     """4.4.1 printer-uri-supported (1setOf uri)
 
@@ -63,11 +63,10 @@
     """
     
-    def __init__(self, *vals):
-        super(type(self), self).__init__(
-            'printer-uri-supported',
-            [Value(CharacterStringTags.URI, val) for val in vals])
-
-
-class UriAuthenticationSupported(Attribute):
+    return Attribute(
+        'printer-uri-supported',
+        [Value(CharacterStringTags.URI, val) for val in vals])
+
+
+def UriAuthenticationSupported(*vals):
     """4.4.2 uri-authentication-supported (1setOf type2 keyword)
 
@@ -86,10 +85,9 @@
     """
     
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            'uri-authentication-supported',
-            [Value(CharacterStringTags.KEYWORD, val)])
-
-class UriSecuritySupported(Attribute):
+    return Attribute(
+        'uri-authentication-supported',
+        [Value(CharacterStringTags.KEYWORD, val) for val in vals])
+
+def UriSecuritySupported(*vals):
     """4.4.3 uri-security-supported (1setOf type2 keyword)
 
@@ -117,10 +115,9 @@
     """
     
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            'uri-security-supported',
-            [Value(CharacterStringTags.KEYWORD, val)])
-
-class PrinterName(Attribute):
+    return Attribute(
+        'uri-security-supported',
+        [Value(CharacterStringTags.KEYWORD, val) for val in vals])
+
+def PrinterName(val):
     """4.4.4 printer-name (name(127))
 
@@ -134,58 +131,51 @@
     """
     
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            'printer-name',
-            [Value(CharacterStringTags.NAME_WITHOUT_LANGUAGE, val)])
-
-class PrinterLocation(Attribute):
+    return Attribute(
+        'printer-name',
+        [Value(CharacterStringTags.NAME_WITHOUT_LANGUAGE, val)])
+
+def PrinterLocation(val):
     """4.4.5 printer-location (text(127))
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "printer-location"
-
-class PrinterInfo(Attribute):
+    raise ClientErrorAttributes, "printer-location"
+
+def PrinterInfo(val):
     """4.4.6 printer-info (text(127))
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "printer-info"
-
-class PrinterMoreInfo(Attribute):
+    raise ClientErrorAttributes, "printer-info"
+
+def PrinterMoreInfo(val):
     """4.4.7 printer-more-info (uri)
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "printer-more-info"
-
-class PrinterDriverInstaller(Attribute):
+    raise ClientErrorAttributes, "printer-more-info"
+
+def PrinterDriverInstaller(val):
     """4.4.8 printer-driver-installer (uri)
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "printer-driver-installer"
-
-class PrinterMakeAndModel(Attribute):
+    raise ClientErrorAttributes, "printer-driver-installer"
+
+def PrinterMakeAndModel(val):
     """4.4.9 printer-make-and-model (text(127))
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "printer-make-and-model"
-
-class PrinterMoreInfoManufacturer(Attribute):
+    raise ClientErrorAttributes, "printer-make-and-model"
+
+def PrinterMoreInfoManufacturer(val):
     """4.4.10 printer-more-info-manufacturer (uri)
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "printer-more-info-manufacturer"
-
-class PrinterState(Attribute):
+    raise ClientErrorAttributes, "printer-more-info-manufacturer"
+
+def PrinterState(val):
     """4.4.11 printer-state (type1 enum)
 
@@ -203,10 +193,9 @@
     """
     
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            'printer-state',
-            [Value(IntegerTags.ENUM, val)])
-
-class PrinterStateReasons(Attribute):
+    return Attribute(
+        'printer-state',
+        [Value(IntegerTags.ENUM, val)])
+
+def PrinterStateReasons(*vals):
     """4.4.12 printer-state-reasons (1setOf type2 keyword)
 
@@ -221,18 +210,16 @@
     """
     
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            'printer-state-reasons',
-            [Value(CharacterStringTags.KEYWORD, val)])
-
-class PrinterStateMessage(Attribute):
+    return Attribute(
+        'printer-state-reasons',
+        [Value(CharacterStringTags.KEYWORD, val) for val in vals])
+
+def PrinterStateMessage(val):
     """4.4.13 printer-state-message (text(MAX))
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "printer-state-message"
-
-class IppVersionsSupported(Attribute):
+    raise ClientErrorAttributes, "printer-state-message"
+
+def IppVersionsSupported(*vals):
     """4.4.14 ipp-versions-supported (1setOf type2 keyword)
 
@@ -266,10 +253,9 @@
     """
     
-    def __init__(self, *vals):
-        super(type(self), self).__init__(
-            'ipp-versions-supported',
-            [Value(CharacterStringTags.KEYWORD, val) for val in vals])
-
-class OperationsSupported(Attribute):
+    return Attribute(
+        'ipp-versions-supported',
+        [Value(CharacterStringTags.KEYWORD, val) for val in vals])
+
+def OperationsSupported(*vals):
     """4.4.15 operations-supported (1setOf type2 enum)
 
@@ -286,10 +272,9 @@
     """
     
-    def __init__(self, *vals):
-        super(type(self), self).__init__(
-            'operations-supported',
-            [Value(IntegerTags.ENUM, val) for val in vals])
-
-class MultipleDocumentJobsSupported(Attribute):
+    return Attribute(
+        'operations-supported',
+        [Value(IntegerTags.ENUM, val) for val in vals])
+
+def MultipleDocumentJobsSupported(val):
     """4.4.16 multiple-document-jobs-supported (boolean)
 
@@ -302,10 +287,9 @@
     """
     
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            'multiple-document-jobs-supported',
-            [Value(IntegerTags.BOOLEAN, val)])
-
-class CharsetConfigured(Attribute):
+    return Attribute(
+        'multiple-document-jobs-supported',
+        [Value(IntegerTags.BOOLEAN, val)])
+
+def CharsetConfigured(val):
     """4.4.17 charset-configured (charset)
 
@@ -321,10 +305,9 @@
     """
     
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            'charset-configured',
-            [Value(CharacterStringTags.CHARSET, val)])
-
-class CharsetSupported(Attribute):
+    return Attribute(
+        'charset-configured',
+        [Value(CharacterStringTags.CHARSET, val)])
+
+def CharsetSupported(*vals):
     """4.4.18 charset-supported (1setOf charset)
 
@@ -344,10 +327,9 @@
     """
     
-    def __init__(self, *vals):
-        super(type(self), self).__init__(
-            'charset-supported',
-            [Value(CharacterStringTags.CHARSET, val) for val in vals])
-
-class NaturalLanguageConfigured(Attribute):
+    return Attribute(
+        'charset-supported',
+        [Value(CharacterStringTags.CHARSET, val) for val in vals])
+
+def NaturalLanguageConfigured(val):
     """4.4.19 natural-language-configured (naturalLanguage)
 
@@ -370,10 +352,9 @@
     """
     
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            'natural-language-configured',
-            [Value(CharacterStringTags.NATURAL_LANGUAGE, val)])
-
-class GeneratedNaturalLanguageSupported(Attribute):
+    return Attribute(
+        'natural-language-configured',
+        [Value(CharacterStringTags.NATURAL_LANGUAGE, val)])
+
+def GeneratedNaturalLanguageSupported(*vals):
     """4.4.20 generated-natural-language-supported (1setOf naturalLanguage)
 
@@ -402,10 +383,9 @@
     """
     
-    def __init__(self, *vals):
-        super(type(self), self).__init__(
-            'generated-natural-language-supported',
-            [Value(CharacterStringTags.NATURAL_LANGUAGE, val) for val in vals])
-
-class DocumentFormatDefault(Attribute):
+    return Attribute(
+        'generated-natural-language-supported',
+        [Value(CharacterStringTags.NATURAL_LANGUAGE, val) for val in vals])
+
+def DocumentFormatDefault(val):
     """4.4.21 document-format-default (mimeMediaType)
 
@@ -421,10 +401,9 @@
     """
     
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            'document-format-default',
-            [Value(CharacterStringTags.MIME_MEDIA_TYPE, val)])
-
-class DocumentFormatSupported(Attribute):
+    return Attribute(
+        'document-format-default',
+        [Value(CharacterStringTags.MIME_MEDIA_TYPE, val)])
+
+def DocumentFormatSupported(*vals):
     """4.4.22 document-format-supported (1setOf mimeMediaType)
 
@@ -436,10 +415,9 @@
     """
     
-    def __init__(self, *vals):
-        super(type(self), self).__init__(
-            'document-format-supported',
-            [Value(CharacterStringTags.MIME_MEDIA_TYPE, val) for val in vals])
-
-class PrinterIsAcceptingJobs(Attribute):
+    return Attribute(
+        'document-format-supported',
+        [Value(CharacterStringTags.MIME_MEDIA_TYPE, val) for val in vals])
+
+def PrinterIsAcceptingJobs(val):
     """4.4.23 printer-is-accepting-jobs (boolean)
 
@@ -462,10 +440,9 @@
     """
     
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            'printer-is-accepting-jobs',
-            [Value(IntegerTags.BOOLEAN, val)])
-
-class QueuedJobCount(Attribute):
+    return Attribute(
+        'printer-is-accepting-jobs',
+        [Value(IntegerTags.BOOLEAN, val)])
+
+def QueuedJobCount(val):
     """4.4.24 queued-job-count (integer(0:MAX))
 
@@ -476,34 +453,30 @@
     """
     
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            'queued-job-count',
-            [Value(IntegerTags.INTEGER, val)])
-
-class PrinterMessageFromOperator(Attribute):
+    return Attribute(
+        'queued-job-count',
+        [Value(IntegerTags.INTEGER, val)])
+
+def PrinterMessageFromOperator(val):
     """4.4.25 printer-message-from-operator (text(127))
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "printer-message-from-operator"
-
-class ColorSupported(Attribute):
+    raise ClientErrorAttributes, "printer-message-from-operator"
+
+def ColorSupported(val):
     """4.4.26 color-supported (boolean)
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "color-supported"
-
-class ReferenceUriSchemeSupported(Attribute):
+    raise ClientErrorAttributes, "color-supported"
+    
+def ReferenceUriSchemeSupported(val):
     """4.4.27 reference-uri-schemes-supported (1setOf uriScheme)
 
     """
 
-    def __init__(self, *vals):
-        raise ClientErrorAttributes, "reference-uri-scheme-supported"
-
-class PdlOverrideSupported(Attribute):
+    raise ClientErrorAttributes, "reference-uri-scheme-supported"
+
+def PdlOverrideSupported(val):
     """4.4.28 pdl-override-supported (type2 keyword)
 
@@ -528,10 +501,9 @@
     """
     
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            'pdl-override-supported',
-            [Value(CharacterStringTags.KEYWORD, val)])
-
-class PrinterUpTime(Attribute):
+    return Attribute(
+        'pdl-override-supported',
+        [Value(CharacterStringTags.KEYWORD, val)])
+
+def PrinterUpTime(val):
     """4.4.29 printer-up-time (integer(1:MAX))
 
@@ -566,18 +538,16 @@
     """
     
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            'printer-up-time',
-            [Value(IntegerTags.INTEGER, val)])
-
-class PrinterCurrentTime(Attribute):
+    return Attribute(
+        'printer-up-time',
+        [Value(IntegerTags.INTEGER, val)])
+
+def PrinterCurrentTime(val):
     """4.4.30 printer-current-time (dateTime)
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "printer-current-time"
-
-class MultipleOperationTimeOut(Attribute):
+    raise ClientErrorAttributes, "printer-current-time"
+
+def MultipleOperationTimeOut(val):
     """4.4.31 multiple-operation-time-out (integer(1:MAX))
 
@@ -598,10 +568,9 @@
     """
     
-    def __init__(self, val):
-        super(type(self), self).__init__(
-            'multiple-operation-time-out',
-            [Value(IntegerTags.INTEGER, val)])
-
-class CompressionSupported(Attribute):
+    return Attribute(
+        'multiple-operation-time-out',
+        [Value(IntegerTags.INTEGER, val)])
+
+def CompressionSupported(*vals):
     """4.4.32 compression-supported (1setOf type3 keyword)
 
@@ -623,47 +592,41 @@
     """
     
-    def __init__(self, *vals):
-        super(type(self), self).__init__(
-            'compression-supported',
-            [Value(CharacterStringTags.KEYWORD, val) for val in vals])
-
-class JobKOctetsSupported(Attribute):
+    return Attribute(
+        'compression-supported',
+        [Value(CharacterStringTags.KEYWORD, val) for val in vals])
+
+def JobKOctetsSupported(val):
     """4.4.33 job-k-octets-supported (rangeOfInteger(0:MAX))
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "job-k-octets-supported"
-
-class JobImpressionsSupported(Attribute):
+    raise ClientErrorAttributes, "job-k-octets-supported"
+
+def JobImpressionsSupported(val):
     """4.4.34 job-impressions-supported (rangeOfInteger(0:MAX))
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "job-impressions-supported"
-
-class JobMediaSheetsSupported(Attribute):
+    raise ClientErrorAttributes, "job-impressions-supported"
+
+def JobMediaSheetsSupported(val):
     """4.4.35 job-media-sheets-supported (rangeOfInteger(0:MAX))
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "job-media-sheets-supported"
-
-class PagesPerMinute(Attribute):
+    raise ClientErrorAttributes, "job-media-sheets-supported"
+
+def PagesPerMinute(val):
     """4.4.36 pages-per-minute (integer(0:MAX))
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "pages-per-minute"
-
-class PagesPerMinuteColor(Attribute):
+    raise ClientErrorAttributes, "pages-per-minute"
+
+def PagesPerMinuteColor(val):
     """4.4.37 pages-per-minute-color (integer(0:MAX))
 
     """
 
-    def __init__(self, val):
-        raise ClientErrorAttributes, "pages-per-minute-color"
-    
+    raise ClientErrorAttributes, "pages-per-minute-color"
+    
