Skip to content

mgxd/migas-py

 
 

Repository files navigation

Migas Client

A Python package to communicate with a migas server.

About

migas (mee-gahs) is a Python client to facilitate communication with a migas server.

Usage

To start communicating with a migas server, the client must first be setup.

import migas; migas.setup()

By default, migas-py will communicate with the official hosted migas server. However it can easily be configured to communicate with any hosted migas server.

import migas; migas.setup(endpoint='your-endpoint')

setup() will populate the interal configuration, which is done at the process level.

API

migas includes the following functions to communicate with the telemetry server:

migas.add_project()

Send a breadcrumb with usage information to the server. Usage information includes:

  • application
  • application version
  • application status

The server will attempt to return version information about the project.

add_project example
>>> add_project('nipreps/migas-py', '0.0.1')
{'bad_versions': [],
 'cached': True,
 'latest_version': '0.0.4',
 'message': '',
 'success': True}

migas.get_usage()

Check number of uses a project has received from a start date, and optionally an end date. If no end date is specified, the current datetime is used.

get_usage example
>>> get_usage('nipreps/migas-py', '2022-07-01')
{'hits': 7, 'message': '', 'unique': False, 'success': True}

User Control

migas can controlled by the following environmental variables:

Envvar Description Value Default
MIGAS_OPTOUT Disable telemetry collection Any None
MIGAS_TIMEOUT Seconds to wait for server response Number >= 0 5
MIGAS_LOG_LEVEL Logger level Logging levels WARNING

Configuration

The internal configuration stores the following telemetry information:

  • language and language version
  • operating system
  • run within a container
  • run from continuous integration

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%