Skip to content

Commit 1cb30f6

Browse files
committed
1 parent 8ddb9d8 commit 1cb30f6

23 files changed

+417
-344
lines changed

_sources/index.rst.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -273,13 +273,13 @@
273273

274274
.. card::
275275

276-
Latest release (2024-07-07):
276+
Latest release (2025-01-13):
277277

278-
.. button-link:: https://github.com/scikit-bio/scikit-bio/releases/tag/0.6.2
278+
.. button-link:: https://github.com/scikit-bio/scikit-bio/releases/tag/0.6.3
279279
:color: success
280280
:shadow:
281281

282-
scikit-bio 0.6.2
282+
scikit-bio 0.6.3
283283

284284
.. card::
285285

_sources/install.rst.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Install scikit-bio
55
Python
66
------
77

8-
scikit-bio requires `Python <https://www.python.org/>`_ 3.8 or later installed in your system.
8+
scikit-bio requires `Python <https://www.python.org/>`_ 3.9 or later installed in your system.
99

1010

1111
Conda

_static/basic.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ div.sphinxsidebarwrapper {
4848

4949
div.sphinxsidebar {
5050
float: left;
51-
width: 270px;
51+
width: 230px;
5252
margin-left: -100%;
5353
font-size: 90%;
5454
word-wrap: break-word;

_static/pygments.css

Lines changed: 121 additions & 121 deletions
Large diffs are not rendered by default.

_static/scripts/pydata-sphinx-theme.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

_static/scripts/pydata-sphinx-theme.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

_static/styles/pydata-sphinx-theme.css

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

_static/styles/pydata-sphinx-theme.css.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

_static/webpack-macros.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,20 @@
55

66
{% macro head_pre_assets() %}
77
<!-- Loaded before other Sphinx assets -->
8-
<link href="{{ pathto('_static/styles/theme.css', 1) }}?digest=26a4bc78f4c0ddb94549" rel="stylesheet" />
9-
<link href="{{ pathto('_static/styles/pydata-sphinx-theme.css', 1) }}?digest=26a4bc78f4c0ddb94549" rel="stylesheet" />
8+
<link href="{{ pathto('_static/styles/theme.css', 1) }}?digest=8878045cc6db502f8baf" rel="stylesheet" />
9+
<link href="{{ pathto('_static/styles/pydata-sphinx-theme.css', 1) }}?digest=8878045cc6db502f8baf" rel="stylesheet" />
1010
{% endmacro %}
1111

1212
{% macro head_js_preload() %}
1313
<!-- So that users can add custom icons -->
14-
<script src="{{ pathto('_static/scripts/fontawesome.js', 1) }}?digest=26a4bc78f4c0ddb94549"></script>
14+
<script src="{{ pathto('_static/scripts/fontawesome.js', 1) }}?digest=8878045cc6db502f8baf"></script>
1515
<!-- Pre-loaded scripts that we'll load fully later -->
16-
<link rel="preload" as="script" href="{{ pathto('_static/scripts/bootstrap.js', 1) }}?digest=26a4bc78f4c0ddb94549" />
17-
<link rel="preload" as="script" href="{{ pathto('_static/scripts/pydata-sphinx-theme.js', 1) }}?digest=26a4bc78f4c0ddb94549" />
16+
<link rel="preload" as="script" href="{{ pathto('_static/scripts/bootstrap.js', 1) }}?digest=8878045cc6db502f8baf" />
17+
<link rel="preload" as="script" href="{{ pathto('_static/scripts/pydata-sphinx-theme.js', 1) }}?digest=8878045cc6db502f8baf" />
1818
{% endmacro %}
1919

2020
{% macro body_post() %}
2121
<!-- Scripts loaded after <body> so the DOM is not blocked -->
22-
<script defer src="{{ pathto('_static/scripts/bootstrap.js', 1) }}?digest=26a4bc78f4c0ddb94549"></script>
23-
<script defer src="{{ pathto('_static/scripts/pydata-sphinx-theme.js', 1) }}?digest=26a4bc78f4c0ddb94549"></script>
22+
<script defer src="{{ pathto('_static/scripts/bootstrap.js', 1) }}?digest=8878045cc6db502f8baf"></script>
23+
<script defer src="{{ pathto('_static/scripts/pydata-sphinx-theme.js', 1) }}?digest=8878045cc6db502f8baf"></script>
2424
{% endmacro %}

about.html

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
document.documentElement.dataset.mode = localStorage.getItem("mode") || "";
1717
document.documentElement.dataset.theme = localStorage.getItem("theme") || "";
1818
</script>
19-
<!--
20-
this give us a css class that will be invisible only if js is disabled
19+
<!--
20+
this give us a css class that will be invisible only if js is disabled
2121
-->
2222
<noscript>
2323
<style>
@@ -27,19 +27,19 @@
2727
</noscript>
2828

2929
<!-- Loaded before other Sphinx assets -->
30-
<link href="_static/styles/theme.css?digest=26a4bc78f4c0ddb94549" rel="stylesheet" />
31-
<link href="_static/styles/pydata-sphinx-theme.css?digest=26a4bc78f4c0ddb94549" rel="stylesheet" />
30+
<link href="_static/styles/theme.css?digest=8878045cc6db502f8baf" rel="stylesheet" />
31+
<link href="_static/styles/pydata-sphinx-theme.css?digest=8878045cc6db502f8baf" rel="stylesheet" />
3232

33-
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=a746c00c" />
33+
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=8f2a1f02" />
3434
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
3535
<link rel="stylesheet" type="text/css" href="_static/sphinx-design.min.css?v=95c83b7e" />
3636
<link rel="stylesheet" type="text/css" href="_static/css/style.css?v=3e6c503c" />
3737

3838
<!-- So that users can add custom icons -->
39-
<script src="_static/scripts/fontawesome.js?digest=26a4bc78f4c0ddb94549"></script>
39+
<script src="_static/scripts/fontawesome.js?digest=8878045cc6db502f8baf"></script>
4040
<!-- Pre-loaded scripts that we'll load fully later -->
41-
<link rel="preload" as="script" href="_static/scripts/bootstrap.js?digest=26a4bc78f4c0ddb94549" />
42-
<link rel="preload" as="script" href="_static/scripts/pydata-sphinx-theme.js?digest=26a4bc78f4c0ddb94549" />
41+
<link rel="preload" as="script" href="_static/scripts/bootstrap.js?digest=8878045cc6db502f8baf" />
42+
<link rel="preload" as="script" href="_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf" />
4343

4444
<script src="_static/documentation_options.js?v=5929fcd5"></script>
4545
<script src="_static/doctools.js?v=9bcbadda"></script>
@@ -377,9 +377,14 @@
377377

378378

379379
<div class="sidebar-primary-items__end sidebar-primary__section">
380+
<div class="sidebar-primary-item">
381+
<div id="ethical-ad-placement"
382+
class="flat"
383+
data-ea-publisher="readthedocs"
384+
data-ea-type="readthedocs-sidebar"
385+
data-ea-manual="true">
386+
</div></div>
380387
</div>
381-
382-
<div id="rtd-footer-container"></div>
383388

384389

385390
</div>
@@ -496,8 +501,8 @@ <h2>Pre-history<a class="headerlink" href="#pre-history" title="Link to this hea
496501
</div>
497502

498503
<!-- Scripts loaded after <body> so the DOM is not blocked -->
499-
<script defer src="_static/scripts/bootstrap.js?digest=26a4bc78f4c0ddb94549"></script>
500-
<script defer src="_static/scripts/pydata-sphinx-theme.js?digest=26a4bc78f4c0ddb94549"></script>
504+
<script defer src="_static/scripts/bootstrap.js?digest=8878045cc6db502f8baf"></script>
505+
<script defer src="_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf"></script>
501506

502507
<footer class="bd-footer">
503508
<div class="bd-footer__inner bd-page-width">
@@ -508,7 +513,7 @@ <h2>Pre-history<a class="headerlink" href="#pre-history" title="Link to this hea
508513

509514
<p class="copyright">
510515

511-
© Copyright 2014-2024, scikit-bio development team.
516+
© Copyright 2014-2025, scikit-bio development team.
512517
<br/>
513518

514519
</p>
@@ -534,7 +539,8 @@ <h2>Pre-history<a class="headerlink" href="#pre-history" title="Link to this hea
534539

535540
<div class="footer-item">
536541
<p class="theme-version">
537-
Built with the <a href="https://pydata-sphinx-theme.readthedocs.io/en/stable/index.html">PyData Sphinx Theme</a> 0.16.0.
542+
<!-- # L10n: Setting the PST URL as an argument as this does not need to be localized -->
543+
Built with the <a href="https://pydata-sphinx-theme.readthedocs.io/en/stable/index.html">PyData Sphinx Theme</a> 0.16.1.
538544
</p></div>
539545

540546
</div>

contribute.html

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
document.documentElement.dataset.mode = localStorage.getItem("mode") || "";
1717
document.documentElement.dataset.theme = localStorage.getItem("theme") || "";
1818
</script>
19-
<!--
20-
this give us a css class that will be invisible only if js is disabled
19+
<!--
20+
this give us a css class that will be invisible only if js is disabled
2121
-->
2222
<noscript>
2323
<style>
@@ -27,19 +27,19 @@
2727
</noscript>
2828

2929
<!-- Loaded before other Sphinx assets -->
30-
<link href="_static/styles/theme.css?digest=26a4bc78f4c0ddb94549" rel="stylesheet" />
31-
<link href="_static/styles/pydata-sphinx-theme.css?digest=26a4bc78f4c0ddb94549" rel="stylesheet" />
30+
<link href="_static/styles/theme.css?digest=8878045cc6db502f8baf" rel="stylesheet" />
31+
<link href="_static/styles/pydata-sphinx-theme.css?digest=8878045cc6db502f8baf" rel="stylesheet" />
3232

33-
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=a746c00c" />
33+
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=8f2a1f02" />
3434
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
3535
<link rel="stylesheet" type="text/css" href="_static/sphinx-design.min.css?v=95c83b7e" />
3636
<link rel="stylesheet" type="text/css" href="_static/css/style.css?v=3e6c503c" />
3737

3838
<!-- So that users can add custom icons -->
39-
<script src="_static/scripts/fontawesome.js?digest=26a4bc78f4c0ddb94549"></script>
39+
<script src="_static/scripts/fontawesome.js?digest=8878045cc6db502f8baf"></script>
4040
<!-- Pre-loaded scripts that we'll load fully later -->
41-
<link rel="preload" as="script" href="_static/scripts/bootstrap.js?digest=26a4bc78f4c0ddb94549" />
42-
<link rel="preload" as="script" href="_static/scripts/pydata-sphinx-theme.js?digest=26a4bc78f4c0ddb94549" />
41+
<link rel="preload" as="script" href="_static/scripts/bootstrap.js?digest=8878045cc6db502f8baf" />
42+
<link rel="preload" as="script" href="_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf" />
4343

4444
<script src="_static/documentation_options.js?v=5929fcd5"></script>
4545
<script src="_static/doctools.js?v=9bcbadda"></script>
@@ -382,9 +382,14 @@
382382

383383

384384
<div class="sidebar-primary-items__end sidebar-primary__section">
385+
<div class="sidebar-primary-item">
386+
<div id="ethical-ad-placement"
387+
class="flat"
388+
data-ea-publisher="readthedocs"
389+
data-ea-type="readthedocs-sidebar"
390+
data-ea-manual="true">
391+
</div></div>
385392
</div>
386-
387-
<div id="rtd-footer-container"></div>
388393

389394

390395
</div>
@@ -626,12 +631,12 @@ <h2>Test code<a class="headerlink" href="#test-code" title="Link to this heading
626631
<h3>Functional test<a class="headerlink" href="#functional-test" title="Link to this heading">#</a></h3>
627632
<p>You will want to test your code like a <em>user</em> would do: import the function, execute it on some input data, and examine whether the results are correct. You may install additional software such as <a class="reference external" href="https://jupyter.org/">Jupyter</a> in the same conda environment to make the testing process convenient and pleasant. There is no need to reinstall the modified scikit-bio package in a separate environment in order to test. As soon as you edit the code, the changes will immediately reflect when you use the code.</p>
628633
<p>For example, you wrote a function <code class="docutils literal notranslate"><span class="pre">gc_content</span></code>, which calculates the fraction of <code class="docutils literal notranslate"><span class="pre">G</span></code> and <code class="docutils literal notranslate"><span class="pre">C</span></code> in a nucleotide sequence:</p>
629-
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">gc_content</span><span class="p">(</span><span class="n">seq</span><span class="p">):</span>
634+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">def</span><span class="w"> </span><span class="nf">gc_content</span><span class="p">(</span><span class="n">seq</span><span class="p">):</span>
630635
<span class="k">return</span> <span class="nb">sum</span><span class="p">(</span><span class="mi">1</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">seq</span> <span class="k">if</span> <span class="n">x</span> <span class="ow">in</span> <span class="s2">&quot;GC&quot;</span><span class="p">)</span> <span class="o">/</span> <span class="nb">len</span><span class="p">(</span><span class="n">seq</span><span class="p">)</span>
631636
</pre></div>
632637
</div>
633638
<p>You added this function to the code file <code class="docutils literal notranslate"><span class="pre">skbio/sequence/nucl.py</span></code>. It will be available for use in any Python code launched in the same conda environment:</p>
634-
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">skbio.sequence.nucl</span> <span class="kn">import</span> <span class="n">gc_content</span>
639+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">skbio.sequence.nucl</span><span class="w"> </span><span class="kn">import</span> <span class="n">gc_content</span>
635640
</pre></div>
636641
</div>
637642
<p>Now test the function on some data. For example, you would expect that <code class="docutils literal notranslate"><span class="pre">gc_content(&quot;ACGT&quot;)</span></code> and <code class="docutils literal notranslate"><span class="pre">gc_content(&quot;GGATCCGC&quot;)</span></code> return 0.5 and 0.75, respectively. Is that the case?</p>
@@ -641,7 +646,7 @@ <h3>Functional test<a class="headerlink" href="#functional-test" title="Link to
641646
<h3>Unit test<a class="headerlink" href="#unit-test" title="Link to this heading">#</a></h3>
642647
<p><a class="reference external" href="https://en.wikipedia.org/wiki/Unit_testing">Unit testing</a> involves testing the smallest units of your code, such as classes, functions, and methods, to ensure they function correctly in isolation. It is a fundamental best practice in software engineering, but is often overlooked by beginners. Unit testing is made easier by writing test code alongside the algorithm code. Both types of code are integrated into the scikit-bio codebase. This test code is then regularly executed whenever changes are made to ensure that the intended behavior remains consistent over time.</p>
643648
<p>For example, the test code for the <code class="docutils literal notranslate"><span class="pre">gc_content</span></code> may live in <code class="docutils literal notranslate"><span class="pre">skbio/sequence/tests/test_nucl.py</span></code>, under class <code class="docutils literal notranslate"><span class="pre">TestNucl</span></code>, as a method <code class="docutils literal notranslate"><span class="pre">test_gc_content</span></code>. It may read like:</p>
644-
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">test_gc_content</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
649+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">def</span><span class="w"> </span><span class="nf">test_gc_content</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
645650
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="n">gc_content</span><span class="p">(</span><span class="s2">&quot;ACGT&quot;</span><span class="p">),</span> <span class="mf">0.5</span><span class="p">)</span>
646651
<span class="bp">self</span><span class="o">.</span><span class="n">assertEqual</span><span class="p">(</span><span class="n">gc_content</span><span class="p">(</span><span class="s2">&quot;GGATCCGC&quot;</span><span class="p">),</span> <span class="mf">0.75</span><span class="p">)</span>
647652
<span class="o">...</span>
@@ -659,7 +664,7 @@ <h3>Unit test<a class="headerlink" href="#unit-test" title="Link to this heading
659664
</pre></div>
660665
</div>
661666
<p>Alternatively, you may run all unit tests in a Python session (including Jupyter):</p>
662-
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">skbio.test</span> <span class="kn">import</span> <span class="n">pytestrunner</span>
667+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span><span class="w"> </span><span class="nn">skbio.test</span><span class="w"> </span><span class="kn">import</span> <span class="n">pytestrunner</span>
663668
<span class="gp">&gt;&gt;&gt; </span><span class="n">pytestrunner</span><span class="p">()</span>
664669
</pre></div>
665670
</div>
@@ -699,7 +704,7 @@ <h3>Comments<a class="headerlink" href="#comments" title="Link to this heading">
699704
<h3>Docstrings<a class="headerlink" href="#docstrings" title="Link to this heading">#</a></h3>
700705
<p><a class="reference external" href="https://en.wikipedia.org/wiki/Docstring">Docstrings</a> are structured text blocks associated with each unit of the code that detail the usage of the code. Docstrings will be rendered to the software documentation. That is, <em>users</em> (not just developers) will read them. Therefore, docstrings are critical if you want your code to be used, and in the correct way.</p>
701706
<p>Below is a very simple example for the <code class="docutils literal notranslate"><span class="pre">gc_content</span></code>. The lines between the triple double quotes (<code class="docutils literal notranslate"><span class="pre">&quot;&quot;&quot;</span></code>) are the docstring:</p>
702-
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">gc_content</span><span class="p">(</span><span class="n">seq</span><span class="p">):</span>
707+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">def</span><span class="w"> </span><span class="nf">gc_content</span><span class="p">(</span><span class="n">seq</span><span class="p">):</span>
703708
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Calculate the GC content of a nucleotide sequence.</span>
704709

705710
<span class="sd"> Parameters</span>
@@ -722,7 +727,7 @@ <h3>Docstrings<a class="headerlink" href="#docstrings" title="Link to this headi
722727
<section id="doctests">
723728
<h3>Doctests<a class="headerlink" href="#doctests" title="Link to this heading">#</a></h3>
724729
<p>You may consider adding <strong>example usages</strong> of your code to its docstring. For example:</p>
725-
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">gc_content</span><span class="p">(</span><span class="n">seq</span><span class="p">):</span>
730+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">def</span><span class="w"> </span><span class="nf">gc_content</span><span class="p">(</span><span class="n">seq</span><span class="p">):</span>
726731
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Calculate the GC content of a nucleotide sequence.</span>
727732
<span class="sd"> ...</span>
728733

@@ -908,8 +913,8 @@ <h2>Review code<a class="headerlink" href="#review-code" title="Link to this hea
908913
</div>
909914

910915
<!-- Scripts loaded after <body> so the DOM is not blocked -->
911-
<script defer src="_static/scripts/bootstrap.js?digest=26a4bc78f4c0ddb94549"></script>
912-
<script defer src="_static/scripts/pydata-sphinx-theme.js?digest=26a4bc78f4c0ddb94549"></script>
916+
<script defer src="_static/scripts/bootstrap.js?digest=8878045cc6db502f8baf"></script>
917+
<script defer src="_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf"></script>
913918

914919
<footer class="bd-footer">
915920
<div class="bd-footer__inner bd-page-width">
@@ -920,7 +925,7 @@ <h2>Review code<a class="headerlink" href="#review-code" title="Link to this hea
920925

921926
<p class="copyright">
922927

923-
© Copyright 2014-2024, scikit-bio development team.
928+
© Copyright 2014-2025, scikit-bio development team.
924929
<br/>
925930

926931
</p>
@@ -946,7 +951,8 @@ <h2>Review code<a class="headerlink" href="#review-code" title="Link to this hea
946951

947952
<div class="footer-item">
948953
<p class="theme-version">
949-
Built with the <a href="https://pydata-sphinx-theme.readthedocs.io/en/stable/index.html">PyData Sphinx Theme</a> 0.16.0.
954+
<!-- # L10n: Setting the PST URL as an argument as this does not need to be localized -->
955+
Built with the <a href="https://pydata-sphinx-theme.readthedocs.io/en/stable/index.html">PyData Sphinx Theme</a> 0.16.1.
950956
</p></div>
951957

952958
</div>

0 commit comments

Comments
 (0)