Skip to main content
Gpxity is a Python - library making it easy to move GPS-based activities between different backends.
In this context, a backend is a place where activities can be stored.

And there is a command line utility **gpxdo** helping you organize your activities.
It lets you list, copy, merge, remove, edit, fix, compare backends and activities.

Find the documentation here: https://gpxity.readthedocs.io/en/latest/

The library currently implements those backends:

* :class:`~gpxity.backends.directory.Directory`: Directory for .gpx files on an accessible file system
* :class:`~gpxity.backends.server_directory.ServerDirectory`: Directory suited for server implementations
* :class:`~gpxity.backends.gpsies.GPSIES`: For activities on https://gpsies.com
* :class:`~gpxity.backends.mmt.MMT`: For activities on http://mapmytracks.com
* :class:`~gpxity.backends.trackmmt.TrackMMT`: For activities on a very simple server emulating a
few MMT commands (just what oruxmaps uses for uploading)

Some backends might not support everything Gxpity wants and you will get the
exception NotImplementedError().

Sometimes you might just change a harmless thing like the description but
the backend does not allow changing this separately, so we have to re-upload
the whole activity. If it is is big and the remote server slow, this might
take some time. Right now this library has no asynchronous interface,
so it can really take some time until your program continues.

Sometimes Gpxity uses undocumented ways to access a backend - this is done
when there is no documented way or when the official API implementation is
buggy or too slow for real-life use.

Backends might change their behaviour, I intend to update Gpxity quickly
in that case. The unittests of gpxity should notice all relevant changes.


Changelog
=========

1.2.4 release 2018-06-05
------------------------
* utility for testing installation in a docker container
* version number is not in the source anymore, setup.py creates version.py

1.2.2 release 2018-04-25
------------------------
* gpxdo ls --long is no longer ignored
* explicitly enforce utf-8 when reading or writing .gpx files
* improve setup.py
* require gpxpy 1.2.0


1.2.1 release 2018-04-17
------------------------
* Backend has a new arg "timeout"
* README has a link to readthedocs
* Auth: added an example
* Backend.sync_from is gone, there are now Activity.merge() and Backend.merge()
* diverse fixes for gpxdo
* Activity.what is now always in internal format
* Simplify specific backend code by moving more code into the general Backend class
* Activity.dirty is gone, there now is Activity.rewrite()
* Backend: renamed save() to add()
* Activity.identifier is new, to be used by gpxdo
* Activity.length is the track length
* gpxdo ls has many more options, including --sort
* gpxdo rm has a new option --dry-run


1.2.0 release 2018-04-09
------------------------
* New backend GPSIES for www.gpsies.com
* New: Command line utility "gpxdo" exposing commands for listing, copying,
merging, removing, editing, fixing, comparing
* New class BackendDiff
* Backend: rename copy_all_from to sync_from and add parameters
* hide class Authenticate from public API
* Define assumption about points having to be ordered by time
* Do not use slow GPX.get_time_bounds()
* Activity.last_time now is a property
* MMT: Map Activity.keywords to MMT tags
* Activity.keywords now returns them sorted
* MMT: login only once per backend instance
* Make list(Activity) sortable (by title)
* New: Activity.adjust_time()
* Activity: Improve __str__ and __repr__
* Backend can now be used as an iterable
* New class BackendDiff
* MMT now supports life tracking
* New generator Activity.segments()
* Simplify usage of auth.conf
* fix illegal XML generated by gpxy for GPX 1.1
* New: Backend.match implements client-side filtering
* New: BackendException
* New: Map values for "what" between different backends
* New: Backend.legal_whats shows the values for "what" supported by a backend


1.1.2 release 2017-03-4
------------------------
* a first example
* simplify authentication
* simplify Backend API
* len(backend) is the number of activities
* Allow backend[x] and x in backend
* hide Backend.activities, directly add needed methods to Backend
* MMT: Download activity sometimes did not download the entire track
* bin/test and bin/coverage now accept test method names (without `test_` prefix)
* Directory: removes dead links without raising an exception
* Activity.description never returns None
* Activity: Parsing illegal GPX XML now prints a more helpful error message
* Activity.clone() first does load_full
* Activity(gpx=gpx) now handles keywords correctly
* Backend.save() now accepts ident=str
* Directory tries not to use illegal file names for symlinks

1.1.1 released 2017-02-26
--------------------------
* Added Changelog

1.1.0 released 2017-02-26
--------------------------
* New backend ServerDirectory

1.0.1 released 2017-02-25
--------------------------
* Documentation fixes

1.0.0 released 2017-02-25
--------------------------
* Initial version supporting backends Directory and MMT





Metadata

Release files for Gpxity 1.2.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Gpxity 1.2.4
File Size Uploaded
Gpxity-1.2.4.tar.gz 80.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for Gpxity 1.2.4
File Interpreter ABI Platform
Gpxity-1.2.4-py3-none-any.whl Python 3 none any Details

Total release size: 147.7 kB

Release files / Gpxity-1.2.4.tar.gz

Download URL Gpxity-1.2.4.tar.gz
Size 80.1 kB
Tags Source
SHA-256 checksum
How to use checksums
fefd188cfe29e0d0d58be3eba1e78b2d7ea8e12278efba644e0cbd4b10dd8aea
BLAKE2b-256 checksum
How to use checksums
87d4a8608a695d4873635a4166958ebf15f77816c71061083db57020fbc11fdb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / Gpxity-1.2.4-py3-none-any.whl

Download URL Gpxity-1.2.4-py3-none-any.whl
Size 67.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1f926454f4dfcbe314fe507e01922200f0ef2e8b1d181df1417b73d1138101f9
BLAKE2b-256 checksum
How to use checksums
0d4331e75cc792344f509ed1708fba74ecd614e2dd8679321c814a96976bdef1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

1.7.2

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.6

2 release files

1.2.5

2 release files

This release

1.2.4 This release

2 release files

1.2.2

1 release file

1.2.0

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.0.0

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page