Skip to content

Commit 892c9c3

Browse files
authored
pyi (#24)
* pyi * updates * comment for now
1 parent a27458d commit 892c9c3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+10413
-121
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,7 @@ __pycache__/
77
.ruff_cache/
88
.venv/
99
playground/
10+
.pyi_generator_last_run
11+
.pyi_generator_diff
12+
**/.DS_Store
13+
**/*.pyc

.pre-commit-config.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,17 @@ repos:
1616
- id: codespell
1717
files: ^reflex_ui/
1818

19+
# Run pyi check before pyright because pyright can fail if pyi files are wrong.
20+
# - repo: local
21+
# hooks:
22+
# - id: update-pyi-files
23+
# name: update-pyi-files
24+
# always_run: true
25+
# language: system
26+
# require_serial: true
27+
# description: "Update pyi files as needed"
28+
# entry: python3 scripts/make_pyi.py
29+
1930
- repo: https://github.com/RobertCraigie/pyright-python
2031
rev: v1.1.403
2132
hooks:

pyproject.toml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,14 @@ lint.ignore = [
6464
"UP038",
6565
]
6666
lint.pydocstyle.convention = "google"
67+
68+
[tool.ruff.lint.per-file-ignores]
69+
"*.pyi" = ["D301", "D415", "D417", "D418", "E742", "N", "PGH"]
70+
"**/alembic/*.py" = ["D", "ERA"]
71+
"__init__.py" = ["ERA"]
72+
73+
[tool.pyright]
74+
reportIncompatibleMethodOverride = false
75+
reportMissingImports = false
76+
reportInconsistentOverload = false
77+
exclude = ["**/alembic/*", "demo/*", "reflex_ui/**/*.pyi"]

reflex_ui/__init__.pyi

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
"""Stub file for reflex_ui/__init__.py"""
2+
# ------------------- DO NOT EDIT ----------------------
3+
# This file was generated by `reflex/utils/pyi_generator.py`!
4+
# ------------------------------------------------------
5+
6+
from . import components, utils
7+
from .components import base
8+
from .components.base.avatar import avatar
9+
from .components.base.badge import badge
10+
from .components.base.button import button
11+
from .components.base.card import card
12+
from .components.base.checkbox import checkbox
13+
from .components.base.dialog import dialog
14+
from .components.base.gradient_profile import gradient_profile
15+
from .components.base.input import input
16+
from .components.base.link import link
17+
from .components.base.menu import menu
18+
from .components.base.popover import popover
19+
from .components.base.scroll_area import scroll_area
20+
from .components.base.select import select
21+
from .components.base.skeleton import skeleton
22+
from .components.base.slider import slider
23+
from .components.base.switch import switch
24+
from .components.base.tabs import tabs
25+
from .components.base.theme_switcher import theme_switcher
26+
from .components.base.toggle import toggle
27+
from .components.base.toggle_group import toggle_group
28+
from .components.base.tooltip import tooltip
29+
from .components.icons.hugeicon import hi, icon
30+
from .components.icons.others import spinner
31+
from .utils.twmerge import cn
32+
33+
_REFLEX_UI_MAPPING = {
34+
"components.base.avatar": ["avatar"],
35+
"components.base.badge": ["badge"],
36+
"components.base.button": ["button"],
37+
"components.base.card": ["card"],
38+
"components.base.checkbox": ["checkbox"],
39+
"components.base.dialog": ["dialog"],
40+
"components.base.gradient_profile": ["gradient_profile"],
41+
"components.base.input": ["input"],
42+
"components.base.link": ["link"],
43+
"components.base.menu": ["menu"],
44+
"components.base.popover": ["popover"],
45+
"components.base.scroll_area": ["scroll_area"],
46+
"components.base.select": ["select"],
47+
"components.base.skeleton": ["skeleton"],
48+
"components.base.slider": ["slider"],
49+
"components.base.switch": ["switch"],
50+
"components.base.tabs": ["tabs"],
51+
"components.base.theme_switcher": ["theme_switcher"],
52+
"components.base.toggle_group": ["toggle_group"],
53+
"components.base.toggle": ["toggle"],
54+
"components.base.tooltip": ["tooltip"],
55+
}
56+
_SUBMODULES = {"components", "utils"}
57+
_SUBMOD_ATTRS = {
58+
**_REFLEX_UI_MAPPING,
59+
"components": ["base"],
60+
"components.icons.hugeicon": ["hi", "icon"],
61+
"components.icons.others": ["spinner"],
62+
"utils.twmerge": ["cn"],
63+
}
64+
65+
__all__ = [
66+
"avatar",
67+
"badge",
68+
"base",
69+
"button",
70+
"card",
71+
"checkbox",
72+
"cn",
73+
"components",
74+
"dialog",
75+
"gradient_profile",
76+
"hi",
77+
"icon",
78+
"input",
79+
"link",
80+
"menu",
81+
"popover",
82+
"scroll_area",
83+
"select",
84+
"skeleton",
85+
"slider",
86+
"spinner",
87+
"switch",
88+
"tabs",
89+
"theme_switcher",
90+
"toggle",
91+
"toggle_group",
92+
"tooltip",
93+
"utils",
94+
]

reflex_ui/components/__init__.pyi

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
"""Stub file for reflex_ui/components/__init__.py"""
2+
# ------------------- DO NOT EDIT ----------------------
3+
# This file was generated by `reflex/utils/pyi_generator.py`!
4+
# ------------------------------------------------------
5+
6+
from . import base, icons
7+
8+
__all__ = ["base", "icons"]
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
"""Stub file for reflex_ui/components/base/__init__.py"""
2+
# ------------------- DO NOT EDIT ----------------------
3+
# This file was generated by `reflex/utils/pyi_generator.py`!
4+
# ------------------------------------------------------
5+
6+
from reflex_ui import _REFLEX_UI_MAPPING
7+
8+
from .avatar import avatar
9+
from .badge import badge
10+
from .button import button
11+
from .card import card
12+
from .checkbox import checkbox
13+
from .dialog import dialog
14+
from .gradient_profile import gradient_profile
15+
from .input import input
16+
from .link import link
17+
from .menu import menu
18+
from .popover import popover
19+
from .scroll_area import scroll_area
20+
from .select import select
21+
from .skeleton import skeleton
22+
from .slider import slider
23+
from .switch import switch
24+
from .tabs import tabs
25+
from .theme_switcher import theme_switcher
26+
from .toggle import toggle
27+
from .toggle_group import toggle_group
28+
from .tooltip import tooltip
29+
30+
_SUBMODULES = set()
31+
_SUBMOD_ATTRS = {
32+
"".join(k.split("components.base.")[-1]): v for k, v in _REFLEX_UI_MAPPING.items()
33+
}
34+
35+
__all__ = [
36+
"avatar",
37+
"badge",
38+
"button",
39+
"card",
40+
"checkbox",
41+
"dialog",
42+
"gradient_profile",
43+
"input",
44+
"link",
45+
"menu",
46+
"popover",
47+
"scroll_area",
48+
"select",
49+
"skeleton",
50+
"slider",
51+
"switch",
52+
"tabs",
53+
"theme_switcher",
54+
"toggle",
55+
"toggle_group",
56+
"tooltip",
57+
]

reflex_ui/components/base/avatar.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from reflex.components.component import Component, ComponentNamespace
44
from reflex.event import EventHandler, passthrough_event_spec
55
from reflex.utils.imports import ImportVar
6-
from reflex.vars import Var
6+
from reflex.vars.base import Var
77

88
from reflex_ui.components.base_ui import PACKAGE_NAME, BaseUIComponent
99

@@ -36,7 +36,7 @@ class AvatarRoot(AvatarBaseComponent):
3636
render_: Var[Component]
3737

3838
@classmethod
39-
def create(cls, *children, **props) -> Component:
39+
def create(cls, *children, **props) -> BaseUIComponent:
4040
"""Create the avatar root component."""
4141
props["data-slot"] = "avatar"
4242
cls.set_class_name(ClassNames.ROOT, props)
@@ -58,7 +58,7 @@ class AvatarImage(AvatarBaseComponent):
5858
render_: Var[Component]
5959

6060
@classmethod
61-
def create(cls, *children, **props) -> Component:
61+
def create(cls, *children, **props) -> BaseUIComponent:
6262
"""Create the avatar image component."""
6363
props["data-slot"] = "avatar-image"
6464
cls.set_class_name(ClassNames.IMAGE, props)
@@ -77,7 +77,7 @@ class AvatarFallback(AvatarBaseComponent):
7777
render_: Var[Component]
7878

7979
@classmethod
80-
def create(cls, *children, **props) -> Component:
80+
def create(cls, *children, **props) -> BaseUIComponent:
8181
"""Create the avatar fallback component."""
8282
props["data-slot"] = "avatar-fallback"
8383
cls.set_class_name(ClassNames.FALLBACK, props)
@@ -103,7 +103,7 @@ class HighLevelAvatar(AvatarRoot):
103103
_fallback_props = {"delay"}
104104

105105
@classmethod
106-
def create(cls, *children, **props) -> Component:
106+
def create(cls, *children, **props) -> BaseUIComponent:
107107
"""Create the avatar component."""
108108
# Extract props for each subcomponent
109109
image_props = {k: props.pop(k) for k in cls._image_props & props.keys()}

0 commit comments

Comments
 (0)