@staticmethod<EOL><INDENT>def declare(name, rc_name=None, environ_name=None, filter=None, default_value=None):<DEDENT>
if rc_name is None: rc_name = name.lower()<EOL>if environ_name is None: environ_name = '<STR_LIT>' + name.upper()<EOL>if name in config._vars: raise ValueError('<STR_LIT>' % name)<EOL>config._vars[name] = (rc_name, environ_name, filter, default_value)<EOL>return True<EOL>
config.declare(name) registers a configurable variable with the given name to the neuropythy
  configuration system. This allows the variable to be looked up in the neuropythy RC-file
  and the neuropythy environment variables.

By default, the variable will be assumed to have the identical name in the neuropythy
RC-file and the environment variable ('NPYTHY_' + name.upper()) is searched for in the
environment. The environment variable will always overwrite the RC-file value if both are
provided. Note that all inputs from the environment or the RC-file are parsed as JSON inputs
prior to being put in the config object itself.

The following optional arguments may be provided:
  * rc_name (default: None) specifies the name of the variable in the neuropythy RC-file; if
    None, then uses the name.lower().
  * environ_name (default: None) specifies the name of the variable to look for in the
    os.environ dictionary; if None, then uses ('NPYTHY_' + name.upper()).
  * filter (default: None) specifies a function f that is passed the provided value u; the 
    resulting config value is f(u).
  * default_value (default: None) specifies the default value the configuration item should
    take if not provided.