Design

zVrBkqM2EP0aVyWHnTLGxp7jzmazuaQqVXNIckrJoDGqAUSEWHv267cF3ViswMMMGO/J0IBQP73u12q88D+lpy+K5fGfMuLJYrWMTgv/t8Vq5XnBPfwYy0ttCbxdbTgoEeFNZ8Oj+MbRuERrKSJetG7UUiZa5G1jKLOMh7ple5JJ+xU5O9DwZ8NjyBLX+reIdPyjE+bCH1wcYnzPbhXUFwr9QmNE/ImVif5QmeCauZwyGgu9Oi1xAL8+f8Fzb41P5CxrTemblGnLoHhxxgrdFTgtfMleqoirlikR2bONm/8Z1k5JCQ+ao/T0iSdm/Whp6sd+77nawKV41np13wNrdPcrS0qcu4Mfz6KPSskjnIUJKwoRLvwHfhL6H7AATNXxv+b4bmPOMq1ezCWPTuiaMzecbiFLFeLLNrh+mqkDx9sCnCSPWmRBj75wmXJ4S7UECdPia3sRGMJ7aO474wEHCEk3PBuctAVPmIiFIZl/YuDfL5WDxi0pMv2rg90xFpo/5qxy7wgBCc8cFOcZjsuV5hSZPfi4buID98EWuYpreY9BcbQihXgWW0ESoG0UMpg0LGQKWDNtYZMrGfKiuDKffiDF6wTD52yC1aSbgU8BRtelcDsoWea99MCsyvZ0O67lcNqs1zgU0Wa1dmiz7qINpN0JeIPxbSHQx5MiZrk55CeYwEMky9pnQwOAKIu4GdKcdQWZgU6AjnxMxMEk7r3U2iRsiD5WT/i14KvXyoVxFphcnhylen5KIGqGpJi9eazHow7He7lCaopUWc2YYFaY3CwINCtAKx2aaCWfm+oAnHkg4qQnWOw8vjOwhTEkp7sU6gDxIZJhmVaoWGwYB5QXBJSQECvP25HFgmuHaXPydOyi1YRVk5BTlkG5pN7IoHeGCTFo24ZlTgpt8F22eivONFSvb9OkWodQlRoZauTK1iQ8/YsrAfOtij305KJQEeNspUKTLVR1UMwhVDhpCzp+4mE5JXaOnk+IHcXDbcDDMSzwWBQBcLBRssLx/5JTjHWjGQmWygwGbdCsIOuujjqYGLEiRpGcjIE1sHOA6Jbes5dKO6yMqFKiOVnJa3Xfkbw8f4LsRbseWwClqqY+aaVUSWBvwTRIAipYLlZK14PJRSmRzOyyR9RJRL3h8r9p19Q+1k1zqFyAJLWln6licp3vWeSmALoZADs33c6eKbx1syGl+o9aK/Z+YbOhu1pxQFXhGBS2brFzBRRqrPthWDYOUs50UfA3Xblgjc+NCgV3cxntf7ZsWS/UxWx5RYTcyiRv9bPycj+si9WdOhsWDt9iLtFXJMzG7UZcL3W6u6a07pePAuSdBMAnSBRvgMfOrfpnzCHtxkpXoqT5jfGRujP2ppCFMSxds+YF1Fnmu8SYTkPEAARWwMWLuaKFC6H/euwgN+47OgzEg6m5sXUbvtfgRmUbIrN2cUnITc2VrVtaXcHnGtnL5fPVPHQbjUYxlyLNE256ZLCpk/ixwnJ6sE5KsApt6AqSNk42q7W4EUpuzkCdGNOLZFnJkv9kzlUN8lskpAeMpgxrl6Iocy0JwVFtqPwpylB3P1ZVGD8pUFRo3QApf0DBPtmnsv7WWpcC2T0gyhB2E4g0dP4PsmsXNOjoRmAxQ5wlvMxBgC82115rVTb9tPoStLEtSAd+auz6lo22G0DnihkWPtCW7O4rvR+u1TvgoobXTeCC0/O/Lqpr1t9n/M/fAQ==

Key Design Aspects

Leverage plugin pattern to provide implementations for Tasks and Database. All plugins are registered as entry points within python setup for the project.

Tasks

seedbox.tasks.base.BaseTask provides the base implementation for a Task. All Tasks must implement the following methods

  • is_actionable

    if the result is True then the Task will be executed else skip executing the Task.

  • execute

    provides the Task specific implementation; all exceptions are handled by the BaseTask to guarantee consistent error handling.

The BaseTask provides the ability to include additional media files for processing, and captures telemetry (execution time) for each Task execution.

Database

seedbox.db.base.Connection provides the abstract definition for the interacting with a specific database implementation. The base capabilities include

  • connection / session creation
  • create
  • update
  • delete
  • read
  • wipe data
  • backup data
  • upgrade model/schema