<commit_before>#!/usr/bin/env python
# coding=utf-8

"""
This module implements input and output processing from QChem.
"""
import copy
import re
import numpy as np
from string import Template
from pymatgen import zopen, SymmOp
from pymatgen.core.structure import Molecule
from pymatgen.core.units import Energy
from pymatgen.serializers.json_coders import MSONable
from pymatgen.util.coord_utils import get_angle

__author__ = "<NAME>"
__copyright__ = "Copyright 2013, The Electrolyte Genome Project"
__version__ = "0.1"
__maintainer__ = "<NAME>"
__email__ = "<EMAIL>"
__date__ = "11/4/13"


class QcInput(MSONable):
    """
        An object representing a QChem input file.
    """

    optional_keywords_list = {"basis", "ecp", "empirical_dispersion",
                              "external_charges", "force_field_params",
                              "intracule", "isotopes", "aux_basis",
                              "localized_diabatization", "multipole_field",
                              "nbo", "occupied", "swap_occupied_virtual", "opt",
                              "pcm", "pcm_solvent", "plots", "qm_atoms", "svp",
                              "svpirf", "van_der_waals", "xc_functional",
                              "cdft", "efp_fragments", "efp_params"}
    alternative_keys = {"job_type": "jobtype",
                        "symmetry_ignore": "sym_ignore"}
    alternative_values = {"optimization": "opt",
                          "frequency": "freq"}
    zmat_patt = re.compile("^(\w+)*([\s,]+(\w+)[\s,]+(\w+))*[\-\.\s,\w]*$")
    xyz_patt = re.compile("^(\w+)[\s,]+([\d\.eE\-]+)[\s,]+([\d\.eE\-]+)[\s,]+"
                          "([\d\.eE\-]+)[\-\.\s,\w.]*$")

    def __init__(self, molecule=None, charge=None, spin_multiplicity=None,
                 jobtype='SP', title=None, exchange="HF", correlation=None,
                 basis_set="6-31+G*", aux_basis_set=None, ecp=None,
                 rem_params=None, optional_params=None):
        """
        Args:<commit_msg>add scf_max_cycle alternate name<commit_after>#!/usr/bin/env python
# coding=utf-8

"""
This module implements input and output processing from QChem.
"""
import copy
import re
import numpy as np
from string import Template
from pymatgen import zopen, SymmOp
from pymatgen.core.structure import Molecule
from pymatgen.core.units import Energy
from pymatgen.serializers.json_coders import MSONable
from pymatgen.util.coord_utils import get_angle

__author__ = "<NAME>"
__copyright__ = "Copyright 2013, The Electrolyte Genome Project"
__version__ = "0.1"
__maintainer__ = "<NAME>"
__email__ = "<EMAIL>"
__date__ = "11/4/13"


class QcInput(MSONable):
    """
        An object representing a QChem input file.
    """

    optional_keywords_list = {"basis", "ecp", "empirical_dispersion",
                              "external_charges", "force_field_params",
                              "intracule", "isotopes", "aux_basis",
                              "localized_diabatization", "multipole_field",
                              "nbo", "occupied", "swap_occupied_virtual", "opt",
                              "pcm", "pcm_solvent", "plots", "qm_atoms", "svp",
                              "svpirf", "van_der_waals", "xc_functional",
                              "cdft", "efp_fragments", "efp_params"}
    alternative_keys = {"job_type": "jobtype",
                        "symmetry_ignore": "sym_ignore",
                        "scf_max_cycles": "max_scf_cycles"}
    alternative_values = {"optimization": "opt",
                          "frequency": "freq"}
    zmat_patt = re.compile("^(\w+)*([\s,]+(\w+)[\s,]+(\w+))*[\-\.\s,\w]*$")
    xyz_patt = re.compile("^(\w+)[\s,]+([\d\.eE\-]+)[\s,]+([\d\.eE\-]+)[\s,]+"
                          "([\d\.eE\-]+)[\-\.\s,\w.]*$")

    def __init__(self, molecule=None, charge=None, spin_multiplicity=None,
                 jobtype='SP', title=None, exchange="HF", correlation=None,
                 basis_set="6-31+G*", aux_basis_set=None, ecp=None,
                 rem_params=None, optional_params=None):
        """
        Args:
{'fraction_non_alphanumeric': 0.16017634092578986, 'fraction_numerical': 0.0073475385745775165, 'mean_word_length': 2.3257328990228014, 'pattern_counts': {'":': 9, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6400706', 'n_tokens_mistral': 1368, 'n_tokens_neox': 1290, 'n_words': 258}