lenskit / lkpy

Python recommendation toolkit
https://lkpy.lenskit.org
MIT License
270 stars 61 forks source link

Reorganize documentation into guide + manual #478

Closed mdekstrand closed 3 months ago

mdekstrand commented 3 months ago

This reorganizes the LensKit documentation into separate "User Guide" and (mostly auto-generated) "API Reference" sections, and uses the PyData Sphinx theme. Closes #453.

Also fixes the documentation tests in CI.

github-actions[bot] commented 3 months ago

The LensKit 🤖 has run the tests on your PR.

✅ Tests covered 100.00% of diff.

✅ Coverage increased 0.00% from 92.20% to 92.20%.

origin/main...HEAD, staged and unstaged changes - lenskit/lenskit/data/__init__.py (100%) - lenskit/lenskit/data/items.py (100%) ## Summary - **Total**: 8 lines - **Missing**: 0 lines - **Coverage**: 100%
Source Coverage Report | Name | Stmts | Miss | Cover | |----------------------------------------------- | -------: | -------: | ------: | | lenskit/lenskit/util/envcheck.py | 57 | 44 | 23% | | lenskit/lenskit/data/fetch.py | 38 | 28 | 26% | | lenskit/lenskit/types.py | 38 | 12 | 68% | | lenskit/lenskit/data/user.py | 30 | 9 | 70% | | lenskit/lenskit/util/\_\_init\_\_.py | 72 | 19 | 74% | | lenskit/lenskit/topn.py | 109 | 25 | 77% | | lenskit/lenskit/splitting/split.py | 27 | 6 | 78% | | lenskit/lenskit/pipeline/common.py | 5 | 1 | 80% | | lenskit/lenskit/data/movielens.py | 96 | 18 | 81% | | lenskit/lenskit/util/test.py | 103 | 19 | 82% | | lenskit/lenskit/pipeline/state.py | 44 | 8 | 82% | | lenskit/lenskit/parallel/config.py | 65 | 11 | 83% | | lenskit/lenskit/parallel/pool.py | 54 | 9 | 83% | | lenskit/lenskit/algorithms/ranking.py | 75 | 11 | 85% | | lenskit/lenskit/algorithms/\_\_init\_\_.py | 67 | 8 | 88% | | lenskit/lenskit/util/random.py | 26 | 3 | 88% | | lenskit-implicit/lenskit/implicit.py | 94 | 9 | 90% | | lenskit/lenskit/batch/\_recommend.py | 46 | 4 | 91% | | lenskit/lenskit/data/vocab.py | 84 | 7 | 92% | | lenskit/lenskit/splitting/holdout.py | 56 | 4 | 93% | | lenskit/lenskit/data/items.py | 183 | 13 | 93% | | lenskit/lenskit/parallel/worker.py | 43 | 3 | 93% | | lenskit/lenskit/batch/\_predict.py | 30 | 2 | 93% | | lenskit/lenskit/parallel/invoker.py | 31 | 2 | 94% | | lenskit/lenskit/algorithms/knn/user.py | 178 | 11 | 94% | | lenskit/lenskit/algorithms/knn/item.py | 303 | 17 | 94% | | lenskit/lenskit/algorithms/svd.py | 75 | 4 | 95% | | lenskit/lenskit/data/mtarray.py | 57 | 3 | 95% | | lenskit/lenskit/data/dataset.py | 365 | 19 | 95% | | lenskit/lenskit/pipeline/types.py | 79 | 4 | 95% | | lenskit/lenskit/parallel/chunking.py | 20 | 1 | 95% | | lenskit/lenskit/pipeline/components.py | 40 | 2 | 95% | | lenskit/lenskit/data/matrix.py | 115 | 5 | 96% | | lenskit-funksvd/lenskit/funksvd.py | 187 | 8 | 96% | | lenskit/lenskit/pipeline/\_\_init\_\_.py | 296 | 12 | 96% | | lenskit/lenskit/algorithms/basic.py | 161 | 4 | 98% | | lenskit/lenskit/algorithms/als/explicit.py | 121 | 3 | 98% | | lenskit/lenskit/pipeline/runner.py | 86 | 2 | 98% | | lenskit/lenskit/algorithms/bias.py | 150 | 3 | 98% | | lenskit/lenskit/parallel/serialize.py | 51 | 1 | 98% | | lenskit/lenskit/algorithms/als/common.py | 128 | 2 | 98% | | lenskit/lenskit/crossfold.py | 136 | 2 | 99% | | lenskit/lenskit/pipeline/config.py | 83 | 1 | 99% | | lenskit/lenskit/algorithms/als/implicit.py | 112 | 1 | 99% | | lenskit/lenskit/metrics/topn.py | 212 | 1 | 99% | | lenskit-hpf/lenskit/hpf.py | 24 | 0 | 100% | | lenskit/lenskit/algorithms/als/\_\_init\_\_.py | 3 | 0 | 100% | | lenskit/lenskit/algorithms/knn/\_\_init\_\_.py | 3 | 0 | 100% | | lenskit/lenskit/algorithms/mf\_common.py | 61 | 0 | 100% | | lenskit/lenskit/batch/\_\_init\_\_.py | 2 | 0 | 100% | | lenskit/lenskit/data/\_\_init\_\_.py | 12 | 0 | 100% | | lenskit/lenskit/data/checks.py | 37 | 0 | 100% | | lenskit/lenskit/data/tables.py | 25 | 0 | 100% | | lenskit/lenskit/diagnostics.py | 4 | 0 | 100% | | lenskit/lenskit/math/\_\_init\_\_.py | 0 | 0 | 100% | | lenskit/lenskit/math/solve.py | 6 | 0 | 100% | | lenskit/lenskit/metrics/\_\_init\_\_.py | 0 | 0 | 100% | | lenskit/lenskit/metrics/predict.py | 32 | 0 | 100% | | lenskit/lenskit/parallel/\_\_init\_\_.py | 4 | 0 | 100% | | lenskit/lenskit/parallel/sequential.py | 22 | 0 | 100% | | lenskit/lenskit/pipeline/nodes.py | 54 | 0 | 100% | | lenskit/lenskit/splitting/\_\_init\_\_.py | 4 | 0 | 100% | | lenskit/lenskit/splitting/records.py | 56 | 0 | 100% | | lenskit/lenskit/splitting/users.py | 62 | 0 | 100% | | lenskit/lenskit/util/logging.py | 19 | 0 | 100% | | lenskit/lenskit/util/timing.py | 28 | 0 | 100% | | **TOTAL** | **4886** | **381** | **92%** |
github-actions[bot] commented 3 months ago

The LensKit 🤖 has run the tests on your PR.

✅ Tests covered 100.00% of diff.

✅ Coverage increased 0.00% from 92.20% to 92.20%.

origin/main...HEAD, staged and unstaged changes - lenskit/lenskit/data/__init__.py (100%) - lenskit/lenskit/data/items.py (100%) ## Summary - **Total**: 8 lines - **Missing**: 0 lines - **Coverage**: 100%
Source Coverage Report | Name | Stmts | Miss | Cover | |----------------------------------------------- | -------: | -------: | ------: | | lenskit/lenskit/util/envcheck.py | 57 | 44 | 23% | | lenskit/lenskit/data/fetch.py | 38 | 28 | 26% | | lenskit/lenskit/types.py | 38 | 12 | 68% | | lenskit/lenskit/data/user.py | 30 | 9 | 70% | | lenskit/lenskit/util/\_\_init\_\_.py | 72 | 19 | 74% | | lenskit/lenskit/topn.py | 109 | 25 | 77% | | lenskit/lenskit/splitting/split.py | 27 | 6 | 78% | | lenskit/lenskit/pipeline/common.py | 5 | 1 | 80% | | lenskit/lenskit/data/movielens.py | 96 | 18 | 81% | | lenskit/lenskit/util/test.py | 103 | 19 | 82% | | lenskit/lenskit/pipeline/state.py | 44 | 8 | 82% | | lenskit/lenskit/parallel/config.py | 65 | 11 | 83% | | lenskit/lenskit/parallel/pool.py | 54 | 9 | 83% | | lenskit/lenskit/algorithms/ranking.py | 75 | 11 | 85% | | lenskit/lenskit/algorithms/\_\_init\_\_.py | 67 | 8 | 88% | | lenskit/lenskit/util/random.py | 26 | 3 | 88% | | lenskit-implicit/lenskit/implicit.py | 94 | 9 | 90% | | lenskit/lenskit/batch/\_recommend.py | 46 | 4 | 91% | | lenskit/lenskit/data/vocab.py | 84 | 7 | 92% | | lenskit/lenskit/splitting/holdout.py | 56 | 4 | 93% | | lenskit/lenskit/data/items.py | 183 | 13 | 93% | | lenskit/lenskit/parallel/worker.py | 43 | 3 | 93% | | lenskit/lenskit/batch/\_predict.py | 30 | 2 | 93% | | lenskit/lenskit/parallel/invoker.py | 31 | 2 | 94% | | lenskit/lenskit/algorithms/knn/user.py | 178 | 11 | 94% | | lenskit/lenskit/algorithms/knn/item.py | 303 | 17 | 94% | | lenskit/lenskit/algorithms/svd.py | 75 | 4 | 95% | | lenskit/lenskit/data/mtarray.py | 57 | 3 | 95% | | lenskit/lenskit/data/dataset.py | 365 | 19 | 95% | | lenskit/lenskit/pipeline/types.py | 79 | 4 | 95% | | lenskit/lenskit/parallel/chunking.py | 20 | 1 | 95% | | lenskit/lenskit/pipeline/components.py | 40 | 2 | 95% | | lenskit/lenskit/data/matrix.py | 115 | 5 | 96% | | lenskit-funksvd/lenskit/funksvd.py | 187 | 8 | 96% | | lenskit/lenskit/pipeline/\_\_init\_\_.py | 296 | 12 | 96% | | lenskit/lenskit/algorithms/basic.py | 161 | 4 | 98% | | lenskit/lenskit/algorithms/als/explicit.py | 121 | 3 | 98% | | lenskit/lenskit/pipeline/runner.py | 86 | 2 | 98% | | lenskit/lenskit/algorithms/bias.py | 150 | 3 | 98% | | lenskit/lenskit/parallel/serialize.py | 51 | 1 | 98% | | lenskit/lenskit/algorithms/als/common.py | 128 | 2 | 98% | | lenskit/lenskit/crossfold.py | 136 | 2 | 99% | | lenskit/lenskit/pipeline/config.py | 83 | 1 | 99% | | lenskit/lenskit/algorithms/als/implicit.py | 112 | 1 | 99% | | lenskit/lenskit/metrics/topn.py | 212 | 1 | 99% | | lenskit-hpf/lenskit/hpf.py | 24 | 0 | 100% | | lenskit/lenskit/algorithms/als/\_\_init\_\_.py | 3 | 0 | 100% | | lenskit/lenskit/algorithms/knn/\_\_init\_\_.py | 3 | 0 | 100% | | lenskit/lenskit/algorithms/mf\_common.py | 61 | 0 | 100% | | lenskit/lenskit/batch/\_\_init\_\_.py | 2 | 0 | 100% | | lenskit/lenskit/data/\_\_init\_\_.py | 12 | 0 | 100% | | lenskit/lenskit/data/checks.py | 37 | 0 | 100% | | lenskit/lenskit/data/tables.py | 25 | 0 | 100% | | lenskit/lenskit/diagnostics.py | 4 | 0 | 100% | | lenskit/lenskit/math/\_\_init\_\_.py | 0 | 0 | 100% | | lenskit/lenskit/math/solve.py | 6 | 0 | 100% | | lenskit/lenskit/metrics/\_\_init\_\_.py | 0 | 0 | 100% | | lenskit/lenskit/metrics/predict.py | 32 | 0 | 100% | | lenskit/lenskit/parallel/\_\_init\_\_.py | 4 | 0 | 100% | | lenskit/lenskit/parallel/sequential.py | 22 | 0 | 100% | | lenskit/lenskit/pipeline/nodes.py | 54 | 0 | 100% | | lenskit/lenskit/splitting/\_\_init\_\_.py | 4 | 0 | 100% | | lenskit/lenskit/splitting/records.py | 56 | 0 | 100% | | lenskit/lenskit/splitting/users.py | 62 | 0 | 100% | | lenskit/lenskit/util/logging.py | 19 | 0 | 100% | | lenskit/lenskit/util/timing.py | 28 | 0 | 100% | | **TOTAL** | **4886** | **381** | **92%** |