4 python example-service.py &
11 class Info(service
.Service
):
12 def __init__(self
, apertium_dir
):
13 service
.Service
.__init
__(self
, '/')
14 self
._directory
= apertium_dir
16 @service.method("org.apertium.Info", in_signature
='', out_signature
='s')
18 return self
._directory
20 @service.method("org.apertium.Info", in_signature
='', out_signature
='s')
21 def mode_directory(self
):
22 return path
.join(self
.directory(), "share", "apertium", "modes")
24 @service.method("org.apertium.Info", in_signature
='', out_signature
='as')
29 for dirent
in os
.listdir(self
.mode_directory()):
30 fname
, ext
= path
.splitext(dirent
)
37 @service.method("org.apertium.Info", in_signature
='s', out_signature
='aas')
38 def get_pipeline(self
, mode
):
41 mode_content
= open(path
.join(self
.mode_directory(), mode
+ '.mode')).read()
42 return [re
.split('[ \t\n]*', command
.strip()) for command
in mode_content
.split('|')]
45 pipeline_filters
= {'txt' : ('apertium-destxt', 'apertium-retxt')}
47 @service.method("org.apertium.Info", in_signature
='s', out_signature
='as')
48 def get_filters(self
, _type
):
49 return [path
.join(self
.directory(), 'bin', exe
) for exe
in self
.pipeline_filters
[_type
]]
52 def quit_handler(*args
):
57 from optparse
import OptionParser
, make_option
60 make_option("-p", "--path", dest
="filename", type="string",
61 help="The prefix of the Apertium installation."),
62 make_option("-v", "--verbose",
66 usage
= "usage: %prog [options] arg"
68 if __name__
== "__main__":
69 parser
= OptionParser(usage
, option_list
= option_list
)
70 options
, args
= parser
.parse_args()
72 info
= Info(options
.filename
)
73 service
.add_signal_receiver(quit_handler
, dbus_interface
= "org.apertium.General", signal_name
= "QuitSignal")
74 service
.run_as("org.apertium.info")