reactpy

It's React, but in Python

MIT License

Downloads
6.3K
Stars
7.7K

Bot releases are visible (Hide)

reactpy - 0.11.1

Published by rmorshea about 4 years ago

Commits on Sep 13, 2020

  • create useStateRef hook internally - ac86fc9
  • bump js to 0.4.2 - 46b05e2
reactpy - 0.11.0

Published by rmorshea about 4 years ago

Commits on Sep 12, 2020

  • actually make deploy-documentation depend on publish-package - e878966
  • correct package.json for idom-client-react - 3c8e162
  • rename static/ dir to app/ - 2806dac
  • require anyio>=2.0 - 86df11a
  • remove private=true - fe31f58
  • update classifiers - f11fda9
  • add mountLayout util func - ea2297e

Commits on Sep 13, 2020

  • rename StateDispatcher to ViewDispatcher - ccd578b
  • fixes: #222 - 7236f20
  • only call the saveUpdateHook callback once - 5bb693a
  • bump js version to 0.4.1 - e881dfa
reactpy - 0.10.3

Published by rmorshea about 4 years ago

Commits on Sep 09, 2020

  • fix misc examples + remove known issues section - 0379633

Commits on Sep 11, 2020

  • update client package name and description - f5f60a1
  • generalize client layout interface … - f338572
  • import TaskGroup from anyio.abc - 0016a82
  • bump client version - cfdd8cc
  • no more anyio.exceptions - 9e054c3
  • run tests every day on master - e822640
  • use python-build … - de78263

Commits on Sep 12, 2020

  • fix docs - 456228e
  • Revert "use python-build" … - e0d546b
  • publish package before docs - 90148ae
reactpy - 0.10.2

Published by rmorshea about 4 years ago

The most recent release of snowpack allows for many more packages to be installed correctly. For example @material-ui/core, which previously did not work, now works flawlessly. There are a bunch of internal changes that have been made to enable this upgrade since the 2.x version of snowpack included a large number of breaking changes. Most for the better though.

reactpy - 0.10.1

Published by rmorshea about 4 years ago

Upgrade anyio

reactpy - 0.10.0

Published by rmorshea about 4 years ago

  • Rename Renderer to Dispatcher - I think this will reduce confusion since the word "render" is used all over to mean different things.
  • AbstractElement does not need an id attribute - we can just use id() instead.
  • misc doc updates
reactpy - 0.9.2

Published by rmorshea about 4 years ago

Element render functions are no longer coroutines. To new users async functions don't really seem approachable, plus delayed actions are best left to the use_effect hook. To compensate we enable the use_effect hook to support async functions - docs are added to this effect.

reactpy - 0.9.1

Published by rmorshea about 4 years ago

Quick release to publish docs without a mangled dev version visible.

reactpy - 0.9.0

Published by rmorshea about 4 years ago

The One With Hooks

This is a huge release that reworks much of IDOM to use a React-like Hooks API.

The documentation has been updated to reflect these changes so it's probably best to check the README to learn about the state of the project. In short though...

  • Most of React's hooks have been faithfully re-implemented in Python (a new "Life Cycle Hooks" section reflects these additions).
  • The only "basic hook" missing from this release is useContext given that its most useful in sprawling code-bases. Given that IDOM has no such usage a use_context hook isn't useful yet.
  • Much of IDOM's internal logic for computing and transmitting layout updates was reworked.
  • Updates are no longer computed in parallel and distributed as completed, instead they an executed serially (this may be reverted in a future version). While has negative performance implications in some cases it simplified logic.
  • Updates are now transited over the wire using the JSON-patch format since the old format assumed on targeted updates would be triggered by imperative code.

Side Notes

  • it's now much easier to set up an layout server in a Jupyter notebook - just use idom.widgets.jupyter.init_display(...)
reactpy - 0.7.0

Published by rmorshea over 4 years ago

IDOM now officially supports referencing arbitrary ES modules as part of its layouts. See the docs for more info.

This release also includes a few other quality of life improvements:

  • the vdom() constructor now supports passing children as positional arguments outside of a list. This comes with the caveat that element attributes must not contain a tagName key (which seems like a reasonable concession).
  • update calls can now be made from within separate threads. This means when you define an element with run_in_executor=True you'll be able to update it later. Until now updates had to be managed from the thread where the layout's event loop was.
reactpy - 0.7.0-dev.1

Published by rmorshea over 4 years ago

We're dropping the 0.6.1 in favor of 0.7.0 version tag since the changes here are large enough to warrant a minor bump rather than a patch. This release includes various fixes and improvements that were a result of expanding test coverage. Better documentation has also been merged in to describe the new way to import ES modules.

reactpy - 0.6.1-a.2

Published by rmorshea over 4 years ago

Each client can now pass parameters to an IDOM element via an HTML query. This allows clients to alter the view they receive based on the query. This is used by the multiview() widget in introduction.ipynb to allow multiple active views to be accessible at the same time because each cell in the notebook passes a view_id parameter to the multiview() widget to specify what element should be displayed.

reactpy - 0.6.1-a.1

Published by rmorshea over 4 years ago

Adds ES module support in IDOM. This allows users to more easily leverage the existing javascript ecosystem directly through IDOM's VDOM component interface or by defining their own ES modules which import third part JS libraries.