usage of _encodings.
svn path=/main/trunk/; revision=14113
if _encodings['merge'] is None:
_encodings['merge'] = 'ascii'
-# Deprecated attributes. Instead use _encodings directly.
-_content_encoding = _encodings['content']
-_fs_encoding = _encodings['fs']
-_merge_encoding = _encodings['merge']
-
def _unicode_encode(s, encoding=_encodings['content'],
errors='backslashreplace'):
if isinstance(s, unicode):
import os
import shutil
-from portage import _content_encoding
-from portage import _fs_encoding
+from portage import _encodings
from portage import _unicode_encode
from portage.localization import _
from selinux import is_selinux_enabled
def copyfile(src, dest):
- src = _unicode_encode(src, encoding=_fs_encoding, errors='strict')
- dest = _unicode_encode(dest, encoding=_fs_encoding, errors='strict')
+ src = _unicode_encode(src, encoding=_encodings['fs'], errors='strict')
+ dest = _unicode_encode(dest, encoding=_encodings['fs'], errors='strict')
(rc, ctx) = selinux.lgetfilecon(src)
if rc < 0:
raise OSError(_("copyfile: Failed getting context of \"%s\".") % src)
return ctx
def mkdir(target, refdir):
- target = _unicode_encode(target, encoding=_fs_encoding, errors='strict')
- refdir = _unicode_encode(refdir, encoding=_fs_encoding, errors='strict')
+ target = _unicode_encode(target, encoding=_encodings['fs'], errors='strict')
+ refdir = _unicode_encode(refdir, encoding=_encodings['fs'], errors='strict')
(rc, ctx) = selinux.getfilecon(refdir)
if rc < 0:
raise OSError(
selinux.setfscreatecon()
def rename(src, dest):
- src = _unicode_encode(src, encoding=_fs_encoding, errors='strict')
- dest = _unicode_encode(dest, encoding=_fs_encoding, errors='strict')
+ src = _unicode_encode(src, encoding=_encodings['fs'], errors='strict')
+ dest = _unicode_encode(dest, encoding=_encodings['fs'], errors='strict')
(rc, ctx) = selinux.lgetfilecon(src)
if rc < 0:
raise OSError(_("rename: Failed getting context of \"%s\".") % src)
return ":".join(ret)
def setexec(ctx="\n"):
- ctx = _unicode_encode(ctx, encoding=_content_encoding, errors='strict')
+ ctx = _unicode_encode(ctx, encoding=_encodings['content'], errors='strict')
if selinux.setexeccon(ctx) < 0:
raise OSError(_("setexec: Failed setting exec() context \"%s\".") % ctx)
def setfscreate(ctx="\n"):
ctx = _unicode_encode(ctx,
- encoding=_content_encoding, errors='strict')
+ encoding=_encodings['content'], errors='strict')
if selinux.setfscreatecon(ctx) < 0:
raise OSError(
_("setfscreate: Failed setting fs create context \"%s\".") % ctx)
def spawn_wrapper(spawn_func, selinux_type):
selinux_type = _unicode_encode(selinux_type,
- encoding=_content_encoding, errors='strict')
+ encoding=_encodings['content'], errors='strict')
def wrapper_func(*args, **kwargs):
con = settype(selinux_type)
return wrapper_func
def symlink(target, link, reflnk):
- target = _unicode_encode(target, encoding=_fs_encoding, errors='strict')
- link = _unicode_encode(link, encoding=_fs_encoding, errors='strict')
- reflnk = _unicode_encode(reflnk, encoding=_fs_encoding, errors='strict')
+ target = _unicode_encode(target, encoding=_encodings['fs'], errors='strict')
+ link = _unicode_encode(link, encoding=_encodings['fs'], errors='strict')
+ reflnk = _unicode_encode(reflnk, encoding=_encodings['fs'], errors='strict')
(rc, ctx) = selinux.lgetfilecon(reflnk)
if rc < 0:
raise OSError(
from portage.versions import catsplit
from portage import cpv_getkey
from portage import os
-from portage import _fs_encoding
+from portage import _encoding
from portage import _unicode_decode
import xattr
from errno import ENODATA,ENOSPC,E2BIG
for file in files:
try:
file = _unicode_decode(file,
- encoding=_fs_encoding, errors='strict')
+ encoding=_encodings['fs'], errors='strict')
except UnicodeDecodeError:
continue
if file[-7:] == '.ebuild':
from portage.const import PRIVATE_PATH,PRELINK_BINARY,HASHING_BLOCKSIZE
from portage.localization import _
from portage import os
-from portage import _fs_encoding
-from portage import _merge_encoding
+from portage import _encodings
from portage import _unicode_encode
import errno
import stat
@return: The hash and size of the data
"""
f = open(_unicode_encode(filename,
- encoding=_fs_encoding, errors='strict'), 'rb')
+ encoding=_encodings['fs'], errors='strict'), 'rb')
blocksize = HASHING_BLOCKSIZE
data = f.read(blocksize)
size = 0L
def _perform_md5_merge(x, **kwargs):
return perform_md5(_unicode_encode(x,
- encoding=_merge_encoding, errors='strict'), **kwargs)
+ encoding=_encodings['merge'], errors='strict'), **kwargs)
def perform_all(x, calc_prelink=0):
mydict = {}
# Make sure filename is encoded with the correct encoding before
# it is passed to spawn (for prelink) and/or the hash function.
filename = _unicode_encode(filename,
- encoding=_fs_encoding, errors='strict')
+ encoding=_encodings['fs'], errors='strict')
myfilename = filename
prelink_tmpfile = None
try:
import errno
import stat
from portage import os
-from portage import _content_encoding
-from portage import _fs_encoding
+from portage import _encodings
from portage import _unicode_decode
from portage import _unicode_encode
from portage.localization import _
for f in files:
try:
f = _unicode_decode(f,
- encoding=_fs_encoding, errors='strict')
+ encoding=_encodings['fs'], errors='strict')
except UnicodeDecodeError:
continue
if f[:1] == '.' or f[-1:] == '~':
for fn in RecursiveFileLoader(self.fname):
try:
f = codecs.open(_unicode_encode(fn,
- encoding=_fs_encoding, errors='strict'), mode='r',
- encoding=_content_encoding, errors='replace')
+ encoding=_encodings['fs'], errors='strict'), mode='r',
+ encoding=_encodings['content'], errors='replace')
except EnvironmentError, e:
if e.errno not in (errno.ENOENT, errno.ESTALE):
raise
import time
from portage import os
-from portage import _content_encoding
+from portage import _encodings
from portage import _unicode_encode
from portage.localization import _
import portage
if sys.hexversion < 0x3000000:
sender = _unicode_encode(sender,
- encoding=_content_encoding, errors='strict')
+ encoding=_encodings['content'], errors='strict')
recipient = _unicode_encode(recipient,
- encoding=_content_encoding, errors='strict')
+ encoding=_encodings['content'], errors='strict')
subject = _unicode_encode(subject,
- encoding=_content_encoding, errors='replace')
+ encoding=_encodings['content'], errors='backslashreplace')
body = _unicode_encode(body,
- encoding=_content_encoding, errors='replace')
+ encoding=_encodings['content'], errors='backslashreplace')
if attachments == None:
mymessage = TextMessage(body)
elif isinstance(x, basestring):
if sys.hexversion < 0x3000000:
x = _unicode_encode(x,
- encoding=_content_encoding, errors='replace')
+ encoding=_encodings['content'],
+ errors='backslashreplace')
mymessage.attach(TextMessage(x))
else:
raise portage.exception.PortageException(_("Can't handle type of attachment: %s") % type(x))
if sys.hexversion < 0x3000000:
myrecipient = _unicode_encode(myrecipient,
- encoding=_content_encoding, errors='strict')
+ encoding=_encodings['content'], errors='strict')
mymailhost = _unicode_encode(mymailhost,
- encoding=_content_encoding, errors='strict')
+ encoding=_encodings['content'], errors='strict')
mymailport = _unicode_encode(mymailport,
- encoding=_content_encoding, errors='strict')
+ encoding=_encodings['content'], errors='strict')
myfrom = _unicode_encode(myfrom,
- encoding=_content_encoding, errors='strict')
+ encoding=_encodings['content'], errors='strict')
mymailuser = _unicode_encode(mymailuser,
- encoding=_content_encoding, errors='strict')
+ encoding=_encodings['content'], errors='strict')
mymailpasswd = _unicode_encode(mymailpasswd,
- encoding=_content_encoding, errors='strict')
+ encoding=_encodings['content'], errors='strict')
# user wants to use a sendmail binary instead of smtp
if mymailhost[0] == os.sep and os.path.exists(mymailhost):
)
from portage import os
-from portage import _content_encoding
-from portage import _fs_encoding
+from portage import _encodings
from portage import _unicode_decode
from portage import _unicode_encode
from portage.exception import DigestException, FileNotFound, \
Otherwise, a new dict will be created and returned."""
try:
fd = codecs.open(_unicode_encode(file_path,
- encoding=_fs_encoding, errors='strict'), mode='r',
- encoding=_content_encoding, errors='replace')
+ encoding=_encodings['fs'], errors='strict'), mode='r',
+ encoding=_encodings['repo.content'], errors='replace')
if myhashdict is None:
myhashdict = {}
self._parseDigests(fd, myhashdict=myhashdict, **kwargs)
if not force:
try:
f = codecs.open(_unicode_encode(self.getFullname(),
- encoding=_fs_encoding, errors='strict'),
- mode='r', encoding=_content_encoding, errors='replace')
+ encoding=_encodings['fs'], errors='strict'),
+ mode='r', encoding=_encodings['repo.content'],
+ errors='replace')
oldentries = list(self._parseManifestLines(f))
f.close()
if len(oldentries) == len(myentries):
for f in pkgdir_files:
try:
f = _unicode_decode(f,
- encoding=_fs_encoding, errors='strict')
+ encoding=_encodings['fs'], errors='strict')
except UnicodeDecodeError:
continue
if f[:1] == ".":
for f in files:
try:
f = _unicode_decode(f,
- encoding=_fs_encoding, errors='strict')
+ encoding=_encodings['fs'], errors='strict')
except UnicodeDecodeError:
continue
full_path = os.path.join(parentdir, f)
if not os.path.exists(mfname):
return rVal
myfile = codecs.open(_unicode_encode(mfname,
- encoding=_fs_encoding, errors='strict'),
- mode='r', encoding=_content_encoding, errors='replace')
+ encoding=_encodings['fs'], errors='strict'),
+ mode='r', encoding=_encodings['repo.content'], errors='replace')
lines = myfile.readlines()
myfile.close()
for l in lines:
import os as _os
import re
from portage import os
-from portage import _content_encoding
-from portage import _fs_encoding
+from portage import _encodings
from portage import _unicode_decode
from portage import _unicode_encode
from portage.util import apply_secpass_permissions, ensure_dirs, \
news_dir = self._news_dir(repoid)
try:
news = _os.listdir(_unicode_encode(news_dir,
- encoding=_fs_encoding, errors='strict'))
+ encoding=_encodings['fs'], errors='strict'))
except OSError:
return
for itemid in news:
try:
itemid = _unicode_decode(itemid,
- encoding=_fs_encoding, errors='strict')
+ encoding=_encodings['fs'], errors='strict')
except UnicodeDecodeError:
itemid = _unicode_decode(itemid,
- encoding=_fs_encoding, errors='replace')
+ encoding=_encodings['fs'], errors='replace')
writemsg_level(
"!!! Invalid encoding in news item name: '%s'\n" % \
itemid, level=logging.ERROR, noiselevel=-1)
def parse(self):
lines = codecs.open(_unicode_encode(self.path,
- encoding=_fs_encoding, errors='strict'),
- mode='r', encoding=_content_encoding, errors='replace').readlines()
+ encoding=_encodings['fs'], errors='strict'),
+ mode='r', encoding=_encodings['content'], errors='replace'
+ ).readlines()
self.restrictions = {}
invalids = []
for i, line in enumerate(lines):
import traceback
from portage import os
-from portage import _content_encoding
+from portage import _encodings
from portage import _unicode_encode
import portage
portage.proxy.lazyimport.lazyimport(globals(),
# Avoid a potential UnicodeEncodeError from os.execve().
env_bytes = {}
for k, v in env.iteritems():
- env_bytes[_unicode_encode(k, encoding=_content_encoding)] = \
- _unicode_encode(v, encoding=_content_encoding)
+ env_bytes[_unicode_encode(k, encoding=_encodings['content'])] = \
+ _unicode_encode(v, encoding=_encodings['content'])
env = env_bytes
del env_bytes
from itertools import chain
from portage import os
-from portage import _fs_encoding
+from portage import _encodings
from portage import _unicode_decode
from portage import _unicode_encode
from portage.util import grabfile, write_atomic, ensure_dirs, normalize_path
try:
directory = _unicode_decode(directory,
- encoding=_fs_encoding, errors='strict')
+ encoding=_encodings['fs'], errors='strict')
# Now verify that we can also encode it.
_unicode_encode(directory,
- encoding=_fs_encoding, errors='strict')
+ encoding=_encodings['fs'], errors='strict')
except UnicodeError:
directory = _unicode_decode(directory,
- encoding=_fs_encoding, errors='replace')
+ encoding=_encodings['fs'], errors='replace')
raise SetConfigError(
_("Directory path contains invalid character(s) for encoding '%s': '%s'") \
- % (_fs_encoding, directory))
+ % (_encodings['fs'], directory))
if os.path.isdir(directory):
directory = normalize_path(directory)
for parent, dirs, files in os.walk(directory):
try:
parent = _unicode_decode(parent,
- encoding=_fs_encoding, errors='strict')
+ encoding=_encodings['fs'], errors='strict')
except UnicodeDecodeError:
continue
for d in dirs[:]:
for filename in files:
try:
filename = _unicode_decode(filename,
- encoding=_fs_encoding, errors='strict')
+ encoding=_encodings['fs'], errors='strict')
except UnicodeDecodeError:
continue
if filename[:1] == '.':
import unittest
from portage import os
-from portage import _fs_encoding
+from portage import _encodings
from portage import _unicode_encode
from portage import _unicode_decode
def main():
TEST_FILE = _unicode_encode('__test__',
- encoding=_fs_encoding, errors='strict')
+ encoding=_encodings['fs'], errors='strict')
svn_dirname = _unicode_encode('.svn',
- encoding=_fs_encoding, errors='strict')
+ encoding=_encodings['fs'], errors='strict')
suite = unittest.TestSuite()
basedir = os.path.dirname(os.path.realpath(__file__))
testDirs = []
dirs.remove(svn_dirname)
try:
root = _unicode_decode(root,
- encoding=_fs_encoding, errors='strict')
+ encoding=_encodings['fs'], errors='strict')
except UnicodeDecodeError:
continue
import errno
import sys
from portage import os
-from portage import _content_encoding
-from portage import _fs_encoding
+from portage import _encodings
from portage import _unicode_encode
from portage.tests import TestCase
free=1, fd_pipes={0:sys.stdin.fileno(), 1:null_fd, 2:null_fd})
os.close(null_fd)
f = codecs.open(_unicode_encode(logfile,
- encoding=_fs_encoding, errors='strict'),
- mode='r', encoding=_content_encoding, errors='strict')
+ encoding=_encodings['fs'], errors='strict'),
+ mode='r', encoding=_encodings['content'], errors='strict')
log_content = f.read()
f.close()
# When logging passes through a pty, this comparison will fail
import sys
from portage import os
-from portage import _content_encoding
-from portage import _fs_encoding
+from portage import _encodings
from portage import _unicode_decode
from portage import _unicode_encode
import portage
for myfile in [f for f in os.listdir(dbdir) if f not in ignored_dbentries]:
file_path = os.path.join(dbdir, myfile)
mydata[myfile] = codecs.open(_unicode_encode(file_path,
- encoding=_fs_encoding, errors='strict'),
- mode='r', encoding=_content_encoding,
+ encoding=_encodings['fs'], errors='strict'),
+ mode='r', encoding=_encodings['repo.content'],
errors='replace').read()
updated_items = update_dbentries(update_iter, mydata)
for myfile, mycontent in updated_items.iteritems():
if file_path not in prev_mtimes or \
long(prev_mtimes[file_path]) != long(mystat.st_mtime):
content = codecs.open(_unicode_encode(file_path,
- encoding=_fs_encoding, errors='strict'),
- mode='r', encoding=_content_encoding, errors='replace').read()
+ encoding=_encodings['fs'], errors='strict'),
+ mode='r', encoding=_encodings['repo.content'], errors='replace'
+ ).read()
update_data.append((file_path, mystat, content))
return update_data
for y in dirs:
try:
y = _unicode_decode(y,
- encoding=_fs_encoding, errors='strict')
+ encoding=_encodings['fs'], errors='strict')
except UnicodeDecodeError:
dirs.remove(y)
continue
for y in files:
try:
y = _unicode_decode(y,
- encoding=_fs_encoding, errors='strict')
+ encoding=_encodings['fs'], errors='strict')
except UnicodeDecodeError:
continue
if y.startswith("."):
try:
file_contents[x] = codecs.open(
_unicode_encode(os.path.join(abs_user_config, x),
- encoding=_fs_encoding, errors='strict'),
- mode='r', encoding=_content_encoding,
+ encoding=_encodings['fs'], errors='strict'),
+ mode='r', encoding=_encodings['content'],
errors='replace').readlines()
except IOError:
if file_contents.has_key(x):
from portage import os
from portage import normalize_path
-from portage import _fs_encoding
+from portage import _encodings
from portage import _unicode_decode
from portage import _unicode_encode
"""(list, dir) --- Takes an array(list) and appends all files from dir down
the directory tree. Returns nothing. list is modified."""
curdir = normalize_path(_unicode_decode(curdir,
- encoding=_fs_encoding, errors='strict'))
+ encoding=_encodings['fs'], errors='strict'))
for parent, dirs, files in os.walk(curdir):
parent = _unicode_decode(parent,
- encoding=_fs_encoding, errors='strict')
+ encoding=_encodings['fs'], errors='strict')
if parent != curdir:
mylist.append(parent[len(curdir) + 1:] + os.sep)
for x in dirs:
try:
- _unicode_decode(x, encoding=_fs_encoding, errors='strict')
+ _unicode_decode(x, encoding=_encodings['fs'], errors='strict')
except UnicodeDecodeError:
dirs.remove(x)
for x in files:
try:
- x = _unicode_decode(x, encoding=_fs_encoding, errors='strict')
+ x = _unicode_decode(x,
+ encoding=_encodings['fs'], errors='strict')
except UnicodeDecodeError:
continue
mylist.append(os.path.join(parent, x)[len(curdir) + 1:])
mylist.sort()
mydata = {}
for x in mylist:
- x = _unicode_encode(x, encoding=_fs_encoding, errors='strict')
+ x = _unicode_encode(x, encoding=_encodings['fs'], errors='strict')
mydata[x] = open(os.path.join(rootdir, x), 'rb').read()
xpak_segment = xpak_mem(mydata)
if outfile:
outf = open(_unicode_encode(outfile,
- encoding=_fs_encoding, errors='strict'), 'wb')
+ encoding=_encodings['fs'], errors='strict'), 'wb')
outf.write(xpak_segment)
outf.close()
else:
'infile.index' contains the index segment.
'infile.dat' contails the data segment."""
infile = _unicode_decode(infile,
- encoding=_fs_encoding, errors='strict')
+ encoding=_encodings['fs'], errors='strict')
myfile = open(_unicode_encode(infile,
- encoding=_fs_encoding, errors='strict'), 'rb')
+ encoding=_encodings['fs'], errors='strict'), 'rb')
mydat=myfile.read()
myfile.close()
return False
myfile = open(_unicode_encode(infile + '.index',
- encoding=_fs_encoding, errors='strict'), 'wb')
+ encoding=_encodings['fs'], errors='strict'), 'wb')
myfile.write(splits[0])
myfile.close()
myfile = open(_unicode_encode(infile + '.dat',
- encoding=_fs_encoding, errors='strict'), 'wb')
+ encoding=_encodings['fs'], errors='strict'), 'wb')
myfile.write(splits[1])
myfile.close()
return True
def getindex(infile):
"""(infile) -- grabs the index segment from the infile and returns it."""
myfile = open(_unicode_encode(infile,
- encoding=_fs_encoding, errors='strict'), 'rb')
+ encoding=_encodings['fs'], errors='strict'), 'rb')
myheader=myfile.read(16)
if myheader[0:8] != _unicode_encode('XPAKPACK'):
myfile.close()
"""(infile) -- grabs the index and data segments from the infile.
Returns an array [indexSegment,dataSegment]"""
myfile = open(_unicode_encode(infile,
- encoding=_fs_encoding, errors='strict'), 'rb')
+ encoding=_encodings['fs'], errors='strict'), 'rb')
myheader=myfile.read(16)
if myheader[0:8] != _unicode_encode('XPAKPACK'):
myfile.close()
if not os.path.exists(dirname):
os.makedirs(dirname)
mydat = open(_unicode_encode(myname,
- encoding=_fs_encoding, errors='strict'), 'wb')
+ encoding=_encodings['fs'], errors='strict'), 'wb')
mydat.write(mydata[datapos:datapos+datalen])
mydat.close()
startpos=startpos+namelen+12
def recompose_mem(self, xpdata):
self.scan() # Don't care about condition... We'll rewrite the data anyway.
myfile = open(_unicode_encode(self.file,
- encoding=_fs_encoding, errors='strict'), 'ab+')
+ encoding=_encodings['fs'], errors='strict'), 'ab+')
if not myfile:
raise IOError
myfile.seek(-self.xpaksize,2) # 0,2 or -0,2 just mean EOF.
return 1
self.filestat=mystat
a = open(_unicode_encode(self.file,
- encoding=_fs_encoding, errors='strict'), 'rb')
+ encoding=_encodings['fs'], errors='strict'), 'rb')
a.seek(-16,2)
trailer=a.read()
self.infosize=0
if not myresult:
return mydefault
a = open(_unicode_encode(self.file,
- encoding=_fs_encoding, errors='strict'), 'rb')
+ encoding=_encodings['fs'], errors='strict'), 'rb')
a.seek(self.datapos+myresult[0],0)
myreturn=a.read(myresult[1])
a.close()
os.chdir("/")
origdir="/"
a = open(_unicode_encode(self.file,
- encoding=_fs_encoding, errors='strict'), 'rb')
+ encoding=_encodings['fs'], errors='strict'), 'rb')
if not os.path.exists(mydest):
os.makedirs(mydest)
os.chdir(mydest)
if not os.path.exists(dirname):
os.makedirs(dirname)
mydat = open(_unicode_encode(myname,
- encoding=_fs_encoding, errors='strict'), 'wb')
+ encoding=_encodings['fs'], errors='strict'), 'wb')
a.seek(self.datapos+datapos)
mydat.write(a.read(datalen))
mydat.close()
if not self.scan():
return 0
a = open(_unicode_encode(self.file,
- encoding=_fs_encoding, errors='strict'), 'rb')
+ encoding=_encodings['fs'], errors='strict'), 'rb')
mydata = {}
startpos=0
while ((startpos+8)<self.indexsize):
return None
a = open(_unicode_encode(self.file,
- encoding=_fs_encoding, errors='strict'), 'rb')
+ encoding=_encodings['fs'], errors='strict'), 'rb')
a.seek(self.datapos)
mydata =a.read(self.datasize)
a.close()