Skip to content

rename idom to reactpy #892

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Feb 26, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Start a Discussion
url: https://github.com/idom-team/idom/discussions
url: https://github.com/reactive-python/reactpy/discussions
about: Report issues, request features, ask questions, and share ideas
6 changes: 3 additions & 3 deletions .github/workflows/.nox-session.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ name: Nox Session
on:
workflow_call:
inputs:
session-name:
nox-args:
required: true
type: string
session-arguments:
session-args:
required: false
type: string
runs-on-array:
Expand Down Expand Up @@ -45,4 +45,4 @@ jobs:
run: pip install -r requirements/nox-deps.txt
- name: Run Tests
env: { "CI": "true" }
run: nox -s ${{ inputs.session-name }} --stop-on-first-error -- ${{ inputs.session-arguments }}
run: nox ${{ inputs.nox-args }} --stop-on-first-error -- ${{ inputs.session-args }}
12 changes: 6 additions & 6 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,22 @@ jobs:
uses: ./.github/workflows/.nox-session.yml
with:
job-name: "python-{0}"
session-name: test_python
session-arguments: --maxfail=3
nox-args: "-t check-python"
session-args: "--pytest --maxfail=3 --reruns 3"
python-environments:
uses: ./.github/workflows/.nox-session.yml
with:
session-name: test_python_suite
session-arguments: --maxfail=3 --no-cov
nox-args: "-s check-python-tests"
session-args: "--no-cov --pytest --maxfail=3 --reruns 3"
runs-on-array: '["ubuntu-latest", "macos-latest", "windows-latest"]'
python-version-array: '["3.7", "3.8", "3.9", "3.10", "3.11"]'
docs:
uses: ./.github/workflows/.nox-session.yml
with:
job-name: "python-{0}"
session-name: test_docs
nox-args: "-s check-docs"
javascript:
uses: ./.github/workflows/.nox-session.yml
with:
job-name: "{1}"
session-name: test_javascript
nox-args: "-t check-javascript"
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# --- Build Artifacts ---
src/idom/_client
src/reactpy/_client

# --- Jupyter ---
*.ipynb_checkpoints
Expand Down
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@ repos:
- id: isort
name: isort
- repo: https://github.com/pre-commit/mirrors-prettier
rev: v2.7.1
rev: v3.0.0-alpha.4
hooks:
- id: prettier
6 changes: 3 additions & 3 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
recursive-include src/idom/_client *
recursive-include src/idom/web/templates *
include src/idom/py.typed
recursive-include src/reactpy/_client *
recursive-include src/reactpy/web/templates *
include src/reactpy/py.typed
58 changes: 37 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,40 @@
# IDOM · [![Tests](https://github.com/idom-team/idom/workflows/test/badge.svg)](https://github.com/idom-team/idom/actions?query=workflow%3ATest) [![PyPI Version](https://img.shields.io/pypi/v/idom.svg)](https://pypi.python.org/pypi/idom) [![License](https://img.shields.io/badge/License-MIT-purple.svg)](https://github.com/idom-team/idom/blob/main/LICENSE)

IDOM connects your Python web framework of choice to a ReactJS frontend, allowing you to create **interactive websites without needing JavaScript!**

Following ReactJS styling, web elements are combined into [reusable "components"](https://idom-docs.herokuapp.com/docs/guides/creating-interfaces/your-first-components/index.html#parametrizing-components). These components can utilize [hooks](https://idom-docs.herokuapp.com/docs/reference/hooks-api.html) and [events](https://idom-docs.herokuapp.com/docs/guides/adding-interactivity/responding-to-events/index.html#async-event-handlers) to create infinitely complex web pages.

When needed, IDOM can [use components directly from NPM](https://idom-docs.herokuapp.com/docs/guides/escape-hatches/javascript-components.html#dynamically-loaded-components). For additional flexibility, components can also be [fully developed in JavaScript](https://idom-docs.herokuapp.com/docs/guides/escape-hatches/javascript-components.html#custom-javascript-components).

Any Python web framework with Websockets can support IDOM. See below for what frameworks are supported out of the box.

| Supported Frameworks | Supported Frameworks (External) |
| --- | --- |
| [`Flask`, `FastAPI`, `Sanic`, `Tornado`](https://idom-docs.herokuapp.com/docs/guides/getting-started/installing-idom.html#officially-supported-servers) | [`Django`](https://github.com/idom-team/django-idom), [`Plotly-Dash`](https://github.com/idom-team/idom-dash), [`Jupyter`](https://github.com/idom-team/idom-jupyter) |

# ReactPy · [![Tests](https://github.com/reactive-python/reactpy/workflows/test/badge.svg)](https://github.com/reactive-python/reactpy/actions?query=workflow%3ATest) [![PyPI Version](https://img.shields.io/pypi/v/reactpy.svg)](https://pypi.python.org/pypi/reactpy) [![License](https://img.shields.io/badge/License-MIT-purple.svg)](https://github.com/reactive-python/reactpy/blob/main/LICENSE)

ReactPy is a library for building user interfaces in Python without Javascript. ReactPy
interfaces are made from components which look and behave similarly to this found in
[ReactJS](https://reactjs.org/). Designed with simplicity in mind, ReactPy can be used
by those without web development experience while also being powerful enough to grow
with your ambitions.

<table>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Something I'm now realizing, why are we using HTML tables instead of markdown tables? They should accomplish the same thing?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMO, the md table was quite hard to read in raw text with all the links.

<thead>
<tr>
<th>Supported Servers</th>
<th>Supported Integrations</th>
Comment on lines +12 to +13
Copy link
Contributor

@Archmonger Archmonger Feb 26, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should be consistent about our usage of verbiage. ASGI Python Frameworks are not servers. The word server only applies to things like hypercorn, uvicorn, and gunicorn.

  • From the perspective of IDOM, they are backends.
  • From the perspective of those packages, they are web frameworks.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about “built-in backends” and “supported frameworks”?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Neither option gives a good indication of why we separate these two categories. Maybe we say something like

ReactPy Backends / External ReactPy Backends

</tr>
</thead>
<tbody>
<tr>
<td>
<a href="https://reactpy-docs.herokuapp.com/docs/guides/getting-started/installing-reactpy.html#officially-supported-servers">
Flask, FastAPI, Sanic, Tornado
</a>
</td>
<td>
<a href="https://github.com/reactive-python/reactpy-django">Django</a>,
<a href="https://github.com/reactive-python/reactpy-jupyter">Jupyter</a>,
<a href="https://github.com/reactive-python/reactpy-dash">Plotly-Dash</a>
</td>
</tr>
</tbody>
</table>

# At a Glance

To get a rough idea of how to write apps in IDOM, take a look at this tiny _Hello World_ application.
To get a rough idea of how to write apps in ReactPy, take a look at this tiny _Hello World_ application.

```python
from idom import component, html, run
from reactpy import component, html, run

@component
def HelloWorld():
Expand All @@ -31,8 +47,8 @@ run(HelloWorld)

Follow the links below to find out more about this project.

- [Try it Now](https://mybinder.org/v2/gh/idom-team/idom-jupyter/main?urlpath=lab/tree/notebooks/introduction.ipynb) - check out IDOM in a Jupyter Notebook.
- [Documentation](https://idom-docs.herokuapp.com/) - learn how to install, run, and use IDOM.
- [Community Forum](https://github.com/idom-team/idom/discussions) - ask questions, share ideas, and show off projects.
- [Contributor Guide](https://idom-docs.herokuapp.com/docs/developing-idom/contributor-guide.html) - see how you can help develop this project.
- [Code of Conduct](https://github.com/idom-team/idom/blob/main/CODE_OF_CONDUCT.md) - standards for interacting with this community.
- [Try it Now](https://mybinder.org/v2/gh/reactive-python/reactpy-jupyter/main?urlpath=lab/tree/notebooks/introduction.ipynb) - check out ReactPy in a Jupyter Notebook.
- [Documentation](https://reactpy-docs.herokuapp.com/) - learn how to install, run, and use ReactPy.
- [Community Forum](https://github.com/reactive-python/reactpy/discussions) - ask questions, share ideas, and show off projects.
- [Contributor Guide](https://reactpy-docs.herokuapp.com/docs/developing-reactpy/contributor-guide.html) - see how you can help develop this project.
- [Code of Conduct](https://github.com/reactive-python/reactpy/blob/main/CODE_OF_CONDUCT.md) - standards for interacting with this community.
Binary file removed branding/ico/idom-logo-black-square-small.ico
Binary file not shown.
Binary file removed branding/ico/idom-logo-white-square-small.ico
Binary file not shown.
Binary file removed branding/png/idom-logo-black-square-small.png
Binary file not shown.
Binary file removed branding/png/idom-logo-black-square.png
Binary file not shown.
Binary file removed branding/png/idom-logo-black.png
Binary file not shown.
Binary file removed branding/png/idom-logo-white-square-small.png
Binary file not shown.
Binary file removed branding/png/idom-logo-white-square.png
Binary file not shown.
Binary file removed branding/png/idom-logo-white.png
Binary file not shown.
Binary file added branding/reactpy-logo-padded.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading