Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save crazyhottommy/7c5da0050e5786cb0d4e0b21c00accdb to your computer and use it in GitHub Desktop.
Save crazyhottommy/7c5da0050e5786cb0d4e0b21c00accdb to your computer and use it in GitHub Desktop.
Template for Python scripts
(defun new-copyright ()
"Generate new copyright string."
(format-time-string "Copyright %Y Michael M. Hoffman <michael.hoffman@utoronto.ca>"))
(define-auto-insert 'python-mode
`(
"Description: "
"#!/usr/bin/env python3.6" \n
"\"\"\"" (setq basename (buffer-file-basename)) ": " str \n
"\"\"\"" \n \n
"__version__ = \"0.1\"" \n \n
"# " (new-copyright) \n \n
"from argparse import Namespace" \n
"from os import EX_OK" \n
"import sys" \n
"from typing import List, Optional" \n \n \n
"def " (setq namebase (file-name-sans-extension basename)) "(args: Namespace) -> int:\n"
" return EX_OK\n\n\n"
"def parse_args(args: List[str]) -> Namespace:\n"
" from argparse import ArgumentDefaultsHelpFormatter, ArgumentParser\n\n"
" description = __doc__.splitlines()[0].partition(\": \")[2]\n"
" parser = ArgumentParser(description=description,\n"
" formatter_class=ArgumentDefaultsHelpFormatter)\n\n"
" version = f\"%(prog)s {__version__}\"\n"
" parser.add_argument(\"--version\", action=\"version\", version=version)\n\n"
" return parser.parse_args(args)\n\n\n"
"def main(argv: List[str] = sys.argv[1:]) -> int:\n"
" args = parse_args(argv)\n\n"
" return " namebase "(args)\n\n\n"
"if __name__ == \"__main__\":\n"
" sys.exit(main())\n"))
#!/usr/bin/env python3.6
"""REPLACE_THIS.py: REPLACE_WITH_DESCRIPTION
"""
__version__ = "0.1"
# Copyright 2020 Michael M. Hoffman <michael.hoffman@utoronto.ca>
from argparse import Namespace
from os import EX_OK
import sys
from typing import List, Optional
def REPLACE_THIS(args: Namespace) -> int:
return EX_OK
def parse_args(args: List[str]) -> Namespace:
from argparse import ArgumentDefaultsHelpFormatter, ArgumentParser
description = __doc__.splitlines()[0].partition(": ")[2]
parser = ArgumentParser(description=description,
formatter_class=ArgumentDefaultsHelpFormatter)
version = f"%(prog)s {__version__}"
parser.add_argument("--version", action="version", version=version)
return parser.parse_args(args)
def main(argv: List[str] = sys.argv[1:]) -> int:
args = parse_args(argv)
return REPLACE_THIS(args)
if __name__ == "__main__":
sys.exit(main())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment