Author: macraild
Date: Thu Aug 17 17:45:43 2006
New Revision: 2538
URL: http://svn.gna.org/viewcvs/relax?rev=2538&view=rev
Log:
Rolling back revisions 2535-2537
See discussions in the thread starting:
https://mail.gna.org/public/relax-devel/2006-08/msg00052.html
Modified:
1.2/errors.py
1.2/relax
Modified: 1.2/errors.py
URL:
http://svn.gna.org/viewcvs/relax/1.2/errors.py?rev=2538&r1=2537&r2=2538&view=diff
==============================================================================
--- 1.2/errors.py (original)
+++ 1.2/errors.py Thu Aug 17 17:45:43 2006
@@ -21,228 +21,9 @@
###############################################################################
import __builtin__
-from re import match, search
-from traceback import extract_stack, format_list
+from re import match
from types import ClassType
import time
-import sys
-
-
-class RelaxErrorSystem:
- def __init__(self, relax, UI_mode=None):
- """The relax error and warning system."""
-
- # Arguments.
- self.relax = relax
- self.UI_mode = UI_mode
-
- # Instant exiting modes (i.e. no error system is necessary).
- if UI_mode == 'version':
- return
-
- # Loop over the errors, set their error handling functions, and pack
them into __builtin__.
- self.initialise_errors()
-
-
- def error(self, message, traceback=0, save=0):
- """Default error function - traceback (Debug), error message, then
sys.exit()."""
-
- # Save the program state.
- if save:
- self.save_state()
-
- # Write the traceback to stderr.
- if traceback and not self.UI_mode == 'prompt':
- self.traceback()
-
- # Write the error message to stderr.
- sys.stderr.write("RelaxError: " + message + "\n")
-
- # Hard exit (and return 1 to indicate failure)!
- sys.exit(1)
-
-
- def error_no_exit(self, message, traceback=0, save=0):
- """Error function without exit - print traceback (Debug) and error message but
don't exit."""
-
- # Save the program state.
- if save:
- self.save_state()
-
- # Write the traceback to stderr.
- if traceback and not self.UI_mode == 'prompt':
- self.traceback()
-
- # Write the error message to stderr.
- sys.stderr.write("RelaxError: " + message + "\n\n\n")
-
-
- def initialise_errors(self):
- """Set the error handling functions and place the errors into
__builtin__."""
-
- # Loop over all objects in 'self'.
- for name in dir(self):
- # Get the object.
- object = getattr(self, name)
-
- # Skip over all non error/warning class objects.
- if type(object) != ClassType or not search('^Relax', name):
- continue
-
- # Instantiate the object.
- instance = object()
-
-
- # Place data structures and functions into the RelaxError and
RelaxWarning instances.
-
#####################################################################################
-
- # Place the relax data structure into the instance.
- instance.relax = self.relax
-
- # Place the save state function into the instance.
- #instance.save_state = self.save_state
-
- # Set up the RelaxError handling functions.
- if search('Error$', name):
- # Default error.
- instance.exception = self.error
-
- # Don't exit the program in prompt mode when an error occurs.
- if self.UI_mode == 'prompt':
- instance.exception = self.error_no_exit
-
- # Set up the RelaxWarning handling functions.
- if search('Warning$', name):
- # Default warning.
- instance.exception = self.warning
-
- # Place the errors into __builtin__
- __builtin__.__setattr__(name, instance)
-
- # Tuple of all the errors.
- if hasattr(__builtin__, 'AllRelaxErrors'):
- __builtin__.AllRelaxErrors = __builtin__.AllRelaxErrors,
instance
- else:
- __builtin__.AllRelaxErrors = instance,
-
-
- def save_state(self):
- """Function for saving the program state (self.relax.data) into a temporary
file."""
-
- # Get the current time.
- now = time.localtime()
-
- # Format the file name.
- file_name = "relax_state_%i%02i%02i_%02i%02i%02i" % (now[0], now[2],
now[1], now[3], now[4], now[5])
-
- # Save the program state.
- self.relax.interpreter._State.save(file_name)
-
-
- def traceback(self):
- """Function for formatting and printing out the traceback."""
-
- # Get the stack.
- stack = extract_stack()
-
- # Initialise the trimmed stack and stack start flag.
- trimmed_stack = []
- start = 0
-
- # Trim the stack (script mode):
- if self.UI_mode == 'script':
- for i in xrange(len(stack)):
- # Find the 'interact_script()' function, the start of the
scripting.
- if stack[i][2] == 'interact_script':
- start = 1
- continue
-
- # Not at the start of the script section of the stack.
- if not start:
- continue
-
- # Append the next item.
- trimmed_stack.append(stack[i])
-
- # Find the RelaxError and then stop.
- if search('^Relax.*Error', stack[i][3]):
- break
-
- # Trim the stack (default).
- else:
- for i in xrange(len(stack)):
- # Append the next item.
- trimmed_stack.append(stack[i])
-
- # Find the RelaxError and then stop.
- if search('^Relax.*Error', stack[i][3]):
- break
-
- # Default formatting of the stack.
- string_stack = format_list(trimmed_stack)
-
- # Print out the formatted stack.
- for i in xrange(len(string_stack)):
- sys.stderr.write(string_stack[i])
-
-
- def warning(self, message):
- """Default warning function - just print the warning message."""
-
- # Write the warning message to stderr.
- sys.stderr.write("RelaxWarning: " + message + "\n")
-
-
- def warning_pedantic(self, message, save=0):
- """Pedantic warning function - print the warning message then
exit."""
-
- # Save the program state.
- if save:
- self.save_state()
-
- # Write the warning message to stderr.
- sys.stderr.write("RelaxWarning: " + message + "\n")
-
- # Hard exit (and return 1 to indicate failure)!
- sys.exit(1)
-
-
-
- ####################
- # The RelaxErrors. #
- ####################
-
- class RelaxBadError:
- def __init__(self):
- """This error is really BAD!!!"""
-
- def __call__(self, text):
-
- # Format the message.
- message = text + " - This error is very, very bad."
-
- # Run the error handling code.
- self.exception(message, traceback=Debug, save=Debug)
-
-
-
- ######################
- # The RelaxWarnings. #
- ######################
-
- class RelaxBadWarning:
- def __init__(self):
- """This warning is really BAD!!!"""
-
- def generate(self, text):
- # Format the message.
- message = text + " - This warning is very, very bad."
-
- # Run the error handling code.
- self.exception(message)
-
-
-
class RelaxErrors:
@@ -277,7 +58,6 @@
class BaseError(Exception):
def __str__(self):
return ("RelaxError: " + self.text + "\n")
-
def save_state(self):
now = time.localtime()
file_name = "relax_state_%i%02i%02i_%02i%02i%02i" % (now[0],
Modified: 1.2/relax
URL:
http://svn.gna.org/viewcvs/relax/1.2/relax?rev=2538&r1=2537&r2=2538&view=diff
==============================================================================
--- 1.2/relax (original)
+++ 1.2/relax Thu Aug 17 17:45:43 2006
@@ -66,7 +66,7 @@
# relax modules.
from colour import Colour
from data import Data
-from errors import RelaxErrorSystem, RelaxErrors
+from errors import RelaxErrors
from io import IO
from generic_fns.main import Generic
from prompt.gpl import gpl
@@ -128,9 +128,6 @@
# Process the command line arguments and determine the relax mode.
mode, log_file, tee_file = self.arguments()
- # Set up the relax error system.
- RelaxErrorSystem(self, UI_mode=mode)
-
# Show the version number and exit.
if mode == 'version':
print 'relax ' + self.version
_______________________________________________
relax (http://nmr-relax.com)
This is the relax-commits mailing list
relax-commits@xxxxxxx
To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-commits