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 54e07b1 commit eb7a642
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 59 deletions.
2 changes: 2 additions & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,3 +113,5 @@


todo_include_todos = not read_the_docs_build

autodoc_member_order = "bysource" # Keep file order
64 changes: 5 additions & 59 deletions src/anemoi/models/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 eb7a642

Please sign in to comment.