LISA Python Constants provides values sanctioned by the LISA Consortium for physical constants and mission parameters.
Project description
LISA Constants
LISA Constants is a Python package providing values sanctioned by the LISA Consortium for physical constants and mission parameters. LISA Constants is intended to be consistently used by other pieces of software related to the simulation of the instrument, of gravitational wave signals, and others.
We provide support for Python projects (as a package), C projects (as a header file), and C++ projects (as a header file). See below how to use the package.
The list of available constants for the latest release is available at https://lisa-simulation.pages.in2p3.fr/constants.
Usage
Install the latest version of lisaconstants using pip,
pip install git+https://gitlab.in2p3.fr/lisa-simulation/constants.git
or a given version using
pip install git+https://gitlab.in2p3.fr/lisa-simulation/constants.git@v1.1
This will automatically generate the C/C++ header files, and install them in your include directory.
Python
Simply import lisaconstants to access the constants,
from lisaconstants import c
light_minute = 60 * c
travel_time = 2.5E8 / c
C
Include lisaconstants.h (automatically placed in your current Python installation's include directory). Constants are prefixed with "LISA_" to prevent name collisions.
#include "venv/include/lisaconstants.h"
double lightMinute = 60 * LISA_c;
double travelTime = 2.5E8 / LISA_c;
C++
Include lisaconstants.hpp (automatically placed in your current Python installation's include directory). Constants are defined in the LisaConstants
namespace to prevent name collisions.
#include "venv/include/lisaconstants.h"
double lightMinute = 60 * LisaConstants::c;
double travelTime = 2.5E8 / LisaConstants::c;
Add LISA Constants to your project
As a setup.py requirement
If your project is built as a Python package, we strongly recommend to add lisaconstants as a dependency in your setup.py file.
setup(
name='mypackage',
# ...
install_requires=[
'lisaconstants'
],
)
As a pip requirement
Add lisaconstants to requirement.txt, which can be checked in on your repository,
# add in requirements.tzt
git+https://gitlab.in2p3.fr/lisa-simulation/constants.git@v1.1#egg=lisaconstants
Users will be able to install your dependencies using
pip install -r requirements.txt
Silence static linter warnings
LISA Constants dynamically generates the constants when the module is imported. Static linters (syntax analyzers), such as Pylint, do not import the module and therefore incorrectly issue warnings for each constant imported from LISA Constants. To silence these warnings, create a file ".pylintrc" if it does not exist, and add the following commands
[TYPECHECK]
ignored-modules=lisaconstants
Contributing
Report an issue
We use the issue-tracking management system associated with the project provided by Gitlab. If you want to report a bug or request a feature, open an issue at https://gitlab.in2p3.fr/lisa-simulation/constants/-/issues. You may also thumb-up or comment on existing issues.
Development environment
We strongly recommend to use Python virtual environments.
To setup the development environment, use the following commands:
git clone git@gitlab.in2p3.fr:lisa-simulation/constants.git
cd python-constants
python -m venv .
source ./bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
Workflow
The project's development workflow is based on the issue-tracking system provided by Gitlab, as well as peer-reviewed merge requests. This ensures high-quality standards.
Issues are solved by creating branches and opening merge requests. Only the assignee of the related issue and merge request can push commits on the branch. Once all the changes have been pushed, the "draft" specifier on the merge request is removed, and the merge request is assigned to a reviewer. He can push new changes to the branch, or request changes to the original author by re-assigning the merge request to them. When the merge request is accepted, the branch is merged onto master, deleted, and the associated issue is closed.
Pylint and unittest
We enforce PEP 8 (Style Guide for Python Code) with Pylint syntax checking, and correction of the code using the pytest] testing framework. Both are implemented in the continuous integration system.
You can run them locally
pylint **/*.py
python -m pytest
Contact
- Jean-Baptiste Bayle (j2b.bayle@gmail.com)
- Maude Lejeune (lejeune@apc.in2p3.fr)
- Aurelien Hees (aurelien.hees@obspm.fr)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file lisaconstants-1.1.3.tar.gz
.
File metadata
- Download URL: lisaconstants-1.1.3.tar.gz
- Upload date:
- Size: 9.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 53a6f04f54081c6414f1427dfc4a2730ff755100022f8521dae9a572f86aa6f7 |
|
MD5 | f70c16b913e2ffe40efd18e69b0a0744 |
|
BLAKE2b-256 | ca5d4116f255eaa2e570767ea514789dd96b2349dbe27313b17dd9b0ef55a6fa |
File details
Details for the file lisaconstants-1.1.3-py3-none-any.whl
.
File metadata
- Download URL: lisaconstants-1.1.3-py3-none-any.whl
- Upload date:
- Size: 13.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 500fb4a69955281922eb6b74f977bf7738a31e91b3c513f4a16c2ab2f101bdb2 |
|
MD5 | d9bfa5447414831f616bc88a8bc8b45f |
|
BLAKE2b-256 | 33b49e7514740c4b989fda30be51ff3ba61bcfc1959a1c98ce64a92edfaa67ac |