# Python

Python is a scripting language from [python.org](https://python.org/).

## Versions 2 and 3

Python has been migrating from Python 2 to Python 3. We are not yet ready to
drop support for Python 2. Until that time, scripts should support both
versions. See [Fuchsia Python style guide](python_style.md) for details.

## Style

[Fuchsia Python style guide](python_style.md)

## Testing

See [Python testing](testing.md).

## Documentation

TODO(dschuyler) establish documentation guidelines.

## Editor Support

TODO(dschuyler) Provide tips on IDE/editor support for Python in Fuchsia.
