Skip to content

Commit

Permalink
Work on documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
b8raoult committed May 28, 2024
1 parent a0c8f68 commit da8ed4f
Showing 1 changed file with 5 additions and 59 deletions.
64 changes: 5 additions & 59 deletions src/anemoi/inference/commands/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,69 +8,15 @@
# nor does it submit to any jurisdiction.
#

import argparse
import importlib
import logging
import os
import sys

LOG = logging.getLogger(__name__)
from anemoi.utils.cli import Command
from anemoi.utils.cli import Failed
from anemoi.utils.cli import register_commands

__all__ = ["Command"]

def register(here, package, select, fail=None):
result = {}
not_available = {}

for p in os.listdir(here):
full = os.path.join(here, p)
if p.startswith("_"):
continue
if not (p.endswith(".py") or (os.path.isdir(full) and os.path.exists(os.path.join(full, "__init__.py")))):
continue

name, _ = os.path.splitext(p)

try:
imported = importlib.import_module(
f".{name}",
package=package,
)
except ImportError as e:
not_available[name] = e
continue

obj = select(imported)
if obj is not None:
result[name] = obj

for name, e in not_available.items():
if fail is None:
pass
if callable(fail):
result[name] = fail(name, e)

return result


class Command:
def run(self, args):
raise NotImplementedError(f"Command not implemented: {args.command}")


class Failed(Command):
def __init__(self, name, error):
self.name = name
self.error = error

def add_arguments(self, command_parser):
command_parser.add_argument("x", nargs=argparse.REMAINDER)

def run(self, args):
print(f"Command '{self.name}' not available: {self.error}")
sys.exit(1)


COMMANDS = register(
COMMANDS = register_commands(
os.path.dirname(__file__),
__name__,
lambda x: x.command(),
Expand Down

0 comments on commit da8ed4f

Please sign in to comment.