1- # -*- coding: utf-8 -*-
2- # flake8: noqa
3- # type: ignore
4-
51"""Command line interface for PyStow."""
62
73from __future__ import annotations
84
95import os
10- from typing import Optional , Sequence
6+ from collections .abc import Sequence
7+ from pathlib import Path
118
129import click
1310
@@ -20,7 +17,7 @@ def main() -> None:
2017@main .command ()
2118@click .argument ("keys" , nargs = - 1 )
2219@click .option ("--name" )
23- def join (keys : Sequence [str ], name : Optional [ str ]) :
20+ def join (keys : Sequence [str ], name : str | None ) -> None :
2421 """List a directory."""
2522 from . import api
2623
@@ -29,7 +26,7 @@ def join(keys: Sequence[str], name: Optional[str]):
2926
3027@main .command ()
3128@click .argument ("keys" , nargs = - 1 )
32- def ls (keys : Sequence [str ]):
29+ def ls (keys : Sequence [str ]) -> None :
3330 """List a directory."""
3431 from . import api
3532
@@ -42,15 +39,15 @@ def ls(keys: Sequence[str]):
4239@click .option ("--url" , required = True )
4340@click .option ("--name" )
4441@click .option ("--force" , is_flag = True )
45- def ensure (keys : Sequence [str ], url : str , name : Optional [ str ] , force : bool ):
42+ def ensure (keys : Sequence [str ], url : str , name : str | None , force : bool ) -> None :
4643 """Ensure a file is downloaded."""
4744 from . import api
4845
4946 path = api .ensure (* keys , url = url , name = name , force = force )
5047 _ls (path .parent )
5148
5249
53- def _ls (directory ) :
50+ def _ls (directory : Path ) -> None :
5451 command = f"ls -al { directory } "
5552 click .secho (f"[pystow] { command } " , fg = "cyan" , bold = True )
5653 os .system (command ) # noqa:S605
@@ -60,7 +57,7 @@ def _ls(directory):
6057@click .argument ("module" )
6158@click .argument ("key" )
6259@click .argument ("value" )
63- def set_config (module : str , key : str , value : str ):
60+ def set_config (module : str , key : str , value : str ) -> None :
6461 """Set a configuration value."""
6562 from .config_api import write_config
6663
0 commit comments