Переглянути джерело

upgrade to latest ruff (#3497)

* upgrade to latest ruff

* try to fix dep review

* try to fix dep review (2)

* upgrade black

* upgrade black (2)

* update allowed dependencies

* update allowed dependencies (2)

* update allowed dependencies (3)

* wait between interim and final in yield test

* remove previous commit, increase delay between yield

* forgot to save on the time.sleep(1) removal

* fix integration (maybe?)

* fix pyi?

* what even is going on

* what is realityi?

* test another fix for app harness

* try to wait even longer?

* force uvloop to be optional

* downpin fastapi < 0.111, remove changes to test
Thomas Brandého 11 місяців тому
батько
коміт
0d39237b3c
100 змінених файлів з 326 додано та 290 видалено
  1. 2 2
      .github/workflows/dependency-review.yml
  2. 11 9
      .pre-commit-config.yaml
  3. 1 0
      integration/shared/state.py
  4. 1 0
      integration/test_call_script.py
  5. 1 0
      integration/test_client_storage.py
  6. 1 0
      integration/test_dynamic_routes.py
  7. 1 0
      integration/test_event_actions.py
  8. 1 0
      integration/test_event_chain.py
  9. 1 0
      integration/test_form_submit.py
  10. 1 0
      integration/test_input.py
  11. 1 0
      integration/test_large_state.py
  12. 1 0
      integration/test_lifespan.py
  13. 1 0
      integration/test_login_flow.py
  14. 1 0
      integration/test_media.py
  15. 1 0
      integration/test_navigation.py
  16. 1 0
      integration/test_server_side_event.py
  17. 1 0
      integration/test_shared_state.py
  18. 1 0
      integration/test_table.py
  19. 1 0
      integration/test_upload.py
  20. 1 0
      integration/test_urls.py
  21. 1 0
      integration/test_var_operations.py
  22. 1 0
      integration/utils.py
  23. 208 258
      poetry.lock
  24. 6 4
      pyproject.toml
  25. 1 0
      reflex/.templates/apps/demo/code/demo.py
  26. 1 0
      reflex/.templates/apps/demo/code/pages/__init__.py
  27. 1 0
      reflex/.templates/apps/demo/code/pages/datatable.py
  28. 1 0
      reflex/.templates/apps/demo/code/pages/forms.py
  29. 1 0
      reflex/.templates/apps/demo/code/pages/graphing.py
  30. 1 0
      reflex/.templates/apps/demo/code/pages/home.py
  31. 1 0
      reflex/.templates/apps/demo/code/styles.py
  32. 1 0
      reflex/admin.py
  33. 3 3
      reflex/app.py
  34. 2 1
      reflex/app_module_for_backend.py
  35. 1 0
      reflex/components/__init__.py
  36. 1 0
      reflex/components/base/__init__.py
  37. 1 0
      reflex/components/base/app_wrap.py
  38. 1 0
      reflex/components/base/fragment.py
  39. 0 1
      reflex/components/base/link.py
  40. 1 0
      reflex/components/base/script.py
  41. 1 0
      reflex/components/chakra/base.py
  42. 1 0
      reflex/components/chakra/base.pyi
  43. 1 0
      reflex/components/chakra/datadisplay/code.py
  44. 1 0
      reflex/components/chakra/datadisplay/divider.py
  45. 1 0
      reflex/components/chakra/datadisplay/table.py
  46. 3 0
      reflex/components/chakra/datadisplay/table.pyi
  47. 1 0
      reflex/components/chakra/datadisplay/tag.py
  48. 1 0
      reflex/components/chakra/disclosure/transition.py
  49. 1 0
      reflex/components/chakra/feedback/circularprogress.py
  50. 1 0
      reflex/components/chakra/forms/button.py
  51. 1 0
      reflex/components/chakra/forms/checkbox.py
  52. 1 0
      reflex/components/chakra/forms/colormodeswitch.py
  53. 1 0
      reflex/components/chakra/forms/editable.py
  54. 1 0
      reflex/components/chakra/forms/form.py
  55. 0 1
      reflex/components/chakra/forms/input.py
  56. 1 0
      reflex/components/chakra/forms/multiselect.py
  57. 0 1
      reflex/components/chakra/forms/radio.py
  58. 1 0
      reflex/components/chakra/forms/rangeslider.py
  59. 1 0
      reflex/components/chakra/forms/slider.py
  60. 1 0
      reflex/components/chakra/forms/switch.py
  61. 1 0
      reflex/components/chakra/forms/textarea.py
  62. 1 0
      reflex/components/chakra/media/avatar.py
  63. 1 0
      reflex/components/chakra/media/icon.py
  64. 1 0
      reflex/components/chakra/media/image.py
  65. 0 1
      reflex/components/chakra/navigation/link.py
  66. 1 0
      reflex/components/chakra/overlay/alertdialog.py
  67. 1 0
      reflex/components/chakra/overlay/drawer.py
  68. 1 0
      reflex/components/chakra/overlay/menu.py
  69. 1 0
      reflex/components/chakra/overlay/modal.py
  70. 1 0
      reflex/components/chakra/overlay/popover.py
  71. 1 0
      reflex/components/chakra/overlay/tooltip.py
  72. 0 1
      reflex/components/chakra/typography/heading.py
  73. 1 0
      reflex/components/chakra/typography/span.py
  74. 1 0
      reflex/components/chakra/typography/text.py
  75. 1 0
      reflex/components/core/__init__.py
  76. 1 0
      reflex/components/core/banner.pyi
  77. 1 0
      reflex/components/core/client_side_routing.py
  78. 3 6
      reflex/components/core/cond.py
  79. 1 0
      reflex/components/core/foreach.py
  80. 1 0
      reflex/components/core/html.py
  81. 1 0
      reflex/components/datadisplay/__init__.py
  82. 1 0
      reflex/components/datadisplay/code.py
  83. 1 0
      reflex/components/datadisplay/code.pyi
  84. 1 0
      reflex/components/datadisplay/logo.py
  85. 1 0
      reflex/components/el/__init__.py
  86. 0 1
      reflex/components/el/element.py
  87. 1 0
      reflex/components/el/elements/__init__.py
  88. 1 0
      reflex/components/el/elements/base.py
  89. 1 0
      reflex/components/el/elements/forms.pyi
  90. 1 0
      reflex/components/el/elements/inline.py
  91. 1 0
      reflex/components/el/elements/media.py
  92. 1 0
      reflex/components/el/elements/metadata.py
  93. 1 0
      reflex/components/el/elements/other.py
  94. 1 0
      reflex/components/el/elements/scripts.py
  95. 1 0
      reflex/components/el/elements/tables.py
  96. 1 0
      reflex/components/el/elements/typography.py
  97. 1 0
      reflex/components/gridjs/datatable.pyi
  98. 3 1
      reflex/components/markdown/markdown.py
  99. 1 0
      reflex/components/markdown/markdown.pyi
  100. 1 0
      reflex/components/media/icon.py

+ 2 - 2
.github/workflows/dependency-review.yml

@@ -13,5 +13,5 @@ jobs:
       - name: 'Dependency Review'
         uses: actions/dependency-review-action@v4
         with:
-          allow-licenses: Apache-2.0, BSD-2-Clause, BSD-3-Clause, HPND, ISC, MIT, MPL-2.0, PSF-2.0, Unlicense
-          allow-dependencies-licenses: 'pkg:pypi/lazy-loader'
+          allow-licenses: Apache-2.0, BSD-2-Clause, BSD-3-Clause, HPND, ISC, MIT, MPL-2.0, Unlicense, Python-2.0, Python-2.0.1, Apache-2.0 AND MIT, BSD-2-Clause AND BSD-3-Clause, Apache-2.0 AND BSD-3-Clause
+          allow-dependencies-licenses: 'pkg:pypi/lazy-loader'

+ 11 - 9
.pre-commit-config.yaml

@@ -3,7 +3,7 @@ fail_fast: true
 repos:
 
   - repo: https://github.com/charliermarsh/ruff-pre-commit
-    rev: v0.1.0
+    rev: v0.4.9
     hooks:
       - id: ruff-format
         args: [integration, reflex, tests]
@@ -11,6 +11,16 @@ repos:
         args: ["--fix", "--exit-non-zero-on-fix"]
         exclude: '^integration/benchmarks/'
 
+  # Run pyi check before pyright because pyright can fail if pyi files are wrong.
+  - repo: local
+    hooks:
+      - id: update-pyi-files
+        name: update-pyi-files
+        always_run: true
+        language: system
+        description: 'Update pyi files as needed'
+        entry: python3 scripts/make_pyi.py
+
   - repo: https://github.com/RobertCraigie/pyright-python
     rev: v1.1.313
     hooks:
@@ -24,11 +34,3 @@ repos:
       - id: darglint
         exclude: '^reflex/reflex.py'
 
-  - repo: local
-    hooks:
-      - id: update-pyi-files
-        name: update-pyi-files
-        always_run: true
-        language: system
-        description: 'Update pyi files as needed'
-        entry: python3 scripts/make_pyi.py

+ 1 - 0
integration/shared/state.py

@@ -1,4 +1,5 @@
 """Simple module which contains one reusable reflex state class."""
+
 import reflex as rx
 
 

+ 1 - 0
integration/test_call_script.py

@@ -1,4 +1,5 @@
 """Integration tests for client side storage."""
+
 from __future__ import annotations
 
 from typing import Generator

+ 1 - 0
integration/test_client_storage.py

@@ -1,4 +1,5 @@
 """Integration tests for client side storage."""
+
 from __future__ import annotations
 
 import time

+ 1 - 0
integration/test_dynamic_routes.py

@@ -1,4 +1,5 @@
 """Integration tests for dynamic route page behavior."""
+
 from __future__ import annotations
 
 from typing import Callable, Coroutine, Generator, Type

+ 1 - 0
integration/test_event_actions.py

@@ -1,4 +1,5 @@
 """Ensure stopPropagation and preventDefault work as expected."""
+
 from __future__ import annotations
 
 import asyncio

+ 1 - 0
integration/test_event_chain.py

@@ -1,4 +1,5 @@
 """Ensure that Event Chains are properly queued and handled between frontend and backend."""
+
 from __future__ import annotations
 
 from typing import Generator

+ 1 - 0
integration/test_form_submit.py

@@ -1,4 +1,5 @@
 """Integration tests for forms."""
+
 import functools
 import time
 from typing import Generator

+ 1 - 0
integration/test_input.py

@@ -1,4 +1,5 @@
 """Integration tests for text input and related components."""
+
 from typing import Generator
 
 import pytest

+ 1 - 0
integration/test_large_state.py

@@ -1,4 +1,5 @@
 """Test large state."""
+
 import time
 
 import jinja2

+ 1 - 0
integration/test_lifespan.py

@@ -1,4 +1,5 @@
 """Test cases for the FastAPI lifespan integration."""
+
 from typing import Generator
 
 import pytest

+ 1 - 0
integration/test_login_flow.py

@@ -1,4 +1,5 @@
 """Integration tests for client side storage."""
+
 from __future__ import annotations
 
 from typing import Generator

+ 1 - 0
integration/test_media.py

@@ -1,4 +1,5 @@
 """Integration tests for media components."""
+
 from typing import Generator
 
 import pytest

+ 1 - 0
integration/test_navigation.py

@@ -1,4 +1,5 @@
 """Integration tests for links and related components."""
+
 from typing import Generator
 from urllib.parse import urlsplit
 

+ 1 - 0
integration/test_server_side_event.py

@@ -1,4 +1,5 @@
 """Integration tests for special server side events."""
+
 import time
 from typing import Generator
 

+ 1 - 0
integration/test_shared_state.py

@@ -1,4 +1,5 @@
 """Test shared state."""
+
 from __future__ import annotations
 
 from typing import Generator

+ 1 - 0
integration/test_table.py

@@ -1,4 +1,5 @@
 """Integration tests for table and related components."""
+
 from typing import Generator
 
 import pytest

+ 1 - 0
integration/test_upload.py

@@ -1,4 +1,5 @@
 """Integration tests for file upload."""
+
 from __future__ import annotations
 
 import asyncio

+ 1 - 0
integration/test_urls.py

@@ -1,4 +1,5 @@
 """Integration tests for all urls in Reflex."""
+
 import os
 import re
 from pathlib import Path

+ 1 - 0
integration/test_var_operations.py

@@ -1,4 +1,5 @@
 """Integration tests for var operations."""
+
 from typing import Generator
 
 import pytest

+ 1 - 0
integration/utils.py

@@ -1,4 +1,5 @@
 """Helper utilities for integration tests."""
+
 from __future__ import annotations
 
 from contextlib import contextmanager

Різницю між файлами не показано, бо вона завелика
+ 208 - 258
poetry.lock


+ 6 - 4
pyproject.toml

@@ -28,7 +28,7 @@ packages = [
 [tool.poetry.dependencies]
 python = "^3.8"
 dill = ">=0.3.8,<0.4"
-fastapi = ">=0.96.0,<1.0"
+fastapi = ">=0.96.0,<0.111.0"
 gunicorn = ">=20.1.0,<23.0"
 jinja2 = ">=3.1.2,<4.0"
 psutil = ">=5.9.4,<6.0"
@@ -73,8 +73,8 @@ darglint = ">=1.8.1,<2.0"
 toml = ">=0.10.2,<1.0"
 pytest-asyncio = ">=0.20.1,<0.22.0" # https://github.com/pytest-dev/pytest-asyncio/issues/706
 pytest-cov = ">=4.0.0,<5.0"
-black = "^22.10.0,<23.0"
-ruff = "0.1.0"
+black = "^24.3.0"
+ruff = "^0.4.9"
 pandas = [
     {version = ">=2.1.1,<3.0", python = ">=3.9,<3.13"},
     {version = ">=1.5.3,<2.0", python = ">=3.8,<3.9"},
@@ -99,9 +99,11 @@ build-backend = "poetry.core.masonry.api"
 
 [tool.ruff]
 exclude = ["*.pyi"]
-target-version = "py37"
+target-version = "py38"
 lint.select = ["B", "D", "E", "F", "I", "SIM", "W"]
 lint.ignore = ["B008", "D203", "D205", "D213", "D401", "D406", "D407", "E501", "F403", "F405", "F541"]
+lint.pydocstyle.convention = "google"
+
 [tool.ruff.lint.per-file-ignores]
 "__init__.py" = ["F401"]
 "tests/*.py" = ["D100", "D103", "D104", "B018"]

+ 1 - 0
reflex/.templates/apps/demo/code/demo.py

@@ -1,4 +1,5 @@
 """Welcome to Reflex! This file outlines the steps to create a basic app."""
+
 from typing import Callable
 
 import reflex as rx

+ 1 - 0
reflex/.templates/apps/demo/code/pages/__init__.py

@@ -1,4 +1,5 @@
 """The pages of the app."""
+
 from .chatapp import chatapp_page
 from .datatable import datatable_page
 from .forms import forms_page

+ 1 - 0
reflex/.templates/apps/demo/code/pages/datatable.py

@@ -1,4 +1,5 @@
 """The settings page for the template."""
+
 from typing import Any
 
 import reflex as rx

+ 1 - 0
reflex/.templates/apps/demo/code/pages/forms.py

@@ -1,4 +1,5 @@
 """The settings page for the template."""
+
 import reflex as rx
 
 from ..states.form_state import FormState, UploadState

+ 1 - 0
reflex/.templates/apps/demo/code/pages/graphing.py

@@ -1,4 +1,5 @@
 """The dashboard page for the template."""
+
 import reflex as rx
 
 from ..states.pie_state import PieChartState

+ 1 - 0
reflex/.templates/apps/demo/code/pages/home.py

@@ -1,4 +1,5 @@
 """The home page of the app."""
+
 import reflex as rx
 
 from ..styles import *

+ 1 - 0
reflex/.templates/apps/demo/code/styles.py

@@ -1,4 +1,5 @@
 """Styles for the app."""
+
 import reflex as rx
 
 from .state import State

+ 1 - 0
reflex/admin.py

@@ -1,4 +1,5 @@
 """The Reflex Admin Dashboard."""
+
 from dataclasses import dataclass, field
 from typing import Optional
 

+ 3 - 3
reflex/app.py

@@ -176,9 +176,9 @@ class App(LifespanMixin, Base):
     stylesheets: List[str] = []
 
     # A component that is present on every page (defaults to the Connection Error banner).
-    overlay_component: Optional[
-        Union[Component, ComponentCallable]
-    ] = default_overlay_component
+    overlay_component: Optional[Union[Component, ComponentCallable]] = (
+        default_overlay_component
+    )
 
     # Components to add to the head of every page.
     head_components: List[Component] = []

+ 2 - 1
reflex/app_module_for_backend.py

@@ -1,6 +1,7 @@
 """Shims the real reflex app module for running backend server (uvicorn or gunicorn).
 Only the app attribute is explicitly exposed.
 """
+
 from concurrent.futures import ThreadPoolExecutor
 
 from reflex import constants
@@ -8,7 +9,7 @@ from reflex.utils import telemetry
 from reflex.utils.exec import is_prod_mode
 from reflex.utils.prerequisites import get_app
 
-if "app" != constants.CompileVars.APP:
+if constants.CompileVars.APP != "app":
     raise AssertionError("unexpected variable name for 'app'")
 
 telemetry.send("compile")

+ 1 - 0
reflex/components/__init__.py

@@ -1,4 +1,5 @@
 """Import all the components."""
+
 from __future__ import annotations
 
 from reflex.utils import lazy_loader

+ 1 - 0
reflex/components/base/__init__.py

@@ -1,4 +1,5 @@
 """Base components."""
+
 from __future__ import annotations
 
 from reflex.utils import lazy_loader

+ 1 - 0
reflex/components/base/app_wrap.py

@@ -1,4 +1,5 @@
 """Top-level component that wraps the entire app."""
+
 from reflex.components.base.fragment import Fragment
 from reflex.components.component import Component
 from reflex.vars import Var

+ 1 - 0
reflex/components/base/fragment.py

@@ -1,4 +1,5 @@
 """React fragments to enable bare returns of component trees from functions."""
+
 from reflex.components.component import Component
 
 

+ 0 - 1
reflex/components/base/link.py

@@ -1,6 +1,5 @@
 """Display the title of the current page."""
 
-
 from reflex.components.component import Component
 from reflex.vars import Var
 

+ 1 - 0
reflex/components/base/script.py

@@ -2,6 +2,7 @@
 
 https://nextjs.org/docs/app/api-reference/components/script
 """
+
 from __future__ import annotations
 
 from reflex.components.component import Component

+ 1 - 0
reflex/components/chakra/base.py

@@ -1,4 +1,5 @@
 """Components that are based on Chakra-UI."""
+
 from __future__ import annotations
 
 from functools import lru_cache

+ 1 - 0
reflex/components/chakra/base.pyi

@@ -155,6 +155,7 @@ class ChakraProvider(ChakraComponent):
             A new ChakraProvider component.
         """
         ...
+
     def add_imports(self) -> ImportDict: ...
 
 chakra_provider = ChakraProvider.create()

+ 1 - 0
reflex/components/chakra/datadisplay/code.py

@@ -1,4 +1,5 @@
 """A code component."""
+
 from reflex.components.chakra import (
     ChakraComponent,
 )

+ 1 - 0
reflex/components/chakra/datadisplay/divider.py

@@ -1,4 +1,5 @@
 """A line to divide parts of the layout."""
+
 from typing import Literal
 
 from reflex.components.chakra import ChakraComponent, LiteralDividerVariant

+ 1 - 0
reflex/components/chakra/datadisplay/table.py

@@ -1,4 +1,5 @@
 """Table components."""
+
 from typing import List, Tuple
 
 from reflex.components.chakra import ChakraComponent

+ 3 - 0
reflex/components/chakra/datadisplay/table.pyi

@@ -184,6 +184,7 @@ class Thead(ChakraComponent):
 
         """
         ...
+
     @staticmethod
     def validate_headers(headers): ...
 
@@ -264,6 +265,7 @@ class Tbody(ChakraComponent):
             Component: The table body component
         """
         ...
+
     @staticmethod
     def validate_rows(rows): ...
 
@@ -344,6 +346,7 @@ class Tfoot(ChakraComponent):
             The table footer component.
         """
         ...
+
     @staticmethod
     def validate_footers(footers): ...
 

+ 1 - 0
reflex/components/chakra/datadisplay/tag.py

@@ -1,4 +1,5 @@
 """Chakra Tag Component."""
+
 from typing import Optional
 
 from reflex.components.chakra import (

+ 1 - 0
reflex/components/chakra/disclosure/transition.py

@@ -1,4 +1,5 @@
 """A transition Component."""
+
 from typing import Union
 
 from reflex.components.chakra import ChakraComponent

+ 1 - 0
reflex/components/chakra/feedback/circularprogress.py

@@ -1,4 +1,5 @@
 """Container to stack elements with spacing."""
+
 from typing import Union
 
 from reflex.components.chakra import ChakraComponent

+ 1 - 0
reflex/components/chakra/forms/button.py

@@ -1,4 +1,5 @@
 """A button component."""
+
 from typing import List
 
 from reflex.components.chakra import (

+ 1 - 0
reflex/components/chakra/forms/checkbox.py

@@ -1,4 +1,5 @@
 """A checkbox component."""
+
 from __future__ import annotations
 
 from reflex.components.chakra import (

+ 1 - 0
reflex/components/chakra/forms/colormodeswitch.py

@@ -14,6 +14,7 @@ rx.text(
 )
 ```
 """
+
 from __future__ import annotations
 
 from reflex.components.chakra import ChakraComponent

+ 1 - 0
reflex/components/chakra/forms/editable.py

@@ -1,4 +1,5 @@
 """An editable component."""
+
 from __future__ import annotations
 
 from reflex.components.chakra import ChakraComponent

+ 1 - 0
reflex/components/chakra/forms/form.py

@@ -1,4 +1,5 @@
 """Form components."""
+
 from __future__ import annotations
 
 from reflex.components.chakra import ChakraComponent

+ 0 - 1
reflex/components/chakra/forms/input.py

@@ -1,6 +1,5 @@
 """An input component."""
 
-
 from reflex.components.chakra import (
     ChakraComponent,
     LiteralButtonSize,

+ 1 - 0
reflex/components/chakra/forms/multiselect.py

@@ -1,4 +1,5 @@
 """Provides a feature-rich Select and some (not all) related components."""
+
 from __future__ import annotations
 
 from typing import Any, Dict, List, Optional, Set, Union

+ 0 - 1
reflex/components/chakra/forms/radio.py

@@ -1,6 +1,5 @@
 """A radio component."""
 
-
 from typing import Any, List
 
 from reflex.components.chakra import ChakraComponent

+ 1 - 0
reflex/components/chakra/forms/rangeslider.py

@@ -1,4 +1,5 @@
 """A range slider component."""
+
 from __future__ import annotations
 
 from typing import List, Optional

+ 1 - 0
reflex/components/chakra/forms/slider.py

@@ -1,4 +1,5 @@
 """A slider component."""
+
 from __future__ import annotations
 
 from typing import Literal

+ 1 - 0
reflex/components/chakra/forms/switch.py

@@ -1,4 +1,5 @@
 """A switch component."""
+
 from __future__ import annotations
 
 from reflex.components.chakra import ChakraComponent, LiteralColorScheme

+ 1 - 0
reflex/components/chakra/forms/textarea.py

@@ -1,4 +1,5 @@
 """A textarea component."""
+
 from __future__ import annotations
 
 from reflex.components.chakra import ChakraComponent, LiteralInputVariant

+ 1 - 0
reflex/components/chakra/media/avatar.py

@@ -1,4 +1,5 @@
 """Avatar components."""
+
 from __future__ import annotations
 
 from reflex.components.chakra import ChakraComponent, LiteralAvatarSize

+ 1 - 0
reflex/components/chakra/media/icon.py

@@ -1,4 +1,5 @@
 """An icon component."""
+
 from typing import List
 
 from reflex.components.chakra import ChakraComponent

+ 1 - 0
reflex/components/chakra/media/image.py

@@ -1,4 +1,5 @@
 """An image component."""
+
 from __future__ import annotations
 
 from typing import Any, Optional

+ 0 - 1
reflex/components/chakra/navigation/link.py

@@ -1,6 +1,5 @@
 """A link component."""
 
-
 from reflex.components.chakra import ChakraComponent
 from reflex.components.component import Component
 from reflex.components.next.link import NextLink

+ 1 - 0
reflex/components/chakra/overlay/alertdialog.py

@@ -1,4 +1,5 @@
 """Alert dialog components."""
+
 from __future__ import annotations
 
 from reflex.components.chakra import ChakraComponent, LiteralAlertDialogSize

+ 1 - 0
reflex/components/chakra/overlay/drawer.py

@@ -1,4 +1,5 @@
 """Container to stack elements with spacing."""
+
 from __future__ import annotations
 
 from reflex.components.chakra import (

+ 1 - 0
reflex/components/chakra/overlay/menu.py

@@ -1,4 +1,5 @@
 """Menu components."""
+
 from __future__ import annotations
 
 from typing import List, Optional

+ 1 - 0
reflex/components/chakra/overlay/modal.py

@@ -1,4 +1,5 @@
 """Modal components."""
+
 from __future__ import annotations
 
 from typing import Literal, Optional, Union

+ 1 - 0
reflex/components/chakra/overlay/popover.py

@@ -1,4 +1,5 @@
 """Popover components."""
+
 from __future__ import annotations
 
 from reflex.components.chakra import (

+ 1 - 0
reflex/components/chakra/overlay/tooltip.py

@@ -1,4 +1,5 @@
 """Tooltip components."""
+
 from __future__ import annotations
 
 from reflex.components.chakra import ChakraComponent, LiteralChakraDirection

+ 0 - 1
reflex/components/chakra/typography/heading.py

@@ -1,6 +1,5 @@
 """A heading component."""
 
-
 from reflex.components.chakra import ChakraComponent, LiteralHeadingSize
 from reflex.vars import Var
 

+ 1 - 0
reflex/components/chakra/typography/span.py

@@ -1,4 +1,5 @@
 """A span component."""
+
 from __future__ import annotations
 
 from reflex.components.chakra import ChakraComponent

+ 1 - 0
reflex/components/chakra/typography/text.py

@@ -1,4 +1,5 @@
 """A text component."""
+
 from __future__ import annotations
 
 from reflex.components.chakra import ChakraComponent

+ 1 - 0
reflex/components/core/__init__.py

@@ -1,4 +1,5 @@
 """Core Reflex components."""
+
 from __future__ import annotations
 
 from reflex.utils import lazy_loader

+ 1 - 0
reflex/components/core/banner.pyi

@@ -445,6 +445,7 @@ class WifiOffPulse(Icon):
             The icon component with default props applied.
         """
         ...
+
     def add_imports(self) -> dict[str, str | ImportVar | list[str | ImportVar]]: ...
 
 class ConnectionPulser(Div):

+ 1 - 0
reflex/components/core/client_side_routing.py

@@ -7,6 +7,7 @@ setting a reactive state var "routeNotFound" to true if the redirect fails.  The
 `wait_for_client_redirect` function will render the component only after
 routeNotFound becomes true.
 """
+
 from __future__ import annotations
 
 from reflex import constants

+ 3 - 6
reflex/components/core/cond.py

@@ -110,18 +110,15 @@ class Cond(MemoizationLeaf):
 
 
 @overload
-def cond(condition: Any, c1: Component, c2: Any) -> Component:
-    ...
+def cond(condition: Any, c1: Component, c2: Any) -> Component: ...
 
 
 @overload
-def cond(condition: Any, c1: Component) -> Component:
-    ...
+def cond(condition: Any, c1: Component) -> Component: ...
 
 
 @overload
-def cond(condition: Any, c1: Any, c2: Any) -> Var:
-    ...
+def cond(condition: Any, c1: Any, c2: Any) -> Var: ...
 
 
 def cond(condition: Any, c1: Any, c2: Any = None):

+ 1 - 0
reflex/components/core/foreach.py

@@ -1,4 +1,5 @@
 """Create a list of components from an iterable."""
+
 from __future__ import annotations
 
 import inspect

+ 1 - 0
reflex/components/core/html.py

@@ -1,4 +1,5 @@
 """A html component."""
+
 from typing import Dict
 
 from reflex.components.el.elements.typography import Div

+ 1 - 0
reflex/components/datadisplay/__init__.py

@@ -1,4 +1,5 @@
 """Data grid components."""
+
 from __future__ import annotations
 
 from reflex.utils import lazy_loader

+ 1 - 0
reflex/components/datadisplay/code.py

@@ -1,4 +1,5 @@
 """A code component."""
+
 from __future__ import annotations
 
 import re

+ 1 - 0
reflex/components/datadisplay/code.pyi

@@ -1112,6 +1112,7 @@ class CodeBlock(Component):
             The text component.
         """
         ...
+
     def add_style(self): ...
     @staticmethod
     def convert_theme_name(theme) -> str: ...

+ 1 - 0
reflex/components/datadisplay/logo.py

@@ -1,4 +1,5 @@
 """A Reflex logo component."""
+
 import reflex as rx
 
 

+ 1 - 0
reflex/components/el/__init__.py

@@ -1,4 +1,5 @@
 """The el package exports raw HTML elements."""
+
 from __future__ import annotations
 
 from reflex.utils import lazy_loader

+ 0 - 1
reflex/components/el/element.py

@@ -1,6 +1,5 @@
 """Base class definition for raw HTML elements."""
 
-
 from reflex.components.component import Component
 
 

+ 1 - 0
reflex/components/el/elements/__init__.py

@@ -1,4 +1,5 @@
 """Element classes."""
+
 from __future__ import annotations
 
 from reflex.utils import lazy_loader

+ 1 - 0
reflex/components/el/elements/base.py

@@ -1,4 +1,5 @@
 """Element classes. This is an auto-generated file. Do not edit. See ../generate.py."""
+
 from typing import Union
 
 from reflex.components.el.element import Element

+ 1 - 0
reflex/components/el/elements/forms.pyi

@@ -580,6 +580,7 @@ class Form(BaseHTML):
             The form component.
         """
         ...
+
     def add_imports(self) -> ImportDict: ...
     def add_hooks(self) -> list[str]: ...
 

+ 1 - 0
reflex/components/el/elements/inline.py

@@ -1,4 +1,5 @@
 """Element classes. This is an auto-generated file. Do not edit. See ../generate.py."""
+
 from typing import Union
 
 from reflex.vars import Var

+ 1 - 0
reflex/components/el/elements/media.py

@@ -1,4 +1,5 @@
 """Element classes. This is an auto-generated file. Do not edit. See ../generate.py."""
+
 from typing import Any, Union
 
 from reflex import Component

+ 1 - 0
reflex/components/el/elements/metadata.py

@@ -1,4 +1,5 @@
 """Element classes. This is an auto-generated file. Do not edit. See ../generate.py."""
+
 from typing import Union
 
 from reflex.components.el.element import Element

+ 1 - 0
reflex/components/el/elements/other.py

@@ -1,4 +1,5 @@
 """Element classes. This is an auto-generated file. Do not edit. See ../generate.py."""
+
 from typing import Union
 
 from reflex.vars import Var as Var

+ 1 - 0
reflex/components/el/elements/scripts.py

@@ -1,4 +1,5 @@
 """Element classes. This is an auto-generated file. Do not edit. See ../generate.py."""
+
 from typing import Union
 
 from reflex.vars import Var as Var

+ 1 - 0
reflex/components/el/elements/tables.py

@@ -1,4 +1,5 @@
 """Element classes. This is an auto-generated file. Do not edit. See ../generate.py."""
+
 from typing import Union
 
 from reflex.vars import Var as Var

+ 1 - 0
reflex/components/el/elements/typography.py

@@ -1,4 +1,5 @@
 """Element classes. This is an auto-generated file. Do not edit. See ../generate.py."""
+
 from typing import Union
 
 from reflex.vars import Var as Var

+ 1 - 0
reflex/components/gridjs/datatable.pyi

@@ -181,4 +181,5 @@ class DataTable(Gridjs):
             ValueError: If a pandas dataframe is passed in and columns are also provided.
         """
         ...
+
     def add_imports(self) -> ImportDict: ...

+ 3 - 1
reflex/components/markdown/markdown.py

@@ -242,7 +242,9 @@ class Markdown(Component):
         }
 
         # Separate out inline code and code blocks.
-        components["code"] = f"""{{({{node, inline, className, {_CHILDREN._var_name}, {_PROPS._var_name}}}) => {{
+        components[
+            "code"
+        ] = f"""{{({{node, inline, className, {_CHILDREN._var_name}, {_PROPS._var_name}}}) => {{
     const match = (className || '').match(/language-(?<lang>.*)/);
     const language = match ? match[1] : '';
     if (language) {{

+ 1 - 0
reflex/components/markdown/markdown.pyi

@@ -123,6 +123,7 @@ class Markdown(Component):
             The markdown component.
         """
         ...
+
     def add_imports(self) -> ImportDict | list[ImportDict]: ...
     def get_component(self, tag: str, **props) -> Component: ...
     def format_component(self, tag: str, **props) -> str: ...

+ 1 - 0
reflex/components/media/icon.py

@@ -1,2 +1,3 @@
 """Shim for reflex.components.chakra.media.icon."""
+
 from reflex.components.chakra.media.icon import *

Деякі файли не було показано, через те що забагато файлів було змінено