There was a messy point in my Python script: Brew-file, related with ArgumentParser.
In this post, the problem and how I addressed are written.
parse_known_args in ArgumentParser
ArguentParser is a module to analyze arguments, like this:
1 2 3 4 5 6
In the script, if it is called without argument, it returns the arguments to the script in the form of Namespace object.
If other values than what are defined by
it gives an error:
1 2 3
If you want to give such file names,
and want to use variadic arguments,
parse_known_args instead of
1 2 3 4 5
parse_known_args returns the analyzed results
and remaining arguments as an array.
ArgumentParser has a function of
1 2 3 4 5 6 7 8 9
Like this, if it finds
subperser, it starts child parsing for
Here, in Python 2.7.7 and later,
if unknown arguments are given,
parse_known_args can analyze as above.
But for Python 2.7.6 and earlier, it shows an error:
1 2 3
The problem is that OS X Yosemite’s default Python is 2.7.6.
brew command uses this function.
Therefore, if you want to use
brew file brew command,
you need to install Python 2.7.7 or later, or Python 3.X.
Fix at Brew-file
Actually, it affects only on
brew command in Brew-file.
Therefore, I ignore it for now in Brew-file.
(It will give an error if you use
brew command with Python 2.7.6.)
In addition, /etc/brew-wrap wraps default
brew install command, it wraps as
brew file brew install ....
It should not be used with Python 2.7.6, therefore the wrapper function was modified for that it wraps only when newer Python is available.