[_] 7% roadmap [_] 14% pre-production: staging and test [_] 57% test input [X] clean - RAW [X] rated (old) - RAW, XMP [X] rated (new) - RAW, XMP, preview (RAW) [_] processed (old) - RAW, XMP, PSD, preview [_] processed (new) - RAW, XMP, PSD, preview, preview (RAW) [_] missing previews... [X] 100% corner cases [X] duplicate files in one path... [_] 0% setup archive [_] 0% setup backup [_] 0% setup testing [_] stage [_] create / build [_] backup [_] test consistency [_] 16% stage I: basic workflow [_] 50% import [X] list files [X] group files [_] build missing element list | need a configurable element spec for this to be flexible... [_] 50% populate list [X] generate previews (missing) [_] load metadata [_] 0% generate tags [_] data [_] workflow [X] populate preview metadata [_] put it all together [_] 0% search / select [_] 0% output: [_] list of paths [_] list of IDs [_] 0% update (tags) [_] 0% stage II: advanced workflow [_] sync | write data to previews and originals [_] export | copy a list of previews to a given location and maintain consistency [_] 0% stage III: GUI [_] 13% general tasks [_] 0% actions: [_] import [_] export/build [_] list/search tags [_] list/search content [_] 0% API [_] 0% basic [_] .import(...) [_] .export(...) [_] .tags(...) [_] .select(...) [_] 0% sync [_] 0% UI [_] HTML/HTML5 [_] QT/PySide [_] command-line [_] ig | root script... name not final yet... [_] ig-init | create an empty archive... [_] ig-clone [OPTIONS] [TAGS] URL [_] 0% ig-sync [_] git-like interface [_] push/pull [_] clean [_] gc [_] ig-import [OPTIONS] [TAGS] PATH [_] ig-export [OPTIONS] [TAGS] PATH [_] ig-tags [OPTIONS] [TAGS] | either list all the tags or if any tags are given as input, list | related tags... [_] 0% ig-select [OPTOINS] [TAGS] | list paths/ids of images tagged by tags. [_] 0% support complex queries [_] all (default) [_] any [_] none [_] ig-do ACTION [OPTIONS] | same as ig-action [_] 0% save diffs in pickle overlays... | need fast and simple way to save changes to a new spot... [_] 0% IDEA: use pli.logictypes.DictUnion [_] create a new layer on load [_] save only updated layers and create a new empty layer on save [_] be careful not to update other layers... | this can happen when adding a new object to a tag via an .update(...) method, in-place. | | need to use immutable data only. [_] 20% compleate the new tags module [X] .relatedtags(...) [_] see if we need strict and non-strict .relatedtags(...) [_] concatinative mode or abbility to build new tagsets from selections [_] tag chains support... [_] build a new tagset from list of objects or tags... [_] import test images and ratings [_] importer based on xmpgen [X] need unique image id