4748b4b67e34a77f945e45109cc80950a8c020bb
7 from optparse
import OptionParser
13 encoding
= locale
.getpreferredencoding()
15 locale
.setlocale(locale
.LC_ALL
, '')
19 parser
= OptionParser()
20 parser
.add_option("-b", "--backend", dest
="backend",
21 help="use backend BACKEND", metavar
="BACKEND",
23 parser
.add_option("-l", "--locale", dest
="locale",
24 help="use locale LOCALE", metavar
="LOCALE",
25 default
=locale
.getlocale()[0])
26 parser
.add_option("-e", "--encoding", dest
="encoding",
27 help="use encoding ENCODING", metavar
="ENCODING",
29 parser
.add_option("-d", "--diagnostics", action
="store_true",
30 dest
="diagnostics", help="print diagnostic information")
32 options
, args
= parser
.parse_args()
34 if options
.backend
or options
.locale
or options
.encoding
:
35 backend
= getattr(collate
, options
.backend
)
36 collate
.set_collator(backend
, options
.locale
, options
.encoding
)
38 if options
.diagnostics
:
39 print >>sys
.stderr
, "Backend: " + collate
.default
.__name
__
40 print >>sys
.stderr
, "Locale: " + collate
.collator
.locale
41 print >>sys
.stderr
, "Encoding: " + collate
.collator
.encoding
52 fileobj
= open(filename
, "rU")
55 line
= line
.decode(encoding
, "replace")
57 lines
.sort(key
=collate
.key
)
60 print line
.encode(encoding
, "replace")
62 if __name__
== "__main__":