maser4py offers modules to handle data from several space and ground radio observatory.
It comes with the following submodules:
- maser-data for radio data parsing features
- maser-plot for radio data plotting features
- maser-tools for additional support programs
Read maser4py main documentation for details.
maser4py is developed in the framework of the MASER project.
To install the full package, run the following command:
pip install maser4py[all]
or use one of the extra options:
datato get maser-data submodule featuresplotto get maser-plot submodule featurestoolsto get maser-tools submodule featuresjupyterfor Jupyter notebook supportjupytextfor Jupyter notebook text supportallto install all the submodules above
For example if you want to use maser4py with maser-data and maser-plot submodules:
pip install maser4py[data,plot]Examples of usage can be found in the examples folder.
Examples can also be run as Jupyter notebooks on Binder You can also launch a Binder environment and browse through the notebook examples.
To contribute to the development of the package, you will need to install a local copy of maser4py:
git clone https://gitlab.obspm.fr/maser/maser4py.git
Then, you can install the package locally, by using pip install -e .[all] or by using poetry (see below).
maser4py requirements are detailed in the pyproject.toml file
To install the package, it is recommended to use poetry:
pip install poetry
To use maser4py to read CDF files you have to install the CDF library and the spacepy.pycdf package.
Use the following command to install the package from a local copy:
poetry installUse pytest -m "not test_data_required" to skip tests that require test data (and to skip auto download).
pip install -e path/to/project/folder
Use sphinx-build docs/source docs/public to build the documentation.
To publish maser with poetry you will have to build a dist package:
poetry build
And then publish the package on pypi (and/or on Gitlab, see https://python-poetry.org/docs/cli/#publish):
poetry publish
maser comes with a Python client (see .ci/zenodo.py) to interact with the Zenodo API and generate automatically a DOI for each new version of maser.
To archive maser on Zenodo:
- Create an access token
- Is this the first maser deposit on Zenodo ?
- Yes it's the first deposit, so you don't need any ID
- No, it's a new version of
maser. Then browse to the first record of maser on Zenodo and check the URL :https://zenodo.org/record/<DEPOSITION_ID>to get themaserdeposition ID.
- Use the following command to deposit the package on Zenodo:
python .ci/zenodo.py -p ./ -t <ACCESS_TOKEN> -a ./dist/maser4py-X.Y.Z.tar.gz -id <DEPOSITION_ID>- Browse to the
maserrecord on Zenodo, check the metadata/files and publish the package to finally generate the DOI.
Notes :
- the
--sandboxkeyword can be used to deposit files on the Zenodo test server - the
--publishkeyword can be used to automatically publish the new record and generate the DOI. But be careful, once published, there is no way to modify a record on Zenodo without publishing a new version.