Ian Bicking wrote: > I'm -1 on this too. This means people will be hardcoding the specific > class they expect, so you can't pass in other classes. E.g., this will > fail: > > def read_config(home_dir): > f = open(Path(home_dir, '.config_file')) > c = f.read() > f.close() > return c > > read_config(URI('http://localhost/foo'))
It occurs to me that it might be hopeless to expect substitution to work generally (at least without a specific thought on the matter) because I expect this form will be typical: def read_config(path): # convert string input to a path (has no effect on Path objects): path = Path(path) content = path.text() Since people will be passing strings in to file-related functions for the forseeable future, so people will coerce that input to paths explicitly whenever they accept a path from a public function. Now, if there were a way to make sure that "Path(x) is x" is true when x is already a Path, and maybe a way to coerce strings to a Path without coercing Path-like objects into Path objects, that would help resolve the problem. -- Ian Bicking / [EMAIL PROTECTED] / http://blog.ianbicking.org _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com