Skip to content
Browse files

- Added grizzled.proxy.Forwarder, a mixin that aids writing wrappers …

…that

  forward some, or all, unknown attributes to a wrapped object.
- Graduated to 1.0. It's been around long enough.
- Removed setup.py reliance on 'ez_setup' module.
- Removed grizzled.collections.namedtuple.
  • Loading branch information...
1 parent c35ed11 commit 72f779993aa7b0eb73d762ca3d2e6668ae334041 @bmc committed Mar 14, 2011
Showing with 222 additions and 2,513 deletions.
  1. +9 −0 CHANGELOG
  2. +1 −1 epydoc.cfg
  3. +1 −3 epydoc.css
  4. +0 −276 ez_setup.py
  5. +0 −2,048 grizzled.wpr
  6. +4 −6 grizzled/__init__.py
  7. +1 −2 grizzled/collections/__init__.py
  8. +0 −169 grizzled/collections/tuple.py
  9. +2 −1 grizzled/db/base.py
  10. +118 −0 grizzled/proxy.py
  11. +1 −1 run-epydoc.py
  12. +1 −4 setup.py
  13. +0 −2 test/README
  14. +71 −0 test/TestProxy.py
  15. +13 −0 test/test_helpers.py
View
9 CHANGELOG
@@ -1,3 +1,12 @@
+Version 1.0 (14 March, 2011)
+
+- Added grizzled.proxy.Forwarder, a mixin that aids writing wrappers that
+ forward some, or all, unknown attributes to a wrapped object.
+- Graduated to 1.0. It's been around long enough.
+- Removed setup.py reliance on 'ez_setup' module.
+- Removed grizzled.collections.namedtuple.
+
+---------------------------------------------------------------------------
Version 0.9.4 (10 June, 2010)
- Fixed various incorrect docstrings.
View
2 epydoc.cfg
@@ -20,7 +20,7 @@ private: no
sourcecode: no
# The name of the project
-name: The Grizzled Utility Library
+name: The Grizzled Python Utility Library
# Don't list each modules imports.
imports: no
View
4 epydoc.css
@@ -2,8 +2,6 @@
*
* This stylesheet can be used to customize the appearance of epydoc's
* HTML output.
- *
- * $Id$
*/
/* Default Colors & Styles
@@ -15,7 +13,7 @@
* either class='epydoc' or class='toc' (CSS styles for both
* defined below).
*/
-body { background: #ffffff; color: #000000; }
+body { background: #ffffff; color: #000000; font-family: Arial, Helvetica, sans-serif; }
p { margin-top: 0.5em; margin-bottom: 0.5em; }
a:link { color: #0000ff; }
a:visited { color: #204080; }
View
276 ez_setup.py
@@ -1,276 +0,0 @@
-#!python
-"""Bootstrap setuptools installation
-
-If you want to use setuptools in your package's setup.py, just include this
-file in the same directory with it, and add this to the top of your setup.py::
-
- from ez_setup import use_setuptools
- use_setuptools()
-
-If you want to require a specific version of setuptools, set a download
-mirror, or use an alternate download directory, you can do so by supplying
-the appropriate options to ``use_setuptools()``.
-
-This file can also be run as a script to install or upgrade setuptools.
-"""
-import sys
-DEFAULT_VERSION = "0.6c9"
-DEFAULT_URL = "http://pypi.python.org/packages/%s/s/setuptools/" % sys.version[:3]
-
-md5_data = {
- 'setuptools-0.6b1-py2.3.egg': '8822caf901250d848b996b7f25c6e6ca',
- 'setuptools-0.6b1-py2.4.egg': 'b79a8a403e4502fbb85ee3f1941735cb',
- 'setuptools-0.6b2-py2.3.egg': '5657759d8a6d8fc44070a9d07272d99b',
- 'setuptools-0.6b2-py2.4.egg': '4996a8d169d2be661fa32a6e52e4f82a',
- 'setuptools-0.6b3-py2.3.egg': 'bb31c0fc7399a63579975cad9f5a0618',
- 'setuptools-0.6b3-py2.4.egg': '38a8c6b3d6ecd22247f179f7da669fac',
- 'setuptools-0.6b4-py2.3.egg': '62045a24ed4e1ebc77fe039aa4e6f7e5',
- 'setuptools-0.6b4-py2.4.egg': '4cb2a185d228dacffb2d17f103b3b1c4',
- 'setuptools-0.6c1-py2.3.egg': 'b3f2b5539d65cb7f74ad79127f1a908c',
- 'setuptools-0.6c1-py2.4.egg': 'b45adeda0667d2d2ffe14009364f2a4b',
- 'setuptools-0.6c2-py2.3.egg': 'f0064bf6aa2b7d0f3ba0b43f20817c27',
- 'setuptools-0.6c2-py2.4.egg': '616192eec35f47e8ea16cd6a122b7277',
- 'setuptools-0.6c3-py2.3.egg': 'f181fa125dfe85a259c9cd6f1d7b78fa',
- 'setuptools-0.6c3-py2.4.egg': 'e0ed74682c998bfb73bf803a50e7b71e',
- 'setuptools-0.6c3-py2.5.egg': 'abef16fdd61955514841c7c6bd98965e',
- 'setuptools-0.6c4-py2.3.egg': 'b0b9131acab32022bfac7f44c5d7971f',
- 'setuptools-0.6c4-py2.4.egg': '2a1f9656d4fbf3c97bf946c0a124e6e2',
- 'setuptools-0.6c4-py2.5.egg': '8f5a052e32cdb9c72bcf4b5526f28afc',
- 'setuptools-0.6c5-py2.3.egg': 'ee9fd80965da04f2f3e6b3576e9d8167',
- 'setuptools-0.6c5-py2.4.egg': 'afe2adf1c01701ee841761f5bcd8aa64',
- 'setuptools-0.6c5-py2.5.egg': 'a8d3f61494ccaa8714dfed37bccd3d5d',
- 'setuptools-0.6c6-py2.3.egg': '35686b78116a668847237b69d549ec20',
- 'setuptools-0.6c6-py2.4.egg': '3c56af57be3225019260a644430065ab',
- 'setuptools-0.6c6-py2.5.egg': 'b2f8a7520709a5b34f80946de5f02f53',
- 'setuptools-0.6c7-py2.3.egg': '209fdf9adc3a615e5115b725658e13e2',
- 'setuptools-0.6c7-py2.4.egg': '5a8f954807d46a0fb67cf1f26c55a82e',
- 'setuptools-0.6c7-py2.5.egg': '45d2ad28f9750e7434111fde831e8372',
- 'setuptools-0.6c8-py2.3.egg': '50759d29b349db8cfd807ba8303f1902',
- 'setuptools-0.6c8-py2.4.egg': 'cba38d74f7d483c06e9daa6070cce6de',
- 'setuptools-0.6c8-py2.5.egg': '1721747ee329dc150590a58b3e1ac95b',
- 'setuptools-0.6c9-py2.3.egg': 'a83c4020414807b496e4cfbe08507c03',
- 'setuptools-0.6c9-py2.4.egg': '260a2be2e5388d66bdaee06abec6342a',
- 'setuptools-0.6c9-py2.5.egg': 'fe67c3e5a17b12c0e7c541b7ea43a8e6',
- 'setuptools-0.6c9-py2.6.egg': 'ca37b1ff16fa2ede6e19383e7b59245a',
-}
-
-import sys, os
-try: from hashlib import md5
-except ImportError: from md5 import md5
-
-def _validate_md5(egg_name, data):
- if egg_name in md5_data:
- digest = md5(data).hexdigest()
- if digest != md5_data[egg_name]:
- print >>sys.stderr, (
- "md5 validation of %s failed! (Possible download problem?)"
- % egg_name
- )
- sys.exit(2)
- return data
-
-def use_setuptools(
- version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir,
- download_delay=15
-):
- """Automatically find/download setuptools and make it available on sys.path
-
- `version` should be a valid setuptools version number that is available
- as an egg for download under the `download_base` URL (which should end with
- a '/'). `to_dir` is the directory where setuptools will be downloaded, if
- it is not already available. If `download_delay` is specified, it should
- be the number of seconds that will be paused before initiating a download,
- should one be required. If an older version of setuptools is installed,
- this routine will print a message to ``sys.stderr`` and raise SystemExit in
- an attempt to abort the calling script.
- """
- was_imported = 'pkg_resources' in sys.modules or 'setuptools' in sys.modules
- def do_download():
- egg = download_setuptools(version, download_base, to_dir, download_delay)
- sys.path.insert(0, egg)
- import setuptools; setuptools.bootstrap_install_from = egg
- try:
- import pkg_resources
- except ImportError:
- return do_download()
- try:
- pkg_resources.require("setuptools>="+version); return
- except pkg_resources.VersionConflict, e:
- if was_imported:
- print >>sys.stderr, (
- "The required version of setuptools (>=%s) is not available, and\n"
- "can't be installed while this script is running. Please install\n"
- " a more recent version first, using 'easy_install -U setuptools'."
- "\n\n(Currently using %r)"
- ) % (version, e.args[0])
- sys.exit(2)
- else:
- del pkg_resources, sys.modules['pkg_resources'] # reload ok
- return do_download()
- except pkg_resources.DistributionNotFound:
- return do_download()
-
-def download_setuptools(
- version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir,
- delay = 15
-):
- """Download setuptools from a specified location and return its filename
-
- `version` should be a valid setuptools version number that is available
- as an egg for download under the `download_base` URL (which should end
- with a '/'). `to_dir` is the directory where the egg will be downloaded.
- `delay` is the number of seconds to pause before an actual download attempt.
- """
- import urllib2, shutil
- egg_name = "setuptools-%s-py%s.egg" % (version,sys.version[:3])
- url = download_base + egg_name
- saveto = os.path.join(to_dir, egg_name)
- src = dst = None
- if not os.path.exists(saveto): # Avoid repeated downloads
- try:
- from distutils import log
- if delay:
- log.warn("""
----------------------------------------------------------------------------
-This script requires setuptools version %s to run (even to display
-help). I will attempt to download it for you (from
-%s), but
-you may need to enable firewall access for this script first.
-I will start the download in %d seconds.
-
-(Note: if this machine does not have network access, please obtain the file
-
- %s
-
-and place it in this directory before rerunning this script.)
----------------------------------------------------------------------------""",
- version, download_base, delay, url
- ); from time import sleep; sleep(delay)
- log.warn("Downloading %s", url)
- src = urllib2.urlopen(url)
- # Read/write all in one block, so we don't create a corrupt file
- # if the download is interrupted.
- data = _validate_md5(egg_name, src.read())
- dst = open(saveto,"wb"); dst.write(data)
- finally:
- if src: src.close()
- if dst: dst.close()
- return os.path.realpath(saveto)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-def main(argv, version=DEFAULT_VERSION):
- """Install or upgrade setuptools and EasyInstall"""
- try:
- import setuptools
- except ImportError:
- egg = None
- try:
- egg = download_setuptools(version, delay=0)
- sys.path.insert(0,egg)
- from setuptools.command.easy_install import main
- return main(list(argv)+[egg]) # we're done here
- finally:
- if egg and os.path.exists(egg):
- os.unlink(egg)
- else:
- if setuptools.__version__ == '0.0.1':
- print >>sys.stderr, (
- "You have an obsolete version of setuptools installed. Please\n"
- "remove it from your system entirely before rerunning this script."
- )
- sys.exit(2)
-
- req = "setuptools>="+version
- import pkg_resources
- try:
- pkg_resources.require(req)
- except pkg_resources.VersionConflict:
- try:
- from setuptools.command.easy_install import main
- except ImportError:
- from easy_install import main
- main(list(argv)+[download_setuptools(delay=0)])
- sys.exit(0) # try to force an exit
- else:
- if argv:
- from setuptools.command.easy_install import main
- main(argv)
- else:
- print "Setuptools version",version,"or greater has been installed."
- print '(Run "ez_setup.py -U setuptools" to reinstall or upgrade.)'
-
-def update_md5(filenames):
- """Update our built-in md5 registry"""
-
- import re
-
- for name in filenames:
- base = os.path.basename(name)
- f = open(name,'rb')
- md5_data[base] = md5(f.read()).hexdigest()
- f.close()
-
- data = [" %r: %r,\n" % it for it in md5_data.items()]
- data.sort()
- repl = "".join(data)
-
- import inspect
- srcfile = inspect.getsourcefile(sys.modules[__name__])
- f = open(srcfile, 'rb'); src = f.read(); f.close()
-
- match = re.search("\nmd5_data = {\n([^}]+)}", src)
- if not match:
- print >>sys.stderr, "Internal error!"
- sys.exit(2)
-
- src = src[:match.start(1)] + repl + src[match.end(1):]
- f = open(srcfile,'w')
- f.write(src)
- f.close()
-
-
-if __name__=='__main__':
- if len(sys.argv)>2 and sys.argv[1]=='--md5update':
- update_md5(sys.argv[2:])
- else:
- main(sys.argv[1:])
-
-
-
-
-
-
View
2,048 grizzled.wpr
@@ -1,2048 +0,0 @@
-#!wing
-#!version=3.0
-##################################################################
-# Wing IDE project file #
-##################################################################
-[project attributes]
-proj.directory-list = [{'dirloc': loc('.'),
- 'excludes': (),
- 'filter': '*',
- 'include_hidden': 0,
- 'recursive': 1,
- 'watch_for_changes': 1},
- {'dirloc': loc('grizzled'),
- 'excludes': (),
- 'filter': '*',
- 'include_hidden': 0,
- 'recursive': 1,
- 'watch_for_changes': 1}]
-proj.file-type = 'normal'
-[user attributes]
-cache.last-mime-type = {loc('unknown:<untitled> #64'): 'text/plain'}
-debug.err-values = {None: {}}
-edit.file-encoding = {loc('grizzled/collections/tuple.py'): 'UTF-8',
- loc('grizzled/log.py'): 'UTF-8',
- loc('test/io/TestPushback.py'): 'UTF-8'}
-guimgr.overall-gui-state = {'windowing-policy': 'combined-window',
- 'windows': [{'name': 'VsP9AM1ogLRvgyGcPNIomhVGfK'\
- 'cv9m8S',
- 'size-state': '',
- 'type': 'dock',
- 'view': {'area': 'tall',
- 'current_pages': [1,
- 5],
- 'notebook_display': 'normal',
- 'notebook_percent': 0.15701492537313433,
- 'override_title': None,
- 'pagelist': [('debug-breakpoints',
- 'tall',
- 1,
- {'tree-state': []}),
- ('debug-stack',
- 'tall',
- 1,
- {'codeline-mode': 'below'}),
- ('debug-probe',
- 'tall',
- 1,
- {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 4,
- 'selection_start': 4}),
- ('debug-exceptions',
- 'tall',
- 0,
- {}),
- ('indent',
- 'tall',
- 2,
- {}),
- ('debug-modules',
- 'tall',
- 1,
- {}),
- ('project',
- 'tall',
- 0,
- {'tree-state': {'file-sort-method': 'by name',
- 'list-files-first': 0,
- 'tree-states': {'deep': {'column-widths': [1.0],
- 'expanded-nodes': [(3,),
- (3,
- 0),
- (3,
- 1),
- (3,
- 2),
- (3,
- 3),
- (3,
- 5)],
- 'selected-nodes': [(3,
- 3,
- 1)],
- 'top-node': (3,
- 1,
- 0)}},
- 'tree-style': 'deep'}}),
- ('python-shell',
- 'tall',
- 0,
- {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 3,
- 'sel-line-start': 159,
- 'selection_end': 163,
- 'selection_start': 163}),
- ('interactive-search',
- 'tall',
- 1,
- {'fScope': {'fFileSetName': u'All Source Files',
- 'fLocation': None,
- 'fRecursive': True,
- 'fType': 'project-files'},
- 'fSearchSpec': {'fEndPos': None,
- 'fIncludeLinenos': True,
- 'fInterpretBackslashes': False,
- 'fMatchCase': False,
- 'fOmitBinary': True,
- 'fRegexFlags': 46,
- 'fReplaceText': u'fieldnames',
- 'fReverse': False,
- 'fSearchText': u'field_names',
- 'fStartPos': 0,
- 'fStyle': 'text',
- 'fWholeWords': False,
- 'fWrap': True},
- 'fUIOptions': {'fAutoBackground': True,
- 'fFilePrefix': 'short-file',
- 'fFindAfterReplace': True,
- 'fInSelection': False,
- 'fIncremental': True,
- 'fReplaceOnDisk': False,
- 'fShowFirstMatch': False,
- 'fShowLineno': True,
- 'fShowReplaceWidgets': 1},
- 'replace-entry-expanded': False,
- 'search-entry-expanded': False}),
- ('source-assistant',
- 'tall',
- 2,
- {'docstring-during-complete': 0,
- 'wrap-lines': 1}),
- ('browser',
- 'tall',
- 0,
- {}),
- ('debug-watch',
- 'tall',
- 1,
- {'node-states': [],
- 'tree-state': {'column-widths': [0.3984375,
- 0.6015625],
- 'expanded-nodes': [],
- 'selected-nodes': [],
- 'top-node': (0,)}}),
- ('templating#02EFWRQK9X23',
- 'tall',
- 0,
- {'tree-states': {u'/home/bmc/.wingide3/templates': [],
- u'/usr/lib/wingide3.0/scripts/templates': []}})],
- 'primary_view_state': {'area': 'wide',
- 'current_pages': [1],
- 'notebook_display': 'hidden',
- 'notebook_percent': 0.0,
- 'override_title': None,
- 'pagelist': [('bookmarks',
- 'wide',
- 1,
- {}),
- ('messages',
- 'wide',
- 2,
- {'current-domain': 8}),
- ('batch-search',
- 'wide',
- 0,
- {'fScope': {'fFileSetName': u'All Source Files',
- 'fLocation': None,
- 'fRecursive': True,
- 'fType': 'project-files'},
- 'fSearchSpec': {'fEndPos': None,
- 'fIncludeLinenos': True,
- 'fInterpretBackslashes': False,
- 'fMatchCase': False,
- 'fOmitBinary': True,
- 'fRegexFlags': 46,
- 'fReplaceText': u'',
- 'fReverse': False,
- 'fSearchText': u'',
- 'fStartPos': 0,
- 'fStyle': 'text',
- 'fWholeWords': False,
- 'fWrap': True},
- 'fUIOptions': {'fAutoBackground': True,
- 'fFilePrefix': 'short-file',
- 'fFindAfterReplace': True,
- 'fInSelection': False,
- 'fIncremental': True,
- 'fReplaceOnDisk': False,
- 'fShowFirstMatch': False,
- 'fShowLineno': True,
- 'fShowReplaceWidgets': False},
- 'replace-entry-expanded': False,
- 'search-entry-expanded': False}),
- ('debug-data',
- 'wide',
- 0,
- {}),
- ('testing',
- 'wide',
- 0,
- {})],
- 'primary_view_state': {'editor_states': ('horizontal',
- 0.5,
- {'bookmarks': ([(loc('grizzled/db/base.py'),
- {'attrib-starts': [('Cursor',
- 61),
- ('Cursor.get_vendor_info',
- 253)],
- 'first-line': 205,
- 'folded-linenos': [],
- 'sel-line': 253,
- 'sel-line-start': 7988,
- 'selection_end': 8006,
- 'selection_start': 8000},
- 1226613152.484164),
- (loc('grizzled/db/base.py'),
- {'attrib-starts': [('Cursor',
- 61),
- ('Cursor.get_vendor_info',
- 253)],
- 'first-line': 226,
- 'folded-linenos': [],
- 'sel-line': 274,
- 'sel-line-start': 8696,
- 'selection_end': 8739,
- 'selection_start': 8733},
- 1226616530.5561581),
- (loc('grizzled/db/base.py'),
- {'attrib-starts': [('Cursor',
- 61),
- ('Cursor.get_vendor_info',
- 253)],
- 'first-line': 205,
- 'folded-linenos': [],
- 'sel-line': 253,
- 'sel-line-start': 7998,
- 'selection_end': 8016,
- 'selection_start': 8006},
- 1226616544.2850511),
- (loc('grizzled/db/base.py'),
- {'attrib-starts': [('DBDriver',
- 655),
- ('DBDriver.get_vendor_info',
- 780)],
- 'first-line': 732,
- 'folded-linenos': [],
- 'sel-line': 780,
- 'sel-line-start': 25649,
- 'selection_end': 25667,
- 'selection_start': 25657},
- 1226616568.9666569),
- (loc('grizzled/db/base.py'),
- {'attrib-starts': [('Cursor',
- 61),
- ('Cursor.get_vendor_info',
- 253)],
- 'first-line': 269,
- 'folded-linenos': [],
- 'sel-line': 274,
- 'sel-line-start': 8761,
- 'selection_end': 8804,
- 'selection_start': 8794},
- 1226616587.8864689),
- (loc('grizzled/db/base.py'),
- {'attrib-starts': [('DBDriver',
- 656),
- ('DBDriver.get_vendor_info',
- 781)],
- 'first-line': 733,
- 'folded-linenos': [],
- 'sel-line': 781,
- 'sel-line-start': 25689,
- 'selection_end': 25707,
- 'selection_start': 25697},
- 1226616605.3768301),
- (loc('grizzled/db/base.py'),
- {'attrib-starts': [('DBDriver',
- 656),
- ('DBDriver.get_table_metadata',
- 833)],
- 'first-line': 889,
- 'folded-linenos': [],
- 'sel-line': 916,
- 'sel-line-start': 30118,
- 'selection_end': 30141,
- 'selection_start': 30141},
- 1226616614.3724389),
- (loc('grizzled/db/base.py'),
- {'attrib-starts': [],
- 'first-line': 1,
- 'folded-linenos': [],
- 'sel-line': 25,
- 'sel-line-start': 677,
- 'selection_end': 729,
- 'selection_start': 729},
- 1226616712.2136631),
- (loc('grizzled/db/base.py'),
- {'attrib-starts': [('DB',
- 381),
- ('DB.paramstyle',
- 407)],
- 'first-line': 454,
- 'folded-linenos': [],
- 'sel-line': 426,
- 'sel-line-start': 14417,
- 'selection_end': 14440,
- 'selection_start': 14440},
- 1226616816.4165471),
- (loc('grizzled/db/base.py'),
- {'attrib-starts': [('Cursor',
- 62),
- ('Cursor.get_vendor_info',
- 254)],
- 'first-line': 271,
- 'folded-linenos': [],
- 'sel-line': 276,
- 'sel-line-start': 8860,
- 'selection_end': 8903,
- 'selection_start': 8893},
- 1226616923.3791089),
- (loc('grizzled/db/base.py'),
- {'attrib-starts': [('DBDriver',
- 657),
- ('DBDriver.get_vendor_info',
- 782)],
- 'first-line': 734,
- 'folded-linenos': [],
- 'sel-line': 782,
- 'sel-line-start': 25748,
- 'selection_end': 25766,
- 'selection_start': 25756},
- 1226621617.4341321),
- (loc('grizzled/db/base.py'),
- {'attrib-starts': [('Cursor',
- 62),
- ('Cursor.fetchone',
- 188)],
- 'first-line': 183,
- 'folded-linenos': [],
- 'sel-line': 191,
- 'sel-line-start': 6270,
- 'selection_end': 6302,
- 'selection_start': 6302},
- 1226621619.4597199),
- (loc('grizzled/db/base.py'),
- {'attrib-starts': [('Cursor',
- 62),
- ('Cursor.get_vendor_info',
- 254)],
- 'first-line': 206,
- 'folded-linenos': [],
- 'sel-line': 254,
- 'sel-line-start': 8057,
- 'selection_end': 8080,
- 'selection_start': 8069},
- 1226622117.9359851),
- (loc('grizzled/db/base.py'),
- {'attrib-starts': [('Cursor',
- 62),
- ('Cursor.get_rdbms_metadata',
- 254)],
- 'first-line': 238,
- 'folded-linenos': [],
- 'sel-line': 276,
- 'sel-line-start': 8863,
- 'selection_end': 8911,
- 'selection_start': 8900},
- 1226622232.8699551),
- (loc('grizzled/db/base.py'),
- {'attrib-starts': [('DBDriver',
- 657),
- ('DBDriver.get_vendor_info',
- 782)],
- 'first-line': 734,
- 'folded-linenos': [],
- 'sel-line': 782,
- 'sel-line-start': 25754,
- 'selection_end': 25777,
- 'selection_start': 25766},
- 1226622247.859375),
- (loc('grizzled/db/base.py'),
- {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 1,
- 'selection_start': 1},
- 1226622254.4724879),
- (loc('grizzled/db/base.py'),
- {'attrib-starts': [('Warning',
- 45)],
- 'first-line': 22,
- 'folded-linenos': [],
- 'sel-line': 55,
- 'sel-line-start': 1713,
- 'selection_end': 1713,
- 'selection_start': 1713},
- 1226622260.8262179),
- (loc('grizzled/db/base.py'),
- {'attrib-starts': [('DBDriver',
- 657),
- ('DBDriver.get_rdbms_metadata',
- 782)],
- 'first-line': 734,
- 'folded-linenos': [],
- 'sel-line': 782,
- 'sel-line-start': 25756,
- 'selection_end': 25772,
- 'selection_start': 25764},
- 1226624139.5989871),
- (loc('grizzled/db/base.py'),
- {'attrib-starts': [('DBDriver',
- 657),
- ('DBDriver.get_rdbms_metadata',
- 782)],
- 'first-line': 787,
- 'folded-linenos': [],
- 'sel-line': 801,
- 'sel-line-start': 26425,
- 'selection_end': 26453,
- 'selection_start': 26453},
- 1226624606.9934649),
- [loc('grizzled/db/sqlserver.py'),
- {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- 1226624667.10481]],
- 19),
- 'current-loc': loc('grizzled/db/sqlserver.py'),
- 'editor-states': {loc('CHANGELOG'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 13,
- 'sel-line-start': 440,
- 'selection_end': 440,
- 'selection_start': 440},
- loc('grizzled/__init__.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'sel-line': 5,
- 'sel-line-start': 201,
- 'selection_end': 211,
- 'selection_start': 211},
- loc('grizzled/cmdline.py'): {'attrib-starts': [(''\
- 'CommandLineParser',
- 33),
- ('CommandLineParser.error',
- 79)],
- 'first-line': 10,
- 'folded-linenos': [],
- 'sel-line': 82,
- 'sel-line-start': 2616,
- 'selection_end': 2662,
- 'selection_start': 2662},
- loc('grizzled/collections/__init__.py'): {'attrib'\
- '-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 10,
- 'sel-line-start': 270,
- 'selection_end': 279,
- 'selection_start': 279},
- loc('grizzled/collections/dict.py'): {'attrib-sta'\
- 'rts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 17,
- 'sel-line-start': 552,
- 'selection_end': 561,
- 'selection_start': 561},
- loc('grizzled/collections/tuple.py'): {'attrib-st'\
- 'arts': [],
- 'first-line': 3,
- 'folded-linenos': [],
- 'sel-line': 22,
- 'sel-line-start': 653,
- 'selection_end': 677,
- 'selection_start': 677},
- loc('grizzled/config.py'): {'attrib-starts': [('C'\
- 'onfiguration',
- 252),
- ('Configuration.remove_section',
- 630)],
- 'first-line': 236,
- 'folded-linenos': [],
- 'sel-line': 635,
- 'sel-line-start': 21621,
- 'selection_end': 21634,
- 'selection_start': 21634},
- loc('grizzled/db/__init__.py'): {'attrib-starts': [],
- 'first-line': 89,
- 'folded-linenos': [],
- 'sel-line': 105,
- 'sel-line-start': 3626,
- 'selection_end': 3659,
- 'selection_start': 3659},
- loc('grizzled/db/base.py'): {'attrib-starts': [(''\
- 'DBDriver',
- 657),
- ('DBDriver.get_rdbms_metadata',
- 782)],
- 'first-line': 787,
- 'folded-linenos': [],
- 'sel-line': 801,
- 'sel-line-start': 26425,
- 'selection_end': 26453,
- 'selection_start': 26453},
- loc('grizzled/db/dummydb.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('grizzled/db/postgresql.py'): {'attrib-starts': [],
- 'first-line': 13,
- 'folded-linenos': [],
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('grizzled/db/sqlserver.py'): {'attrib-starts': [(''\
- 'SQLServerDriver',
- 24),
- ('SQLServerDriver.get_rdbms_metadata',
- 60)],
- 'first-line': 45,
- 'folded-linenos': [],
- 'sel-line': 65,
- 'sel-line-start': 1987,
- 'selection_end': 2003,
- 'selection_start': 2003},
- loc('grizzled/decorators.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 6,
- 'sel-line-start': 108,
- 'selection_end': 148,
- 'selection_start': 148},
- loc('grizzled/exception.py'): {'attrib-starts': [(''\
- 'ExceptionWithMessage',
- 16)],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 26,
- 'sel-line-start': 727,
- 'selection_end': 766,
- 'selection_start': 766},
- loc('grizzled/file/__init__.py'): {'attrib-starts': [(''\
- 'recursively_remove',
- 53)],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 58,
- 'sel-line-start': 1701,
- 'selection_end': 1717,
- 'selection_start': 1717},
- loc('grizzled/file/includer.py'): {'attrib-starts': [(''\
- 'preprocess',
- 402)],
- 'first-line': 396,
- 'folded-linenos': [],
- 'sel-line': 428,
- 'sel-line-start': 13441,
- 'selection_end': 13486,
- 'selection_start': 13486},
- loc('grizzled/history.py'): {},
- loc('grizzled/io/__init__.py'): {'attrib-starts': [(''\
- 'Zip',
- 348),
- ('Zip.extract',
- 375)],
- 'first-line': 345,
- 'sel-line': 404,
- 'sel-line-start': 11676,
- 'selection_end': 11676,
- 'selection_start': 11676},
- loc('grizzled/io/filelock.py'): {'attrib-starts': [(''\
- 'locked_file',
- 160)],
- 'first-line': 123,
- 'sel-line': 165,
- 'sel-line-start': 4930,
- 'selection_end': 4954,
- 'selection_start': 4954},
- loc('grizzled/log.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 22,
- 'sel-line-start': 652,
- 'selection_end': 652,
- 'selection_start': 652},
- loc('grizzled/misc.py'): {'attrib-starts': [('str'\
- '2bool',
- 115)],
- 'first-line': 98,
- 'folded-linenos': [],
- 'sel-line': 157,
- 'sel-line-start': 4791,
- 'selection_end': 4791,
- 'selection_start': 4791},
- loc('grizzled/os.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 28,
- 'sel-line-start': 689,
- 'selection_end': 715,
- 'selection_start': 715},
- loc('grizzled/system.py'): {'attrib-starts': [],
- 'first-line': 97,
- 'folded-linenos': [],
- 'sel-line': 5,
- 'sel-line-start': 147,
- 'selection_end': 151,
- 'selection_start': 151},
- loc('grizzled/text/__init__.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 5,
- 'sel-line-start': 133,
- 'selection_end': 133,
- 'selection_start': 133},
- loc('setup.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 17,
- 'sel-line-start': 529,
- 'selection_end': 590,
- 'selection_start': 590},
- loc('test/collections/TestLRUDict.py'): {'attrib-'\
- 'starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 12,
- 'sel-line-start': 265,
- 'selection_end': 291,
- 'selection_start': 291},
- loc('test/io/TestPushback.py'): {'attrib-starts': [(''\
- 'TestPushback',
- 22),
- ('TestPushback.testPushback',
- 24)],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 41,
- 'sel-line-start': 1078,
- 'selection_end': 1093,
- 'selection_start': 1093},
- loc('test/text/TestStr2Bool.py'): {'attrib-starts': [(''\
- 'TestStr2Bool',
- 18),
- ('TestStr2Bool.testBadStrings',
- 37)],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 43,
- 'sel-line-start': 1689,
- 'selection_end': 1702,
- 'selection_start': 1702},
- loc('../sqlcmd/setup.py'): {'attrib-starts': [('l'\
- 'oadInfo',
- 14)],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 18,
- 'sel-line-start': 396,
- 'selection_end': 396,
- 'selection_start': 396}},
- 'has-focus': False},
- {'bookmarks': ([(loc('grizzled/db/gadfly.py'),
- {'attrib-starts': [('GadflyCursor',
- 23),
- ('GadflyCursor.fetchall',
- 60)],
- 'first-line': 42,
- 'folded-linenos': [],
- 'sel-line': 61,
- 'sel-line-start': 1698,
- 'selection_end': 1710,
- 'selection_start': 1710},
- 1226616475.792969),
- (loc('grizzled/db/postgresql.py'),
- {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 15,
- 'sel-line-start': 325,
- 'selection_end': 376,
- 'selection_start': 376},
- 1226616768.212256),
- (loc('grizzled/db/postgresql.py'),
- {'attrib-starts': [('PostgreSQLDriver',
- 25),
- ('PostgreSQLDriver.get_display_name',
- 34)],
- 'first-line': 15,
- 'folded-linenos': [],
- 'sel-line': 35,
- 'sel-line-start': 981,
- 'selection_end': 1008,
- 'selection_start': 1008},
- 1226616829.2935879),
- (loc('grizzled/db/postgresql.py'),
- {'attrib-starts': [('PostgreSQLDriver',
- 25),
- ('PostgreSQLDriver.get_vendor_info',
- 48)],
- 'first-line': 11,
- 'folded-linenos': [],
- 'sel-line': 49,
- 'sel-line-start': 1412,
- 'selection_end': 1423,
- 'selection_start': 1420},
- 1226616836.8608019),
- (loc('grizzled/db/postgresql.py'),
- {'attrib-starts': [('PostgreSQLDriver',
- 25),
- ('PostgreSQLDriver.get_table_metadata',
- 50)],
- 'first-line': 11,
- 'folded-linenos': [],
- 'sel-line': 52,
- 'sel-line-start': 1518,
- 'selection_end': 1529,
- 'selection_start': 1526},
- 1226621642.6903479),
- (loc('grizzled/db/postgresql.py'),
- {'attrib-starts': [('PostgreSQLDriver',
- 25),
- ('PostgreSQLDriver.get_index_metadata',
- 103)],
- 'first-line': 57,
- 'folded-linenos': [],
- 'sel-line': 105,
- 'sel-line-start': 3438,
- 'selection_end': 3449,
- 'selection_start': 3446},
- 1226621644.0420389),
- (loc('grizzled/db/postgresql.py'),
- {'attrib-starts': [('PostgreSQLDriver',
- 25),
- ('PostgreSQLDriver.do_connect',
- 37)],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 43,
- 'sel-line-start': 1202,
- 'selection_end': 1213,
- 'selection_start': 1210},
- 1226621645.8848751),
- (loc('grizzled/db/postgresql.py'),
- {'attrib-starts': [('PostgreSQLDriver',
- 28),
- ('PostgreSQLDriver.do_connect',
- 40)],
- 'first-line': 39,
- 'folded-linenos': [],
- 'sel-line': 50,
- 'sel-line-start': 1491,
- 'selection_end': 1491,
- 'selection_start': 1491},
- 1226621648.63501),
- (loc('grizzled/text/__init__.py'),
- {'attrib-starts': [],
- 'first-line': 149,
- 'folded-linenos': [],
- 'sel-line': 24,
- 'sel-line-start': 688,
- 'selection_end': 730,
- 'selection_start': 730},
- 1234813060.2094381),
- (loc('grizzled/decorators.py'),
- {'attrib-starts': [],
- 'first-line': 75,
- 'folded-linenos': [],
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- 1234813131.5585351),
- (loc('grizzled/history.py'),
- {'attrib-starts': [('History',
- 119),
- ('History.set_max_length',
- 247)],
- 'first-line': 221,
- 'folded-linenos': [],
- 'sel-line': 248,
- 'sel-line-start': 7083,
- 'selection_end': 7083,
- 'selection_start': 7083},
- 1234813142.5633919),
- (loc('grizzled/misc.py'),
- {'attrib-starts': [],
- 'first-line': 111,
- 'folded-linenos': [],
- 'sel-line': 30,
- 'sel-line-start': 841,
- 'selection_end': 850,
- 'selection_start': 850},
- 1234813145.839191),
- (loc('grizzled/text/__init__.py'),
- {'attrib-starts': [],
- 'first-line': 149,
- 'folded-linenos': [],
- 'sel-line': 24,
- 'sel-line-start': 688,
- 'selection_end': 730,
- 'selection_start': 730},
- 1234813163.985152),
- (loc('grizzled/misc.py'),
- {'attrib-starts': [('bitcount',
- 119)],
- 'first-line': 92,
- 'folded-linenos': [],
- 'sel-line': 119,
- 'sel-line-start': 3825,
- 'selection_end': 3825,
- 'selection_start': 3825},
- 1234813173.776053),
- (loc('grizzled/system.py'),
- {'attrib-starts': [('python_version',
- 57)],
- 'first-line': 191,
- 'folded-linenos': [],
- 'sel-line': 62,
- 'sel-line-start': 2148,
- 'selection_end': 2148,
- 'selection_start': 2148},
- 1234813307.0492761),
- (loc('grizzled/__init__.py'),
- {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 19,
- 'sel-line-start': 647,
- 'selection_end': 647,
- 'selection_start': 647},
- 1234813319.2570479),
- (loc('grizzled/file/includer.py'),
- {'attrib-starts': [],
- 'first-line': 420,
- 'folded-linenos': [],
- 'sel-line': 33,
- 'sel-line-start': 1050,
- 'selection_end': 1097,
- 'selection_start': 1097},
- 1234813338.8359289),
- (loc('grizzled/io/__init__.py'),
- {'attrib-starts': [('Zip',
- 348),
- ('Zip.extract',
- 375)],
- 'first-line': 350,
- 'folded-linenos': [],
- 'sel-line': 393,
- 'sel-line-start': 11179,
- 'selection_end': 11214,
- 'selection_start': 11214},
- 1234813408.3304501),
- [loc('../../../../../../Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/optparse.py'),
- {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- 1234814152.581866],
- [loc('grizzled/io/__init__.py'),
- {'attrib-starts': [('Zip',
- 348),
- ('Zip.extract',
- 375)],
- 'first-line': 350,
- 'folded-linenos': [],
- 'sel-line': 393,
- 'sel-line-start': 11179,
- 'selection_end': 11214,
- 'selection_start': 11214},
- 1234817980.7577159]],
- 19),
- 'current-loc': loc('grizzled/io/__init__.py'),
- 'editor-states': {loc('CHANGELOG'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 10,
- 'sel-line-start': 344,
- 'selection_end': 373,
- 'selection_start': 373},
- loc('grizzled/__init__.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 19,
- 'sel-line-start': 647,
- 'selection_end': 647,
- 'selection_start': 647},
- loc('grizzled/cmdline.py'): {'attrib-starts': [(''\
- 'CommandLineParser',
- 35),
- ('CommandLineParser.print_help',
- 51)],
- 'first-line': 19,
- 'folded-linenos': [],
- 'sel-line': 51,
- 'sel-line-start': 1617,
- 'selection_end': 1658,
- 'selection_start': 1658},
- loc('grizzled/collections/__init__.py'): {'attrib'\
- '-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('grizzled/collections/dict.py'): {'attrib-sta'\
- 'rts': [('OrderedDict',
- 30),
- ('OrderedDict.__str__',
- 66)],
- 'first-line': 56,
- 'folded-linenos': [],
- 'sel-line': 80,
- 'sel-line-start': 2698,
- 'selection_end': 2725,
- 'selection_start': 2725},
- loc('grizzled/collections/tuple.py'): {},
- loc('grizzled/config.py'): {'attrib-starts': [('C'\
- 'onfiguration',
- 252),
- ('Configuration.get_one_of',
- 583)],
- 'first-line': 615,
- 'folded-linenos': [],
- 'sel-line': 652,
- 'sel-line-start': 22568,
- 'selection_end': 22568,
- 'selection_start': 22568},
- loc('grizzled/db/__init__.py'): {'attrib-starts': [(''\
- 'Error',
- 197)],
- 'first-line': 166,
- 'folded-linenos': [],
- 'sel-line': 199,
- 'sel-line-start': 6370,
- 'selection_end': 6376,
- 'selection_start': 6376},
- loc('grizzled/db/base.py'): {},
- loc('grizzled/db/dummydb.py'): {'attrib-starts': [],
- 'first-line': 26,
- 'folded-linenos': [],
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('grizzled/db/postgresql.py'): {'attrib-starts': [(''\
- 'PostgreSQLDriver',
- 28),
- ('PostgreSQLDriver.do_connect',
- 40)],
- 'first-line': 39,
- 'folded-linenos': [],
- 'sel-line': 50,
- 'sel-line-start': 1491,
- 'selection_end': 1491,
- 'selection_start': 1491},
- loc('grizzled/db/sqlserver.py'): {},
- loc('grizzled/decorators.py'): {'attrib-starts': [],
- 'first-line': 75,
- 'folded-linenos': [],
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('grizzled/exception.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('grizzled/file/__init__.py'): {'attrib-starts': [],
- 'first-line': 240,
- 'folded-linenos': [],
- 'sel-line': 17,
- 'sel-line-start': 480,
- 'selection_end': 489,
- 'selection_start': 489},
- loc('grizzled/file/includer.py'): {'attrib-starts': [],
- 'first-line': 420,
- 'folded-linenos': [],
- 'sel-line': 33,
- 'sel-line-start': 1050,
- 'selection_end': 1097,
- 'selection_start': 1097},
- loc('grizzled/history.py'): {'attrib-starts': [(''\
- 'History',
- 119),
- ('History.set_max_length',
- 247)],
- 'first-line': 221,
- 'folded-linenos': [],
- 'sel-line': 248,
- 'sel-line-start': 7083,
- 'selection_end': 7083,
- 'selection_start': 7083},
- loc('grizzled/io/__init__.py'): {'attrib-starts': [(''\
- 'Zip',
- 348),
- ('Zip.extract',
- 375)],
- 'first-line': 350,
- 'folded-linenos': [],
- 'sel-line': 393,
- 'sel-line-start': 11179,
- 'selection_end': 11214,
- 'selection_start': 11214},
- loc('grizzled/io/filelock.py'): {'attrib-starts': [],
- 'first-line': 22,
- 'folded-linenos': [],
- 'sel-line': 44,
- 'sel-line-start': 1173,
- 'selection_end': 1220,
- 'selection_start': 1182},
- loc('grizzled/log.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 17,
- 'sel-line-start': 446,
- 'selection_end': 448,
- 'selection_start': 448},
- loc('grizzled/misc.py'): {'attrib-starts': [('bit'\
- 'count',
- 119)],
- 'first-line': 92,
- 'folded-linenos': [],
- 'sel-line': 119,
- 'sel-line-start': 3825,
- 'selection_end': 3825,
- 'selection_start': 3825},
- loc('grizzled/os.py'): {'attrib-starts': [('worki'\
- 'ng_directory',
- 121)],
- 'first-line': 102,
- 'folded-linenos': [],
- 'sel-line': 133,
- 'sel-line-start': 3797,
- 'selection_end': 3827,
- 'selection_start': 3827},
- loc('grizzled/system.py'): {'attrib-starts': [('p'\
- 'ython_version',
- 57)],
- 'first-line': 191,
- 'folded-linenos': [],
- 'sel-line': 62,
- 'sel-line-start': 2148,
- 'selection_end': 2148,
- 'selection_start': 2148},
- loc('grizzled/text/__init__.py'): {'attrib-starts': [],
- 'first-line': 149,
- 'folded-linenos': [],
- 'sel-line': 24,
- 'sel-line-start': 688,
- 'selection_end': 730,
- 'selection_start': 730},
- loc('setup.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('test/collections/TestLRUDict.py'): {'attrib-'\
- 'starts': [('TestLRUDict',
- 22),
- ('TestLRUDict.test1',
- 24)],
- 'first-line': 14,
- 'folded-linenos': [],
- 'sel-line': 45,
- 'sel-line-start': 1166,
- 'selection_end': 1193,
- 'selection_start': 1193},
- loc('test/io/TestPushback.py'): {'attrib-starts': [(''\
- 'TestPushback',
- 22),
- ('TestPushback.testPushback',
- 24)],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 29,
- 'sel-line-start': 812,
- 'selection_end': 840,
- 'selection_start': 840},
- loc('test/text/TestStr2Bool.py'): {},
- loc('../sqlcmd/setup.py'): {}},
- 'has-focus': True}),
- 'open_files': [u'CHANGELOG',
- u'grizzled/cmdline.py',
- u'grizzled/collections/__init__.py',
- u'grizzled/collections/dict.py',
- u'grizzled/collections/tuple.py',
- u'grizzled/config.py',
- u'grizzled/db/__init__.py',
- u'grizzled/db/base.py',
- u'grizzled/db/dummydb.py',
- u'grizzled/db/sqlserver.py',
- u'grizzled/exception.py',
- u'grizzled/file/__init__.py',
- u'grizzled/io/filelock.py',
- u'grizzled/log.py',
- u'grizzled/os.py',
- u'setup.py',
- u'test/collections/TestLRUDict.py',
- u'test/io/TestPushback.py',
- u'test/text/TestStr2Bool.py',
- u'../sqlcmd/setup.py',
- u'grizzled/db/postgresql.py',
- u'grizzled/decorators.py',
- u'grizzled/history.py',
- u'grizzled/text/__init__.py',
- u'grizzled/misc.py',
- u'grizzled/system.py',
- u'grizzled/__init__.py',
- u'grizzled/file/includer.py',
- u'grizzled/io/__init__.py']},
- 'split_percents': {0: 0.5},
- 'splits': 1,
- 'tab_location': 'top',
- 'user_data': {}},
- 'split_percents': {0: 0.5},
- 'splits': 2,
- 'tab_location': 'left',
- 'user_data': {}},
- 'window-alloc': (0,
- 0,
- 1680,
- 1028)},
- {'name': 'nz8sdCZFY1fM2ZHHgdqsqa9sPhFohhIY',
- 'size-state': '',
- 'type': 'panel-tall',
- 'view': {'area': 'window-wide',
- 'current_pages': [0],
- 'override_title': None,
- 'pagelist': [('debug-io',
- 'window-wide',
- 1,
- {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0})],
- 'split_percents': {},
- 'splits': 1,
- 'tab_location': 'top',
- 'user_data': {}},
- 'window-alloc': (183,
- 177,
- 1011,
- 116)}]}
-guimgr.recent-documents = [loc('grizzled/io/__init__.py'),
- loc('grizzled/file/includer.py'),
- loc('grizzled/__init__.py'),
- loc('grizzled/system.py'),
- loc('grizzled/misc.py'),
- loc('grizzled/text/__init__.py'),
- loc('grizzled/history.py'),
- loc('grizzled/decorators.py'),
- loc('grizzled/db/postgresql.py'),
- loc('grizzled/db/sqlserver.py'),
- loc('../sqlcmd/setup.py')]
-guimgr.visual-state = {loc('../../../../../../Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/optparse.py'): {''\
- 'attrib-starts': [('HelpFormatter',
- 148)],
- 'first-line': 144,
- 'folded-linenos': [],
- 'sel-line': 150,
- 'sel-line-start': 4632,
- 'selection_end': 4635,
- 'selection_start': 4635},
- loc('../../java/util/src/org/clapper/util/misc/LRUMap.java'): {''\
- 'attrib-starts': [],
- 'first-line': 1025,
- 'folded-linenos': [],
- 'sel-line': 1049,
- 'sel-line-start': 31106,
- 'selection_end': 31106,
- 'selection_start': 31106},
- loc('CHANGELOG'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('grizzled/CH'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('grizzled/cmdline.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('grizzled/collections.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('grizzled/collections/dict.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('grizzled/config.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('grizzled/db/__init__.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('grizzled/db/tmp/foo'): {'attrib-starts': [],
- 'first-line': 0,
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('grizzled/file/__init__.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('grizzled/file/includer.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('grizzled/misc.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 31,
- 'sel-line-start': 850,
- 'selection_end': 850,
- 'selection_start': 850},
- loc('grizzled/net.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('grizzled/os.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('grizzled/setup.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('grizzled/sys.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('grizzled/system.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('setup.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('test/io/__init__.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('test/text/TestStr2Bool.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('../sqlcmd/setup.py'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('../sqlcmd/sqlcmd/__init__.py'): {'attrib-starts': [(''\
- 'SQLCmd',
- 498),
- ('SQLCmd.__calculate_column_sizes',
- 1470)],
- 'first-line': 1459,
- 'folded-linenos': [],
- 'sel-line': 1487,
- 'sel-line-start': 47572,
- 'selection_end': 47610,
- 'selection_start': 47610},
- loc('unknown:<untitled> #63'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #67'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #65'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #66'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #68'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #69'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #70'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #71'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #72'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #73'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #74'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #75'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #76'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #77'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #78'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #79'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #80'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #81'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #82'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #83'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #84'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #85'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #86'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #87'): {'attrib-starts': [],
- 'first-line': 4,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 3,
- 'sel-line-start': 157,
- 'selection_end': 161,
- 'selection_start': 161},
- loc('unknown:<untitled> #88'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #89'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #90'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #91'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #92'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #93'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #94'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #95'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #96'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #97'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 4,
- 'selection_start': 4},
- loc('unknown:<untitled> #98'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #99'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #100'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #101'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #102'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #103'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #104'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 3,
- 'sel-line-start': 180,
- 'selection_end': 184,
- 'selection_start': 184},
- loc('unknown:<untitled> #105'): {'attrib-starts': [],
- 'first-line': 0,
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 60,
- 'selection_start': 0},
- loc('unknown:<untitled> #106'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #107'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #108'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #109'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #110'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #111'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #113'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #112'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #114'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #115'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #116'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #117'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #118'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #119'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #120'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #121'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #122'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #123'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #124'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #125'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #126'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #127'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #128'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #130'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #129'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #131'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #132'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #133'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #135'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #134'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #136'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #137'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #138'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #139'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #140'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 4,
- 'selection_start': 4},
- loc('unknown:<untitled> #141'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 3,
- 'sel-line-start': 167,
- 'selection_end': 171,
- 'selection_start': 171},
- loc('unknown:<untitled> #142'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #143'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #144'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 4,
- 'selection_start': 4},
- loc('unknown:<untitled> #145'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #146'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #147'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #148'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #149'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #150'): {'attrib-starts': [],
- 'first-line': 0,
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #151'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #152'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 0,
- 'sel-line-start': 0,
- 'selection_end': 0,
- 'selection_start': 0},
- loc('unknown:<untitled> #153'): {'attrib-starts': [],
- 'first-line': 0,
- 'folded-linenos': [],
- 'history': {},
- 'sel-line': 3,
- 'sel-line-start': 173,
- 'selection_end': 177,
- 'selection_start': 177}}
-proj.env-vars = {None: ('default',
- [''])}
-proj.revision-control = 1
-proj.revision-control-system = u'svn'
-search.replace-history = [u'space_col',
- u'show_buf',
- u'``AutoFlush``',
- u'``Includer``']
-search.search-history = [u'field_names',
- u'iteritems',
- u'spaceCol',
- u'bShowBuf',
- u'ascmap',
- u'nStarLen',
- u'1',
- u'x',
- u'grizzled',
- u'0x020501f0',
- u'raise',
- u'module',
- u'C{AutoFlush}',
- u'object',
- u'C{Includer}',
- u'argument',
- u'rtype',
- u'-',
- u'fileOrURL',
- u'C{ConfigParser}']
View
10 grizzled/__init__.py
@@ -1,14 +1,12 @@
"""
-The *Grizzled Utility Library* is a general-purpose Python library with
+The Grizzled Utility Library is a general-purpose Python library with
a variety of different modules and packages. It's roughly organized into
subpackages that group different kinds of utility functions and classes.
-
-See the `API documentation`_ for complete details.
-
-.. _API documentation: http://software.clapper.org/python/grizzled-python/epydoc
"""
-__version__ = '0.9.4'
+__docformat__ = "restructuredtext en"
+
+__version__ = '1.0'
__author__ = 'Brian M. Clapper'
__email__ = 'bmc@clapper.org'
__url__ = 'http://software.clapper.org/grizzled-python/'
View
3 grizzled/collections/__init__.py
@@ -13,10 +13,9 @@
# ---------------------------------------------------------------------------
from grizzled.collections.dict import OrderedDict, LRUDict
-from grizzled.collections.tuple import namedtuple
# ---------------------------------------------------------------------------
# Exports
# ---------------------------------------------------------------------------
-__all__ = ['OrderedDict', 'LRUDict', 'namedtuple']
+__all__ = ['OrderedDict', 'LRUDict']
View
169 grizzled/collections/tuple.py
@@ -1,169 +0,0 @@
-"""
-``grizzled.collections.tuple`` contains some useful tuple-related classes
-and functions.
-"""
-__docformat__ = "restructuredtext en"
-
-# ---------------------------------------------------------------------------
-# Imports
-# ---------------------------------------------------------------------------
-
-from operator import itemgetter as _itemgetter
-from keyword import iskeyword as _iskeyword
-import sys as _sys
-
-# ---------------------------------------------------------------------------
-# Exports
-# ---------------------------------------------------------------------------
-
-__all__ = ['namedtuple']
-
-# ---------------------------------------------------------------------------
-# Public Functions
-# ---------------------------------------------------------------------------
-
-def namedtuple(typename, fieldnames, verbose=False):
- """
- Returns a new subclass of tuple with named fields. If running under Python
- 2.6 or newer, this function is nothing more than an alias for the
- standard Python ``collections.namedtuple()`` function. Otherwise,
- this function is a local implementation, adapted from an
- `ActiveState namedtuple recipe`_.
-
- .. _ActiveState namedtuple recipe: http://code.activestate.com/recipes/500261/
-
- Usage:
-
- .. python::
-
- Point = namedtuple('Point', 'x y')
- p0 = Point(10, 20)
- p1 = Point(11, y=22)
- p2 = Point(x=1, y=2)
- print p2[0] # prints 1
- print p1[1] # prints 22
- x, y = p0 # x=10, y=20
- print p0.x # prints 10
- d = p2._asdict() # convert to dictionary
- print d['x'] # prints 1
-
- :Parameters:
- typename : str
- Name for the returned class
-
- fieldnames : str or sequence
- A single string with each field name separated by whitespace and/or
- commas (e.g., 'x y' or 'x, y'). Alternatively, ``fieldnames`` can
- be a sequence of strings such as ['x', 'y'].
-
- verbose : bool
- If ``True``, the class definition will be printed to standard
- output before being returned
-
- :rtype: class
- :return: The named tuple class
-
- :raise ValueError: Bad parameters
- """
- return _namedtuple(typename, fieldnames, verbose=verbose)
-
-# ---------------------------------------------------------------------------
-# Private
-# ---------------------------------------------------------------------------
-
-def _local_namedtuple(typename, fieldnames, verbose=False):
- # Parse and validate the field names. Validation serves two purposes,
- # generating informative error messages and preventing template injection
- # attacks.
-
- if isinstance(fieldnames, basestring):
- # names separated by whitespace and/or commas
- fieldnames = fieldnames.replace(',', ' ').split()
-
- fieldnames = tuple(map(str, fieldnames))
- for name in (typename,) + fieldnames:
- if not min(c.isalnum() or c=='_' for c in name):
- raise ValueError('Type names and field names can only contain '
- 'alphanumeric characters and underscores: %r' % name)
-
- if _iskeyword(name):
- raise ValueError('Type names and field names cannot be a keyword: '
- '%r' % name)
-
- if name[0].isdigit():
- raise ValueError('Type names and field names cannot start with a '
- 'number: %r' % name)
-
- seen_names = set()
- for name in fieldnames:
- if name.startswith('_'):
- raise ValueError('Field names cannot start with an underscore: '
- '%r' % name)
- if name in seen_names:
- raise ValueError('Encountered duplicate field name: %r' % name)
-
- seen_names.add(name)
-
- # Create and fill-in the class template
-
- numfields = len(fieldnames)
- argtxt = repr(fieldnames).replace("'", "")[1:-1] # tuple repr without parens or quotes
- reprtxt = ', '.join('%s=%%r' % name for name in fieldnames)
- dicttxt = ', '.join('%r: t[%d]' % (name, pos) for pos, name in enumerate(fieldnames))
- template = '''class %(typename)s(tuple):
- '%(typename)s(%(argtxt)s)' \n
- __slots__ = () \n
- _fields = %(fieldnames)r \n
- def __new__(cls, %(argtxt)s):
- return tuple.__new__(cls, (%(argtxt)s)) \n
- @classmethod
- def _make(cls, iterable, new=tuple.__new__, len=len):
- 'Make a new %(typename)s object from a sequence or iterable'
- result = new(cls, iterable)
- if len(result) != %(numfields)d:
- raise TypeError('Expected %(numfields)d arguments, got %%d' %% len(result))
- return result \n
- def __repr__(self):
- return '%(typename)s(%(reprtxt)s)' %% self \n
- def _asdict(t):
- 'Return a new dict which maps field names to their values'
- return {%(dicttxt)s} \n
- def _replace(self, **kwds):
- 'Return a new %(typename)s object replacing specified fields with new values'
- result = self._make(map(kwds.pop, %(fieldnames)r, self))
- if kwds:
- raise ValueError('Got unexpected field names: %%r' %% kwds.keys())
- return result \n\n''' % locals()
- for i, name in enumerate(fieldnames):
- template += ' %s = property(itemgetter(%d))\n' % (name, i)
-
- if verbose:
- print template
-
- # Execute the template string in a temporary namespace
- namespace = dict(itemgetter=_itemgetter)
- try:
- exec template in namespace
- except SyntaxError, e:
- raise SyntaxError(e.message + ':\n' + template)
-
- result = namespace[typename]
-
- # For pickling to work, the __module__ variable needs to be set to the
- # frame where the named tuple is created. Bypass this step in enviroments
- # where sys._getframe is not defined (Jython for example).
-
- if hasattr(_sys, '_getframe') and _sys.platform != 'cli':
- result.__module__ = _sys._getframe(1).f_globals['__name__']
-
- return result
-
-# ---------------------------------------------------------------------------
-# Initialization
-# ---------------------------------------------------------------------------
-
-if _sys.hexversion >= 0x2060000:
- import collections
- _namedtuple = collections.namedtuple
-else:
- _namedtuple = _local_namedtuple
View
3 grizzled/db/base.py
@@ -3,6 +3,7 @@
"""
Base classes for enhanced DB drivers.
"""
+from __future__ import absolute_import
__docformat__ = "restructuredtext en"
@@ -15,10 +16,10 @@
import os
import sys