From 2be20745f11b260db931bb5b21f69c7ebe68226d Mon Sep 17 00:00:00 2001 From: Nikhil Rao Date: Tue, 27 Dec 2022 00:01:20 -0800 Subject: [PATCH] Improve cli help messages (#185) --- .github/workflows/build.yml | 2 +- pynecone/app.py | 8 ++++---- pynecone/pc.py | 38 ++++++++++++------------------------- pyproject.toml | 2 -- 4 files changed, 17 insertions(+), 33 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2228d10496..b8871cccd0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -50,5 +50,5 @@ jobs: - run: poetry run pytest tests - run: poetry run pyright pynecone tests - run: poetry run pydocstyle pynecone tests - - run: poetry run darglint pynecone tests + - run: find pynecone tests -name "*.py" -not -path pynecone/pc.py | xargs poetry run darglint - run: poetry run black --check pynecone tests diff --git a/pynecone/app.py b/pynecone/app.py index 294703a578..7f7761ac11 100644 --- a/pynecone/app.py +++ b/pynecone/app.py @@ -85,10 +85,10 @@ def __call__(self) -> FastAPI: def add_default_endpoints(self): """Add the default endpoints.""" # To test the server. - self.api.get(str(constants.Endpoint.PING))(_ping) + self.api.get(str(constants.Endpoint.PING))(ping) # To make state changes. - self.api.websocket(str(constants.Endpoint.EVENT))(_event(app=self)) + self.api.websocket(str(constants.Endpoint.EVENT))(event(app=self)) def add_cors(self): """Add CORS middleware to the app.""" @@ -290,7 +290,7 @@ def set_state(self, token: str, state: State): self.state_manager.set_state(token, state) -async def _ping() -> str: +async def ping() -> str: """Test API endpoint. Returns: @@ -299,7 +299,7 @@ async def _ping() -> str: return "pong" -def _event(app: App): +def event(app: App): """Websocket endpoint for events. Args: diff --git a/pynecone/pc.py b/pynecone/pc.py index b14c568f26..dd5f193ac8 100644 --- a/pynecone/pc.py +++ b/pynecone/pc.py @@ -19,11 +19,7 @@ def version(): @cli.command() def init(): - """Initialize a new Pynecone app. - - Raises: - Exit: If the app directory is invalid. - """ + """Initialize a new Pynecone app in the current directory.""" app_name = utils.get_default_app_name() # Make sure they don't name the app "pynecone". @@ -49,22 +45,16 @@ def init(): @cli.command() def run( - env: constants.Env = constants.Env.DEV, - frontend: bool = True, - backend: bool = True, - loglevel: constants.LogLevel = constants.LogLevel.ERROR, + env: constants.Env = typer.Option( + constants.Env.DEV, help="The environment to run the app in." + ), + frontend: bool = typer.Option(True, help="Whether to run the frontend."), + backend: bool = typer.Option(True, help="Whether to run the backend."), + loglevel: constants.LogLevel = typer.Option( + constants.LogLevel.ERROR, help="The log level to use." + ), ): - """Run the app. - - Args: - env: The environment to run the app in. - frontend: Whether to run the frontend. - backend: Whether to run the backend. - loglevel: The log level to use. - - Raises: - Exit: If the app is not initialized. - """ + """Run the app in the current directory.""" # Check that the app is initialized. if frontend and not utils.is_initialized(): utils.console.print( @@ -99,12 +89,8 @@ def run( @cli.command() -def deploy(dry_run: bool = False): - """Deploy the app to the hosting service. - - Args: - dry_run: Whether to run a dry run. - """ +def deploy(dry_run: bool = typer.Option(False, help="Whether to run a dry run.")): + """Deploy the app to the Pynecone hosting service.""" # Get the app config. config = utils.get_config() config.api_url = utils.get_production_backend_url() diff --git a/pyproject.toml b/pyproject.toml index 9cc34af22b..d69f75b59b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -52,5 +52,3 @@ pc = "pynecone.pc:main" [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" - -[tool.pyright]