iclientpy.notebook.start_server 源代码

from notebook.notebookapp import main as nbmain
from iclientpy.server import Server
from os.path import join as pjoin, abspath, dirname, exists
from os import mkdir
import argparse
import sys


[文档]def get_parser(): parser = argparse.ArgumentParser(epilog='for more information , visit<http://iclientpy.supermap.io/>.', description=""" iServer启动示范代码 """) parser.add_argument('-l', '--uri', dest='address', help='服务地址,如:http://localhost:8090/iserver') parser.add_argument('-u', '--user', dest='username', help='用户名') parser.add_argument('-p', '--password', dest='password', help='密码') parser.add_argument('--dir', dest='notebook_dir', default='.', help='notebook目录') parser.add_argument('--ip', dest='ip', default='localhost', help='notebook服务ip') parser.add_argument('--port', dest='port', default=8888, type=int, help='notebook服务端口') return parser
[文档]def main(argv=sys.argv[1:]): parser = get_parser() try: if not argv: parser.print_usage() parser.exit(1) args = parser.parse_known_args(argv)[0] d = vars(args) d = dict((k, v) for k, v in d.items() if not (v is None)) notebook_dir = d['notebook_dir'] if notebook_dir == '.': notebook_dir = '.\iclientpy' if not exists(notebook_dir): mkdir(notebook_dir) if not exists(pjoin(notebook_dir, "preliminary_server.ipynb")): ip = d['ip'] port = d['port'] param = [d["address"]] if "username" in d: param.append(d["username"]) if "password" in d: param.append(d["password"]) server = Server(*param) services = server.services first_map_service_name = 'map-world/rest' for index, name in services: service = services[index] if hasattr(service, 'maps'): first_map_service_name = name break map_service = services[first_map_service_name] maps = map_service.maps first_map_name = 'World' for map_index, map_name in maps: first_map_name = map_name break with open(pjoin(abspath(dirname(__file__)), 'server_template.ipynb'), mode='r', encoding='utf8') as src: with open(pjoin(notebook_dir, 'preliminary_server.ipynb'), mode='w+', encoding='utf8') as tar: for line in src.readlines(): line = line.replace('{param}', ','.join(["'" + p + "'" for p in param])) line = line.replace('{map_service}', "'" + first_map_service_name + "'") line = line.replace('{map_name}', first_map_name) tar.write(line) sys.argv = sys.argv[:1] nbmain(notebook_dir=notebook_dir, ip=ip, port=port) except SystemExit as err: return err.code return 0
if __name__ == '__main__': main()