Prev: How to send a non-standard IMAP command?
Next: modifying standard library functionality (difflib)
From: Jorgen Grahn on 25 Jun 2010 08:25 On Thu, 2010-06-24, Nobody wrote: > On Wed, 23 Jun 2010 17:27:16 -0500, Tim Daneliuk wrote: > >> Given a program 'foo' that takes a command line argument '-I >> includefile', I want to be able to look for 'includefile' in a path >> specified in an environment variable, 'FOOPATH'. >> >> I'd like a semantic that says: >> >> "If 'includefile' contains one or more path separator characters, >> ignore 'FOOPATH'. If it contains no path separators, look for it in >> the paths specified by 'FOOPATH', beginning with the leftmost path >> first." >> >> Is there a standard Pythonic idiom for doing this or do I need to cook >> up my own. > > There isn't an idiom. > > There are a surprising number of choices for such a simple task, e.g. > whether the search path is used for relative paths containing a separator, > whether you stop at the first file which exists or the first file which > meets other criteria (e.g. suitable permissions), whether default > locations come first or last, what happens if a default location is > included in the search path, etc. Another favorite is whether relative paths are relative to your current directory, or to the location of whatever file this is to be included /into/. For an example where it mattered (to C compilers), google for the paper "recursive make considered harmful". It took compiler writers decades to realize what the best choice was there. (By the way, -I commonly means "search this directory for include files" rather than "include this file". You may want to avoid confusing people by choosing another letter, like -i.) /Jorgen -- // Jorgen Grahn <grahn@ Oo o. . . \X/ snipabacken.se> O o .
From: Tim Daneliuk on 25 Jun 2010 08:52 On 6/25/2010 7:25 AM, Jorgen Grahn wrote: > On Thu, 2010-06-24, Nobody wrote: >> On Wed, 23 Jun 2010 17:27:16 -0500, Tim Daneliuk wrote: >> >>> Given a program 'foo' that takes a command line argument '-I >>> includefile', I want to be able to look for 'includefile' in a path >>> specified in an environment variable, 'FOOPATH'. >>> >>> I'd like a semantic that says: >>> >>> "If 'includefile' contains one or more path separator characters, >>> ignore 'FOOPATH'. If it contains no path separators, look for it in >>> the paths specified by 'FOOPATH', beginning with the leftmost path >>> first." >>> >>> Is there a standard Pythonic idiom for doing this or do I need to cook >>> up my own. >> >> There isn't an idiom. >> >> There are a surprising number of choices for such a simple task, e.g. >> whether the search path is used for relative paths containing a separator, >> whether you stop at the first file which exists or the first file which >> meets other criteria (e.g. suitable permissions), whether default >> locations come first or last, what happens if a default location is >> included in the search path, etc. > > Another favorite is whether relative paths are relative to your > current directory, or to the location of whatever file this is to be > included /into/. > > For an example where it mattered (to C compilers), google for the > paper "recursive make considered harmful". It took compiler writers > decades to realize what the best choice was there. > > (By the way, -I commonly means "search this directory for include > files" rather than "include this file". You may want to avoid > confusing people by choosing another letter, like -i.) > > /Jorgen > I just went ahead and implemented my own. It will eventually find it's way to: http://www.tundraware.com/Software/tsearchpath/ I'll post on c.l.p.a when the thing is released into the wild. Thanks to all that took the time to respond... -- ---------------------------------------------------------------------------- Tim Daneliuk tundra(a)tundraware.com PGP Key: http://www.tundraware.com/PGP/
First
|
Prev
|
Pages: 1 2 Prev: How to send a non-standard IMAP command? Next: modifying standard library functionality (difflib) |