Skip to content

Commit

Permalink
Remove dependency to tidyverse
Browse files Browse the repository at this point in the history
  • Loading branch information
hoxo-m committed Jun 17, 2018
1 parent 5cc7d8a commit 4a605db
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 110 deletions.
13 changes: 5 additions & 8 deletions DESCRIPTION
@@ -1,26 +1,23 @@
Package: dplyr.teradata
Type: Package
Title: A 'Teradata' Backend for 'dplyr'
Version: 0.2.0.9000
Version: 0.2.0.9001
Description: A 'Teradata' backend for 'dplyr'. It makes it possible to operate
'Teradata' database <https://www.teradata.com/products-and-services/teradata-database/>
in the same way as manipulating data frames with 'dplyr'.
Authors@R: person("Koji", "Makiyama", email = "hoxo.smile@gmail.com", role = c("cre", "aut"))
License: MIT + file LICENSE
Encoding: UTF-8
LazyData: true
Depends:
dplyr (>= 0.7.0),
dbplyr (>= 1.2.0)
Imports:
bit64,
cli (>= 1.0.0),
crayon (>= 1.3.4),
DBI (>= 0.8),
dbplyr (>= 1.2.0),
dplyr (>= 0.7.0),
methods,
odbc (>= 1.1.6),
purrr (>= 0.2.4),
rstudioapi (>= 0.7),
tidyverse (>= 1.2.0)
rstudioapi (>= 0.7)
Suggests:
blob,
covr,
Expand Down
12 changes: 11 additions & 1 deletion NEWS.md
@@ -1,5 +1,15 @@
# dplyr.teradata 0.2.0.9001

## Changes

- Remove dependency to **tidyverse**
- Revert loading messages
- Remove dbUnQuoteIdentifier, as it was removed in favor of
DBI::dbUnquoteIdentifier in odbc 1.1.6
DBI::dbUnquoteIdentifier in odbc 1.1.6 (#14, @jimhester)

## Improvements

- Activate `charset` argument on `dbConnect()`

# dplyr.teradata 0.2.0

Expand Down
101 changes: 0 additions & 101 deletions R/zzz.R
Expand Up @@ -15,105 +15,4 @@
assign("count_if", sql_count_if, envir = dbplyr::base_odbc_scalar)
assign("n_if", sql_count_if, envir = dbplyr::base_odbc_scalar)
assign("bool_to_int", sql_bool_to_int, envir = dbplyr::base_odbc_scalar)

# Attaching packages ------------------------------------------------------
# See https://github.com/tidyverse/tidyverse/blob/master/R/zzz.R
is_attached <- get("is_attached", envir = asNamespace("tidyverse"))
msg <- get("msg", envir = asNamespace("tidyverse"))

dep_packages <- c("dplyr", "dbplyr")

to_load <- dep_packages[!is_attached(dep_packages)]
if (length(to_load) == 0)
return()

crayon::num_colors(TRUE)
dplyr.teradata_attach(to_load)

x <- dplyr.teradata_conflicts(to_load)
msg(dplyr.teradata_conflict_message(x), startup = TRUE)
}

# See https://github.com/tidyverse/tidyverse/blob/master/R/attach.R
dplyr.teradata_attach <- function(to_load) {
msg <- get("msg", envir = asNamespace("tidyverse"))
package_version <- get("package_version", envir = asNamespace("tidyverse"))

if (length(to_load) == 0)
return(invisible())

msg(
cli::rule(
left = crayon::bold("Attaching packages"),
right = paste0("dplyr.teradata ", package_version("dplyr.teradata"))
),
startup = TRUE
)

versions <- vapply(to_load, package_version, character(1))
packages <- paste0(
crayon::green(cli::symbol$tick), " ", crayon::blue(format(to_load)), " ",
crayon::col_align(versions, max(crayon::col_nchar(versions)))
)

if (length(packages) %% 2 == 1) {
packages <- append(packages, "")
}
col1 <- seq_len(length(packages) / 2)
info <- paste0(packages[col1], " ", packages[-col1])

msg(paste(info, collapse = "\n"), startup = TRUE)

suppressPackageStartupMessages(
lapply(to_load, library, character.only = TRUE, warn.conflicts = FALSE)
)

invisible()
}

# See https://github.com/tidyverse/tidyverse/blob/master/R/conflicts.R
dplyr.teradata_conflicts <- function(to_load) {
ls_env <- get("ls_env", envir = asNamespace("tidyverse"))
invert <- get("invert", envir = asNamespace("tidyverse"))
confirm_conflict <- get("confirm_conflict", envir = asNamespace("tidyverse"))

envs <- purrr::set_names(search())
objs <- invert(lapply(envs, ls_env))

conflicts <- purrr::keep(objs, ~ length(.x) > 1)

tidy_names <- paste0("package:", to_load)
conflicts <- purrr::keep(conflicts, ~ any(.x %in% tidy_names))

conflict_funs <- purrr::imap(conflicts, confirm_conflict)
conflict_funs <- purrr::compact(conflict_funs)

structure(conflict_funs, class = "dplyr.teraedata_conflicts")
}

# See https://github.com/tidyverse/tidyverse/blob/master/R/conflicts.R
dplyr.teradata_conflict_message <- function(x) {
if (length(x) == 0) return("")

header <- cli::rule(
left = crayon::bold("Conflicts"),
right = ""
)

pkgs <- purrr::map(x, ~ gsub("^package:", "", .))
others <- purrr::map(pkgs, `[`, -1)
other_calls <- purrr::map2_chr(
others, names(others),
~ paste0(crayon::blue(.x), "::", .y, "()", collapse = ", ")
)

winner <- purrr::map_chr(pkgs, 1)
funs <- format(paste0(crayon::blue(winner), "::", crayon::green(paste0(names(x), "()"))))
bullets <- paste0(
crayon::red(cli::symbol$cross), " ", funs,
" masks ", other_calls,
collapse = "\n"
)

paste0(header, "\n", bullets)
}

0 comments on commit 4a605db

Please sign in to comment.