From Fedora Project Wiki
< Printing
CUPS changes to be aware of
This is a list of the changes to be aware of when using pycups to communicate with a CUPS server that may be 1.1.x, or may be 1.2.x.
- cups.Connection.getDevices ()
- In CUPS 1.2, devices like 'usb:/dev/usb/lp0' will not be present if there is no printer detected on that port
- 'device-id' device attribute will not be present in CUPS 1.1.x
- cups.Connection.getPrinters ()
- 'printer-is-shared' attribute is new to CUPS 1.2.x, describing whether this printer is published in IPP browse packets, and whether jobs may be submitted remotely
- cups.Connection.setPrinterShared () will have no effect on CUPS 1.1.x servers but will not fail! The only way to detect that it did not succeed is to check for the 'printer-is-shared' attribute in the getPrinters() result.
- cups.Connection.getPrinterAttributes ()
- 'printer-error-policy-supported' will not be present in CUPS 1.1.x
- 'printer-op-policy-supported' will not be present in CUPS 1.1.x
- 'request-user-name-allowed' will not be present in CUPS 1.1.x, and will only be present in CUPS 1.2 if there are users in the restriction list (and it is marked 'allow')
- 'request-user-name-denied' will not be present in CUPS 1.1.x, and will only be present in CUPS 1.2 if there are users in the restriction list (and it is marked 'deny')
- cups.Connection.setPrinterErrorPolicy () will have no effect on CUPS 1.1.x servers, and anyway there is no 'printer-error-policy-supported' attribute to pick a value from
- cups.Connection.setPrinterOpPolicy () will have no effect on CUPS 1.1.x servers, and anyway there is no 'printer-op-policy-supported' attribute to pick a value from
- cups.Connection.setPrinterUsersAllowed/Denied() will have no effect on CUPS 1.1.x servers, and the only way to detect that it has failed is to check the 'request-user-name-allowed' or 'request-user-name-denied' printer attributes.
- cups.Connection.getPPDs()
- 'ppd-device-id' will only be present in CUPS 1.2