Skip to content

! Version 2

Emerson edited this page Jun 4, 2024 · 11 revisions

Version 2 is intended to make tagtracker more usable by bike parking services that are not set up the same way as Victoria's.

  • allow much more flexible tag labels (issue #427)
  • allow re-use of tags (ie track visits, not tags) (issue #394)
  • reduce device dependency (could it work in a py environment on an ipad?)
  • improve ease of installation and configuration
  • Consider whether a VTime might be a datetime, not just a time.

An Analysis() or Breakdown()

This is an object that is given a TrackerDay and is made up of Snapshot (event) and Block data.

It would be used for both client and cgi.

Block Moment
num_{reg/ovr/combined}_incoming How many reg/ovr/ttl bikes received in period (or at moment)
num_{reg/ovr/combined}_outgoing Number of R/O/T bikes returned in period (or at moment)
num_{reg/ovr/combined}_present Count of R/O/T present (at END of period or at moment)]
fullest_{reg/ovr/combined} Maximum R/O/T fullness during period
fullest_{reg/ovr/combined}_time Time of maximum R/O/T fullness

DayDetail.blocks .moments

Detail

Block: .start_time .num_incoming {REGULAR:xx,OVERSIZE:xx,COMBINED:xx} .num_outgoing {REGULAR:xx,OVERSIZE:xx,COMBINED:xx} .num_on_hand {REGULAR:xx,OVERSIZE:xx,COMBINED:xx} .num_fullest {} .time_fullest{}

.Moment: .time .num_incoming{} .num_outgoing{} .num_on_hand{}

Commands that use a tag list

in tag* out tag* delete tag* in|out y edit tag* in|out time tag* query tag*

Reserved words: Tags can not have these as label:

Implementation notes

  • a tag 'colour' no longer has meaning since we don't know what the colours might mean
  • remove option to delete "both"

Freeform tags

  • what is a valid tag? Anything that's in config
  • fold all tags uc and compress out lead 0s in numeric sequences
  • optional re in config file to test for a valid tag format
TagID:
.simple - label in its simplest form (uc & compressed)
.comparing - folded UC and all numeric sequences made long
__new__: return self if already defined(?)