Skip to content

mitsuhiko/python-unio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

unIO!

  unio is a Python module that tries to set an end to all unicode
  problems.  What it does is providing explicit access to binary and unicode
  data for both Python 2 and 3 that work exactly the same on both systems and
  considerably better than the builtin defaults.

What it gives you:

  * explicit access to stdin/stdout/stderr in both binary and text mode
  * improved file open functions that work the same on 2.x and 3.x that
    handle all encodings for you and come with sensible defaults
  * helper functions to deal with all of the crazy Python 3 unicode
    encoding edge cases

Basic API:

unio.TextIO:
  gives the most appropriate in-memory text io (accepts only unicode)
unio.BytesIO:
  gives the most appropriate in-memory bytes io (accepts only bytes)
unio.NativeIO:
  gives the most appropriate in-memory IO for the system.  That's bytes
  only on Python 3 and bytes + unicode within reason on Python 2.

unio.get_binary_stdin()
unio.get_binary_stdout()
unio.get_binary_stderr()
  Does what the name says, on all platforms.

unio.get_text_stdin()
unio.get_text_stdout()
unio.get_text_stderr()
  Returns a standard stream wrapped in a way that it yields unicode data.
  It will do that in the most appropriate encoding and intelligently fix
  some broken environments to utf-8.  You can also force the encoding to
  be something of your choice this way.

unio.capture_stdout()
  Captures stdout (and optionally stderr) in a bytes io and provides some
  fixes for Python 3 limitations on flushing.

unio.get_binary_argv()
  Returns a copy of sys.argv fixed up to bytes on all versions of Python.

unio.binary_env
  A byte version of os.environ on all python envs.

unio.open()
  Intelligently opens a file in binary or text mode, by following sane
  default encodings and the same behavior on 2.x and 3.x.  The default
  encoding for text files is utf-8 or utf-8-sig based on the mode.  No
  magic environment defaults.

unio.is_ascii_encoding()
  Checks if a given encoding is ascii or not.

unio.get_filesystem_encoding()
  Like sys.getdefaultencoding() but will intelligently assume utf-8 in
  situations where it assumes a broken environment.

About

Unbreaks Unicode on Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages