/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/textfile.py

  • Committer: Robert Collins
  • Date: 2010-05-06 23:41:35 UTC
  • mto: This revision was merged to the branch mainline in revision 5223.
  • Revision ID: robertc@robertcollins.net-20100506234135-yivbzczw1sejxnxc
Lock methods on ``Tree``, ``Branch`` and ``Repository`` are now
expected to return an object which can be used to unlock them. This reduces
duplicate code when using cleanups. The previous 'tokens's returned by
``Branch.lock_write`` and ``Repository.lock_write`` are now attributes
on the result of the lock_write. ``repository.RepositoryWriteLockResult``
and ``branch.BranchWriteLockResult`` document this. (Robert Collins)

``log._get_info_for_log_files`` now takes an add_cleanup callable.
(Robert Collins)

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 
17
17
"""Utilities for distinguishing binary files from text files"""
18
18
 
19
 
from __future__ import absolute_import
20
 
 
21
19
from itertools import chain
22
20
 
23
 
from .errors import BinaryFile
24
 
from .iterablefile import IterableFile
25
 
from .osutils import file_iterator
 
21
from bzrlib.errors import BinaryFile
 
22
from bzrlib.iterablefile import IterableFile
 
23
from bzrlib.osutils import file_iterator
26
24
 
27
25
 
28
26
def text_file(input):
30
28
    BinaryFile is raised if the file contains a NUL in the first 1024 bytes.
31
29
    """
32
30
    first_chunk = input.read(1024)
33
 
    if b'\x00' in first_chunk:
 
31
    if '\x00' in first_chunk:
34
32
        raise BinaryFile()
35
33
    return IterableFile(chain((first_chunk,), file_iterator(input)))
36
34
 
40
38
    Only the first 1024 characters are checked.
41
39
    """
42
40
    f = IterableFile(lines)
43
 
    if b'\x00' in f.read(1024):
 
41
    if '\x00' in f.read(1024):
44
42
        raise BinaryFile()
45
43
 
46
44
 
48
46
    """Check whether the supplied path is a text, not binary file.
49
47
    Raise BinaryFile if a NUL occurs in the first 1024 bytes.
50
48
    """
51
 
    with open(path, 'rb') as f:
 
49
    f = open(path, 'rb')
 
50
    try:
52
51
        text_file(f)
 
52
    finally:
 
53
        f.close()