Skip to content

Consider mangling keys selectively #88

@wlandau

Description

@wlandau

Could we do a quick check on keys (either key == make.names(key) or grepl(pattern = "^([a-z]|[0-9]|_|\\.)+$", ignore.case = TRUE)) before even trying to mangle keys? Maybe for storr_rds(mangle_key = "selective")?

I think this is a much better solution to #44 than #87. For certain drake workflows, half the overhead is from mangling keys, and the overwhelming majority of keys do not even need to be mangled. (They only contain alphanumerics, dots, and underscores.) It is a shame to punish all the well-behaved keys for the sake of a delinquent few.

Somehow, we would need to ensure uniqueness and indicate where decoding is needed. Maybe we could attach prefixes "e" and "n" to encoded and non-encoded keys, respectively.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions