ソースを参照

fix all references to package name

use relative imports if possible
reorder imports (1. stdlib 2. dependencies 3. borg 4. borg.testsuite)
Thomas Waldmann 10 年 前
コミット
5e98400a5a

+ 1 - 1
.gitattributes

@@ -1 +1 @@
-attic/_version.py export-subst
+borg/_version.py export-subst

+ 1 - 1
.travis.yml

@@ -9,4 +9,4 @@ install:
   - "pip install --use-mirrors Cython"
   - "pip install -e ."
 # command to run tests
-script: fakeroot -u python -m attic.testsuite.run -vb
+script: fakeroot -u python -m borg.testsuite.run -vb

+ 2 - 2
MANIFEST.in

@@ -1,7 +1,7 @@
 include README.rst LICENSE CHANGES MANIFEST.in versioneer.py
-recursive-include attic *.pyx
+recursive-include borg *.pyx
 recursive-include docs *
 recursive-exclude docs *.pyc
 recursive-exclude docs *.pyo
 prune docs/_build
-include attic/_version.py
+include borg/_version.py

+ 1 - 1
borg/_version.py

@@ -21,7 +21,7 @@ git_full = "$Format:%H$"
 # these strings are filled in when 'setup.py versioneer' creates _version.py
 tag_prefix = ""
 parentdir_prefix = "borgbackup-"
-versionfile_source = "attic/_version.py"
+versionfile_source = "borg/_version.py"
 
 
 def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False):

+ 7 - 7
borg/archive.py

@@ -4,8 +4,8 @@ from itertools import groupby
 import errno
 import shutil
 import tempfile
-from attic.key import key_factory
-from attic.remote import cache_if_remote
+from .key import key_factory
+from .remote import cache_if_remote
 import msgpack
 import os
 import socket
@@ -13,11 +13,11 @@ import stat
 import sys
 import time
 from io import BytesIO
-from attic import xattr
-from attic.platform import acl_get, acl_set
-from attic.chunker import Chunker
-from attic.hashindex import ChunkIndex
-from attic.helpers import parse_timestamp, Error, uid2user, user2uid, gid2group, group2gid, \
+from . import xattr
+from .platform import acl_get, acl_set
+from .chunker import Chunker
+from .hashindex import ChunkIndex
+from .helpers import parse_timestamp, Error, uid2user, user2uid, gid2group, group2gid, \
     Manifest, Statistics, decode_dict, st_mtime_ns, make_path_safe, StableDict, int_to_bigint, bigint_to_int
 
 ITEMS_BUFFER = 1024 * 1024

+ 10 - 10
borg/archiver.py

@@ -12,17 +12,17 @@ import sys
 import textwrap
 import traceback
 
-from attic import __version__
-from attic.archive import Archive, ArchiveChecker
-from attic.repository import Repository
-from attic.cache import Cache
-from attic.key import key_creator
-from attic.helpers import Error, location_validator, format_time, format_file_size, \
+from . import __version__
+from .archive import Archive, ArchiveChecker
+from .repository import Repository
+from .cache import Cache
+from .key import key_creator
+from .helpers import Error, location_validator, format_time, format_file_size, \
     format_file_mode, ExcludePattern, exclude_path, adjust_patterns, to_localtime, timestamp, \
     get_cache_dir, get_keys_dir, format_timedelta, prune_within, prune_split, \
     Manifest, remove_surrogates, update_excludes, format_archive, check_extension_modules, Statistics, \
     is_cachedir, bigint_to_int
-from attic.remote import RepositoryServer, RemoteRepository
+from .remote import RepositoryServer, RemoteRepository
 
 
 class Archiver:
@@ -296,7 +296,7 @@ Type "Yes I am sure" if you understand this and want to continue.\n""")
     def do_mount(self, args):
         """Mount archive or an entire repository as a FUSE fileystem"""
         try:
-            from attic.fuse import FuseOperations
+            from .fuse import FuseOperations
         except ImportError as e:
             self.print_error('loading fuse support failed [ImportError: %s]' % str(e))
             return self.exit_code
@@ -814,7 +814,7 @@ def sig_info_handler(signum, stack):
     """search the stack for infos about the currently processed file and print them"""
     for frame in inspect.getouterframes(stack):
         func, loc = frame[3], frame[0].f_locals
-        if func in ('process_file', '_process', ):  # attic create
+        if func in ('process_file', '_process', ):  # create op
             path = loc['path']
             try:
                 pos = loc['fd'].tell()
@@ -823,7 +823,7 @@ def sig_info_handler(signum, stack):
                 pos, total = 0, 0
             print("{0} {1}/{2}".format(path, format_file_size(pos), format_file_size(total)))
             break
-        if func in ('extract_item', ):  # attic extract
+        if func in ('extract_item', ):  # extract op
             path = loc['item'][b'path']
             try:
                 pos = loc['fd'].tell()

+ 1 - 1
borg/cache.py

@@ -1,5 +1,5 @@
 from configparser import RawConfigParser
-from attic.remote import cache_if_remote
+from .remote import cache_if_remote
 import msgpack
 import os
 import sys

+ 3 - 3
borg/fuse.py

@@ -7,9 +7,9 @@ import os
 import stat
 import tempfile
 import time
-from attic.archive import Archive
-from attic.helpers import daemonize
-from attic.remote import cache_if_remote
+from .archive import Archive
+from .helpers import daemonize
+from .remote import cache_if_remote
 
 # Does this version of llfuse support ns precision?
 have_fuse_mtime_ns = hasattr(llfuse.EntryAttributes, 'st_mtime_ns')

+ 8 - 8
borg/helpers.py

@@ -12,9 +12,9 @@ from fnmatch import translate
 from operator import attrgetter
 import fcntl
 
-import attic.hashindex
-import attic.chunker
-import attic.crypto
+from . import hashindex
+from . import chunker
+from . import crypto
 
 
 class Error(Exception):
@@ -71,11 +71,11 @@ class UpgradableLock:
 
 
 def check_extension_modules():
-    import attic.platform
-    if (attic.hashindex.API_VERSION != 2 or
-        attic.chunker.API_VERSION != 2 or
-        attic.crypto.API_VERSION != 2 or
-        attic.platform.API_VERSION != 2):
+    from . import platform
+    if (hashindex.API_VERSION != 2 or
+        chunker.API_VERSION != 2 or
+        crypto.API_VERSION != 2 or
+        platform.API_VERSION != 2):
         raise ExtensionModuleError
 
 

+ 2 - 2
borg/key.py

@@ -7,8 +7,8 @@ import hmac
 from hashlib import sha256
 import zlib
 
-from attic.crypto import pbkdf2_sha256, get_random_bytes, AES, bytes_to_long, long_to_bytes, bytes_to_int, num_aes_blocks
-from attic.helpers import IntegrityError, get_keys_dir, Error
+from .crypto import pbkdf2_sha256, get_random_bytes, AES, bytes_to_long, long_to_bytes, bytes_to_int, num_aes_blocks
+from .helpers import IntegrityError, get_keys_dir, Error
 
 PREFIX = b'\0' * 8
 

+ 3 - 3
borg/platform.py

@@ -1,11 +1,11 @@
 import sys
 
 if sys.platform.startswith('linux'):
-    from attic.platform_linux import acl_get, acl_set, API_VERSION
+    from .platform_linux import acl_get, acl_set, API_VERSION
 elif sys.platform.startswith('freebsd'):
-    from attic.platform_freebsd import acl_get, acl_set, API_VERSION
+    from .platform_freebsd import acl_get, acl_set, API_VERSION
 elif sys.platform == 'darwin':
-    from attic.platform_darwin import acl_get, acl_set, API_VERSION
+    from .platform_darwin import acl_get, acl_set, API_VERSION
 else:
     API_VERSION = 2
 

+ 1 - 1
borg/platform_darwin.pyx

@@ -1,5 +1,5 @@
 import os
-from attic.helpers import user2uid, group2gid
+from .helpers import user2uid, group2gid
 
 API_VERSION = 2
 

+ 1 - 1
borg/platform_freebsd.pyx

@@ -1,5 +1,5 @@
 import os
-from attic.helpers import posix_acl_use_stored_uid_gid
+from .helpers import posix_acl_use_stored_uid_gid
 
 API_VERSION = 2
 

+ 1 - 1
borg/platform_linux.pyx

@@ -1,7 +1,7 @@
 import os
 import re
 from stat import S_ISLNK
-from attic.helpers import posix_acl_use_stored_uid_gid, user2uid, group2gid
+from .helpers import posix_acl_use_stored_uid_gid, user2uid, group2gid
 
 API_VERSION = 2
 

+ 2 - 2
borg/remote.py

@@ -9,7 +9,7 @@ import sys
 import tempfile
 import traceback
 
-from attic import __version__
+from . import __version__
 
 from .hashindex import NSIndex
 from .helpers import Error, IntegrityError
@@ -123,7 +123,7 @@ class RemoteRepository:
         self.unpacker = msgpack.Unpacker(use_list=False)
         self.p = None
         if location.host == '__testsuite__':
-            args = [sys.executable, '-m', 'attic.archiver', 'serve'] + self.extra_test_args
+            args = [sys.executable, '-m', 'borg.archiver', 'serve'] + self.extra_test_args
         else:
             args = ['ssh']
             if location.port:

+ 3 - 3
borg/testsuite/__init__.py

@@ -6,8 +6,8 @@ import sys
 import sysconfig
 import time
 import unittest
-from attic.helpers import st_mtime_ns
-from attic.xattr import get_all
+from ..helpers import st_mtime_ns
+from ..xattr import get_all
 
 try:
     import llfuse
@@ -113,7 +113,7 @@ class TestLoader(unittest.TestLoader):
     """
 
     def loadTestsFromName(self, pattern, module=None):
-        suite = self.discover('attic.testsuite', '*.py')
+        suite = self.discover('borg.testsuite', '*.py')
         tests = unittest.TestSuite()
         for test in get_tests(suite):
             if pattern.lower() in test.id().lower():

+ 8 - 6
borg/testsuite/archive.py

@@ -1,11 +1,13 @@
-import msgpack
-from attic.testsuite import BaseTestCase
-from attic.testsuite.mock import Mock
-from attic.archive import Archive, CacheChunkBuffer, RobustUnpacker
-from attic.key import PlaintextKey
-from attic.helpers import Manifest
 from datetime import datetime, timezone
 
+import msgpack
+
+from ..archive import Archive, CacheChunkBuffer, RobustUnpacker
+from ..key import PlaintextKey
+from ..helpers import Manifest
+from . import BaseTestCase
+from .mock import Mock
+
 
 class MockCache:
 

+ 12 - 11
borg/testsuite/archiver.py

@@ -10,16 +10,17 @@ import tempfile
 import time
 import unittest
 from hashlib import sha256
-from attic import xattr
-from attic.archive import Archive, ChunkBuffer, CHUNK_MAX
-from attic.archiver import Archiver
-from attic.cache import Cache
-from attic.crypto import bytes_to_long, num_aes_blocks
-from attic.helpers import Manifest
-from attic.remote import RemoteRepository, PathNotAllowed
-from attic.repository import Repository
-from attic.testsuite import BaseTestCase
-from attic.testsuite.mock import patch
+
+from .. import xattr
+from ..archive import Archive, ChunkBuffer, CHUNK_MAX
+from ..archiver import Archiver
+from ..cache import Cache
+from ..crypto import bytes_to_long, num_aes_blocks
+from ..helpers import Manifest
+from ..remote import RemoteRepository, PathNotAllowed
+from ..repository import Repository
+from . import BaseTestCase
+from .mock import patch
 
 try:
     import llfuse
@@ -95,7 +96,7 @@ class ArchiverTestCaseBase(BaseTestCase):
         fork = kw.get('fork', False)
         if fork:
             try:
-                output = subprocess.check_output((sys.executable, '-m', 'attic.archiver') + args)
+                output = subprocess.check_output((sys.executable, '-m', 'borg.archiver') + args)
                 ret = 0
             except subprocess.CalledProcessError as e:
                 output = e.output

+ 4 - 3
borg/testsuite/chunker.py

@@ -1,8 +1,9 @@
-from attic.chunker import Chunker, buzhash, buzhash_update
-from attic.testsuite import BaseTestCase
-from attic.archive import CHUNK_MAX
 from io import BytesIO
 
+from ..chunker import Chunker, buzhash, buzhash_update
+from ..archive import CHUNK_MAX
+from . import BaseTestCase
+
 
 class ChunkerTestCase(BaseTestCase):
 

+ 3 - 2
borg/testsuite/crypto.py

@@ -1,6 +1,7 @@
 from binascii import hexlify
-from attic.testsuite import BaseTestCase
-from attic.crypto import AES, bytes_to_long, bytes_to_int, long_to_bytes, pbkdf2_sha256, get_random_bytes
+
+from ..crypto import AES, bytes_to_long, bytes_to_int, long_to_bytes, pbkdf2_sha256, get_random_bytes
+from . import BaseTestCase
 
 
 class CryptoTestCase(BaseTestCase):

+ 3 - 2
borg/testsuite/hashindex.py

@@ -1,8 +1,9 @@
 import hashlib
 import os
 import tempfile
-from attic.hashindex import NSIndex, ChunkIndex
-from attic.testsuite import BaseTestCase
+
+from ..hashindex import NSIndex, ChunkIndex
+from . import BaseTestCase
 
 
 class HashIndexTestCase(BaseTestCase):

+ 5 - 3
borg/testsuite/helpers.py

@@ -4,11 +4,13 @@ from datetime import datetime, timezone, timedelta
 import os
 import tempfile
 import unittest
-from attic.helpers import adjust_patterns, exclude_path, Location, format_timedelta, IncludePattern, ExcludePattern, make_path_safe, UpgradableLock, prune_within, prune_split, to_localtime, \
-    StableDict, int_to_bigint, bigint_to_int, parse_timestamp
-from attic.testsuite import BaseTestCase
+
 import msgpack
 
+from ..helpers import adjust_patterns, exclude_path, Location, format_timedelta, IncludePattern, ExcludePattern, make_path_safe, UpgradableLock, prune_within, prune_split, to_localtime, \
+    StableDict, int_to_bigint, bigint_to_int, parse_timestamp
+from . import BaseTestCase
+
 
 class BigIntTestCase(BaseTestCase):
 

+ 5 - 4
borg/testsuite/key.py

@@ -3,10 +3,11 @@ import re
 import shutil
 import tempfile
 from binascii import hexlify
-from attic.crypto import bytes_to_long, num_aes_blocks
-from attic.testsuite import BaseTestCase
-from attic.key import PlaintextKey, PassphraseKey, KeyfileKey
-from attic.helpers import Location, unhexlify
+
+from ..crypto import bytes_to_long, num_aes_blocks
+from ..key import PlaintextKey, PassphraseKey, KeyfileKey
+from ..helpers import Location, unhexlify
+from . import BaseTestCase
 
 
 class KeyTestCase(BaseTestCase):

+ 2 - 2
borg/testsuite/lrucache.py

@@ -1,5 +1,5 @@
-from attic.lrucache import LRUCache
-from attic.testsuite import BaseTestCase
+from ..lrucache import LRUCache
+from . import BaseTestCase
 
 
 class LRUCacheTestCase(BaseTestCase):

+ 3 - 2
borg/testsuite/platform.py

@@ -3,8 +3,9 @@ import shutil
 import sys
 import tempfile
 import unittest
-from attic.platform import acl_get, acl_set
-from attic.testsuite import BaseTestCase
+
+from ..platform import acl_get, acl_set
+from . import BaseTestCase
 
 
 ACCESS_ACL = """

+ 7 - 6
borg/testsuite/repository.py

@@ -1,12 +1,13 @@
 import os
 import shutil
 import tempfile
-from attic.testsuite.mock import patch
-from attic.hashindex import NSIndex
-from attic.helpers import Location, IntegrityError, UpgradableLock
-from attic.remote import RemoteRepository, InvalidRPCMethod
-from attic.repository import Repository
-from attic.testsuite import BaseTestCase
+
+from ..hashindex import NSIndex
+from ..helpers import Location, IntegrityError, UpgradableLock
+from ..remote import RemoteRepository, InvalidRPCMethod
+from ..repository import Repository
+from . import BaseTestCase
+from .mock import patch
 
 
 class RepositoryTestCaseBase(BaseTestCase):

+ 2 - 1
borg/testsuite/run.py

@@ -1,5 +1,6 @@
 import unittest
-from attic.testsuite import TestLoader
+
+from . import TestLoader
 
 
 def main():

+ 3 - 2
borg/testsuite/xattr.py

@@ -1,8 +1,9 @@
 import os
 import tempfile
 import unittest
-from attic.testsuite import BaseTestCase
-from attic.xattr import is_enabled, getxattr, setxattr, listxattr
+
+from ..xattr import is_enabled, getxattr, setxattr, listxattr
+from . import BaseTestCase
 
 
 @unittest.skipUnless(is_enabled(), 'xattr not enabled on filesystem')

+ 4 - 3
docs/conf.py

@@ -1,4 +1,4 @@
-    # -*- coding: utf-8 -*-
+# -*- coding: utf-8 -*-
 #
 # documentation build configuration file, created by
 # sphinx-quickstart on Sat Sep 10 18:18:25 2011.
@@ -11,7 +11,8 @@
 # All configuration values have a default; values that are commented out
 # serve to show the default.
 
-import sys, os, attic
+import sys, os
+from borg import __version__ as sw_version
 
 # If extensions (or modules to document with autodoc) are in another directory,
 # add these directories to sys.path here. If the directory is relative to the
@@ -48,7 +49,7 @@ copyright = '2010-2014, Jonas Borgström'
 # built documents.
 #
 # The short X.Y version.
-version = attic.__version__.split('-')[0]
+version = sw_version.split('-')[0]
 # The full version, including alpha/beta/rc tags.
 release = version
 

+ 1 - 1
scripts/borg

@@ -1,4 +1,4 @@
 #!/usr/bin/env python
-from attic.archiver import main
+from borg.archiver import main
 main()
 

+ 26 - 19
setup.py

@@ -6,8 +6,8 @@ from glob import glob
 import versioneer
 versioneer.VCS = 'git'
 versioneer.style = 'pep440'
-versioneer.versionfile_source = 'attic/_version.py'
-versioneer.versionfile_build = 'attic/_version.py'
+versioneer.versionfile_source = 'borg/_version.py'
+versioneer.versionfile_build = 'borg/_version.py'
 versioneer.tag_prefix = ''
 versioneer.parentdir_prefix = 'borgbackup-'  # dirname like 'myproject-1.2.0'
 
@@ -21,12 +21,12 @@ try:
 except ImportError:
     from distutils.core import setup, Extension
 
-crypto_source = 'attic/crypto.pyx'
-chunker_source = 'attic/chunker.pyx'
-hashindex_source = 'attic/hashindex.pyx'
-platform_linux_source = 'attic/platform_linux.pyx'
-platform_darwin_source = 'attic/platform_darwin.pyx'
-platform_freebsd_source = 'attic/platform_freebsd.pyx'
+crypto_source = 'borg/crypto.pyx'
+chunker_source = 'borg/chunker.pyx'
+hashindex_source = 'borg/hashindex.pyx'
+platform_linux_source = 'borg/platform_linux.pyx'
+platform_darwin_source = 'borg/platform_darwin.pyx'
+platform_freebsd_source = 'borg/platform_freebsd.pyx'
 
 try:
     from Cython.Distutils import build_ext
@@ -34,13 +34,20 @@ try:
 
     class Sdist(versioneer.cmd_sdist):
         def __init__(self, *args, **kwargs):
-            for src in glob('attic/*.pyx'):
-                cython_compiler.compile(glob('attic/*.pyx'),
+            for src in glob('borg/*.pyx'):
+                cython_compiler.compile(glob('borg/*.pyx'),
                                         cython_compiler.default_options)
             versioneer.cmd_sdist.__init__(self, *args, **kwargs)
 
         def make_distribution(self):
-            self.filelist.extend(['attic/crypto.c', 'attic/chunker.c', 'attic/_chunker.c', 'attic/hashindex.c', 'attic/_hashindex.c', 'attic/platform_linux.c', 'attic/platform_freebsd.c', 'attic/platform_darwin.c'])
+            self.filelist.extend([
+                'borg/crypto.c',
+                'borg/chunker.c', 'borg/_chunker.c',
+                'borg/hashindex.c', 'borg/_hashindex.c',
+                'borg/platform_linux.c',
+                'borg/platform_freebsd.c',
+                'borg/platform_darwin.c',
+            ])
             super(Sdist, self).make_distribution()
 
 except ImportError:
@@ -68,7 +75,7 @@ def detect_openssl(prefixes):
                     return prefix
 
 
-possible_openssl_prefixes = ['/usr', '/usr/local', '/usr/local/opt/openssl', '/usr/local/ssl', '/usr/local/openssl', '/usr/local/attic', '/opt/local']
+possible_openssl_prefixes = ['/usr', '/usr/local', '/usr/local/opt/openssl', '/usr/local/ssl', '/usr/local/openssl', '/usr/local/borg', '/opt/local']
 if os.environ.get('BORG_OPENSSL_PREFIX'):
     possible_openssl_prefixes.insert(0, os.environ.get('BORG_OPENSSL_PREFIX'))
 ssl_prefix = detect_openssl(possible_openssl_prefixes)
@@ -85,16 +92,16 @@ cmdclass = versioneer.get_cmdclass()
 cmdclass.update({'build_ext': build_ext, 'sdist': Sdist})
 
 ext_modules = [
-    Extension('attic.crypto', [crypto_source], libraries=['crypto'], include_dirs=include_dirs, library_dirs=library_dirs),
-    Extension('attic.chunker', [chunker_source]),
-    Extension('attic.hashindex', [hashindex_source])
+    Extension('borg.crypto', [crypto_source], libraries=['crypto'], include_dirs=include_dirs, library_dirs=library_dirs),
+    Extension('borg.chunker', [chunker_source]),
+    Extension('borg.hashindex', [hashindex_source])
 ]
 if sys.platform.startswith('linux'):
-    ext_modules.append(Extension('attic.platform_linux', [platform_linux_source], libraries=['acl']))
+    ext_modules.append(Extension('borg.platform_linux', [platform_linux_source], libraries=['acl']))
 elif sys.platform.startswith('freebsd'):
-    ext_modules.append(Extension('attic.platform_freebsd', [platform_freebsd_source]))
+    ext_modules.append(Extension('borg.platform_freebsd', [platform_freebsd_source]))
 elif sys.platform == 'darwin':
-    ext_modules.append(Extension('attic.platform_darwin', [platform_darwin_source]))
+    ext_modules.append(Extension('borg.platform_darwin', [platform_darwin_source]))
 
 setup(
     name='borgbackup',
@@ -122,7 +129,7 @@ setup(
         'Topic :: Security :: Cryptography',
         'Topic :: System :: Archiving :: Backup',
     ],
-    packages=['attic', 'attic.testsuite'],
+    packages=['borg', 'borg.testsuite'],
     scripts=['scripts/borg'],
     cmdclass=cmdclass,
     ext_modules=ext_modules,

+ 1 - 1
tox.ini

@@ -4,7 +4,7 @@ envlist = py32, py33, py34
 [testenv]
 # Change dir to avoid import problem
 changedir = docs
-commands = {envpython} -m attic.testsuite.run -bv []
+commands = {envpython} -m borg.testsuite.run -bv []
 
 [testenv:py32]
 deps = mock