# Path: pygr/logger.py
# PYTHON_25 = sys.version_info >= (2, 5)
# def get_logger(name='pygr-log', stream=sys.stdout, formatter=None):
# def disable(level=0):
# def test(verbose=0):
# 
# Path: pygr/classutil.py
# class FilePopenBase(object):
#     class FilePopen(FilePopenBase):
#     class FilePopen(FilePopenBase):
# class SourceFileName(str):
#     class shadowClass(targetClass):
# class PathSaver(object):
# class DBAttributeDescr(object):
# class RecentValueDictionary(WeakValueDictionary):
# class AttrFromTuple(object):
# class AttrFromObject(AttrFromTuple):
#     def __init__(self, args, bufsize=0, executable=None,
#                  stdin=None, stdout=None, stderr=None, *largs, **kwargs):
#     def _get_pipe_file(self, ifile, attr):
#     def _close_file(self, attr):
#     def _rewind_for_reading(self, ifile):
#     def close(self):
#     def __del__(self):
# def call_subprocess(*popenargs, **kwargs):
#         def wait(self):
#         def mkarg(arg):
#         def wait(self):
# def ClassicUnpickler(cls, state):
# def filename_unpickler(cls, path, kwargs):
#     def __reduce__(self):
# def file_dirpath(filename):
# def get_valid_path(*pathTuples):
# def search_dirs_for_file(filepath, pathlist=()):
# def report_exception():
# def standard_invert(self):
# def lazy_create_invert(klass):
#     def invert_fn(self, klass=klass):
# def standard_getstate(self):
# def standard_setstate(self, state):
# def apply_itemclass(self, state):
# def generate_items(items):
# def item_unpickler(db, *args):
# def item_reducer(self): ############################# SUPPORT FOR PICKLING
# def shadow_reducer(self):
# def get_bound_subclass(obj, classattr='__class__', subname=None, factories=(),
#                        attrDict=None, subclassArgs=None):
# def method_not_implemented(*args, **kwargs):
# def read_only_error(*args, **kwargs):
# def methodFactory(methodList, methodStr, localDict):
# def open_shelve(filename, mode=None, writeback=False, allowReadOnly=False,
#                 useHash=False, verbose=True):
# def get_shelve_or_dict(filename=None, dictClass=None, **kwargs):
#     def __init__(self, origPath):
#     def __str__(self):
# def override_rich_cmp(localDict):
#     def __init__(self, attr):
#     def __get__(self, obj, objtype):
# def get_env_or_cwd(envname):
#     def __init__(self, n=None):
#     def __getitem__(self, k):
#     def _splice(self, previous, after):
#     def keep_this(self, v):
#     def __setitem__(self, k, v):
#     def clear(self):
#     def __repr__(self):
# def make_attribute_interface(d):
#     def __init__(self, attrDict):
#     def __call__(self, obj, attr, default=None):
#     def __call__(self, obj, attr, default=None):
# def kwargs_filter(kwargs, allowed):
# def split_kwargs(kwargs, *targets):
#     PIPE = subprocess.PIPE
#     CSH_REDIRECT = False # SH style redirection is default
#                 CSH_REDIRECT = True
#     PIPE = id(FilePopen) # an arbitrary code for identifying this code


import atexit
import glob
import os
import random
import re
import shutil
import sys
import threading
import time
import unittest
import warnings
import tempfile as tempfile_mod
import pathfix
    import hashlib
    import md5 as hashlib
    import pygr.Data
    import figleaf
        import xmlrpclib
        import MySQLdb
    import random
from unittest_extensions import SkipTest
from pygr import logger, classutil
    from figleaf import annotate_html
        from pygr import sqlgraph
    from pygr.sqlgraph import import_sqlite
        from pygr.sqlgraph import SQLiteServerInfo
"""
Utility functions for testing
"""




try:
except ImportError:


# represents a test data
class TestData(object):
    pass

# a shortcut
path_join = pathfix.path_join

# use the main logger to produce

# Path: pygr/logger.py
# PYTHON_25 = sys.version_info >= (2, 5)
# def get_logger(name='pygr-log', stream=sys.stdout, formatter=None):
# def disable(level=0):
# def test(verbose=0):
# 
# Path: pygr/classutil.py
# class FilePopenBase(object):
#     class FilePopen(FilePopenBase):
#     class FilePopen(FilePopenBase):
# class SourceFileName(str):
#     class shadowClass(targetClass):
# class PathSaver(object):
# class DBAttributeDescr(object):
# class RecentValueDictionary(WeakValueDictionary):
# class AttrFromTuple(object):
# class AttrFromObject(AttrFromTuple):
#     def __init__(self, args, bufsize=0, executable=None,
#                  stdin=None, stdout=None, stderr=None, *largs, **kwargs):
#     def _get_pipe_file(self, ifile, attr):
#     def _close_file(self, attr):
#     def _rewind_for_reading(self, ifile):
#     def close(self):
#     def __del__(self):
# def call_subprocess(*popenargs, **kwargs):
#         def wait(self):
#         def mkarg(arg):
#         def wait(self):
# def ClassicUnpickler(cls, state):
# def filename_unpickler(cls, path, kwargs):
#     def __reduce__(self):
# def file_dirpath(filename):
# def get_valid_path(*pathTuples):
# def search_dirs_for_file(filepath, pathlist=()):
# def report_exception():
# def standard_invert(self):
# def lazy_create_invert(klass):
#     def invert_fn(self, klass=klass):
# def standard_getstate(self):
# def standard_setstate(self, state):
# def apply_itemclass(self, state):
# def generate_items(items):
# def item_unpickler(db, *args):
# def item_reducer(self): ############################# SUPPORT FOR PICKLING
# def shadow_reducer(self):
# def get_bound_subclass(obj, classattr='__class__', subname=None, factories=(),
#                        attrDict=None, subclassArgs=None):
# def method_not_implemented(*args, **kwargs):
# def read_only_error(*args, **kwargs):
# def methodFactory(methodList, methodStr, localDict):
# def open_shelve(filename, mode=None, writeback=False, allowReadOnly=False,
#                 useHash=False, verbose=True):
# def get_shelve_or_dict(filename=None, dictClass=None, **kwargs):
#     def __init__(self, origPath):
#     def __str__(self):
# def override_rich_cmp(localDict):
#     def __init__(self, attr):
#     def __get__(self, obj, objtype):
# def get_env_or_cwd(envname):
#     def __init__(self, n=None):
#     def __getitem__(self, k):
#     def _splice(self, previous, after):
#     def keep_this(self, v):
#     def __setitem__(self, k, v):
#     def clear(self):
#     def __repr__(self):
# def make_attribute_interface(d):
#     def __init__(self, attrDict):
#     def __call__(self, obj, attr, default=None):
#     def __call__(self, obj, attr, default=None):
# def kwargs_filter(kwargs, allowed):
# def split_kwargs(kwargs, *targets):
#     PIPE = subprocess.PIPE
#     CSH_REDIRECT = False # SH style redirection is default
#                 CSH_REDIRECT = True
#     PIPE = id(FilePopen) # an arbitrary code for identifying this code


# Path: tests/testlib/testutil.py
import atexit
import glob
import os
import random
import re
import shutil
import sys
import threading
import time
import unittest
import warnings
import tempfile as tempfile_mod
import pathfix
    import hashlib
    import md5 as hashlib
    import pygr.Data
    import figleaf
        import xmlrpclib
        import MySQLdb
    import random
from unittest_extensions import SkipTest
from pygr import logger, classutil
    from figleaf import annotate_html
        from pygr import sqlgraph
    from pygr.sqlgraph import import_sqlite
        from pygr.sqlgraph import SQLiteServerInfo

"""
Utility functions for testing
"""




try:
except ImportError:


# represents a test data
class TestData(object):
    pass

# a shortcut
path_join = pathfix.path_join

# use the main logger to produce

info, error, warn, debug = logger.info, logger.error, logger.warn, logger.debug