Release Notes¶
Release 0.2.x (Current Scope of Work)¶
- [ ] Rewrite documentation based on new syntax and current feature set.
- [ ] Slice to support and resolve boolean operations to define row and colum dimensions in a
single step.
e.g.
trucks.slice(rows=c.salesrep & c.customer, columns=c.lastmonth & c.actualmonth)
- [ ] Support callable function to filter Context objects, e.g.
cdf.product.filter(lambda x: x.startswith("A"))
. - [ ] Collect real-world data sets for testing and validation and implement an automated tester for any dataframe.
Release 0.3.x¶
- [ ]
address
property to return the fully qualified address to rebuild the full context from that address. - [ ] add individual behaviours for key-errors per dimension into schema
- [ ] Extend Expression Parser to support more advanced filtering and mathematical operations
on
Context
objects.
Future Releases¶
Just ideas, neither decided, nore scheduled or prioritized.
- [ ] Support for Linked Cubes to mimic DWH-style star-schemas.
- [ ] Custom Business Logic: Allow users to define custom business logic for measures.
- [ ] Custom Measures: Allow users to define custom measures.
- [ ] Custom Dimensions: Allow users to define custom calculated dimensions.
- [ ] Custom Members: Allow users to define custom calculated members.
Implemented Features, Issue, Bugs¶
Release 0.2.x¶
- [x] Date,time and Datetime resolvers for Englisch keywords like
yesterday
,today
,tomorrow
,lastweek
,thisweek
,nextweek
,lastmonth
,thismonth
,nextmonth
,lastyear
,thisyear
,nextyear
etc. as members of a dimension. Multiple words should either be written together or separated by_
, e.g.last_month
vs.lastmonth
. - [x] All member related functions should return a list of the member keys as defined in the
dataframe.
Not wrapped into a
Member
object. - [x] Support for
in
operator on DimensionContext - [x] add feature/switch to return None vs. 0 for data without records.
- [x]
true
&false
as members of a dimension should be resolved asTrue
andFalse
respectively. Aliases to be supportedyes
&no
andon
&off
and1
&0
if used via index. - [x] Support callable methods for all aggregation functions, e.g.
sum
->sum()
. see https://stackoverflow.com/questions/20120983/determine-if-getattr-is-method-or-attribute-call - [x] Further Cleanup and rewrite for Cube, Dimension and Measure object.
Move all none essential methods, properties and settings to respective properties,
e.g.
Cube.settings
,Cube.properties
,Cube.methods
etc. - [x] check string representations for all objects when in running in Jupyter
- [x] Check, adapt and activate the existing writeback functionality.
- [x] Implement
cdf.product.members
property to return a list of all members for a dimension. - [x]
top(n)
andbottom(n)
functions for dimensions, e.g.cdf.product.top(2)
. - [x]
count
property for dimensions, e.g.cdf.Online.product.count
, to count the number of distinct members. The current implementation counts the records for the default measure. - [x] Implement
Context.full_address
property returning a dictionary. - [x]
implement 'by(rows, colums)' feature forContext
objects to mimic GroupBy functionality over 2 axis. - [x] Boolean logic for
Contex
objects for advanced filtering.and
andor
operators forContext
objects,and
as default. - [x] Allow to set the default measure
- [x] Filter functions for dimensions: include, exclude, filter, like, regex, etc.
- [x] Filter functions for measures: gt, lt, eq, ne, etc.
- [x] Data Type Validation for columns
- [x] Update/rewrite all tests based on new syntax
Release 0.1.x¶
- [x] Initial Release