Skip to content

Commit

Permalink
deploy: 4281a05
Browse files Browse the repository at this point in the history
  • Loading branch information
whg517 committed Dec 28, 2023
1 parent 56b573d commit cd3ffcb
Show file tree
Hide file tree
Showing 19 changed files with 208 additions and 208 deletions.
6 changes: 3 additions & 3 deletions datadevelop/quick_start/etl_develop/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1401,9 +1401,9 @@ <h2 id="transform">Transform类</h2>
<h2 id="_3">配置</h2>
<p>将如下配置更新到配置文件中,因为项目默认使用dev环境配置,则需要在<code>configs/dev.toml</code>中增加如下内容:</p>
<div class="language-toml highlight"><pre><span></span><code><span id="__span-3-1"><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a><span class="c1"># spark configs</span>
</span><span id="__span-3-2"><a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a><span class="n">spark_master</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&#39;local[*]&#39;</span>
</span><span id="__span-3-3"><a id="__codelineno-3-3" name="__codelineno-3-3" href="#__codelineno-3-3"></a><span class="n">spark_config</span><span class="p">.</span><span class="n">spark</span><span class="p">.</span><span class="n">driver</span><span class="p">.</span><span class="n">memory</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&#39;3G&#39;</span>
</span><span id="__span-3-4"><a id="__codelineno-3-4" name="__codelineno-3-4" href="#__codelineno-3-4"></a><span class="n">spark_config</span><span class="p">.</span><span class="n">spark</span><span class="p">.</span><span class="n">executor</span><span class="p">.</span><span class="n">memory</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&#39;16G&#39;</span>
</span><span id="__span-3-2"><a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a><span class="n">spark_master</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;local[*]&#39;</span>
</span><span id="__span-3-3"><a id="__codelineno-3-3" name="__codelineno-3-3" href="#__codelineno-3-3"></a><span class="n">spark_config</span><span class="p">.</span><span class="n">spark</span><span class="p">.</span><span class="n">driver</span><span class="p">.</span><span class="n">memory</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;3G&#39;</span>
</span><span id="__span-3-4"><a id="__codelineno-3-4" name="__codelineno-3-4" href="#__codelineno-3-4"></a><span class="n">spark_config</span><span class="p">.</span><span class="n">spark</span><span class="p">.</span><span class="n">executor</span><span class="p">.</span><span class="n">memory</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">&#39;16G&#39;</span>
</span><span id="__span-3-5"><a id="__codelineno-3-5" name="__codelineno-3-5" href="#__codelineno-3-5"></a><span class="n">spark_config</span><span class="p">.</span><span class="n">spark</span><span class="p">.</span><span class="n">sql</span><span class="p">.</span><span class="n">debug</span><span class="p">.</span><span class="n">maxToStringFields</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">100</span>
</span></code></pre></div>

Expand Down
4 changes: 2 additions & 2 deletions datadevelop/quick_start/initialization/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1556,8 +1556,8 @@ <h4 id="_6">注册插件</h4>
<p>ETL任务完成后需要注册插件:</p>
<p>因为项目默认使用<a href="/pythonic-project-guidelines/introduction/virtualenv/#25-poetry">poetry</a>
管理虚拟环境,则需要在<code>pyproject.toml</code> 文件增加中增加如下内容:</p>
<div class="language-toml highlight"><pre><span></span><code><span id="__span-7-1"><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="k">[tool.poetry.plugins.&quot;etl_tasks&quot;]</span>
</span><span id="__span-7-2"><a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a><span class="n">task_name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;{task_class_path}:TaskExample&quot;</span>
<div class="language-toml highlight"><pre><span></span><code><span id="__span-7-1"><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="k">[tool.poetry.plugins.</span><span class="s2">&quot;etl_tasks&quot;</span><span class="k">]</span>
</span><span id="__span-7-2"><a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a><span class="n">task_name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;{task_class_path}:TaskExample&quot;</span>
</span></code></pre></div>
<p>使用如下命令将项目插件更新到环境中:</p>
<div class="language-shell highlight"><pre><span></span><code><span id="__span-8-1"><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a>poetry<span class="w"> </span>install
Expand Down
6 changes: 3 additions & 3 deletions datadevelop/quick_start/release/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1251,10 +1251,10 @@ <h3 id="task">注册Task</h3>
<p><code>main</code>命令行入口和上述实现的<code>Task</code>类注册到命名空间中。</p>
<p>编辑<code>pyproject.toml</code>文件,增加<a href="https://python-poetry.org/docs/plugins/">poetry插件</a>如下内容:</p>
<div class="language-toml highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="k">[tool.poetry.plugins.console_scripts]</span>
</span><span id="__span-0-2"><a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="n">automotive_data_etl</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;automotive_data_etl.cmdline:main&quot;</span>
</span><span id="__span-0-2"><a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="n">automotive_data_etl</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;automotive_data_etl.cmdline:main&quot;</span>
</span><span id="__span-0-3"><a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a>
</span><span id="__span-0-4"><a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a><span class="k">[tool.poetry.plugins.&quot;etl_tasks&quot;]</span>
</span><span id="__span-0-5"><a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a><span class="n">automotive_task</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;automotive_data_etl.tasks.automotive_task.task:AutomotiveDataTask&quot;</span>
</span><span id="__span-0-4"><a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a><span class="k">[tool.poetry.plugins.</span><span class="s2">&quot;etl_tasks&quot;</span><span class="k">]</span>
</span><span id="__span-0-5"><a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a><span class="n">automotive_task</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot;automotive_data_etl.tasks.automotive_task.task:AutomotiveDataTask&quot;</span>
</span></code></pre></div>
<p>这么做的目的是将<code>AutomotiveDataTask</code>注册到<code>entry_points</code>中, 然后在程序中使用<code>importlib.metadata</code>
根据名称空间查找。而 <code>stevedore</code> 则是封装了查找的复杂逻辑,让使用插件更简单。</p>
Expand Down
2 changes: 1 addition & 1 deletion guidelines/advanced/configuration/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1465,7 +1465,7 @@ <h4 id="_3">使用配置文件</h4>
<h4 id="_4">使用环境变量</h4>
<p>Dynaconf 支持加载环境变量,也可以使用 .env 文件。</p>
<p>在使用环境变量时,同样和配置文件一样,支持完全覆盖,和自动合并。</p>
<p>需要额外强调一点的是, Dynaconf 初始化的时,使用了 <code>envvar_prefix=BLOG</code> 。 Dynaconf 会自动加载以 <code>BLOG_</code> 开头的
<p>需要额外强调一点的是, Dynaconf 初始化的时候,使用了 <code>envvar_prefix=BLOG</code> 。 Dynaconf 会自动加载以 <code>BLOG_</code> 开头的
环境变量。包括 <code>ENVVAR_FOR_DYNACONF='BLOG_SETTINGS'</code> 配置的 Dynaconf 加载配置文件的环境变量 <code>BLOG_SETTINGS</code></p>
<p>所以在使用环境变量的时候,不要错误的将 <code>BLOG_SETTINGS</code> 环境变量指定其他内容,而造成不必要的错误。</p>
<div class="language-shell highlight"><pre><span></span><code><span id="__span-8-1"><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a><span class="c1"># 使用环境变量配置单值</span>
Expand Down
6 changes: 3 additions & 3 deletions guidelines/advanced/exception/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1347,9 +1347,9 @@ <h1 id="_1">异常管理</h1>
<p>几乎所有编程语言中都有异常。异常可以快速指出程序出现的问题,便于排查。开发人员也可以根据情况抛出自定义异常,
以指示期望的内容和实际不相符。良好的异常设计和使用习惯,可以提高程序的质量。</p>
<h2 id="_2">介绍</h2>
<p>Python 中的异常分为两类,一是句法错误,一类是异常。</p>
<p>Python 中的异常分为两类,一是语法错误,一类是异常。</p>
<h3 id="_3">句法错误</h3>
<p>句法错误是用来指示 Python 编码不符合句法规范的</p>
<p>语法错误是用来指示 Python 编码不符合语法规范的</p>
<div class="language-python highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="o">&gt;&gt;&gt;</span> <span class="k">while</span> <span class="kc">True</span> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Hello world&#39;</span><span class="p">)</span>
</span><span id="__span-0-2"><a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">File</span> <span class="s2">&quot;&lt;stdin&gt;&quot;</span><span class="p">,</span> <span class="n">line</span> <span class="mi">1</span>
</span><span id="__span-0-3"><a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> <span class="k">while</span> <span class="kc">True</span> <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Hello world&#39;</span><span class="p">)</span>
Expand Down Expand Up @@ -1563,7 +1563,7 @@ <h2 id="_10">实践</h2>
<p>开发实践中,异常信息对诊断程序非常重要。所以在使用和处理异常时,请遵循如下几点:</p>
<ul>
<li>需要处理异常时使用 <code>try...except...finally</code> 捕获</li>
<li>处理异常时,如果没有继续抛出异常,需要输入日志信息。除非你知道不输出任何信息不会造成拍错困难</li>
<li>处理异常时,如果没有继续抛出异常,需要输入日志信息。除非你知道不输出任何信息不会造成排错困难</li>
<li>项目级别,一定要定义一个项目的基类异常。项目中其他自定义异常必须继承该基类异常。这么做的目的是可以在外层逻辑通过捕获基类
异常来只捕获抛出的自定义异常。</li>
<li>项目异常要以 <code>ERROR</code> 结尾。和标准异常命名类似。</li>
Expand Down
12 changes: 6 additions & 6 deletions guidelines/advanced/logging/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1347,20 +1347,20 @@ <h1 id="logging">Logging</h1>
<p>日志是对软件执行时所发生事件的一种追踪方式。软件开发人员对他们的代码添加日志调用,借此来指示某事件的发生。
一个事件通过一些包含变量数据的描述信息来描述(比如:每个事件发生时的数据都是不同的)。开发者还会区分事件的重要性,
重要性也被称为 <strong>等级</strong><strong>严重性</strong>。有一个好的日志实践,能让开发调试流程更顺畅,出现问题能更快速精准定位。</p>
<p>本文不会以最基础的方式讲述 Python logging 的使用,而是以当前总结的实践方式结合实际操作案例展示 Logging 的使用,所以在阅读文章钱
<p>本文不会以最基础的方式讲述 Python logging 的使用,而是以当前总结的实践方式结合实际操作案例展示 Logging 的使用,所以在阅读文章前
你应该提前了解 <a href="https://docs.python.org/zh-cn/3/howto/logging.html">日志 HOWTO</a>
<a href="https://docs.python.org/zh-cn/3/library/logging.html">Python 的日志记录工具</a> 两篇文档。</p>
<h2 id="1">1. 简单使用</h2>
<p>在一般开发中,对于临时开发的项目,可能为了快速完成任务,项目中大量使用了 <code>print</code> 将调试信息输出到控制台。
项目后期就会出现调试困难等问题。本节会提供在简单环境下快速使用日志方式</p>
项目后期就会出现调试困难等问题。本节会提供在简单环境下快速使用日志的方式</p>
<h3 id="11">1.1 单文件使用</h3>
<p>对于单文件的使用,直接使用根日志对象即可。由于默认的日志级别为 <code>WARNING</code>所以需要使用更低级别的日志是无法显示的</p>
<p>对于单文件的使用,直接使用根日志对象即可。由于默认的日志级别为 <code>WARNING</code>所以使用更低级别的日志是无法显示的</p>
<div class="language-python highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="sd">&quot;&quot;&quot;Simple logging&quot;&quot;&quot;</span>
</span><span id="__span-0-2"><a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="kn">import</span> <span class="nn">logging</span>
</span><span id="__span-0-3"><a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a>
</span><span id="__span-0-4"><a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a><span class="n">logging</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s1">&#39;I love you ~&#39;</span><span class="p">)</span>
</span></code></pre></div>
<p>如果后续开发有要控制日志级别的需求,直接在开始初始化日志配置就可以了;</p>
<p>如果后续开发有要控制日志级别的需求,直接在开始的时候初始化日志配置就可以了。</p>
<div class="language-python highlight"><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="sd">&quot;&quot;&quot;Simple logging&quot;&quot;&quot;</span>
</span><span id="__span-1-2"><a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a><span class="kn">import</span> <span class="nn">logging</span>
</span><span id="__span-1-3"><a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a>
Expand All @@ -1370,7 +1370,7 @@ <h3 id="11">1.1 单文件使用</h3>
</span><span id="__span-1-7"><a id="__codelineno-1-7" name="__codelineno-1-7" href="#__codelineno-1-7"></a><span class="n">logging</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s1">&#39;I love you ~&#39;</span><span class="p">)</span>
</span><span id="__span-1-8"><a id="__codelineno-1-8" name="__codelineno-1-8" href="#__codelineno-1-8"></a><span class="n">logging</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s1">&#39;I love you too ~&#39;</span><span class="p">)</span>
</span></code></pre></div>
<p>当需要输出更详细的日志信息,如执行时间日志级别 、 线程或进程信息,都可以很方便的控制。</p>
<p>当需要输出更详细的日志信息,如执行时间日志级别、线程或进程信息等,都可以很方便的控制。</p>
<div class="language-python highlight"><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a><span class="sd">&quot;&quot;&quot;Simple logging&quot;&quot;&quot;</span>
</span><span id="__span-2-2"><a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a><span class="kn">import</span> <span class="nn">logging</span>
</span><span id="__span-2-3"><a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a>
Expand All @@ -1385,7 +1385,7 @@ <h3 id="11">1.1 单文件使用</h3>
</span><span id="__span-2-12"><a id="__codelineno-2-12" name="__codelineno-2-12" href="#__codelineno-2-12"></a><span class="n">logging</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s1">&#39;I love you ~&#39;</span><span class="p">)</span>
</span><span id="__span-2-13"><a id="__codelineno-2-13" name="__codelineno-2-13" href="#__codelineno-2-13"></a><span class="n">logging</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s1">&#39;I love you too ~&#39;</span><span class="p">)</span>
</span></code></pre></div>
<p>虽然使用 <code>print</code> 能更快速的在控制太输出想要看到的内容,但从上面的示例来看,直接使用默认的日志输出也是很方便的,唯一的区别可能
<p>虽然使用 <code>print</code> 能更快速的在控制台输出想要看到的内容,但从上面的示例来看,直接使用默认的日志输出也是很方便的,唯一的区别可能
就是需要导入了。而使用日志的话,想要在后续增加输出更精确的信息就显得比较灵活。</p>
<p>日志格式所支持的字段请参考 <a href="https://docs.python.org/zh-cn/3/library/logging.html#logrecord-attributes">LogRecord 属性</a></p>
<p>这也是为什么建议优先使用日志的原因。</p>
Expand Down
Loading

0 comments on commit cd3ffcb

Please sign in to comment.