Skip to content

Commit

Permalink
A get_dates() method for MultiGtfsInstance (#238)
Browse files Browse the repository at this point in the history
* feat: get_dates() for mgtfs; feat: tests for get_dates()

* docs: small clarification in docstring

* Update test_multi_validation.py

update assertions

---------

Co-authored-by: Sergio Recio <[email protected]> e4f27a6
  • Loading branch information
SergioRec committed Jan 22, 2024
1 parent e15d523 commit d08c406
Show file tree
Hide file tree
Showing 6 changed files with 100 additions and 33 deletions.
37 changes: 37 additions & 0 deletions _modules/transport_performance/gtfs/multi_validation.html
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,8 @@ <h1>Source code for transport_performance.gtfs.multi_validation</h1><div class="
<span class="sd"> Plot each of the stops from all GtfsInstance&#39;s on a folium Map object.</span>
<span class="sd"> validate_empty_feeds()</span>
<span class="sd"> Check if there are empty feeds within the MultiGtfsInstance.</span>
<span class="sd"> get_dates()</span>
<span class="sd"> Get the range of dates that the gtfs(s) span.</span>

<span class="sd"> Raises</span>
<span class="sd"> ------</span>
Expand Down Expand Up @@ -748,6 +750,41 @@ <h1>Source code for transport_performance.gtfs.multi_validation</h1><div class="
<span class="k">if</span> <span class="n">return_viz</span><span class="p">:</span>
<span class="k">return</span> <span class="nb">map</span>
<span class="k">return</span> <span class="kc">None</span></div>


<div class="viewcode-block" id="MultiGtfsInstance.get_dates">
<a class="viewcode-back" href="../../../reference/_autosummary/transport_performance.gtfs.multi_validation.MultiGtfsInstance.html#transport_performance.gtfs.multi_validation.MultiGtfsInstance.get_dates">[docs]</a>
<span class="k">def</span> <span class="nf">get_dates</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">return_range</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">list</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Get all available dates from calendar.txt (or calendar_dates.txt).</span>

<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> return_range : bool, optional</span>
<span class="sd"> Whether to return the raw dates, or the min/max range, by default</span>
<span class="sd"> True</span>

<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> list</span>
<span class="sd"> Either the full set of dates, or the range that the dates span</span>
<span class="sd"> between</span>

<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">_type_defence</span><span class="p">(</span><span class="n">return_range</span><span class="p">,</span> <span class="s2">&quot;return_range&quot;</span><span class="p">,</span> <span class="nb">bool</span><span class="p">)</span>
<span class="n">available_dates</span> <span class="o">=</span> <span class="nb">set</span><span class="p">()</span>
<span class="k">for</span> <span class="n">inst</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">instances</span><span class="p">:</span>
<span class="c1"># gtfs-kit makes calendar None if it isn&#39;t present</span>
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">inst</span><span class="o">.</span><span class="n">feed</span><span class="o">.</span><span class="n">calendar</span><span class="p">,</span> <span class="nb">type</span><span class="p">(</span><span class="kc">None</span><span class="p">)):</span>
<span class="n">available_dates</span><span class="o">.</span><span class="n">update</span><span class="p">(</span>
<span class="n">inst</span><span class="o">.</span><span class="n">feed</span><span class="o">.</span><span class="n">calendar_dates</span><span class="p">[</span><span class="s2">&quot;date&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">unique</span><span class="p">()</span>
<span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">available_dates</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">inst</span><span class="o">.</span><span class="n">feed</span><span class="o">.</span><span class="n">calendar</span><span class="p">[</span><span class="s2">&quot;start_date&quot;</span><span class="p">])</span>
<span class="n">available_dates</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">inst</span><span class="o">.</span><span class="n">feed</span><span class="o">.</span><span class="n">calendar</span><span class="p">[</span><span class="s2">&quot;end_date&quot;</span><span class="p">])</span>
<span class="n">sorted_dates</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">available_dates</span><span class="p">)</span>
<span class="k">if</span> <span class="n">return_range</span><span class="p">:</span>
<span class="k">return</span> <span class="p">[</span><span class="nb">min</span><span class="p">(</span><span class="n">sorted_dates</span><span class="p">),</span> <span class="nb">max</span><span class="p">(</span><span class="n">sorted_dates</span><span class="p">)]</span>
<span class="k">return</span> <span class="n">sorted_dates</span></div>
</div>

</pre></div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ MultiGtfsInstance
~MultiGtfsInstance.clean_feeds
~MultiGtfsInstance.filter_to_bbox
~MultiGtfsInstance.filter_to_date
~MultiGtfsInstance.get_dates
~MultiGtfsInstance.is_valid
~MultiGtfsInstance.save_feeds
~MultiGtfsInstance.summarise_routes
Expand Down
2 changes: 2 additions & 0 deletions genindex.html
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,8 @@ <h2 id="F">F</h2>
<h2 id="G">G</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference/_autosummary/transport_performance.gtfs.multi_validation.MultiGtfsInstance.html#transport_performance.gtfs.multi_validation.MultiGtfsInstance.get_dates">get_dates() (transport_performance.gtfs.multi_validation.MultiGtfsInstance method)</a>
</li>
<li><a href="reference/_autosummary/transport_performance.osm.validate_osm.FindIds.html#transport_performance.osm.validate_osm.FindIds.get_feature_ids">get_feature_ids() (transport_performance.osm.validate_osm.FindIds method)</a>
</li>
<li><a href="reference/_autosummary/transport_performance.gtfs.validation.GtfsInstance.html#transport_performance.gtfs.validation.GtfsInstance.get_gtfs_files">get_gtfs_files() (transport_performance.gtfs.validation.GtfsInstance method)</a>
Expand Down
Binary file modified objects.inv
Binary file not shown.
Loading

0 comments on commit d08c406

Please sign in to comment.