@@ -1,26 +1,28 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) 2001-2022 , Python Software Foundation # Copyright (C) 2001-2023 , Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # #, fuzzy # Translators: # Matt Wang <mattwang44@gmail.com>, 2023 msgid "" msgstr "" "Project-Id-Version: Python 3.11\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-02-15 00:17+0000\n" "PO-Revision-Date:YEAR-MO-DA HO:MI+ZONE \n" "Last-Translator:FULL NAME <EMAIL@ADDRESS >\n" "PO-Revision-Date:2023-01-04 16:35+0800 \n" "Last-Translator:Matt Wang <mattwang44@gmail.com >\n" "Language-Team: Chinese - TAIWAN (https://github.com/python/python-docs-zh-" "tw)\n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 3.2.2\n" #: ../../library/graphlib.rst:2 msgid ":mod:`graphlib` --- Functionality to operate with graph-like structures" msgstr "" msgstr ":mod:`graphlib` —-- 使用類圖 (graph-like) 結構進行操作的功能 " #: ../../library/graphlib.rst:8 msgid "**Source code:** :source:`Lib/graphlib.py`" Expand All @@ -31,6 +33,8 @@ msgid "" "Provides functionality to topologically sort a graph of :term:`hashable` " "nodes." msgstr "" "提供對包含\\ :term:`可雜湊 (hashable) <hashable>` 節點之圖 (graph) 進行拓撲排序 (topologically " "sort) 的功能。" #: ../../library/graphlib.rst:22 msgid "" Expand All @@ -43,6 +47,12 @@ msgid "" "topological ordering is possible if and only if the graph has no directed " "cycles, that is, if it is a directed acyclic graph." msgstr "" "拓撲排序是圖中頂點 (vertex) 的線性排序,使得對於從頂點 u 到頂點 v 的每條有向" "邊 (directed edge) u -> v,頂點 u 在排序中會位於頂點 v 之前。例如,圖的頂點可" "能代表要執行的任務,而邊可能代表一個任務必須在另一個任務之前執行的限制;在此" "範例中,拓撲排序只是任務的一種有效序列。若且唯若 (if and only if) 圖沒有有向" "環 (directed cycle) 時,即如果它是個有向無環圖 (directed acyclic graph),則完" "整的拓撲排序才是可行的。" #: ../../library/graphlib.rst:31 msgid "" Expand All @@ -52,58 +62,73 @@ msgid "" "nodes that have edges that point to the value in the key). Additional nodes " "can be added to the graph using the :meth:`~TopologicalSorter.add` method." msgstr "" "如果提供了可選的 *graph* 引數,它必須是表示有向無環圖的字典,其中鍵是節點,值" "是圖中該節點的包含所有前驅節點 (predecessor) 之可疊代物件(這些前驅節點具有指" "向以鍵表示之節點的邊)。可以使用 :meth:`~TopologicalSorter.add` 方法將其他節" "點新增到圖中。" #: ../../library/graphlib.rst:37 msgid "" "In the general case, the steps required to perform the sorting of a given " "graph are as follows:" msgstr "" msgstr "在一般情況下,對給定的圖執行排序所需的步驟如下: " #: ../../library/graphlib.rst:40 msgid "" "Create an instance of the :class:`TopologicalSorter` with an optional " "initial graph." msgstr "" msgstr "以選用的初始圖建立 :class:`TopologicalSorter` 的實例。 " #: ../../library/graphlib.rst:42 msgid "Add additional nodes to the graph." msgstr "" msgstr "在圖中新增其他節點。 " #: ../../library/graphlib.rst:43 msgid "Call :meth:`~TopologicalSorter.prepare` on the graph." msgstr "" msgstr "呼叫圖的 :meth:`~TopologicalSorter.prepare`。 " #: ../../library/graphlib.rst:44 msgid "" "While :meth:`~TopologicalSorter.is_active` is ``True``, iterate over the " "nodes returned by :meth:`~TopologicalSorter.get_ready` and process them. " "Call :meth:`~TopologicalSorter.done` on each node as it finishes processing." msgstr "" "當 :meth:`~TopologicalSorter.is_active` 為 ``True`` 時,疊代 :meth:" "`~TopologicalSorter.get_ready` 回傳的節點並處理它們。在每個節點完成處理時呼" "叫 :meth:`~TopologicalSorter.done`。" #: ../../library/graphlib.rst:49 msgid "" "In case just an immediate sorting of the nodes in the graph is required and " "no parallelism is involved, the convenience method :meth:`TopologicalSorter." "static_order` can be used directly:" msgstr "" "如果只需要立即對圖中的節點進行排序且不涉及平行性 (parallelism),則可以直接使" "用便捷方法 :meth:`TopologicalSorter.static_order`:" #: ../../library/graphlib.rst:60 msgid "" "The class is designed to easily support parallel processing of the nodes as " "they become ready. For instance::" msgstr "" "該類別設計為在節點準備就緒時,簡單支援節點的平行處理。例如:\n" "\n" "::" #: ../../library/graphlib.rst:87 msgid "" "Add a new node and its predecessors to the graph. Both the *node* and all " "elements in *predecessors* must be :term:`hashable`." msgstr "" "向圖中新增新節點及其前驅節點。*node* 和 *predecessors* 中的所有元素都必須是\\ :term:`可雜湊 <hashable>`\\ " "的。" #: ../../library/graphlib.rst:90 msgid "" "If called multiple times with the same node argument, the set of " "dependencies will be the union of all dependencies passed in." msgstr "" "如果以相同節點引數多次呼叫,則依賴項的集合將會是傳入的所有依賴項的聯集。" #: ../../library/graphlib.rst:93 msgid "" Expand All @@ -112,11 +137,16 @@ msgid "" "provided before is included among *predecessors* it will be automatically " "added to the graph with no predecessors of its own." msgstr "" "可以新增一個沒有依賴關係的節點(*predecessors* 未提供)或提供兩次依賴關係。如" "果有之前未曾提供的節點被包含在 *predecessors* 中,它將自動新增到沒有前驅節點" "的圖中。" #: ../../library/graphlib.rst:98 msgid "" "Raises :exc:`ValueError` if called after :meth:`~TopologicalSorter.prepare`." msgstr "" "如果在 :meth:`~TopologicalSorter.prepare` 之後呼叫,則引發 :exc:" "`ValueError`。" #: ../../library/graphlib.rst:102 msgid "" Expand All @@ -127,6 +157,10 @@ msgid "" "be modified, and therefore no more nodes can be added using :meth:" "`~TopologicalSorter.add`." msgstr "" "將圖標記為已完成並檢查圖中的循環。如果檢測到任何循環,將引發 :exc:" "`CycleError`,但 :meth:`~TopologicalSorter.get_ready` 仍可用於盡可能獲得更多" "的節點,直到循環阻塞了進度。呼叫此函式後就無法修改圖,因此無法使用 :meth:" "`~TopologicalSorter.add` 來新增更多節點。" #: ../../library/graphlib.rst:111 msgid "" Expand All @@ -137,29 +171,44 @@ msgid "" "`TopologicalSorter.done` is less than the number that have been returned by :" "meth:`TopologicalSorter.get_ready`." msgstr "" "如果可以有更多進度則回傳 ``True``,否則回傳 ``False``。如果循環不阻塞解析 " "(resolution) 並且仍有節點準備就緒但尚未由 :meth:`TopologicalSorter." "get_ready` 回傳或標記為 :meth:`TopologicalSorter.done` 的節點數量較 :meth:" "`TopologicalSorter.get_ready` 所回傳的少,則可以繼續取得進度。" #: ../../library/graphlib.rst:118 msgid "" "The :meth:`~TopologicalSorter.__bool__` method of this class defers to this " "function, so instead of::" msgstr "" "此類別的 :meth:`~TopologicalSorter.__bool__` 方法遵循此函式,因此以下做法:\n" "\n" "::" #: ../../library/graphlib.rst:124 msgid "it is possible to simply do::" msgstr "" "可以簡單地用以下方式替換:\n" "\n" "::" #: ../../library/graphlib.rst:129 ../../library/graphlib.rst:152 msgid "" "Raises :exc:`ValueError` if called without calling :meth:`~TopologicalSorter." "prepare` previously." msgstr "" "如果呼叫之前沒有先呼叫 :meth:`~TopologicalSorter.prepare` 則引發 :exc:" "`ValueError`。" #: ../../library/graphlib.rst:134 msgid "" "Marks a set of nodes returned by :meth:`TopologicalSorter.get_ready` as " "processed, unblocking any successor of each node in *nodes* for being " "returned in the future by a call to :meth:`TopologicalSorter.get_ready`." msgstr "" "將 :meth:`TopologicalSorter.get_ready` 回傳的一組節點標記為已處理,停止阻塞 " "*nodes* 中每個節點的任何後繼節點 (successor),以便將來通過呼叫 :meth:" "`TopologicalSorter.get_ready` 回傳。" #: ../../library/graphlib.rst:138 msgid "" Expand All @@ -169,6 +218,10 @@ msgid "" "meth:`~TopologicalSorter.prepare` or if node has not yet been returned by :" "meth:`~TopologicalSorter.get_ready`." msgstr "" "若沒有和該呼叫一起呼叫 :meth:`~TopologicalSorter.prepare` 或節點還沒有被 :" "meth:`~TopologicalSorter.get_ready` 回傳,且如果 *nodes* 中有任何節點已被先前" "對此方法的呼叫標記為已處理、或者未使用 :meth:`TopologicalSorter.add` 將節點新" "增到圖中,則引發 :exc:`ValueError`。" #: ../../library/graphlib.rst:146 msgid "" Expand All @@ -178,6 +231,10 @@ msgid "" "nodes that have all their predecessors already processed. Once no more " "progress can be made, empty tuples are returned." msgstr "" "回傳一個包含所有準備就緒節點的 ``tuple``。最初它回傳沒有前驅節點的所有節點," "一旦通過呼叫 :meth:`TopologicalSorter.done` 來將這些節點標記為已處理後,進一" "步的呼叫將回傳所有其全部前驅節點都已被處理的新節點。若無法取得更多進度,將回" "傳空 tuple。" #: ../../library/graphlib.rst:157 msgid "" Expand All @@ -186,12 +243,17 @@ msgid "" "`~TopologicalSorter.done` should not be called. This method is equivalent " "to::" msgstr "" "回傳一個可疊代物件,它將按拓撲排序疊代節點。使用此方法時,不應呼叫 :meth:" "`~TopologicalSorter.prepare` 和 :meth:`~TopologicalSorter.done`。此方法等效" "於:\n" "\n" "::" #: ../../library/graphlib.rst:169 msgid "" "The particular order that is returned may depend on the specific order in " "which the items were inserted in the graph. For example:" msgstr "" msgstr "回傳的特定順序可能取決於將項目插入圖中的特定順序。例如: " #: ../../library/graphlib.rst:186 msgid "" Expand All @@ -200,25 +262,31 @@ msgid "" "`~TopologicalSorter.get_ready`) and the order between them is determined by " "the order of insertion." msgstr "" "這是因為 \"0\" 和 \"2\" 在圖中處於同一級別(它們將在對 :meth:" "`~TopologicalSorter.get_ready` 的同一呼叫中回傳)並且它們之間的順序取決於插入" "順序。" #: ../../library/graphlib.rst:192 msgid "If any cycle is detected, :exc:`CycleError` will be raised." msgstr "" msgstr "如果檢測到任何循環,則引發 :exc:`CycleError`。 " #: ../../library/graphlib.rst:198 msgid "Exceptions" msgstr "例外" #: ../../library/graphlib.rst:199 msgid "The :mod:`graphlib` module defines the following exception classes:" msgstr "" msgstr ":mod:`graphlib` 模組定義了以下例外類別: " #: ../../library/graphlib.rst:203 msgid "" "Subclass of :exc:`ValueError` raised by :meth:`TopologicalSorter.prepare` if " "cycles exist in the working graph. If multiple cycles exist, only one " "undefined choice among them will be reported and included in the exception." msgstr "" ":exc:`ValueError` 的子類別,如果作用的圖中存在循環則由 :meth:" "`TopologicalSorter.prepare` 引發。如果存在多個循環,則只會報告未定義的其中一個" "並包含在例外中。" #: ../../library/graphlib.rst:207 msgid "" Expand All @@ -228,3 +296,7 @@ msgid "" "predecessor of the next node in the list. In the reported list, the first " "and the last node will be the same, to make it clear that it is cyclic." msgstr "" "檢測到的循環可以通過例外實例的 :attr:`~CycleError.args` 屬性中第二個元素來存" "取,其為一個節點列表,每個節點在圖中都是列表中下一個節點的直接前驅節點" "(immediate predecessor,即父節點)。在報告列表中,第一個和最後一個節點將會是" "相同的,用以明確表示它是循環的。"