Skip to content

PYTHONSTARTUP file with non-ascii codes generates error #888

Closed
@niloct

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.

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