MCPcopy Index your code
hub / github.com/hugapi/hug / API

Class API

hug/api.py:509–642  ·  view source on GitHub ↗

Stores the information necessary to expose API calls within this module externally

Source from the content-addressed store, hash-verified

507
508
509class API(object, metaclass=ModuleSingleton):
510 """Stores the information necessary to expose API calls within this module externally"""
511
512 __slots__ = (
513 "module",
514 "_directives",
515 "_http",
516 "_cli",
517 "_context",
518 "_context_factory",
519 "_delete_context",
520 "_startup_handlers",
521 "started",
522 "name",
523 "doc",
524 "future",
525 "cli_error_exit_codes",
526 )
527
528 def __init__(self, module=None, name="", doc="", cli_error_exit_codes=False, future=False):
529 self.module = module
530 if module:
531 self.name = name or module.__name__ or ""
532 self.doc = doc or module.__doc__ or ""
533 else:
534 self.name = name
535 self.doc = doc
536 self.started = False
537 self.cli_error_exit_codes = cli_error_exit_codes
538 self.future = future
539
540 def directives(self):
541 """Returns all directives applicable to this Hug API"""
542 directive_sources = chain(
543 hug.defaults.directives.items(), getattr(self, "_directives", {}).items()
544 )
545 return {
546 "hug_" + directive_name: directive for directive_name, directive in directive_sources
547 }
548
549 def directive(self, name, default=None):
550 """Returns the loaded directive with the specified name, or default if passed name is not present"""
551 return getattr(self, "_directives", {}).get(
552 name, hug.defaults.directives.get(name, default)
553 )
554
555 def add_directive(self, directive):
556 self._directives = getattr(self, "_directives", {})
557 self._directives[directive.__name__] = directive
558
559 def handlers(self):
560 """Returns all registered handlers attached to this API"""
561 if getattr(self, "_http", None):
562 yield from self.http.handlers()
563 if getattr(self, "_cli", None):
564 yield from self.cli.handlers()
565
566 @property

Callers 7

callFunction · 0.90
cliFunction · 0.90
__init__Method · 0.90
_start_apiFunction · 0.90
hugFunction · 0.90
extendMethod · 0.70
from_objectFunction · 0.70

Calls

no outgoing calls

Tested by 2

callFunction · 0.72
cliFunction · 0.72