From: David Adam (zanchey) Date: Thu, 19 Jan 2012 12:37:51 +0000 (+0800) Subject: switch from popen2 to subprocess (fix deprecation warnings) X-Git-Url: https://git.ucc.asn.au/?a=commitdiff_plain;h=68807329464d87c004c974ff07ec0db09810002a;p=zanchey%2Fdispense2.git switch from popen2 to subprocess (fix deprecation warnings) --- diff --git a/sql-edition/servers/Idler.py b/sql-edition/servers/Idler.py index ff73c2a..5b66455 100755 --- a/sql-edition/servers/Idler.py +++ b/sql-edition/servers/Idler.py @@ -1,6 +1,7 @@ #!/usr/bin/env python -import string, time, popen2, os +import string, time, os +from subprocess import Popen, PIPE from random import random from MessageKeeper import MessageKeeper @@ -281,10 +282,8 @@ class FortuneIdler(StringIdler): fortune = "/usr/games/fortune" text = "I broke my wookie...." if os.access(fortune,os.F_OK|os.X_OK): - (stdout, stdin) = popen2.popen2(fortune) - text = string.join(stdout.readlines()) - stdout.close() - stdin.close() + (lines, unused) = Popen((fortune,), close_fds=True, stdout=PIPE).communicate() + text = string.join(lines) StringIdler.__init__(self, v, text,repeat=False) def affinity(self): @@ -294,10 +293,8 @@ class PipeIdler(StringIdler): def __init__(self, v, command, args): text = "I ate my cookie...." if os.access(command,os.F_OK|os.X_OK): - (stdout, stdin) = popen2.popen2(command+' '+args) - text = string.join(stdout.readlines()) - stdout.close() - stdin.close() + (lines, unused) = Popen([command,] + args.split(), close_fds=True, stdout=PIPE).communicate() + text = string.join(lines) StringIdler.__init__(self, v, text,repeat=False) def affinity(self): diff --git a/sql-edition/servers/VendServer.py b/sql-edition/servers/VendServer.py index e18d8a3..8d62489 100755 --- a/sql-edition/servers/VendServer.py +++ b/sql-edition/servers/VendServer.py @@ -10,7 +10,7 @@ import logging, logging.handlers from traceback import format_tb if USE_DB: import pg from time import time, sleep, mktime, localtime -from popen2 import popen2 +from subprocess import Popen, PIPE from LATClient import LATClient, LATClientException from SerialClient import SerialClient, SerialClientException from VendingMachine import VendingMachine, VendingException @@ -94,13 +94,10 @@ class DispenseDatabase: def scroll_options(username, mk, welcome = False): if welcome: - # Balance checking: crap code, [DAA]'s fault - # Updated 2011 to handle new dispense [MRD] - raw_acct = os.popen('dispense acct %s' % username) - acct = raw_acct.read() + # Balance checking + acct, unused = Popen(['dispense', 'acct', username], close_fds=True, stdout=PIPE).communicate() # this is fucking appalling balance = acct[acct.find("$")+1:acct.find("(")].strip() - raw_acct.close() msg = [(center('WELCOME'), False, TEXT_SPEED), (center(username), False, TEXT_SPEED), @@ -112,10 +109,8 @@ def scroll_options(username, mk, welcome = False): # Get coke contents cokes = [] for i in range(0, 7): - cmd = 'dispense iteminfo coke:%i' % i - raw = os.popen(cmd) - info = raw.read() - raw.close() + args = ('dispense', 'iteminfo', 'coke:%i' % i) + info, unused = Popen(args, close_fds=True, stdout=PIPE).communicate() m = re.match("\s*[a-z]+:\d+\s+(\d+)\.(\d\d)\s+([^\n]+)", info) cents = int(m.group(1))*100 + int(m.group(2)) cokes.append('%i %i %s' % (i, cents, m.group(3)));