mirror of
https://github.com/django-components/django-components.git
synced 2025-08-08 08:17:59 +00:00
Deployed aaeba99
to 0.119 with MkDocs 1.6.1 and mike 2.1.3
This commit is contained in:
parent
9632cec13d
commit
969b7cb481
159 changed files with 11829 additions and 3 deletions
49
0.119/scripts/mkdocs_util.py
Normal file
49
0.119/scripts/mkdocs_util.py
Normal file
|
@ -0,0 +1,49 @@
|
|||
"""Utilities for interacting with MkDocs configuration."""
|
||||
|
||||
from functools import lru_cache
|
||||
from importlib import import_module
|
||||
from pathlib import Path
|
||||
from typing import Dict, List, Optional, Union
|
||||
|
||||
import griffe
|
||||
import yaml # type: ignore[import-untyped]
|
||||
|
||||
|
||||
@lru_cache()
|
||||
def load_config() -> Dict:
|
||||
mkdocs_config_str = Path("mkdocs.yml").read_text()
|
||||
# NOTE: Use BaseLoader to avoid resolving tags like `!ENV`
|
||||
# See https://stackoverflow.com/questions/45966633/yaml-error-could-not-determine-a-constructor-for-the-tag
|
||||
mkdocs_config = yaml.load(mkdocs_config_str, yaml.BaseLoader)
|
||||
return mkdocs_config
|
||||
|
||||
|
||||
@lru_cache()
|
||||
def find_plugin(name: str) -> Optional[Dict]:
|
||||
config = load_config()
|
||||
plugins: List[Union[str, Dict[str, Dict]]] = config.get("plugins", [])
|
||||
if not plugins:
|
||||
return None
|
||||
|
||||
for plugin in plugins:
|
||||
if isinstance(plugin, str):
|
||||
plugin = {plugin: {}}
|
||||
plugin_name, plugin_conf = list(plugin.items())[0]
|
||||
if plugin_name == name:
|
||||
return plugin_conf
|
||||
|
||||
return None
|
||||
|
||||
|
||||
def get_mkdocstrings_plugin_handler_options() -> Optional[Dict]:
|
||||
plugin = find_plugin("mkdocstrings")
|
||||
if plugin is None:
|
||||
return None
|
||||
|
||||
return plugin.get("handlers", {}).get("python", {}).get("options", {})
|
||||
|
||||
|
||||
def import_object(obj: griffe.Object):
|
||||
module = import_module(obj.module.path)
|
||||
runtime_obj = getattr(module, obj.name)
|
||||
return runtime_obj
|
Loading…
Add table
Add a link
Reference in a new issue