grade_name
and class_name
(both class_name_admin
and class_name_teach
) for users properties (#97).clean_users_props()
.setup_source()
for there is no need for database source option setup when only RMariaDB::MariaDB()
is supported.fetch_iquizoo_mem()
of 7 days.project_name
column from users
data.cache
argument to tar_prep_iquizoo()
to optionally specify how to cache the fetched configuration data.users
. See [get_users_props_names()] for all available columns, and customize it by setting subset_users_props
argument in tar_prep_iquizoo()
.users
update based on progress hashes. This is important when more users are added in projects.tar_prep_iquizoo()
.params
and contents
arguments be mutually exclusive in tar_prep_iquizoo()
.groups
argument in favor of group
."bit64"
to packages option of targets in order to keep the integer64 class in the output data.tar_prep_raw()
that preproc_data()
is not correctly tracked by targets pipeline.tar_prep_proj()
into tar_prep_hash()
and tar_fetch_users()
.parse_data()
, previously named as wrangle_data()
. See https://github.com/iquizoo/preproc.iquizoo/issues/86."preproc"
option in action_raw_data
argument of tar_prep_raw()
.query
argument of fetch_data()
is optional. If not specified, the default query stored in the package will be used.suffix_format
argument to fetch_data()
to specify the format of suffix in the query file. This is useful when you want to use a different format of suffix in the query file.fetch_data()
.tar_prep_proj()
, tar_fetch_data()
, tar_prep_raw()
.progress_hash
objects when check_progress
is set to FALSE
in tar_prep_iquizoo()
.~/.cache/tarflow.iquizoo
. This will unavoidably invalidate existing caches for old pipelines, but the pipeline targets will not be affected.fetch_iquizoo_mem()
as a function factory to avoid cache location error.fetch_iquizoo_mem()
, which is a cached version of fetch_iquizoo()
, i.e., the results of fetch_iquizoo()
will be cached.preproc_data()
and wrangle_data()
functions. Now all data preprocessing are done in preproc.iquizoo
package.preproc_data()
.preproc_data()
.wrangle_data()
parsing error and preproc_data()
data binding error.combine
argument in tar_prep_iquizoo()
. This will enable users to specify freely how to combine the data from branches. See ?tar_prep_iquizoo
for details.fetch_data()
because the data table name in the database is actually based on the project creation time."all"
option from what
argument. Specify multiple values if you want to fetch multiple types of data.use_targets_template()
as use_targets_pipeline()
. Although arbitary, "pipeline"
is a little more accurate than "template"
.use_targets()
as use_targets_template()
to avoid name masking with targets::use_targets()
.prepare_fetch_data()
as tar_prep_iquizoo()
to obey the name convention of targets factory.prepare_fetch_data()
.fetch_data()
extract course_date
automatically. In this way, the contents
(regardless based on template or feeding directly) does not require the course_date
column from now on.data.iquizoo::match_preproc()
.quietly
argument to setup_option_file()
, so now messages are suppressed when loading package.prepare_fetch_data()
signal error when contents
contains no data.contents
as contents_origin
to avoid possible name conflict with contents
input argument. This is a limitation of {targets} package.contents
argument in prepare_fetch_data()
to support pre-fetched contents
as contents configuration. This is useful if you have already fetched the contents data and want to use it directly.action_raw_data
argument in prepare_fetch_data()
to specify the action of raw data. This is useful when you want only the parsed raw data and not the indices, e.g., action_raw_data = "parse"
will not perform indices calculation.raw_data_parsed
targets combination and removed raw_data
targets combination, which should be a potential bug for the unparsed raw_data
targets combination is not really the intent.tarchetypes::tar_map()
only rely on columns of project_id
, game_id
and course_date
from template SQL output.setup_option_file()
and check_source()
to help setup the database connection option file and check if the database is ready (#71).MYSQL_HOST
, MYSQL_USER
, MYSQL_PASSWORD
. See option file template for details.check_source()
returns FALSE
, this package will call setup_option_file()
once to setup the option file in loading phase. You should check if the option file is correctly set up.users
template be independent of input parameters. This means advanced users could minimally specify the contents
template only.RMariaDB::MariaDB()
database driver is detected with higher priority, and odbc::odbc()
is technically deprecated, although still supported (not sure for working) for now (#68).fetch_parameterized()
as fetch_iquizoo()
. The latter is shorter and echoes with the package name.fetch_batch()
as vector parameters are supported by DBI::dbGetQuery()
. fetch_iquizoo()
handles both vector and scalar parameters.setup_source()
to specify the data source. Arguments driver
, dsn
and groups
of fetch_parameterized()
now live in this function.params
argument of fetch_parameterized()
be optional (but not after ...
) when no parameters in query
. Note this is not checked beforehand, so you should take care of whether there are parameters.setup_templates()
for details (#66).project_hash
to progress_hash
, which is more informative. So the argument always_check_hash
of prepare_fetch_data()
is changed to check_progress
accordingly.RMariaDB::MariaDB()
is used.fetch_preset()
does not pass ...
to fetch_parameterized()
correctly.dsn
and groups
in options by tarflow.dsn
and tarflow.groups
respectively. This is useful when default values are not suitable for you.always_check_hash
to FALSE
in use_targets()
.odbc
does not configure correctly.tarflow.iquizoo::use_targets()
to generate the pipeline.course_name
and course_period
for now. Other parameters will be added in future.game_stage
and game_star
to scores data (#29).I()
to input literal query in query_file
argument for pickup()
.content_orginal_data_detail
and content_score_detail
tables lived in iqizoo_content_db
database..onAttach()
that will display incorrect message when loading the package."tarflow.driver"
not working....
argument from connect_to_db()
for it is just an internal function.pickup()
support drv
argument to specify the database driver. This is useful when you want to specify which database driver to use. For example, you can use drv = RMariaDB::MariaDB()
."tarflow.driver"
, which will find the first available driver from odbc
and RMariaDB
. If neither of them is available, a message will be prompted to inform user to install one.add_keyword
to compose_where()
to allow adding keyword WHERE
to the where clause. This is useful when you want to compose a where clause for a subquery.search_games_mem()
for it will not behave as expected. Especially, memoise::forget()
will not work. A working version is added in rmarkdown template.<integer64>
class. Now data.iquizoo::game_info
and data returned by pickup()
stores game_id
as <integer64>
class from bit64 package, but tarchetypes::tar_map()
does not support such class, and here we convert it to <character>
class as a workaround.input
and extra
should be configured in game_info
data from that package..by
again.integer64
type.preproc_data()
do not use purrr::possibly()
to suppress errors.data.frame()
of data, which will be more efficient (#50).pickup()
support input literal sql query string through argument query_file
. To be recognized as literal sql query, the string must contains at least one new line."game_version"
column.preproc_data()
returns indices
after tidyr::pivot_longer()
, so the column names are now "index_name"
and "score"
, consistent among all games.wrangle_data()
also changes character values to lower case..input
and .extra
inputs.init()
and its related functions were totally removed, which were deprecated in "0.2.0"
and later.fetch()
and fetch_single_game()
were renamed as pickup()
and pickup_single_game()
to avoid name masking of DBI::fetch()
(see #45).preproc_data()
occurred when using complex dplyr verbs (see #43).pickup()
(see #41).init()
is deprecated, and rmarkdown template is recommended instead.'OrganizationUserId'
.users
from new version of database. Now base_grade_class
was obsolete and removed from query.known_only
to FALSE
when downloading pre-calculated scores (#32).TarScript()
when there are only one codes
(thus unique()
is not necessary to be called) to update.known_only
argument (default to TRUE
) to search_games()
, which uses the games in dataproc.iquizoo::game_info
only. You cannot set it as FALSE
when fetching original data.encoding
argument (default to "UTF-8"
) to fetch()
, which is used to set the encoding of SQL query files. This will also fix some encoding issues on Windows OS.step_query()
. The query named games
are not to be included in targets. And queries named users
and abilities
should be always fetched. Other queries depend on whether it is separated or not.wrangle_data()
(#24) to dataproc.iquizoo package now. That is, the data preprocessing parts are all moved to dataproc.iquizoo package now. This better fits our mental models about these packages.calc_indices
(#24) and added wrangle_data()
to fit the jobs for this package. This new function will parse input json
string and stack them into long format, but keep other meta info in the attribute "info"
of output. With all these, the output added a subclass "tbl_meta"
and a print()
method.fetch_single_game()
to treat special case of fetching dataset from a single game. This is used especially when using branches.compose_where()
and insert_where()
, because they are just for usage in current package.stringr::str_detect()
to remove empty json string. Now "[]"
and "{}"
are both removed."[]"
) json string data in validation step of calc_indices()
.calc_indices()
.use_targets()
has been removed. And init()
is used to replace it. With this function, we can define many other schemas. Maybe in future, the logic should be modified to better handle schemas.config_where
in fetch_from_v3()
. Besides the list
type, now you can specify a data.frame
type and even a character
type of config_where
. This is most helpful when config_where
is generated not by yaml
config, but by R code directly.fetch_from_v3()
as fetch()
, and the API is now fetch(query_file, config_where, dsn)
. That is to say, you can now pass the data source name of your database to it.compose_where()
, which originally was named as compose_where_clause()
.separate
in use_targets()
to optionally separate fetching into branches by games.ignore_tar
in use_targets()
to optionally ignore internal data from targets package in version control system (i.e., ".gitignore").use_targets()
will skip "config.yml" file silently if there already exists one.game_info
to "dataproc.iquizoo (>= 0.2.6)" package.NEWS.md
file to track changes to the package.Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.