summaryrefslogtreecommitdiff
path: root/source3/python/printerdata.py
blob: 3384de4f30b29b5aa2e671ea0f6df1a91d28403c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#
# A python module that maps printerdata to a dictionary.  We define
# two classes.  The printerdata class maps to Get/Set/Enum/DeletePrinterData
# and the printerdata_ex class maps to Get/Set/Enum/DeletePrinterDataEx
#

import spoolss

class printerdata:
    def __init__(self, host, creds = {}):
        self.hnd = spoolss.openprinter(host, creds = creds)

    def keys(self):
        return self.hnd.enumprinterdata().keys()

    def __getitem__(self, key):
        return self.hnd.getprinterdata(key)['data']

    def __setitem__(self, key, value):
        # Store as REG_BINARY for now
        self.hnd.setprinterdata({"key": "", "value": key, "type": 3,
                                 "data": value})
        
class printerdata_ex:
    def __init__(self, host, creds = {}):
        self.hnd = spoolss.openprinter(host, creds = creds)

    def keys(self):
        return self.hnd.enumprinterdataex("PrinterDriverData").keys()

    def __getitem__(self, key):
        return self.hnd.getprinterdataex("PrinterDriverData", key)['data']

    def __setitem__(self, key, value):
        # Store as REG_BINARY for now
        self.hnd.setprinterdataex({"key": "PrinterDriverData", "value": key, "type": 3,
                                 "data": value})