__main__.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. from notebook.auth import passwd
  2. from getpass import getpass
  3. from notebook.config_manager import BaseJSONConfigManager
  4. from jupyter_core.paths import jupyter_config_dir
  5. import argparse
  6. import sys
  7. def set_password(args):
  8. password = args.password
  9. while not password :
  10. password1 = getpass("" if args.quiet else "Provide password: ")
  11. password_repeat = getpass("" if args.quiet else "Repeat password: ")
  12. if password1 != password_repeat:
  13. print("Passwords do not match, try again")
  14. elif len(password1) < 4:
  15. print("Please provide at least 4 characters")
  16. else:
  17. password = password1
  18. password_hash = passwd(password)
  19. cfg = BaseJSONConfigManager(config_dir=jupyter_config_dir())
  20. cfg.update('jupyter_notebook_config', {
  21. 'NotebookApp': {
  22. 'password': password_hash,
  23. }
  24. })
  25. if not args.quiet:
  26. print("password stored in config dir: %s" % jupyter_config_dir())
  27. def main(argv):
  28. parser = argparse.ArgumentParser(argv[0])
  29. subparsers = parser.add_subparsers()
  30. parser_password = subparsers.add_parser('password', help='sets a password for your notebook server')
  31. parser_password.add_argument("password", help="password to set, if not given, a password will be queried for (NOTE: this may not be safe)",
  32. nargs="?")
  33. parser_password.add_argument("--quiet", help="suppress messages", action="store_true")
  34. parser_password.set_defaults(function=set_password)
  35. args = parser.parse_args(argv[1:])
  36. args.function(args)
  37. if __name__ == "__main__":
  38. main(sys.argv)