peewit todo notes

+++ doc

* pvc

* attribute Enode.prune

* side-cubes

* get_inputs s-ancestor case: dont "peel if single value"


+++ core

* switch for pdf vs svg plots

* core use notion dependency as non-side dependency

* In vcube.Manipulation the notion parent is used for parent and side cubes

* vcubes.Manipulation with sube

* allow ascent not to return anything, e.g. none -> [ none ] ?

* descent_selection by value-names

* if vcube.save fails try again with shadow-values? 
** http://bugs.python.org/issue19272
** only top level classes and function can be pickled

* simpler vc-loading

* doc arbitrary position of target dimension

* automatic descent value deepcopy?
** case: C changes single dv a of A depending on dvs b1, b2, b3 of B and D depends on A. 
   problem: if we store vc D we store one dv of A only namely the one changed under b3.
   In such case A should depend on B such that for each b a different a is created. Should we
   do something (detect and warn, forbid, or deepcopy) if such case occurs? Good detection is 
   difficult.
 

* test-selection conflicts with deployment that only is done for new input-indexes
  solution: make selection within produce-call and skip it if previous values are taken
  

* dependency resolution  code consistent consistent to what in report, 2.5
** loop_condition: takes successors as input, but is dependency of descent
** cleaner dep model needed?
** by now: do not distinguish descent and ascent deps


* what if all values obtained from vcnode are void?
** what if some are void?

* How does looping cope with pruning? 
** 2x2 cases in deploy:first x pruned


* labels from ref-names: better heuristic when to use?
** when all values are refs the ids should be speaking?
** but ref might used only for better manipulation after creation 

* clearer idea on motivation for ascent production, use cases
** associate ascent with subtree
** but ascent value do not have proper dim in result cube
** incorperating l-ancestors?
*** no: less round relation vcube etree?
*** no: ename wont explain ascent value if the latter take successors into account

* Allow other iterables than list as descent outputs?

* index-selection is messed, see set_d_selection, test_selection, ts, descent_selection
** non-test selection arg for e-nodes such that we can select d-values for run with-out modifying 
  e-node descent definition
** dselection is applied after all descent value are build. Should we build only demanded values instead?


* vcubes: consistent naming for recursive and non-recursive versions of alternations

* setting of treename in Pahtkeeper.digest_path() is not robust: it relies on that main tree import PK directly from 
  project_conf and that it is called therefrom
  
* after agregation like mean, keep info on aggregated dim such that printing vcube 
  can give this information

* what if prune-condition is always true?

* identifying cube values
** cube-integration: given some d-values from ascendants we want get the 
   remaining cube from given v-cube from a given cub-chain. How do we match
   the d-values from the current tree with that of the cube-chain?
** by index: not robust against permutations
** by identity: nope
** by equality: still might be to restrictive, also, equality is not
   always defined
** by value-name: might be too rough
  
* warning only if ascendant e-node does not exist? Would make e-node def more general purpose.

* in doc and in asserts: e-names: no __, ___, etc , used in partnames 

* leaf count
** descent value counts through introspection
** count total number of leafs and number of completed leafs

* sparse v-cube: If many dimension use alternate values the vcube contains many nans and therefor it 
  take more memory than needed. 

* dealing with broader run results: for instance, we want to check wether 
  divergend tuning parameters relates to decreased performance. What is the workflow 
  here? 

* integrate self.send/log-file handling with python logging framework


+++ services

* aggg with single string to be split

* bug: cannot do one-dim plots 

* Manipulations.rename_dim

* straight merge: do we need distinct value labels?

* tex-table-output is out of service

* archiving doc-string out of date
** ni,pi,ai
** exclude pyd-files

* launch with single ssh conection. Using remote agent? Or transfering jop list?

* argmax, argmin: chose first, last, mid optimizer

* flag for cleaning up unison-dir. problem: on remote side we do not set unison dir
** unison-option for clean-up?
** a way to set unison-dir on remote side
** other name than .unison, for inst. .unison_peewit
** problem: .unison might be excluded by users own syncs .unison_peewit not

* better startover policy with launcher use: if previous run has finished, it should 
  start over (unless some keep_run flag is set), or, a counter is added to version 
  and remove_current_files removes any of those


  


  





