]> arthur.barton.de Git - bup.git/blobdiff - lib/bup/client.py
do_bloom(): remove unused "count" variable
[bup.git] / lib / bup / client.py
index c2c83e2f0c42dd7ea28d5b41b99d5f4835030872..54fe9d59d3d318ce14a0a7285f069dcf7affcd9e 100644 (file)
@@ -40,7 +40,8 @@ def parse_remote(remote):
     url_match = re.match(
             '%s(?:%s%s)?%s' % (protocol, host, port, path), remote, re.I)
     if url_match:
-        assert(url_match.group(1) in ('ssh', 'bup', 'file'))
+        if not url_match.group(1) in ('ssh', 'bup', 'file'):
+            raise ClientError, 'unexpected protocol: %s' % url_match.group(1)
         return url_match.group(1,3,4,5)
     else:
         rs = remote.split(':', 1)
@@ -51,10 +52,9 @@ def parse_remote(remote):
 
 
 class Client:
-    def __init__(self, remote, create=False, compression_level=1):
+    def __init__(self, remote, create=False):
         self._busy = self.conn = None
         self.sock = self.p = self.pout = self.pin = None
-        self.compression_level = compression_level
         is_reverse = os.environ.get('BUP_SERVER_REVERSE')
         if is_reverse:
             assert(not remote)
@@ -189,17 +189,15 @@ class Client:
         self.conn.write('send-index %s\n' % name)
         n = struct.unpack('!I', self.conn.read(4))[0]
         assert(n)
-        f = open(fn + '.tmp', 'w')
-        count = 0
-        progress('Receiving index from server: %d/%d\r' % (count, n))
-        for b in chunkyreader(self.conn, n):
-            f.write(b)
-            count += len(b)
-            qprogress('Receiving index from server: %d/%d\r' % (count, n))
-        progress('Receiving index from server: %d/%d, done.\n' % (count, n))
-        self.check_ok()
-        f.close()
-        os.rename(fn + '.tmp', fn)
+        with atomically_replaced_file(fn, 'w') as f:
+            count = 0
+            progress('Receiving index from server: %d/%d\r' % (count, n))
+            for b in chunkyreader(self.conn, n):
+                f.write(b)
+                count += len(b)
+                qprogress('Receiving index from server: %d/%d\r' % (count, n))
+            progress('Receiving index from server: %d/%d, done.\n' % (count, n))
+            self.check_ok()
 
     def _make_objcache(self):
         return git.PackIdxList(self.cachedir)
@@ -236,7 +234,7 @@ class Client:
             self.conn.write('%s\n' % ob)
         return idx
 
-    def new_packwriter(self):
+    def new_packwriter(self, compression_level = 1):
         self.check_busy()
         def _set_busy():
             self._busy = 'receive-objects-v2'
@@ -247,7 +245,7 @@ class Client:
                                  onopen = _set_busy,
                                  onclose = self._not_busy,
                                  ensure_busy = self.ensure_busy,
-                                 compression_level = self.compression_level)
+                                 compression_level = compression_level)
 
     def read_ref(self, refname):
         self.check_busy()
@@ -296,7 +294,6 @@ class PackWriter_Remote(git.PackWriter):
         self._packopen = False
         self._bwcount = 0
         self._bwtime = time.time()
-        self.compression_level = compression_level
 
     def _open(self):
         if not self._packopen: