Merge branch 'main' into lendemor/rename_private_fields
This commit is contained in:
commit
59f4f03af1
@ -47,14 +47,14 @@ jobs:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
run-poetry-install: true
|
||||
create-venv-at-path: .venv
|
||||
- run: poetry run uv pip install pyvirtualdisplay pillow pytest-split
|
||||
- run: poetry run uv pip install pyvirtualdisplay pillow pytest-split pytest-retry
|
||||
- name: Run app harness tests
|
||||
env:
|
||||
SCREENSHOT_DIR: /tmp/screenshots/${{ matrix.state_manager }}/${{ matrix.python-version }}/${{ matrix.split_index }}
|
||||
REDIS_URL: ${{ matrix.state_manager == 'redis' && 'redis://localhost:6379' || '' }}
|
||||
run: |
|
||||
poetry run playwright install chromium
|
||||
poetry run pytest tests/integration --splits 2 --group ${{matrix.split_index}}
|
||||
poetry run pytest tests/integration --retries 3 --maxfail=5 --splits 2 --group ${{matrix.split_index}}
|
||||
- uses: actions/upload-artifact@v4
|
||||
name: Upload failed test screenshots
|
||||
if: always()
|
||||
|
@ -70,6 +70,8 @@ _SUBMOD_ATTRS: dict = {
|
||||
"Label",
|
||||
"label_list",
|
||||
"LabelList",
|
||||
"cell",
|
||||
"Cell",
|
||||
],
|
||||
"polar": [
|
||||
"pie",
|
||||
|
@ -53,11 +53,13 @@ from .charts import radar_chart as radar_chart
|
||||
from .charts import radial_bar_chart as radial_bar_chart
|
||||
from .charts import scatter_chart as scatter_chart
|
||||
from .charts import treemap as treemap
|
||||
from .general import Cell as Cell
|
||||
from .general import GraphingTooltip as GraphingTooltip
|
||||
from .general import Label as Label
|
||||
from .general import LabelList as LabelList
|
||||
from .general import Legend as Legend
|
||||
from .general import ResponsiveContainer as ResponsiveContainer
|
||||
from .general import cell as cell
|
||||
from .general import graphing_tooltip as graphing_tooltip
|
||||
from .general import label as label
|
||||
from .general import label_list as label_list
|
||||
|
@ -242,8 +242,23 @@ class LabelList(Recharts):
|
||||
stroke: Var[Union[str, Color]] = LiteralVar.create("none")
|
||||
|
||||
|
||||
class Cell(Recharts):
|
||||
"""A Cell component in Recharts."""
|
||||
|
||||
tag = "Cell"
|
||||
|
||||
alias = "RechartsCell"
|
||||
|
||||
# The presentation attribute of a rectangle in bar or a sector in pie.
|
||||
fill: Var[str]
|
||||
|
||||
# The presentation attribute of a rectangle in bar or a sector in pie.
|
||||
stroke: Var[str]
|
||||
|
||||
|
||||
responsive_container = ResponsiveContainer.create
|
||||
legend = Legend.create
|
||||
graphing_tooltip = GraphingTooltip.create
|
||||
label = Label.create
|
||||
label_list = LabelList.create
|
||||
cell = Cell.create
|
||||
|
@ -482,8 +482,59 @@ class LabelList(Recharts):
|
||||
"""
|
||||
...
|
||||
|
||||
class Cell(Recharts):
|
||||
@overload
|
||||
@classmethod
|
||||
def create( # type: ignore
|
||||
cls,
|
||||
*children,
|
||||
fill: Optional[Union[Var[str], str]] = None,
|
||||
stroke: Optional[Union[Var[str], str]] = None,
|
||||
style: Optional[Style] = None,
|
||||
key: Optional[Any] = None,
|
||||
id: Optional[Any] = None,
|
||||
class_name: Optional[Any] = None,
|
||||
autofocus: Optional[bool] = None,
|
||||
custom_attrs: Optional[Dict[str, Union[Var, Any]]] = None,
|
||||
on_blur: Optional[EventType[[], BASE_STATE]] = None,
|
||||
on_click: Optional[EventType[[], BASE_STATE]] = None,
|
||||
on_context_menu: Optional[EventType[[], BASE_STATE]] = None,
|
||||
on_double_click: Optional[EventType[[], BASE_STATE]] = None,
|
||||
on_focus: Optional[EventType[[], BASE_STATE]] = None,
|
||||
on_mount: Optional[EventType[[], BASE_STATE]] = None,
|
||||
on_mouse_down: Optional[EventType[[], BASE_STATE]] = None,
|
||||
on_mouse_enter: Optional[EventType[[], BASE_STATE]] = None,
|
||||
on_mouse_leave: Optional[EventType[[], BASE_STATE]] = None,
|
||||
on_mouse_move: Optional[EventType[[], BASE_STATE]] = None,
|
||||
on_mouse_out: Optional[EventType[[], BASE_STATE]] = None,
|
||||
on_mouse_over: Optional[EventType[[], BASE_STATE]] = None,
|
||||
on_mouse_up: Optional[EventType[[], BASE_STATE]] = None,
|
||||
on_scroll: Optional[EventType[[], BASE_STATE]] = None,
|
||||
on_unmount: Optional[EventType[[], BASE_STATE]] = None,
|
||||
**props,
|
||||
) -> "Cell":
|
||||
"""Create the component.
|
||||
|
||||
Args:
|
||||
*children: The children of the component.
|
||||
fill: The presentation attribute of a rectangle in bar or a sector in pie.
|
||||
stroke: The presentation attribute of a rectangle in bar or a sector in pie.
|
||||
style: The style of the component.
|
||||
key: A unique key for the component.
|
||||
id: The id for the component.
|
||||
class_name: The class name for the component.
|
||||
autofocus: Whether the component should take the focus once the page is loaded
|
||||
custom_attrs: custom attribute
|
||||
**props: The props of the component.
|
||||
|
||||
Returns:
|
||||
The component.
|
||||
"""
|
||||
...
|
||||
|
||||
responsive_container = ResponsiveContainer.create
|
||||
legend = Legend.create
|
||||
graphing_tooltip = GraphingTooltip.create
|
||||
label = Label.create
|
||||
label_list = LabelList.create
|
||||
cell = Cell.create
|
||||
|
@ -174,7 +174,7 @@ def get_node_path() -> str | None:
|
||||
return str(node_path)
|
||||
|
||||
|
||||
def get_npm_path() -> str | None:
|
||||
def get_npm_path() -> Path | None:
|
||||
"""Get npm binary path.
|
||||
|
||||
Returns:
|
||||
@ -183,8 +183,8 @@ def get_npm_path() -> str | None:
|
||||
npm_path = Path(constants.Node.NPM_PATH)
|
||||
if use_system_node() or not npm_path.exists():
|
||||
system_npm_path = which("npm")
|
||||
return str(system_npm_path) if system_npm_path else None
|
||||
return str(npm_path)
|
||||
npm_path = Path(system_npm_path) if system_npm_path else None
|
||||
return npm_path.absolute() if npm_path else None
|
||||
|
||||
|
||||
def update_json_file(file_path: str | Path, update_dict: dict[str, int | str]):
|
||||
|
@ -254,7 +254,7 @@ def get_package_manager(on_failure_return_none: bool = False) -> str | None:
|
||||
"""
|
||||
npm_path = path_ops.get_npm_path()
|
||||
if npm_path is not None:
|
||||
return str(Path(npm_path).resolve())
|
||||
return str(npm_path)
|
||||
if on_failure_return_none:
|
||||
return None
|
||||
raise FileNotFoundError("NPM not found. You may need to run `reflex init`.")
|
||||
|
@ -9,7 +9,6 @@ import os
|
||||
import signal
|
||||
import subprocess
|
||||
from concurrent import futures
|
||||
from pathlib import Path
|
||||
from typing import Callable, Generator, List, Optional, Tuple, Union
|
||||
|
||||
import psutil
|
||||
@ -368,7 +367,7 @@ def get_command_with_loglevel(command: list[str]) -> list[str]:
|
||||
The updated command list
|
||||
"""
|
||||
npm_path = path_ops.get_npm_path()
|
||||
npm_path = str(Path(npm_path).resolve()) if npm_path else npm_path
|
||||
npm_path = str(npm_path) if npm_path else None
|
||||
|
||||
if command[0] == npm_path:
|
||||
return [*command, "--loglevel", "silly"]
|
||||
|
Loading…
Reference in New Issue
Block a user