Create a configuration file.

    Writes the current state of settings into a configuration file.

    .. note:: Since a file is permamently written, this function
        is strictly speaking not sideeffect free.

    Args:
        filepath (str): Where to write the file.
            The default is under both UNIX and Windows ``~/.chemcoordrc``.
        overwrite (bool):

    Returns:
        None:

def write_configuration_file(filepath=_give_default_file_path(),
                             overwrite=False):
    """Create a configuration file.

    Writes the current state of settings into a configuration file.

    .. note:: Since a file is permamently written, this function
        is strictly speaking not sideeffect free.

    Args:
        filepath (str): Where to write the file.
            The default is under both UNIX and Windows ``~/.chemcoordrc``.
        overwrite (bool):

    Returns:
        None:
    """
    config = configparser.ConfigParser()
    config.read_dict(settings)

    if os.path.isfile(filepath) and not overwrite:
        try:
            raise FileExistsError
        except NameError:  # because of python2
            warn('File exists already and overwrite is False (default).')
    else:
        with open(filepath, 'w') as configfile:
            config.write(configfile)