]>
git.madduck.net Git - etc/vim.git/blobdiff - src/black_primer/cli.py
madduck's git repository
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath> — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@ git. madduck. net .
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
arranged .
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
insteadOf = madduck:
import asyncio
import logging
import sys
from datetime import datetime
import asyncio
import logging
import sys
from datetime import datetime
-from os import cpu_count
from pathlib import Path
from shutil import rmtree, which
from tempfile import gettempdir
from pathlib import Path
from shutil import rmtree, which
from tempfile import gettempdir
-from typing import Any, Union
+from typing import Any, Union, Optional
import click
from black_primer import lib
import click
from black_primer import lib
+# If our environment has uvloop installed lets use it
+try:
+ import uvloop
+
+ uvloop.install()
+except ImportError:
+ pass
+
DEFAULT_CONFIG = Path(__file__).parent / "primer.json"
_timestamp = datetime.now().strftime("%Y%m%d%H%M%S")
DEFAULT_CONFIG = Path(__file__).parent / "primer.json"
_timestamp = datetime.now().strftime("%Y%m%d%H%M%S")
- ctx: click.core.Context ,
- param: Union[click.core.Option, click.core.Parameter ],
+ ctx: Optional[click.core.Context] ,
+ param: Optional[Union[click.core.Option, click.core.Parameter] ],
debug: Union[bool, int, str],
) -> Union[bool, int, str]:
"""Turn on debugging if asked otherwise INFO default"""
debug: Union[bool, int, str],
) -> Union[bool, int, str]:
"""Turn on debugging if asked otherwise INFO default"""
debug: bool,
keep: bool,
long_checkouts: bool,
debug: bool,
keep: bool,
long_checkouts: bool,
rebase: bool,
workdir: str,
workers: int,
rebase: bool,
workdir: str,
workers: int,
try:
ret_val = await lib.process_queue(
try:
ret_val = await lib.process_queue(
- config, work_path, workers, keep, long_checkouts, rebase
+ config,
+ work_path,
+ workers,
+ keep,
+ long_checkouts,
+ rebase,
+ no_diff,
)
return int(ret_val)
finally:
if not keep and work_path.exists():
LOG.debug(f"Removing {work_path}")
)
return int(ret_val)
finally:
if not keep and work_path.exists():
LOG.debug(f"Removing {work_path}")
+ rmtree(work_path, onerror=lib.handle_PermissionError )
@click.command(context_settings={"help_option_names": ["-h", "--help"]})
@click.command(context_settings={"help_option_names": ["-h", "--help"]})
show_default=True,
help="Pull big projects to test",
)
show_default=True,
help="Pull big projects to test",
)
+@click.option(
+ "--no-diff",
+ is_flag=True,
+ show_default=True,
+ help="Disable showing source file changes in black output",
+)
@click.option(
"-R",
"--rebase",
@click.option(
"-R",
"--rebase",
default=str(DEFAULT_WORKDIR),
type=click.Path(exists=False),
show_default=True,
default=str(DEFAULT_WORKDIR),
type=click.Path(exists=False),
show_default=True,
- help="Directory P ath for repo checkouts",
+ help="Directory p ath for repo checkouts",
)
@click.option(
"-W",
"--workers",
)
@click.option(
"-W",
"--workers",
- default=int((cpu_count() or 4) / 2) or 1 ,
type=int,
show_default=True,
help="Number of parallel worker coroutines",
)
@click.pass_context
def main(ctx: click.core.Context, **kwargs: Any) -> None:
type=int,
show_default=True,
help="Number of parallel worker coroutines",
)
@click.pass_context
def main(ctx: click.core.Context, **kwargs: Any) -> None:
- """primer - prime projects for blackening ... 🏴"""
+ """primer - prime projects for blackening... 🏴"""
LOG.debug(f"Starting {sys.argv[0]}")
LOG.debug(f"Starting {sys.argv[0]}")
- # TODO: Change to asyncio.run when b lack >= 3.7 only
+ # TODO: Change to asyncio.run when B lack >= 3.7 only
loop = asyncio.get_event_loop()
try:
ctx.exit(loop.run_until_complete(async_main(**kwargs)))
loop = asyncio.get_event_loop()
try:
ctx.exit(loop.run_until_complete(async_main(**kwargs)))
-if __name__ == "__main__":
+if __name__ == "__main__": # pragma: nocover