- major architecture revision, backward compatibility impacted
- now transformation functions may automatically apply an inplace operation when available
- as opposed to a column copy operation which was default convention prior
- with the expectation that this may benefit memory overhead
- inplace transforms if available are applied to the final replacement transformation category entry to family tree primitives
- (where parents are applied prior to auntsuncles, and children prior to coworkers)
- transformation functions which have inplace operation available are designated by boolean inplace_option entry to processdict
- such that transformation categories can optionally be initialized as processdict entries with inplace turned off if desired such as to maintain column grouping correspondance
- where the designation for inplace is passed to the transformation function by way of an inplace parameter which defaults to False
- such that transfomation functions inspect this parameter for determination of whether to rename or copy input column
- the convention is that a user can turn off inplace by passing parameter to a columns as {'inplace' : False}, but cannot turn on inplace manually (to avoid a channel for error)
- it was a design decision not to update order of columns to retain grouping of columns returned from same family tree, as this approach expected to be lower latency
- grouping is accessible by returned column_map, all that matters is order returned from postmunge(.) is same as automunge(.)
- as part of this update replaced the convention for excl transform to utilize this method
- previously excl was an exception to family tree operations in order to apply inplace by different method, now excl is fully consistent with other categories
- removed the exc6 varient from library as no longer needed
- also revised the order of family tree applications in processfamily and processparent as:
- parents, auntsuncles, siblings, cousins => siblings, cousins, parents, auntsuncles
- children, coworkers, niecesnephews, friends => niecesnephews, friends, children, coworkers
- inplace option now supported for: nmbr, nbr2, nbr3, DPn3, DPnb, DLn3, nmdb, mnmx, mnm2, mnm3, mnm4, mnm5, mnm6, DPm2, DLm2, retn, rtbn, rtb2, excl, exc2, exc3, exc4, exc5, dxdt, d2dt, d3dt, d4dt, d5dt, d6dt, dxd2, d2d2, d3d2, d4d2, d5d2, d6d2, mmdx, mmd2, mmd3, mmd4, mmd5, mmd6, dddt, ddd2, ddd3, ddd4, ddd5, ddd6, dedt, ded2, ded3, ded4, ded5, ded6, shft, shf2, shf3, shf4, shf5, shf6, shf7, shf8, MADn, MAD2, MAD3, mean, mea2, mea3, bnry, bnr2, DPb2, log0, log1, logn, lgnm, sqrt, addd, sbtr, mltp, divd, rais, absl, pwor, por2, por3, bsor, btor, bsbn, bnwo, bnKo, bnMo, bnwb, bnKb, bnMb, bneo, bn7o, bn9o, bneb, bn7b, bn9b, bkt3, bkt4, bkb3, bkb4, shfl
- also added inversion support for nmdx, nmd2, nmd3, nmd4, nmd5, nmd6
- also found and fixed an edge case for 1010 transform associated with 5.6