beam-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From git-site-r...@apache.org
Subject [beam] branch asf-site updated: Publishing website 2020/12/02 00:01:22 at commit 83ed9ae
Date Wed, 02 Dec 2020 00:01:51 GMT
This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new f21b5e2  Publishing website 2020/12/02 00:01:22 at commit 83ed9ae
f21b5e2 is described below

commit f21b5e2e4e1a7fe4de1a1a7e18cc56e679921a2c
Author: jenkins <builds@apache.org>
AuthorDate: Wed Dec 2 00:01:22 2020 +0000

    Publishing website 2020/12/02 00:01:22 at commit 83ed9ae
---
 website/generated-content/documentation/index.xml  |  8 ++++
 .../documentation/io/developing-io-java/index.html |  3 +-
 .../io/developing-io-overview/index.html           | 54 +++++++++++++---------
 .../io/developing-io-python/index.html             |  3 +-
 .../documentation/programming-guide/index.html     |  4 ++
 website/generated-content/sitemap.xml              |  2 +-
 6 files changed, 49 insertions(+), 25 deletions(-)

diff --git a/website/generated-content/documentation/index.xml b/website/generated-content/documentation/index.xml
index 4841e74..38831bf 100644
--- a/website/generated-content/documentation/index.xml
+++ b/website/generated-content/documentation/index.xml
@@ -307,6 +307,8 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 &lt;h1 id="developing-io-connectors-for-java">Developing I/O connectors for Java&lt;/h1>
+&lt;p>&lt;strong>IMPORTANT:&lt;/strong> Use &lt;code>Splittable
DoFn&lt;/code> to develop your new I/O. For more details, read the
+&lt;a href="/documentation/io/developing-io-overview/">new I/O connector overview&lt;/a>.&lt;/p>
 &lt;p>To connect to a data store that isn’t supported by Beam’s existing I/O
 connectors, you must create a custom I/O connector that usually consist of a
 source and a sink. All Beam sources and sinks are composite transforms; however,
@@ -655,6 +657,8 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 &lt;h1 id="developing-io-connectors-for-python">Developing I/O connectors for Python&lt;/h1>
+&lt;p>&lt;strong>IMPORTANT:&lt;/strong> Please use &lt;code>Splittable
DoFn&lt;/code> to develop your new I/O. For more details, please read
+the &lt;a href="/documentation/io/developing-io-overview/">new I/O connector overview&lt;/a>.&lt;/p>
 &lt;p>To connect to a data store that isn’t supported by Beam’s existing I/O
 connectors, you must create a custom I/O connector that usually consist of a
 source and a sink. All Beam sources and sinks are composite transforms; however,
@@ -7105,6 +7109,10 @@ to annotate the &lt;code>DoFn&lt;/code>.&lt;/p>
 &lt;span class="k">def&lt;/span> &lt;span class="nf">process&lt;/span>&lt;span
class="p">(&lt;/span>
 &lt;span class="bp">self&lt;/span>&lt;span class="p">,&lt;/span>
 &lt;span class="n">file_name&lt;/span>&lt;span class="p">,&lt;/span>
+&lt;span class="c1"># Alternatively, we can let FileToWordsFn itself inherit from&lt;/span>
+&lt;span class="c1"># RestrictionProvider, implement the required methods and let&lt;/span>
+&lt;span class="c1"># tracker=beam.DoFn.RestrictionParam() which will use self as&lt;/span>
+&lt;span class="c1"># the provider.&lt;/span>
 &lt;span class="n">tracker&lt;/span>&lt;span class="o">=&lt;/span>&lt;span
class="n">beam&lt;/span>&lt;span class="o">.&lt;/span>&lt;span
class="n">DoFn&lt;/span>&lt;span class="o">.&lt;/span>&lt;span
class="n">RestrictionParam&lt;/span>&lt;span class="p">(&lt;/span>&lt;span
class="n">FileToWordsRestrictionProvider&lt;/span>&lt;span class="p">())):&lt;/span>
 &lt;span class="k">with&lt;/span> &lt;span class="nb">open&lt;/span>&lt;span
class="p">(&lt;/span>&lt;span class="n">file_name&lt;/span>&lt;span
class="p">)&lt;/span> &lt;span class="k">as&lt;/span> &lt;span
class="n">file_handle&lt;/span>&lt;span class="p">:&lt;/span>
 &lt;span class="n">file_handle&lt;/span>&lt;span class="o">.&lt;/span>&lt;span
class="n">seek&lt;/span>&lt;span class="p">(&lt;/span>&lt;span
class="n">tracker&lt;/span>&lt;span class="o">.&lt;/span>&lt;span
class="n">current_restriction&lt;/span>&lt;span class="o">.&lt;/span>&lt;span
class="n">start&lt;/span>&lt;span class="p">())&lt;/span>
diff --git a/website/generated-content/documentation/io/developing-io-java/index.html b/website/generated-content/documentation/io/developing-io-java/index.html
index e6aacad..495dd2b 100644
--- a/website/generated-content/documentation/io/developing-io-java/index.html
+++ b/website/generated-content/documentation/io/developing-io-java/index.html
@@ -1,7 +1,8 @@
 <!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta
http-equiv=x-ua-compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><title>Apache
Beam: Developing I/O connectors for Java</title><meta name=description content="Apache
Beam is an open source, unified model and set of language-specific SDKs for defining and executing
data processing workflows, and also data ingestion and integration flows, supporting Enterprise
Integration P [...]
 <span class=sr-only>Toggle navigation</span>
 <span class=icon-bar></span><span class=icon-bar></span><span
class=icon-bar></span></button>
-<a href=/ class=navbar-brand><img alt=Brand style=height:25px src=/images/beam_logo_navbar.png></a></div><div
class="navbar-mask closed"></div><div id=navbar class="navbar-container closed"><ul
class="nav navbar-nav"><li><a href=/get-started/beam-overview/>Get Started</a></li><li><a
href=/documentation/>Documentation</a></li><li><a href=/documentation/sdks/java/>Languages</a></li><li><a
href=/documentation/runners/capability-matrix/>RUNNERS</a></li><li><a
href=/roadmap/>Roadmap</a></li>< [...]
+<a href=/ class=navbar-brand><img alt=Brand style=height:25px src=/images/beam_logo_navbar.png></a></div><div
class="navbar-mask closed"></div><div id=navbar class="navbar-container closed"><ul
class="nav navbar-nav"><li><a href=/get-started/beam-overview/>Get Started</a></li><li><a
href=/documentation/>Documentation</a></li><li><a href=/documentation/sdks/java/>Languages</a></li><li><a
href=/documentation/runners/capability-matrix/>RUNNERS</a></li><li><a
href=/roadmap/>Roadmap</a></li>< [...]
+<a href=/documentation/io/developing-io-overview/>new I/O connector overview</a>.</p><p>To
connect to a data store that isn’t supported by Beam’s existing I/O
 connectors, you must create a custom I/O connector that usually consist of a
 source and a sink. All Beam sources and sinks are composite transforms; however,
 the implementation of your custom I/O depends on your use case. Before you
diff --git a/website/generated-content/documentation/io/developing-io-overview/index.html
b/website/generated-content/documentation/io/developing-io-overview/index.html
index c507f58..651e577 100644
--- a/website/generated-content/documentation/io/developing-io-overview/index.html
+++ b/website/generated-content/documentation/io/developing-io-overview/index.html
@@ -1,7 +1,7 @@
 <!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta
http-equiv=x-ua-compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><title>Overview:
Developing a new I/O connector</title><meta name=description content="Apache Beam
is an open source, unified model and set of language-specific SDKs for defining and executing
data processing workflows, and also data ingestion and integration flows, supporting Enterprise
Integration Patterns [...]
 <span class=sr-only>Toggle navigation</span>
 <span class=icon-bar></span><span class=icon-bar></span><span
class=icon-bar></span></button>
-<a href=/ class=navbar-brand><img alt=Brand style=height:25px src=/images/beam_logo_navbar.png></a></div><div
class="navbar-mask closed"></div><div id=navbar class="navbar-container closed"><ul
class="nav navbar-nav"><li><a href=/get-started/beam-overview/>Get Started</a></li><li><a
href=/documentation/>Documentation</a></li><li><a href=/documentation/sdks/java/>Languages</a></li><li><a
href=/documentation/runners/capability-matrix/>RUNNERS</a></li><li><a
href=/roadmap/>Roadmap</a></li>< [...]
+<a href=/ class=navbar-brand><img alt=Brand style=height:25px src=/images/beam_logo_navbar.png></a></div><div
class="navbar-mask closed"></div><div id=navbar class="navbar-container closed"><ul
class="nav navbar-nav"><li><a href=/get-started/beam-overview/>Get Started</a></li><li><a
href=/documentation/>Documentation</a></li><li><a href=/documentation/sdks/java/>Languages</a></li><li><a
href=/documentation/runners/capability-matrix/>RUNNERS</a></li><li><a
href=/roadmap/>Roadmap</a></li>< [...]
 the <a href=/documentation/io/built-in/>Built-in I/O connectors</a></em></p><p>To
connect to a data store that isn’t supported by Beam’s existing I/O
 connectors, you must create a custom I/O connector. A connector usually consists
 of a source and a sink. All Beam sources and sinks are composite transforms;
@@ -12,19 +12,18 @@ questions you might have. In addition, you can check if anyone else is
 working on the same I/O connector.</p></li><li><p>If you plan to
contribute your I/O connector to the Beam community, see the
 <a href=/contribute/contribution-guide/>Apache Beam contribution guide</a>.</p></li><li><p>Read
the <a href=/contribute/ptransform-style-guide/>PTransform style guide</a>
 for additional style guide recommendations.</p></li></ol><h2 id=sources>Sources</h2><p>For
<strong>bounded (batch) sources</strong>, there are currently two options for
creating a
-Beam source:</p><ol><li><p>Use <code>ParDo</code> and
<code>GroupByKey</code>.</p></li><li><p>Use the <code>Source</code>
interface and extend the <code>BoundedSource</code> abstract subclass.</p></li></ol><p><code>ParDo</code>
is the recommended option, as implementing a <code>Source</code> can be tricky.
See
-<a href=#when-to-use-source>When to use the Source interface</a> for a list of
some use
-cases where you might want to use a <code>Source</code> (such as
-<a href=/blog/2016/05/18/splitAtFraction-method.html>dynamic work rebalancing</a>).</p><p>(Java
only) For <strong>unbounded (streaming) sources</strong>, you must use the <code>Source</code>
-interface and extend the <code>UnboundedSource</code> abstract subclass. <code>UnboundedSource</code>
-supports features that are useful for streaming pipelines, such as
-checkpointing.</p><p>Splittable DoFn is a new sources framework that is under
development and will
-replace the other options for developing bounded and unbounded sources. For more
-information, see the
-<a href=/roadmap/connectors-multi-sdk/>roadmap for multi-SDK connector efforts</a>.</p><h3
id=when-to-use-source>When to use the Source interface</h3><p>If you are not
sure whether to use <code>Source</code>, feel free to email the <a href=/get-started/support>Beam
dev
-mailing list</a> and we can discuss the
-specific pros and cons of your case.</p><p>In some cases, implementing a <code>Source</code>
might be necessary or result in better
-performance:</p><ul><li><p><strong>Unbounded sources:</strong>
<code>ParDo</code> does not work for reading from unbounded
+Beam source:</p><ol><li><p>Use <code>Splittable DoFn</code>.</p></li><li><p>Use
<code>ParDo</code> and <code>GroupByKey</code>.</p></li></ol><p><code>Splittable
DoFn</code> is the recommended option, as it&rsquo;s the most recent source framework
for both
+bounded and unbounded sources. This is meant to replace the <code>Source</code>
APIs(
+<a href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/io/BoundedSource.html>BoundedSource</a>
and
+<a href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/io/UnboundedSource.html>UnboundedSource</a>)
+in the new system. Read
+<a href=/learn/programming-guide/#splittable-dofns>Splittable DoFn Programming Guide</a>
for how to write one
+Splittable DoFn. For more information, see the
+<a href=/roadmap/connectors-multi-sdk/>roadmap for multi-SDK connector efforts</a>.</p><p>For
Java and Python <strong>unbounded (streaming) sources</strong>, you must use the
<code>Splittable DoFn</code>, which
+supports features that are useful for streaming pipelines, including checkpointing, controlling
+watermark, and tracking backlog.</p><h3 id=when-to-use-splittable-dofn>When to
use the Splittable DoFn interface</h3><p>If you are not sure whether to use <code>Splittable
DoFn</code>, feel free to email the
+<a href=/get-started/support>Beam dev mailing list</a> and we can discuss the
specific pros and cons of your
+case.</p><p>In some cases, implementing a <code>Splittable DoFn</code>
might be necessary or result in better performance:</p><ul><li><p><strong>Unbounded
sources:</strong> <code>ParDo</code> does not work for reading from unbounded
 sources. <code>ParDo</code> does not support checkpointing or mechanisms like
de-duping
 that are useful for streaming data sources.</p></li><li><p><strong>Progress
and size estimation:</strong> <code>ParDo</code> can&rsquo;t provide
hints to runners about
 progress or the size of data they are reading. Without size estimation of the
@@ -34,14 +33,25 @@ allocate workers, it does not have any clues as to how many workers you
might
 need for your pipeline.</p></li><li><p><strong>Dynamic work
rebalancing:</strong> <code>ParDo</code> does not support dynamic work
 rebalancing, which is used by some readers to improve the processing speed of
 jobs. Depending on your data source, dynamic work rebalancing might not be
-possible.</p></li><li><p><strong>Splitting into parts of particular
size recommended by the runner:</strong> <code>ParDo</code>
-does not receive <code>desired_bundle_size</code> as a hint from runners when
performing
-initial splitting.</p></li></ul><p>For example, if you&rsquo;d
like to read from a new file format that contains many
+possible.</p></li><li><p><strong>Splitting initially to increase
parallelism:</strong> <code>ParDo</code>
+does not have the ability to perform initial splitting.</p></li></ul><p>For
example, if you&rsquo;d like to read from a new file format that contains many
 records per file, or if you&rsquo;d like to read from a key-value store that supports
-read operations in sorted key order.</p><h3 id=source>Source lifecycle</h3><p>Here
is a sequence diagram that shows the lifecycle of the Source during
-the execution of the Read transform of an IO. The comments give useful
-information to IO developers such as the constraints that
-apply to the objects or particular cases such as streaming mode.</p><p><img
src=/images/source-sequence-diagram.svg alt="This is a sequence diagram that shows the lifecycle
of the Source"></p><h3 id=using-pardo-and-groupbykey>Using ParDo and GroupByKey</h3><p>For
data stores or file types where the data can be read in parallel, you can
+read operations in sorted key order.</p><h3 id=io-examples-using-sdfs>I/O examples
using SDFs</h3><p><strong>Java Examples</strong></p><ul><li><a
href=https://github.com/apache/beam/blob/571338b0cc96e2e80f23620fe86de5c92dffaccc/sdks/java/io/kafka/src/main/java/org/apache/beam/sdk/io/kafka/ReadFromKafkaDoFn.java#L118>Kafka</a>:
+An I/O connector for <a href=https://kafka.apache.org/>Apache Kafka</a>
+(an open-source distributed event streaming platform).</li><li><a href=https://github.com/apache/beam/blob/571338b0cc96e2e80f23620fe86de5c92dffaccc/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/Watch.java#L787>Watch</a>:
+Uses a polling function producing a growing set of outputs for each input until a per-input
+termination condition is met.</li><li><a href=https://github.com/apache/beam/blob/571338b0cc96e2e80f23620fe86de5c92dffaccc/sdks/java/io/parquet/src/main/java/org/apache/beam/sdk/io/parquet/ParquetIO.java#L365>Parquet</a>:
+An I/O connector for <a href=https://parquet.apache.org/>Apache Parquet</a>
+(an open-source columnar storage format).</li><li><a href=https://github.com/apache/beam/blob/6fdde4f4eab72b49b10a8bb1cb3be263c5c416b5/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/healthcare/HL7v2IO.java#L493>HL7v2</a>:
+An I/O connector for HL7v2 messages (a clinical messaging format that provides data about
events
+that occur inside an organization) part of
+<a href=https://cloud.google.com/healthcare>Google’s Cloud Healthcare API</a>.</li><li><a
href=https://github.com/apache/beam/blob/571338b0cc96e2e80f23620fe86de5c92dffaccc/sdks/java/core/src/main/java/org/apache/beam/sdk/io/Read.java#L248>BoundedSource
wrapper</a>:
+A wrapper which converts an existing <a href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/io/BoundedSource.html>BoundedSource</a>
+implementation to a splittable DoFn.</li><li><a href=https://github.com/apache/beam/blob/571338b0cc96e2e80f23620fe86de5c92dffaccc/sdks/java/core/src/main/java/org/apache/beam/sdk/io/Read.java#L432>UnboundedSource
wrapper</a>:
+A wrapper which converts an existing <a href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/io/UnboundedSource.html>UnboundedSource</a>
+implementation to a splittable DoFn.</li></ul><p><strong>Python Examples</strong></p><ul><li><a
href=https://github.com/apache/beam/blob/571338b0cc96e2e80f23620fe86de5c92dffaccc/sdks/python/apache_beam/io/iobase.py#L1375>BoundedSourceWrapper</a>:
+A wrapper which converts an existing <a href=https://beam.apache.org/releases/pydoc/current/apache_beam.io.iobase.html#apache_beam.io.iobase.BoundedSource>BoundedSource</a>
+implementation to a splittable DoFn.</li></ul><h3 id=using-pardo-and-groupbykey>Using
ParDo and GroupByKey</h3><p>For data stores or file types where the data can be
read in parallel, you can
 think of the process as a mini-pipeline. This often consists of two steps:</p><ol><li><p>Splitting
the data into parts to be read in parallel</p></li><li><p>Reading
from each of those parts</p></li></ol><p>Each of those steps will
be a <code>ParDo</code>, with a <code>GroupByKey</code> in between.
The
 <code>GroupByKey</code> is an implementation detail, but for most runners <code>GroupByKey</code>
 allows the runner to use different numbers of workers in some situations:</p><ul><li><p>Determining
how to split up the data to be read into chunks</p></li><li><p>Reading
data, which often benefits from more workers</p></li></ul><p>In addition,
<code>GroupByKey</code> also allows dynamic work rebalancing to happen on
@@ -64,7 +74,7 @@ received records to the data store. To develop more complex sinks (for example,
 to support data de-duplication when failures are retried by a runner), use
 <code>ParDo</code>, <code>GroupByKey</code>, and other available
Beam transforms.</p><p>For <strong>file-based sinks</strong>, you
can use the <code>FileBasedSink</code> abstraction that is
 provided by both the Java and Python SDKs. See our language specific
-implementation guides for more details:</p><ul><li><a href=/documentation/io/developing-io-java/>Developing
I/O connectors for Java</a></li><li><a href=/documentation/io/developing-io-python/>Developing
I/O connectors for Python</a></li></ul></div></div><footer
class=footer><div class=footer__contained><div class=footer__cols><div class=footer__cols__col><div
class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo
alt="Beam logo"></div><div class=footer__co [...]
+implementation guides for more details:</p></div></div><footer class=footer><div
class=footer__contained><div class=footer__cols><div class=footer__cols__col><div
class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo
alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg
class=footer__logo alt="Apache logo"></div></div><div class="footer__cols__col
footer__cols__col--md"><div class=footer__cols__col__title>Start</ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam,
the Beam logo, and the Apache feather logo are either registered trademarks or trademarks
of The Apache Software Foundation. All other products or name brands are trademarks of their
respective holders, including The Apache Software Foundation.</div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/documentation/io/developing-io-python/index.html b/website/generated-content/documentation/io/developing-io-python/index.html
index 9121fbc..e43269d 100644
--- a/website/generated-content/documentation/io/developing-io-python/index.html
+++ b/website/generated-content/documentation/io/developing-io-python/index.html
@@ -1,7 +1,8 @@
 <!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta
http-equiv=x-ua-compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><title>Apache
Beam: Developing I/O connectors for Python</title><meta name=description content="Apache
Beam is an open source, unified model and set of language-specific SDKs for defining and executing
data processing workflows, and also data ingestion and integration flows, supporting Enterprise
Integration [...]
 <span class=sr-only>Toggle navigation</span>
 <span class=icon-bar></span><span class=icon-bar></span><span
class=icon-bar></span></button>
-<a href=/ class=navbar-brand><img alt=Brand style=height:25px src=/images/beam_logo_navbar.png></a></div><div
class="navbar-mask closed"></div><div id=navbar class="navbar-container closed"><ul
class="nav navbar-nav"><li><a href=/get-started/beam-overview/>Get Started</a></li><li><a
href=/documentation/>Documentation</a></li><li><a href=/documentation/sdks/java/>Languages</a></li><li><a
href=/documentation/runners/capability-matrix/>RUNNERS</a></li><li><a
href=/roadmap/>Roadmap</a></li>< [...]
+<a href=/ class=navbar-brand><img alt=Brand style=height:25px src=/images/beam_logo_navbar.png></a></div><div
class="navbar-mask closed"></div><div id=navbar class="navbar-container closed"><ul
class="nav navbar-nav"><li><a href=/get-started/beam-overview/>Get Started</a></li><li><a
href=/documentation/>Documentation</a></li><li><a href=/documentation/sdks/java/>Languages</a></li><li><a
href=/documentation/runners/capability-matrix/>RUNNERS</a></li><li><a
href=/roadmap/>Roadmap</a></li>< [...]
+the <a href=/documentation/io/developing-io-overview/>new I/O connector overview</a>.</p><p>To
connect to a data store that isn’t supported by Beam’s existing I/O
 connectors, you must create a custom I/O connector that usually consist of a
 source and a sink. All Beam sources and sinks are composite transforms; however,
 the implementation of your custom I/O depends on your use case. Before you
diff --git a/website/generated-content/documentation/programming-guide/index.html b/website/generated-content/documentation/programming-guide/index.html
index edca61c..f469c08 100644
--- a/website/generated-content/documentation/programming-guide/index.html
+++ b/website/generated-content/documentation/programming-guide/index.html
@@ -2835,6 +2835,10 @@ to annotate the <code>DoFn</code>.</p><div class=language-java><div
class=highli
   <span class=k>def</span> <span class=nf>process</span><span
class=p>(</span>
       <span class=bp>self</span><span class=p>,</span>
       <span class=n>file_name</span><span class=p>,</span>
+      <span class=c1># Alternatively, we can let FileToWordsFn itself inherit from</span>
+      <span class=c1># RestrictionProvider, implement the required methods and let</span>
+      <span class=c1># tracker=beam.DoFn.RestrictionParam() which will use self as</span>
+      <span class=c1># the provider.</span>
       <span class=n>tracker</span><span class=o>=</span><span
class=n>beam</span><span class=o>.</span><span class=n>DoFn</span><span
class=o>.</span><span class=n>RestrictionParam</span><span class=p>(</span><span
class=n>FileToWordsRestrictionProvider</span><span class=p>())):</span>
     <span class=k>with</span> <span class=nb>open</span><span
class=p>(</span><span class=n>file_name</span><span class=p>)</span>
<span class=k>as</span> <span class=n>file_handle</span><span class=p>:</span>
       <span class=n>file_handle</span><span class=o>.</span><span
class=n>seek</span><span class=p>(</span><span class=n>tracker</span><span
class=o>.</span><span class=n>current_restriction</span><span class=o>.</span><span
class=n>start</span><span class=p>())</span>
diff --git a/website/generated-content/sitemap.xml b/website/generated-content/sitemap.xml
index 9662fda..4be5e29 100644
--- a/website/generated-content/sitemap.xml
+++ b/website/generated-content/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>/blog/beam-2.25.0/</loc><lastmod>2020-10-29T14:08:19-07:00</lastmod></url><url><loc>/categories/blog/</loc><lastmod>2020-10-29T14:08:19-07:00</lastmod></url><url><loc>/blog/</loc><lastmod>2020-10-29T14:08:19-07:00</lastmod></url><url><loc>/categories/</loc><lastmod>2020-10-29T14:08:19-07:00</lastmod></url><url><loc>/blog/b
[...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>/blog/beam-2.25.0/</loc><lastmod>2020-10-29T14:08:19-07:00</lastmod></url><url><loc>/categories/blog/</loc><lastmod>2020-10-29T14:08:19-07:00</lastmod></url><url><loc>/blog/</loc><lastmod>2020-10-29T14:08:19-07:00</lastmod></url><url><loc>/categories/</loc><lastmod>2020-10-29T14:08:19-07:00</lastmod></url><url><loc>/blog/b
[...]
\ No newline at end of file


Mime
View raw message