{"id":18004686,"url":"https://github.com/polyvertex/fitdecode","last_synced_at":"2025-04-05T09:07:05.002Z","repository":{"id":43347859,"uuid":"139739158","full_name":"polyvertex/fitdecode","owner":"polyvertex","description":"A FIT file parsing and decoding library written in Python3","archived":false,"fork":false,"pushed_at":"2024-06-25T02:26:01.000Z","size":2167,"stargazers_count":156,"open_issues_count":13,"forks_count":34,"subscribers_count":15,"default_branch":"master","last_synced_at":"2024-10-30T01:44:57.473Z","etag":null,"topics":["ant","decoder","fit","fit-sdk","garmin","parser","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/polyvertex.png","metadata":{"files":{"readme":"README.rst","changelog":"HISTORY.rst","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-07-04T15:27:31.000Z","updated_at":"2024-10-04T09:49:05.000Z","dependencies_parsed_at":"2024-06-18T19:57:19.909Z","dependency_job_id":"a78fcd8b-c64d-4d65-9be6-1782910f3eb6","html_url":"https://github.com/polyvertex/fitdecode","commit_stats":{"total_commits":156,"total_committers":3,"mean_commits":52.0,"dds":"0.012820512820512775","last_synced_commit":"667240dfa8ce8db3b0a9390bbc58d8b3d55fc937"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polyvertex%2Ffitdecode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polyvertex%2Ffitdecode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polyvertex%2Ffitdecode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polyvertex%2Ffitdecode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/polyvertex","download_url":"https://codeload.github.com/polyvertex/fitdecode/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247312078,"owners_count":20918344,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ant","decoder","fit","fit-sdk","garmin","parser","python"],"created_at":"2024-10-30T00:15:26.286Z","updated_at":"2025-04-05T09:07:04.952Z","avatar_url":"https://github.com/polyvertex.png","language":"Python","readme":"=========\nfitdecode\n=========\n\n.. image:: https://readthedocs.org/projects/fitdecode/badge/?version=latest\n    :target: https://fitdecode.readthedocs.io/\n    :alt: Latest Docs\n\n.. image:: https://api.travis-ci.com/polyvertex/fitdecode.svg\n    :target: https://app.travis-ci.com/github/polyvertex/fitdecode\n\n\nA `FIT \u003chttps://developer.garmin.com/fit/overview/\u003e`_ file parsing and decoding\nlibrary written in `Python3 \u003chttps://www.python.org/\u003e`_ (``\u003e= 3.6``).\n\n\nUsage Example\n=============\n\nRead a FIT file, frame by frame:\n\n.. code:: python\n\n    import fitdecode\n\n    with fitdecode.FitReader('file.fit') as fit:\n        for frame in fit:\n            # The yielded frame object is of one of the following types:\n            # * fitdecode.FitHeader (FIT_FRAME_HEADER)\n            # * fitdecode.FitDefinitionMessage (FIT_FRAME_DEFINITION)\n            # * fitdecode.FitDataMessage (FIT_FRAME_DATA)\n            # * fitdecode.FitCRC (FIT_FRAME_CRC)\n\n            if frame.frame_type == fitdecode.FIT_FRAME_DATA:\n                # Here, frame is a FitDataMessage object.\n                # A FitDataMessage object contains decoded values that\n                # are directly usable in your script logic.\n                print(frame.name)\n\n\nCommand line utilities\n----------------------\n\n``fitjson`` exports JSON:\n\n::\n\n    $ fitjson --pretty -o out_file.json in_file.fit\n\nTo ease the introspection or your FIT files, ``fittxt`` exports to a dedicated\nTXT format::\n\n    $ fittxt -o out_file.txt in_file.fit\n\nBoth commands accept a ``--filter`` option (or ``-f``) which can be specified\nmultiples times::\n\n    $ # include only RECORD messages:\n    $ fitjson -f=record -o out_file.json in_file.fit\n\n    $ # exclude FILE_ID and EVENT messages:\n    $ fitjson -f=-file_id -f=-event -o out_file.json in_file.fit\n\n\nInstallation\n============\n\nfitdecode is available on `PyPI \u003chttps://pypi.org/project/fitdecode/\u003e`_::\n\n    $ pip install fitdecode\n\n\nOr, to get the latest working version, you can clone fitdecode's `source code\nrepository \u003chttps://github.com/polyvertex/fitdecode\u003e`_ before installing it::\n\n    $ git clone git@github.com:polyvertex/fitdecode.git\n    $ cd fitdecode\n    $ python setup.py test     # optional step to run unit tests\n    $ python setup.py install\n\n\nNote that for convenience, the ``cmd`` directory located at the root of the\nsource code tree can safely be added to your ``PATH``, so that fitdecode\ncommands can be called without the package to be installed.\n\n\nOverview\n========\n\nfitdecode is a non offensive and incompatible rewrite of the fitparse_ library,\nwith some improvements and additional features, as well as efforts made to\noptimize both speed and memory usage.\n\nMain differences between fitdecode and fitparse:\n\n* fitdecode's API is not compatible with fitparse's\n\n* fitdecode requires Python version 3.6 or greater\n\n* fitdecode is faster\n\n* fitdecode allows concurrent reading of multiple files by being thread-safe, in\n  the sense that fitdecode's objects keep their state stored locally\n\n* fitdecode does not discard the FIT header and the CRC footer while iterating\n  a file, which allow to get a complete 1:1 representation of the file that is\n  being read\n\n* This also allows the client to easily deal with so-called chained FIT files,\n  as per FIT SDK definition (i.e. concatenated FIT files)\n\n* CRC computation and matching are both optional. CRC can be either matched, or\n  only computed, or just ignored for faster reading.\n\n* fitdecode offers optional access to records, headers and footers in their\n  binary form, to allow FIT file cutting, stitching and filtering at binary\n  level\n\n\nWhy a new library?\n==================\n\nA new library has been created instead of just offering to patch fitparse_\nbecause many changes and adds in fitdecode break fitparse's backward\ncompatibilty and because it allowed more freedom during the development of\nfitdecode.\n\n\nDocumentation\n=============\n\nDocumentation is available at `\u003chttps://fitdecode.readthedocs.io/\u003e`_\n\n\nLicense\n=======\n\nThis project is distributed under the terms of the MIT license.\nSee the `LICENSE.txt \u003cLICENSE.txt\u003e`_ file for details.\n\n\nCredits\n=======\n\nfitdecode is largely based on the generic approach adopted by fitparse_ to\ndefine FIT types and to decode raw values. That includes the module\n``profile.py`` and all the classes it refers to, as well as the script\n``generate_profile.py``.\n\n\n\n.. _fitparse: https://github.com/dtcooper/python-fitparse\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolyvertex%2Ffitdecode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpolyvertex%2Ffitdecode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolyvertex%2Ffitdecode/lists"}