Python bridge to JSX & the React JavaScript library.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
react Bump version to 0.6.0. Dec 30, 2015
.bowerrc Add .bowerrc. Oct 10, 2014
.gitignore Fix JSX unit test Oct 10, 2014
CONTRIBUTING.md More changes in preparation for beta. Aug 19, 2013
DESCRIPTION More changes in preparation for beta. Aug 19, 2013
LICENSE Beta release. Aug 16, 2013
MANIFEST.in More changes in preparation for beta. Aug 19, 2013
README.md
VERSIONS.md
setup.py Fix for PyExecJS >= 1.0.5 Nov 24, 2014

README.md

NOTE: This project is no longer actively maintained.

PyReact

PyReact is a Python wrapper around the React JavaScript library and JSX.

Specifically, it provides an API to transform JSX files into JavaScript from within your Python application, as well as providing access to the latest React build.

Installation

PyPI: PyReact is hosted on PyPI, and can be installed with pip:

$ pip install PyReact

Alternatively, add it into your requirements file:

PyReact==0.6.0

Dependencies: PyReact uses PyExecJS to execute the bundled React code, which requires that a JS runtime environment is installed on your machine. We don't explicitly set a dependency on a runtime environment; Mac OS X comes bundled with one. If you're on a different platform, we recommend PyV8.

Usage

Transform your JSX files via the provided jsx module::

from react import jsx

# For multiple paths, use the JSXTransformer class.
transformer = jsx.JSXTransformer()
for jsx_path, js_path in my_paths:
    transformer.transform(jsx_path, js_path=js_path)

# For a single file, you can use a shortcut method.
jsx.transform('path/to/input/file.jsx', js_path='path/to/output/file.js')

You can also use transform_string(jsx) method to transform strings:

from react import jsx
transformer = jsx.JSXTransformer()
js = transformer.transform_string(jsx)

Django: PyReact includes a JSX compiler for django-pipeline. It has been tested with django-pipeline 1.3.20, but may work with other versions too. Add it to your project's pipeline settings like this:

PIPELINE_COMPILERS = (
  'react.utils.pipeline.JSXCompiler',
)

License

Copyright (c) 2013 Facebook, Inc. Released under the Apache License, Version 2.0.