Source code for komoog.io

# -*- coding: utf-8 -*-
"""
File I/O.
"""

import pathlib
from pathlib import Path
import simplejson as json
from komoog.paths import customdir
from scipy.io import wavfile
import gpxpy

tour_file = customdir / "tours.json"

[docs]def read_tours(): """Read downloaded tours from ``~/.komoog/tours.json``""" if not tour_file.exists(): raise FileNotFoundError("Couldn't find any downloaded tours. Please call komoog.komoot.download_all_komoot_tours() first.") with open(tour_file,'r') as f: tours = json.load(f) return tours
[docs]def write_tours(tours): """Write downloaded tours to ``~/.komoog/tours.json``""" with open(tour_file,'w') as f: json.dump(tours,f)
[docs]def write_wav(fn,audio_data,sampling_rate): """ Write audio data to a wav file. """ wavfile.write(fn,sampling_rate,audio_data)
[docs]def read_gpx(fn): """ Read a gpx file. Returns a `gpxpy.GPX` object. Pass to :func:`komoog.gpx.convert_gpx_tracks_to_arrays` as .. code:: python gpx = read_gpx('Tour.gpx') convert_gpx_tracks_to_arrays(gpx.tracks) to retrieve distance and elevation profile. """ with open(fn,'r') as gpx_file: gpx = gpxpy.parse(gpx_file) return gpx