Created
August 10, 2022 08:20
-
-
Save nick-youngblut/f701d6910032ee24a2bb7aa807f9118e to your computer and use it in GitHub Desktop.
boilerplate for argparse python script
This file contains hidden or 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 python | |
from __future__ import print_function | |
import os | |
import sys | |
import re | |
import gzip | |
import bz2 | |
import argparse | |
import logging | |
# logging | |
logging.basicConfig(format='%(asctime)s - %(message)s', level=logging.DEBUG) | |
# argparse | |
class CustomFormatter(argparse.ArgumentDefaultsHelpFormatter, | |
argparse.RawDescriptionHelpFormatter): | |
pass | |
desc = 'Template python script' | |
epi = """DESCRIPTION: | |
* placeholder1 | |
* placehodler2 | |
""" | |
parser = argparse.ArgumentParser(description=desc, epilog=epi, | |
formatter_class=CustomFormatter) | |
parser.add_argument('input_file', type=str, | |
help='Input file') | |
parser.add_argument('--param', type=str, default='test', | |
help='Test parameter') | |
parser.add_argument('--version', action='version', version='0.0.1') | |
# functions | |
def _open(infile, mode='rb'): | |
""" | |
Openning of input, regardless of compression | |
""" | |
if infile.endswith('.bz2'): | |
return bz2.open(infile, mode) | |
elif infile.endswith('.gz'): | |
return gzip.open(infile, mode) | |
else: | |
return open(infile) | |
def _decode(x): | |
""" | |
Decoding input, if needed | |
""" | |
try: | |
x = x.decode('utf-8') | |
except AttributeError: | |
pass | |
return x | |
## main interface function | |
def main(args): | |
pass | |
## script main | |
if __name__ == '__main__': | |
args = parser.parse_args() | |
main(args) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment