~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/osutils.py

  • Committer: mbp at sourcefrog
  • Date: 2005-04-06 12:21:15 UTC
  • Revision ID: mbp@sourcefrog.net-20050406122115-36c694e1ce778635896c6f69
pychecker fixups

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
# along with this program; if not, write to the Free Software
17
17
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18
18
 
19
 
import os, types, re, time, types
 
19
import os, types, re, time
20
20
from stat import S_ISREG, S_ISDIR, S_ISLNK, ST_MODE, ST_SIZE
21
21
 
22
 
from errors import bailout
 
22
from errors import bailout, BzrError
 
23
from trace import mutter
23
24
 
24
25
def make_readonly(filename):
25
26
    """Make a filename read-only."""
54
55
    elif S_ISLNK(mode):
55
56
        return 'symlink'
56
57
    else:
57
 
        bailout("can't handle file kind with mode %o of %r" % (mode, f)) 
 
58
        raise BzrError("can't handle file kind with mode %o of %r" % (mode, f)) 
58
59
 
59
60
 
60
61
 
163
164
    return '<%s@%s>' % (getpass.getuser(), socket.getfqdn())
164
165
 
165
166
 
 
167
_EMAIL_RE = re.compile(r'[\w+.-]+@[\w+.-]+')
166
168
def user_email():
167
169
    """Return just the email component of a username."""
168
170
    e = os.environ.get('BZREMAIL') or os.environ.get('EMAIL')
169
171
    if e:
170
 
        import re
171
 
        m = re.search(r'[\w+.-]+@[\w+.-]+', e)
 
172
        m = _EMAIL_RE.search(e)
172
173
        if not m:
173
174
            bailout('%r is not a reasonable email address' % e)
174
175
        return m.group(0)
197
198
def local_time_offset(t=None):
198
199
    """Return offset of local zone from GMT, either at present or at time t."""
199
200
    # python2.3 localtime() can't take None
200
 
    if t is None:
 
201
    if t == None:
201
202
        t = time.time()
202
203
        
203
204
    if time.localtime(t).tm_isdst and time.daylight:
209
210
def format_date(t, offset=0, timezone='original'):
210
211
    ## TODO: Perhaps a global option to use either universal or local time?
211
212
    ## Or perhaps just let people set $TZ?
212
 
    import time
213
 
    
214
213
    assert isinstance(t, float)
215
214
    
216
215
    if timezone == 'utc':
264
263
    >>> splitpath('a/.b')
265
264
    ['a', '.b']
266
265
    >>> splitpath('a/../b')
267
 
    Traceback (most recent call last):
 
266
    Traeceback (most recent call last):
268
267
    ...
269
268
    BzrError: ("sorry, '..' not allowed in path", [])
270
269
    """
278
277
def joinpath(p):
279
278
    assert isinstance(p, list)
280
279
    for f in p:
281
 
        if (f == '..') or (f is None) or (f == ''):
 
280
        if (f == '..') or (f == None) or (f == ''):
282
281
            bailout("sorry, %r not allowed in path" % f)
283
282
    return '/'.join(p)
284
283