https://github.com/mitsuhiko/python-unio
  
  
    Unbreaks Unicode on Python 
    https://github.com/mitsuhiko/python-unio
  
        Last synced: 3 months ago 
        JSON representation
    
Unbreaks Unicode on Python
- Host: GitHub
- URL: https://github.com/mitsuhiko/python-unio
- Owner: mitsuhiko
- License: other
- Created: 2014-04-27T14:31:21.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2021-07-23T08:33:03.000Z (over 4 years ago)
- Last Synced: 2025-04-02T01:12:12.148Z (7 months ago)
- Language: Python
- Homepage:
- Size: 115 KB
- Stars: 164
- Watchers: 11
- Forks: 3
- Open Issues: 2
- 
            Metadata Files:
            - Readme: README
- License: LICENSE
 
Awesome Lists containing this project
- starred-awesome - python-unio - Unbreaks Unicode on Python (Python)
README
          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.