# File: builtin-open-example-1.py

def open(filename, mode="rb"):
    import __builtin__
    file = __builtin__.open(filename, mode)
    if file.read(5) not in("GIF87", "GIF89"):
        raise IOError, "not a GIF file"
    file.seek(0)
    return file

fp = open("samples/sample.gif")
print len(fp.read()), "bytes"

fp = open("samples/sample.jpg")
print len(fp.read()), "bytes"

## 3565 bytes
## Traceback (innermost last):
##   File "builtin-open-example-1.py", line 12, in ?
##   File "builtin-open-example-1.py", line 5, in open
## IOError: not a GIF file
