Compare commits
19 commits
main
...
feature/ni
| Author | SHA1 | Date | |
|---|---|---|---|
| 6db343d73e | |||
| 9259a89c05 | |||
| 7673d544d4 | |||
| 6c8144f485 | |||
| 26b0180b21 | |||
| b030cf9c3f | |||
| 500dc3cb19 | |||
| c5d27e0af9 | |||
| 9d6352ce78 | |||
| 4cd058710a | |||
| a2105d8d2d | |||
| d704353af8 | |||
| e6102a0e39 | |||
| 0f252016b0 | |||
| dd9d421f9e | |||
| 9983def243 | |||
| 743ab70eee | |||
| a8e558b3d5 | |||
| 05080e720a |
12 changed files with 1411 additions and 3 deletions
4
.envrc
Normal file
4
.envrc
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
use flake
|
||||||
|
|
||||||
|
export POETRY_VIRTALENVS_IN_PROJECT=1
|
||||||
|
[ -d .venv ] && source .venv/bin/activate
|
||||||
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
/.venv/
|
||||||
|
/*.json
|
||||||
|
/*.db
|
||||||
747
README.org
747
README.org
|
|
@ -61,6 +61,753 @@ csvs-to-sqlite \
|
||||||
#+RESULTS:
|
#+RESULTS:
|
||||||
: Loaded 1 dataframes
|
: Loaded 1 dataframes
|
||||||
: Added 1 CSV file to dbs/earth.db
|
: Added 1 CSV file to dbs/earth.db
|
||||||
|
*** Stroll
|
||||||
|
|
||||||
|
This database is created from a series of GPX file which I track on my phone using [[https://f-droid.org/en/packages/net.osmand.plus/][Osmand]]. They are in turn synced to my Odroid HC2 to which I have access from wherever.
|
||||||
|
|
||||||
|
#+name: target_db
|
||||||
|
strolling.db
|
||||||
|
|
||||||
|
**** Fetching *.gpx files
|
||||||
|
|
||||||
|
#+begin_src bash
|
||||||
|
mkdir -p sources/strolling
|
||||||
|
rsync -srv arne@timbre.arnes.space:osmand-tracks/rec/ sources/strolling/
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+RESULTS:
|
||||||
|
#+begin_example
|
||||||
|
receiving incremental file list
|
||||||
|
2019-06/2019-06-09_11-54_Sun.gpx
|
||||||
|
2019-06/2019-06-09_19-22_Sun.gpx
|
||||||
|
2019-06/2019-06-10_11-57_Mon.gpx
|
||||||
|
2019-06/2019-06-17_19-56_Mon.gpx
|
||||||
|
2019-06/2019-06-26_07-54_Wed.gpx
|
||||||
|
2019-06/2019-06-27_12-26_Thu.gpx
|
||||||
|
2019-06/Kanufahrt auf der Lahn.gpx
|
||||||
|
2019-08/2019-08-16_08-15_Fri.gpx
|
||||||
|
2019-08/2019-08-20_08-42_Tue.gpx
|
||||||
|
2019-08/2019-08-22_08-21_Thu.gpx
|
||||||
|
2019-08/2019-08-22_14-15_Thu.gpx
|
||||||
|
2019-08/2019-08-23_09-00_Fri.gpx
|
||||||
|
2019-08/2019-08-24_08-42_Sat.gpx
|
||||||
|
2019-08/2019-08-24_18-07_Sat.gpx
|
||||||
|
2019-08/2019-08-25_10-39_Sun.gpx
|
||||||
|
2019-08/2019-08-25_23-37_Sun.gpx
|
||||||
|
2019-08/2019-08-26_12-25_Mon.gpx
|
||||||
|
2019-08/2019-08-27_06-28_Tue.gpx
|
||||||
|
2019-08/2019-08-27_09-07_Tue.gpx
|
||||||
|
2019-08/2019-08-27_19-53_Tue.gpx
|
||||||
|
2019-08/2019-08-28_08-26_Wed.gpx
|
||||||
|
2019-08/2019-08-28_11-33_Wed.gpx
|
||||||
|
2019-09/2019-09-02_18-19_Mon.gpx
|
||||||
|
2019-09/2019-09-04_07-36_Wed.gpx
|
||||||
|
2019-09/2019-09-19_08-31_Thu.gpx
|
||||||
|
2019-09/2019-09-21_11-30_Sat.gpx
|
||||||
|
2019-09/2019-09-29_16-52_Sun.gpx
|
||||||
|
2019-09/2019-09-29_18-54_Sun.gpx
|
||||||
|
2019-10/2019-10-02_08-42_Wed.gpx
|
||||||
|
2019-10/2019-10-02_08-57_Wed.gpx
|
||||||
|
2019-10/2019-10-03_14-04_Thu.gpx
|
||||||
|
2019-10/2019-10-09_09-05_Wed.gpx
|
||||||
|
2019-10/2019-10-12_09-57_Sat.gpx
|
||||||
|
2019-10/2019-10-14_19-46_Mon.gpx
|
||||||
|
2019-10/2019-10-14_19-58_Mon.gpx
|
||||||
|
2019-10/2019-10-18_08-49_Fri.gpx
|
||||||
|
2019-10/2019-10-29_09-56_Tue.gpx
|
||||||
|
2019-10/2019-10-31_07-45_Thu.gpx
|
||||||
|
2019-11/2019-11-01_19-19_Fri.gpx
|
||||||
|
2019-11/2019-11-08_09-57_Fri.gpx
|
||||||
|
2019-11/2019-11-09_10-21_Sat.gpx
|
||||||
|
2019-11/2019-11-13_09-17_Wed.gpx
|
||||||
|
2019-12/2019-12-04_18-49_Wed.gpx
|
||||||
|
2019-12/2019-12-07_09-25_Sat.gpx
|
||||||
|
2019-12/2019-12-12_07-50_Thu.gpx
|
||||||
|
2019-12/2019-12-18_07-59_Wed.gpx
|
||||||
|
2019-12/2019-12-20_08-47_Fri.gpx
|
||||||
|
2020-01/2020-01-02_20-31_Thu.gpx
|
||||||
|
2020-01/2020-01-06_13-48_Mon.gpx
|
||||||
|
2020-01/2020-01-09_20-10_Thu.gpx
|
||||||
|
2020-01/2020-01-12_09-48_Sun.gpx
|
||||||
|
2020-01/2020-01-15_07-45_Wed.gpx
|
||||||
|
2020-01/2020-01-17_08-28_Fri.gpx
|
||||||
|
2020-01/2020-01-20_09-43_Mon.gpx
|
||||||
|
2020-01/2020-01-22_07-38_Wed.gpx
|
||||||
|
2020-01/2020-01-27_09-35_Mon.gpx
|
||||||
|
2020-01/2020-01-31_07-21_Fri.gpx
|
||||||
|
2020-02/2020-02-01_10-54_Sat.gpx
|
||||||
|
2020-02/2020-02-04_08-01_Tue.gpx
|
||||||
|
2020-02/2020-02-23_11-52_Sun.gpx
|
||||||
|
2020-02/2020-02-24_09-17_Mon.gpx
|
||||||
|
2020-02/2020-02-26_09-03_Wed.gpx
|
||||||
|
2020-03/2020-03-02_10-00_Mon.gpx
|
||||||
|
2020-03/2020-03-04_08-43_Wed.gpx
|
||||||
|
2020-03/2020-03-06_08-59_Fri.gpx
|
||||||
|
2020-03/2020-03-09_08-46_Mon.gpx
|
||||||
|
2020-03/2020-03-11_08-07_Wed.gpx
|
||||||
|
2020-03/2020-03-14_11-41_Sat.gpx
|
||||||
|
2020-03/2020-03-16_09-20_Mon.gpx
|
||||||
|
2020-03/2020-03-18_09-31_Wed.gpx
|
||||||
|
2020-03/2020-03-19_14-11_Thu.gpx
|
||||||
|
2020-03/2020-03-20_09-13_Fri.gpx
|
||||||
|
2020-03/2020-03-22_10-57_Sun.gpx
|
||||||
|
2020-03/2020-03-23_09-11_Mon.gpx
|
||||||
|
2020-03/2020-03-24_17-27_Tue.gpx
|
||||||
|
2020-03/2020-03-25_18-37_Wed.gpx
|
||||||
|
2020-03/2020-03-26_08-53_Thu.gpx
|
||||||
|
2020-03/2020-03-28_11-22_Sat.gpx
|
||||||
|
2020-03/2020-03-30_08-12_Mon.gpx
|
||||||
|
2020-04/2020-04-01_08-52_Wed.gpx
|
||||||
|
2020-04/2020-04-03_08-18_Fri.gpx
|
||||||
|
2020-04/2020-04-05_12-58_Sun.gpx
|
||||||
|
2020-04/2020-04-07_16-48_Tue.gpx
|
||||||
|
2020-04/2020-04-08_07-52_Wed.gpx
|
||||||
|
2020-04/2020-04-10_08-49_Fri.gpx
|
||||||
|
2020-04/2020-04-11_11-57_Sat.gpx
|
||||||
|
2020-04/2020-04-12_10-43_Sun_2.gpx
|
||||||
|
2020-04/2020-04-14_09-02_Tue.gpx
|
||||||
|
2020-04/2020-04-17_09-15_Fri.gpx
|
||||||
|
2020-04/2020-04-18_11-42_Sat.gpx
|
||||||
|
2020-04/2020-04-19_10-24_Sun.gpx
|
||||||
|
2020-04/2020-04-21_08-45_Tue.gpx
|
||||||
|
2020-04/2020-04-23_08-51_Thu.gpx
|
||||||
|
2020-04/2020-04-24_12-40_Fri.gpx
|
||||||
|
2020-04/2020-04-27_10-31_Mon.gpx
|
||||||
|
2020-04/2020-04-29_16-14_Wed.gpx
|
||||||
|
2020-05/2020-05-06_07-15_Wed.gpx
|
||||||
|
2020-05/2020-05-08_11-54_Fri.gpx
|
||||||
|
2020-05/2020-05-08_12-36_Fri.gpx
|
||||||
|
2020-05/2020-05-09_12-41_Sat.gpx
|
||||||
|
2020-05/2020-05-11_18-27_Mon.gpx
|
||||||
|
2020-05/2020-05-12_19-26_Tue.gpx
|
||||||
|
2020-05/2020-05-13_09-01_Wed.gpx
|
||||||
|
2020-05/2020-05-18_15-52_Mon.gpx
|
||||||
|
2020-05/2020-05-20_09-04_Wed.gpx
|
||||||
|
2020-05/2020-05-23_11-16_Sat.gpx
|
||||||
|
2020-05/2020-05-25_09-09_Mon.gpx
|
||||||
|
2020-05/2020-05-27_09-08_Wed.gpx
|
||||||
|
2020-05/2020-05-29_08-40_Fri.gpx
|
||||||
|
2020-06/2020-06-01_11-14_Mon.gpx
|
||||||
|
2020-06/2020-06-03_08-50_Wed.gpx
|
||||||
|
2020-06/2020-06-06_11-21_Sat.gpx
|
||||||
|
2020-06/2020-06-10_09-00_Wed.gpx
|
||||||
|
2020-06/2020-06-11_19-53_Thu.gpx
|
||||||
|
2020-06/2020-06-15_19-19_Mon.gpx
|
||||||
|
2020-06/2020-06-19_08-46_Fri.gpx
|
||||||
|
2020-06/2020-06-22_09-36_Mon.gpx
|
||||||
|
2020-06/2020-06-24_10-18_Wed.gpx
|
||||||
|
2020-06/2020-06-24_16-35_Wed.gpx
|
||||||
|
2020-06/2020-06-26_09-31_Fri.gpx
|
||||||
|
2020-06/2020-06-29_08-49_Mon.gpx
|
||||||
|
2020-06/2020-06-30_09-13_Tue.gpx
|
||||||
|
2020-06/2020-06-30_09-55_Tue.gpx
|
||||||
|
2020-07/2020-07-01_10-51_Wed.gpx
|
||||||
|
2020-07/2020-07-01_16-04_Wed.gpx
|
||||||
|
2020-07/2020-07-02_09-29_Thu.gpx
|
||||||
|
2020-07/2020-07-02_18-26_Thu.gpx
|
||||||
|
2020-07/2020-07-03_11-38_Fri.gpx
|
||||||
|
2020-07/2020-07-03_18-00_Fri.gpx
|
||||||
|
2020-07/2020-07-04_10-57_Sat.gpx
|
||||||
|
2020-07/2020-07-05_09-43_Sun.gpx
|
||||||
|
2020-07/2020-07-07_07-50_Tue.gpx
|
||||||
|
2020-07/2020-07-10_08-41_Fri.gpx
|
||||||
|
2020-07/2020-07-12_11-20_Sun.gpx
|
||||||
|
2020-07/2020-07-14_08-48_Tue.gpx
|
||||||
|
2020-07/2020-07-16_08-51_Thu.gpx
|
||||||
|
2020-07/2020-07-17_07-25_Fri.gpx
|
||||||
|
2020-07/2020-07-19_01-24_Sun.gpx
|
||||||
|
2020-07/2020-07-20_08-54_Mon.gpx
|
||||||
|
2020-07/2020-07-20_11-12_Mon.gpx
|
||||||
|
2020-07/2020-07-21_07-05_Tue.gpx
|
||||||
|
2020-07/2020-07-24_08-26_Fri.gpx
|
||||||
|
2020-07/2020-07-24_09-53_Fri.gpx
|
||||||
|
2020-07/2020-07-24_11-18_Fri.gpx
|
||||||
|
2020-07/2020-07-24_12-38_Fri.gpx
|
||||||
|
2020-07/2020-07-27_09-06_Mon.gpx
|
||||||
|
2020-07/2020-07-29_07-26_Wed.gpx
|
||||||
|
2020-07/2020-07-31_08-51_Fri.gpx
|
||||||
|
2020-08/2020-08-01_20-01_Sat.gpx
|
||||||
|
2020-08/2020-08-04_09-24_Tue.gpx
|
||||||
|
2020-08/2020-08-06_08-36_Thu.gpx
|
||||||
|
2020-08/2020-08-19_08-48_Wed.gpx
|
||||||
|
2020-09/2020-09-08_13-52_Tue.gpx
|
||||||
|
2020-09/2020-09-09_11-31_Wed.gpx
|
||||||
|
2020-09/2020-09-09_12-18_Wed.gpx
|
||||||
|
2020-10/2020-10-12_00-14_Mon.gpx
|
||||||
|
2020-10/2020-10-12_11-17_Mon.gpx
|
||||||
|
2020-10/2020-10-20_09-41_Tue.gpx
|
||||||
|
2020-10/2020-10-24_08-55_Sat.gpx
|
||||||
|
2020-10/2020-10-24_20-08_Sat.gpx
|
||||||
|
2020-10/2020-10-25_12-56_Sun.gpx
|
||||||
|
2020-10/2020-10-26_09-32_Mon.gpx
|
||||||
|
2020-10/2020-10-26_12-27_Mon.gpx
|
||||||
|
2020-10/2020-10-26_21-16_Mon.gpx
|
||||||
|
2020-10/2020-10-27_08-58_Tue.gpx
|
||||||
|
2020-10/2020-10-27_12-32_Tue.gpx
|
||||||
|
2020-10/2020-10-28_10-36_Wed.gpx
|
||||||
|
2020-10/2020-10-28_11-56_Wed.gpx
|
||||||
|
2020-10/2020-10-28_13-00_Wed.gpx
|
||||||
|
2020-10/2020-10-29_17-23_Thu.gpx
|
||||||
|
2020-10/2020-10-29_21-20_Thu.gpx
|
||||||
|
2020-10/2020-10-31_14-37_Sat.gpx
|
||||||
|
2020-11/2020-11-01_13-00_Sun.gpx
|
||||||
|
2020-11/2020-11-02_10-23_Mon.gpx
|
||||||
|
2020-11/2020-11-03_10-01_Tue.gpx
|
||||||
|
2020-11/2020-11-03_14-17_Tue.gpx
|
||||||
|
2020-11/2020-11-03_16-30_Tue.gpx
|
||||||
|
2020-11/2020-11-03_17-25_Tue.gpx
|
||||||
|
2020-11/2020-11-03_17-44_Tue.gpx
|
||||||
|
2020-11/2020-11-03_19-28_Tue.gpx
|
||||||
|
2020-11/2020-11-04_10-34_Wed.gpx
|
||||||
|
2020-11/2020-11-04_18-22_Wed.gpx
|
||||||
|
2020-11/2020-11-06_19-50_Fri.gpx
|
||||||
|
2020-11/2020-11-07_11-12_Sat.gpx
|
||||||
|
2020-11/2020-11-07_12-53_Sat.gpx
|
||||||
|
2020-11/2020-11-09_10-48_Mon.gpx
|
||||||
|
2020-11/2020-11-09_20-38_Mon.gpx
|
||||||
|
2020-11/2020-11-11_10-13_Wed.gpx
|
||||||
|
2020-11/2020-11-11_12-50_Wed.gpx
|
||||||
|
2020-11/2020-11-11_15-13_Wed.gpx
|
||||||
|
2020-11/2020-11-11_15-58_Wed.gpx
|
||||||
|
2020-11/2020-11-11_18-54_Wed.gpx
|
||||||
|
2020-11/2020-11-13_19-44_Fri.gpx
|
||||||
|
2020-11/2020-11-14_14-11_Sat.gpx
|
||||||
|
2020-11/2020-11-14_18-58_Sat.gpx
|
||||||
|
2020-11/2020-11-16_11-06_Mon.gpx
|
||||||
|
2020-11/2020-11-16_15-11_Mon.gpx
|
||||||
|
2020-11/2020-11-17_11-30_Tue.gpx
|
||||||
|
2020-11/2020-11-17_19-21_Tue.gpx
|
||||||
|
2020-11/2020-11-18_10-05_Wed.gpx
|
||||||
|
2020-11/2020-11-18_12-40_Wed.gpx
|
||||||
|
2020-11/2020-11-18_15-36_Wed.gpx
|
||||||
|
2020-11/2020-11-18_19-58_Wed.gpx
|
||||||
|
2020-11/2020-11-19_08-35_Thu.gpx
|
||||||
|
2020-11/2020-11-20_20-13_Fri.gpx
|
||||||
|
2020-11/2020-11-21_11-07_Sat.gpx
|
||||||
|
2020-11/2020-11-21_12-18_Sat.gpx
|
||||||
|
2020-11/2020-11-22_14-41_Sun.gpx
|
||||||
|
2020-11/2020-11-24_09-08_Tue.gpx
|
||||||
|
2020-11/2020-11-24_11-17_Tue.gpx
|
||||||
|
2020-11/2020-11-24_18-20_Tue.gpx
|
||||||
|
2020-11/2020-11-25_10-10_Wed.gpx
|
||||||
|
2020-11/2020-11-25_12-06_Wed.gpx
|
||||||
|
2020-11/2020-11-25_14-07_Wed.gpx
|
||||||
|
2020-11/2020-11-25_20-14_Wed.gpx
|
||||||
|
2020-11/2020-11-26_09-04_Thu.gpx
|
||||||
|
2020-11/2020-11-27_09-13_Fri.gpx
|
||||||
|
2020-11/2020-11-28_11-31_Sat.gpx
|
||||||
|
2020-11/2020-11-29_12-25_Sun.gpx
|
||||||
|
2020-12/2020-12-01_08-19_Tue.gpx
|
||||||
|
2020-12/2020-12-01_11-11_Tue.gpx
|
||||||
|
2020-12/2020-12-01_19-02_Tue.gpx
|
||||||
|
2020-12/2020-12-02_10-08_Wed.gpx
|
||||||
|
2020-12/2020-12-02_12-42_Wed.gpx
|
||||||
|
2020-12/2020-12-03_09-02_Thu.gpx
|
||||||
|
2020-12/2020-12-03_19-49_Thu.gpx
|
||||||
|
2020-12/2020-12-03_22-08_Thu.gpx
|
||||||
|
2020-12/2020-12-04_20-30_Fri.gpx
|
||||||
|
2020-12/2020-12-05_02-14_Sat.gpx
|
||||||
|
2020-12/2020-12-05_15-05_Sat.gpx
|
||||||
|
2020-12/2020-12-05_17-32_Sat.gpx
|
||||||
|
2020-12/2020-12-05_19-52_Sat.gpx
|
||||||
|
2020-12/2020-12-06_12-39_Sun.gpx
|
||||||
|
2020-12/2020-12-06_16-46_Sun.gpx
|
||||||
|
2020-12/2020-12-06_18-08_Sun.gpx
|
||||||
|
2020-12/2020-12-08_08-46_Tue.gpx
|
||||||
|
2020-12/2020-12-09_10-16_Wed.gpx
|
||||||
|
2020-12/2020-12-09_11-46_Wed.gpx
|
||||||
|
2020-12/2020-12-12_20-44_Sat.gpx
|
||||||
|
2020-12/2020-12-13_04-28_Sun.gpx
|
||||||
|
2020-12/2020-12-13_15-01_Sun.gpx
|
||||||
|
2020-12/2020-12-15_08-45_Tue.gpx
|
||||||
|
2020-12/2020-12-15_12-11_Tue.gpx
|
||||||
|
2020-12/2020-12-16_20-02_Wed.gpx
|
||||||
|
2020-12/2020-12-17_08-10_Thu.gpx
|
||||||
|
2020-12/2020-12-17_09-45_Thu.gpx
|
||||||
|
2020-12/2020-12-18_08-52_Fri.gpx
|
||||||
|
2020-12/2020-12-20_11-26_Sun.gpx
|
||||||
|
2020-12/2020-12-20_13-22_Sun.gpx
|
||||||
|
2020-12/2020-12-20_14-04_Sun.gpx
|
||||||
|
2020-12/2020-12-20_21-45_Sun.gpx
|
||||||
|
2020-12/2020-12-20_23-31_Sun.gpx
|
||||||
|
2020-12/2020-12-21_08-53_Mon.gpx
|
||||||
|
2020-12/2020-12-21_12-56_Mon.gpx
|
||||||
|
2020-12/2020-12-22_18-14_Tue.gpx
|
||||||
|
2020-12/2020-12-23_16-13_Wed.gpx
|
||||||
|
2020-12/2020-12-24_10-45_Thu.gpx
|
||||||
|
2020-12/2020-12-26_09-13_Sat.gpx
|
||||||
|
2020-12/2020-12-27_18-18_Sun.gpx
|
||||||
|
2020-12/2020-12-27_18-53_Sun.gpx
|
||||||
|
2020-12/2020-12-27_19-24_Sun.gpx
|
||||||
|
2020-12/2020-12-28_10-18_Mon.gpx
|
||||||
|
2020-12/2020-12-28_16-40_Mon.gpx
|
||||||
|
2020-12/2020-12-29_13-17_Tue.gpx
|
||||||
|
2020-12/2020-12-29_14-00_Tue.gpx
|
||||||
|
2020-12/2020-12-30_10-15_Wed.gpx
|
||||||
|
2020-12/2020-12-30_15-41_Wed.gpx
|
||||||
|
2020-12/2020-12-31_15-15_Thu.gpx
|
||||||
|
2020-12/2020-12-31_17-21_Thu.gpx
|
||||||
|
2021-01/2021-01-03_11-21_Sun.gpx
|
||||||
|
2021-01/2021-01-04_19-39_Mon.gpx
|
||||||
|
2021-01/2021-01-04_23-59_Mon.gpx
|
||||||
|
2021-01/2021-01-05_08-43_Tue.gpx
|
||||||
|
2021-01/2021-01-05_11-16_Tue.gpx
|
||||||
|
2021-01/2021-01-05_15-46_Tue.gpx
|
||||||
|
2021-01/2021-01-06_09-35_Wed.gpx
|
||||||
|
2021-01/2021-01-06_11-24_Wed.gpx
|
||||||
|
2021-01/2021-01-06_18-47_Wed.gpx
|
||||||
|
2021-01/2021-01-07_10-03_Thu.gpx
|
||||||
|
2021-01/2021-01-09_10-10_Sat.gpx
|
||||||
|
2021-01/2021-01-09_19-09_Sat.gpx
|
||||||
|
2021-01/2021-01-09_20-29_Sat.gpx
|
||||||
|
2021-01/2021-01-10_14-11_Sun.gpx
|
||||||
|
2021-01/2021-01-10_19-41_Sun.gpx
|
||||||
|
2021-01/2021-01-10_21-02_Sun.gpx
|
||||||
|
2021-01/2021-01-11_09-02_Mon.gpx
|
||||||
|
2021-01/2021-01-12_12-05_Tue.gpx
|
||||||
|
2021-01/2021-01-12_17-59_Tue.gpx
|
||||||
|
2021-01/2021-01-13_09-41_Wed.gpx
|
||||||
|
2021-01/2021-01-13_11-37_Wed.gpx
|
||||||
|
2021-01/2021-01-13_20-57_Wed.gpx
|
||||||
|
2021-01/2021-01-14_08-46_Thu.gpx
|
||||||
|
2021-01/2021-01-15_08-26_Fri.gpx
|
||||||
|
2021-01/2021-01-15_09-30_Fri.gpx
|
||||||
|
2021-01/2021-01-16_13-40_Sat.gpx
|
||||||
|
2021-01/2021-01-17_13-27_Sun.gpx
|
||||||
|
2021-01/2021-01-17_14-55_Sun.gpx
|
||||||
|
2021-01/2021-01-17_16-45_Sun.gpx
|
||||||
|
2021-01/2021-01-19_08-55_Tue.gpx
|
||||||
|
2021-01/2021-01-20_09-46_Wed.gpx
|
||||||
|
2021-01/2021-01-20_11-36_Wed.gpx
|
||||||
|
2021-01/2021-01-21_09-00_Thu.gpx
|
||||||
|
2021-01/2021-01-22_09-07_Fri.gpx
|
||||||
|
2021-01/2021-01-23_08-19_Sat.gpx
|
||||||
|
2021-01/2021-01-23_09-42_Sat.gpx
|
||||||
|
2021-01/2021-01-24_11-39_Sun.gpx
|
||||||
|
2021-01/2021-01-25_09-56_Mon.gpx
|
||||||
|
2021-01/2021-01-25_11-03_Mon.gpx
|
||||||
|
2021-01/2021-01-25_19-53_Mon.gpx
|
||||||
|
2021-01/2021-01-25_22-54_Mon.gpx
|
||||||
|
2021-01/2021-01-26_08-46_Tue.gpx
|
||||||
|
2021-01/2021-01-27_20-19_Wed.gpx
|
||||||
|
2021-01/2021-01-28_09-08_Thu.gpx
|
||||||
|
2021-01/2021-01-30_10-54_Sat.gpx
|
||||||
|
2021-01/2021-01-31_11-24_Sun.gpx
|
||||||
|
2021-02/2021-02-03_09-43_Wed.gpx
|
||||||
|
2021-02/2021-02-09_08-11_Tue.gpx
|
||||||
|
2021-02/2021-02-09_10-47_Tue.gpx
|
||||||
|
2021-02/2021-02-09_18-57_Tue.gpx
|
||||||
|
2021-02/2021-02-10_12-39_Wed.gpx
|
||||||
|
2021-02/2021-02-10_19-48_Wed.gpx
|
||||||
|
2021-02/2021-02-11_11-09_Thu.gpx
|
||||||
|
2021-02/2021-02-12_10-56_Fri.gpx
|
||||||
|
2021-02/2021-02-12_19-45_Fri.gpx
|
||||||
|
2021-02/2021-02-13_12-02_Sat.gpx
|
||||||
|
2021-02/2021-02-14_12-08_Sun.gpx
|
||||||
|
2021-02/2021-02-14_18-33_Sun.gpx
|
||||||
|
2021-02/2021-02-15_11-00_Mon.gpx
|
||||||
|
2021-02/2021-02-16_19-33_Tue.gpx
|
||||||
|
2021-02/2021-02-17_04-19_Wed.gpx
|
||||||
|
2021-02/2021-02-17_11-53_Wed.gpx
|
||||||
|
2021-02/2021-02-17_19-52_Wed.gpx
|
||||||
|
2021-02/2021-02-18_09-11_Thu.gpx
|
||||||
|
2021-02/2021-02-18_19-35_Thu.gpx
|
||||||
|
2021-02/2021-02-19_10-15_Fri.gpx
|
||||||
|
2021-02/2021-02-19_17-29_Fri.gpx
|
||||||
|
2021-02/2021-02-21_10-31_Sun.gpx
|
||||||
|
2021-02/2021-02-21_19-27_Sun.gpx
|
||||||
|
2021-02/2021-02-21_21-08_Sun.gpx
|
||||||
|
2021-02/2021-02-22_10-00_Mon.gpx
|
||||||
|
2021-02/2021-02-22_11-03_Mon.gpx
|
||||||
|
2021-02/2021-02-22_20-33_Mon.gpx
|
||||||
|
2021-02/2021-02-23_08-31_Tue.gpx
|
||||||
|
2021-02/2021-02-23_10-45_Tue.gpx
|
||||||
|
2021-02/2021-02-23_19-24_Tue.gpx
|
||||||
|
2021-02/2021-02-23_22-03_Tue.gpx
|
||||||
|
2021-02/2021-02-24_11-15_Wed.gpx
|
||||||
|
2021-02/2021-02-25_09-03_Thu.gpx
|
||||||
|
2021-02/2021-02-25_10-25_Thu.gpx
|
||||||
|
2021-02/2021-02-26_10-21_Fri.gpx
|
||||||
|
2021-02/2021-02-26_19-15_Fri.gpx
|
||||||
|
2021-03/2021-03-01_08-43_Mon.gpx
|
||||||
|
2021-03/2021-03-01_10-38_Mon.gpx
|
||||||
|
2021-03/2021-03-02_09-54_Tue.gpx
|
||||||
|
2021-03/2021-03-02_19-15_Tue.gpx
|
||||||
|
2021-03/2021-03-03_08-34_Wed.gpx
|
||||||
|
2021-03/2021-03-03_11-35_Wed.gpx
|
||||||
|
2021-03/2021-03-03_18-15_Wed.gpx
|
||||||
|
2021-03/2021-03-04_09-26_Thu.gpx
|
||||||
|
2021-03/2021-03-04_20-04_Thu.gpx
|
||||||
|
2021-03/2021-03-05_08-34_Fri.gpx
|
||||||
|
2021-03/2021-03-05_10-22_Fri.gpx
|
||||||
|
2021-03/2021-03-05_19-03_Fri.gpx
|
||||||
|
2021-03/2021-03-05_20-19_Fri.gpx
|
||||||
|
2021-03/2021-03-06_04-31_Sat.gpx
|
||||||
|
2021-03/2021-03-06_19-15_Sat.gpx
|
||||||
|
2021-03/2021-03-07_13-56_Sun.gpx
|
||||||
|
2021-03/2021-03-08_10-57_Mon.gpx
|
||||||
|
2021-03/2021-03-08_16-14_Mon.gpx
|
||||||
|
2021-03/2021-03-08_19-12_Mon.gpx
|
||||||
|
2021-03/2021-03-09_08-49_Tue.gpx
|
||||||
|
2021-03/2021-03-09_09-40_Tue.gpx
|
||||||
|
2021-03/2021-03-09_19-46_Tue.gpx
|
||||||
|
2021-03/2021-03-10_08-55_Wed.gpx
|
||||||
|
2021-03/2021-03-10_11-22_Wed.gpx
|
||||||
|
2021-03/2021-03-10_18-34_Wed.gpx
|
||||||
|
2021-03/2021-03-11_09-01_Thu.gpx
|
||||||
|
2021-03/2021-03-11_20-25_Thu.gpx
|
||||||
|
2021-03/2021-03-12_07-35_Fri.gpx
|
||||||
|
2021-03/2021-03-12_09-18_Fri.gpx
|
||||||
|
2021-03/2021-03-12_19-59_Fri.gpx
|
||||||
|
2021-03/2021-03-13_07-53_Sat.gpx
|
||||||
|
2021-03/2021-03-14_16-21_Sun.gpx
|
||||||
|
2021-03/2021-03-15_10-24_Mon.gpx
|
||||||
|
2021-03/2021-03-15_18-53_Mon.gpx
|
||||||
|
2021-03/2021-03-16_08-50_Tue.gpx
|
||||||
|
2021-03/2021-03-16_10-05_Tue.gpx
|
||||||
|
2021-03/2021-03-16_19-37_Tue.gpx
|
||||||
|
2021-03/2021-03-18_08-36_Thu.gpx
|
||||||
|
2021-03/2021-03-18_09-40_Thu.gpx
|
||||||
|
2021-03/2021-03-18_10-35_Thu.gpx
|
||||||
|
2021-03/2021-03-19_15-31_Fri.gpx
|
||||||
|
2021-03/2021-03-19_20-34_Fri.gpx
|
||||||
|
2021-03/2021-03-19_21-07_Fri.gpx
|
||||||
|
2021-03/2021-03-20_05-15_Sat.gpx
|
||||||
|
2021-03/2021-03-20_11-30_Sat.gpx
|
||||||
|
2021-03/2021-03-21_13-23_Sun.gpx
|
||||||
|
2021-03/2021-03-21_16-46_Sun.gpx
|
||||||
|
2021-03/2021-03-21_19-51_Sun.gpx
|
||||||
|
2021-03/2021-03-22_12-55_Mon.gpx
|
||||||
|
2021-03/2021-03-23_09-03_Tue.gpx
|
||||||
|
2021-03/2021-03-24_20-10_Wed.gpx
|
||||||
|
2021-03/2021-03-25_08-46_Thu.gpx
|
||||||
|
2021-03/2021-03-26_08-59_Fri.gpx
|
||||||
|
2021-03/2021-03-26_10-31_Fri.gpx
|
||||||
|
2021-03/2021-03-26_18-43_Fri.gpx
|
||||||
|
2021-03/2021-03-27_17-12_Sat.gpx
|
||||||
|
2021-03/2021-03-27_20-10_Sat.gpx
|
||||||
|
2021-03/2021-03-28_15-05_Sun.gpx
|
||||||
|
2021-03/2021-03-29_08-54_Mon.gpx
|
||||||
|
2021-03/2021-03-30_10-04_Tue.gpx
|
||||||
|
2021-03/2021-03-30_20-00_Tue.gpx
|
||||||
|
2021-03/2021-03-31_08-25_Wed.gpx
|
||||||
|
2021-04/2021-04-01_08-45_Thu.gpx
|
||||||
|
2021-04/2021-04-02_16-09_Fri.gpx
|
||||||
|
2021-04/2021-04-03_13-34_Sat.gpx
|
||||||
|
2021-04/2021-04-04_12-00_Sun.gpx
|
||||||
|
2021-04/2021-04-06_08-35_Tue.gpx
|
||||||
|
2021-04/2021-04-08_09-34_Thu.gpx
|
||||||
|
2021-04/2021-04-08_12-42_Thu.gpx
|
||||||
|
2021-04/2021-04-09_08-30_Fri.gpx
|
||||||
|
2021-04/2021-04-09_18-44_Fri.gpx
|
||||||
|
2021-04/2021-04-10_15-13_Sat.gpx
|
||||||
|
2021-04/2021-04-10_22-42_Sat.gpx
|
||||||
|
2021-04/2021-04-11_12-26_Sun.gpx
|
||||||
|
2021-04/2021-04-12_08-50_Mon.gpx
|
||||||
|
2021-04/2021-04-12_13-15_Mon.gpx
|
||||||
|
2021-04/2021-04-12_19-49_Mon.gpx
|
||||||
|
2021-04/2021-04-13_08-47_Tue.gpx
|
||||||
|
2021-04/2021-04-13_13-20_Tue.gpx
|
||||||
|
2021-04/2021-04-13_16-36_Tue.gpx
|
||||||
|
2021-04/2021-04-13_20-54_Tue.gpx
|
||||||
|
2021-04/2021-04-14_08-46_Wed.gpx
|
||||||
|
2021-04/2021-04-14_12-26_Wed.gpx
|
||||||
|
2021-04/2021-04-14_19-59_Wed.gpx
|
||||||
|
2021-04/2021-04-15_08-41_Thu.gpx
|
||||||
|
2021-04/2021-04-15_17-51_Thu.gpx
|
||||||
|
2021-04/2021-04-16_08-42_Fri.gpx
|
||||||
|
2021-04/2021-04-18_12-11_Sun.gpx
|
||||||
|
2021-04/2021-04-18_17-49_Sun.gpx
|
||||||
|
2021-04/2021-04-19_09-13_Mon.gpx
|
||||||
|
2021-04/2021-04-20_08-40_Tue.gpx
|
||||||
|
2021-04/2021-04-20_10-57_Tue.gpx
|
||||||
|
2021-04/2021-04-20_20-15_Tue.gpx
|
||||||
|
2021-04/2021-04-22_08-41_Thu.gpx
|
||||||
|
2021-04/2021-04-23_08-43_Fri.gpx
|
||||||
|
2021-04/2021-04-24_16-55_Sat.gpx
|
||||||
|
2021-04/2021-04-25_11-50_Sun.gpx
|
||||||
|
2021-04/2021-04-25_20-27_Sun.gpx
|
||||||
|
2021-04/2021-04-26_05-29_Mon.gpx
|
||||||
|
2021-04/2021-04-26_11-49_Mon.gpx
|
||||||
|
2021-04/2021-04-27_08-38_Tue.gpx
|
||||||
|
2021-04/2021-04-28_08-40_Wed.gpx
|
||||||
|
2021-04/2021-04-29_08-38_Thu.gpx
|
||||||
|
2021-04/2021-04-29_19-29_Thu.gpx
|
||||||
|
2021-04/2021-04-30_10-14_Fri.gpx
|
||||||
|
2021-04/2021-04-30_17-36_Fri.gpx
|
||||||
|
2021-04/2021-04-30_17-52_Fri.gpx
|
||||||
|
2021-05/2021-05-03_09-49_Mon.gpx
|
||||||
|
2021-05/2021-05-03_11-33_Mon.gpx
|
||||||
|
2021-05/2021-05-10_10-21_Mon.gpx
|
||||||
|
2021-05/2021-05-10_13-38_Mon.gpx
|
||||||
|
2021-05/2021-05-10_15-09_Mon.gpx
|
||||||
|
2021-05/2021-05-11_09-49_Tue.gpx
|
||||||
|
2021-05/2021-05-11_10-18_Tue.gpx
|
||||||
|
2021-05/2021-05-13_15-08_Thu.gpx
|
||||||
|
2021-05/2021-05-15_10-00_Sat.gpx
|
||||||
|
2021-05/2021-05-19_09-05_Wed.gpx
|
||||||
|
2021-05/2021-05-21_08-50_Fri.gpx
|
||||||
|
2021-05/2021-05-23_09-44_Sun.gpx
|
||||||
|
2021-05/2021-05-24_10-27_Mon.gpx
|
||||||
|
2021-05/2021-05-25_09-10_Tue.gpx
|
||||||
|
2021-05/2021-05-25_11-45_Tue.gpx
|
||||||
|
2021-05/2021-05-25_14-25_Tue.gpx
|
||||||
|
2021-05/2021-05-26_14-52_Wed.gpx
|
||||||
|
2021-05/2021-05-26_19-10_Wed.gpx
|
||||||
|
2021-05/2021-05-27_08-44_Thu.gpx
|
||||||
|
2021-05/2021-05-29_11-01_Sat.gpx
|
||||||
|
2021-05/2021-05-29_11-11_Sat.gpx
|
||||||
|
2021-05/2021-05-31_08-57_Mon.gpx
|
||||||
|
2021-05/2021-05-31_13-37_Mon.gpx
|
||||||
|
2021-05/2021-05-31_15-33_Mon.gpx
|
||||||
|
2021-06/2021-06-02_08-52_Wed.gpx
|
||||||
|
2021-06/2021-06-03_07-25_Thu.gpx
|
||||||
|
2021-06/2021-06-04_08-49_Fri.gpx
|
||||||
|
2021-06/2021-06-07_08-45_Mon.gpx
|
||||||
|
2021-06/2021-06-12_08-19_Sat.gpx
|
||||||
|
2021-06/2021-06-12_08-57_Sat.gpx
|
||||||
|
2021-06/2021-06-15_20-34_Tue.gpx
|
||||||
|
2021-06/2021-06-16_08-40_Wed.gpx
|
||||||
|
2021-06/2021-06-18_08-45_Fri.gpx
|
||||||
|
2021-06/2021-06-18_14-04_Fri.gpx
|
||||||
|
2021-06/2021-06-18_15-44_Fri.gpx
|
||||||
|
2021-06/2021-06-21_14-01_Mon.gpx
|
||||||
|
2021-06/2021-06-22_08-21_Tue.gpx
|
||||||
|
2021-06/2021-06-25_08-50_Fri.gpx
|
||||||
|
2021-06/2021-06-29_09-08_Tue.gpx
|
||||||
|
2021-06/2021-06-29_10-34_Tue.gpx
|
||||||
|
2021-06/2021-06-29_18-22_Tue.gpx
|
||||||
|
2021-06/2021-06-30_09-52_Wed.gpx
|
||||||
|
2021-07/2021-07-02_09-03_Fri.gpx
|
||||||
|
2021-07/2021-07-02_11-27_Fri.gpx
|
||||||
|
2021-07/2021-07-02_11-56_Fri.gpx
|
||||||
|
2021-07/2021-07-06_08-24_Tue.gpx
|
||||||
|
2021-07/2021-07-11_12-17_Sun.gpx
|
||||||
|
2021-07/2021-07-11_19-10_Sun.gpx
|
||||||
|
2021-07/2021-07-12_19-02_Mon.gpx
|
||||||
|
2021-07/2021-07-13_07-28_Tue.gpx
|
||||||
|
2021-07/2021-07-13_18-24_Tue.gpx
|
||||||
|
2021-07/2021-07-14_14-38_Wed.gpx
|
||||||
|
2021-07/2021-07-14_18-48_Wed.gpx
|
||||||
|
2021-07/2021-07-15_09-38_Thu.gpx
|
||||||
|
2021-07/2021-07-15_15-07_Thu.gpx
|
||||||
|
2021-07/2021-07-16_10-22_Fri.gpx
|
||||||
|
2021-07/2021-07-16_10-51_Fri.gpx
|
||||||
|
2021-07/2021-07-16_17-29_Fri.gpx
|
||||||
|
2021-07/2021-07-17_00-37_Sat.gpx
|
||||||
|
2021-07/2021-07-17_11-19_Sat.gpx
|
||||||
|
2021-07/2021-07-18_13-58_Sun.gpx
|
||||||
|
2021-07/2021-07-18_15-24_Sun.gpx
|
||||||
|
2021-07/2021-07-19_21-45_Mon.gpx
|
||||||
|
2021-07/2021-07-20_09-38_Tue.gpx
|
||||||
|
2021-07/2021-07-21_09-31_Wed.gpx
|
||||||
|
2021-07/2021-07-21_17-46_Wed.gpx
|
||||||
|
2021-07/2021-07-22_09-43_Thu.gpx
|
||||||
|
2021-07/2021-07-22_11-47_Thu.gpx
|
||||||
|
2021-07/2021-07-23_08-31_Fri.gpx
|
||||||
|
2021-07/2021-07-26_08-56_Mon.gpx
|
||||||
|
2021-07/2021-07-29_09-26_Thu.gpx
|
||||||
|
2021-07/2021-07-29_11-08_Thu.gpx
|
||||||
|
2021-07/2021-07-30_10-22_Fri.gpx
|
||||||
|
2021-08/2021-08-01_17-48_Sun.gpx
|
||||||
|
2021-08/2021-08-01_23-19_Sun.gpx
|
||||||
|
2021-08/2021-08-02_09-10_Mon.gpx
|
||||||
|
2021-08/2021-08-02_11-53_Mon.gpx
|
||||||
|
2021-08/2021-08-03_14-05_Tue.gpx
|
||||||
|
2021-08/2021-08-04_13-19_Wed.gpx
|
||||||
|
2021-08/2021-08-05_09-30_Thu.gpx
|
||||||
|
2021-08/2021-08-05_18-00_Thu.gpx
|
||||||
|
2021-08/2021-08-05_19-19_Thu.gpx
|
||||||
|
2021-08/2021-08-06_09-06_Fri.gpx
|
||||||
|
2021-08/2021-08-07_11-34_Sat.gpx
|
||||||
|
2021-08/2021-08-08_12-10_Sun.gpx
|
||||||
|
2021-08/2021-08-08_16-40_Sun.gpx
|
||||||
|
2021-08/2021-08-08_17-48_Sun.gpx
|
||||||
|
2021-08/2021-08-08_18-25_Sun.gpx
|
||||||
|
2021-08/2021-08-08_19-19_Sun.gpx
|
||||||
|
2021-08/2021-08-09_10-05_Mon.gpx
|
||||||
|
2021-08/2021-08-09_18-58_Mon.gpx
|
||||||
|
2021-08/2021-08-10_09-43_Tue.gpx
|
||||||
|
2021-08/2021-08-11_08-27_Wed.gpx
|
||||||
|
2021-08/2021-08-11_10-18_Wed.gpx
|
||||||
|
2021-08/2021-08-11_16-50_Wed.gpx
|
||||||
|
2021-08/2021-08-12_09-39_Thu.gpx
|
||||||
|
2021-08/2021-08-12_11-17_Thu.gpx
|
||||||
|
2021-08/2021-08-26_08-10_Thu.gpx
|
||||||
|
2021-08/2021-08-26_19-46_Thu.gpx
|
||||||
|
2021-08/2021-08-27_11-03_Fri.gpx
|
||||||
|
2021-08/2021-08-28_10-13_Sat.gpx
|
||||||
|
2021-08/2021-08-28_10-19_Sat.gpx
|
||||||
|
2021-08/2021-08-30_10-20_Mon.gpx
|
||||||
|
2021-09/2021-09-01_09-46_Wed.gpx
|
||||||
|
2021-09/2021-09-02_11-16_Thu.gpx
|
||||||
|
2021-09/2021-09-02_19-08_Thu.gpx
|
||||||
|
2021-09/2021-09-03_17-24_Fri.gpx
|
||||||
|
2021-09/2021-09-03_20-05_Fri.gpx
|
||||||
|
2021-09/2021-09-04_09-27_Sat.gpx
|
||||||
|
2021-09/2021-09-07_10-11_Tue.gpx
|
||||||
|
2021-09/2021-09-08_18-54_Wed.gpx
|
||||||
|
2021-09/2021-09-08_21-07_Wed.gpx
|
||||||
|
2021-09/2021-09-09_08-36_Thu.gpx
|
||||||
|
2021-09/2021-09-09_09-40_Thu.gpx
|
||||||
|
2021-09/2021-09-09_11-15_Thu.gpx
|
||||||
|
2021-09/2021-09-10_11-02_Fri.gpx
|
||||||
|
2021-09/2021-09-10_12-20_Fri.gpx
|
||||||
|
2021-09/2021-09-10_12-23_Fri.gpx
|
||||||
|
2021-09/2021-09-11_11-23_Sat.gpx
|
||||||
|
2021-09/2021-09-12_17-04_Sun.gpx
|
||||||
|
2021-09/2021-09-12_20-08_Sun.gpx
|
||||||
|
2021-09/2021-09-13_09-00_Mon.gpx
|
||||||
|
2021-09/2021-09-14_10-14_Tue.gpx
|
||||||
|
2021-09/2021-09-16_09-19_Thu.gpx
|
||||||
|
2021-09/2021-09-18_22-16_Sat.gpx
|
||||||
|
2021-09/2021-09-19_19-17_Sun.gpx
|
||||||
|
2021-09/2021-09-20_16-15_Mon.gpx
|
||||||
|
2021-09/2021-09-21_20-24_Tue.gpx
|
||||||
|
2021-09/2021-09-22_10-47_Wed.gpx
|
||||||
|
2021-09/2021-09-23_08-23_Thu.gpx
|
||||||
|
2021-09/2021-09-23_09-41_Thu.gpx
|
||||||
|
2021-09/2021-09-27_07-59_Mon.gpx
|
||||||
|
2021-09/2021-09-27_08-22_Mon.gpx
|
||||||
|
2021-09/2021-09-27_08-30_Mon.gpx
|
||||||
|
2021-09/2021-09-29_09-36_Wed.gpx
|
||||||
|
2021-09/2021-09-29_13-35_Wed.gpx
|
||||||
|
2021-09/2021-09-30_10-35_Thu.gpx
|
||||||
|
2021-09/2021-09-30_12-31_Thu.gpx
|
||||||
|
2021-09/2021-09-30_17-59_Thu.gpx
|
||||||
|
2021-10/
|
||||||
|
2021-10/2021-10-01_12-10_Fri.gpx
|
||||||
|
2021-10/2021-10-06_08-58_Wed.gpx
|
||||||
|
2021-10/2021-10-06_13-37_Wed.gpx
|
||||||
|
2021-10/2021-10-06_15-23_Wed.gpx
|
||||||
|
2021-10/2021-10-07_19-57_Thu.gpx
|
||||||
|
2021-10/2021-10-09_13-38_Sat.gpx
|
||||||
|
2021-10/2021-10-11_07-51_Mon.gpx
|
||||||
|
2021-10/2021-10-12_17-13_Tue.gpx
|
||||||
|
2021-10/2021-10-12_21-03_Tue.gpx
|
||||||
|
2021-10/2021-10-13_08-59_Wed.gpx
|
||||||
|
2021-10/2021-10-14_10-37_Thu.gpx
|
||||||
|
2021-10/2021-10-15_09-00_Fri.gpx
|
||||||
|
2021-10/2021-10-17_09-34_Sun.gpx
|
||||||
|
2021-10/2021-10-19_08-49_Tue.gpx
|
||||||
|
2021-10/2021-10-19_20-16_Tue.gpx
|
||||||
|
2021-10/2021-10-20_10-09_Wed.gpx
|
||||||
|
2021-10/2021-10-21_10-29_Thu.gpx
|
||||||
|
2021-10/2021-10-21_11-57_Thu.gpx
|
||||||
|
2021-10/2021-10-25_19-10_Mon.gpx
|
||||||
|
2021-10/2021-10-25_21-25_Mon.gpx
|
||||||
|
2021-10/2021-10-26_08-56_Tue.gpx
|
||||||
|
2021-10/2021-10-26_18-04_Tue.gpx
|
||||||
|
2021-10/2021-10-28_10-34_Thu.gpx
|
||||||
|
2021-10/2021-10-28_12-33_Thu.gpx
|
||||||
|
2021-10/2021-10-28_20-34_Thu.gpx
|
||||||
|
2021-10/2021-10-29_08-30_Fri.gpx
|
||||||
|
2021-10/2021-10-30_11-06_Sat.gpx
|
||||||
|
2021-10/2021-10-30_11-57_Sat.gpx
|
||||||
|
2021-10/2021-10-30_14-32_Sat.gpx
|
||||||
|
2021-10/2021-10-30_18-33_Sat.gpx
|
||||||
|
2021-10/2021-10-31_10-30_Sun.gpx
|
||||||
|
2021-11/
|
||||||
|
2021-11/2021-11-01_12-02_Mon.gpx
|
||||||
|
2021-11/2021-11-01_16-47_Mon.gpx
|
||||||
|
2021-11/2021-11-03_09-39_Wed.gpx
|
||||||
|
2021-11/2021-11-03_16-56_Wed.gpx
|
||||||
|
2021-11/2021-11-03_22-23_Wed.gpx
|
||||||
|
2021-11/2021-11-05_09-43_Fri.gpx
|
||||||
|
2021-11/2021-11-10_13-58_Wed.gpx
|
||||||
|
2021-11/2021-11-11_10-34_Thu.gpx
|
||||||
|
2021-11/2021-11-11_12-24_Thu.gpx
|
||||||
|
2021-11/2021-11-11_19-42_Thu.gpx
|
||||||
|
2021-11/2021-11-12_11-00_Fri.gpx
|
||||||
|
2021-11/2021-11-15_08-39_Mon.gpx
|
||||||
|
2021-11/2021-11-15_19-31_Mon.gpx
|
||||||
|
2021-11/2021-11-16_08-34_Tue.gpx
|
||||||
|
2021-11/2021-11-17_09-50_Wed.gpx
|
||||||
|
2021-11/2021-11-17_16-34_Wed.gpx
|
||||||
|
2021-11/2021-11-17_21-05_Wed.gpx
|
||||||
|
2021-11/2021-11-17_22-51_Wed.gpx
|
||||||
|
2021-11/2021-11-18_10-58_Thu.gpx
|
||||||
|
2021-11/2021-11-18_18-20_Thu.gpx
|
||||||
|
2021-11/2021-11-19_09-34_Fri.gpx
|
||||||
|
2021-11/2021-11-19_13-17_Fri.gpx
|
||||||
|
2021-11/2021-11-22_19-42_Mon.gpx
|
||||||
|
2021-11/2021-11-22_22-37_Mon.gpx
|
||||||
|
2021-11/2021-11-23_09-35_Tue.gpx
|
||||||
|
2021-11/2021-11-24_09-17_Wed.gpx
|
||||||
|
2021-11/2021-11-25_10-42_Thu.gpx
|
||||||
|
2021-11/2021-11-25_12-10_Thu.gpx
|
||||||
|
2021-11/2021-11-26_09-34_Fri.gpx
|
||||||
|
2021-11/2021-11-26_19-38_Fri.gpx
|
||||||
|
2021-11/2021-11-27_10-11_Sat.gpx
|
||||||
|
2021-12/
|
||||||
|
2021-12/2021-12-01_09-19_Wed.gpx
|
||||||
|
2021-12/2021-12-02_10-40_Thu.gpx
|
||||||
|
2021-12/2021-12-02_12-02_Thu.gpx
|
||||||
|
2021-12/2021-12-03_12-26_Fri.gpx
|
||||||
|
2021-12/2021-12-03_17-07_Fri.gpx
|
||||||
|
2021-12/2021-12-04_13-27_Sat.gpx
|
||||||
|
2021-12/2021-12-06_09-02_Mon.gpx
|
||||||
|
2021-12/2021-12-10_08-21_Fri.gpx
|
||||||
|
2021-12/2021-12-10_09-28_Fri.gpx
|
||||||
|
2021-12/2021-12-10_12-33_Fri.gpx
|
||||||
|
2021-12/2021-12-11_17-01_Sat.gpx
|
||||||
|
|
||||||
|
sent 314,939 bytes received 5,364,990 bytes 2,271,971.60 bytes/sec
|
||||||
|
total size is 40,339,623 speedup is 7.10
|
||||||
|
#+end_example
|
||||||
|
|
||||||
|
**** Importing *.gpx files
|
||||||
|
|
||||||
|
This takes a while.
|
||||||
|
|
||||||
|
#+begin_src bash :results none :var target_db=target_db
|
||||||
|
# rm "$target_db"
|
||||||
|
for f in sources/strolling/**/*.gpx; do
|
||||||
|
spatialite_xml_load -x "$f" -d strolling.db
|
||||||
|
done
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+RESULTS:
|
||||||
|
|
||||||
|
**** Selecting some GPX tracks with metadata on individual points
|
||||||
|
|
||||||
|
- Note that we ignore `extensions_heading`.
|
||||||
|
- hdop = horizontal dilution of precision ([[https://en.wikipedia.org/wiki/Dilution_of_precision_(navigation)][info]])
|
||||||
|
|
||||||
|
#+name: points_query
|
||||||
|
#+begin_src sql
|
||||||
|
select
|
||||||
|
t.node_id track_id,
|
||||||
|
seg.node_id segment_id,
|
||||||
|
pt.node_id pt_id,
|
||||||
|
time.node_value timestamp,
|
||||||
|
AsWkt(ST_GeomFromText(
|
||||||
|
'POINT('||pt.lon||' '||pt.lat||')',
|
||||||
|
4326
|
||||||
|
)) geom,
|
||||||
|
ele.node_value elevation,
|
||||||
|
speed.node_value speed,
|
||||||
|
hdop.node_value hdop
|
||||||
|
from gpx_trk t
|
||||||
|
join gpx_trk_trkseg seg
|
||||||
|
on t.node_id = seg.parent_id
|
||||||
|
join gpx_trk_trkseg_trkpt pt
|
||||||
|
on seg.node_id = pt.parent_id
|
||||||
|
join gpx_trk_trkseg_trkpt_time time
|
||||||
|
on pt.node_id = time.parent_id
|
||||||
|
join gpx_trk_trkseg_trkpt_ele ele
|
||||||
|
on pt.node_id = ele.parent_id
|
||||||
|
join gpx_trk_trkseg_trkpt_extensions_speed speed
|
||||||
|
on pt.node_id = speed.parent_id
|
||||||
|
join gpx_trk_trkseg_trkpt_hdop hdop
|
||||||
|
on pt.node_id = hdop.parent_id;
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src fish :noweb yes
|
||||||
|
echo <<points_query>> | sed 's/;/ limit 10;/' | spatialite -csv strolling.db
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+RESULTS:
|
||||||
|
|
||||||
** Pitalls
|
** Pitalls
|
||||||
|
|
||||||
|
|
|
||||||
15
contrib/diogenes.service
Normal file
15
contrib/diogenes.service
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Diogenes Datasette
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
# Adapt these values how you see fit
|
||||||
|
Type=simple
|
||||||
|
User=diogenes
|
||||||
|
Environment=DATASETTE_SECRET=
|
||||||
|
Environment=DIOGENES_PASSWORD=
|
||||||
|
WorkingDirectory=/opt/diogenes
|
||||||
|
ExecStart=bash -c 'eval "poetry run datasette serve --load-extension=mod_spatialite.so --metadata metadata.yml --setting default_cache_ttl 3600 --setting sql_time_limit_ms 10000 --setting max_returned_rows 999 --cors $(for f in dbs/*; do echo -n "--immutable $f "; done)"'
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
59
flake.lock
generated
Normal file
59
flake.lock
generated
Normal file
|
|
@ -0,0 +1,59 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"flake-utils": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1629481132,
|
||||||
|
"narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "997f7efcb746a9c140ce1f13c72263189225f482",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1631127891,
|
||||||
|
"narHash": "sha256-osQLTGIVFZDoBBRNDFkX4yQp0wU/0SUZMJYQBRq3cfg=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "40d49815f227c88407c2f450c30dc06a40c8b5de",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"owid-co2-data": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1628314826,
|
||||||
|
"narHash": "sha256-4v5+s1NGKSoHw/2YEXMKLSq/gVcv1DaBIeiaxzHN/4s=",
|
||||||
|
"owner": "owid",
|
||||||
|
"repo": "co2-data",
|
||||||
|
"rev": "5b90be92e082cd03ace3d64338bd0538b025a06c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "owid",
|
||||||
|
"repo": "co2-data",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"owid-co2-data": "owid-co2-data"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
50
flake.nix
Normal file
50
flake.nix
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
{
|
||||||
|
description = "Automated deployment of my datasette instance.";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs";
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
|
||||||
|
# data sources
|
||||||
|
owid-co2-data = {
|
||||||
|
# TODO Include these two files:
|
||||||
|
# - https://github.com/owid/co2-data/blob/master/owid-co2-data.csv
|
||||||
|
# - https://github.com/owid/co2-data/blob/master/owid-co2-codebook.csv
|
||||||
|
url = "github:owid/co2-data";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs, flake-utils, ... }:
|
||||||
|
flake-utils.lib.eachDefaultSystem
|
||||||
|
(system:
|
||||||
|
let
|
||||||
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
# myApp = pkgs.poetry2nix.mkPoetryApplication {
|
||||||
|
# # this contains a python interpreter and datasette with addons
|
||||||
|
# projectDir = ./.;
|
||||||
|
# python = pkgs.python38;
|
||||||
|
# };
|
||||||
|
in {
|
||||||
|
devShell =
|
||||||
|
let
|
||||||
|
lib = pkgs.lib;
|
||||||
|
in pkgs.mkShell rec {
|
||||||
|
name = "datasette";
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
litecli
|
||||||
|
sqlite
|
||||||
|
libspatialite
|
||||||
|
spatialite_tools
|
||||||
|
rlwrap
|
||||||
|
|
||||||
|
datasette
|
||||||
|
python39
|
||||||
|
python39Packages.poetry
|
||||||
|
];
|
||||||
|
|
||||||
|
LD_LIBRARY_PATH = "${lib.makeLibraryPath buildInputs}";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
45
importers/gpx-tracks
Executable file
45
importers/gpx-tracks
Executable file
|
|
@ -0,0 +1,45 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euxo pipefail
|
||||||
|
|
||||||
|
usage () {
|
||||||
|
echo "Recursively imports all gpx tracks in a directory into an SQLite database."
|
||||||
|
echo ""
|
||||||
|
echo "Usage: $(basename $0) directory target-database"
|
||||||
|
}
|
||||||
|
|
||||||
|
gpx_directory="$1"
|
||||||
|
target_database="$2"
|
||||||
|
|
||||||
|
# basic argument verification
|
||||||
|
case "$@" in -h|--help) usage && exit 0;; esac
|
||||||
|
[ -z "$gpx_directory" ] && usage && exit 1
|
||||||
|
[ -z "$target_database" ] && usage && exit 1
|
||||||
|
|
||||||
|
# we write to a temporary location to make the replace option atomic (if on the same device)
|
||||||
|
tmp_dir="$(mktemp -d diogenes.XXXXX -p /tmp)"
|
||||||
|
tmp="$tmp_dir/$(basename $target_database)"
|
||||||
|
|
||||||
|
# recursive scan and import
|
||||||
|
while IFS= read -d '' -r file; do
|
||||||
|
spatialite_xml_load -d "$tmp" -x "$file"
|
||||||
|
done < <(find "$gpx_directory" -name '*.gpx' -print0)
|
||||||
|
|
||||||
|
indices=(
|
||||||
|
"gpx_metadata_name"
|
||||||
|
"gpx_metadata_time"
|
||||||
|
"gpx_trk_trkseg_trkpt_ele"
|
||||||
|
"gpx_trk_trkseg_trkpt_extensions"
|
||||||
|
"gpx_trk_trkseg_trkpt_extensions_heading"
|
||||||
|
"gpx_trk_trkseg_trkpt_extensions_speed"
|
||||||
|
"gpx_trk_trkseg_trkpt_hdop"
|
||||||
|
"gpx_trk_trkseg_trkpt_time"
|
||||||
|
)
|
||||||
|
for i in "${indices[@]}"
|
||||||
|
do
|
||||||
|
sqlite3 "$tmp" "CREATE INDEX ${i}_ ON $i ( node_value )"
|
||||||
|
done
|
||||||
|
|
||||||
|
mv -f "$tmp" "$target_database"
|
||||||
|
rm -rf "$tmp_dir"
|
||||||
|
|
||||||
|
# TODO: Create joined view
|
||||||
8
importers/owid.sh
Normal file
8
importers/owid.sh
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
${csvsToSqlite}/bin/csvs-to-sqlite \
|
||||||
|
--shape 'Entity:entity(text),Code:code(text),Year:year(integer),Cumulative CO2 emissions:cumulative_co2_emissions(real)' \
|
||||||
|
--index entity \
|
||||||
|
--index code \
|
||||||
|
--index year \
|
||||||
|
--replace-tables \
|
||||||
|
$src $out
|
||||||
11
metadata.yml
11
metadata.yml
|
|
@ -1,6 +1,14 @@
|
||||||
description: |
|
description: |
|
||||||
This is a somewhat random collection of statistics I found on the internet
|
This is a somewhat random collection of statistics I found on the internet
|
||||||
that, let's hope, help me win arguments.
|
that, let's hope, help me win arguments.
|
||||||
|
plugins:
|
||||||
|
datasette-auth-passwords:
|
||||||
|
diogenes_password_hash:
|
||||||
|
$env: "DIOGENES_PASSWORD"
|
||||||
|
actors:
|
||||||
|
diogenes:
|
||||||
|
id: "diogenes"
|
||||||
|
name: "Diogenes"
|
||||||
databases:
|
databases:
|
||||||
earth:
|
earth:
|
||||||
description: |
|
description: |
|
||||||
|
|
@ -25,3 +33,6 @@ databases:
|
||||||
source: "Our World In Data"
|
source: "Our World In Data"
|
||||||
source_url: "https://ourworldindata.org/grapher/projected-population-by-country"
|
source_url: "https://ourworldindata.org/grapher/projected-population-by-country"
|
||||||
license: "CC-BY 4.0"
|
license: "CC-BY 4.0"
|
||||||
|
tracks: # this is for authenticated users only
|
||||||
|
allow:
|
||||||
|
id: diogenes
|
||||||
|
|
|
||||||
452
poetry.lock
generated
Normal file
452
poetry.lock
generated
Normal file
|
|
@ -0,0 +1,452 @@
|
||||||
|
[[package]]
|
||||||
|
name = "aiofiles"
|
||||||
|
version = "0.7.0"
|
||||||
|
description = "File support for asyncio."
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6,<4.0"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "anyio"
|
||||||
|
version = "3.3.0"
|
||||||
|
description = "High level compatibility layer for multiple asynchronous event loop implementations"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6.2"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
idna = ">=2.8"
|
||||||
|
sniffio = ">=1.1"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
doc = ["sphinx-rtd-theme", "sphinx-autodoc-typehints (>=1.2.0)"]
|
||||||
|
test = ["coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "pytest (>=6.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (<0.15)", "mock (>=4)", "uvloop (>=0.15)"]
|
||||||
|
trio = ["trio (>=0.16)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "asgi-csrf"
|
||||||
|
version = "0.9"
|
||||||
|
description = "ASGI middleware for protecting against CSRF attacks"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
itsdangerous = "*"
|
||||||
|
python-multipart = "*"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
test = ["asgi-lifespan", "pytest-cov", "starlette", "httpx (>=0.16)", "pytest-asyncio", "pytest"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "asgiref"
|
||||||
|
version = "3.3.4"
|
||||||
|
description = "ASGI specs, helper code, and adapters"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
tests = ["pytest", "pytest-asyncio", "mypy (>=0.800)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "certifi"
|
||||||
|
version = "2021.5.30"
|
||||||
|
description = "Python package for providing Mozilla's CA Bundle."
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "click"
|
||||||
|
version = "8.0.1"
|
||||||
|
description = "Composable command line interface toolkit"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
colorama = {version = "*", markers = "platform_system == \"Windows\""}
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "click-default-group"
|
||||||
|
version = "1.2.2"
|
||||||
|
description = "Extends click.Group to invoke a command without explicit subcommand name"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
click = "*"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "colorama"
|
||||||
|
version = "0.4.4"
|
||||||
|
description = "Cross-platform colored terminal text."
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "datasette"
|
||||||
|
version = "0.60.2"
|
||||||
|
description = "An open source multi-tool for exploring and publishing data"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
aiofiles = ">=0.4,<0.9"
|
||||||
|
asgi-csrf = ">=0.9"
|
||||||
|
asgiref = ">=3.2.10,<3.5.0"
|
||||||
|
click = ">=7.1.1,<8.1.0"
|
||||||
|
click-default-group = ">=1.2.2,<1.3.0"
|
||||||
|
httpx = ">=0.20"
|
||||||
|
hupper = ">=1.9,<2.0"
|
||||||
|
itsdangerous = ">=1.1,<3.0"
|
||||||
|
janus = ">=0.6.2,<1.1"
|
||||||
|
Jinja2 = ">=2.10.3,<3.1.0"
|
||||||
|
mergedeep = ">=1.1.1,<1.4.0"
|
||||||
|
pint = ">=0.9,<1.0"
|
||||||
|
pluggy = ">=1.0,<1.1"
|
||||||
|
python-baseconv = "1.2.2"
|
||||||
|
PyYAML = ">=5.3,<7.0"
|
||||||
|
uvicorn = ">=0.11,<1.0"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
docs = ["sphinx-rtd-theme", "sphinx-autobuild", "codespell"]
|
||||||
|
rich = ["rich"]
|
||||||
|
test = ["pytest (==6.2.5)", "pytest-xdist (==2.5.0)", "pytest-asyncio (==0.16.0)", "beautifulsoup4 (==4.10.0)", "black (==21.12b0)", "pytest-timeout (==2.0.2)", "trustme (==0.9.0)", "cogapp (==3.3.0)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "datasette-auth-passwords"
|
||||||
|
version = "1.0"
|
||||||
|
description = "Datasette plugin for authenticating access using passwords"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
datasette = ">=0.59"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
test = ["httpx", "pytest-asyncio", "pytest"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "datasette-copyable"
|
||||||
|
version = "0.3.1"
|
||||||
|
description = "Datasette plugin for outputting tables in formats suitable for copy and paste"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
datasette = ">=0.49"
|
||||||
|
tabulate = "*"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
test = ["sqlite-utils", "httpx", "pytest-asyncio", "pytest"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "h11"
|
||||||
|
version = "0.12.0"
|
||||||
|
description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "httpcore"
|
||||||
|
version = "0.15.0"
|
||||||
|
description = "A minimal low-level HTTP client."
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
anyio = ">=3.0.0,<4.0.0"
|
||||||
|
certifi = "*"
|
||||||
|
h11 = ">=0.11,<0.13"
|
||||||
|
sniffio = ">=1.0.0,<2.0.0"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
http2 = ["h2 (>=3,<5)"]
|
||||||
|
socks = ["socksio (>=1.0.0,<2.0.0)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "httpx"
|
||||||
|
version = "0.23.0"
|
||||||
|
description = "The next generation HTTP client."
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
certifi = "*"
|
||||||
|
httpcore = ">=0.15.0,<0.16.0"
|
||||||
|
rfc3986 = {version = ">=1.3,<2", extras = ["idna2008"]}
|
||||||
|
sniffio = "*"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
brotli = ["brotlicffi", "brotli"]
|
||||||
|
cli = ["click (>=8.0.0,<9.0.0)", "rich (>=10,<13)", "pygments (>=2.0.0,<3.0.0)"]
|
||||||
|
http2 = ["h2 (>=3,<5)"]
|
||||||
|
socks = ["socksio (>=1.0.0,<2.0.0)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "hupper"
|
||||||
|
version = "1.10.3"
|
||||||
|
description = "Integrated process monitor for developing and reloading daemons."
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
docs = ["watchdog", "sphinx", "pylons-sphinx-themes"]
|
||||||
|
testing = ["watchdog", "pytest", "pytest-cov", "mock"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "idna"
|
||||||
|
version = "3.2"
|
||||||
|
description = "Internationalized Domain Names in Applications (IDNA)"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.5"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "itsdangerous"
|
||||||
|
version = "2.0.1"
|
||||||
|
description = "Safely pass data to untrusted environments and back."
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "janus"
|
||||||
|
version = "1.0.0"
|
||||||
|
description = "Mixed sync-async queue to interoperate between asyncio tasks and classic threads"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
typing-extensions = ">=3.7.4.3"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "jinja2"
|
||||||
|
version = "3.0.1"
|
||||||
|
description = "A very fast and expressive template engine."
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
MarkupSafe = ">=2.0"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
i18n = ["Babel (>=2.7)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "markupsafe"
|
||||||
|
version = "2.0.1"
|
||||||
|
description = "Safely add untrusted strings to HTML/XML markup."
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "mergedeep"
|
||||||
|
version = "1.3.4"
|
||||||
|
description = "A deep merge function for 🐍."
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "packaging"
|
||||||
|
version = "21.0"
|
||||||
|
description = "Core utilities for Python packages"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
pyparsing = ">=2.0.2"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pint"
|
||||||
|
version = "0.17"
|
||||||
|
description = "Physical quantities module"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
packaging = "*"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
numpy = ["numpy (>=1.14)"]
|
||||||
|
test = ["pytest", "pytest-mpl", "pytest-cov", "pytest-subtests"]
|
||||||
|
uncertainties = ["uncertainties (>=3.0)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pluggy"
|
||||||
|
version = "1.0.0"
|
||||||
|
description = "plugin and hook calling mechanisms for python"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
testing = ["pytest-benchmark", "pytest"]
|
||||||
|
dev = ["tox", "pre-commit"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pyparsing"
|
||||||
|
version = "2.4.7"
|
||||||
|
description = "Python parsing module"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "python-baseconv"
|
||||||
|
version = "1.2.2"
|
||||||
|
description = "Convert numbers from base 10 integers to base X strings and back again."
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "python-multipart"
|
||||||
|
version = "0.0.5"
|
||||||
|
description = "A streaming multipart parser for Python"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
six = ">=1.4.0"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pyyaml"
|
||||||
|
version = "5.4.1"
|
||||||
|
description = "YAML parser and emitter for Python"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rfc3986"
|
||||||
|
version = "1.5.0"
|
||||||
|
description = "Validating URI References per RFC 3986"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
idna = {version = "*", optional = true, markers = "extra == \"idna2008\""}
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
idna2008 = ["idna"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "six"
|
||||||
|
version = "1.16.0"
|
||||||
|
description = "Python 2 and 3 compatibility utilities"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "sniffio"
|
||||||
|
version = "1.2.0"
|
||||||
|
description = "Sniff out which async library your code is running under"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.5"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tabulate"
|
||||||
|
version = "0.8.10"
|
||||||
|
description = "Pretty-print tabular data"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
widechars = ["wcwidth"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "typing-extensions"
|
||||||
|
version = "4.3.0"
|
||||||
|
description = "Backported and Experimental Type Hints for Python 3.7+"
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "uvicorn"
|
||||||
|
version = "0.14.0"
|
||||||
|
description = "The lightning-fast ASGI server."
|
||||||
|
category = "main"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
asgiref = ">=3.3.4"
|
||||||
|
click = ">=7"
|
||||||
|
h11 = ">=0.8"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
standard = ["websockets (>=9.1)", "httptools (>=0.2.0,<0.3.0)", "watchgod (>=0.6)", "python-dotenv (>=0.13)", "PyYAML (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "colorama (>=0.4)"]
|
||||||
|
|
||||||
|
[metadata]
|
||||||
|
lock-version = "1.1"
|
||||||
|
python-versions = "^3.8"
|
||||||
|
content-hash = "e787dd6136fe591e949877b795d1d15a0ffc36e51f644025f0bf3e08fca98231"
|
||||||
|
|
||||||
|
[metadata.files]
|
||||||
|
aiofiles = []
|
||||||
|
anyio = []
|
||||||
|
asgi-csrf = []
|
||||||
|
asgiref = []
|
||||||
|
certifi = []
|
||||||
|
click = []
|
||||||
|
click-default-group = []
|
||||||
|
colorama = [
|
||||||
|
{file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
|
||||||
|
{file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"},
|
||||||
|
]
|
||||||
|
datasette = []
|
||||||
|
datasette-auth-passwords = []
|
||||||
|
datasette-copyable = []
|
||||||
|
h11 = []
|
||||||
|
httpcore = []
|
||||||
|
httpx = []
|
||||||
|
hupper = []
|
||||||
|
idna = []
|
||||||
|
itsdangerous = []
|
||||||
|
janus = []
|
||||||
|
jinja2 = []
|
||||||
|
markupsafe = []
|
||||||
|
mergedeep = []
|
||||||
|
packaging = []
|
||||||
|
pint = []
|
||||||
|
pluggy = []
|
||||||
|
pyparsing = []
|
||||||
|
python-baseconv = []
|
||||||
|
python-multipart = []
|
||||||
|
pyyaml = []
|
||||||
|
rfc3986 = []
|
||||||
|
six = [
|
||||||
|
{file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
|
||||||
|
{file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
|
||||||
|
]
|
||||||
|
sniffio = [
|
||||||
|
{file = "sniffio-1.2.0-py3-none-any.whl", hash = "sha256:471b71698eac1c2112a40ce2752bb2f4a4814c22a54a3eed3676bc0f5ca9f663"},
|
||||||
|
{file = "sniffio-1.2.0.tar.gz", hash = "sha256:c4666eecec1d3f50960c6bdf61ab7bc350648da6c126e3cf6898d8cd4ddcd3de"},
|
||||||
|
]
|
||||||
|
tabulate = []
|
||||||
|
typing-extensions = []
|
||||||
|
uvicorn = []
|
||||||
17
pyproject.toml
Normal file
17
pyproject.toml
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
[tool.poetry]
|
||||||
|
name = "diogenes"
|
||||||
|
version = "0.1.0"
|
||||||
|
description = ""
|
||||||
|
authors = ["arne <hi@arnes.space>"]
|
||||||
|
|
||||||
|
[tool.poetry.dependencies]
|
||||||
|
python = "^3.8"
|
||||||
|
datasette = "^0.60.1"
|
||||||
|
datasette-auth-passwords = "^1.0"
|
||||||
|
datasette-copyable = "^0.3.1"
|
||||||
|
|
||||||
|
[tool.poetry.dev-dependencies]
|
||||||
|
|
||||||
|
[build-system]
|
||||||
|
requires = ["poetry-core>=1.0.0"]
|
||||||
|
build-backend = "poetry.core.masonry.api"
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
datasette
|
|
||||||
datasette-vega
|
|
||||||
datasette-copyable
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue