Skip to content

Commit

Permalink
Support argcomplete as an optional dependency
Browse files Browse the repository at this point in the history
  • Loading branch information
singingwolfboy committed Oct 15, 2023
1 parent a39eccc commit bf0aacb
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 0 deletions.
10 changes: 10 additions & 0 deletions locust/argument_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,14 @@
from typing import Dict, List, NamedTuple, Optional, Any
import configargparse

try:
from argcomplete import autocomplete
except ImportError:

def autocomplete(parser):
return None


import locust

version = locust.__version__
Expand Down Expand Up @@ -606,6 +614,7 @@ def get_parser(default_config_files=DEFAULT_CONFIG_FILES) -> LocustArgumentParse

def parse_options(args=None) -> configargparse.Namespace:
parser = get_parser()
autocomplete(parser)
parsed_opts = parser.parse_args(args=args)
if parsed_opts.stats_history_enabled and (parsed_opts.csv_prefix is None):
parser.error("'--csv-full-history' requires '--csv'.")
Expand Down Expand Up @@ -633,6 +642,7 @@ def ui_extra_args_dict(args=None) -> Dict[str, Dict[str, Any]]:
locust_args = default_args_dict()

parser = get_parser()
autocomplete(parser)
all_args = vars(parser.parse_args(args))

extra_args = {
Expand Down
3 changes: 3 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@ classifiers = [
"Topic :: System :: Distributed Computing",
]

[project.optional-dependencies]
completion = ["argcomplete"]

[project.urls]
Homepage = "https://locust.io/"
Documentation = "https://docs.locust.io/"
Expand Down

0 comments on commit bf0aacb

Please sign in to comment.