-
-
Notifications
You must be signed in to change notification settings - Fork 104
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
sasquatch
: Use SAS, R, and Quarto together
#673
Comments
Thanks for submitting to rOpenSci, our editors and @ropensci-review-bot will reply soon. Type |
🚀 Editor check started 👋 |
Checks for sasquatch (v0.0.0.9004)git hash: 8353d8ac
Important: All failing checks above must be addressed prior to proceeding Package License: MIT + file LICENSE 1. Package DependenciesDetails of Package Dependency Usage (click to open)
The table below tallies all function calls to all packages ('ncalls'), both internal (r-base + recommended, along with the package itself), and external (imported and suggested packages). 'NA' values indicate packages to which no identified calls to R functions could be found. Note that these results are generated by an automated code-tagging system which may not be entirely accurate.
Click below for tallies of functions used in each package. Locations of each call within this package may be generated locally by running 's <- pkgstats::pkgstats(<path/to/repo>)', and examining the 'external_calls' table. sasquatchread_file (2), rstudio_context (2), sas_engine (2), check_connection (1), newline (1), r_to_sas (1), rstudio_selection (1), rstudio_text_tidy (1), sas_connect (1), sas_disconnect (1), sas_download (1), sas_get_session (1), sas_list (1), sas_remove (1), sas_run_file (1), sas_run_selected (1), sas_run_string (1), sas_to_r (1), sas_upload (1), sas_use_quarto (1), wrap_in_iframe (1), wrap_in_pre (1) baselist (2), log (2), system.file (2), length (1), options (1), paste (1), paste0 (1) graphicstext (1) htmlwidgetssizingPolicy (1) knitrknit_engines$set (1) reticulateimport (1) rstudioapiprimary_selection (1) 2. Statistical PropertiesThis package features some noteworthy statistical properties which may need to be clarified by a handling editor prior to progressing. Details of statistical properties (click to open)
The package has:
Statistical properties of package structure as distributional percentiles in relation to all current CRAN packages
All parameters are explained as tooltips in the locally-rendered HTML version of this report generated by the The final measure (
2a. Network visualisationClick to see the interactive network visualisation of calls between objects in package 3.
|
id | name | conclusion | sha | run_number | date |
---|---|---|---|---|---|
11900852065 | pages build and deployment | success | fbd7ec | 29 | 2024-11-18 |
11900828295 | pkgdown.yaml | success | 8353d8 | 29 | 2024-11-18 |
11900828308 | R-CMD-check.yaml | success | 8353d8 | 12 | 2024-11-18 |
11900828293 | test-coverage.yaml | success | 8353d8 | 12 | 2024-11-18 |
3b. goodpractice
results
R CMD check
with rcmdcheck
R CMD check generated the following error:
- checking tests ...
Running ‘testthat.R’
ERROR
Running the tests in ‘tests/testthat.R’ failed.
Last 13 lines of output:
5. └─reticulate (local) python_not_found("Python shared library not found, Python bindings not loaded.")
── Error ('test-run.R:18:3'): Run SAS code from file ───────────────────────────
Error: Python shared library not found, Python bindings not loaded.
Please create a default virtual environment withreticulate::virtualenv_create('r-reticulate')
.
Backtrace:
▆- └─sasquatch::sas_connect() at test-run.R:18:3
- └─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
-
└─reticulate:::ensure_python_initialized()
-
└─reticulate:::initialize_python()
-
└─reticulate (local) python_not_found("Python shared library not found, Python bindings not loaded.")
[ FAIL 12 | WARN 0 | SKIP 0 | PASS 14 ]
Error: Test failures
Execution halted
R CMD check generated the following test_fail:
-
This file is part of the standard setup for testthat.
It is recommended that you do not modify it.
Where should you do additional test configuration?
Learn more about the roles of various files in:
* https://r-pkgs.org/testing-design.html#sec-tests-files-overview
* https://testthat.r-lib.org/articles/special-files.html
library(testthat)
library(sasquatch)test_check("sasquatch")
[ FAIL 12 | WARN 0 | SKIP 0 | PASS 14 ]
══ Failed tests ════════════════════════════════════════════════════════════════
── Failure ('test-connection.R:2:3'): test connection ──────────────────────────
Expected sas_connect()
to run without any errors.
i Actually got a with text:
Python shared library not found, Python bindings not loaded.
Please create a default virtual environment with reticulate::virtualenv_create('r-reticulate')
.
── Failure ('test-connection.R:4:3'): test connection ──────────────────────────
Expected sas_connect("oda")
to run without any errors.
i Actually got a with text:
Python shared library not found, Python bindings not loaded.
Please create a default virtual environment with reticulate::virtualenv_create('r-reticulate')
.
── Failure ('test-connection.R:6:3'): test connection ──────────────────────────
Expected sas_get_session()
to run without any errors.
i Actually got a with text:
No current SAS session. Use sas_connect() to start one.
── Failure ('test-connection.R:8:3'): test connection ──────────────────────────
Expected sas_disconnect()
to run without any errors.
i Actually got a with text:
No current SAS session. Use sas_connect() to start one.
── Error ('test-conversion.R:2:3'): SAS to R data.frame ────────────────────────
Error: Python shared library not found, Python bindings not loaded.
Please create a default virtual environment with reticulate::virtualenv_create('r-reticulate')
.
Backtrace:
▆
- └─sasquatch::sas_connect() at test-conversion.R:2:3
- └─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
-
└─reticulate:::ensure_python_initialized()
-
└─reticulate:::initialize_python()
-
└─reticulate (local) python_not_found("Python shared library not found, Python bindings not loaded.")
── Error ('test-conversion.R:24:3'): R to SAS data.frame ───────────────────────
Error: Python shared library not found, Python bindings not loaded.
Please create a default virtual environment with reticulate::virtualenv_create('r-reticulate')
.
Backtrace:
▆
- └─sasquatch::sas_connect() at test-conversion.R:24:3
- └─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
-
└─reticulate:::ensure_python_initialized()
-
└─reticulate:::initialize_python()
-
└─reticulate (local) python_not_found("Python shared library not found, Python bindings not loaded.")
── Error ('test-io.R:12:3'): uploading files to SAS ────────────────────────────
Error: Python shared library not found, Python bindings not loaded.
Please create a default virtual environment with reticulate::virtualenv_create('r-reticulate')
.
Backtrace:
▆
- └─sasquatch::sas_connect() at test-io.R:12:3
- └─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
-
└─reticulate:::ensure_python_initialized()
-
└─reticulate:::initialize_python()
-
└─reticulate (local) python_not_found("Python shared library not found, Python bindings not loaded.")
── Error ('test-io.R:34:3'): download files from SAS ───────────────────────────
Error: Python shared library not found, Python bindings not loaded.
Please create a default virtual environment with reticulate::virtualenv_create('r-reticulate')
.
Backtrace:
▆
- └─sasquatch::sas_connect() at test-io.R:34:3
- └─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
-
└─reticulate:::ensure_python_initialized()
-
└─reticulate:::initialize_python()
-
└─reticulate (local) python_not_found("Python shared library not found, Python bindings not loaded.")
── Error ('test-io.R:61:3'): removing files from SAS ───────────────────────────
Error: Python shared library not found, Python bindings not loaded.
Please create a default virtual environment with reticulate::virtualenv_create('r-reticulate')
.
Backtrace:
▆
- └─sasquatch::sas_connect() at test-io.R:61:3
- └─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
-
└─reticulate:::ensure_python_initialized()
-
└─reticulate:::initialize_python()
-
└─reticulate (local) python_not_found("Python shared library not found, Python bindings not loaded.")
── Error ('test-io.R:85:3'): listing files ─────────────────────────────────────
Error: Python shared library not found, Python bindings not loaded.
Please create a default virtual environment with reticulate::virtualenv_create('r-reticulate')
.
Backtrace:
▆
- └─sasquatch::sas_connect() at test-io.R:85:3
- └─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
-
└─reticulate:::ensure_python_initialized()
-
└─reticulate:::initialize_python()
-
└─reticulate (local) python_not_found("Python shared library not found, Python bindings not loaded.")
── Error ('test-run.R:4:3'): Run SAS code from string ──────────────────────────
Error: Python shared library not found, Python bindings not loaded.
Please create a default virtual environment with reticulate::virtualenv_create('r-reticulate')
.
Backtrace:
▆
- └─sasquatch::sas_connect() at test-run.R:4:3
- └─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
-
└─reticulate:::ensure_python_initialized()
-
└─reticulate:::initialize_python()
-
└─reticulate (local) python_not_found("Python shared library not found, Python bindings not loaded.")
── Error ('test-run.R:18:3'): Run SAS code from file ───────────────────────────
Error: Python shared library not found, Python bindings not loaded.
Please create a default virtual environment with reticulate::virtualenv_create('r-reticulate')
.
Backtrace:
▆
- └─sasquatch::sas_connect() at test-run.R:18:3
- └─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
-
└─reticulate:::ensure_python_initialized()
-
└─reticulate:::initialize_python()
-
└─reticulate (local) python_not_found("Python shared library not found, Python bindings not loaded.")
[ FAIL 12 | WARN 0 | SKIP 0 | PASS 14 ]
Error: Test failures
Execution halted
R CMD check generated the following check_fail:
- rcmdcheck_tests_pass
Test coverage with covr
ERROR: Test Coverage Failed
Cyclocomplexity with cyclocomp
No functions have cyclocomplexity >= 15
Static code analyses with lintr
lintr found no issues with this package!
Package Versions
package | version |
---|---|
pkgstats | 0.2.0.48 |
pkgcheck | 0.1.2.68 |
Editor-in-Chief Instructions:
Processing may not proceed until the items marked with ✖️ have been resolved.
Hi @ryanzomorrodi ! Thanks for your submission. I see your (Transparently, I'm not a SAS user, so I lack some background context on this space.) |
Hi @emilyriederer , I have never used the native One package I forgot to mention is One of the advantages in relying on the SASPy Python package is SASPy can connect to both local and remote SAS clients. The configuration is a bit tedious, but at least for SODA, |
Hi @ryanzomorrodi - Thank you for your replied and your patience! I'm seeking out some editors with SAS expertise to help the process here, but will aim to get back to you soon. |
Sounds great! Thank you |
Hi @ryanzomorrodi - I'm happy to share that we think (Also, what an absolutely perfect name...) |
@ropensci-review-bot check package |
Thanks, about to send the query. |
🚀 Editor check started 👋 |
Checks for sasquatch (v0.0.0.9014)git hash: b506da05
Important: All failing checks above must be addressed prior to proceeding Package License: MIT + file LICENSE 1. Package DependenciesDetails of Package Dependency Usage (click to open)
The table below tallies all function calls to all packages ('ncalls'), both internal (r-base + recommended, along with the package itself), and external (imported and suggested packages). 'NA' values indicate packages to which no identified calls to R functions could be found. Note that these results are generated by an automated code-tagging system which may not be entirely accurate.
Click below for tallies of functions used in each package. Locations of each call within this package may be generated locally by running 's <- pkgstats::pkgstats(<path/to/repo>)', and examining the 'external_calls' table. baselist (6), paste0 (5), paste (4), readline (3), log (2), options (2), c (1), length (1), readLines (1), sapply (1), seq_along (1), sub (1), Sys.getenv (1), Sys.which (1), system.file (1), unique (1) sasquatchmenu (4), get_home_dir (2), list_to_config_dict (2), read_file (2), rstudio_context (2), sas_engine (2), check_connection (1), configure_saspy (1), document (1), install_saspy (1), newline (1), r_to_sas (1), rstudio_selection (1), rstudio_text_tidy (1), sas_connect (1), sas_disconnect (1), sas_download (1), sas_get_session (1), sas_list (1), sas_remove (1), sas_run_file (1), sas_run_selected (1), wrap_in_iframe (1), wrap_in_pre (1) reticulateimport (1), py_discover_config (1), virtualenv_remove (1) graphicstext (1), title (1) knitrknit_engines$set (1), knit_hooks$set (1) htmlwidgetssizingPolicy (1) rstudioapiprimary_selection (1) 2. Statistical PropertiesThis package features some noteworthy statistical properties which may need to be clarified by a handling editor prior to progressing. Details of statistical properties (click to open)
The package has:
Statistical properties of package structure as distributional percentiles in relation to all current CRAN packages
All parameters are explained as tooltips in the locally-rendered HTML version of this report generated by the The final measure (
2a. Network visualisationClick to see the interactive network visualisation of calls between objects in package 3.
|
id | name | conclusion | sha | run_number | date |
---|---|---|---|---|---|
11990402536 | pages build and deployment | success | 5afcec | 43 | 2024-11-23 |
11990389814 | pkgdown.yaml | success | b506da | 45 | 2024-11-23 |
11990389816 | R-CMD-check.yaml | failure | b506da | 28 | 2024-11-23 |
11990150794 | test-coverage.yaml | failure | d5bab8 | 26 | 2024-11-23 |
3b. goodpractice
results
R CMD check
with rcmdcheck
R CMD check generated the following error:
- checking tests ...
Running ‘testthat.R’
ERROR
Running the tests in ‘tests/testthat.R’ failed.
Last 13 lines of output:
Backtrace:
▆- ├─sasquatch::sas_connect() at test-run.R:22:3
- │ ├─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
- │ │ ├─base::tryCatch(...)
- │ │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
- │ │ └─base::force(expr)
- │ ├─.pkgenv$SASPy$SASsession
- │ └─reticulate:::
$.python.builtin.module
(.pkgenv$SASPy, "SASsession") - │ └─reticulate::py_get_attr(x, name, TRUE)
- └─reticulate (local)
<fn>
(<python.builtin.module>
)
[ FAIL 12 | WARN 0 | SKIP 0 | PASS 13 ]
Error: Test failures
Execution halted
R CMD check generated the following test_fail:
-
This file is part of the standard setup for testthat.
It is recommended that you do not modify it.
Where should you do additional test configuration?
Learn more about the roles of various files in:
* https://r-pkgs.org/testing-design.html#sec-tests-files-overview
* https://testthat.r-lib.org/articles/special-files.html
library(testthat)
library(sasquatch)test_check("sasquatch")
List of 22
$ python : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ libpython : chr "/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so"
$ pythonhome : chr "/root/.virtualenvs/r-reticulate:/root/.virtualenvs/r-reticulate"
$ pythonpath : chr "/usr/lib/python38.zip:/usr/lib/python3.8:/usr/lib/python3.8/lib-dynload:/root/.virtualenvs/r-reticulate/lib/pyt"| truncated
$ prefix : chr "/root/.virtualenvs/r-reticulate"
$ exec_prefix : chr "/root/.virtualenvs/r-reticulate"
$ base_exec_prefix : chr "/usr"
$ virtualenv : chr "/root/.virtualenvs/r-reticulate"
$ virtualenv_activate : chr ""
$ executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ base_executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ version_string : chr "3.8.10 (default, Nov 7 2024, 13:10:47) [GCC 9.4.0]"
$ version :Classes 'package_version', 'numeric_version' hidden list of 1
..$ : int [1:2] 3 8
$ architecture : chr "64bit"
$ anaconda : logi FALSE
$ conda : chr "False"
$ numpy :List of 2
..$ path : chr "/root/.virtualenvs/r-reticulate/lib/python3.8/site-packages/numpy"
..$ version:Class 'numeric_version' hidden list of 1
.. ..$ : int [1:3] 1 24 4
$ required_module : chr "saspy"
$ required_module_path: NULL
$ available : logi TRUE
$ python_versions : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ forced : NULL
- attr(*, "class")= chr "py_config"
List of 22
$ python : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ libpython : chr "/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so"
$ pythonhome : chr "/root/.virtualenvs/r-reticulate:/root/.virtualenvs/r-reticulate"
$ pythonpath : chr "/usr/lib/python38.zip:/usr/lib/python3.8:/usr/lib/python3.8/lib-dynload:/root/.virtualenvs/r-reticulate/lib/pyt"| truncated
$ prefix : chr "/root/.virtualenvs/r-reticulate"
$ exec_prefix : chr "/root/.virtualenvs/r-reticulate"
$ base_exec_prefix : chr "/usr"
$ virtualenv : chr "/root/.virtualenvs/r-reticulate"
$ virtualenv_activate : chr ""
$ executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ base_executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ version_string : chr "3.8.10 (default, Nov 7 2024, 13:10:47) [GCC 9.4.0]"
$ version :Classes 'package_version', 'numeric_version' hidden list of 1
..$ : int [1:2] 3 8
$ architecture : chr "64bit"
$ anaconda : logi FALSE
$ conda : chr "False"
$ numpy :List of 2
..$ path : chr "/root/.virtualenvs/r-reticulate/lib/python3.8/site-packages/numpy"
..$ version:Class 'numeric_version' hidden list of 1
.. ..$ : int [1:3] 1 24 4
$ required_module : chr "saspy"
$ required_module_path: NULL
$ available : logi TRUE
$ python_versions : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ forced : NULL - attr(*, "class")= chr "py_config"
List of 22
$ python : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ libpython : chr "/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so"
$ pythonhome : chr "/root/.virtualenvs/r-reticulate:/root/.virtualenvs/r-reticulate"
$ pythonpath : chr "/usr/lib/python38.zip:/usr/lib/python3.8:/usr/lib/python3.8/lib-dynload:/root/.virtualenvs/r-reticulate/lib/pyt"| truncated
$ prefix : chr "/root/.virtualenvs/r-reticulate"
$ exec_prefix : chr "/root/.virtualenvs/r-reticulate"
$ base_exec_prefix : chr "/usr"
$ virtualenv : chr "/root/.virtualenvs/r-reticulate"
$ virtualenv_activate : chr ""
$ executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ base_executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ version_string : chr "3.8.10 (default, Nov 7 2024, 13:10:47) [GCC 9.4.0]"
$ version :Classes 'package_version', 'numeric_version' hidden list of 1
..$ : int [1:2] 3 8
$ architecture : chr "64bit"
$ anaconda : logi FALSE
$ conda : chr "False"
$ numpy :List of 2
..$ path : chr "/root/.virtualenvs/r-reticulate/lib/python3.8/site-packages/numpy"
..$ version:Class 'numeric_version' hidden list of 1
.. ..$ : int [1:3] 1 24 4
$ required_module : chr "saspy"
$ required_module_path: NULL
$ available : logi TRUE
$ python_versions : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ forced : NULL - attr(*, "class")= chr "py_config"
List of 22
$ python : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ libpython : chr "/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so"
$ pythonhome : chr "/root/.virtualenvs/r-reticulate:/root/.virtualenvs/r-reticulate"
$ pythonpath : chr "/usr/lib/python38.zip:/usr/lib/python3.8:/usr/lib/python3.8/lib-dynload:/root/.virtualenvs/r-reticulate/lib/pyt"| truncated
$ prefix : chr "/root/.virtualenvs/r-reticulate"
$ exec_prefix : chr "/root/.virtualenvs/r-reticulate"
$ base_exec_prefix : chr "/usr"
$ virtualenv : chr "/root/.virtualenvs/r-reticulate"
$ virtualenv_activate : chr ""
$ executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ base_executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ version_string : chr "3.8.10 (default, Nov 7 2024, 13:10:47) [GCC 9.4.0]"
$ version :Classes 'package_version', 'numeric_version' hidden list of 1
..$ : int [1:2] 3 8
$ architecture : chr "64bit"
$ anaconda : logi FALSE
$ conda : chr "False"
$ numpy :List of 2
..$ path : chr "/root/.virtualenvs/r-reticulate/lib/python3.8/site-packages/numpy"
..$ version:Class 'numeric_version' hidden list of 1
.. ..$ : int [1:3] 1 24 4
$ required_module : chr "saspy"
$ required_module_path: NULL
$ available : logi TRUE
$ python_versions : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ forced : NULL - attr(*, "class")= chr "py_config"
List of 22
$ python : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ libpython : chr "/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so"
$ pythonhome : chr "/root/.virtualenvs/r-reticulate:/root/.virtualenvs/r-reticulate"
$ pythonpath : chr "/usr/lib/python38.zip:/usr/lib/python3.8:/usr/lib/python3.8/lib-dynload:/root/.virtualenvs/r-reticulate/lib/pyt"| truncated
$ prefix : chr "/root/.virtualenvs/r-reticulate"
$ exec_prefix : chr "/root/.virtualenvs/r-reticulate"
$ base_exec_prefix : chr "/usr"
$ virtualenv : chr "/root/.virtualenvs/r-reticulate"
$ virtualenv_activate : chr ""
$ executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ base_executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ version_string : chr "3.8.10 (default, Nov 7 2024, 13:10:47) [GCC 9.4.0]"
$ version :Classes 'package_version', 'numeric_version' hidden list of 1
..$ : int [1:2] 3 8
$ architecture : chr "64bit"
$ anaconda : logi FALSE
$ conda : chr "False"
$ numpy :List of 2
..$ path : chr "/root/.virtualenvs/r-reticulate/lib/python3.8/site-packages/numpy"
..$ version:Class 'numeric_version' hidden list of 1
.. ..$ : int [1:3] 1 24 4
$ required_module : chr "saspy"
$ required_module_path: NULL
$ available : logi TRUE
$ python_versions : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ forced : NULL - attr(*, "class")= chr "py_config"
List of 22
$ python : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ libpython : chr "/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so"
$ pythonhome : chr "/root/.virtualenvs/r-reticulate:/root/.virtualenvs/r-reticulate"
$ pythonpath : chr "/usr/lib/python38.zip:/usr/lib/python3.8:/usr/lib/python3.8/lib-dynload:/root/.virtualenvs/r-reticulate/lib/pyt"| truncated
$ prefix : chr "/root/.virtualenvs/r-reticulate"
$ exec_prefix : chr "/root/.virtualenvs/r-reticulate"
$ base_exec_prefix : chr "/usr"
$ virtualenv : chr "/root/.virtualenvs/r-reticulate"
$ virtualenv_activate : chr ""
$ executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ base_executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ version_string : chr "3.8.10 (default, Nov 7 2024, 13:10:47) [GCC 9.4.0]"
$ version :Classes 'package_version', 'numeric_version' hidden list of 1
..$ : int [1:2] 3 8
$ architecture : chr "64bit"
$ anaconda : logi FALSE
$ conda : chr "False"
$ numpy :List of 2
..$ path : chr "/root/.virtualenvs/r-reticulate/lib/python3.8/site-packages/numpy"
..$ version:Class 'numeric_version' hidden list of 1
.. ..$ : int [1:3] 1 24 4
$ required_module : chr "saspy"
$ required_module_path: NULL
$ available : logi TRUE
$ python_versions : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ forced : NULL - attr(*, "class")= chr "py_config"
List of 22
$ python : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ libpython : chr "/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so"
$ pythonhome : chr "/root/.virtualenvs/r-reticulate:/root/.virtualenvs/r-reticulate"
$ pythonpath : chr "/usr/lib/python38.zip:/usr/lib/python3.8:/usr/lib/python3.8/lib-dynload:/root/.virtualenvs/r-reticulate/lib/pyt"| truncated
$ prefix : chr "/root/.virtualenvs/r-reticulate"
$ exec_prefix : chr "/root/.virtualenvs/r-reticulate"
$ base_exec_prefix : chr "/usr"
$ virtualenv : chr "/root/.virtualenvs/r-reticulate"
$ virtualenv_activate : chr ""
$ executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ base_executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ version_string : chr "3.8.10 (default, Nov 7 2024, 13:10:47) [GCC 9.4.0]"
$ version :Classes 'package_version', 'numeric_version' hidden list of 1
..$ : int [1:2] 3 8
$ architecture : chr "64bit"
$ anaconda : logi FALSE
$ conda : chr "False"
$ numpy :List of 2
..$ path : chr "/root/.virtualenvs/r-reticulate/lib/python3.8/site-packages/numpy"
..$ version:Class 'numeric_version' hidden list of 1
.. ..$ : int [1:3] 1 24 4
$ required_module : chr "saspy"
$ required_module_path: NULL
$ available : logi TRUE
$ python_versions : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ forced : NULL - attr(*, "class")= chr "py_config"
List of 22
$ python : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ libpython : chr "/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so"
$ pythonhome : chr "/root/.virtualenvs/r-reticulate:/root/.virtualenvs/r-reticulate"
$ pythonpath : chr "/usr/lib/python38.zip:/usr/lib/python3.8:/usr/lib/python3.8/lib-dynload:/root/.virtualenvs/r-reticulate/lib/pyt"| truncated
$ prefix : chr "/root/.virtualenvs/r-reticulate"
$ exec_prefix : chr "/root/.virtualenvs/r-reticulate"
$ base_exec_prefix : chr "/usr"
$ virtualenv : chr "/root/.virtualenvs/r-reticulate"
$ virtualenv_activate : chr ""
$ executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ base_executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ version_string : chr "3.8.10 (default, Nov 7 2024, 13:10:47) [GCC 9.4.0]"
$ version :Classes 'package_version', 'numeric_version' hidden list of 1
..$ : int [1:2] 3 8
$ architecture : chr "64bit"
$ anaconda : logi FALSE
$ conda : chr "False"
$ numpy :List of 2
..$ path : chr "/root/.virtualenvs/r-reticulate/lib/python3.8/site-packages/numpy"
..$ version:Class 'numeric_version' hidden list of 1
.. ..$ : int [1:3] 1 24 4
$ required_module : chr "saspy"
$ required_module_path: NULL
$ available : logi TRUE
$ python_versions : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ forced : NULL - attr(*, "class")= chr "py_config"
List of 22
$ python : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ libpython : chr "/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so"
$ pythonhome : chr "/root/.virtualenvs/r-reticulate:/root/.virtualenvs/r-reticulate"
$ pythonpath : chr "/usr/lib/python38.zip:/usr/lib/python3.8:/usr/lib/python3.8/lib-dynload:/root/.virtualenvs/r-reticulate/lib/pyt"| truncated
$ prefix : chr "/root/.virtualenvs/r-reticulate"
$ exec_prefix : chr "/root/.virtualenvs/r-reticulate"
$ base_exec_prefix : chr "/usr"
$ virtualenv : chr "/root/.virtualenvs/r-reticulate"
$ virtualenv_activate : chr ""
$ executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ base_executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ version_string : chr "3.8.10 (default, Nov 7 2024, 13:10:47) [GCC 9.4.0]"
$ version :Classes 'package_version', 'numeric_version' hidden list of 1
..$ : int [1:2] 3 8
$ architecture : chr "64bit"
$ anaconda : logi FALSE
$ conda : chr "False"
$ numpy :List of 2
..$ path : chr "/root/.virtualenvs/r-reticulate/lib/python3.8/site-packages/numpy"
..$ version:Class 'numeric_version' hidden list of 1
.. ..$ : int [1:3] 1 24 4
$ required_module : chr "saspy"
$ required_module_path: NULL
$ available : logi TRUE
$ python_versions : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ forced : NULL - attr(*, "class")= chr "py_config"
List of 22
$ python : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ libpython : chr "/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so"
$ pythonhome : chr "/root/.virtualenvs/r-reticulate:/root/.virtualenvs/r-reticulate"
$ pythonpath : chr "/usr/lib/python38.zip:/usr/lib/python3.8:/usr/lib/python3.8/lib-dynload:/root/.virtualenvs/r-reticulate/lib/pyt"| truncated
$ prefix : chr "/root/.virtualenvs/r-reticulate"
$ exec_prefix : chr "/root/.virtualenvs/r-reticulate"
$ base_exec_prefix : chr "/usr"
$ virtualenv : chr "/root/.virtualenvs/r-reticulate"
$ virtualenv_activate : chr ""
$ executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ base_executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ version_string : chr "3.8.10 (default, Nov 7 2024, 13:10:47) [GCC 9.4.0]"
$ version :Classes 'package_version', 'numeric_version' hidden list of 1
..$ : int [1:2] 3 8
$ architecture : chr "64bit"
$ anaconda : logi FALSE
$ conda : chr "False"
$ numpy :List of 2
..$ path : chr "/root/.virtualenvs/r-reticulate/lib/python3.8/site-packages/numpy"
..$ version:Class 'numeric_version' hidden list of 1
.. ..$ : int [1:3] 1 24 4
$ required_module : chr "saspy"
$ required_module_path: NULL
$ available : logi TRUE
$ python_versions : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ forced : NULL - attr(*, "class")= chr "py_config"
[ FAIL 12 | WARN 0 | SKIP 0 | PASS 13 ]
══ Failed tests ════════════════════════════════════════════════════════════════
── Failure ('test-connection.R:4:3'): test connection ──────────────────────────
Expected sas_connect()
to run without any errors.
i Actually got a with text:
Python module saspy was not found.
Detected Python configuration:
── Failure ('test-connection.R:6:3'): test connection ──────────────────────────
Expected sas_connect("oda")
to run without any errors.
i Actually got a with text:
Python module saspy was not found.
Detected Python configuration:
── Failure ('test-connection.R:8:3'): test connection ──────────────────────────
Expected sas_get_session()
to run without any errors.
i Actually got a with text:
No current SAS session. Use sas_connect() to start one.
── Failure ('test-connection.R:10:3'): test connection ─────────────────────────
Expected sas_disconnect()
to run without any errors.
i Actually got a with text:
No current SAS session. Use sas_connect() to start one.
── Error ('test-conversion.R:4:3'): SAS to R data.frame ────────────────────────
Error: Python module saspy was not found.
Detected Python configuration:
Backtrace:
▆
- ├─sasquatch::sas_connect() at test-conversion.R:4:3
- │ ├─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
- │ │ ├─base::tryCatch(...)
- │ │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
- │ │ └─base::force(expr)
- │ ├─.pkgenv$SASPy$SASsession
- │ └─reticulate:::
$.python.builtin.module
(.pkgenv$SASPy, "SASsession") - │ └─reticulate::py_get_attr(x, name, TRUE)
- └─reticulate (local)
<fn>
(<python.builtin.module>
)
── Error ('test-conversion.R:28:3'): R to SAS data.frame ───────────────────────
Error: Python module saspy was not found.
Detected Python configuration:
Backtrace:
▆
- ├─sasquatch::sas_connect() at test-conversion.R:28:3
- │ ├─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
- │ │ ├─base::tryCatch(...)
- │ │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
- │ │ └─base::force(expr)
- │ ├─.pkgenv$SASPy$SASsession
- │ └─reticulate:::
$.python.builtin.module
(.pkgenv$SASPy, "SASsession") - │ └─reticulate::py_get_attr(x, name, TRUE)
- └─reticulate (local)
<fn>
(<python.builtin.module>
)
── Error ('test-io.R:14:3'): uploading files to SAS ────────────────────────────
Error: Python module saspy was not found.
Detected Python configuration:
Backtrace:
▆
- ├─sasquatch::sas_connect() at test-io.R:14:3
- │ ├─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
- │ │ ├─base::tryCatch(...)
- │ │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
- │ │ └─base::force(expr)
- │ ├─.pkgenv$SASPy$SASsession
- │ └─reticulate:::
$.python.builtin.module
(.pkgenv$SASPy, "SASsession") - │ └─reticulate::py_get_attr(x, name, TRUE)
- └─reticulate (local)
<fn>
(<python.builtin.module>
)
── Error ('test-io.R:38:3'): download files from SAS ───────────────────────────
Error: Python module saspy was not found.
Detected Python configuration:
Backtrace:
▆
- ├─sasquatch::sas_connect() at test-io.R:38:3
- │ ├─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
- │ │ ├─base::tryCatch(...)
- │ │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
- │ │ └─base::force(expr)
- │ ├─.pkgenv$SASPy$SASsession
- │ └─reticulate:::
$.python.builtin.module
(.pkgenv$SASPy, "SASsession") - │ └─reticulate::py_get_attr(x, name, TRUE)
- └─reticulate (local)
<fn>
(<python.builtin.module>
)
── Error ('test-io.R:67:3'): removing files from SAS ───────────────────────────
Error: Python module saspy was not found.
Detected Python configuration:
Backtrace:
▆
- ├─sasquatch::sas_connect() at test-io.R:67:3
- │ ├─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
- │ │ ├─base::tryCatch(...)
- │ │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
- │ │ └─base::force(expr)
- │ ├─.pkgenv$SASPy$SASsession
- │ └─reticulate:::
$.python.builtin.module
(.pkgenv$SASPy, "SASsession") - │ └─reticulate::py_get_attr(x, name, TRUE)
- └─reticulate (local)
<fn>
(<python.builtin.module>
)
── Error ('test-io.R:93:3'): listing files ─────────────────────────────────────
Error: Python module saspy was not found.
Detected Python configuration:
Backtrace:
▆
- ├─sasquatch::sas_connect() at test-io.R:93:3
- │ ├─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
- │ │ ├─base::tryCatch(...)
- │ │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
- │ │ └─base::force(expr)
- │ ├─.pkgenv$SASPy$SASsession
- │ └─reticulate:::
$.python.builtin.module
(.pkgenv$SASPy, "SASsession") - │ └─reticulate::py_get_attr(x, name, TRUE)
- └─reticulate (local)
<fn>
(<python.builtin.module>
)
── Error ('test-run.R:6:3'): Run SAS code from string ──────────────────────────
Error: Python module saspy was not found.
Detected Python configuration:
Backtrace:
▆
- ├─sasquatch::sas_connect() at test-run.R:6:3
- │ ├─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
- │ │ ├─base::tryCatch(...)
- │ │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
- │ │ └─base::force(expr)
- │ ├─.pkgenv$SASPy$SASsession
- │ └─reticulate:::
$.python.builtin.module
(.pkgenv$SASPy, "SASsession") - │ └─reticulate::py_get_attr(x, name, TRUE)
- └─reticulate (local)
<fn>
(<python.builtin.module>
)
── Error ('test-run.R:22:3'): Run SAS code from file ───────────────────────────
Error: Python module saspy was not found.
Detected Python configuration:
Backtrace:
▆
- ├─sasquatch::sas_connect() at test-run.R:22:3
- │ ├─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
- │ │ ├─base::tryCatch(...)
- │ │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
- │ │ └─base::force(expr)
- │ ├─.pkgenv$SASPy$SASsession
- │ └─reticulate:::
$.python.builtin.module
(.pkgenv$SASPy, "SASsession") - │ └─reticulate::py_get_attr(x, name, TRUE)
- └─reticulate (local)
<fn>
(<python.builtin.module>
)
[ FAIL 12 | WARN 0 | SKIP 0 | PASS 13 ]
Error: Test failures
Execution halted
R CMD check generated the following check_fail:
- rcmdcheck_tests_pass
Test coverage with covr
ERROR: Test Coverage Failed
Cyclocomplexity with cyclocomp
The following function have cyclocomplexity >= 15:
function | cyclocomplexity |
---|---|
configure_saspy | 16 |
Static code analyses with lintr
lintr found no issues with this package!
Package Versions
package | version |
---|---|
pkgstats | 0.2.0.48 |
pkgcheck | 0.1.2.77 |
Editor-in-Chief Instructions:
Processing may not proceed until the items marked with ✖️ have been resolved.
Incidentally, @ryanzomorrodi -- I see you mention not having a good idea for testing your Other ideas (that I haven't tried) might include snapshot testing. Again, maybe not the best way, maybe not necessary (the handling editor and reviewer can decide that) but just a few passing thoughts. I also recognize that knitr engines I think are a bit more binary in how and whether they work so may not benefit from testing as much as parts of the code with many corner cases. |
That seems like a very reasonable approach, I will try it out. Thank you |
@ropensci-review-bot assign @maurolepore as editor |
Assigned! @maurolepore is now the editor |
Dear @ryanzomorrodi, thanks so much for your submission. I'm happy to be the handling editor. Within the next few days I'll be reading this thread in more detail, and going through editor checks.
It might help you to see the criteria we use to choose reviewers, particularly how we define a conflict of interest. It's also a good time to do any changes you might have in mind. Once the reviews start it's best to avoid forcing reviewers to work against a moving target. Very excited your tool as a way to bridge SAS and R 💯 🥇 |
Hi @maurolepore That's great to hear! I reviewed the criteria, but I'm wondering if there is a set list of reviewers to choose from or should I post something on social media. It looks like the book mentions an Airtable directory, but it feels like that is just for editors. My primary interest is to select reviewers with some level of SAS experience. |
@ryanzomorrodi, that's right, that airtable database is restricted to editors. If nobody from your own network comes to mind, then no need to stretch to social media. We ask for suggestions only to ensure we understand the kind of skills the author believes to be useful, so thanks for highlighting the usefulness of SAS experience 🙏👍 |
Sounds good! I apologize, I'm a relative newcomer to the R open-source world, so I'm not super familiar with the space |
No problem at all. One great reason to be here is precisely to expand your networks :-) |
@ropensci-review-bot check package |
Thanks, about to send the query. |
🚀 Editor check started 👋 |
Checks for sasquatch (v0.0.0.9017)git hash: aee061da
Important: All failing checks above must be addressed prior to proceeding Package License: MIT + file LICENSE 1. Package DependenciesDetails of Package Dependency Usage (click to open)
The table below tallies all function calls to all packages ('ncalls'), both internal (r-base + recommended, along with the package itself), and external (imported and suggested packages). 'NA' values indicate packages to which no identified calls to R functions could be found. Note that these results are generated by an automated code-tagging system which may not be entirely accurate.
Click below for tallies of functions used in each package. Locations of each call within this package may be generated locally by running 's <- pkgstats::pkgstats(<path/to/repo>)', and examining the 'external_calls' table. sasquatchmenu (4), get_home_dir (2), list_to_config_dict (2), read_file (2), rstudio_context (2), sas_engine (2), wrap_in_iframe (2), chk_connection (1), chk_has_rownames (1), configure_saspy (1), document (1), execute_safely (1), install_saspy (1), newline (1), r_to_sas (1), rstudio_selection (1), rstudio_text_tidy (1), sas_connect (1), sas_disconnect (1), sas_download (1), sas_get_session (1), sas_list (1), sas_remove (1), sas_run_file (1), sas_run_selected (1), sas_run_string (1), sas_to_r (1), wrap_in_pre (1) baselist (5), paste0 (5), paste (4), readline (3), log (2), options (2), c (1), call (1), length (1), parent.frame (1), readLines (1), sapply (1), seq_along (1), sub (1), Sys.getenv (1), Sys.which (1), system.file (1), unique (1) reticulateimport (1), py_discover_config (1), virtualenv_remove (1) graphicstext (1), title (1) knitrknit_engines$set (1), knit_hooks$set (1) chkabort_chk (1) htmlwidgetssizingPolicy (1) rstudioapiprimary_selection (1) 2. Statistical PropertiesThis package features some noteworthy statistical properties which may need to be clarified by a handling editor prior to progressing. Details of statistical properties (click to open)
The package has:
Statistical properties of package structure as distributional percentiles in relation to all current CRAN packages
All parameters are explained as tooltips in the locally-rendered HTML version of this report generated by the The final measure (
2a. Network visualisationClick to see the interactive network visualisation of calls between objects in package 3.
|
id | name | conclusion | sha | run_number | date |
---|---|---|---|---|---|
12408303336 | pages build and deployment | success | dd809c | 45 | 2024-12-19 |
12408283861 | pkgdown.yaml | success | aee061 | 47 | 2024-12-19 |
12408283864 | R-CMD-check.yaml | failure | aee061 | 30 | 2024-12-19 |
11990150794 | test-coverage.yaml | failure | d5bab8 | 26 | 2024-11-23 |
3b. goodpractice
results
R CMD check
with rcmdcheck
R CMD check generated the following error:
- checking tests ...
Running ‘testthat.R’
ERROR
Running the tests in ‘tests/testthat.R’ failed.
Last 13 lines of output:
Backtrace:
▆- ├─sasquatch::sas_connect() at test-run.R:22:3
- │ ├─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
- │ │ ├─base::tryCatch(...)
- │ │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
- │ │ └─base::force(expr)
- │ ├─.pkgenv$SASPy$SASsession
- │ └─reticulate:::
$.python.builtin.module
(.pkgenv$SASPy, "SASsession") - │ └─reticulate::py_get_attr(x, name, TRUE)
- └─reticulate (local)
<fn>
(<python.builtin.module>
)
[ FAIL 12 | WARN 0 | SKIP 0 | PASS 9 ]
Error: Test failures
Execution halted
R CMD check generated the following warning:
- checking for code/documentation mismatches ... WARNING
Codoc mismatches from Rd file 'install_saspy.Rd':
install_saspy
Code: function(envname = "r-saspy", extra_packages, restart_session =
TRUE)
Docs: function(envname = "r-saspy", extra_packages = NULL,
restart_session = TRUE)
Mismatches in argument default values:
Name: 'extra_packages' Code: Docs: NULL
R CMD check generated the following test_fail:
-
This file is part of the standard setup for testthat.
It is recommended that you do not modify it.
Where should you do additional test configuration?
Learn more about the roles of various files in:
* https://r-pkgs.org/testing-design.html#sec-tests-files-overview
* https://testthat.r-lib.org/articles/special-files.html
library(testthat)
library(sasquatch)test_check("sasquatch")
List of 22
$ python : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ libpython : chr "/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so"
$ pythonhome : chr "/root/.virtualenvs/r-reticulate:/root/.virtualenvs/r-reticulate"
$ pythonpath : chr "/usr/lib/python38.zip:/usr/lib/python3.8:/usr/lib/python3.8/lib-dynload:/root/.virtualenvs/r-reticulate/lib/pyt"| truncated
$ prefix : chr "/root/.virtualenvs/r-reticulate"
$ exec_prefix : chr "/root/.virtualenvs/r-reticulate"
$ base_exec_prefix : chr "/usr"
$ virtualenv : chr "/root/.virtualenvs/r-reticulate"
$ virtualenv_activate : chr ""
$ executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ base_executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ version_string : chr "3.8.10 (default, Nov 7 2024, 13:10:47) [GCC 9.4.0]"
$ version :Classes 'package_version', 'numeric_version' hidden list of 1
..$ : int [1:2] 3 8
$ architecture : chr "64bit"
$ anaconda : logi FALSE
$ conda : chr "False"
$ numpy :List of 2
..$ path : chr "/root/.virtualenvs/r-reticulate/lib/python3.8/site-packages/numpy"
..$ version:Class 'numeric_version' hidden list of 1
.. ..$ : int [1:3] 1 24 4
$ required_module : chr "saspy"
$ required_module_path: NULL
$ available : logi TRUE
$ python_versions : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ forced : NULL
- attr(*, "class")= chr "py_config"
List of 22
$ python : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ libpython : chr "/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so"
$ pythonhome : chr "/root/.virtualenvs/r-reticulate:/root/.virtualenvs/r-reticulate"
$ pythonpath : chr "/usr/lib/python38.zip:/usr/lib/python3.8:/usr/lib/python3.8/lib-dynload:/root/.virtualenvs/r-reticulate/lib/pyt"| truncated
$ prefix : chr "/root/.virtualenvs/r-reticulate"
$ exec_prefix : chr "/root/.virtualenvs/r-reticulate"
$ base_exec_prefix : chr "/usr"
$ virtualenv : chr "/root/.virtualenvs/r-reticulate"
$ virtualenv_activate : chr ""
$ executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ base_executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ version_string : chr "3.8.10 (default, Nov 7 2024, 13:10:47) [GCC 9.4.0]"
$ version :Classes 'package_version', 'numeric_version' hidden list of 1
..$ : int [1:2] 3 8
$ architecture : chr "64bit"
$ anaconda : logi FALSE
$ conda : chr "False"
$ numpy :List of 2
..$ path : chr "/root/.virtualenvs/r-reticulate/lib/python3.8/site-packages/numpy"
..$ version:Class 'numeric_version' hidden list of 1
.. ..$ : int [1:3] 1 24 4
$ required_module : chr "saspy"
$ required_module_path: NULL
$ available : logi TRUE
$ python_versions : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ forced : NULL - attr(*, "class")= chr "py_config"
List of 22
$ python : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ libpython : chr "/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so"
$ pythonhome : chr "/root/.virtualenvs/r-reticulate:/root/.virtualenvs/r-reticulate"
$ pythonpath : chr "/usr/lib/python38.zip:/usr/lib/python3.8:/usr/lib/python3.8/lib-dynload:/root/.virtualenvs/r-reticulate/lib/pyt"| truncated
$ prefix : chr "/root/.virtualenvs/r-reticulate"
$ exec_prefix : chr "/root/.virtualenvs/r-reticulate"
$ base_exec_prefix : chr "/usr"
$ virtualenv : chr "/root/.virtualenvs/r-reticulate"
$ virtualenv_activate : chr ""
$ executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ base_executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ version_string : chr "3.8.10 (default, Nov 7 2024, 13:10:47) [GCC 9.4.0]"
$ version :Classes 'package_version', 'numeric_version' hidden list of 1
..$ : int [1:2] 3 8
$ architecture : chr "64bit"
$ anaconda : logi FALSE
$ conda : chr "False"
$ numpy :List of 2
..$ path : chr "/root/.virtualenvs/r-reticulate/lib/python3.8/site-packages/numpy"
..$ version:Class 'numeric_version' hidden list of 1
.. ..$ : int [1:3] 1 24 4
$ required_module : chr "saspy"
$ required_module_path: NULL
$ available : logi TRUE
$ python_versions : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ forced : NULL - attr(*, "class")= chr "py_config"
List of 22
$ python : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ libpython : chr "/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so"
$ pythonhome : chr "/root/.virtualenvs/r-reticulate:/root/.virtualenvs/r-reticulate"
$ pythonpath : chr "/usr/lib/python38.zip:/usr/lib/python3.8:/usr/lib/python3.8/lib-dynload:/root/.virtualenvs/r-reticulate/lib/pyt"| truncated
$ prefix : chr "/root/.virtualenvs/r-reticulate"
$ exec_prefix : chr "/root/.virtualenvs/r-reticulate"
$ base_exec_prefix : chr "/usr"
$ virtualenv : chr "/root/.virtualenvs/r-reticulate"
$ virtualenv_activate : chr ""
$ executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ base_executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ version_string : chr "3.8.10 (default, Nov 7 2024, 13:10:47) [GCC 9.4.0]"
$ version :Classes 'package_version', 'numeric_version' hidden list of 1
..$ : int [1:2] 3 8
$ architecture : chr "64bit"
$ anaconda : logi FALSE
$ conda : chr "False"
$ numpy :List of 2
..$ path : chr "/root/.virtualenvs/r-reticulate/lib/python3.8/site-packages/numpy"
..$ version:Class 'numeric_version' hidden list of 1
.. ..$ : int [1:3] 1 24 4
$ required_module : chr "saspy"
$ required_module_path: NULL
$ available : logi TRUE
$ python_versions : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ forced : NULL - attr(*, "class")= chr "py_config"
List of 22
$ python : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ libpython : chr "/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so"
$ pythonhome : chr "/root/.virtualenvs/r-reticulate:/root/.virtualenvs/r-reticulate"
$ pythonpath : chr "/usr/lib/python38.zip:/usr/lib/python3.8:/usr/lib/python3.8/lib-dynload:/root/.virtualenvs/r-reticulate/lib/pyt"| truncated
$ prefix : chr "/root/.virtualenvs/r-reticulate"
$ exec_prefix : chr "/root/.virtualenvs/r-reticulate"
$ base_exec_prefix : chr "/usr"
$ virtualenv : chr "/root/.virtualenvs/r-reticulate"
$ virtualenv_activate : chr ""
$ executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ base_executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ version_string : chr "3.8.10 (default, Nov 7 2024, 13:10:47) [GCC 9.4.0]"
$ version :Classes 'package_version', 'numeric_version' hidden list of 1
..$ : int [1:2] 3 8
$ architecture : chr "64bit"
$ anaconda : logi FALSE
$ conda : chr "False"
$ numpy :List of 2
..$ path : chr "/root/.virtualenvs/r-reticulate/lib/python3.8/site-packages/numpy"
..$ version:Class 'numeric_version' hidden list of 1
.. ..$ : int [1:3] 1 24 4
$ required_module : chr "saspy"
$ required_module_path: NULL
$ available : logi TRUE
$ python_versions : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ forced : NULL - attr(*, "class")= chr "py_config"
List of 22
$ python : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ libpython : chr "/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so"
$ pythonhome : chr "/root/.virtualenvs/r-reticulate:/root/.virtualenvs/r-reticulate"
$ pythonpath : chr "/usr/lib/python38.zip:/usr/lib/python3.8:/usr/lib/python3.8/lib-dynload:/root/.virtualenvs/r-reticulate/lib/pyt"| truncated
$ prefix : chr "/root/.virtualenvs/r-reticulate"
$ exec_prefix : chr "/root/.virtualenvs/r-reticulate"
$ base_exec_prefix : chr "/usr"
$ virtualenv : chr "/root/.virtualenvs/r-reticulate"
$ virtualenv_activate : chr ""
$ executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ base_executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ version_string : chr "3.8.10 (default, Nov 7 2024, 13:10:47) [GCC 9.4.0]"
$ version :Classes 'package_version', 'numeric_version' hidden list of 1
..$ : int [1:2] 3 8
$ architecture : chr "64bit"
$ anaconda : logi FALSE
$ conda : chr "False"
$ numpy :List of 2
..$ path : chr "/root/.virtualenvs/r-reticulate/lib/python3.8/site-packages/numpy"
..$ version:Class 'numeric_version' hidden list of 1
.. ..$ : int [1:3] 1 24 4
$ required_module : chr "saspy"
$ required_module_path: NULL
$ available : logi TRUE
$ python_versions : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ forced : NULL - attr(*, "class")= chr "py_config"
List of 22
$ python : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ libpython : chr "/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so"
$ pythonhome : chr "/root/.virtualenvs/r-reticulate:/root/.virtualenvs/r-reticulate"
$ pythonpath : chr "/usr/lib/python38.zip:/usr/lib/python3.8:/usr/lib/python3.8/lib-dynload:/root/.virtualenvs/r-reticulate/lib/pyt"| truncated
$ prefix : chr "/root/.virtualenvs/r-reticulate"
$ exec_prefix : chr "/root/.virtualenvs/r-reticulate"
$ base_exec_prefix : chr "/usr"
$ virtualenv : chr "/root/.virtualenvs/r-reticulate"
$ virtualenv_activate : chr ""
$ executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ base_executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ version_string : chr "3.8.10 (default, Nov 7 2024, 13:10:47) [GCC 9.4.0]"
$ version :Classes 'package_version', 'numeric_version' hidden list of 1
..$ : int [1:2] 3 8
$ architecture : chr "64bit"
$ anaconda : logi FALSE
$ conda : chr "False"
$ numpy :List of 2
..$ path : chr "/root/.virtualenvs/r-reticulate/lib/python3.8/site-packages/numpy"
..$ version:Class 'numeric_version' hidden list of 1
.. ..$ : int [1:3] 1 24 4
$ required_module : chr "saspy"
$ required_module_path: NULL
$ available : logi TRUE
$ python_versions : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ forced : NULL - attr(*, "class")= chr "py_config"
List of 22
$ python : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ libpython : chr "/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so"
$ pythonhome : chr "/root/.virtualenvs/r-reticulate:/root/.virtualenvs/r-reticulate"
$ pythonpath : chr "/usr/lib/python38.zip:/usr/lib/python3.8:/usr/lib/python3.8/lib-dynload:/root/.virtualenvs/r-reticulate/lib/pyt"| truncated
$ prefix : chr "/root/.virtualenvs/r-reticulate"
$ exec_prefix : chr "/root/.virtualenvs/r-reticulate"
$ base_exec_prefix : chr "/usr"
$ virtualenv : chr "/root/.virtualenvs/r-reticulate"
$ virtualenv_activate : chr ""
$ executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ base_executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ version_string : chr "3.8.10 (default, Nov 7 2024, 13:10:47) [GCC 9.4.0]"
$ version :Classes 'package_version', 'numeric_version' hidden list of 1
..$ : int [1:2] 3 8
$ architecture : chr "64bit"
$ anaconda : logi FALSE
$ conda : chr "False"
$ numpy :List of 2
..$ path : chr "/root/.virtualenvs/r-reticulate/lib/python3.8/site-packages/numpy"
..$ version:Class 'numeric_version' hidden list of 1
.. ..$ : int [1:3] 1 24 4
$ required_module : chr "saspy"
$ required_module_path: NULL
$ available : logi TRUE
$ python_versions : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ forced : NULL - attr(*, "class")= chr "py_config"
List of 22
$ python : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ libpython : chr "/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so"
$ pythonhome : chr "/root/.virtualenvs/r-reticulate:/root/.virtualenvs/r-reticulate"
$ pythonpath : chr "/usr/lib/python38.zip:/usr/lib/python3.8:/usr/lib/python3.8/lib-dynload:/root/.virtualenvs/r-reticulate/lib/pyt"| truncated
$ prefix : chr "/root/.virtualenvs/r-reticulate"
$ exec_prefix : chr "/root/.virtualenvs/r-reticulate"
$ base_exec_prefix : chr "/usr"
$ virtualenv : chr "/root/.virtualenvs/r-reticulate"
$ virtualenv_activate : chr ""
$ executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ base_executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ version_string : chr "3.8.10 (default, Nov 7 2024, 13:10:47) [GCC 9.4.0]"
$ version :Classes 'package_version', 'numeric_version' hidden list of 1
..$ : int [1:2] 3 8
$ architecture : chr "64bit"
$ anaconda : logi FALSE
$ conda : chr "False"
$ numpy :List of 2
..$ path : chr "/root/.virtualenvs/r-reticulate/lib/python3.8/site-packages/numpy"
..$ version:Class 'numeric_version' hidden list of 1
.. ..$ : int [1:3] 1 24 4
$ required_module : chr "saspy"
$ required_module_path: NULL
$ available : logi TRUE
$ python_versions : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ forced : NULL - attr(*, "class")= chr "py_config"
List of 22
$ python : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ libpython : chr "/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so"
$ pythonhome : chr "/root/.virtualenvs/r-reticulate:/root/.virtualenvs/r-reticulate"
$ pythonpath : chr "/usr/lib/python38.zip:/usr/lib/python3.8:/usr/lib/python3.8/lib-dynload:/root/.virtualenvs/r-reticulate/lib/pyt"| truncated
$ prefix : chr "/root/.virtualenvs/r-reticulate"
$ exec_prefix : chr "/root/.virtualenvs/r-reticulate"
$ base_exec_prefix : chr "/usr"
$ virtualenv : chr "/root/.virtualenvs/r-reticulate"
$ virtualenv_activate : chr ""
$ executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ base_executable : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ version_string : chr "3.8.10 (default, Nov 7 2024, 13:10:47) [GCC 9.4.0]"
$ version :Classes 'package_version', 'numeric_version' hidden list of 1
..$ : int [1:2] 3 8
$ architecture : chr "64bit"
$ anaconda : logi FALSE
$ conda : chr "False"
$ numpy :List of 2
..$ path : chr "/root/.virtualenvs/r-reticulate/lib/python3.8/site-packages/numpy"
..$ version:Class 'numeric_version' hidden list of 1
.. ..$ : int [1:3] 1 24 4
$ required_module : chr "saspy"
$ required_module_path: NULL
$ available : logi TRUE
$ python_versions : chr "/root/.virtualenvs/r-reticulate/bin/python"
$ forced : NULL - attr(*, "class")= chr "py_config"
[ FAIL 12 | WARN 0 | SKIP 0 | PASS 9 ]
══ Failed tests ════════════════════════════════════════════════════════════════
── Failure ('test-connection.R:4:3'): test connection ──────────────────────────
Expected sas_connect()
to run without any errors.
i Actually got a with text:
Python module saspy was not found.
Detected Python configuration:
── Failure ('test-connection.R:6:3'): test connection ──────────────────────────
Expected sas_connect("oda")
to run without any errors.
i Actually got a with text:
Python module saspy was not found.
Detected Python configuration:
── Failure ('test-connection.R:10:3'): test connection ─────────────────────────
Expected sas_disconnect()
to run without any errors.
i Actually got a <chk_error> with text:
No active SAS session. Use sas_connect() to start one.
── Failure ('test-connection.R:14:3'): test connection ─────────────────────────
sas_get_session()
did not throw the expected error.
── Error ('test-conversion.R:4:3'): SAS to R data.frame ────────────────────────
Error: Python module saspy was not found.
Detected Python configuration:
Backtrace:
▆
- ├─sasquatch::sas_connect() at test-conversion.R:4:3
- │ ├─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
- │ │ ├─base::tryCatch(...)
- │ │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
- │ │ └─base::force(expr)
- │ ├─.pkgenv$SASPy$SASsession
- │ └─reticulate:::
$.python.builtin.module
(.pkgenv$SASPy, "SASsession") - │ └─reticulate::py_get_attr(x, name, TRUE)
- └─reticulate (local)
<fn>
(<python.builtin.module>
)
── Error ('test-conversion.R:28:3'): R to SAS data.frame ───────────────────────
Error: Python module saspy was not found.
Detected Python configuration:
Backtrace:
▆
- ├─sasquatch::sas_connect() at test-conversion.R:28:3
- │ ├─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
- │ │ ├─base::tryCatch(...)
- │ │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
- │ │ └─base::force(expr)
- │ ├─.pkgenv$SASPy$SASsession
- │ └─reticulate:::
$.python.builtin.module
(.pkgenv$SASPy, "SASsession") - │ └─reticulate::py_get_attr(x, name, TRUE)
- └─reticulate (local)
<fn>
(<python.builtin.module>
)
── Error ('test-io.R:14:3'): uploading files to SAS ────────────────────────────
Error: Python module saspy was not found.
Detected Python configuration:
Backtrace:
▆
- ├─sasquatch::sas_connect() at test-io.R:14:3
- │ ├─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
- │ │ ├─base::tryCatch(...)
- │ │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
- │ │ └─base::force(expr)
- │ ├─.pkgenv$SASPy$SASsession
- │ └─reticulate:::
$.python.builtin.module
(.pkgenv$SASPy, "SASsession") - │ └─reticulate::py_get_attr(x, name, TRUE)
- └─reticulate (local)
<fn>
(<python.builtin.module>
)
── Error ('test-io.R:38:3'): download files from SAS ───────────────────────────
Error: Python module saspy was not found.
Detected Python configuration:
Backtrace:
▆
- ├─sasquatch::sas_connect() at test-io.R:38:3
- │ ├─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
- │ │ ├─base::tryCatch(...)
- │ │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
- │ │ └─base::force(expr)
- │ ├─.pkgenv$SASPy$SASsession
- │ └─reticulate:::
$.python.builtin.module
(.pkgenv$SASPy, "SASsession") - │ └─reticulate::py_get_attr(x, name, TRUE)
- └─reticulate (local)
<fn>
(<python.builtin.module>
)
── Error ('test-io.R:67:3'): removing files from SAS ───────────────────────────
Error: Python module saspy was not found.
Detected Python configuration:
Backtrace:
▆
- ├─sasquatch::sas_connect() at test-io.R:67:3
- │ ├─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
- │ │ ├─base::tryCatch(...)
- │ │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
- │ │ └─base::force(expr)
- │ ├─.pkgenv$SASPy$SASsession
- │ └─reticulate:::
$.python.builtin.module
(.pkgenv$SASPy, "SASsession") - │ └─reticulate::py_get_attr(x, name, TRUE)
- └─reticulate (local)
<fn>
(<python.builtin.module>
)
── Error ('test-io.R:93:3'): listing files ─────────────────────────────────────
Error: Python module saspy was not found.
Detected Python configuration:
Backtrace:
▆
- ├─sasquatch::sas_connect() at test-io.R:93:3
- │ ├─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
- │ │ ├─base::tryCatch(...)
- │ │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
- │ │ └─base::force(expr)
- │ ├─.pkgenv$SASPy$SASsession
- │ └─reticulate:::
$.python.builtin.module
(.pkgenv$SASPy, "SASsession") - │ └─reticulate::py_get_attr(x, name, TRUE)
- └─reticulate (local)
<fn>
(<python.builtin.module>
)
── Error ('test-run.R:6:3'): Run SAS code from string ──────────────────────────
Error: Python module saspy was not found.
Detected Python configuration:
Backtrace:
▆
- ├─sasquatch::sas_connect() at test-run.R:6:3
- │ ├─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
- │ │ ├─base::tryCatch(...)
- │ │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
- │ │ └─base::force(expr)
- │ ├─.pkgenv$SASPy$SASsession
- │ └─reticulate:::
$.python.builtin.module
(.pkgenv$SASPy, "SASsession") - │ └─reticulate::py_get_attr(x, name, TRUE)
- └─reticulate (local)
<fn>
(<python.builtin.module>
)
── Error ('test-run.R:22:3'): Run SAS code from file ───────────────────────────
Error: Python module saspy was not found.
Detected Python configuration:
Backtrace:
▆
- ├─sasquatch::sas_connect() at test-run.R:22:3
- │ ├─reticulate::py_capture_output(.pkgenv$session <- .pkgenv$SASPy$SASsession())
- │ │ ├─base::tryCatch(...)
- │ │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
- │ │ └─base::force(expr)
- │ ├─.pkgenv$SASPy$SASsession
- │ └─reticulate:::
$.python.builtin.module
(.pkgenv$SASPy, "SASsession") - │ └─reticulate::py_get_attr(x, name, TRUE)
- └─reticulate (local)
<fn>
(<python.builtin.module>
)
[ FAIL 12 | WARN 0 | SKIP 0 | PASS 9 ]
Error: Test failures
Execution halted
R CMD check generated the following check_fails:
- rcmdcheck_code_docs_mismatch
- rcmdcheck_tests_pass
Test coverage with covr
ERROR: Test Coverage Failed
Cyclocomplexity with cyclocomp
The following function have cyclocomplexity >= 15:
function | cyclocomplexity |
---|---|
configure_saspy | 16 |
Static code analyses with lintr
lintr found no issues with this package!
Package Versions
package | version |
---|---|
pkgstats | 0.2.0.48 |
pkgcheck | 0.1.2.77 |
Editor-in-Chief Instructions:
Processing may not proceed until the items marked with ✖️ have been resolved.
Submitting Author Name: Ryan Zomorrodi
Submitting Author Github Handle: @ryanzomorrodi
Other Package Authors Github handles: (comma separated, delete if none)
Repository: https://github.com/ryanzomorrodi/sasquatch
Version submitted: 0.0.0.9004
Submission type: Standard
Editor: @maurolepore
Reviewers: TBD
Archive: TBD
Version accepted: TBD
Language: en
Scope
Please indicate which category or categories from our package fit policies this package falls under: (Please check an appropriate box below. If you are unsure, we suggest you make a pre-submission inquiry.):
Explain how and why the package falls under these categories (briefly, 1-2 sentences):
sasquatch
allows users to create remote SAS sessions, work with them interactively, pass tables between R and SAS, and render quarto documents.The target audience would be anyone looking to combine SAS in R within a single workflow. Using quarto, analysts can have one single reproducable report that combines SAS and R (and python potentially).
saquatch
works similarly to packages likesasr
orconfigSAS
.sasr
, while similar tosasquatch
, does not include interactive SAS functionality or aknitr
engine. On the other hand,configSAS
includes aknitr
engine, but no interactive SAS functionality.configSAS
knitr
output also does not include syntax highlighting and nested SAS output interferes with the styles of the rest of the document.N/A
If you made a pre-submission inquiry, please paste the link to the corresponding issue, forum post, or other discussion, or @tag the editor you contacted.
Explain reasons for any
pkgcheck
items which your package is unable to pass.Locally,
pkgcheck
is able to pass all tests except coverage. I do not currently have any coverage over theknitr
engine because I am struggling to think about how I can test that effectively. My assumption that the automatedpkgcheck
testing will fail due to the need forpython
, python packageSASPy
,java
, and a SAS License. (I have set up a CI that has all of these set up within thesasquatch
repo).Technical checks
Confirm each of the following by checking the box.
This package:
Publication options
Do you intend for this package to go on CRAN?
Do you intend for this package to go on Bioconductor?
Do you wish to submit an Applications Article about your package to Methods in Ecology and Evolution? If so:
MEE Options
Code of conduct
The text was updated successfully, but these errors were encountered: