qp2/bin/qp_basis

55 lines
1.2 KiB
Python
Executable File

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Installs basis sets in the data directory from Basis Set Exchange.
Usage:
qp_basis list
qp_basis get BSE_BASIS
qp_basis install BSE_BASIS QP_BASIS
"""
import sys
import os
import subprocess
try:
from docopt import docopt
from qp_path import QP_ROOT
except ImportError:
print("Please check if you have sourced the ${QP_ROOT}/quantum_package.rc")
print("(`source ${QP_ROOT}/quantum_package.rc`)")
sys.exit(1)
def main(arguments):
"""Main function"""
if arguments["list"]:
os.system("bse list-basis-sets")
elif arguments["install"]:
bse_basis = arguments["BSE_BASIS"]
qp_basis = arguments["QP_BASIS"]
for character in """"[]{}()*&%$#!;:,<>?'|\\""":
if character in qp_basis:
print("Invalid character %s in QP_BASIS"%character)
sys.exit(1)
path = QP_ROOT+"/data/basis/"+qp_basis
os.system("bse get-basis --unc-spdf '%s' gamess_us > %s"%(bse_basis, path))
elif arguments["get"]:
bse_basis = arguments["BSE_BASIS"]
os.system("bse get-basis --unc-spdf '%s' gamess_us"%(bse_basis))
if __name__ == '__main__':
ARGS = docopt(__doc__)
main(ARGS)