1import{_ as n,c as r,a as t,b as e,d as o,e as p,w as s,r as c,o as d}from"./app-cR-NuifS.js";const u={};function a(g,l){const i=c("RouteLink");return d(),r("div",null,[l[6]||(l[6]=t('<h1 id="nonebot-utils" tabindex="-1">nonebot.utils</h1><p>æ¬æ¨¡åå
å«äº NoneBot çä¸äºå·¥å
·å½æ°</p><h2 id="escape-tag" tabindex="-1"><em>def</em> <code>escape_tag(s)</code></h2><ul><li><p><strong>说æ</strong></p><p>ç¨äºè®°å½å¸¦é¢è²æ¥å¿æ¶è½¬ä¹ <code><tag></code> ç±»åç¹æ®æ ç¾</p><p>åè: <a href="https://loguru.readthedocs.io/en/stable/api/logger.html#color" target="_blank" rel="noopener noreferrer">loguru color æ ç¾</a></p></li><li><p><strong>åæ°</strong></p><ul><li><code>s</code> (str): éè¦è½¬ä¹çå符串</li></ul></li><li><p><strong>è¿å</strong></p><ul><li>str</li></ul></li></ul><h2 id="deep-update" tabindex="-1"><em>def</em> <code>deep_update(mapping, *updating_mappings)</code></h2><ul><li><p><strong>说æ:</strong> æ·±åº¦æ´æ°åå¹¶åå
¸</p></li><li><p><strong>åæ°</strong></p><ul><li><p><code>mapping</code> (dict[K, Any])</p></li><li><p><code>*updating_mappings</code> (dict[K, Any])</p></li></ul></li><li><p><strong>è¿å</strong></p><ul><li>dict[K, Any]</li></ul></li></ul><h2 id="lenient-issubclass" tabindex="-1"><em>def</em> <code>lenient_issubclass(cls, class_or_tuple)</code></h2><ul><li><p><strong>说æ:</strong> æ£æ¥ cls æ¯å¦æ¯ class_or_tuple ä¸çä¸ä¸ªç±»åå类并忽ç¥ç±»åé误ã</p></li><li><p><strong>åæ°</strong></p><ul><li><p><code>cls</code> (Any)</p></li><li><p><code>class_or_tuple</code> (type[Any] | tuple[type[Any], ...])</p></li></ul></li><li><p><strong>è¿å</strong></p><ul><li>bool</li></ul></li></ul><h2 id="generic-check-issubclass" tabindex="-1"><em>def</em> <code>generic_check_issubclass(cls, class_or_tuple)</code></h2><ul><li><p><strong>说æ</strong></p><p>æ£æ¥ cls æ¯å¦æ¯ class_or_tuple ä¸çä¸ä¸ªç±»ååç±»ã</p><p>ç¹å«çï¼</p><ul><li>妿 cls æ¯ <code>typing.TypeVar</code> ç±»åï¼<br> å伿£æ¥å
¶ <code>__bound__</code> æ <code>__constraints__</code><br> æ¯å¦æ¯ class_or_tuple ä¸ä¸ä¸ªç±»åçåç±»æ Noneã</li><li>妿 cls æ¯ <code>typing.Union</code> æ <code>types.UnionType</code> ç±»åï¼<br> å伿£æ¥å
¶ä¸çææç±»åæ¯å¦æ¯ class_or_tuple ä¸ä¸ä¸ªç±»åçåç±»æ Noneã</li><li>妿 cls æ¯ <code>typing.Literal</code> ç±»åï¼<br> å伿£æ¥å
¶ä¸çææå¼æ¯å¦æ¯ class_or_tuple ä¸ä¸ä¸ªç±»åçå®ä¾ã</li><li>妿 cls æ¯ <code>typing.List</code>ã<code>typing.Dict</code> çæ³åç±»åï¼<br> å伿£æ¥å
¶åå§ç±»åæ¯å¦æ¯ class_or_tuple ä¸ä¸ä¸ªç±»åçåç±»ã</li></ul></li><li><p><strong>åæ°</strong></p><ul><li><p><code>cls</code> (Any)</p></li><li><p><code>class_or_tuple</code> (type[Any] | tuple[type[Any], ...])</p></li></ul></li><li><p><strong>è¿å</strong></p><ul><li>bool</li></ul></li></ul><h2 id="type-is-complex" tabindex="-1"><em>def</em> <code>type_is_complex(type_)</code></h2><ul><li><p><strong>说æ:</strong> æ£æ¥ type_ æ¯å¦æ¯å¤æç±»å</p></li><li><p><strong>åæ°</strong></p><ul><li><code>type_</code> (type[Any])</li></ul></li><li><p><strong>è¿å</strong></p><ul><li>bool</li></ul></li></ul><h2 id="is-coroutine-callable" tabindex="-1"><em>def</em> <code>is_coroutine_callable(call)</code></h2><ul><li><p><strong>说æ:</strong> æ£æ¥ call æ¯å¦æ¯ä¸ä¸ª callable åç¨å½æ°</p></li><li><p><strong>åæ°</strong></p><ul><li><code>call</code> ((...) -> Any)</li></ul></li><li><p><strong>è¿å</strong></p><ul><li>bool</li></ul></li></ul><h2 id="is-gen-callable" tabindex="-1"><em>def</em> <code>is_gen_callable(call)</code></h2><ul><li><p><strong>说æ:</strong> æ£æ¥ call æ¯å¦æ¯ä¸ä¸ªçæå¨å½æ°</p></li><li><p><strong>åæ°</strong></p><ul><li><code>call</code> ((...) -> Any)</li></ul></li><li><p><strong>è¿å</strong></p><ul><li>bool</li></ul></li></ul><h2 id="is-async-gen-callable" tabindex="-1"><em>def</em> <code>is_async_gen_callable(call)</code></h2><ul><li><p><strong>说æ:</strong> æ£æ¥ call æ¯å¦æ¯ä¸ä¸ªå¼æ¥çæå¨å½æ°</p></li><li><p><strong>åæ°</strong></p><ul><li><code>call</code> ((...) -> Any)</li></ul></li><li><p><strong>è¿å</strong></p><ul><li>bool</li></ul></li></ul><h2 id="run-sync" tabindex="-1"><em>def</em> <code>run_sync(call)</code></h2><ul><li><p><strong>说æ:</strong> ä¸ä¸ªç¨äºå
è£
sync function 为 async function çè£
饰å¨</p></li><li><p><strong>åæ°</strong></p><ul><li><code>call</code> ((P) -> R): 被è£
饰ç忥彿°</li></ul></li><li><p><strong>è¿å</strong></p><ul><li>(P) -> Coroutine[None, None, R]</li></ul></li></ul><h2 id="run-sync-ctx-manager" tabindex="-1"><em>def</em> <code>run_sync_ctx_manager(cm)</code></h2><ul><li><p><strong>说æ:</strong> ä¸ä¸ªç¨äºå
è£
sync context manager 为 async context manager çæ§è¡å½æ°</p></li><li><p><strong>åæ°</strong></p><ul><li><code>cm</code> (AbstractContextManager[T])</li></ul></li><li><p><strong>è¿å</strong></p><ul><li>AsyncGenerator[T, None]</li></ul></li></ul><h2 id="run-coro-with-catch" tabindex="-1"><em>async def</em> <code>run_coro_with_catch(coro, exc, return_on_err=None)</code></h2><ul><li><p><strong>说æ:</strong> è¿è¡åç¨å¹¶å½éå°æå®å¼å¸¸æ¶è¿åæå®å¼ã</p></li><li><p><strong>éè½½</strong></p><p><strong>1.</strong> <code>(coro, exc, return_on_err=None) -> T | None</code></p><ul><li><p><strong>åæ°</strong></p><ul><li><p><code>coro</code> (Coroutine[Any, Any, T])</p></li><li><p><code>exc</code> (tuple[type[Exception], ...])</p></li><li><p><code>return_on_err</code> (None)</p></li></ul></li><li><p><strong>è¿å</strong></p><ul><li>T | None</li></ul></li></ul><p><strong>2.</strong> <code>(coro, exc, return_on_err) -> T | R</code></p><ul><li><p><strong>åæ°</strong></p><ul><li><p><code>coro</code> (Coroutine[Any, Any, T])</p></li><li><p><code>exc</code> (tuple[type[Exception], ...])</p></li><li><p><code>return_on_err</code> (R)</p></li></ul></li><li><p><strong>è¿å</strong></p><ul><li>T | R</li></ul></li></ul></li><li><p><strong>åæ°</strong></p><ul><li><p><code>coro</code>: è¦è¿è¡çåç¨</p></li><li><p><code>exc</code>: è¦æè·çå¼å¸¸</p></li><li><p><code>return_on_err</code>: å½åçå¼å¸¸æ¶è¿åçå¼</p></li></ul></li><li><p><strong>è¿å</strong></p><p>åç¨çè¿å弿åçå¼å¸¸æ¶çæå®å¼</p></li></ul><h2 id="run-coro-with-shield" tabindex="-1"><em>async def</em> <code>
1run_coro_with_shield(coro)</code></h2><ul><li><p><strong>说æ:</strong> è¿è¡åç¨å¹¶å¨åæ¶æ¶å±è½åæ¶å¼å¸¸ã</p></li><li><p><strong>åæ°</strong></p><ul><li><code>coro</code> (Coroutine[Any, Any, T]): è¦è¿è¡çåç¨</li></ul></li><li><p><strong>è¿å</strong></p><ul><li>T: åç¨çè¿åå¼</li></ul></li></ul><h2 id="flatten-exception-group" tabindex="-1"><em>def</em> <code>flatten_exception_group(exc_group)</code></h2><ul><li><p><strong>åæ°</strong></p><ul><li><code>exc_group</code> (BaseExceptionGroup[E])</li></ul></li><li><p><strong>è¿å</strong></p><ul><li>Generator[E, None, None]</li></ul></li></ul><h2 id="get-name" tabindex="-1"><em>def</em> <code>get_name(obj)</code></h2><ul><li><p><strong>说æ:</strong> è·å对象çåç§°</p></li><li><p><strong>åæ°</strong></p><ul><li><code>obj</code> (Any)</li></ul></li><li><p><strong>è¿å</strong></p><ul><li>str</li></ul></li></ul><h2 id="path-to-module-name" tabindex="-1"><em>def</em> <code>path_to_module_name(path)</code></h2><ul><li><p><strong>说æ:</strong> 转æ¢è·¯å¾ä¸ºæ¨¡åå</p></li><li><p><strong>åæ°</strong></p><ul><li><code>path</code> (Path)</li></ul></li><li><p><strong>è¿å</strong></p><ul><li>str</li></ul></li></ul><h2 id="resolve-dot-notation" tabindex="-1"><em>def</em> <code>resolve_dot_notation(obj_str, default_attr, default_prefix=None)</code></h2><ul><li><p><strong>说æ:</strong> è§£æå¹¶å¯¼å
¥ç¹å表示æ³ç对象</p></li><li><p><strong>åæ°</strong></p><ul><li><p><code>obj_str</code> (str)</p></li><li><p><code>default_attr</code> (str)</p></li><li><p><code>default_prefix</code> (str | None)</p></li></ul></li><li><p><strong>è¿å</strong></p><ul><li>Any</li></ul></li></ul><h2 id="classproperty" tabindex="-1"><em>class</em> <code>classproperty(func)</code></h2><ul><li><p><strong>说æ:</strong> ç±»å±æ§è£
饰å¨</p></li><li><p><strong>åæ°</strong></p><ul><li><code>func</code> ((Any) -> T)</li></ul></li></ul><h2 id="DataclassEncoder" tabindex="-1"><em>class</em> <code>DataclassEncoder(<auto>)</code></h2>',37)),e("ul",null,[e("li",null,[e("p",null,[l[1]||(l[1]=e("strong",null,"说æ:",-1)),l[2]||(l[2]=o(" å¯ä»¥åºåå ",-1)),p(i,{to:"/version-2.4.3/api/adapters/#Message"},{default:s(()=>[...l[0]||(l[0]=[o("Message",-1)])]),_:1}),l[3]||(l[3]=o("(List[Dataclass]) ç ",-1)),l[4]||(l[4]=e("code",null,"JSONEncoder",-1))])]),l[5]||(l[5]=e("li",null,[e("p",null,[e("strong",null,"åæ°")]),e("p",null,"auto")],-1))]),l[7]||(l[7]=t('<h3 id="DataclassEncoder-default" tabindex="-1"><em>method</em> <code>default(o)</code></h3><ul><li><p><strong>åæ°</strong></p><ul><li><code>o</code></li></ul></li><li><p><strong>è¿å</strong></p><ul><li>untyped</li></ul></li></ul><h2 id="logger-wrapper" tabindex="-1"><em>def</em> <code>logger_wrapper(logger_name)</code></h2><ul><li><p><strong>说æ:</strong> ç¨äºæå° adapter çæ¥å¿ã</p></li><li><p><strong>åæ°</strong></p><ul><li><code>logger_name</code> (str): adapter çåç§°</li></ul></li><li><p><strong>è¿å</strong></p><ul><li><p>untyped: æ¥å¿è®°å½å½æ°</p><p>æ¥å¿è®°å½å½æ°çåæ°:</p><ul><li>level: æ¥å¿ç级</li><li>message: æ¥å¿ä¿¡æ¯</li><li>exception: å¼å¸¸ä¿¡æ¯</li></ul></li></ul></li></ul>',4))])}const _=n(u,[["render",a]]),h=JSON.parse('{"path":"/version-2.4.3/api/utils.html","title":"nonebot.utils","lang":"zh-CN","frontmatter":{"mdx":{"format":"md"},"sidebar_position":8,"description":"nonebot.utils 模å","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"nonebot.utils\\",\\"image\\":[\\"\\"],\\"dateModified\\":null,\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://LincDocs.github.io/nonebot2/version-2.4.3/api/utils.html"}],["meta",{"property":"og:site_name","content":"nonebot2"}],["meta",{"property":"og:title","content":"nonebot.utils"}],["meta",{"property":"og:description","content":"nonebot.utils 模å"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}]]},"git":{},"readingTime":{"minutes":2.96,"words":887},"filePathRelative":"version-2.4.3/api/utils.md","excerpt":"\\n<p>æ¬æ¨¡åå
å«äº NoneBot çä¸äºå·¥å
·å½æ°</p>\\n<h2><em>def</em> <code>escape_tag(s)</code></h2>\\n<ul>\\n<li>\\n<p><strong>说æ</strong></p>\\n<p>ç¨äºè®°å½å¸¦é¢è²æ¥å¿æ¶è½¬ä¹ <code><tag></code> ç±»åç¹æ®æ ç¾</p>\\n<p>åè: <a href=\\"https://loguru.readthedocs.io/en/stable/api/logger.html#color\\" target=\\"_blank\\" rel=\\"noopener noreferrer\\">loguru color æ ç¾</a></p>\\n</li>\\n<li>\\n<p><strong>åæ°</strong></p>\\n<ul>\\n<li><code>s</code> (str): éè¦è½¬ä¹çå符串</li>\\n</ul>\\n</li>\\n<li>\\n<p><strong>è¿å</strong></p>\\n<ul>\\n<li>str</li>\\n</ul>\\n</li>\\n</ul>","bioChainData":{"outlink":[{"title":"index","link":"version-2.4.3/api/adapter
1s/index.html"}],"backlink":[],"localMap":{"nodes":[{"id":"version-2.4.3/api/utils.md","value":{"title":"utils","path":"version-2.4.3/api/utils.md","outlink":["version-2.4.3/api/adapters/index.md"],"backlink":[]}},{"id":"version-2.4.3/api/adapters/index.md","value":{"title":"index","path":"version-2.4.3/api/adapters/index.md","outlink":[],"backlink":[]}}],"links":[{"source":"version-2.4.3/api/utils.md","target":"version-2.4.3/api/adapters/index.md"}]}}}');export{_ as comp,h as data};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.