<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -38,33 +38,39 @@ def safe_filename(filename, dir=None):
             filename = os.path.join(path, root + &quot;-&quot; + str(serial) + ext)
     return os.path.basename(filename)
 
-def create_logdir():
-    if not os.path.exists(LOGDIR):
-        os.makedirs(LOGDIR)
+def create_dir(dir):
+    if not os.path.exists(dir):
+        os.makedirs(dir)
 
-def logdir(filename):
-    path = os.path.dirname(filename)
-    if path:
-        return filename
-    return os.path.join(LOGDIR, os.path.basename(filename))
+def file_exists(filename, dir=None):
+    if dir:
+        filename = os.path.join(dir, filename)
+    return os.path.exists(filename)
+
+def delete(filename, dir=None):
+    if dir:
+        filename = os.path.join(dir, filename)
+    return os.unlink(filename)
 
 def savelog(s, filename, mode=None):
-    create_logdir()
+    create_dir(LOGDIR)
     mode = mode or 'w'
-    open(logdir(filename), mode).write(s)
+    open(os.path.join(LOGDIR, filename), mode).write(s)
 
-def serialize(o, filename):
-    create_logdir()
+def serialize(o, filename, dir=None):
+    if dir:
+        create_dir(dir)
+        filename = os.path.join(dir, filename)
     try:
         getattr(o, &quot;_to_pickle&quot;)()
     except AttributeError:
         pass
     #fp = gzip.GzipFile(logdir(filename), 'w', compresslevel=1)
-    pickle.dump(o, open(logdir(filename), 'w'), pickle.HIGHEST_PROTOCOL)
+    pickle.dump(o, open(filename, 'w'), pickle.HIGHEST_PROTOCOL)
 
-def deserialize(filename):
-    if not os.path.exists(filename):
-        filename = logdir(filename)
+def deserialize(filename, dir=None):
+    if dir:
+        filename = os.path.join(dir, filename)
     #fp = gzip.GzipFile(filename, 'r')
     o = pickle.load(open(filename, 'r'))
     try:</diff>
      <filename>io.py</filename>
    </modified>
    <modified>
      <diff>@@ -22,31 +22,31 @@ def save_session(wb, queue=None):
     filename = urlrewrite.hostname_to_filename(hostname)
     io.write_err(&quot;Saving session to %s ...&quot; %
          shcolor.color(shcolor.YELLOW, filename+&quot;.{web,session}&quot;))
-    io.serialize(wb, filename + &quot;.web&quot;)
+    io.serialize(wb, filename + &quot;.web&quot;, dir=io.LOGDIR)
     if queue: 
-        io.serialize(queue, filename + &quot;.session&quot;)
+        io.serialize(queue, filename + &quot;.session&quot;, dir=io.LOGDIR)
     # only web being saved, ie. spidering complete, remove old session
-    elif os.path.exists(io.logdir(filename + &quot;.session&quot;)):
-        os.unlink(io.logdir(filename + &quot;.session&quot;))
+    elif io.file_exists(filename + &quot;.session&quot;, dir=io.LOGDIR):
+        io.delete(filename + &quot;.session&quot;, dir=io.LOGDIR)
     io.write_err(shcolor.color(shcolor.GREEN, &quot;done\n&quot;))
 
 def restore_session(url):
     hostname = urlrewrite.get_hostname(url)
     filename = urlrewrite.hostname_to_filename(hostname)
-    if (os.path.exists(io.logdir(filename+&quot;.session&quot;)) and
-       os.path.exists(io.logdir(filename+&quot;.web&quot;))):
+    if (io.file_exists(filename + &quot;.session&quot;, dir=io.LOGDIR) and
+        io.file_exists(filename + &quot;.web&quot;, dir=io.LOGDIR)):
         io.write_err(&quot;Restoring session from %s ...&quot; %
              shcolor.color(shcolor.YELLOW, filename+&quot;.{web,session}&quot;))
-        q = io.deserialize(filename + &quot;.session&quot;)
+        q = io.deserialize(filename + &quot;.session&quot;, dir=io.LOGDIR)
         q = recipe.overrule_records(q)
-        wb = io.deserialize(filename + &quot;.web&quot;)
+        wb = io.deserialize(filename + &quot;.web&quot;, dir=io.LOGDIR)
         io.write_err(shcolor.color(shcolor.GREEN, &quot;done\n&quot;))
         return q, wb
     return None, None
 
 def log_exc(exc, url, wb):
     exc_filename = io.safe_filename(&quot;exc&quot;, dir=io.LOGDIR)
-    io.serialize(exc, exc_filename)
+    io.serialize(exc, exc_filename, dir=io.LOGDIR)
     s = traceback.format_exc()
     s += &quot;\nBad url:   |%s|\n&quot; % url
     node = wb.get(url)</diff>
      <filename>spiderfetch.py</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>49f20e35e9b289d39cb8ea934db6de11f371e95f</id>
    </parent>
  </parents>
  <author>
    <name>Martin Matusiak</name>
    <email>numerodix@gmail.com</email>
  </author>
  <url>http://github.com/numerodix/spiderfetch/commit/eda049dfd6c600c99c1de34ec0240139dde742b1</url>
  <id>eda049dfd6c600c99c1de34ec0240139dde742b1</id>
  <committed-date>2008-06-27T10:10:49-07:00</committed-date>
  <authored-date>2008-06-27T10:10:49-07:00</authored-date>
  <message>kill faulty logdir() wrapping</message>
  <tree>19866618abc4957393c53f62007a417808e9f3cf</tree>
  <committer>
    <name>Martin Matusiak</name>
    <email>numerodix@gmail.com</email>
  </committer>
</commit>
