File: cmds.py

package info (click to toggle)
scikit-misc 0.3.1%2Bdfsg2-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 1,144 kB
  • sloc: fortran: 2,220; ansic: 1,352; python: 870; sh: 271; makefile: 98; javascript: 60
file content (102 lines) | stat: -rw-r--r-- 2,281 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
import os
import shutil
import sys
from pathlib import Path

import click
from spin import util
from spin.cmds import meson


@click.command()
@click.option(
    "--build-dir",
    default="build",
    help="Build directory; default is `$PWD/build`"
)
@click.option(
    "--clean",
    is_flag=True,
    help="Clean previously built docs before building"
)
def docs(build_dir, clean=False):
    """
    📖 Build documentation
    """
    if clean:
        doc_dir = Path("./doc/build").absolute()
        if doc_dir.is_dir():
            print(f"Removing `{doc_dir}`")
            shutil.rmtree(doc_dir)

    site_path = meson._get_site_packages()
    if site_path is None:
        print("No built scikit-misc found; run `./spin build` first.")
        sys.exit(1)

    util.run(["pip", "install", "-q", "-r", "requirements/docs.txt"])

    PYTHONPATH = os.environ.get("PYTHONPATH", "")
    os.environ["SPHINXOPTS"] = "-W"
    os.environ['PYTHONPATH'] = f'{site_path}{os.sep}:{PYTHONPATH}'
    util.run(["make", "-C", "doc", "html"], replace=True)


@click.command()
@click.option(
    "--build-dir",
    default="build",
    help="Build directory; default is `$PWD/build`"
)
def coverage(build_dir):
    """
    📊 Generate coverage report
    """
    site_path = meson._get_site_packages()
    util.run([
        "python",
        "-m",
        "coverage",
        "report",
        "--data-file",
        f"{site_path}/.coverage",
    ], replace=True)


@click.command()
@click.option(
    "--build-dir",
    default="build",
    help="Build directory; default is `$PWD/build`"
)
def coverage_html(build_dir):
    """
    📊 Generate HTML coverage report
    """
    site_path = meson._get_site_packages()
    util.run([
        "python",
        "-m",
        "coverage",
        "html",
        "--data-file",
        f"{site_path}/.coverage",
    ], replace=True)


@click.command()
def sdist():
    """
    📦 Build a source distribution in `build/meson-dist/`.
    """
    # Using the build module gives better results than using
    # meson directory. It creates an sdist with PKG-INFO
    util.run([
        "python",
        "-m",
        "build",
        "--no-isolation",
        "--skip-dependency-check",
        "--sdist",
        ".",
    ], replace=True)