bugs.python.org / detectors / textplain.py

# On file creation, if the file is application/octet-stream,
# yet the file content looks like text, change the type to
# text/plain.
def audit_application_octetstream(db, cl, nodeid, newvalues):
    if newvalues.has_key('type') and newvalues['type'] == 'application/octet-stream':
        # check whether this might be a text file
        try:
            text = newvalues['content'].decode('utf-8')
        except UnicodeError:
            return
        # check that there aren't funny control characters in there
        for c in text:
            if ord(c) >= 32:
                continue
            if c not in u' \f\t\r\n':
                return
        newvalues['type'] = 'text/plain'
    

def init(db):
    db.file.audit('create', audit_application_octetstream)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.