Skip to content

Commit

Permalink
Support python direct call _parse_args or run
Browse files Browse the repository at this point in the history
For example:
```
>>> from podman_compose import podman_compose
>>> podman_compose._parse_args(['version'])
>>> podman_compose.run(['help'])
```

Signed-off-by: Mingzhe Zou <zoumingzhe@qq.com>
  • Loading branch information
zoumingzhe committed Jul 29, 2023
1 parent 0164c1d commit c3527b4
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions podman_compose.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
import random
import json
import glob
from typing import Optional
from typing import Sequence

from threading import Thread

Expand Down Expand Up @@ -1463,9 +1465,9 @@ def get_podman_args(self, cmd):
xargs.extend(shlex.split(args))
return xargs

def run(self):
def run(self, argv: Optional[Sequence[str]] = None):
log("podman-compose version: " + __version__)
args = self._parse_args()
args = self._parse_args(argv)
podman_path = args.podman_path
if podman_path != "podman":
if os.path.isfile(podman_path) and os.access(podman_path, os.X_OK):
Expand Down Expand Up @@ -1773,7 +1775,7 @@ def _resolve_profiles(self, defined_services, requested_profiles=None):
services[name] = config
return services

def _parse_args(self):
def _parse_args(self, argv: Optional[Sequence[str]] = None):
parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter)
self._init_global_parser(parser)
subparsers = parser.add_subparsers(title="command", dest="command")
Expand All @@ -1784,7 +1786,7 @@ def _parse_args(self):
) # pylint: disable=protected-access
for cmd_parser in cmd._parse_args: # pylint: disable=protected-access
cmd_parser(subparser)
self.global_args = parser.parse_args()
self.global_args = parser.parse_args(argv)
if self.global_args.version:
self.global_args.command = "version"
if not self.global_args.command or self.global_args.command == "help":
Expand Down

0 comments on commit c3527b4

Please sign in to comment.