# Contributing

## Setup

To work on laspy, as it often recommended in python projects, a virtual env should be used, eg:

    python -m venv .venv
    source .venv/bin/activate # bash/zsh
    .venv/Scripts/Activate.ps1 # windows powershell

To install `laspy` in development mode:

    pip install -e .[dev]

The `[dev]` option will install all the extra tools needed to run tests, format files and get coverage.

To install with optional dependencies

    pip install -e .[dev,lazrs,pyproj]

## Commands

### Running Tests

    pytest

### Formatting

    black .

### Coverage

    coverage run

    # get report in the CLI
    coverage report

    # get report as a nice navigable html
    coverage html

However, the commands above will only give the coverage for the set of optional dependencies installed.

Getting a more complete is possible (but takes more time);

    nox -s coverage
    coverage combine

    # get report in the CLI
    coverage report

    # get report as a nice navigable html
    coverage html