Skip to content

Commit 25c2bd4

Browse files
committed
feat: Add project entrypoints
1 parent dcf31a3 commit 25c2bd4

6 files changed

Lines changed: 53 additions & 20 deletions

File tree

pyproject.toml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,20 @@
1-
[tool.poetry]
1+
[project]
22
name = "spark8t"
33
version = "1.3.1"
44
description = "This project provides some utilities function and CLI commands to run Spark on K8s."
5-
authors = [
6-
"Canonical Data Platform <data-platform@lists.launchpad.net>",
7-
]
5+
authors = [{ name = "Canonical Processing team" }]
6+
urls = { contact = "https://matrix.to/#/%23charmhub-analytics%3Aubuntu.com" }
87
license = "Apache-2.0"
98
readme = "README.md"
9+
10+
[project.scripts]
11+
pyspark = "spark8t.cli.pyspark:main"
12+
service-account-registry = "spark8t.cli.service_account_registry:main"
13+
spark-shell = "spark8t.cli.spark_shell:main"
14+
spark-sql = "spark8t.cli.spark_sql:main"
15+
spark-submit = "spark8t.cli.spark_submit:main"
16+
17+
[tool.poetry]
1018
requires-poetry = ">=2.0.0"
1119

1220
[tool.poetry.requires-plugins]

spark8t/cli/pyspark.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
from spark8t.utils import PropertyFile, setup_logging
2424

2525

26-
def main(args: Namespace, logger: Logger):
26+
def entrypoint(args: Namespace, logger: Logger, extra_args: list[str]) -> None:
2727
"""Pyspark main entrypoint."""
2828
kubeconfig = os.path.expandvars(args.kubeconfig) if args.kubeconfig else None
2929
context_name = os.path.expandvars(args.context) if args.context else None
@@ -64,7 +64,8 @@ def main(args: Namespace, logger: Logger):
6464
).pyspark_shell(confs, properties_file, extra_args)
6565

6666

67-
if __name__ == "__main__":
67+
def main() -> None:
68+
"""CLI entrypoint."""
6869
args, extra_args = parse_arguments_with(
6970
[
7071
add_logging_arguments,
@@ -78,10 +79,14 @@ def main(args: Namespace, logger: Logger):
7879
logger = setup_logging(args.log_level, args.log_conf_file, "spark8t.cli.pyspark")
7980

8081
try:
81-
main(args, logger)
82+
entrypoint(args, logger, extra_args)
8283
exit(0)
8384
except (AccountNotFound, PrimaryAccountNotFound) as e:
8485
logger.error(str(e))
8586
exit(1)
8687
except Exception as e:
8788
raise e
89+
90+
91+
if __name__ == "__main__":
92+
main()

spark8t/cli/service_account_registry.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ def create_namespace_if_missing(kube_interface: AbstractKubeInterface, namespace
7777
raise NamespaceNotFound(namespace) from err
7878

7979

80-
def create_service_account_registry_parser(parser: ArgumentParser):
80+
def create_service_account_registry_parser(parser: ArgumentParser) -> ArgumentParser:
8181
"""Create parser for service account CLI."""
8282
base_parser = parse_arguments_with(
8383
[add_logging_arguments, k8s_parser],
@@ -146,7 +146,7 @@ def create_service_account_registry_parser(parser: ArgumentParser):
146146
return parser
147147

148148

149-
def main(args: Namespace, logger: Logger):
149+
def entrypoint(args: Namespace, logger: Logger) -> None:
150150
"""Service account main entrypoint."""
151151
kubeconfig = os.path.expandvars(args.kubeconfig) if args.kubeconfig else None
152152
context_name = os.path.expandvars(args.context) if args.context else None
@@ -255,7 +255,8 @@ def main(args: Namespace, logger: Logger):
255255
print(print_line)
256256

257257

258-
if __name__ == "__main__":
258+
def main() -> None:
259+
"""CLI entrypoint."""
259260
args = create_service_account_registry_parser(
260261
ArgumentParser(description="Spark Client Setup")
261262
).parse_args()
@@ -265,10 +266,14 @@ def main(args: Namespace, logger: Logger):
265266
)
266267

267268
try:
268-
main(args, logger)
269+
entrypoint(args, logger)
269270
exit(0)
270271
except (AccountNotFound, PrimaryAccountNotFound, ResourceAlreadyExists) as e:
271272
print(str(e))
272273
exit(1)
273274
except Exception as e:
274275
raise e
276+
277+
278+
if __name__ == "__main__":
279+
main()

spark8t/cli/spark_shell.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
from spark8t.utils import PropertyFile, setup_logging
2424

2525

26-
def main(args: Namespace, logger: Logger):
26+
def entrypoint(args: Namespace, logger: Logger, extra_args: list[str]) -> None:
2727
"""Shell main entrypoint."""
2828
kubeconfig = os.path.expandvars(args.kubeconfig) if args.kubeconfig else None
2929
context_name = os.path.expandvars(args.context) if args.context else None
@@ -64,7 +64,8 @@ def main(args: Namespace, logger: Logger):
6464
).spark_shell(confs, properties_file, extra_args)
6565

6666

67-
if __name__ == "__main__":
67+
def main() -> None:
68+
"""CLI entrypoint."""
6869
args, extra_args = parse_arguments_with(
6970
[
7071
add_logging_arguments,
@@ -80,10 +81,14 @@ def main(args: Namespace, logger: Logger):
8081
)
8182

8283
try:
83-
main(args, logger)
84+
entrypoint(args, logger, extra_args)
8485
exit(0)
8586
except (AccountNotFound, PrimaryAccountNotFound) as e:
8687
logger.error(str(e))
8788
exit(1)
8889
except Exception as e:
8990
raise e
91+
92+
93+
if __name__ == "__main__":
94+
main()

spark8t/cli/spark_sql.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
from spark8t.utils import PropertyFile, setup_logging
2424

2525

26-
def main(args: Namespace, logger: Logger):
26+
def entrypoint(args: Namespace, logger: Logger, extra_args: list[str]) -> None:
2727
"""Define SQL main entrypoint."""
2828
kubeconfig = os.path.expandvars(args.kubeconfig) if args.kubeconfig else None
2929
context_name = os.path.expandvars(args.context) if args.context else None
@@ -63,7 +63,8 @@ def main(args: Namespace, logger: Logger):
6363
).spark_sql(confs, properties_file, extra_args)
6464

6565

66-
if __name__ == "__main__":
66+
def main() -> None:
67+
"""CLI entrypoint."""
6768
args, extra_args = parse_arguments_with(
6869
[
6970
add_logging_arguments,
@@ -77,10 +78,14 @@ def main(args: Namespace, logger: Logger):
7778
logger = setup_logging(args.log_level, args.log_conf_file, "spark8t.cli.spark_sql")
7879

7980
try:
80-
main(args, logger)
81+
entrypoint(args, logger, extra_args)
8182
exit(0)
8283
except (AccountNotFound, PrimaryAccountNotFound) as e:
8384
logger.error(str(e))
8485
exit(1)
8586
except Exception as e:
8687
raise e
88+
89+
90+
if __name__ == "__main__":
91+
main()

spark8t/cli/spark_submit.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
from spark8t.utils import PropertyFile, setup_logging
2525

2626

27-
def main(args: Namespace, logger: Logger):
27+
def main_entrypoint(args: Namespace, logger: Logger, extra_args: list[str]) -> None:
2828
"""Submit main entrypoint."""
2929
# Expand environment variables in arguments
3030
kubeconfig = os.path.expandvars(args.kubeconfig) if args.kubeconfig else None
@@ -73,7 +73,8 @@ def main(args: Namespace, logger: Logger):
7373
)
7474

7575

76-
if __name__ == "__main__":
76+
def main() -> None:
77+
"""CLI entrypoint."""
7778
args, extra_args = parse_arguments_with(
7879
[
7980
add_logging_arguments,
@@ -90,10 +91,14 @@ def main(args: Namespace, logger: Logger):
9091
)
9192

9293
try:
93-
main(args, logger)
94+
main_entrypoint(args, logger, extra_args)
9495
exit(0)
9596
except (AccountNotFound, PrimaryAccountNotFound) as e:
9697
logger.error(str(e))
9798
exit(1)
9899
except Exception as e:
99100
raise e
101+
102+
103+
if __name__ == "__main__":
104+
main()

0 commit comments

Comments
 (0)