class FileMetadataExtractor: def __init__(self): pass # TODO: pass in final URL too? Or set base URL in a context object passed to # every constructor? def extract(self, file, meta): pass