root / pykota / trunk / pykota / requesters / external.py @ 1068

Revision 1068, 2.8 kB (checked in by jalet, 21 years ago)

Lots of small fixes with the help of PyChecker?

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
RevLine 
[952]1# PyKota
[745]2#
[952]3# PyKota - Print Quotas for CUPS and LPRng
4#
[745]5# (c) 2003 Jerome Alet <alet@librelogiciel.com>
[873]6# This program is free software; you can redistribute it and/or modify
7# it under the terms of the GNU General Public License as published by
8# the Free Software Foundation; either version 2 of the License, or
9# (at your option) any later version.
[745]10#
[873]11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14# GNU General Public License for more details.
15#
16# You should have received a copy of the GNU General Public License
17# along with this program; if not, write to the Free Software
18# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
[745]19#
20# $Id$
21#
22# $Log$
[1068]23# Revision 1.8  2003/07/07 11:49:24  jalet
24# Lots of small fixes with the help of PyChecker
25#
[952]26# Revision 1.7  2003/04/23 22:13:57  jalet
27# Preliminary support for LPRng added BUT STILL UNTESTED.
28#
[873]29# Revision 1.6  2003/03/29 13:45:27  jalet
30# GPL paragraphs were incorrectly (from memory) copied into the sources.
31# Two README files were added.
32# Upgrade script for PostgreSQL pre 1.01 schema was added.
33#
[789]34# Revision 1.5  2003/02/10 11:47:39  jalet
35# Moved some code down into the requesters
36#
[786]37# Revision 1.4  2003/02/10 10:36:33  jalet
38# Small problem wrt external requester
39#
[780]40# Revision 1.3  2003/02/10 00:42:17  jalet
41# External requester should be ok (untested)
42# New syntax for configuration file wrt requesters
43#
[773]44# Revision 1.2  2003/02/09 13:05:43  jalet
45# Internationalization continues...
46#
[745]47# Revision 1.1  2003/02/07 13:15:01  jalet
48# External requester skeleton added.
49#
50#
51#
52
53import os
54from pykota.requester import PyKotaRequesterError
55
56class Requester :
57    """A class to send queries to printers via external commands."""
[1068]58    def __init__(self, printername, arguments) :
[745]59        """Sets instance vars depending on the current printer."""
60        self.printername = printername
[789]61        self.commandline = arguments.strip()
[745]62       
[780]63    def getPrinterPageCounter(self, printer) :
64        """Returns the page counter from the printer via an external command.
[745]65       
[780]66           The external command must report the life time page number of the printer on stdout.
[745]67        """
[780]68        commandline = self.commandline % locals()
69        if printer is None :
70            raise PyKotaRequesterError, _("Unknown printer address in EXTERNAL(%s) for printer %s") % (commandline, self.printername)
71        answer = os.popen(commandline)
72        try :
73            pagecounter = int(answer.readline().strip())
[786]74        except ValueError :   
[780]75            raise PyKotaRequesterError, _("Unable to query printer %s via EXTERNAL(%s)") % (printer, commandline) 
76        answer.close()
77        return pagecounter
[745]78       
Note: See TracBrowser for help on using the browser.