fastcpd 0.17.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. fastcpd-0.17.0/.Rbuildignore +41 -0
  2. fastcpd-0.17.0/.bazeliskrc +1 -0
  3. fastcpd-0.17.0/.bazelrc +4 -0
  4. fastcpd-0.17.0/.bazelversion +1 -0
  5. fastcpd-0.17.0/.clang-format +58 -0
  6. fastcpd-0.17.0/.covrignore +3 -0
  7. fastcpd-0.17.0/.github/.gitignore +1 -0
  8. fastcpd-0.17.0/.github/ISSUE_TEMPLATE/bug_report.md +39 -0
  9. fastcpd-0.17.0/.github/ISSUE_TEMPLATE/config.yml +4 -0
  10. fastcpd-0.17.0/.github/ISSUE_TEMPLATE/feature_request.md +29 -0
  11. fastcpd-0.17.0/.github/workflows/bazel_build_linux.yml +69 -0
  12. fastcpd-0.17.0/.github/workflows/bazel_test_mac.yml +93 -0
  13. fastcpd-0.17.0/.github/workflows/check-standard.yaml +55 -0
  14. fastcpd-0.17.0/.github/workflows/dependency-review.yml +20 -0
  15. fastcpd-0.17.0/.github/workflows/pkgdown.yaml +49 -0
  16. fastcpd-0.17.0/.github/workflows/test-coverage.yaml +62 -0
  17. fastcpd-0.17.0/.gitignore +296 -0
  18. fastcpd-0.17.0/.lintr +3 -0
  19. fastcpd-0.17.0/BUILD.bazel +7 -0
  20. fastcpd-0.17.0/DESCRIPTION +54 -0
  21. fastcpd-0.17.0/LICENSE.md +595 -0
  22. fastcpd-0.17.0/MANIFEST.in +8 -0
  23. fastcpd-0.17.0/Makefile +77 -0
  24. fastcpd-0.17.0/NAMESPACE +54 -0
  25. fastcpd-0.17.0/NEWS.md +480 -0
  26. fastcpd-0.17.0/PKG-INFO +370 -0
  27. fastcpd-0.17.0/R/RcppExports.R +7 -0
  28. fastcpd-0.17.0/R/catch-routine-registration.R +6 -0
  29. fastcpd-0.17.0/R/class.R +286 -0
  30. fastcpd-0.17.0/R/data.R +109 -0
  31. fastcpd-0.17.0/R/fastcpd.R +935 -0
  32. fastcpd-0.17.0/R/utilities.R +150 -0
  33. fastcpd-0.17.0/R/variance_estimation.R +169 -0
  34. fastcpd-0.17.0/README.Rmd +286 -0
  35. fastcpd-0.17.0/README.md +342 -0
  36. fastcpd-0.17.0/WORKSPACE +150 -0
  37. fastcpd-0.17.0/_pkgdown.yml +114 -0
  38. fastcpd-0.17.0/bazel/BUILD +0 -0
  39. fastcpd-0.17.0/bazel/README.md +1 -0
  40. fastcpd-0.17.0/bazel/external/BUILD +1 -0
  41. fastcpd-0.17.0/bazel/external/fmtlib.BUILD +11 -0
  42. fastcpd-0.17.0/bazel/external/opencl_windows.BUILD +10 -0
  43. fastcpd-0.17.0/bazel/external/pybind11.BUILD +12 -0
  44. fastcpd-0.17.0/bazel/external/python.BUILD +75 -0
  45. fastcpd-0.17.0/bazel/external/spdlog.BUILD +12 -0
  46. fastcpd-0.17.0/bazel/external_deps.bzl +143 -0
  47. fastcpd-0.17.0/bazel/fastcpd_http_archive.bzl +22 -0
  48. fastcpd-0.17.0/bazel/get_python_libs.py +22 -0
  49. fastcpd-0.17.0/bazel/python/BUILD +5 -0
  50. fastcpd-0.17.0/bazel/python/BUILD.tpl +75 -0
  51. fastcpd-0.17.0/bazel/python/python.bzl +288 -0
  52. fastcpd-0.17.0/bazel/python/python_native.bzl +9 -0
  53. fastcpd-0.17.0/bazel/python/variety.tpl +29 -0
  54. fastcpd-0.17.0/bazel/remote_config/BUILD +0 -0
  55. fastcpd-0.17.0/bazel/remote_config/common.bzl +299 -0
  56. fastcpd-0.17.0/bazel/repositories.bzl +79 -0
  57. fastcpd-0.17.0/bazel/repository_locations.bzl +62 -0
  58. fastcpd-0.17.0/bazel/repository_locations_utils.bzl +26 -0
  59. fastcpd-0.17.0/bazelisk.py +505 -0
  60. fastcpd-0.17.0/cran-comments.md +9 -0
  61. fastcpd-0.17.0/data/bitcoin.rda +0 -0
  62. fastcpd-0.17.0/data/occupancy.rda +0 -0
  63. fastcpd-0.17.0/data/transcriptome.rda +0 -0
  64. fastcpd-0.17.0/data/uk_seatbelts.rda +0 -0
  65. fastcpd-0.17.0/data/well_log.rda +0 -0
  66. fastcpd-0.17.0/data-raw/bitcoin.R +7 -0
  67. fastcpd-0.17.0/data-raw/bitcoin.json +1 -0
  68. fastcpd-0.17.0/data-raw/occupancy.R +2 -0
  69. fastcpd-0.17.0/data-raw/occupancy.txt +9753 -0
  70. fastcpd-0.17.0/data-raw/transcriptome.R +4 -0
  71. fastcpd-0.17.0/data-raw/transcriptome.RData +0 -0
  72. fastcpd-0.17.0/data-raw/uk_seatbelts.R +2 -0
  73. fastcpd-0.17.0/data-raw/well_log.R +3 -0
  74. fastcpd-0.17.0/data-raw/well_log.txt +4050 -0
  75. fastcpd-0.17.0/fastcpd/BUILD.bazel +101 -0
  76. fastcpd-0.17.0/fastcpd/__init__.py +10 -0
  77. fastcpd-0.17.0/fastcpd/class.cc +1531 -0
  78. fastcpd-0.17.0/fastcpd/class.h +218 -0
  79. fastcpd-0.17.0/fastcpd/class_test.cc +9 -0
  80. fastcpd-0.17.0/fastcpd/interface.pyi +27 -0
  81. fastcpd-0.17.0/fastcpd/py.typed +0 -0
  82. fastcpd-0.17.0/fastcpd/pybind.cc +95 -0
  83. fastcpd-0.17.0/fastcpd/segmentation.py +191 -0
  84. fastcpd-0.17.0/fastcpd/variance_estimation.py +34 -0
  85. fastcpd-0.17.0/fastcpd.egg-info/PKG-INFO +370 -0
  86. fastcpd-0.17.0/fastcpd.egg-info/SOURCES.txt +263 -0
  87. fastcpd-0.17.0/fastcpd.egg-info/dependency_links.txt +1 -0
  88. fastcpd-0.17.0/fastcpd.egg-info/top_level.txt +2 -0
  89. fastcpd-0.17.0/inst/CITATION +25 -0
  90. fastcpd-0.17.0/inst/include/fastcpd.h +304 -0
  91. fastcpd-0.17.0/inst/include/fastcpd_impl.h +22 -0
  92. fastcpd-0.17.0/inst/include/ref_fastglm_fit_glm.h +84 -0
  93. fastcpd-0.17.0/inst/include/ref_fastglm_fit_glm_dense.h +15 -0
  94. fastcpd-0.17.0/inst/include/ref_fastglm_glm.h +509 -0
  95. fastcpd-0.17.0/inst/include/ref_fastglm_glm_base.h +148 -0
  96. fastcpd-0.17.0/inst/include/ref_tseries.h +21 -0
  97. fastcpd-0.17.0/man/bitcoin.Rd +68 -0
  98. fastcpd-0.17.0/man/fastcpd-class.Rd +41 -0
  99. fastcpd-0.17.0/man/fastcpd.Rd +427 -0
  100. fastcpd-0.17.0/man/fastcpd_ar.Rd +61 -0
  101. fastcpd-0.17.0/man/fastcpd_arima.Rd +62 -0
  102. fastcpd-0.17.0/man/fastcpd_arma.Rd +64 -0
  103. fastcpd-0.17.0/man/fastcpd_binomial.Rd +47 -0
  104. fastcpd-0.17.0/man/fastcpd_family.Rd +19 -0
  105. fastcpd-0.17.0/man/fastcpd_garch.Rd +54 -0
  106. fastcpd-0.17.0/man/fastcpd_lasso.Rd +105 -0
  107. fastcpd-0.17.0/man/fastcpd_lm.Rd +65 -0
  108. fastcpd-0.17.0/man/fastcpd_mean.Rd +50 -0
  109. fastcpd-0.17.0/man/fastcpd_meanvariance.Rd +74 -0
  110. fastcpd-0.17.0/man/fastcpd_poisson.Rd +52 -0
  111. fastcpd-0.17.0/man/fastcpd_ts.Rd +143 -0
  112. fastcpd-0.17.0/man/fastcpd_var.Rd +48 -0
  113. fastcpd-0.17.0/man/fastcpd_variance.Rd +57 -0
  114. fastcpd-0.17.0/man/figures/README-ar3-1.png +0 -0
  115. fastcpd-0.17.0/man/figures/README-time-comparison-large-1.png +0 -0
  116. fastcpd-0.17.0/man/figures/README-time-comparison-small-1.png +0 -0
  117. fastcpd-0.17.0/man/figures/cheatsheets.pdf +0 -0
  118. fastcpd-0.17.0/man/figures/cheatsheets.png +0 -0
  119. fastcpd-0.17.0/man/figures/logo.svg +272 -0
  120. fastcpd-0.17.0/man/occupancy.Rd +31 -0
  121. fastcpd-0.17.0/man/plot.Rd +105 -0
  122. fastcpd-0.17.0/man/print.Rd +23 -0
  123. fastcpd-0.17.0/man/show.Rd +21 -0
  124. fastcpd-0.17.0/man/summary.Rd +24 -0
  125. fastcpd-0.17.0/man/transcriptome.Rd +106 -0
  126. fastcpd-0.17.0/man/uk_seatbelts.Rd +81 -0
  127. fastcpd-0.17.0/man/variance_arma.Rd +41 -0
  128. fastcpd-0.17.0/man/variance_lm.Rd +60 -0
  129. fastcpd-0.17.0/man/variance_mean.Rd +33 -0
  130. fastcpd-0.17.0/man/variance_median.Rd +23 -0
  131. fastcpd-0.17.0/man/well_log.Rd +55 -0
  132. fastcpd-0.17.0/mypy.ini +3 -0
  133. fastcpd-0.17.0/pkgdown/extra.scss +32 -0
  134. fastcpd-0.17.0/pyproject.toml +51 -0
  135. fastcpd-0.17.0/requirements.in +4 -0
  136. fastcpd-0.17.0/requirements_lock.txt +143 -0
  137. fastcpd-0.17.0/setup.cfg +4 -0
  138. fastcpd-0.17.0/setup.py +291 -0
  139. fastcpd-0.17.0/shiny/app.R +6 -0
  140. fastcpd-0.17.0/shiny/lm.csv +301 -0
  141. fastcpd-0.17.0/shiny/server.R +66 -0
  142. fastcpd-0.17.0/shiny/ui.R +147 -0
  143. fastcpd-0.17.0/src/.gitignore +4 -0
  144. fastcpd-0.17.0/src/Makevars +2 -0
  145. fastcpd-0.17.0/src/Makevars.win +2 -0
  146. fastcpd-0.17.0/src/RcppExports.cpp +63 -0
  147. fastcpd-0.17.0/src/fastcpd_classes.cc +1775 -0
  148. fastcpd-0.17.0/src/fastcpd_impl.cc +130 -0
  149. fastcpd-0.17.0/src/fastcpd_test.cc +245 -0
  150. fastcpd-0.17.0/src/ref_fastglm_fit_glm.cc +337 -0
  151. fastcpd-0.17.0/src/ref_fastglm_fit_glm_dense.cc +104 -0
  152. fastcpd-0.17.0/src/ref_r_family.c +165 -0
  153. fastcpd-0.17.0/src/ref_tseries.cc +202 -0
  154. fastcpd-0.17.0/src/ref_tseries_cfuncs.f90 +21 -0
  155. fastcpd-0.17.0/src/ref_tseries_dsumsl.f +3429 -0
  156. fastcpd-0.17.0/src/ref_tseries_formats.c +97 -0
  157. fastcpd-0.17.0/src/ref_tseries_garch.c +355 -0
  158. fastcpd-0.17.0/src/test-fastcpd.cc +173 -0
  159. fastcpd-0.17.0/src/test-runner.cc +7 -0
  160. fastcpd-0.17.0/tests/BUILD.bazel +10 -0
  161. fastcpd-0.17.0/tests/test_fastcpd.py +24 -0
  162. fastcpd-0.17.0/tests/testthat/examples/data-bitcoin.txt +43 -0
  163. fastcpd-0.17.0/tests/testthat/examples/data-transcriptome.txt +37 -0
  164. fastcpd-0.17.0/tests/testthat/examples/data-uk_seatbelts.R +51 -0
  165. fastcpd-0.17.0/tests/testthat/examples/data-well_log-quantile.txt +28 -0
  166. fastcpd-0.17.0/tests/testthat/examples/data-well_log.R +3 -0
  167. fastcpd-0.17.0/tests/testthat/examples/fastcpd_1.R +17 -0
  168. fastcpd-0.17.0/tests/testthat/examples/fastcpd_2.R +60 -0
  169. fastcpd-0.17.0/tests/testthat/examples/fastcpd_3.txt +40 -0
  170. fastcpd-0.17.0/tests/testthat/examples/fastcpd_4.txt +38 -0
  171. fastcpd-0.17.0/tests/testthat/examples/fastcpd_ar_1.R +12 -0
  172. fastcpd-0.17.0/tests/testthat/examples/fastcpd_ar_2.R +13 -0
  173. fastcpd-0.17.0/tests/testthat/examples/fastcpd_arima.txt +23 -0
  174. fastcpd-0.17.0/tests/testthat/examples/fastcpd_arma.txt +29 -0
  175. fastcpd-0.17.0/tests/testthat/examples/fastcpd_binomial.R +14 -0
  176. fastcpd-0.17.0/tests/testthat/examples/fastcpd_garch.txt +19 -0
  177. fastcpd-0.17.0/tests/testthat/examples/fastcpd_lasso.txt +72 -0
  178. fastcpd-0.17.0/tests/testthat/examples/fastcpd_lm_1.R +15 -0
  179. fastcpd-0.17.0/tests/testthat/examples/fastcpd_lm_2.txt +17 -0
  180. fastcpd-0.17.0/tests/testthat/examples/fastcpd_mean_1.R +9 -0
  181. fastcpd-0.17.0/tests/testthat/examples/fastcpd_mean_2.R +9 -0
  182. fastcpd-0.17.0/tests/testthat/examples/fastcpd_meanvariance_1.R +10 -0
  183. fastcpd-0.17.0/tests/testthat/examples/fastcpd_meanvariance_2.R +25 -0
  184. fastcpd-0.17.0/tests/testthat/examples/fastcpd_poisson.txt +19 -0
  185. fastcpd-0.17.0/tests/testthat/examples/fastcpd_ts.txt +94 -0
  186. fastcpd-0.17.0/tests/testthat/examples/fastcpd_var.R +14 -0
  187. fastcpd-0.17.0/tests/testthat/examples/fastcpd_variance_1.R +5 -0
  188. fastcpd-0.17.0/tests/testthat/examples/fastcpd_variance_2.R +20 -0
  189. fastcpd-0.17.0/tests/testthat/examples/plot.R +14 -0
  190. fastcpd-0.17.0/tests/testthat/examples/variance_arma.R +13 -0
  191. fastcpd-0.17.0/tests/testthat/examples/variance_lm.R +30 -0
  192. fastcpd-0.17.0/tests/testthat/examples/variance_mean.R +10 -0
  193. fastcpd-0.17.0/tests/testthat/examples/variance_median.R +1 -0
  194. fastcpd-0.17.0/tests/testthat/test-check.R +254 -0
  195. fastcpd-0.17.0/tests/testthat/test-cpp.R +2 -0
  196. fastcpd-0.17.0/tests/testthat/test-examples-data-bitcoin.R +13 -0
  197. fastcpd-0.17.0/tests/testthat/test-examples-data-transcriptome.R +20 -0
  198. fastcpd-0.17.0/tests/testthat/test-examples-data-uk_seatbelts.R +9 -0
  199. fastcpd-0.17.0/tests/testthat/test-examples-data-well_log-quantile.R +20 -0
  200. fastcpd-0.17.0/tests/testthat/test-examples-data-well_log.R +15 -0
  201. fastcpd-0.17.0/tests/testthat/test-examples-fastcpd_1.R +8 -0
  202. fastcpd-0.17.0/tests/testthat/test-examples-fastcpd_2.R +9 -0
  203. fastcpd-0.17.0/tests/testthat/test-examples-fastcpd_3.R +12 -0
  204. fastcpd-0.17.0/tests/testthat/test-examples-fastcpd_4.R +14 -0
  205. fastcpd-0.17.0/tests/testthat/test-examples-fastcpd_ar_1.R +13 -0
  206. fastcpd-0.17.0/tests/testthat/test-examples-fastcpd_ar_2.R +16 -0
  207. fastcpd-0.17.0/tests/testthat/test-examples-fastcpd_arima.R +13 -0
  208. fastcpd-0.17.0/tests/testthat/test-examples-fastcpd_arma.R +13 -0
  209. fastcpd-0.17.0/tests/testthat/test-examples-fastcpd_binomial.R +14 -0
  210. fastcpd-0.17.0/tests/testthat/test-examples-fastcpd_garch.R +19 -0
  211. fastcpd-0.17.0/tests/testthat/test-examples-fastcpd_lasso.R +14 -0
  212. fastcpd-0.17.0/tests/testthat/test-examples-fastcpd_lm_1.R +15 -0
  213. fastcpd-0.17.0/tests/testthat/test-examples-fastcpd_lm_2.R +13 -0
  214. fastcpd-0.17.0/tests/testthat/test-examples-fastcpd_mean_1.R +6 -0
  215. fastcpd-0.17.0/tests/testthat/test-examples-fastcpd_mean_2.R +6 -0
  216. fastcpd-0.17.0/tests/testthat/test-examples-fastcpd_meanvariance_1.R +6 -0
  217. fastcpd-0.17.0/tests/testthat/test-examples-fastcpd_meanvariance_2.R +9 -0
  218. fastcpd-0.17.0/tests/testthat/test-examples-fastcpd_poisson.R +21 -0
  219. fastcpd-0.17.0/tests/testthat/test-examples-fastcpd_ts.R +13 -0
  220. fastcpd-0.17.0/tests/testthat/test-examples-fastcpd_var.R +6 -0
  221. fastcpd-0.17.0/tests/testthat/test-examples-fastcpd_variance_1.R +6 -0
  222. fastcpd-0.17.0/tests/testthat/test-examples-fastcpd_variance_2.R +7 -0
  223. fastcpd-0.17.0/tests/testthat/test-examples-plot.R +9 -0
  224. fastcpd-0.17.0/tests/testthat/test-examples-variance_arma.R +6 -0
  225. fastcpd-0.17.0/tests/testthat/test-examples-variance_lm.R +11 -0
  226. fastcpd-0.17.0/tests/testthat/test-examples-variance_mean.R +17 -0
  227. fastcpd-0.17.0/tests/testthat/test-examples-variance_median.R +6 -0
  228. fastcpd-0.17.0/tests/testthat/test-experiments.R +528 -0
  229. fastcpd-0.17.0/tests/testthat/test-fastcpd-class.R +141 -0
  230. fastcpd-0.17.0/tests/testthat/test-vignettes-comparison-pelt-lasso.R +80 -0
  231. fastcpd-0.17.0/tests/testthat/test-vignettes-comparison-pelt-logistic-regression.R +47 -0
  232. fastcpd-0.17.0/tests/testthat/test-vignettes-comparison-pelt-poisson-regression.R +94 -0
  233. fastcpd-0.17.0/tests/testthat.R +6 -0
  234. fastcpd-0.17.0/vignettes/comparison-packages/data-setup-ar3-1.png +0 -0
  235. fastcpd-0.17.0/vignettes/comparison-packages/data-setup-garch11-1.png +0 -0
  236. fastcpd-0.17.0/vignettes/comparison-packages/data-setup-lasso-1.png +0 -0
  237. fastcpd-0.17.0/vignettes/comparison-packages/data-setup-linear-regression-1.png +0 -0
  238. fastcpd-0.17.0/vignettes/comparison-packages/data-setup-logistic-regression-1.png +0 -0
  239. fastcpd-0.17.0/vignettes/comparison-packages/data-setup-multivariate-mean-and-or-variance-change-1.png +0 -0
  240. fastcpd-0.17.0/vignettes/comparison-packages/data-setup-multivariate-mean-change-1.png +0 -0
  241. fastcpd-0.17.0/vignettes/comparison-packages/data-setup-poisson-regression-1.png +0 -0
  242. fastcpd-0.17.0/vignettes/comparison-packages/data-setup-poisson-regression-2.png +0 -0
  243. fastcpd-0.17.0/vignettes/comparison-packages/data-setup-univariate-mean-and-or-variance-change-1.png +0 -0
  244. fastcpd-0.17.0/vignettes/comparison-packages/data-setup-univariate-mean-change-1.png +0 -0
  245. fastcpd-0.17.0/vignettes/comparison-packages/data-setup-var2-1.png +0 -0
  246. fastcpd-0.17.0/vignettes/comparison-packages/detection-comparison-well-log-plot-1.png +0 -0
  247. fastcpd-0.17.0/vignettes/comparison-packages/multivariate-mean-change-bcp-result-1.png +0 -0
  248. fastcpd-0.17.0/vignettes/comparison-packages/time-comparison-well-log-plot-1.png +0 -0
  249. fastcpd-0.17.0/vignettes/comparison-packages/univariate-mean-and-or-variance-change-not-result-1.png +0 -0
  250. fastcpd-0.17.0/vignettes/comparison-packages/univariate-mean-and-or-variance-change-not-result-2.png +0 -0
  251. fastcpd-0.17.0/vignettes/comparison-packages/univariate-mean-change-bcp-result-1.png +0 -0
  252. fastcpd-0.17.0/vignettes/comparison-packages/univariate-mean-change-not-result-1.png +0 -0
  253. fastcpd-0.17.0/vignettes/comparison-packages.Rmd +1822 -0
  254. fastcpd-0.17.0/vignettes/comparison-packages.Rmd.original +1092 -0
  255. fastcpd-0.17.0/vignettes/comparison-pelt.Rmd +1876 -0
  256. fastcpd-0.17.0/vignettes/comparison-pelt.Rmd.original +955 -0
  257. fastcpd-0.17.0/vignettes/examples-advanced.Rmd +326 -0
  258. fastcpd-0.17.0/vignettes/examples-advanced.Rmd.original +125 -0
  259. fastcpd-0.17.0/vignettes/examples-custom-model.Rmd +167 -0
  260. fastcpd-0.17.0/vignettes/examples-custom-model.Rmd.original +97 -0
  261. fastcpd-0.17.0/vignettes/exploration-during-development.Rmd +828 -0
  262. fastcpd-0.17.0/vignettes/exploration-during-development.Rmd.original +406 -0
  263. fastcpd-0.17.0/vignettes/time-complexity/time-complexity-1.png +0 -0
  264. fastcpd-0.17.0/vignettes/time-complexity.Rmd +285 -0
  265. fastcpd-0.17.0/vignettes/time-complexity.Rmd.original +154 -0
@@ -0,0 +1,41 @@
1
+ ^.*\.Rproj$
2
+ ^\.Rproj\.user$
3
+ ^\.vscode$
4
+ ^cran-comments\.md$
5
+ ^LICENSE\.md$
6
+ ^\.github$
7
+ ^README\.Rmd$
8
+ ^_pkgdown\.yml$
9
+ ^docs$
10
+ ^pkgdown$
11
+ ^.lintr$
12
+ ^\.covrignore$
13
+ ^man/figures/cheatsheets\.pdf$
14
+ ^data-raw$
15
+ ^shiny$
16
+ ^CRAN-SUBMISSION$
17
+ ^vignettes/.*\.original$
18
+ ^vignettes/comparison-packages-results\.RData$
19
+
20
+ # Bazel files.
21
+ ^bazel$
22
+ ^\.bazeliskrc$
23
+ ^\.bazelrc$
24
+ ^\.bazelversion$
25
+ ^WORKSPACE$
26
+ ^BUILD\.bazel$
27
+
28
+ # Python files.
29
+ ^tests/.*\.py$
30
+ ^tests/BUILD\.bazel$
31
+ ^fastcpd$
32
+ ^\.clang-format$
33
+ ^bazelisk\.py$
34
+ ^Makefile$
35
+ ^MANIFEST\.in$
36
+ ^mypy\.ini$
37
+ ^pyproject\.toml$
38
+ ^pytest\.ini$
39
+ ^requirements\.in$
40
+ ^requirements_lock\.txt$
41
+ ^setup\.py$
@@ -0,0 +1 @@
1
+ 7.6.1
@@ -0,0 +1,4 @@
1
+ common --enable_bzlmod=false
2
+ common --enable_workspace=true
3
+ common --repositories_without_autoloads=bazel_features_version,bazel_features_globals
4
+ common --incompatible_python_disallow_native_rules
@@ -0,0 +1 @@
1
+ 7.6.1
@@ -0,0 +1,58 @@
1
+ # Copy from https://github.com/googleapis/google-cloud-cpp-bigquery/tree/main.
2
+
3
+ # Use the Google style in this project.
4
+ BasedOnStyle: Google
5
+
6
+ # Some folks prefer to write "int& foo" while others prefer "int &foo". The
7
+ # Google Style Guide only asks for consistency within a project, we chose
8
+ # "int& foo" for this project:
9
+ DerivePointerAlignment: false
10
+ PointerAlignment: Left
11
+
12
+ # The Google Style Guide only asks for consistency w.r.t. "east const" vs.
13
+ # "const west" alignment of cv-qualifiers. In this project we use "east const".
14
+ QualifierAlignment: Right
15
+
16
+ IncludeBlocks: Merge
17
+ IncludeCategories:
18
+ - Regex: '^\"google/cloud/internal/disable_deprecation_warnings.inc\"$'
19
+ Priority: -1
20
+ # System and C-language headers should go last. These expressions may miss a few
21
+ # cases, we can always add more. Or we can conservative
22
+ - Regex: '^<[A-Za-z0-9_]*\.h>$'
23
+ Priority: 10000
24
+ - Regex: '^<sys/[A-Za-z0-9_]*\.h>$'
25
+ Priority: 10000
26
+ # Matches common headers first, but sorts them after project includes
27
+ - Regex: '^\"google/cloud/(internal/|grpc_utils/|testing_util/|[^/]+\.h)'
28
+ Priority: 1000
29
+ - Regex: '^\"google/cloud/' # project includes should sort first
30
+ Priority: 500
31
+ - Regex: '^\"generator/' # project includes should sort first
32
+ Priority: 500
33
+ - Regex: '^\"generator/internal/' # project internals second
34
+ Priority: 1000
35
+ - Regex: '^\"generator/testing/' # testing helpers third
36
+ Priority: 1100
37
+ - Regex: '^\"' # And then includes from other projects or the system
38
+ Priority: 1500
39
+ - Regex: '^<grpc/'
40
+ Priority: 2000
41
+ - Regex: '^<google/*'
42
+ Priority: 3000
43
+ - Regex: '^<.*/.*'
44
+ Priority: 4000
45
+ - Regex: '^<.*.hpp>'
46
+ Priority: 4000
47
+ - Regex: '^<[^/]*>'
48
+ Priority: 5000
49
+
50
+ # Format raw string literals with a `pb` or `proto` tag as proto.
51
+ RawStringFormats:
52
+ - Language: TextProto
53
+ Delimiters:
54
+ - 'pb'
55
+ - 'proto'
56
+ BasedOnStyle: Google
57
+
58
+ CommentPragmas: '(@copydoc|@copybrief|@see|@overload|@snippet)'
@@ -0,0 +1,3 @@
1
+ R/ref*
2
+ src/ref*
3
+ inst/include/ref*
@@ -0,0 +1 @@
1
+ *.html
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: Bug report
3
+ about: Submit a bug report to help us improve fastcpd
4
+ ---
5
+
6
+ ### Tips for a helpful bug report:
7
+
8
+ * Please include a **minimal reproducible example** to demonstrate the bug.
9
+ A reprex can be helpful. See
10
+ [make a reprex](https://www.tidyverse.org/help/#reprex).
11
+ Do not include session info unless it is explicitly asked for.
12
+
13
+ * If you can, use a small toy dataset that exposes the bug. If for some reason,
14
+ the bug only occurs on your original data, try to limit the number of rows that
15
+ are necessary to expose the bug. Share such data by copying `dput()` output
16
+ rather than an external file.
17
+
18
+ * Unless the bug is about the theme, labels, scales or other plot decoration:
19
+ please omit these from the code.
20
+
21
+ * Please check whether somebody has reported the same problem in the
22
+ [issues](https://github.com/doccstat/fastcpd/issues).
23
+
24
+ Delete these instructions once you have read them.
25
+
26
+ ---
27
+
28
+ I found a problem with ...
29
+
30
+ I expected ...
31
+
32
+ Here is the code to reproduce the bug:
33
+
34
+ ```r
35
+ # copy your code to the clipboard and run:
36
+ reprex::reprex()
37
+ ```
38
+
39
+ <!-- Copy and modified based on https://github.com/tidyverse/ggplot2/tree/main/.github/ISSUE_TEMPLATE -->
@@ -0,0 +1,4 @@
1
+ contact_links:
2
+ - name: Contact the maintainer
3
+ url: https://xingchi.li/
4
+ about: "Seek help from the maintainer instead."
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: "Feature Request"
3
+ about: Suggest a change or new feature in fastcpd
4
+ ---
5
+
6
+ ### Tips for a helpful feature request:
7
+
8
+ * fastcpd is still under active development. Improvements to its current
9
+ functionality or to infrastructure are more than welcome.
10
+
11
+ * Please motivate the need for change, if applicable with a
12
+ **minimal reproducible** example (reprex). If you've never heard of a reprex,
13
+ please read [make a reprex](https://www.tidyverse.org/help/#reprex). Do not
14
+ include session info unless it is explicitly asked for.
15
+
16
+ Delete this instructions once you've read them.
17
+
18
+ ---
19
+
20
+ In situations when ...
21
+
22
+ I would like to be able to ...
23
+
24
+ ```r
25
+ # copy your code to the clipboard and run:
26
+ reprex::reprex()
27
+ ```
28
+
29
+ <!-- Copy and modified based on https://github.com/tidyverse/ggplot2/tree/main/.github/ISSUE_TEMPLATE -->
@@ -0,0 +1,69 @@
1
+ name: bazel_build_linux.yml
2
+
3
+ on: ['push']
4
+
5
+ jobs:
6
+ test_linux:
7
+ runs-on: ubuntu-22.04
8
+ steps:
9
+ - uses: actions/checkout@v4
10
+
11
+ - name: Update system
12
+ run: sudo apt update
13
+
14
+ - name: Install Dev Dependencies
15
+ run: sudo apt install python3-dev
16
+
17
+ - name: Build the code
18
+ run: bazel build //... --subcommands
19
+
20
+ - name: Setup venv
21
+ run: make venv
22
+
23
+ - uses: actions/cache@v3
24
+ with:
25
+ path: ~/.cache/pip
26
+ key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements_lock.txt') }}
27
+ restore-keys: |
28
+ ${{ runner.os }}-pip-
29
+
30
+ - name: Install requirements
31
+ run: make install
32
+
33
+ - uses: actions/cache/save@v3
34
+ id: cache-pip-linux
35
+ with:
36
+ path: ~/.cache/pip
37
+ key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements_lock.txt') }}
38
+
39
+ - name: Install pip wheel
40
+ run: make install_fastcpd
41
+
42
+ - name: make sdist
43
+ run: make sdist
44
+
45
+ - name: Lint with flake8
46
+ run: |
47
+ pip install flake8
48
+ # stop the build if there are Python syntax errors or undefined names
49
+ flake8 . --exclude venv/,env/,.venv/ --count --select=E9,F63,F7,F82 --show-source --statistics
50
+ # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
51
+ flake8 . --exclude venv/,env/,.venv/ --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
52
+
53
+ - name: Install `twine` to publish to PyPI.
54
+ run: python -m pip install twine
55
+
56
+ - name: Publish to PyPI test
57
+ env:
58
+ TWINE_USERNAME: __token__
59
+ TWINE_PASSWORD: ${{ secrets.PYPI_TEST_TOKEN }}
60
+ run: |
61
+ make upload
62
+
63
+ - name: Publish to PyPI
64
+ if: github.ref == 'refs/heads/main'
65
+ env:
66
+ TWINE_USERNAME: __token__
67
+ TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
68
+ run: |
69
+ make upload_prod
@@ -0,0 +1,93 @@
1
+ name: bazel_test_mac.yml
2
+
3
+ on:
4
+ push:
5
+ paths-ignore:
6
+ - 'docs/**'
7
+ - 'paper/**'
8
+ - 'tests/**'
9
+ - 'mkdocs.yml'
10
+
11
+ jobs:
12
+ test_macos_bazel:
13
+ runs-on: macos-13
14
+
15
+ steps:
16
+ # Checks-out your repository under $GITHUB_WORKSPACE, which is the CWD for
17
+ # the rest of the steps
18
+ - uses: actions/checkout@v4
19
+
20
+ # test
21
+ - name: Build the code
22
+ run: bazel build //...
23
+
24
+ - name: Run bazel tests
25
+ run: bazel test --test_output=errors //... --test_size_filters=medium
26
+
27
+
28
+ test_macos_python:
29
+ needs: test_macos_bazel
30
+
31
+ # virtual environments: https://github.com/actions/virtual-environments
32
+ runs-on: macos-13
33
+
34
+ strategy:
35
+ fail-fast: true
36
+ matrix:
37
+ python-version: [ "3.10", "3.11", "3.12", ]
38
+
39
+ steps:
40
+ # Checks-out your repository under $GITHUB_WORKSPACE, which is the CWD for
41
+ # the rest of the steps
42
+ - uses: actions/checkout@v4
43
+
44
+ - name: Set up Python ${{ matrix.python-version }}
45
+ uses: actions/setup-python@v5
46
+ with:
47
+ python-version: ${{ matrix.python-version }}
48
+ cache: 'pip'
49
+
50
+ - name: Python version check
51
+ run: PYTHON=python3 python --version
52
+
53
+ - name: Install dependencies
54
+ run: PYTHON=python3 make install
55
+
56
+ - name: Build wheel
57
+ run: PYTHON=python3 make wheel
58
+
59
+ - name: install wheel in dist folder
60
+ run: PYTHON=python3 python -m pip install dist/fastcpd-*.whl
61
+
62
+ - name: Run python tests
63
+ run: |
64
+ mkdir -p tmp && \
65
+ cd tmp && \
66
+ cp -R ../tests . && \
67
+ python3 -m pytest tests -m "not long"
68
+
69
+ - name: Lint with flake8
70
+ run: |
71
+ pip install flake8
72
+ # stop the build if there are Python syntax errors or undefined names
73
+ flake8 . --exclude venv/,env/,.venv/ --count --select=E9,F63,F7,F82 --show-source --statistics
74
+ # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
75
+ flake8 . --exclude venv/,env/,.venv/ --count --exit-zero --max-complexity=15 --max-line-length=127 --statistics
76
+
77
+ - name: Install `twine` to publish to PyPI.
78
+ run: python -m pip install twine
79
+
80
+ - name: Publish to PyPI test
81
+ env:
82
+ TWINE_USERNAME: __token__
83
+ TWINE_PASSWORD: ${{ secrets.PYPI_TEST_TOKEN }}
84
+ run: |
85
+ PYTHON=python3 make upload
86
+
87
+ - name: Publish to PyPI
88
+ if: github.ref == 'refs/heads/main'
89
+ env:
90
+ TWINE_USERNAME: __token__
91
+ TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
92
+ run: |
93
+ PYTHON=python3 make upload_prod
@@ -0,0 +1,55 @@
1
+ # Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
2
+ # Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
3
+ on:
4
+ push:
5
+ branches: [main, master]
6
+ pull_request:
7
+
8
+ name: R-CMD-check.yaml
9
+
10
+ permissions: read-all
11
+
12
+ jobs:
13
+ R-CMD-check:
14
+ runs-on: ${{ matrix.config.os }}
15
+
16
+ name: ${{ matrix.config.os }} (${{ matrix.config.r }})
17
+
18
+ strategy:
19
+ fail-fast: false
20
+ matrix:
21
+ config:
22
+ - {os: macos-latest, r: 'release'}
23
+ - {os: windows-latest, r: 'release'}
24
+ - {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'}
25
+ - {os: ubuntu-latest, r: 'release'}
26
+ - {os: ubuntu-latest, r: 'oldrel-1'}
27
+
28
+ env:
29
+ GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
30
+ R_KEEP_PKG_SOURCE: yes
31
+
32
+ steps:
33
+ - uses: actions/checkout@v4
34
+
35
+ - uses: r-lib/actions/setup-pandoc@v2
36
+
37
+ - uses: r-lib/actions/setup-r@v2
38
+ with:
39
+ r-version: ${{ matrix.config.r }}
40
+ http-user-agent: ${{ matrix.config.http-user-agent }}
41
+ use-public-rspm: true
42
+
43
+ - uses: r-lib/actions/setup-r-dependencies@v2
44
+ with:
45
+ extra-packages: any::rcmdcheck
46
+ needs: check
47
+
48
+ - name: Install XQuartz on macOS
49
+ if: runner.os == 'macOS'
50
+ run: brew install xquartz --cask
51
+
52
+ - uses: r-lib/actions/check-r-package@v2
53
+ with:
54
+ upload-snapshots: true
55
+ build_args: 'c("--no-manual","--compact-vignettes=gs+qpdf")'
@@ -0,0 +1,20 @@
1
+ # Dependency Review Action
2
+ #
3
+ # This Action will scan dependency manifest files that change as part of a Pull Request, surfacing known-vulnerable versions of the packages declared or updated in the PR. Once installed, if the workflow run is marked as required, PRs introducing known-vulnerable packages will be blocked from merging.
4
+ #
5
+ # Source repository: https://github.com/actions/dependency-review-action
6
+ # Public documentation: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-enforcement
7
+ name: 'Dependency Review'
8
+ on: [pull_request]
9
+
10
+ permissions:
11
+ contents: read
12
+
13
+ jobs:
14
+ dependency-review:
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - name: 'Checkout Repository'
18
+ uses: actions/checkout@v4
19
+ - name: 'Dependency Review'
20
+ uses: actions/dependency-review-action@v3
@@ -0,0 +1,49 @@
1
+ # Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
2
+ # Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
3
+ on:
4
+ push:
5
+ branches: [main, master]
6
+ pull_request:
7
+ release:
8
+ types: [published]
9
+ workflow_dispatch:
10
+
11
+ name: pkgdown.yaml
12
+
13
+ permissions: read-all
14
+
15
+ jobs:
16
+ pkgdown:
17
+ runs-on: ubuntu-latest
18
+ # Only restrict concurrency for non-PR jobs
19
+ concurrency:
20
+ group: pkgdown-${{ github.event_name != 'pull_request' || github.run_id }}
21
+ env:
22
+ GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
23
+ permissions:
24
+ contents: write
25
+ steps:
26
+ - uses: actions/checkout@v4
27
+
28
+ - uses: r-lib/actions/setup-pandoc@v2
29
+
30
+ - uses: r-lib/actions/setup-r@v2
31
+ with:
32
+ use-public-rspm: true
33
+
34
+ - uses: r-lib/actions/setup-r-dependencies@v2
35
+ with:
36
+ extra-packages: any::pkgdown, local::.
37
+ needs: website
38
+
39
+ - name: Build site
40
+ run: pkgdown::build_site_github_pages(new_process = FALSE, install = FALSE)
41
+ shell: Rscript {0}
42
+
43
+ - name: Deploy to GitHub pages 🚀
44
+ if: github.event_name != 'pull_request'
45
+ uses: JamesIves/github-pages-deploy-action@v4.5.0
46
+ with:
47
+ clean: false
48
+ branch: gh-pages
49
+ folder: docs
@@ -0,0 +1,62 @@
1
+ # Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
2
+ # Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
3
+ on:
4
+ push:
5
+ branches: [main, master]
6
+ pull_request:
7
+
8
+ name: test-coverage.yaml
9
+
10
+ permissions: read-all
11
+
12
+ jobs:
13
+ test-coverage:
14
+ runs-on: ubuntu-latest
15
+ env:
16
+ GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
17
+
18
+ steps:
19
+ - uses: actions/checkout@v4
20
+
21
+ - uses: r-lib/actions/setup-r@v2
22
+ with:
23
+ use-public-rspm: true
24
+
25
+ - uses: r-lib/actions/setup-r-dependencies@v2
26
+ with:
27
+ extra-packages: any::covr, any::xml2
28
+ needs: coverage
29
+
30
+ - name: Test coverage
31
+ run: |
32
+ cov <- covr::package_coverage(
33
+ quiet = FALSE,
34
+ clean = FALSE,
35
+ install_path = file.path(normalizePath(Sys.getenv("RUNNER_TEMP"), winslash = "/"), "package")
36
+ )
37
+ print(cov)
38
+ covr::to_cobertura(cov)
39
+ shell: Rscript {0}
40
+
41
+ - uses: codecov/codecov-action@v4
42
+ with:
43
+ # Fail if error if not on PR, or if on PR and token is given
44
+ fail_ci_if_error: ${{ github.event_name != 'pull_request' || secrets.CODECOV_TOKEN }}
45
+ file: ./cobertura.xml
46
+ plugin: noop
47
+ disable_search: true
48
+ token: ${{ secrets.CODECOV_TOKEN }}
49
+
50
+ - name: Show testthat output
51
+ if: always()
52
+ run: |
53
+ ## --------------------------------------------------------------------
54
+ find '${{ runner.temp }}/package' -name 'testthat.Rout*' -exec cat '{}' \; || true
55
+ shell: bash
56
+
57
+ - name: Upload test results
58
+ if: failure()
59
+ uses: actions/upload-artifact@v4
60
+ with:
61
+ name: coverage-test-failures
62
+ path: ${{ runner.temp }}/package