Skip to main content

Annoying helper module that finds unicode/bytestring comparisions and other problems.

Project description

// The Unicode Nazi //

Once enabled the unicode nazi will complain whenever something is not purely unicode or bytestring. It’s annoying as hell and only useful when porting over libraries from Python 2 to Python 3. It has a huge runtime impact on performance and will also complain about most of the stuff in the Python standard library.

  • usage:

    >>> import unicodenazi
    >>> 'foo' == u'foo'
    __main__:1: UnicodeWarning: Implicit conversion of str to unicode
    True
    
  • how to disable it again:

    >>> unicodenazi.disable()
    
  • and here is how to enable:

    >>> unicodenazi.enable()
    
  • if you want to enable it only for a given block:

    >>> unicodenazi.disable()
    >>> with unicodenazi.blockwise(enabled=True):
    ...  assert 'foo' == u'foo'
    ...
    __main__:2: UnicodeWarning: Implicit conversion of str to unicode
    

    The reverse works too of course.

The module can be used from a command line:

$ python -municodenazi your_script.py [script_args..]

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page