#!/usr/bin/env python
# encoding: utf-8

################################################################################
#
#   RMG - Reaction Mechanism Generator
#
#   Copyright (c) 2002-2009 Prof. William H. Green (whgreen@mit.edu) and the
#   RMG Team (rmg_dev@mit.edu)
#
#   Permission is hereby granted, free of charge, to any person obtaining a
#   copy of this software and associated documentation files (the "Software"),
#   to deal in the Software without restriction, including without limitation
#   the rights to use, copy, modify, merge, publish, distribute, sublicense,
#   and/or sell copies of the Software, and to permit persons to whom the
#   Software is furnished to do so, subject to the following conditions:
#
#   The above copyright notice and this permission notice shall be included in
#   all copies or substantial portions of the Software.
#
#   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
#   IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
#   FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
#   THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
#   LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
#   FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
#   DEALINGS IN THE SOFTWARE.
#
################################################################################

"""
This is the main executable script for CanTherm, a tool for computing chemical
reaction rates and other properties used in detailed kinetics models using
various methodologies and theories. To run CanTherm, use the command ::

    $ python cantherm.py FILE

where ``FILE`` is the path to a CanTherm input file describing the job to
execute. CanTherm will run the specified job, writing the output to
``output.py`` and a log to both the console and to ``cantherm.log``, with both
files appearing in the same directory as the input file. Some additional
command-line arguments are available; run the command ::

    $ python cantherm.py -h

for more information.
"""

import os
import os.path
import logging

from rmgpy.cantherm.main import *

cantherm = CanTherm()

# Parse and validate the command-line arguments
cantherm.parseCommandLineArguments()

# Execute the job
cantherm.execute()

import psutil
process = psutil.Process(os.getpid())
rss, vms = process.get_memory_info()
logging.info('Memory used: %.2f MB' % (rss / 1024.0 / 1024.0))

@@ -2330,16 +2330,25 @@
 cute()%0A%0A
+try:%0A    
 import p
@@ -2353,16 +2353,20 @@
  psutil%0A
+    
 process 
@@ -2395,16 +2395,20 @@
 tpid())%0A
+    
 rss, vms
@@ -2436,16 +2436,20 @@
 _info()%0A
+    
 logging.
@@ -2503,8 +2503,143 @@
 024.0))%0A
+except ImportError:%0A    logging.info('Optional package dependency %22psutil%22 not found; memory profiling information will not be saved.')

Make psutil import for memory tracking optional in Cantherm