Commit d9298803 authored by Mickaël Desfrênes's avatar Mickaël Desfrênes
Browse files

django apps can add rpc methods

parent 88f0d67a
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ Including another URLconf
from django.urls import path, include
from jama import settings
from . import views
from rpc import methods as rpc_methods

urlpatterns = [
    path(settings.JAMA_URL_BASE_PATH + "", views.homepage),
@@ -31,12 +32,12 @@ if settings.DEBUG:

for app in settings.AUTO_REGISTER_APPS:
    module = __import__(app)
    try:
    # does app have urls ?
    endpoint = getattr(module, "endpoint", None)
    if endpoint and isinstance(endpoint, str):
        urlpatterns.append(
            path(
                settings.JAMA_URL_BASE_PATH + getattr(module, "endpoint"),
                settings.JAMA_URL_BASE_PATH + endpoint,
                include("{}.urls".format(app)),
            )
        )
    except AttributeError:
        continue
+6 −10
Original line number Diff line number Diff line
from django.core.management.base import BaseCommand, CommandError
from rpc import methods
from inspect import getmembers, isfunction, signature
from inspect import signature
from rpc.views import _get_rpc_methods

all_methods = _get_rpc_methods()

TPL = '''def {}{}:
    """
@@ -13,13 +14,8 @@ TPL = '''def {}{}:

class Command(BaseCommand):
    def handle(self, *args, **options):
        signatures = {}
        for fn_name, _ in getmembers(methods, isfunction):
            signatures[fn_name] = getattr(methods, fn_name)
        for key in sorted(signatures.keys()):
            if key[0:1] == "_":
                continue
            sign = signature(getattr(methods, key))
        for key in sorted(all_methods.keys()):
            sign = signature(all_methods.get(key))
            keep_params = []
            for param in list(sign.parameters.items())[1:]:
                keep_params.append(param[0])
@@ -32,7 +28,7 @@ class Command(BaseCommand):
                TPL.format(
                    key,
                    shortened_signature,
                    getattr(methods, key).__doc__.strip(),
                    all_methods.get(key).__doc__.strip(),
                    key,
                    ", ".join(keep_params),
                )
+6 −11
Original line number Diff line number Diff line
from django.core.management.base import BaseCommand, CommandError
from rpc import methods
from inspect import getmembers, isfunction, signature
from inspect import signature
import re
from rpc.views import _get_rpc_methods

all_methods = _get_rpc_methods()
under_pat = re.compile(r"_([a-z])")


@@ -62,15 +63,9 @@ def _add_stars(str_in: str) -> str:

class Command(BaseCommand):
    def handle(self, *args, **options):
        signatures = {}
        for fn_name, _ in getmembers(methods, isfunction):
            signatures[fn_name] = getattr(methods, fn_name)
        for key in sorted(signatures.keys()):

            if key[0:1] == "_":
                continue
            doc_block = _add_stars(getattr(methods, key).__doc__)
            sign = signature(getattr(methods, key))
        for key in sorted(all_methods.keys()):
            doc_block = _add_stars(all_methods.get(key).__doc__)
            sign = signature(all_methods.get(key))
            rpc_params = []
            sign_params = []
            for param in list(sign.parameters.items())[1:]:
+7 −11
Original line number Diff line number Diff line
from django.core.management.base import BaseCommand, CommandError
from rpc import methods
from inspect import getmembers, isfunction, signature
from inspect import signature
from rpc.views import _get_rpc_methods

all_methods = _get_rpc_methods()

TPL = '''
@_rpc_groups({})
@@ -20,13 +21,8 @@ def jama_{}{}:

class Command(BaseCommand):
    def handle(self, *args, **options):
        signatures = {}
        for fn_name, _ in getmembers(methods, isfunction):
            signatures[fn_name] = getattr(methods, fn_name)
        for key in sorted(signatures.keys()):
            if key[0:1] == "_":
                continue
            sign = signature(getattr(methods, key))
        for key in sorted(all_methods.keys()):
            sign = signature(all_methods.get(key))
            keep_params = []
            for param in list(sign.parameters.items())[1:]:
                keep_params.append(param[0])
@@ -37,10 +33,10 @@ class Command(BaseCommand):
            )
            print(
                TPL.format(
                    getattr(methods, key).rpc_groups,
                    all_methods.get(key).rpc_groups,
                    key,
                    shortened_signature,
                    getattr(methods, key).__doc__.strip(),
                    all_methods.get(key).__doc__.strip(),
                    key,
                    ", ".join(keep_params),
                )
+1 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ from inspect import signature as _signature
from functools import wraps as _wraps
from rpc.const import *
import logging
import sys

logger = logging.getLogger(__name__)

Loading