First you will need to install the EditorConfig Python Core package.

To install from PyPI using pip:

pip install editorconfig

Discovering EditorConfig properties

The get_properties function can be used to discover EditorConfig properties for a given file. Example:

import logging
from editorconfig import get_properties, EditorConfigError

filename = "/home/zoidberg/humans/"

    options = get_properties(filename)
except EditorConfigError:
    logging.warning("Error getting EditorConfig properties", exc_info=True)
    for key, value in options.items():
        print "%s=%s" % (key, value)

The get_properties method returns a dictionary representing EditorConfig properties found for the given file. If an error occurs while parsing a file an exception will be raised. All raised exceptions will inherit from the EditorConfigError class.

Handling Exceptions

All exceptions raised by EditorConfig will subclass EditorConfigError. To handle certain exceptions specially, catch them first. More exception classes may be added in the future so it is advisable to always handle general EditorConfigError exceptions in case a future version raises an exception that your code does not handle specifically.

Exceptions module reference

Exceptions can be found in the editorconfig.exceptions module. These are the current exception types:

exception editorconfig.exceptions.EditorConfigError

Parent class of all exceptions raised by EditorConfig

exception editorconfig.exceptions.ParsingError(filename)

Error raised if an EditorConfig file could not be parsed

exception editorconfig.exceptions.PathError

Error raised if invalid filepath is specified

exception editorconfig.exceptions.VersionError

Error raised if invalid version number is specified

Exception handling example

An example of custom exception handling:

import logging
from editorconfig import get_properties
from editorconfig import exceptions

filename = "/home/zoidberg/myfile.txt"

    options = get_properties(filename)
except exceptions.ParsingError:
    logging.warning("Error parsing an .editorconfig file", exc_info=True)
except exceptions.PathError:
    logging.error("Invalid filename specified", exc_info=True)
except exceptions.EditorConfigError:
    logging.error("An unknown EditorConfig error occurred", exc_info=True)

for key, value in options.iteritems():
    print "%s=%s" % (key, value)