@jasondegraw Yes, SWIG has to handle the case where each argument is present or not for each defaulted argument.  I would tend to use as few defaults as possible.  If you require all 35 fields in fromEpwString then I would have no defaults.  However, if say only the first 20 are required then I would change fromEpwString to accept lines < 35 long and make fields 21-35 optional. 

Also, I am a little confused about what some of the defaults are.   globalHorizontalRadiation=9999 looks like an error code but double dryBulbTemperature=99.9 looks like an almost real number (still crazy in degrees C).  Did you get these default values from somewhere?  Are there established "missing value" flags for each field?  If so, some comments or a reference to the document where these came from would be helpful.