annotate jupyter_CbC_kernel/install_CbC_kernel @ 86:62bff02c6fbc

fix file name
author musou_aka <>
date Tue, 26 Jun 2018 10:38:44 +0900
parents jupyter_CbC_kernel/install_c_kernel@70e6b10d9220
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
58
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
1 #!/usr/bin/env python
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
2
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
3 import json
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
4 import os
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
5 import sys
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
6 import argparse
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
7
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
8 from jupyter_client.kernelspec import KernelSpecManager
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
9 from IPython.utils.tempdir import TemporaryDirectory
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
10
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
11 kernel_json = {
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
12 "argv": [
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
13 "python3",
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
14 "-m",
82
70e6b10d9220 rename CbC kernel
musou_aka <>
parents: 66
diff changeset
15 "jupyter_CbC_kernel",
58
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
16 "-f",
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
17 "{connection_file}"
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
18 ],
82
70e6b10d9220 rename CbC kernel
musou_aka <>
parents: 66
diff changeset
19 "display_name": "CbC",
70e6b10d9220 rename CbC kernel
musou_aka <>
parents: 66
diff changeset
20 "language": "CbC"
58
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
21 }
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
22
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
23
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
24 def install_my_kernel_spec(user=True, prefix=None):
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
25 with TemporaryDirectory() as td:
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
26 os.chmod(td, 0o755) # Starts off as 700, not user readable
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
27 with open(os.path.join(td, 'kernel.json'), 'w') as f:
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
28 json.dump(kernel_json, f, sort_keys=True)
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
29 # TODO: Copy resources once they're specified
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
30
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
31 print('Installing IPython kernel spec')
82
70e6b10d9220 rename CbC kernel
musou_aka <>
parents: 66
diff changeset
32 KernelSpecManager().install_kernel_spec(td, 'CbC', user=user, replace=True, prefix=prefix)
58
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
33
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
34
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
35 def _is_root():
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
36 try:
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
37 return os.geteuid() == 0
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
38 except AttributeError:
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
39 return False # assume not an admin on non-Unix platforms
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
40
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
41
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
42 def main(argv=[]):
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
43 parser = argparse.ArgumentParser(
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
44 description='Install KernelSpec for C Kernel'
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
45 )
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
46 prefix_locations = parser.add_mutually_exclusive_group()
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
47
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
48 prefix_locations.add_argument(
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
49 '--user',
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
50 help='Install KernelSpec in user homedirectory',
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
51 action='store_false' if _is_root() else 'store_true'
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
52 )
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
53 prefix_locations.add_argument(
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
54 '--sys-prefix',
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
55 help='Install KernelSpec in sys.prefix. Useful in conda / virtualenv',
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
56 action='store_true',
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
57 dest='sys_prefix'
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
58 )
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
59 prefix_locations.add_argument(
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
60 '--prefix',
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
61 help='Install KernelSpec in this prefix',
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
62 default=None
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
63 )
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
64
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
65 args = parser.parse_args()
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
66
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
67 if args.sys_prefix:
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
68 prefix = sys.prefix
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
69 user = None
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
70 elif args.user:
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
71 prefix = None
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
72 user = True
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
73 else:
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
74 prefix = args.prefix
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
75 user = None
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
76
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
77 install_my_kernel_spec(user=user, prefix=prefix)
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
78
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
79
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
80 if __name__ == '__main__':
8a8a9952c887 Change install procedure
Brendan Rius <brendan.rius@gmail.com>
parents:
diff changeset
81 main(argv=sys.argv)