STV ( Single Transferable Vote ) 投票を実装したい ASP.NET MVC (C#) サイトを構築しています。私は以前に OpenSTV を投票シナリオに使用したことがあり、大きな成功を収めましたが、プログラムで使用したことはありません。
OpenSTV Google Code プロジェクトは、他のアプリケーションから OpenSTV を使用できるようにする Python スクリプトを提供します。
import sys
sys.path.append("path to openstv package")
from openstv.ballots import Ballots
from openstv.ReportPlugins.TextReport import TextReport
from openstv.plugins import getMethodPlugins
(ballotFname, method, reportFname) = sys.argv[1:]
methods = getMethodPlugins("byName")
f = open(reportFname, "w")
try:
b = Ballots()
b.loadUnknown(ballotFname)
except Exception, msg:
print >> f, ("Unable to read ballots from %s" % ballotFname)
print >> f, msg
sys.exit(-1)
try:
e = methods[method](b)
e.runElection()
except Exception, msg:
print >> f, ("Unable to count votes using %s" % method)
print >> f, msg
sys.exit(-1)
try:
r = TextReport(e, outputFile=f)
r.generateReport();
except Exception, msg:
print >> f, "Unable to write report"
print >> f, msg
sys.exit(-1)
f.close()
C# ASP.NET MVC サイトからこのような Python 呼び出しを行う方法はありますか?
もしそうなら、どのように?
前もって感謝します!