Last active
August 25, 2020 14:47
-
-
Save michaelmhoffman/15e0fc61dab94a689e73542a29eaaae1 to your computer and use it in GitHub Desktop.
Template for Python scripts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defun new-copyright () | |
"Generate new copyright string." | |
(format-time-string "Copyright %Y Michael M. Hoffman <[email protected]>")) | |
(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")) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3.6 | |
"""REPLACE_THIS.py: REPLACE_WITH_DESCRIPTION | |
""" | |
__version__ = "0.1" | |
# Copyright 2020 Michael M. Hoffman <[email protected]> | |
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