All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Links are updated with Changelog.jl using the command:
Changelog.generate(
Changelog.CommonMark(), # output type
"CHANGELOG.md"; # input and output file
repo = "rafaqz/DimensionalData.jl", # default repository for links
)combinemethod added to complementgroupby(#903)DimSlicesobject is now documented interface.- Tables can now be converted to
AbstractDimArrayorAbstractDimStack, guessing the lookup values from dimension columns, thanks to major efforts by @JoshuaBillson and @tiemvanderdeure in (#739) presevedimscan be used to preseve dimensions of array during conversion to tables, so that values may themselves beAbstractDimArray(#917)rebuildsliceddocumented and added to the developer interface- Broadcasts improved for all
AbstractBasicDimArray, likeDimSelectors. groupbyaccepts name keyword to set the name of the DimGroupbyArray- New
hasinternaldimensionstrait function for lookups that contain multiple dimensions - along with tests. (#991) - BREAKING: MergedLookup and other lookups with
hasinternaldimensionsnow returnextent/boundsof their "internal" dimensions, not of their indices as they did before. If you merge an X and Y dimension, the extent of that merged lookup will have X and Y elements. (#991)
Begin/Endbugfixed for use as types- lookup methods like
order,spanetc work from all objects consistently (#1071) ==for AbstractDimArray with missing values return missing and do not errorisequalof AbstractDimArrays takes the dimensions into account
-
similarforAbstractDimStackhas modified behavior more consistent withsimilarforAbstractArray(#903). -
Internal const
CategoricalEltypesnow includesDataType- so that a lookup of types is consideredCategoricalby default (#876). -
skipmissingon anAbstractDimStacknow skips anymissingvalues in any fiels, rather thanmissing, which can't actually occur (#1041). -
Minor changes in coversion to and from tables in some cases.
-
Abstract constructors for AbstractDimArray were removed, as they cause ambiguity hassles. If necessary, extending packages can define methods like these for their own types: DimArray{T}(x::UndefInitializer, dims::Dimension...; kw...) where T = DimArray{T}(x, dims; kw...) DimArray{T}(x::UndefInitializer, dims::MaybeDimTuple; kw...) where T = DimArray(Array{T}(undef, map(length, dims)), dims; kw...) MyDimArray(st::AbstractDimStack; kw...) = DD.dimarray_from_dimstack(MyDimArray, st; kw...)
-
the deprecated
indexfunction is now removed completely -
metadata(obj, dims)no longer works as its ambiguous and not consistently implemented -metadata(obj)does not return a Tuple for each dimension like other similar methods, but the metadata ofobj. To get dimension metadata going forward, explicitly usemetadata(dims(obj, X)) -
val(obj)no longer returnsmap(val, dims(obj))because that's just weird, val seems like it would returnparentfrom that call.lookupdoes this anyway. -
Added a
Dparameter to AbstractDimStack in (#1128) so that its more interoperable with AbstractDimArray -
Removed two methods that don't have much use and cause lots of invalidations:
Base.convert(Type{<:AbstractString}, name::DD.AbstractName)is removed, usestring(name)instead.Base.merge(stack::AbstractDimStack, pairs)is removed, usemerge(stack, NamedTuple(pairs))instead.
-
unsafe_setwas split out fromsetin (#926) -setnow fixes everything to return a correct object, andunsage_setdoes not. Usesetdirectly, andunsafe_setin packages or if you really know what youre doing. -
Removed deprecated LookupArrays and LookupArray