Skip to content

Commit ab27d72

Browse files
committed
do not use F as a variable name from exported C++ functions
1 parent 0b163c6 commit ab27d72

File tree

9 files changed

+210
-132
lines changed

9 files changed

+210
-132
lines changed

R/PF.R

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -740,7 +740,7 @@ PF_forward_filter.data.frame <- function(
740740
fixed_terms = static_args$fixed_terms, tstart = static_args$tstart,
741741
tstop = static_args$tstop, risk_obj = static_args$risk_obj,
742742
debug = static_args$debug, model = static_args$model, Q = Q, Q_0 = Q_0,
743-
F = Fmat, R = R, is_forward = TRUE, a_0 = a_0, N_fw_n_bw = N_fw,
743+
Fmat = Fmat, R = R, is_forward = TRUE, a_0 = a_0, N_fw_n_bw = N_fw,
744744
N_first = N_first, nu = if(is.null(control$nu)) 0L else control$nu,
745745
forward_backward_ESS_threshold = control$forward_backward_ESS_threshold,
746746
method = control$method, n_threads = control$n_threads, Q_tilde = Q_tilde,
@@ -780,14 +780,14 @@ get_Q_tilde <- function(x, n_vars)
780780
!is.null(G), !is.null(J), !is.null(K), !is.null(theta), !is.null(psi),
781781
!is.null(phi))
782782
if(is_restricted){
783-
fit_call[["F"]] <- F. <- .get_F(G, theta)
783+
fit_call[["Fmat"]] <- F. <- .get_F(G, theta)
784784
fit_call[["Q"]] <- Q <- .get_Q(J, K, psi, phi)$Q
785785
fit_call[["a_0"]] <- eval(fit_call[["a_0"]], parent.frame())
786786
G_tilde <- .get_cum_mat(nrow(F.), ncol(F.)) %*% G
787787
J_qr <- qr(J)
788788

789789
} else {
790-
fit_call[["F"]] <- eval(fit_call[["F."]] , parent.frame())
790+
fit_call[["Fmat"]] <- eval(fit_call[["F."]] , parent.frame())
791791
fit_call[["a_0"]] <- eval(fit_call[["a_0"]], parent.frame())
792792
fit_call[["Q"]] <- eval(fit_call[["Q"]] , parent.frame())
793793

@@ -799,18 +799,18 @@ get_Q_tilde <- function(x, n_vars)
799799
# print Q and F structure
800800
if(trace > 0 && is_restricted){
801801
tmp <- list(
802-
F = .get_F(G, seq_along(theta)), R = R,
802+
Fmat = .get_F(G, seq_along(theta)), R = R,
803803
Q = .get_Q(J, K, seq_along(psi), seq_along(phi))$Q)
804804
tmp <- .set_PF_names(tmp, rng_names = row.names(X), fixed_names = NULL)
805805

806806
# start with F
807807
if(all(rowSums(G) < 2, G %in% c(0, 1))){
808-
tmp$F <- structure(
809-
sapply(tmp$F, sprintf, fmt = "t%d"), dimnames = dimnames(tmp$F),
810-
dim = dim(tmp$F))
811-
tmp$F[tmp$F == "t0"] <- NA_character_
808+
tmp$Fmat <- structure(
809+
sapply(tmp$Fmat, sprintf, fmt = "t%d"), dimnames = dimnames(tmp$F),
810+
dim = dim(tmp$Fmat))
811+
tmp$Fmat[tmp$Fmat == "t0"] <- NA_character_
812812
cat(sQuote("F"), "matrix is of the following form\n")
813-
print(tmp$F, quote = FALSE, na.print = "")
813+
print(tmp$Fmat, quote = FALSE, na.print = "")
814814
cat("\n")
815815

816816
}
@@ -880,7 +880,7 @@ get_Q_tilde <- function(x, n_vars)
880880
}
881881
if(type == "VAR"){
882882
cat("F is:\n")
883-
print(fit_call$F)
883+
print(fit_call$Fmat)
884884
}
885885

886886
print_covmat(fit_call$Q, "Q")
@@ -924,13 +924,13 @@ get_Q_tilde <- function(x, n_vars)
924924
cat("Updating parameters in state model...\n")
925925
a_0_old <- fit_call$a_0
926926
Q_old <- fit_call$Q
927-
F_old <- fit_call$F
927+
F_old <- fit_call$Fmat
928928
fixed_params_old <- fixed_params
929929

930930
if(type == "RW"){
931931
sum_stats <- compute_PF_summary_stats(
932932
clouds, n_threads, a_0 = a_0, Q = Q, Q_0 = Q_0, R = R,
933-
debug = trace > 2, F = F.)
933+
debug = trace > 2, Fmat = F.)
934934
if(est_a_0)
935935
a_0 <- drop(sum_stats[[1]]$E_xs)
936936
Q <- Reduce(
@@ -956,13 +956,13 @@ get_Q_tilde <- function(x, n_vars)
956956
G_tilde, kronecker(solve(Q), crossprod(QR_R)) %*% G_tilde)
957957
theta <- drop(solve(t2, t1))
958958
# TODO: need to change for higher order models
959-
fit_call$F <- F. <- .get_F(G, theta)
959+
fit_call$Fmat <- F. <- .get_F(G, theta)
960960

961961
if(trace > 0)
962962
cat("Running second conditional maximization step\n")
963963
sum_stats <- compute_PF_summary_stats(
964964
clouds, n_threads, a_0 = a_0, Q = Q, Q_0 = Q_0, R = R,
965-
debug = trace > 2, F = F., do_use_F = TRUE, do_compute_E_x = FALSE)
965+
debug = trace > 2, Fmat = F., do_use_F = TRUE, do_compute_E_x = FALSE)
966966
Z <- Reduce(
967967
"+", lapply(sum_stats, "[[", "E_x_less_x_less_one_outers"))
968968

@@ -1036,7 +1036,7 @@ get_Q_tilde <- function(x, n_vars)
10361036
clouds, n_threads, a_0 = a_0, Q = Q, Q_0 = Q_0, R = R,
10371037
debug = trace > 1, only_QR = FALSE)
10381038
# TODO: need to change for higher order models
1039-
fit_call$F <- F. <- new_params$R_top_F
1039+
fit_call$Fmat <- F. <- new_params$R_top_F
10401040
fit_call$Q <- Q <- new_params$Q
10411041

10421042
}
@@ -1083,13 +1083,13 @@ get_Q_tilde <- function(x, n_vars)
10831083
fit_call$fixed_params <- fixed_params <- colMeans(
10841084
fixed_params_it[avg_idx, , drop = FALSE])
10851085

1086-
fit_call$F <- F. <- apply(F_it[, , avg_idx, drop = FALSE], 1:2, mean)
1087-
fit_call$Q <- Q <- apply(Q_it[, , avg_idx, drop = FALSE], 1:2, mean)
1086+
fit_call$Fmat <- F. <- apply(F_it[, , avg_idx, drop = FALSE], 1:2, mean)
1087+
fit_call$Q <- Q <- apply(Q_it[, , avg_idx, drop = FALSE], 1:2, mean)
10881088

10891089
}
10901090

10911091
if(type == "VAR")
1092-
Q_0 <- fit_call$Q_0 <- get_Q_0(Qmat = fit_call$Q, Fmat = fit_call$F)
1092+
Q_0 <- fit_call$Q_0 <- get_Q_0(Qmat = fit_call$Q, Fmat = fit_call$Fmat)
10931093

10941094
# compute norms
10951095
Q_relative_norm <- norm(Q_old - Q) / (norm(Q_old) + 1e-8)
@@ -1136,7 +1136,7 @@ get_Q_tilde <- function(x, n_vars)
11361136

11371137
out <- structure(list(
11381138
call = cl, clouds = clouds, a_0 = a_0, fixed_effects = fixed_params, Q = Q,
1139-
F = fit_call$F, R = R, EM_ests = list(
1139+
F = fit_call$Fmat, R = R, EM_ests = list(
11401140
a_0 = a_0_it [1:i, , drop = FALSE],
11411141
fixed_effects = fixed_params_it[1:i, , drop = FALSE],
11421142
F = F_it[, , 1:i, drop = FALSE],
@@ -1745,7 +1745,7 @@ PF_get_score_n_hess <- function(object, debug = FALSE, use_O_n_sq = FALSE){
17451745
fixed_terms = static_args$fixed_terms, tstart = static_args$tstart,
17461746
tstop = static_args$tstop, risk_obj = static_args$risk_obj,
17471747
debug = debug, model = static_args$model, Q = Q, Q_0 = Q_0,
1748-
F = Fmat, R = R, is_forward = TRUE, a_0 = a_0, N_fw_n_bw = N_fw,
1748+
Fmat = Fmat, R = R, is_forward = TRUE, a_0 = a_0, N_fw_n_bw = N_fw,
17491749
N_first = N_first, nu = if(is.null(ctrl$nu)) 0L else ctrl$nu,
17501750
forward_backward_ESS_threshold = ctrl$forward_backward_ESS_threshold,
17511751
method = ctrl$method, n_threads = ctrl$n_threads, Q_tilde = Q_tilde,
@@ -1785,7 +1785,7 @@ PF_get_score_n_hess <- function(object, debug = FALSE, use_O_n_sq = FALSE){
17851785
if(ctrl$fix_seed)
17861786
assign(".Random.seed", seed, envir = .GlobalEnv)
17871787
cpp_res <- PF_get_score_n_hess_cpp(
1788-
fw_cloud = fw_cloud, Q = Q, F = Fmat,
1788+
fw_cloud = fw_cloud, Q = Q, Fmat = Fmat,
17891789
risk_obj = static_args$risk_obj, ran_vars = static_args$X,
17901790
fixed_terms = static_args$fixed_terms, tstart = static_args$tstart,
17911791
tstop = static_args$tstop, fixed_params = fixed_effects,

R/RcppExports.R

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
# Generated by using Rcpp::compileAttributes() -> do not edit by hand
22
# Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393
33

4-
PF_smooth <- function(n_fixed_terms_in_state_vec, X, fixed_terms, tstart, tstop, a_0, R, Q_0, Q, Q_tilde, risk_obj, F, n_max, n_threads, fixed_params, N_fw_n_bw, N_smooth, N_smooth_final, covar_fac, ftol_rel, forward_backward_ESS_threshold, debug, N_first, type, nu, method, smoother, model) {
5-
.Call(`_dynamichazard_PF_smooth`, n_fixed_terms_in_state_vec, X, fixed_terms, tstart, tstop, a_0, R, Q_0, Q, Q_tilde, risk_obj, F, n_max, n_threads, fixed_params, N_fw_n_bw, N_smooth, N_smooth_final, covar_fac, ftol_rel, forward_backward_ESS_threshold, debug, N_first, type, nu, method, smoother, model)
4+
PF_smooth <- function(n_fixed_terms_in_state_vec, X, fixed_terms, tstart, tstop, a_0, R, Q_0, Q, Q_tilde, risk_obj, Fmat, n_max, n_threads, fixed_params, N_fw_n_bw, N_smooth, N_smooth_final, covar_fac, ftol_rel, forward_backward_ESS_threshold, debug, N_first, type, nu, method, smoother, model) {
5+
.Call(`_dynamichazard_PF_smooth`, n_fixed_terms_in_state_vec, X, fixed_terms, tstart, tstop, a_0, R, Q_0, Q, Q_tilde, risk_obj, Fmat, n_max, n_threads, fixed_params, N_fw_n_bw, N_smooth, N_smooth_final, covar_fac, ftol_rel, forward_backward_ESS_threshold, debug, N_first, type, nu, method, smoother, model)
66
}
77

8-
particle_filter <- function(n_fixed_terms_in_state_vec, X, fixed_terms, tstart, tstop, a_0, R, Q_0, Q, Q_tilde, risk_obj, F, n_threads, fixed_params, N_fw_n_bw, forward_backward_ESS_threshold, debug, N_first, nu, type, is_forward, method, model, covar_fac, ftol_rel) {
9-
.Call(`_dynamichazard_particle_filter`, n_fixed_terms_in_state_vec, X, fixed_terms, tstart, tstop, a_0, R, Q_0, Q, Q_tilde, risk_obj, F, n_threads, fixed_params, N_fw_n_bw, forward_backward_ESS_threshold, debug, N_first, nu, type, is_forward, method, model, covar_fac, ftol_rel)
8+
particle_filter <- function(n_fixed_terms_in_state_vec, X, fixed_terms, tstart, tstop, a_0, R, Q_0, Q, Q_tilde, risk_obj, Fmat, n_threads, fixed_params, N_fw_n_bw, forward_backward_ESS_threshold, debug, N_first, nu, type, is_forward, method, model, covar_fac, ftol_rel) {
9+
.Call(`_dynamichazard_particle_filter`, n_fixed_terms_in_state_vec, X, fixed_terms, tstart, tstop, a_0, R, Q_0, Q, Q_tilde, risk_obj, Fmat, n_threads, fixed_params, N_fw_n_bw, forward_backward_ESS_threshold, debug, N_first, nu, type, is_forward, method, model, covar_fac, ftol_rel)
1010
}
1111

12-
compute_PF_summary_stats <- function(rcpp_list, n_threads, a_0, Q, Q_0, R, debug, F, do_use_F = FALSE, do_compute_E_x = TRUE) {
13-
.Call(`_dynamichazard_compute_PF_summary_stats`, rcpp_list, n_threads, a_0, Q, Q_0, R, debug, F, do_use_F, do_compute_E_x)
12+
compute_PF_summary_stats <- function(rcpp_list, n_threads, a_0, Q, Q_0, R, debug, Fmat, do_use_F = FALSE, do_compute_E_x = TRUE) {
13+
.Call(`_dynamichazard_compute_PF_summary_stats`, rcpp_list, n_threads, a_0, Q, Q_0, R, debug, Fmat, do_use_F, do_compute_E_x)
1414
}
1515

1616
PF_est_params_dens <- function(rcpp_list, n_threads, a_0, Q, Q_0, R, debug, do_est_a_0 = FALSE, only_QR = FALSE) {
1717
.Call(`_dynamichazard_PF_est_params_dens`, rcpp_list, n_threads, a_0, Q, Q_0, R, debug, do_est_a_0, only_QR)
1818
}
1919

20-
PF_get_score_n_hess_cpp <- function(fw_cloud, Q, F, risk_obj, ran_vars, fixed_terms, tstart, tstop, fixed_params, family, max_threads, debug, a_0, R, Q_0, Q_tilde, N_fw_n_bw, N_first, nu, covar_fac, ftol_rel, method, forward_backward_ESS_threshold, use_O_n_sq = FALSE, only_score = FALSE) {
21-
.Call(`_dynamichazard_PF_get_score_n_hess_cpp`, fw_cloud, Q, F, risk_obj, ran_vars, fixed_terms, tstart, tstop, fixed_params, family, max_threads, debug, a_0, R, Q_0, Q_tilde, N_fw_n_bw, N_first, nu, covar_fac, ftol_rel, method, forward_backward_ESS_threshold, use_O_n_sq, only_score)
20+
PF_get_score_n_hess_cpp <- function(fw_cloud, Q, Fmat, risk_obj, ran_vars, fixed_terms, tstart, tstop, fixed_params, family, max_threads, debug, a_0, R, Q_0, Q_tilde, N_fw_n_bw, N_first, nu, covar_fac, ftol_rel, method, forward_backward_ESS_threshold, use_O_n_sq = FALSE, only_score = FALSE) {
21+
.Call(`_dynamichazard_PF_get_score_n_hess_cpp`, fw_cloud, Q, Fmat, risk_obj, ran_vars, fixed_terms, tstart, tstop, fixed_params, family, max_threads, debug, a_0, R, Q_0, Q_tilde, N_fw_n_bw, N_first, nu, covar_fac, ftol_rel, method, forward_backward_ESS_threshold, use_O_n_sq, only_score)
2222
}
2323

2424
pf_fixed_effect_get_QR <- function(clouds, risk_obj, ran_vars, fixed_terms, R_top, tstart, tstop, fixed_params, family, max_threads, debug) {
@@ -161,36 +161,36 @@ linear_mapper_test <- function(A, x, X, z, Z, type, R) {
161161
.Call(`_dynamichazard_linear_mapper_test`, A, x, X, z, Z, type, R)
162162
}
163163

164-
check_state_fw <- function(parent, parent1, child, child1, F, Q) {
165-
.Call(`_dynamichazard_check_state_fw`, parent, parent1, child, child1, F, Q)
164+
check_state_fw <- function(parent, parent1, child, child1, Fmat, Q) {
165+
.Call(`_dynamichazard_check_state_fw`, parent, parent1, child, child1, Fmat, Q)
166166
}
167167

168-
check_state_bw <- function(parent, parent1, child, child1, F, Q) {
169-
.Call(`_dynamichazard_check_state_bw`, parent, parent1, child, child1, F, Q)
168+
check_state_bw <- function(parent, parent1, child, child1, Fmat, Q) {
169+
.Call(`_dynamichazard_check_state_bw`, parent, parent1, child, child1, Fmat, Q)
170170
}
171171

172-
check_artificial_prior <- function(state, F, Q, m_0, Q_0, t1, t2, t3) {
173-
.Call(`_dynamichazard_check_artificial_prior`, state, F, Q, m_0, Q_0, t1, t2, t3)
172+
check_artificial_prior <- function(state, Fmat, Q, m_0, Q_0, t1, t2, t3) {
173+
.Call(`_dynamichazard_check_artificial_prior`, state, Fmat, Q, m_0, Q_0, t1, t2, t3)
174174
}
175175

176176
check_observational_cdist <- function(X, is_event, offsets, tstart, tstop, bin_start, bin_stop, multithreaded, fam, state, state1) {
177177
.Call(`_dynamichazard_check_observational_cdist`, X, is_event, offsets, tstart, tstop, bin_start, bin_stop, multithreaded, fam, state, state1)
178178
}
179179

180-
check_fw_bw_comb <- function(F, Q, parent, parent1, grand_child, grand_child1, x, nu) {
181-
.Call(`_dynamichazard_check_fw_bw_comb`, F, Q, parent, parent1, grand_child, grand_child1, x, nu)
180+
check_fw_bw_comb <- function(Fmat, Q, parent, parent1, grand_child, grand_child1, x, nu) {
181+
.Call(`_dynamichazard_check_fw_bw_comb`, Fmat, Q, parent, parent1, grand_child, grand_child1, x, nu)
182182
}
183183

184-
check_prior_bw_comb <- function(F, Q, m_0, Q_0, child, child1, parent, t1, t2) {
185-
.Call(`_dynamichazard_check_prior_bw_comb`, F, Q, m_0, Q_0, child, child1, parent, t1, t2)
184+
check_prior_bw_comb <- function(Fmat, Q, m_0, Q_0, child, child1, parent, t1, t2) {
185+
.Call(`_dynamichazard_check_prior_bw_comb`, Fmat, Q, m_0, Q_0, child, child1, parent, t1, t2)
186186
}
187187

188-
check_prior_bw_state_comb <- function(X, is_event, offsets, tstart, tstop, bin_start, bin_stop, fam, F, Q, m_0, Q_0, child, child1, parent, t1, Q_xtra, nu = -1L, covar_fac = -1, ftol_rel = 1e-8) {
189-
.Call(`_dynamichazard_check_prior_bw_state_comb`, X, is_event, offsets, tstart, tstop, bin_start, bin_stop, fam, F, Q, m_0, Q_0, child, child1, parent, t1, Q_xtra, nu, covar_fac, ftol_rel)
188+
check_prior_bw_state_comb <- function(X, is_event, offsets, tstart, tstop, bin_start, bin_stop, fam, Fmat, Q, m_0, Q_0, child, child1, parent, t1, Q_xtra, nu = -1L, covar_fac = -1, ftol_rel = 1e-8) {
189+
.Call(`_dynamichazard_check_prior_bw_state_comb`, X, is_event, offsets, tstart, tstop, bin_start, bin_stop, fam, Fmat, Q, m_0, Q_0, child, child1, parent, t1, Q_xtra, nu, covar_fac, ftol_rel)
190190
}
191191

192-
logLike_cpp <- function(X, risk_obj, F, Q_0, Q, a_t_d_s, tstart, tstop, fixed_effects_offsets, order_, model) {
193-
.Call(`_dynamichazard_logLike_cpp`, X, risk_obj, F, Q_0, Q, a_t_d_s, tstart, tstop, fixed_effects_offsets, order_, model)
192+
logLike_cpp <- function(X, risk_obj, Fmat, Q_0, Q, a_t_d_s, tstart, tstop, fixed_effects_offsets, order_, model) {
193+
.Call(`_dynamichazard_logLike_cpp`, X, risk_obj, Fmat, Q_0, Q, a_t_d_s, tstart, tstop, fixed_effects_offsets, order_, model)
194194
}
195195

196196
parallelglm <- function(X, Ys, family, beta0, weights, offsets, tol = 1e-8, nthreads = 1L, it_max = 25L, trace = FALSE, method = "Quick") {

R/loglike.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ logLik.ddhazard = function(object, data = NULL, id, ...){
5555
}
5656

5757
val <- logLike_cpp(
58-
X = X$X, risk_obj = risk_obj, F = object$F_,
58+
X = X$X, risk_obj = risk_obj, Fmat = object$F_,
5959
Q_0 = object$Q_0, Q = object$Q, a_t_d_s = t(object$state_vecs),
6060
tstart = X$Y[, 1], tstop = X$Y[, 2], order_ = object$order,
6161
model = object$model, fixed_effects_offsets = fixed_effects_offsets)

cran-comments.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,80 @@ fixed.
1616
There were no WARNINGs or ERRORs.
1717

1818
There is a NOTE about the package size in some cases.
19+
20+
## Resubmission
21+
This is a resubmission. I have addressed the issues stated below.
22+
23+
> Please write TRUE and FALSE instead of T and F. (Please don't use 'T' or
24+
> 'F' as vector names.)
25+
26+
`T` and `F` is no longer used. Instead `TRUE` and `FALSE` is used. Also, T and F
27+
are no longer used for vector names.
28+
29+
Please add \value to .Rd files regarding exported methods and explain
30+
the functions results in the documentation. Please write about the
31+
structure of the output (class) and also what the output means. (If a
32+
function does not return a value, please document that too, e.g.
33+
\value{No return value, called for side effects} or similar)
34+
Missing Rd-tags:
35+
ddFixed.Rd: \value
36+
ddhazard_app.Rd: \value
37+
logLik.ddhazard.Rd: \value
38+
plot.ddhazard_space_errors.Rd: \value
39+
plot.ddhazard.Rd: \value
40+
predict.ddhazard.Rd: \value
41+
print.ddhazard_boot.Rd: \value
42+
residuals.ddhazard.Rd: \value
43+
44+
\dontrun{} should only be used if the example really cannot be executed
45+
(e.g. because of missing additional software, missing API keys, ...) by
46+
the user. That's why wrapping examples in \dontrun{} adds the comment
47+
("# Not run:") as a warning for the user.
48+
Does not seem necessary in every case.
49+
50+
Please unwrap the examples if they are executable in < 5 sec, or replace
51+
\dontrun{} with \donttest{}.
52+
53+
54+
You are setting options(warn=-1) in your function. This is not allowed.
55+
Please rather use suppressWarnings() if really needed.
56+
57+
Please make sure that you do not change the user's options, par or
58+
working directory. If you really have to do so within functions, please
59+
ensure with an *immediate* call of on.exit() that the settings are reset
60+
when the function is exited. e.g.:
61+
...
62+
oldpar <- par(no.readonly = TRUE) # code line i
63+
on.exit(par(oldpar)) # code line i + 1
64+
...
65+
par(mfrow=c(2,2)) # somewhere after
66+
...
67+
68+
e.g.: inst/doc.. files
69+
70+
71+
Please always make sure to reset to user's options(), working directory
72+
or par() after you changed it in examples and vignettes and demos.
73+
e.g.: ddsurvcurve.Rd
74+
oldpar <- par(mfrow = c(1,2))
75+
...
76+
par(oldpar)
77+
78+
old <- options(digits = 3)
79+
...
80+
options(old)
81+
82+
Please do not modify the .GlobalEnv. This is not allowed by the CRAN
83+
policies.
84+
85+
Please do not modify the global environment (e.g. by using <<-) in your
86+
functions. This is not allowed by the CRAN policies.
87+
88+
Please ensure that you do not use more than 2 cores in your examples,
89+
vignettes, etc.
90+
91+
92+
Additionally:
93+
Have the issues why your package was archived been fixed?
94+
Please explain this in the submission comments.
95+

0 commit comments

Comments
 (0)