add_resource()
now allows to replace an existing resource (#227).read_resource()
now returns error if bothpath
anddata
are provided (#143).write_package()
no longer writes to"."
by default, since this is not allowed by CRAN policies. The user needs to explicitly define a directory (#205).write_package()
now writes incomingnull
values back toNULL
indatapackage.json
, rather than empty an empty lists. Properties that are assignedNA
andNULL
by the user, remain being written asnull
and removed respectively (#203).- The included dataset
example_package
is removed in favour of the functionexample_package()
. This function allows to reproducibly provide a local Data Package, while before it needed to be a remote package. Theobservations
resource was also changed from a remote to a local resource - allowing the entire example Data Package to be read locally - and from CSV to TSV - allowing to test for dialect. Examples and tests were updated (#114, #253).
read_resource()
is now more modular under the hood, which should make it easier to extend (#210).- checklist tooling was removed, in favour of
CITATION.cff
for citation and Zenodo deposit (#206).
- New function
print()
prints a human-readable summary of the Data Package, rather than a (long) list (#155). read_package()
no longer returns a message regarding rights and credit (#121). Ifpackage$id
is a URL (e.g. a DOI) it will be mentioned inprint()
.add_resource()
accepts additional arguments via...
. These are added as (custom) properties to the resource and are retained inwrite_package()
(#195).read_resource()
now supports column selection via thecol_select
argument fromreadr::read_delim()
. This can vastly improve reading speed (#123). Tidy selection is not supported.write_package()
no longer adds"profile": "tabular-data-package"
todatapackage.json
. It is also removed from the example dataset (#188).- Error and warning messages use semantic colours for variables, parameters, fields, etc.
readr::problems()
is included in NAMESPACE so you don't have to load readr to inspect parsing issues. The function is mentioned in the documentation ofread_resource()
(#129).
- A Data Package object (
package
) now has adatapackage
class (#184). This enables a customprint()
function (see above).check_package()
will warn if the class is missing, so previously saved Data Package objects (without the class) will generate a warning. check_package()
is now a public function, so it can be used in your package (#185). This and the othercheck_
functions return the first argument silently (rather thanTRUE
), so they can be chained.create_package()
now accepts adescriptor
argument so that a Data Package object can be created from an existing object (#184). It will always validate the created object withcheck_package()
.cli::cli_abort()
,cli::cli_warn()
andcli::cli_inform()
are used for all errors, warnings, and messages (#163). This has several advantages:- Messages use semantic colours for variables, parameters, fields, etc.
- Messages and warnings can be silenced with a global or local option, see this blog post.
- Each call has an rlang class, e.g.
frictionless_error_fields_without_name
, making it easier to test for specific errors.
- glue and assertthat are removed as dependencies (#163). The functionality of glue is replaced by cli, while
assertthat::assert()
calls are nowif ()
statements. - rlang is added as dependency (#192). It is already used by other dependencies.
- frictionless now depends on R >= 3.5.0.
- The package now adheres to the requirements of checklist, so that
.zenodo.json
can be created withchecklist::update_citation()
. - Add Pieter Huybrechts as author and Kyle Husmann as contributor. Welcome both!
- Add stringi to
Suggests
. It was removed as a dependency from rmarkdown 2.26, resulting in "stringi package required for encoding operations" build errors on CRAN (#176).
- Add
skip_if_offline()
to selected tests and verbosely include output in vignette examples, to avoid CRAN errors caused by timeouts (#116).
- Rebuild documentation for compatibility with HTML5 on request of CRAN.
- Add funder information.
- First release on CRAN. 🎉
- Files (
datapackage.json
, resource files, schemas) can now be read from(s)ftp://
URLs (#102). - Package website is now served from https://docs.ropensci.org/frictionless/.
add_resource()
now setsformat
,mediatype
andencoding
for added CSV file(s) (#78).add_resource()
now supports addingschema
via path or URL.write_package()
now supports added data to be gzip compressed before being written to disk (#98).read_resource()
will now warn rather than error on unknown encoding (#86).package
objects no longer have or require the custom attributeresource_names
, use new functionresources()
instead (#97).package
objects no longer have or require the custom attributedatapackage
, making it easier to edit them as lists (with e.g.append()
).
add_resource()
now supports adding CSV file(s) directly as a resource. This skips reading/handling by R and gives users control overpath
(#74).- CSV files in a remotely read package (like
example_package
) are now downloaded when writing withwrite_package()
, rather than being skipped. This is more consistent with locally read packages. The behaviour for resources with apath
containing URLs (only) and resources withdata
remains the same (no files are written). The write behaviour is better explained in the documentation (#77). write_package()
now silently returns the output rather than inputpackage
.create_package()
will set"profile" = "tabular-data-package"
since packages created by frictionless meet those requirements (#81).create_schema()
interprets empty columns asstring
notboolean
(#79).read_package()
can now read from adatapackage.yaml
file.read_resource()
now accepts YAML Table Schemas and CSV dialects.add_resource()
/create_schema()
'sdf
argument is renamed todata
.example_package
'sobservations
resource now has URLs aspath
to serve as an example for that.
- Add vignette with overview of functionality (#60).
- Prepare frictionless for rOpenSci submission.