Skip to content

PYTHONSTARTUP file with non-ascii codes generates error #888

Description

@niloct

I have this code set up on .pythonrc:

try:
    import django
    from django.conf import settings
    if not settings.configured:
        django.setup()
        print('Imported django settings.')
        try:
            exec_strs = [
                (app, 'from {}.models import *'.format(app))
                for app in settings.INSTALLED_APPS
            ]
            for app, x in exec_strs:
                try:
                    exec(x)
                except:
                    pass
                else:
                    print('Imported models for app {}'.format(app))
        except:
            pass
except django.core.exceptions.ImproperlyConfigured as msg:
    print('Erro na configuração do django ao importar módulo: {}'.format(msg))

On latest bpython, it prints an ascii decode error whenever I start bpython (I'm running Python 3.9.2).

The issue is this code:

def get_encoding_file(fname):

It assumes old style comment block coding: utf-8, and if it fails, then assumes ascii encoding.

You could assume utf-8 encoding if there is no block, or try to decode the string and catch a UnicodeDecodeError.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions