Skip to content

Commit

Permalink
Move server to scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
fangpenlin committed Dec 15, 2010
1 parent 73363b6 commit 0fb0053
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 36 deletions.
File renamed without changes.
49 changes: 40 additions & 9 deletions loso/scripts.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
from distutils.cmd import Command
from distutils.errors import DistutilsOptionError

import server
import yaml

import service

class InteractCommand(Command):
description = 'provide interact interface for testing splitting terms'
Expand All @@ -17,10 +19,10 @@ def finalize_options(self):

def run(self):
logging.basicConfig(level=logging.DEBUG)
service = server.SegumentService()
seg_service = service.SegumentService()
while True:
text = raw_input('Text:').decode(sys.stdin.encoding)
terms = service.splitTerms(text)
terms = seg_service.splitTerms(text)
print ' '.join(terms)

class FeedCommand(Command):
Expand All @@ -43,10 +45,9 @@ def finalize_options(self):

def run(self):
logging.basicConfig(level=logging.DEBUG)
service = server.SegumentService()
service.feed(self.text)
seg_service = service.SegumentService()
seg_service.feed(self.text)


class ResetCommand(Command):
description = 'reset lexicon database'
user_options = []
Expand All @@ -59,6 +60,36 @@ def finalize_options(self):

def run(self):
logging.basicConfig(level=logging.DEBUG)
service = server.SegumentService()
service.db.reset()
print 'Done.'
seg_service = service.SegumentService()
seg_service.db.reset()
print 'Done.'

class ServeCommand(Command):
description = 'run segmentation server'
user_options = [
('config=', 'c', 'path to configuration'),
]

def initialize_options(self):
self.config_file = 'config.yaml'

def finalize_options(self):
self.config = yaml.load(open(self.config_file, 'rt'))

def run(self):
from SimpleXMLRPCServer import SimpleXMLRPCServer

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger('segment.main')

seg_service = service.SegumentService()

xmlrpc_config = self.config['xmlrpc']
interface = xmlrpc_config.get('interface', '0.0.0.0')
port = xmlrpc_config.get('port', 5566)
logger.info('Start segmentation service at %s:%d', interface, port)

server = SimpleXMLRPCServer((interface, port), allow_none=True)
server.register_introspection_functions()
server.register_instance(seg_service)
server.serve_forever()
27 changes: 1 addition & 26 deletions loso/server.py → loso/service.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
# -*- coding: utf8 -*-
import logging
from SimpleXMLRPCServer import SimpleXMLRPCServer
from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler

import yaml

from loso import lexicon

Expand Down Expand Up @@ -50,25 +46,4 @@ def extractEnglishTerms(self, text):
"""Extract English terms from Chinese text
"""
return list(lexicon.iterEnglishTerms(text))

def main():
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger('segment.main')

config = yaml.load(open('config.yaml', 'rt'))

service = SegumentService()

xmlrpc_config = config['xmlrpc']
interface = xmlrpc_config.get('interface', '0.0.0.0')
port = xmlrpc_config.get('port', 5566)
logger.info('Start segmentation service at %s:%d', interface, port)

server = SimpleXMLRPCServer((interface, port), allow_none=True)
server.register_introspection_functions()
server.register_instance(service)
server.serve_forever()

if __name__ == '__main__':
main()
return list(lexicon.iterEnglishTerms(text))
3 changes: 2 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change