deploy: 93565681e1
This commit is contained in:
+96
-96
@@ -242,12 +242,7 @@ responsibility of downstream applications.</p>
|
||||
|
||||
<details class="mkdocstrings-source">
|
||||
<summary>Source code in <code>mt5cli/sdk.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-414">414</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-415">415</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-416">416</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-417">417</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-418">418</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-419">419</a></span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-419">419</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-420">420</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-421">421</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-422">422</a></span>
|
||||
@@ -277,42 +272,47 @@ responsibility of downstream applications.</p>
|
||||
<span class="normal"><a href="#__codelineno-0-446">446</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-447">447</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-448">448</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-449">449</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-414" name="__codelineno-0-414"></a><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span>
|
||||
<a id="__codelineno-0-415" name="__codelineno-0-415"></a> <span class="bp">self</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-416" name="__codelineno-0-416"></a> <span class="o">*</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-417" name="__codelineno-0-417"></a> <span class="n">path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-418" name="__codelineno-0-418"></a> <span class="n">login</span><span class="p">:</span> <span class="nb">int</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-419" name="__codelineno-0-419"></a> <span class="n">password</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-420" name="__codelineno-0-420"></a> <span class="n">server</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-421" name="__codelineno-0-421"></a> <span class="n">timeout</span><span class="p">:</span> <span class="nb">int</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-422" name="__codelineno-0-422"></a> <span class="n">retry_count</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">3</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-423" name="__codelineno-0-423"></a> <span class="n">config</span><span class="p">:</span> <span class="n">Mt5Config</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-424" name="__codelineno-0-424"></a> <span class="n">client</span><span class="p">:</span> <span class="n">Mt5DataClient</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-425" name="__codelineno-0-425"></a><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-426" name="__codelineno-0-426"></a><span class="w"> </span><span class="sd">"""Initialize the SDK client.</span>
|
||||
<a id="__codelineno-0-427" name="__codelineno-0-427"></a>
|
||||
<a id="__codelineno-0-428" name="__codelineno-0-428"></a><span class="sd"> Args:</span>
|
||||
<a id="__codelineno-0-429" name="__codelineno-0-429"></a><span class="sd"> path: Path to MetaTrader5 terminal EXE file.</span>
|
||||
<a id="__codelineno-0-430" name="__codelineno-0-430"></a><span class="sd"> login: Trading account login.</span>
|
||||
<a id="__codelineno-0-431" name="__codelineno-0-431"></a><span class="sd"> password: Trading account password.</span>
|
||||
<a id="__codelineno-0-432" name="__codelineno-0-432"></a><span class="sd"> server: Trading server name.</span>
|
||||
<a id="__codelineno-0-433" name="__codelineno-0-433"></a><span class="sd"> timeout: Connection timeout in milliseconds.</span>
|
||||
<a id="__codelineno-0-434" name="__codelineno-0-434"></a><span class="sd"> retry_count: Number of MT5 initialization retries for sessions</span>
|
||||
<a id="__codelineno-0-435" name="__codelineno-0-435"></a><span class="sd"> opened by this client.</span>
|
||||
<a id="__codelineno-0-436" name="__codelineno-0-436"></a><span class="sd"> config: Optional pre-built ``Mt5Config`` (overrides other args).</span>
|
||||
<a id="__codelineno-0-437" name="__codelineno-0-437"></a><span class="sd"> client: Optional already-connected ``Mt5DataClient``. Injected</span>
|
||||
<a id="__codelineno-0-438" name="__codelineno-0-438"></a><span class="sd"> clients are reused as-is and are not initialized or shut down.</span>
|
||||
<a id="__codelineno-0-439" name="__codelineno-0-439"></a><span class="sd"> """</span>
|
||||
<a id="__codelineno-0-440" name="__codelineno-0-440"></a> <span class="bp">self</span><span class="o">.</span><span class="n">_config</span> <span class="o">=</span> <span class="n">config</span> <span class="ow">or</span> <span class="n">build_config</span><span class="p">(</span>
|
||||
<a id="__codelineno-0-441" name="__codelineno-0-441"></a> <span class="n">path</span><span class="o">=</span><span class="n">path</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-442" name="__codelineno-0-442"></a> <span class="n">login</span><span class="o">=</span><span class="n">login</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-443" name="__codelineno-0-443"></a> <span class="n">password</span><span class="o">=</span><span class="n">password</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-444" name="__codelineno-0-444"></a> <span class="n">server</span><span class="o">=</span><span class="n">server</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-445" name="__codelineno-0-445"></a> <span class="n">timeout</span><span class="o">=</span><span class="n">timeout</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-446" name="__codelineno-0-446"></a> <span class="p">)</span>
|
||||
<a id="__codelineno-0-447" name="__codelineno-0-447"></a> <span class="bp">self</span><span class="o">.</span><span class="n">_retry_count</span> <span class="o">=</span> <span class="n">retry_count</span>
|
||||
<a id="__codelineno-0-448" name="__codelineno-0-448"></a> <span class="bp">self</span><span class="o">.</span><span class="n">_client</span> <span class="o">=</span> <span class="n">client</span>
|
||||
<a id="__codelineno-0-449" name="__codelineno-0-449"></a> <span class="bp">self</span><span class="o">.</span><span class="n">_owns_client</span> <span class="o">=</span> <span class="n">client</span> <span class="ow">is</span> <span class="kc">None</span>
|
||||
<span class="normal"><a href="#__codelineno-0-449">449</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-450">450</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-451">451</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-452">452</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-453">453</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-454">454</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-419" name="__codelineno-0-419"></a><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span>
|
||||
<a id="__codelineno-0-420" name="__codelineno-0-420"></a> <span class="bp">self</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-421" name="__codelineno-0-421"></a> <span class="o">*</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-422" name="__codelineno-0-422"></a> <span class="n">path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-423" name="__codelineno-0-423"></a> <span class="n">login</span><span class="p">:</span> <span class="nb">int</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-424" name="__codelineno-0-424"></a> <span class="n">password</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-425" name="__codelineno-0-425"></a> <span class="n">server</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-426" name="__codelineno-0-426"></a> <span class="n">timeout</span><span class="p">:</span> <span class="nb">int</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-427" name="__codelineno-0-427"></a> <span class="n">retry_count</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">3</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-428" name="__codelineno-0-428"></a> <span class="n">config</span><span class="p">:</span> <span class="n">Mt5Config</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-429" name="__codelineno-0-429"></a> <span class="n">client</span><span class="p">:</span> <span class="n">Mt5DataClient</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-430" name="__codelineno-0-430"></a><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-431" name="__codelineno-0-431"></a><span class="w"> </span><span class="sd">"""Initialize the SDK client.</span>
|
||||
<a id="__codelineno-0-432" name="__codelineno-0-432"></a>
|
||||
<a id="__codelineno-0-433" name="__codelineno-0-433"></a><span class="sd"> Args:</span>
|
||||
<a id="__codelineno-0-434" name="__codelineno-0-434"></a><span class="sd"> path: Path to MetaTrader5 terminal EXE file.</span>
|
||||
<a id="__codelineno-0-435" name="__codelineno-0-435"></a><span class="sd"> login: Trading account login.</span>
|
||||
<a id="__codelineno-0-436" name="__codelineno-0-436"></a><span class="sd"> password: Trading account password.</span>
|
||||
<a id="__codelineno-0-437" name="__codelineno-0-437"></a><span class="sd"> server: Trading server name.</span>
|
||||
<a id="__codelineno-0-438" name="__codelineno-0-438"></a><span class="sd"> timeout: Connection timeout in milliseconds.</span>
|
||||
<a id="__codelineno-0-439" name="__codelineno-0-439"></a><span class="sd"> retry_count: Number of MT5 initialization retries for sessions</span>
|
||||
<a id="__codelineno-0-440" name="__codelineno-0-440"></a><span class="sd"> opened by this client.</span>
|
||||
<a id="__codelineno-0-441" name="__codelineno-0-441"></a><span class="sd"> config: Optional pre-built ``Mt5Config`` (overrides other args).</span>
|
||||
<a id="__codelineno-0-442" name="__codelineno-0-442"></a><span class="sd"> client: Optional already-connected ``Mt5DataClient``. Injected</span>
|
||||
<a id="__codelineno-0-443" name="__codelineno-0-443"></a><span class="sd"> clients are reused as-is and are not initialized or shut down.</span>
|
||||
<a id="__codelineno-0-444" name="__codelineno-0-444"></a><span class="sd"> """</span>
|
||||
<a id="__codelineno-0-445" name="__codelineno-0-445"></a> <span class="bp">self</span><span class="o">.</span><span class="n">_config</span> <span class="o">=</span> <span class="n">config</span> <span class="ow">or</span> <span class="n">build_config</span><span class="p">(</span>
|
||||
<a id="__codelineno-0-446" name="__codelineno-0-446"></a> <span class="n">path</span><span class="o">=</span><span class="n">path</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-447" name="__codelineno-0-447"></a> <span class="n">login</span><span class="o">=</span><span class="n">login</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-448" name="__codelineno-0-448"></a> <span class="n">password</span><span class="o">=</span><span class="n">password</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-449" name="__codelineno-0-449"></a> <span class="n">server</span><span class="o">=</span><span class="n">server</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-450" name="__codelineno-0-450"></a> <span class="n">timeout</span><span class="o">=</span><span class="n">timeout</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-451" name="__codelineno-0-451"></a> <span class="p">)</span>
|
||||
<a id="__codelineno-0-452" name="__codelineno-0-452"></a> <span class="bp">self</span><span class="o">.</span><span class="n">_retry_count</span> <span class="o">=</span> <span class="n">retry_count</span>
|
||||
<a id="__codelineno-0-453" name="__codelineno-0-453"></a> <span class="bp">self</span><span class="o">.</span><span class="n">_client</span> <span class="o">=</span> <span class="n">client</span>
|
||||
<a id="__codelineno-0-454" name="__codelineno-0-454"></a> <span class="bp">self</span><span class="o">.</span><span class="n">_owns_client</span> <span class="o">=</span> <span class="n">client</span> <span class="ow">is</span> <span class="kc">None</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
||||
@@ -789,12 +789,7 @@ to <code>path</code>, <code>login</code>, <code>password</code>, and <code>serve
|
||||
|
||||
<details class="mkdocstrings-source">
|
||||
<summary>Source code in <code>mt5cli/sdk.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-306">306</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-307">307</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-308">308</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-309">309</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-310">310</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-311">311</a></span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-311">311</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-312">312</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-313">313</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-314">314</a></span>
|
||||
@@ -836,54 +831,59 @@ to <code>path</code>, <code>login</code>, <code>password</code>, and <code>serve
|
||||
<span class="normal"><a href="#__codelineno-0-350">350</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-351">351</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-352">352</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-353">353</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-306" name="__codelineno-0-306"></a><span class="k">def</span><span class="w"> </span><span class="nf">build_config</span><span class="p">(</span>
|
||||
<a id="__codelineno-0-307" name="__codelineno-0-307"></a> <span class="o">*</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-308" name="__codelineno-0-308"></a> <span class="n">path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-309" name="__codelineno-0-309"></a> <span class="n">login</span><span class="p">:</span> <span class="nb">int</span> <span class="o">|</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-310" name="__codelineno-0-310"></a> <span class="n">password</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-311" name="__codelineno-0-311"></a> <span class="n">server</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-312" name="__codelineno-0-312"></a> <span class="n">timeout</span><span class="p">:</span> <span class="nb">int</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-313" name="__codelineno-0-313"></a> <span class="n">allow_whole_dollar_env</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-314" name="__codelineno-0-314"></a><span class="p">)</span> <span class="o">-></span> <span class="n">Mt5Config</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-315" name="__codelineno-0-315"></a><span class="w"> </span><span class="sd">"""Build an ``Mt5Config`` from optional connection parameters.</span>
|
||||
<a id="__codelineno-0-316" name="__codelineno-0-316"></a>
|
||||
<a id="__codelineno-0-317" name="__codelineno-0-317"></a><span class="sd"> Args:</span>
|
||||
<a id="__codelineno-0-318" name="__codelineno-0-318"></a><span class="sd"> path: Optional terminal executable path.</span>
|
||||
<a id="__codelineno-0-319" name="__codelineno-0-319"></a><span class="sd"> login: Optional trading account login. Integers are preserved. String</span>
|
||||
<a id="__codelineno-0-320" name="__codelineno-0-320"></a><span class="sd"> values are coerced: empty or whitespace-only strings become</span>
|
||||
<a id="__codelineno-0-321" name="__codelineno-0-321"></a><span class="sd"> ``None``; numeric strings such as ``"12345"`` are converted to</span>
|
||||
<a id="__codelineno-0-322" name="__codelineno-0-322"></a><span class="sd"> ``int``; non-numeric strings raise ``ValueError``. When</span>
|
||||
<a id="__codelineno-0-323" name="__codelineno-0-323"></a><span class="sd"> ``allow_whole_dollar_env=True``, ``$ENV_NAME`` and</span>
|
||||
<a id="__codelineno-0-324" name="__codelineno-0-324"></a><span class="sd"> ``${ENV_NAME}`` placeholders are expanded before coercion.</span>
|
||||
<a id="__codelineno-0-325" name="__codelineno-0-325"></a><span class="sd"> password: Optional trading account password.</span>
|
||||
<a id="__codelineno-0-326" name="__codelineno-0-326"></a><span class="sd"> server: Optional trading server name.</span>
|
||||
<a id="__codelineno-0-327" name="__codelineno-0-327"></a><span class="sd"> timeout: Optional connection timeout in milliseconds.</span>
|
||||
<a id="__codelineno-0-328" name="__codelineno-0-328"></a><span class="sd"> allow_whole_dollar_env: When ``True``, string parameters that are</span>
|
||||
<a id="__codelineno-0-329" name="__codelineno-0-329"></a><span class="sd"> exactly ``$ENV_NAME`` are expanded from the environment. Applies</span>
|
||||
<a id="__codelineno-0-330" name="__codelineno-0-330"></a><span class="sd"> to ``path``, ``login``, ``password``, and ``server``. Default</span>
|
||||
<a id="__codelineno-0-331" name="__codelineno-0-331"></a><span class="sd"> ``False`` preserves existing behavior.</span>
|
||||
<a id="__codelineno-0-332" name="__codelineno-0-332"></a>
|
||||
<a id="__codelineno-0-333" name="__codelineno-0-333"></a><span class="sd"> Returns:</span>
|
||||
<a id="__codelineno-0-334" name="__codelineno-0-334"></a><span class="sd"> Configured ``Mt5Config`` instance.</span>
|
||||
<a id="__codelineno-0-335" name="__codelineno-0-335"></a><span class="sd"> """</span>
|
||||
<a id="__codelineno-0-336" name="__codelineno-0-336"></a> <span class="k">if</span> <span class="n">allow_whole_dollar_env</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-337" name="__codelineno-0-337"></a> <span class="k">if</span> <span class="n">path</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-338" name="__codelineno-0-338"></a> <span class="n">path</span> <span class="o">=</span> <span class="n">substitute_env_placeholders</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">allow_whole_dollar_env</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<a id="__codelineno-0-339" name="__codelineno-0-339"></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">login</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
|
||||
<a id="__codelineno-0-340" name="__codelineno-0-340"></a> <span class="n">login</span> <span class="o">=</span> <span class="n">substitute_env_placeholders</span><span class="p">(</span><span class="n">login</span><span class="p">,</span> <span class="n">allow_whole_dollar_env</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<a id="__codelineno-0-341" name="__codelineno-0-341"></a> <span class="k">if</span> <span class="n">password</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-342" name="__codelineno-0-342"></a> <span class="n">password</span> <span class="o">=</span> <span class="n">substitute_env_placeholders</span><span class="p">(</span>
|
||||
<a id="__codelineno-0-343" name="__codelineno-0-343"></a> <span class="n">password</span><span class="p">,</span> <span class="n">allow_whole_dollar_env</span><span class="o">=</span><span class="kc">True</span>
|
||||
<a id="__codelineno-0-344" name="__codelineno-0-344"></a> <span class="p">)</span>
|
||||
<a id="__codelineno-0-345" name="__codelineno-0-345"></a> <span class="k">if</span> <span class="n">server</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-346" name="__codelineno-0-346"></a> <span class="n">server</span> <span class="o">=</span> <span class="n">substitute_env_placeholders</span><span class="p">(</span><span class="n">server</span><span class="p">,</span> <span class="n">allow_whole_dollar_env</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<a id="__codelineno-0-347" name="__codelineno-0-347"></a> <span class="k">return</span> <span class="n">Mt5Config</span><span class="p">(</span>
|
||||
<a id="__codelineno-0-348" name="__codelineno-0-348"></a> <span class="n">path</span><span class="o">=</span><span class="n">path</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-349" name="__codelineno-0-349"></a> <span class="n">login</span><span class="o">=</span><span class="n">_coerce_login</span><span class="p">(</span><span class="n">login</span><span class="p">),</span>
|
||||
<a id="__codelineno-0-350" name="__codelineno-0-350"></a> <span class="n">password</span><span class="o">=</span><span class="n">password</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-351" name="__codelineno-0-351"></a> <span class="n">server</span><span class="o">=</span><span class="n">server</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-352" name="__codelineno-0-352"></a> <span class="n">timeout</span><span class="o">=</span><span class="n">timeout</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-353" name="__codelineno-0-353"></a> <span class="p">)</span>
|
||||
<span class="normal"><a href="#__codelineno-0-353">353</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-354">354</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-355">355</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-356">356</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-357">357</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-358">358</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-311" name="__codelineno-0-311"></a><span class="k">def</span><span class="w"> </span><span class="nf">build_config</span><span class="p">(</span>
|
||||
<a id="__codelineno-0-312" name="__codelineno-0-312"></a> <span class="o">*</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-313" name="__codelineno-0-313"></a> <span class="n">path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-314" name="__codelineno-0-314"></a> <span class="n">login</span><span class="p">:</span> <span class="nb">int</span> <span class="o">|</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-315" name="__codelineno-0-315"></a> <span class="n">password</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-316" name="__codelineno-0-316"></a> <span class="n">server</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-317" name="__codelineno-0-317"></a> <span class="n">timeout</span><span class="p">:</span> <span class="nb">int</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-318" name="__codelineno-0-318"></a> <span class="n">allow_whole_dollar_env</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-319" name="__codelineno-0-319"></a><span class="p">)</span> <span class="o">-></span> <span class="n">Mt5Config</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-320" name="__codelineno-0-320"></a><span class="w"> </span><span class="sd">"""Build an ``Mt5Config`` from optional connection parameters.</span>
|
||||
<a id="__codelineno-0-321" name="__codelineno-0-321"></a>
|
||||
<a id="__codelineno-0-322" name="__codelineno-0-322"></a><span class="sd"> Args:</span>
|
||||
<a id="__codelineno-0-323" name="__codelineno-0-323"></a><span class="sd"> path: Optional terminal executable path.</span>
|
||||
<a id="__codelineno-0-324" name="__codelineno-0-324"></a><span class="sd"> login: Optional trading account login. Integers are preserved. String</span>
|
||||
<a id="__codelineno-0-325" name="__codelineno-0-325"></a><span class="sd"> values are coerced: empty or whitespace-only strings become</span>
|
||||
<a id="__codelineno-0-326" name="__codelineno-0-326"></a><span class="sd"> ``None``; numeric strings such as ``"12345"`` are converted to</span>
|
||||
<a id="__codelineno-0-327" name="__codelineno-0-327"></a><span class="sd"> ``int``; non-numeric strings raise ``ValueError``. When</span>
|
||||
<a id="__codelineno-0-328" name="__codelineno-0-328"></a><span class="sd"> ``allow_whole_dollar_env=True``, ``$ENV_NAME`` and</span>
|
||||
<a id="__codelineno-0-329" name="__codelineno-0-329"></a><span class="sd"> ``${ENV_NAME}`` placeholders are expanded before coercion.</span>
|
||||
<a id="__codelineno-0-330" name="__codelineno-0-330"></a><span class="sd"> password: Optional trading account password.</span>
|
||||
<a id="__codelineno-0-331" name="__codelineno-0-331"></a><span class="sd"> server: Optional trading server name.</span>
|
||||
<a id="__codelineno-0-332" name="__codelineno-0-332"></a><span class="sd"> timeout: Optional connection timeout in milliseconds.</span>
|
||||
<a id="__codelineno-0-333" name="__codelineno-0-333"></a><span class="sd"> allow_whole_dollar_env: When ``True``, string parameters that are</span>
|
||||
<a id="__codelineno-0-334" name="__codelineno-0-334"></a><span class="sd"> exactly ``$ENV_NAME`` are expanded from the environment. Applies</span>
|
||||
<a id="__codelineno-0-335" name="__codelineno-0-335"></a><span class="sd"> to ``path``, ``login``, ``password``, and ``server``. Default</span>
|
||||
<a id="__codelineno-0-336" name="__codelineno-0-336"></a><span class="sd"> ``False`` preserves existing behavior.</span>
|
||||
<a id="__codelineno-0-337" name="__codelineno-0-337"></a>
|
||||
<a id="__codelineno-0-338" name="__codelineno-0-338"></a><span class="sd"> Returns:</span>
|
||||
<a id="__codelineno-0-339" name="__codelineno-0-339"></a><span class="sd"> Configured ``Mt5Config`` instance.</span>
|
||||
<a id="__codelineno-0-340" name="__codelineno-0-340"></a><span class="sd"> """</span>
|
||||
<a id="__codelineno-0-341" name="__codelineno-0-341"></a> <span class="k">if</span> <span class="n">allow_whole_dollar_env</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-342" name="__codelineno-0-342"></a> <span class="k">if</span> <span class="n">path</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-343" name="__codelineno-0-343"></a> <span class="n">path</span> <span class="o">=</span> <span class="n">substitute_env_placeholders</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">allow_whole_dollar_env</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<a id="__codelineno-0-344" name="__codelineno-0-344"></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">login</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
|
||||
<a id="__codelineno-0-345" name="__codelineno-0-345"></a> <span class="n">login</span> <span class="o">=</span> <span class="n">substitute_env_placeholders</span><span class="p">(</span><span class="n">login</span><span class="p">,</span> <span class="n">allow_whole_dollar_env</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<a id="__codelineno-0-346" name="__codelineno-0-346"></a> <span class="k">if</span> <span class="n">password</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-347" name="__codelineno-0-347"></a> <span class="n">password</span> <span class="o">=</span> <span class="n">substitute_env_placeholders</span><span class="p">(</span>
|
||||
<a id="__codelineno-0-348" name="__codelineno-0-348"></a> <span class="n">password</span><span class="p">,</span> <span class="n">allow_whole_dollar_env</span><span class="o">=</span><span class="kc">True</span>
|
||||
<a id="__codelineno-0-349" name="__codelineno-0-349"></a> <span class="p">)</span>
|
||||
<a id="__codelineno-0-350" name="__codelineno-0-350"></a> <span class="k">if</span> <span class="n">server</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-351" name="__codelineno-0-351"></a> <span class="n">server</span> <span class="o">=</span> <span class="n">substitute_env_placeholders</span><span class="p">(</span><span class="n">server</span><span class="p">,</span> <span class="n">allow_whole_dollar_env</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<a id="__codelineno-0-352" name="__codelineno-0-352"></a> <span class="k">return</span> <span class="n">Mt5Config</span><span class="p">(</span>
|
||||
<a id="__codelineno-0-353" name="__codelineno-0-353"></a> <span class="n">path</span><span class="o">=</span><span class="n">path</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-354" name="__codelineno-0-354"></a> <span class="n">login</span><span class="o">=</span><span class="n">_coerce_login</span><span class="p">(</span><span class="n">login</span><span class="p">),</span>
|
||||
<a id="__codelineno-0-355" name="__codelineno-0-355"></a> <span class="n">password</span><span class="o">=</span><span class="n">password</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-356" name="__codelineno-0-356"></a> <span class="n">server</span><span class="o">=</span><span class="n">server</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-357" name="__codelineno-0-357"></a> <span class="n">timeout</span><span class="o">=</span><span class="n">timeout</span><span class="p">,</span>
|
||||
<a id="__codelineno-0-358" name="__codelineno-0-358"></a> <span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
</div>
|
||||
|
||||
+60
-60
@@ -445,12 +445,7 @@
|
||||
|
||||
<details class="mkdocstrings-source">
|
||||
<summary>Source code in <code>mt5cli/exceptions.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-77">77</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-78">78</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-79">79</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-80">80</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-81">81</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-82">82</a></span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-82">82</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-83">83</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-84">84</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-85">85</a></span>
|
||||
@@ -458,20 +453,25 @@
|
||||
<span class="normal"><a href="#__codelineno-0-87">87</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-88">88</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-89">89</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-90">90</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-77" name="__codelineno-0-77"></a><span class="k">def</span><span class="w"> </span><span class="nf">call_with_normalized_errors</span><span class="p">(</span><span class="n">fn</span><span class="p">:</span> <span class="n">Callable</span><span class="p">[[],</span> <span class="n">T</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-78" name="__codelineno-0-78"></a><span class="w"> </span><span class="sd">"""Run ``fn`` and map recoverable MT5 errors to mt5cli types.</span>
|
||||
<a id="__codelineno-0-79" name="__codelineno-0-79"></a>
|
||||
<a id="__codelineno-0-80" name="__codelineno-0-80"></a><span class="sd"> Args:</span>
|
||||
<a id="__codelineno-0-81" name="__codelineno-0-81"></a><span class="sd"> fn: Callable performing MT5 work.</span>
|
||||
<a id="__codelineno-0-82" name="__codelineno-0-82"></a>
|
||||
<a id="__codelineno-0-83" name="__codelineno-0-83"></a><span class="sd"> Returns:</span>
|
||||
<a id="__codelineno-0-84" name="__codelineno-0-84"></a><span class="sd"> Value returned by ``fn``.</span>
|
||||
<a id="__codelineno-0-85" name="__codelineno-0-85"></a><span class="sd"> """</span>
|
||||
<a id="__codelineno-0-86" name="__codelineno-0-86"></a> <span class="k">try</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-87" name="__codelineno-0-87"></a> <span class="k">return</span> <span class="n">fn</span><span class="p">()</span>
|
||||
<a id="__codelineno-0-88" name="__codelineno-0-88"></a> <span class="k">except</span> <span class="n">_RECOVERABLE_MT5_ERRORS</span> <span class="k">as</span> <span class="n">exc</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-89" name="__codelineno-0-89"></a> <span class="n">normalized</span> <span class="o">=</span> <span class="n">normalize_mt5_exception</span><span class="p">(</span><span class="n">exc</span><span class="p">)</span>
|
||||
<a id="__codelineno-0-90" name="__codelineno-0-90"></a> <span class="k">raise</span> <span class="n">normalized</span> <span class="kn">from</span><span class="w"> </span><span class="nn">exc</span>
|
||||
<span class="normal"><a href="#__codelineno-0-90">90</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-91">91</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-92">92</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-93">93</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-94">94</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-95">95</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-82" name="__codelineno-0-82"></a><span class="k">def</span><span class="w"> </span><span class="nf">call_with_normalized_errors</span><span class="p">(</span><span class="n">fn</span><span class="p">:</span> <span class="n">Callable</span><span class="p">[[],</span> <span class="n">T</span><span class="p">])</span> <span class="o">-></span> <span class="n">T</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-83" name="__codelineno-0-83"></a><span class="w"> </span><span class="sd">"""Run ``fn`` and map recoverable MT5 errors to mt5cli types.</span>
|
||||
<a id="__codelineno-0-84" name="__codelineno-0-84"></a>
|
||||
<a id="__codelineno-0-85" name="__codelineno-0-85"></a><span class="sd"> Args:</span>
|
||||
<a id="__codelineno-0-86" name="__codelineno-0-86"></a><span class="sd"> fn: Callable performing MT5 work.</span>
|
||||
<a id="__codelineno-0-87" name="__codelineno-0-87"></a>
|
||||
<a id="__codelineno-0-88" name="__codelineno-0-88"></a><span class="sd"> Returns:</span>
|
||||
<a id="__codelineno-0-89" name="__codelineno-0-89"></a><span class="sd"> Value returned by ``fn``.</span>
|
||||
<a id="__codelineno-0-90" name="__codelineno-0-90"></a><span class="sd"> """</span>
|
||||
<a id="__codelineno-0-91" name="__codelineno-0-91"></a> <span class="k">try</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-92" name="__codelineno-0-92"></a> <span class="k">return</span> <span class="n">fn</span><span class="p">()</span>
|
||||
<a id="__codelineno-0-93" name="__codelineno-0-93"></a> <span class="k">except</span> <span class="n">_RECOVERABLE_MT5_ERRORS</span> <span class="k">as</span> <span class="n">exc</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-94" name="__codelineno-0-94"></a> <span class="n">normalized</span> <span class="o">=</span> <span class="n">normalize_mt5_exception</span><span class="p">(</span><span class="n">exc</span><span class="p">)</span>
|
||||
<a id="__codelineno-0-95" name="__codelineno-0-95"></a> <span class="k">raise</span> <span class="n">normalized</span> <span class="kn">from</span><span class="w"> </span><span class="nn">exc</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
</div>
|
||||
@@ -540,7 +540,7 @@
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>True for <code>Mt5RuntimeError</code> and <code>Mt5TradingError</code>.</p>
|
||||
<p>True for <code>Mt5RuntimeError</code> and <code>Mt5TradingError</code> (if available).</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -550,25 +550,25 @@
|
||||
|
||||
<details class="mkdocstrings-source">
|
||||
<summary>Source code in <code>mt5cli/exceptions.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-46">46</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-47">47</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-48">48</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-49">49</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-50">50</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-51">51</a></span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-51">51</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-52">52</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-53">53</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-54">54</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-55">55</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-46" name="__codelineno-0-46"></a><span class="k">def</span><span class="w"> </span><span class="nf">is_recoverable_mt5_error</span><span class="p">(</span><span class="n">exc</span><span class="p">:</span> <span class="ne">BaseException</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-47" name="__codelineno-0-47"></a><span class="w"> </span><span class="sd">"""Return whether an exception is a transient MT5 failure worth retrying.</span>
|
||||
<a id="__codelineno-0-48" name="__codelineno-0-48"></a>
|
||||
<a id="__codelineno-0-49" name="__codelineno-0-49"></a><span class="sd"> Args:</span>
|
||||
<a id="__codelineno-0-50" name="__codelineno-0-50"></a><span class="sd"> exc: Exception raised by MT5 or pdmt5.</span>
|
||||
<a id="__codelineno-0-51" name="__codelineno-0-51"></a>
|
||||
<a id="__codelineno-0-52" name="__codelineno-0-52"></a><span class="sd"> Returns:</span>
|
||||
<a id="__codelineno-0-53" name="__codelineno-0-53"></a><span class="sd"> True for ``Mt5RuntimeError`` and ``Mt5TradingError``.</span>
|
||||
<a id="__codelineno-0-54" name="__codelineno-0-54"></a><span class="sd"> """</span>
|
||||
<a id="__codelineno-0-55" name="__codelineno-0-55"></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">exc</span><span class="p">,</span> <span class="n">_RECOVERABLE_MT5_ERRORS</span><span class="p">)</span>
|
||||
<span class="normal"><a href="#__codelineno-0-55">55</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-56">56</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-57">57</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-58">58</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-59">59</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-60">60</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-51" name="__codelineno-0-51"></a><span class="k">def</span><span class="w"> </span><span class="nf">is_recoverable_mt5_error</span><span class="p">(</span><span class="n">exc</span><span class="p">:</span> <span class="ne">BaseException</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-52" name="__codelineno-0-52"></a><span class="w"> </span><span class="sd">"""Return whether an exception is a transient MT5 failure worth retrying.</span>
|
||||
<a id="__codelineno-0-53" name="__codelineno-0-53"></a>
|
||||
<a id="__codelineno-0-54" name="__codelineno-0-54"></a><span class="sd"> Args:</span>
|
||||
<a id="__codelineno-0-55" name="__codelineno-0-55"></a><span class="sd"> exc: Exception raised by MT5 or pdmt5.</span>
|
||||
<a id="__codelineno-0-56" name="__codelineno-0-56"></a>
|
||||
<a id="__codelineno-0-57" name="__codelineno-0-57"></a><span class="sd"> Returns:</span>
|
||||
<a id="__codelineno-0-58" name="__codelineno-0-58"></a><span class="sd"> True for ``Mt5RuntimeError`` and ``Mt5TradingError`` (if available).</span>
|
||||
<a id="__codelineno-0-59" name="__codelineno-0-59"></a><span class="sd"> """</span>
|
||||
<a id="__codelineno-0-60" name="__codelineno-0-60"></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">exc</span><span class="p">,</span> <span class="n">_RECOVERABLE_MT5_ERRORS</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
</div>
|
||||
@@ -657,12 +657,7 @@
|
||||
|
||||
<details class="mkdocstrings-source">
|
||||
<summary>Source code in <code>mt5cli/exceptions.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-58">58</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-59">59</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-60">60</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-61">61</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-62">62</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-63">63</a></span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-63">63</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-64">64</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-65">65</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-66">66</a></span>
|
||||
@@ -673,23 +668,28 @@
|
||||
<span class="normal"><a href="#__codelineno-0-71">71</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-72">72</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-73">73</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-74">74</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-58" name="__codelineno-0-58"></a><span class="k">def</span><span class="w"> </span><span class="nf">normalize_mt5_exception</span><span class="p">(</span><span class="n">exc</span><span class="p">:</span> <span class="ne">BaseException</span><span class="p">)</span> <span class="o">-></span> <span class="n">Mt5CliError</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-59" name="__codelineno-0-59"></a><span class="w"> </span><span class="sd">"""Map pdmt5/MT5 exceptions to stable mt5cli exception types.</span>
|
||||
<a id="__codelineno-0-60" name="__codelineno-0-60"></a>
|
||||
<a id="__codelineno-0-61" name="__codelineno-0-61"></a><span class="sd"> Args:</span>
|
||||
<a id="__codelineno-0-62" name="__codelineno-0-62"></a><span class="sd"> exc: Original exception from MT5 or pdmt5.</span>
|
||||
<a id="__codelineno-0-63" name="__codelineno-0-63"></a>
|
||||
<a id="__codelineno-0-64" name="__codelineno-0-64"></a><span class="sd"> Returns:</span>
|
||||
<a id="__codelineno-0-65" name="__codelineno-0-65"></a><span class="sd"> ``Mt5ConnectionError`` for runtime failures, ``Mt5OperationError`` for</span>
|
||||
<a id="__codelineno-0-66" name="__codelineno-0-66"></a><span class="sd"> trading failures, or the original exception when it is not recognized.</span>
|
||||
<a id="__codelineno-0-67" name="__codelineno-0-67"></a><span class="sd"> """</span>
|
||||
<a id="__codelineno-0-68" name="__codelineno-0-68"></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">exc</span><span class="p">,</span> <span class="n">Mt5TradingError</span><span class="p">):</span>
|
||||
<a id="__codelineno-0-69" name="__codelineno-0-69"></a> <span class="k">return</span> <span class="n">Mt5OperationError</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">exc</span><span class="p">))</span>
|
||||
<a id="__codelineno-0-70" name="__codelineno-0-70"></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">exc</span><span class="p">,</span> <span class="n">Mt5RuntimeError</span><span class="p">):</span>
|
||||
<a id="__codelineno-0-71" name="__codelineno-0-71"></a> <span class="k">return</span> <span class="n">Mt5ConnectionError</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">exc</span><span class="p">))</span>
|
||||
<a id="__codelineno-0-72" name="__codelineno-0-72"></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">exc</span><span class="p">,</span> <span class="n">Mt5CliError</span><span class="p">):</span>
|
||||
<a id="__codelineno-0-73" name="__codelineno-0-73"></a> <span class="k">return</span> <span class="n">exc</span>
|
||||
<a id="__codelineno-0-74" name="__codelineno-0-74"></a> <span class="k">return</span> <span class="n">Mt5CliError</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">exc</span><span class="p">))</span>
|
||||
<span class="normal"><a href="#__codelineno-0-74">74</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-75">75</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-76">76</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-77">77</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-78">78</a></span>
|
||||
<span class="normal"><a href="#__codelineno-0-79">79</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-63" name="__codelineno-0-63"></a><span class="k">def</span><span class="w"> </span><span class="nf">normalize_mt5_exception</span><span class="p">(</span><span class="n">exc</span><span class="p">:</span> <span class="ne">BaseException</span><span class="p">)</span> <span class="o">-></span> <span class="n">Mt5CliError</span><span class="p">:</span>
|
||||
<a id="__codelineno-0-64" name="__codelineno-0-64"></a><span class="w"> </span><span class="sd">"""Map pdmt5/MT5 exceptions to stable mt5cli exception types.</span>
|
||||
<a id="__codelineno-0-65" name="__codelineno-0-65"></a>
|
||||
<a id="__codelineno-0-66" name="__codelineno-0-66"></a><span class="sd"> Args:</span>
|
||||
<a id="__codelineno-0-67" name="__codelineno-0-67"></a><span class="sd"> exc: Original exception from MT5 or pdmt5.</span>
|
||||
<a id="__codelineno-0-68" name="__codelineno-0-68"></a>
|
||||
<a id="__codelineno-0-69" name="__codelineno-0-69"></a><span class="sd"> Returns:</span>
|
||||
<a id="__codelineno-0-70" name="__codelineno-0-70"></a><span class="sd"> ``Mt5ConnectionError`` for runtime failures, ``Mt5OperationError`` for</span>
|
||||
<a id="__codelineno-0-71" name="__codelineno-0-71"></a><span class="sd"> trading failures, or the original exception when it is not recognized.</span>
|
||||
<a id="__codelineno-0-72" name="__codelineno-0-72"></a><span class="sd"> """</span>
|
||||
<a id="__codelineno-0-73" name="__codelineno-0-73"></a> <span class="k">if</span> <span class="n">Mt5TradingError</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">exc</span><span class="p">,</span> <span class="n">Mt5TradingError</span><span class="p">):</span>
|
||||
<a id="__codelineno-0-74" name="__codelineno-0-74"></a> <span class="k">return</span> <span class="n">Mt5OperationError</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">exc</span><span class="p">))</span>
|
||||
<a id="__codelineno-0-75" name="__codelineno-0-75"></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">exc</span><span class="p">,</span> <span class="n">Mt5RuntimeError</span><span class="p">):</span>
|
||||
<a id="__codelineno-0-76" name="__codelineno-0-76"></a> <span class="k">return</span> <span class="n">Mt5ConnectionError</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">exc</span><span class="p">))</span>
|
||||
<a id="__codelineno-0-77" name="__codelineno-0-77"></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">exc</span><span class="p">,</span> <span class="n">Mt5CliError</span><span class="p">):</span>
|
||||
<a id="__codelineno-0-78" name="__codelineno-0-78"></a> <span class="k">return</span> <span class="n">exc</span>
|
||||
<a id="__codelineno-0-79" name="__codelineno-0-79"></a> <span class="k">return</span> <span class="n">Mt5CliError</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">exc</span><span class="p">))</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
</div>
|
||||
|
||||
@@ -193,9 +193,12 @@ The intended dependency direction is:</p>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>Downstream code should import raw pdmt5 types and constants (such as
|
||||
<code>Mt5Config</code>, <code>Mt5TradingClient</code>, <code>Mt5RuntimeError</code>, <code>Mt5TradingError</code>,
|
||||
<code>TIMEFRAME_MAP</code>, <code>COPY_TICKS_MAP</code>) directly from <code>pdmt5</code> when needed.
|
||||
mt5cli does not serve as a pass-through compatibility namespace for pdmt5.</p>
|
||||
<code>Mt5Config</code>, <code>Mt5RuntimeError</code>, <code>TIMEFRAME_MAP</code>, <code>COPY_TICKS_MAP</code>) directly
|
||||
from <code>pdmt5</code> when needed. mt5cli does not serve as a pass-through compatibility
|
||||
namespace for pdmt5. mt5cli's trading helpers type their client parameter against
|
||||
an internal protocol backed by <code>pdmt5.Mt5DataClient</code>; <code>Mt5TradingClient</code> is no
|
||||
longer required. <code>Mt5TradingError</code> is conditionally imported where still present
|
||||
in pdmt5, but mt5cli raises <code>Mt5OperationError</code> for all trading-related failures.</p>
|
||||
<p>Note: the former <code>mt5cli</code> re-export <code>TICK_FLAG_MAP</code> corresponds to <code>COPY_TICKS_MAP</code>
|
||||
in pdmt5 — the name changed, it was not simply moved.</p>
|
||||
<p>Downstream packages should import from the package root (<code>from mt5cli import
|
||||
@@ -230,7 +233,7 @@ their owning modules (<code>mt5cli.schemas</code>, <code>mt5cli.utils</code>, <c
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>create_trading_client</code>, <code>mt5_trading_session</code></td>
|
||||
<td>Trading-capable <code>pdmt5.Mt5TradingClient</code> lifecycle</td>
|
||||
<td>Trading-capable MT5 client lifecycle; returns a client supporting order execution and account management</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>AccountSpec</code></td>
|
||||
@@ -264,7 +267,7 @@ timestamp normalization in downstream apps.</p>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>fetch_latest_closed_rates_for_trading_client</code></td>
|
||||
<td>Closed bars from an active <code>Mt5TradingClient</code> session; returns RangeIndex</td>
|
||||
<td>Closed bars from an active trading client session; returns RangeIndex</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>fetch_latest_closed_rates_indexed</code></td>
|
||||
@@ -410,7 +413,7 @@ exposure; downstream applications own thresholds, risk guard actions, and
|
||||
strategy policy.</p>
|
||||
<p><code>MT5Client.order_send()</code> and CLI <code>order-send --yes</code> are live execution paths.</p>
|
||||
<p>Order helpers validate broker stop-level distance in <code>determine_order_limits()</code> and
|
||||
raise <code>Mt5TradingError</code> when computed SL/TP prices are too close to the entry
|
||||
raise <code>Mt5OperationError</code> when computed SL/TP prices are too close to the entry
|
||||
quote. Validation uses <code>trade_stops_level * point</code> from the current quote and
|
||||
symbol metadata as a pre-check only; it does not guarantee live order acceptance
|
||||
after price movement and does not inspect <code>trade_freeze_level</code>. Live
|
||||
|
||||
+1844
-1844
File diff suppressed because it is too large
Load Diff
+2175
-2146
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -648,5 +648,5 @@
|
||||
|
||||
<!--
|
||||
MkDocs version : 1.6.1
|
||||
Build Date UTC : 2026-06-26 09:24:20.959155+00:00
|
||||
Build Date UTC : 2026-06-26 13:28:35.799909+00:00
|
||||
-->
|
||||
|
||||
BIN
Binary file not shown.
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user