Skip to main content

PyReact

The goal of the repo is to introduce a pythonic web application tool similar to ReactJS. As you look through the code or build with PyReact you will notice similarities between the two; this is the point. You should be able to move between the two (PyReact & ReactJS) with ease and without the need to learn an entire new flow.

Release State: Alpha (Do not use for production)

Requirements

  1. Python 3.6+
  2. PyPM (pip install pypm2) - Refer to my repo PyPM for more information

Recommendations

  1. Please look at the PyPM repo. This tool is required to run PyReact and is similar to npm.
  2. If you're unfamiliar with ReactJS, head over to their site and get an overview of what it is.
  3. While PyReact is still in development, it is recommended to use this within a python virtual environment.

Installation

pip install pypm2
git clone https://github.com/ableinc/pyreact
cd pyreact
pypm install
pypm setup

How to run

pypm start

Create your own PyReact app

Note: It is recommended that you install PyReact in a python virtual environment.

  1. Make sure you follow the steps above to install PyReact
  2. Once installed, run pyreact init
  3. cd into your new PyReact app directory
  4. Run pypm install
  5. All done!

File Structure

Notice, /app is unrelated to the PyReact code. It is necessary to develop a PyReact web application, but is not tracked for release under the PyReact repo. Its here for testing purposes.

You will notice the start command in the package.json points to the index.py file in /app. This is normal react convention. If you'd like to build your own PyReact application, please follow the installation instructions above and alter the contents of /app. Do NOT edit within the /public folder, as you could break your project.

Environment Variables

If you'd like your PyReact project to recognize new environment variables please prepend PYREACT_ to your variable names. Note, you will not need to import or install a library to import enviornment variables, PyReact does it under the hood. Just import variables with os.environ.

Examples

Just like this repo, examples and documentation are on-going. For the meantime, refer to the /app folder to see how everything works. Feel free to explore the pyreact code itself, if you notice something, make a PR!

Important Information

  • When you are creating your class views, containing your render function, make sure that self.root(self) is the first line in render. This flow is very important. In future updates this will not be needed.

  • PyReact is both a client-side and server-side application. You have the full flexibility to do one or the other or both. Go to the /examples directory for examples.

Changelog

  1. Append user defined react class to index file to render - Done
  2. Add stylesheet rendering with html - Done
  3. Add or create a python syntax friendly way of generating views with HTML attributes (i.e. not using multiline strings to create view)
  4. Find and replace %PUBLIC_URL% in index.html - Done
  5. When user adds list of HTML elements to html content in render, it will be parsed appropriately - Done
  6. Fix recurssion error generated when setState() is used in either render() or init() - Done
  7. Be able to render multiple stylesheets for multiple pages - Done
  8. Add event listeners - Done
  9. Stop the browser from reopening the PyReact project homepage after every server refresh. - Disabled (Bug)
  10. Add Node dot notation dictionary/Object attribute
  11. When printing in view, display in browser console
  12. Create CLI tool to create PyReact app - Done

Metadata

Release files for pyreact2 0.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyreact2 0.0.4
File Size Uploaded
pyreact2-0.0.4.tar.gz 11.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyreact2 0.0.4
File Interpreter ABI Platform
pyreact2-0.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 27.6 kB

Release files / pyreact2-0.0.4.tar.gz

Download URL pyreact2-0.0.4.tar.gz
Size 11.1 kB
Tags Source
SHA-256 checksum
How to use checksums
34bfc977e0a12a46c471c002ad8ce728634a7725560b1719ddd6c08fdd7b3144
BLAKE2b-256 checksum
How to use checksums
3ae0c97261dd979ea41f0aadd4b6a5253a92623eceae19530b954805f696f75e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.8

Release files / pyreact2-0.0.4-py3-none-any.whl

Download URL pyreact2-0.0.4-py3-none-any.whl
Size 16.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b80ac3bbc73e48add80637325e8f06209e643e1854fb0df1e175105c1fc36c83
BLAKE2b-256 checksum
How to use checksums
20ed7ec10a256d65e831c15c0c9e607fc7bf8330632223a0ca7cdd1fdb598223
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.8

Release history Release notifications | RSS feed

This release

0.0.4 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page