reflex 0.2.2a1__py3-none-any.whl → 0.2.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of reflex might be problematic. Click here for more details.

reflex/utils/processes.py CHANGED
@@ -7,8 +7,7 @@ import os
7
7
  import signal
8
8
  import subprocess
9
9
  import sys
10
- from datetime import datetime
11
- from typing import Optional
10
+ from typing import List, Optional
12
11
  from urllib.parse import urlparse
13
12
 
14
13
  import psutil
@@ -101,7 +100,7 @@ def change_or_terminate_port(port, _type) -> str:
101
100
  Returns:
102
101
  The new port or the current one.
103
102
  """
104
- console.print(
103
+ console.info(
105
104
  f"Something is already running on port [bold underline]{port}[/bold underline]. This is the port the {_type} runs on."
106
105
  )
107
106
  frontend_action = console.ask("Kill or change it?", choices=["k", "c", "n"])
@@ -115,37 +114,119 @@ def change_or_terminate_port(port, _type) -> str:
115
114
  if is_process_on_port(new_port):
116
115
  return change_or_terminate_port(new_port, _type)
117
116
  else:
118
- console.print(
117
+ console.info(
119
118
  f"The {_type} will run on port [bold underline]{new_port}[/bold underline]."
120
119
  )
121
120
  return new_port
122
121
  else:
123
- console.print("Exiting...")
122
+ console.log("Exiting...")
124
123
  sys.exit()
125
124
 
126
125
 
127
- def new_process(args, **kwargs):
126
+ def new_process(args, run: bool = False, show_logs: bool = False, **kwargs):
128
127
  """Wrapper over subprocess.Popen to unify the launch of child processes.
129
128
 
130
129
  Args:
131
130
  args: A string, or a sequence of program arguments.
131
+ run: Whether to run the process to completion.
132
+ show_logs: Whether to show the logs of the process.
132
133
  **kwargs: Kwargs to override default wrap values to pass to subprocess.Popen as arguments.
133
134
 
134
135
  Returns:
135
136
  Execute a child program in a new process.
136
137
  """
138
+ # Add the node bin path to the PATH environment variable.
139
+ env = {
140
+ **os.environ,
141
+ "PATH": os.pathsep.join([constants.NODE_BIN_PATH, os.environ["PATH"]]),
142
+ }
137
143
  kwargs = {
138
- "env": os.environ,
139
- "stderr": subprocess.STDOUT,
140
- "stdout": subprocess.PIPE, # Redirect stdout to a pipe
141
- "universal_newlines": True, # Set universal_newlines to True for text mode
144
+ "env": env,
145
+ "stderr": None if show_logs else subprocess.STDOUT,
146
+ "stdout": None if show_logs else subprocess.PIPE,
147
+ "universal_newlines": True,
142
148
  "encoding": "UTF-8",
143
149
  **kwargs,
144
150
  }
145
- return subprocess.Popen(
146
- args,
147
- **kwargs,
148
- )
151
+ console.debug(f"Running command: {args}")
152
+ fn = subprocess.run if run else subprocess.Popen
153
+ return fn(args, **kwargs)
154
+
155
+
156
+ def stream_logs(
157
+ message: str,
158
+ process: subprocess.Popen,
159
+ ):
160
+ """Stream the logs for a process.
161
+
162
+ Args:
163
+ message: The message to display.
164
+ process: The process.
165
+
166
+ Yields:
167
+ The lines of the process output.
168
+ """
169
+ with process:
170
+ console.debug(message)
171
+ if process.stdout is None:
172
+ return
173
+ for line in process.stdout:
174
+ console.debug(line, end="")
175
+ yield line
176
+
177
+ if process.returncode != 0:
178
+ console.error(f"Error during {message}")
179
+ console.error(
180
+ "Run in with [bold]--loglevel debug[/bold] to see the full error."
181
+ )
182
+ os._exit(1)
183
+
184
+
185
+ def show_logs(
186
+ message: str,
187
+ process: subprocess.Popen,
188
+ ):
189
+ """Show the logs for a process.
190
+
191
+ Args:
192
+ message: The message to display.
193
+ process: The process.
194
+ """
195
+ for _ in stream_logs(message, process):
196
+ pass
197
+
198
+
199
+ def show_status(message: str, process: subprocess.Popen):
200
+ """Show the status of a process.
201
+
202
+ Args:
203
+ message: The initial message to display.
204
+ process: The process.
205
+ """
206
+ with console.status(message) as status:
207
+ for line in stream_logs(message, process):
208
+ status.update(f"{message} {line}")
209
+
210
+
211
+ def show_progress(message: str, process: subprocess.Popen, checkpoints: List[str]):
212
+ """Show a progress bar for a process.
213
+
214
+ Args:
215
+ message: The message to display.
216
+ process: The process.
217
+ checkpoints: The checkpoints to advance the progress bar.
218
+ """
219
+ # Iterate over the process output.
220
+ with console.progress() as progress:
221
+ task = progress.add_task(f"{message}: ", total=len(checkpoints))
222
+ for line in stream_logs(message, process):
223
+ # Check for special strings and update the progress bar.
224
+ for special_string in checkpoints:
225
+ if special_string in line:
226
+ progress.update(task, advance=1)
227
+ if special_string == checkpoints[-1]:
228
+ progress.update(task, completed=len(checkpoints))
229
+ break
149
230
 
150
231
 
151
232
  def catch_keyboard_interrupt(signal, frame):
@@ -155,5 +236,4 @@ def catch_keyboard_interrupt(signal, frame):
155
236
  signal: The keyboard interrupt signal.
156
237
  frame: The current stack frame.
157
238
  """
158
- current_time = datetime.now().isoformat()
159
- console.print(f"\nReflex app stopped at time: {current_time}")
239
+ console.log("Reflex app stopped.")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: reflex
3
- Version: 0.2.2a1
3
+ Version: 0.2.3
4
4
  Summary: Web apps in pure Python.
5
5
  Home-page: https://reflex.dev
6
6
  License: Apache-2.0
@@ -67,7 +67,7 @@ Description-Content-Type: text/markdown
67
67
 
68
68
  ---
69
69
 
70
- [English](README.md) | [简体中文](/docs/zh/zh_cn/README.md) | [繁體中文](/docs/zh/zh_tw/README.md)
70
+ [English](https://github.com/reflex-dev/reflex/blob/main/README.md) | [简体中文](https://github.com/reflex-dev/reflex/blob/main/docs/zh/zh_cn/README.md) | [繁體中文](https://github.com/reflex-dev/reflex/blob/main/docs/zh/zh_tw/README.md)
71
71
 
72
72
  ---
73
73
 
@@ -1,7 +1,7 @@
1
1
  reflex/.templates/apps/counter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- reflex/.templates/apps/counter/counter.py,sha256=UC7v578G-CyF8BZIbH2ta1i4e3CbMtCH6k8APlB5upc,1337
2
+ reflex/.templates/apps/counter/counter.py,sha256=4v7odr8eI0K3gXhkvhTQRfV7lZpjrIlHDM83LNboHnc,1326
3
3
  reflex/.templates/apps/default/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- reflex/.templates/apps/default/default.py,sha256=YjrZS7LRW7zeWTAnCZkGJXk_wTHJmfjpBdn36fB5Qwk,1225
4
+ reflex/.templates/apps/default/default.py,sha256=4RFQe9S6NjGPIuqT8j9gn5oGOyDsd4rcMzzQQXatamc,1214
5
5
  reflex/.templates/assets/favicon.ico,sha256=rYQSlE5VycwUmzceMxFAhqkF71VsKWAYshFSXG7kWO8,15406
6
6
  reflex/.templates/jinja/app/rxconfig.py.jinja2,sha256=4ON679p5--vaSOrXUYBkTjeK5OZl0EL1PMRmxP399Cg,181
7
7
  reflex/.templates/jinja/web/pages/_document.js.jinja2,sha256=E2r3MWp-gimAa6DdRs9ErQpPEyjS_yV5fdid_wdOOlA,182
@@ -21,10 +21,10 @@ reflex/.templates/web/pages/_app.js,sha256=8RG0srPYL_mZKFrLfIni51Ath5ACBxAts-CIT
21
21
  reflex/.templates/web/postcss.config.js,sha256=JR7N3UZyyc9GdUfj3FNd4ArSEp3ybn565yj6TlrEX8U,82
22
22
  reflex/.templates/web/styles/code/prism.js,sha256=J0_iOSEvPRj9MjFXIV45UFe8xiyccO6KD0sGauV9bHU,29404
23
23
  reflex/.templates/web/styles/tailwind.css,sha256=zBp60NAZ3bHTLQ7LWIugrCbOQdhiXdbDZjSLJfg6KOw,59
24
- reflex/.templates/web/utils/state.js,sha256=8oDtTuEkDPeVDWbtT9SLa3oCXrR5R1ZlsrEbUQ3fkRo,10110
25
- reflex/__init__.py,sha256=fDVjYE7FfQAe3-KVe5hGeKx1d5GUWoqsEqYP94r7ai0,1965
24
+ reflex/.templates/web/utils/state.js,sha256=vFAi5oNi-BZEKztz1iM1sgf2WDH8qPIjB5eYgUz7qIo,10172
25
+ reflex/__init__.py,sha256=sWimsyP5vE7wQAhgZIRsp8KXCTxxrLuZpM9tjaEA2t0,1996
26
26
  reflex/admin.py,sha256=-bTxFUEoHo4X9FzmcSa6KSVVPpF7wh38lBvF67GhSvQ,373
27
- reflex/app.py,sha256=xZUnLevpLtUpoKtvHlyYVqu8lvHhhV2y66K5G6Crl0o,23767
27
+ reflex/app.py,sha256=bvJ4MqecxQCDS0L4iCK7D6phk4ERz70IoMTkGx25Fq4,24864
28
28
  reflex/base.py,sha256=Dr5E2oBYBXWPMU7aanTzlnaQP3b1hkElOw2qwU2xGio,2438
29
29
  reflex/compiler/__init__.py,sha256=r8jqmDSFf09iV2lHlNhfc9XrTLjNxfDNwPYlxS4cmHE,27
30
30
  reflex/compiler/compiler.py,sha256=S8CBUBhEYryprjRgVTzVWy4mQ6ZTWg9AYQF9KKzfClI,6604
@@ -43,7 +43,7 @@ reflex/components/component.py,sha256=hgTMvSebslD7xFHGC2uWJMxu3F4xNCLYk12u8XFBOR
43
43
  reflex/components/datadisplay/__init__.py,sha256=He8vj6DL88dSoPQzw3l_tp_C54PWsq3qai8V3d5pcy8,496
44
44
  reflex/components/datadisplay/badge.py,sha256=Zp1fPtvm7qCSOB7OWuraptDtt_OVqixyz7i34IQcMH0,330
45
45
  reflex/components/datadisplay/code.py,sha256=wFv8A71zKSKa9dy9xgv5vOQcMfinygffo5eTAoEHZu0,3495
46
- reflex/components/datadisplay/datatable.py,sha256=IIqgZpfkdvBPQ1_UnFqhFJQInbU_JLrENxD6vV8qKbA,4025
46
+ reflex/components/datadisplay/datatable.py,sha256=tGMlvS2F4B-lQD21Whe_hapurftH1eEZtqi8gxfVxEc,3951
47
47
  reflex/components/datadisplay/divider.py,sha256=ErCjdp7sQHLuRO9U9vPTQZEUlleSSS2oNQ6nMm8T1cc,533
48
48
  reflex/components/datadisplay/keyboard_key.py,sha256=gqSX2VqnC8zzkmHnwvnXtnfNpuEsGeBmaLCdo7TgNqg,185
49
49
  reflex/components/datadisplay/list.py,sha256=fLFKs48FryXjPSky_N9vyfnNfob6-zYs6UNVtXFOUug,1422
@@ -114,7 +114,7 @@ reflex/components/media/icon.py,sha256=FSsAhv2AqAQj97pcApFVChnJV2TiMGQKA_bH7te9d
114
114
  reflex/components/media/image.py,sha256=Wl_2Ephv1HDiTAuaV36dHG_88o9TiJxMB8YX35bRQv8,2053
115
115
  reflex/components/media/video.py,sha256=CJ99fj_JQp8zrY-x2YHkcp3v6oh6YDyaMJguAM7FygU,195
116
116
  reflex/components/navigation/__init__.py,sha256=M3mwbxDZRbj-mg-eud95uSI9gnJCShvi3QdpXfsr1hs,450
117
- reflex/components/navigation/breadcrumb.py,sha256=9AgqvWI9cYFPF-x96d4Ql2rqB4y6-T-iIzndaS59PWc,2017
117
+ reflex/components/navigation/breadcrumb.py,sha256=wdGjV4wH5e2oSHC9Q8C9SppRUvUgv8rzC9z0jS6Iw2A,2919
118
118
  reflex/components/navigation/link.py,sha256=8SAl0XwER0nEgrAmomKkkKpwzh-N4t91DOuhiQCFyug,1602
119
119
  reflex/components/navigation/linkoverlay.py,sha256=6Ax7_KlSFnqkW_JDLIAITXY0yO1TF-1Hd6hDApujNdc,526
120
120
  reflex/components/navigation/nextlink.py,sha256=9djgcEeAYiejW1hVpp5yMXV-b-GGD_2JuD6VQbzqzsA,503
@@ -129,17 +129,17 @@ reflex/components/overlay/popover.py,sha256=AuSnXDpcmJr0-s-EO5UtBfZs0RPAPeLprmAR
129
129
  reflex/components/overlay/tooltip.py,sha256=NngzTsdKmWTrI8QBuPLn4IV5S7yBB4VrC8mPAKh2ejU,1945
130
130
  reflex/components/tags/__init__.py,sha256=_YJZvciLOMcImlxycpIt9YnZO1Hg30EWXDafnKcZw5o,120
131
131
  reflex/components/tags/cond_tag.py,sha256=v5BO78bGQQuCy8lM45yI7nAuasxjQoRyQNdj5kakPBY,447
132
- reflex/components/tags/iter_tag.py,sha256=vnUzPq-JVfpHW51LVhGan7jNOReiQP6JuUJz0OgE6AE,2306
133
- reflex/components/tags/tag.py,sha256=68k8hZpNRFr2ZZMu3i31_XqU0-GbghrnIWg0NXABu20,5008
132
+ reflex/components/tags/iter_tag.py,sha256=5coN0IzdC9ijWzWMJfO7xDsHLeb2hQ7IBVKvh4ioMts,2306
133
+ reflex/components/tags/tag.py,sha256=ZqirNZuSFnYuLQovKd2lFsGPzHKFtjA5d8mepwNLMsk,5150
134
134
  reflex/components/tags/tagless.py,sha256=qO7Gm4V0ITDyymHkyltfz53155ZBt-W_WIPDYy93ca0,587
135
135
  reflex/components/typography/__init__.py,sha256=tLcpJuu_QuCjIgtoPykGS3oJ3nD8sYbmSD1B5YS4Mko,302
136
- reflex/components/typography/heading.py,sha256=Y4PiOiAPVmHobEFoWxMUyVOSTZSwgr7yfn4VeJu8Cxk,278
136
+ reflex/components/typography/heading.py,sha256=F3n_etjoU_i6EqlTFIifDnS2OgRQjtBUVKHnOOMMYyE,348
137
137
  reflex/components/typography/highlight.py,sha256=YBhW8PlJT8veuaDOc-bl6GXIHZNMe0UV8dtgJZ2abtU,676
138
- reflex/components/typography/markdown.py,sha256=ux2wITOCZPEhinoo81E4-20NcUnb8JxsBhgeNBJk5iA,3593
138
+ reflex/components/typography/markdown.py,sha256=tyCLGnbof8KTETHLSS2etUd67AESi-_cRrtvdgMA564,4679
139
139
  reflex/components/typography/span.py,sha256=kvIj5UAEvzhRpvXkAEZ_JxBRSt-LNBiEz9Arlj5m7jo,333
140
140
  reflex/components/typography/text.py,sha256=Tp2xmYl1yK-kfuTQ-YFdK-AvDq-Ixl6NFM9UDPj-qrg,302
141
- reflex/config.py,sha256=qckqR3RLD3i0IwL20i2HE0gq_UeXG_AXiRK7mM4UiYc,7692
142
- reflex/constants.py,sha256=o784J6hLS95GaPwT3ub6ISKmIGnyMz03UZAEhWdee0U,11103
141
+ reflex/config.py,sha256=A6pCfdr-PHG8BAgdvzF6zJZiDAQys3-9nWHdRqAppf4,7564
142
+ reflex/constants.py,sha256=XD2ePJhLzyspxDHqLZDudxnje7WaMUndiJCTqEUSVyQ,12431
143
143
  reflex/el/__init__.py,sha256=3QR9GuYBnFvtxLQm_aeSUzGJsqJBUjeTt6tcHyCqAcQ,73
144
144
  reflex/el/constants/__init__.py,sha256=9h2hdnOSltQLDEM6w1nGmv1B8Bf0tMquTCi5RhvBT6c,113
145
145
  reflex/el/constants/html.py,sha256=hIebFwWritMmd3VCMYBNg0k_2UM1QDIhT_Q-EQsCWEA,7175
@@ -152,28 +152,29 @@ reflex/event.py,sha256=k6aRYIsNOJdWh_jRLp0fb18p6sT-_XRsA-2jbwPzcNo,13398
152
152
  reflex/middleware/__init__.py,sha256=x7xTeDuc73Hjj43k1J63naC9x8vzFxl4sq7cCFBX7sk,111
153
153
  reflex/middleware/hydrate_middleware.py,sha256=DAB73pUSSGbmZ7_G7WPGKrdclb0aRd1135FLzXhoqPU,1726
154
154
  reflex/middleware/middleware.py,sha256=BJM_3GGLUi6oRf753vxRJueOUDm3eLC2pdY2hl1ez-4,1157
155
- reflex/model.py,sha256=rqN7AhYmnmvDfB4pW6pO77-CCboStq5dWjaqnaX6FCc,9604
155
+ reflex/model.py,sha256=MNkR7RX9Y3FAw-POd0z7BVx-v8yueyD42bGNnGEE0Dc,9598
156
+ reflex/page.py,sha256=y3elKn6gIWhjlcTrqG28yILIGCWvaLj8Tk1RrWds97M,1832
156
157
  reflex/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
157
- reflex/reflex.py,sha256=Wkpyc4Xasb0qB-NkZita5C8CISHi_S-AAG2XVdAfHQ8,11041
158
- reflex/route.py,sha256=n9vp3jrTHfvDxj-xFobgHLuu2jg0FvqKi3U9iJhOp6k,4104
159
- reflex/state.py,sha256=ttYj9j97K3X59VQ9kOC5uNRZY5_6beyqd2f5LAfl-MU,31805
158
+ reflex/reflex.py,sha256=zsfsUTUquRexkPXtA4Q8cdrMaRVg7Gl09IX_GWNeG1A,10612
159
+ reflex/route.py,sha256=VE7UF9Co7Ma5fh50ldrNVTT4rSwBNWUwhkBBDKX_TmQ,3934
160
+ reflex/state.py,sha256=vzjNis36hiGMAGvds8jnafl8DkoKhfCeV_PvPrFZJHY,32524
160
161
  reflex/style.py,sha256=_2TekAKihCLOtUjK0DY7bfjDBd5gDnfoEkmH0ep7cfg,1113
161
- reflex/testing.py,sha256=uuGyfK886brrc4XDb3uRg8uNoGmERJz2K4Et5QcQzLM,15063
162
+ reflex/testing.py,sha256=839ru5M-bCwv2_ATsXYaFGQ8Q9krpvFtuV-SIBNfmCM,15133
162
163
  reflex/utils/__init__.py,sha256=HBHF4X2_i1ugEYNgCvRXuT_NmQRzFAtIxSMKFSMIp18,24
163
- reflex/utils/build.py,sha256=CDiKsE7ZdNDSPTLdX5HckihVR6ZN2hyXdY94aXb2dNI,7971
164
- reflex/utils/console.py,sha256=7235SKldrlU0lrUwbcn-bbI-t_R5fKyUMBXDooqAWYc,1692
165
- reflex/utils/exec.py,sha256=Nbws2z1HDP_U2kXB0pNdTRLQ2ixkZi4op_0YIhJu9Co,4225
166
- reflex/utils/format.py,sha256=7ZV9azabitd2ckiEjBlFWojvqTqH0LilJvY8lVhSVB8,11845
167
- reflex/utils/imports.py,sha256=v8mPKfRjWr8VSOt_KaX8ut2JZ_eg7Guv0LKkr_JN55M,585
164
+ reflex/utils/build.py,sha256=jlVQHiTQVPt1bkKccLLSt6QxCasjiEoJIDbYAInHgTY,6191
165
+ reflex/utils/console.py,sha256=PYncDmR8NbDU1fvCJp5kwiugGaQpDSq7liik4lC3H5Q,3964
166
+ reflex/utils/exec.py,sha256=Uyq0Fg_y651p6ekmZ_m5CtuX0R_SU1nrQTQeMSMfL5s,3757
167
+ reflex/utils/format.py,sha256=HLL6YVPONnhJDSV4w16r3P3or5z_tiH_3v6Tx4RWcHs,12342
168
+ reflex/utils/imports.py,sha256=kmmnMgy52AcwsRafxDgsY1igOfvd65x_DlD0tAARtvc,590
168
169
  reflex/utils/path_ops.py,sha256=2JSNjlr-RxjmcaQ5CK2wL4W3bI9XmuCumvs6Hxnk9lw,2429
169
- reflex/utils/prerequisites.py,sha256=XpBOWPksEpM1HCQY8Ay6BGwdW99ftXweyCIfZVoOx4c,14056
170
- reflex/utils/processes.py,sha256=q3EGZQWNVCROLIkcx2Q33V7x75JUaK_P4LP4_9_N9ow,4105
170
+ reflex/utils/prerequisites.py,sha256=-gGa0c8RWTQauemV1hML-JnZ_8TWu0o3Yd_GTDRnADw,16809
171
+ reflex/utils/processes.py,sha256=bf4vHDouugf79Lp5FpKG-ytwclLr0YMS5K4UwYvLlOU,6484
171
172
  reflex/utils/telemetry.py,sha256=O7iidXpjOd_xpeqOfED4Vtjly55_yLGqeEm6nQSIjvY,2362
172
173
  reflex/utils/types.py,sha256=WqVbjeFBuAGKQOkFRaxZolkXfmtNTFGySykwI73Z7cI,4804
173
174
  reflex/utils/watch.py,sha256=1StctqX3jUwuZNDeikWI-363MpJX06PMQIJsHHwLSaE,2632
174
175
  reflex/vars.py,sha256=9uA_iHRAyjYQCtOLk_-3U8rhlpQgLDzJUFKtGi2Bik0,32892
175
- reflex-0.2.2a1.dist-info/LICENSE,sha256=dw3zLrp9f5ObD7kqS32vWfhcImfO52PMmRqvtxq_YEE,11358
176
- reflex-0.2.2a1.dist-info/METADATA,sha256=8AsJT6tzagMCmuLjx65FWKDiZNCjQkFX1jj9pXOwd1Y,9586
177
- reflex-0.2.2a1.dist-info/WHEEL,sha256=kLuE8m1WYU0Ig0_YEGrXyTtiJvKPpLpDEiChiNyei5Y,88
178
- reflex-0.2.2a1.dist-info/entry_points.txt,sha256=Vt2QDatPjQvqpNMjb4ueo2KEDlLWRLVohhN1iVtNUew,45
179
- reflex-0.2.2a1.dist-info/RECORD,,
176
+ reflex-0.2.3.dist-info/LICENSE,sha256=dw3zLrp9f5ObD7kqS32vWfhcImfO52PMmRqvtxq_YEE,11358
177
+ reflex-0.2.3.dist-info/METADATA,sha256=F7MlYzG6r7q9NBZW0oAlfHrP0jZnYAUWQJXFEQocZ7E,9723
178
+ reflex-0.2.3.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
179
+ reflex-0.2.3.dist-info/entry_points.txt,sha256=H1Z5Yat_xJfy0dRT1Frk2PkO_p41Xy7fCKlj4FcdL9o,44
180
+ reflex-0.2.3.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.5.1
2
+ Generator: poetry-core 1.6.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ reflex=reflex.reflex:cli
3
+
@@ -1,3 +0,0 @@
1
- [console_scripts]
2
- reflex=reflex.reflex:main
3
-