LICENSE.txt
MANIFEST.in
README.txt
common_settings.py.example
distribute_setup.py
kegbot_master.cfg.example
setup.py
src/kegbot.egg-info/PKG-INFO
src/kegbot.egg-info/SOURCES.txt
src/kegbot.egg-info/dependency_links.txt
src/kegbot.egg-info/requires.txt
src/kegbot.egg-info/top_level.txt
src/pykeg/__init__.py
src/pykeg/settings.py
src/pykeg/beerdb/__init__.py
src/pykeg/beerdb/admin.py
src/pykeg/beerdb/imagespecs.py
src/pykeg/beerdb/models.py
src/pykeg/beerdb/migrations/0001_initial.py
src/pykeg/beerdb/migrations/0002_add_image.py
src/pykeg/beerdb/migrations/__init__.py
src/pykeg/bin/fb_publisher.py
src/pykeg/bin/kegboard-tester.py
src/pykeg/bin/kegboard_daemon.py
src/pykeg/bin/kegboard_monitor.py
src/pykeg/bin/kegbot-admin.py
src/pykeg/bin/kegbot_core.py
src/pykeg/bin/kegbot_master.py
src/pykeg/bin/kegbot_twitter.py
src/pykeg/bin/kegnetproxy.py
src/pykeg/bin/lcd_daemon.py
src/pykeg/bin/rfid_daemon.py
src/pykeg/bin/sound_server.py
src/pykeg/contrib/__init__.py
src/pykeg/contrib/facebook/__init__.py
src/pykeg/contrib/facebook/admin.py
src/pykeg/contrib/facebook/app.py
src/pykeg/contrib/facebook/fbutil.py
src/pykeg/contrib/facebook/models.py
src/pykeg/contrib/soundserver/__init__.py
src/pykeg/contrib/soundserver/admin.py
src/pykeg/contrib/soundserver/app.py
src/pykeg/contrib/soundserver/models.py
src/pykeg/contrib/soundserver/migrations/0001_initial.py
src/pykeg/contrib/soundserver/migrations/__init__.py
src/pykeg/contrib/twitter/__init__.py
src/pykeg/contrib/twitter/admin.py
src/pykeg/contrib/twitter/app.py
src/pykeg/contrib/twitter/models.py
src/pykeg/contrib/twitter/migrations/0001_initial.py
src/pykeg/contrib/twitter/migrations/0002_add_ml_col.py
src/pykeg/contrib/twitter/migrations/0003_migrate_volumes.py
src/pykeg/contrib/twitter/migrations/0004_remove_old_volume.py
src/pykeg/contrib/twitter/migrations/__init__.py
src/pykeg/core/__init__.py
src/pykeg/core/admin.py
src/pykeg/core/backend.py
src/pykeg/core/backup.py
src/pykeg/core/config.py
src/pykeg/core/defaults.py
src/pykeg/core/features.py
src/pykeg/core/fields.py
src/pykeg/core/flow_meter.py
src/pykeg/core/flow_meter_test.py
src/pykeg/core/imagespecs.py
src/pykeg/core/importhacks.py
src/pykeg/core/jsonfield.py
src/pykeg/core/kb_app.py
src/pykeg/core/kb_common.py
src/pykeg/core/kb_threads.py
src/pykeg/core/kbevent.py
src/pykeg/core/kbjson.py
src/pykeg/core/kbjson_test.py
src/pykeg/core/kegbot.py
src/pykeg/core/kegbot_test.py
src/pykeg/core/manager.py
src/pykeg/core/manager_test.py
src/pykeg/core/managers.py
src/pykeg/core/models.py
src/pykeg/core/models_test.py
src/pykeg/core/stats.py
src/pykeg/core/stats_test.py
src/pykeg/core/tasks.py
src/pykeg/core/units.py
src/pykeg/core/units_test.py
src/pykeg/core/util.py
src/pykeg/core/util_test.py
src/pykeg/core/management/__init__.py
src/pykeg/core/management/commands/__init__.py
src/pykeg/core/management/commands/common.py
src/pykeg/core/management/commands/kb_backup.py
src/pykeg/core/management/commands/kb_compress_temps.py
src/pykeg/core/management/commands/kb_gen_test_data.py
src/pykeg/core/management/commands/kb_regen_events.py
src/pykeg/core/management/commands/kb_regen_sessions.py
src/pykeg/core/management/commands/kb_regen_stats.py
src/pykeg/core/management/commands/kb_set_defaults.py
src/pykeg/core/management/commands/kb_setup.py
src/pykeg/core/migrations/0001_initial.py
src/pykeg/core/migrations/0002_delete_keg_channel.py
src/pykeg/core/migrations/0003_change_config_key.py
src/pykeg/core/migrations/0004_add_volume_ml_col.py
src/pykeg/core/migrations/0005_migrate_volume_to_volume_ml.py
src/pykeg/core/migrations/0006_remove_volume_col.py
src/pykeg/core/migrations/0007_add_tap_ml_per_tick.py
src/pykeg/core/migrations/0008_add_authentication_token_table.py
src/pykeg/core/migrations/0009_migrate_tokens.py
src/pykeg/core/migrations/0010_remove_token_table.py
src/pykeg/core/migrations/0011_add_kegtap_max_delta.py
src/pykeg/core/migrations/0012_add_sensor_table.py
src/pykeg/core/migrations/0013_remove_sensor_name.py
src/pykeg/core/migrations/0014_add_tap_sensor.py
src/pykeg/core/migrations/0015_prefix_device_names.py
src/pykeg/core/migrations/0016_add_user_profile_mugshot.py
src/pykeg/core/migrations/0017_add_user_picture_foreign_key.py
src/pykeg/core/migrations/0018_drop_user_picture_onetoone.py
src/pykeg/core/migrations/0019_rename_user_picture_user.py
src/pykeg/core/migrations/0020_add_thermo_summary_table.py
src/pykeg/core/migrations/0021_simplify_sessions.py
src/pykeg/core/migrations/0022_add_session_user_part.py
src/pykeg/core/migrations/0023_change_defaults.py
src/pykeg/core/migrations/0024_add_new_beer_type.py
src/pykeg/core/migrations/0025_migrate_beertypes.py
src/pykeg/core/migrations/0026_rename_cols.py
src/pykeg/core/migrations/0027_make_type_required.py
src/pykeg/core/migrations/0028_remove_oldtype.py
src/pykeg/core/migrations/0029_delete_old_beertypes.py
src/pykeg/core/migrations/0030_add_stats.py
src/pykeg/core/migrations/0031_allow_null_drink_user.py
src/pykeg/core/migrations/0032_remove_userlabel.py
src/pykeg/core/migrations/0033_add_drink_session_col.py
src/pykeg/core/migrations/0034_remove_manytomany.py
src/pykeg/core/migrations/0035_add_keg_notes.py
src/pykeg/core/migrations/0036_add_drink_auth_token.py
src/pykeg/core/migrations/0037_add_drink_duration.py
src/pykeg/core/migrations/0038_add_session_chunks.py
src/pykeg/core/migrations/0039_add_user_keg_chunks.py
src/pykeg/core/migrations/0040_add_sites.py
src/pykeg/core/migrations/0041_add_seqn.py
src/pykeg/core/migrations/0042_make_seqn_unique.py
src/pykeg/core/migrations/0043_add_system_events.py
src/pykeg/core/migrations/0044_kegtap_seqn.py
src/pykeg/core/migrations/0045_session_titles.py
src/pykeg/core/migrations/0046_session_stats.py
src/pykeg/core/migrations/0047_add_system_stats.py
src/pykeg/core/migrations/0048_remove_stats_revision.py
src/pykeg/core/migrations/0049_remove_drink_endtime.py
src/pykeg/core/migrations/0050_add_keg_spilled_ml.py
src/pykeg/core/migrations/0051_add_token_nice_name.py
src/pykeg/core/migrations/0052_fix_spilled.py
src/pykeg/core/migrations/0053_add_kegbotsite_fields.py
src/pykeg/core/migrations/0054_add_kegtap_relay.py
src/pykeg/core/migrations/0055_add_api_key.py
src/pykeg/core/migrations/0056_remove_config_table.py
src/pykeg/core/migrations/0057_add_site_active.py
src/pykeg/core/migrations/0058_rename_phidget_rfid.py
src/pykeg/core/migrations/0059_add_galleries.py
src/pykeg/core/migrations/0060_remove_old_cols.py
src/pykeg/core/migrations/0061_rename_picture_cols.py
src/pykeg/core/migrations/0062_add_site_settings.py
src/pykeg/core/migrations/0063_remove_relaylog.py
src/pykeg/core/migrations/0064_remove_bac.py
src/pykeg/core/migrations/0065_site_settings_onetoone.py
src/pykeg/core/migrations/0066_add_site_settings_fields.py
src/pykeg/core/migrations/0067_remove_kegbotsite_fields.py
src/pykeg/core/migrations/0068_kegtap_keg_onetoone.py
src/pykeg/core/migrations/0069_user_stats_uniqueness.py
src/pykeg/core/migrations/0070_add_chunk_site_ref.py
src/pykeg/core/migrations/0071_add_event_web_hook.py
src/pykeg/core/migrations/0072_add_stats_completed_flag.py
src/pykeg/core/migrations/__init__.py
src/pykeg/core/net/__init__.py
src/pykeg/core/net/kegnet.py
src/pykeg/core/net/kegnet_test.py
src/pykeg/hw/__init__.py
src/pykeg/hw/kegboard/__init__.py
src/pykeg/hw/kegboard/crc16.py
src/pykeg/hw/kegboard/crc16_test.py
src/pykeg/hw/kegboard/kegboard.py
src/pykeg/hw/kegboard/kegboard_test.py
src/pykeg/proto/__init__.py
src/pykeg/proto/api_pb2.py
src/pykeg/proto/models_pb2.py
src/pykeg/proto/protolib.py
src/pykeg/proto/protoutil.py
src/pykeg/web/__init__.py
src/pykeg/web/context_processors.py
src/pykeg/web/middleware.py
src/pykeg/web/urls.py
src/pykeg/web/account/__init__.py
src/pykeg/web/account/urls.py
src/pykeg/web/account/views.py
src/pykeg/web/api/__init__.py
src/pykeg/web/api/apikey.py
src/pykeg/web/api/forms.py
src/pykeg/web/api/krest.py
src/pykeg/web/api/urls.py
src/pykeg/web/api/views.py
src/pykeg/web/charts/__init__.py
src/pykeg/web/charts/charts.py
src/pykeg/web/charts/urls.py
src/pykeg/web/charts/views.py
src/pykeg/web/contrib/__init__.py
src/pykeg/web/contrib/facebook/__init__.py
src/pykeg/web/contrib/facebook/forms.py
src/pykeg/web/contrib/facebook/urls.py
src/pykeg/web/contrib/facebook/views.py
src/pykeg/web/contrib/twitter/__init__.py
src/pykeg/web/contrib/twitter/views.py
src/pykeg/web/kegadmin/__init__.py
src/pykeg/web/kegadmin/forms.py
src/pykeg/web/kegadmin/urls.py
src/pykeg/web/kegadmin/views.py
src/pykeg/web/kegadmin/widgets.py
src/pykeg/web/kegweb/__init__.py
src/pykeg/web/kegweb/forms.py
src/pykeg/web/kegweb/models.py
src/pykeg/web/kegweb/signals.py
src/pykeg/web/kegweb/urls.py
src/pykeg/web/kegweb/views.py
src/pykeg/web/kegweb/migrations/0001_initial.py
src/pykeg/web/kegweb/migrations/__init__.py
src/pykeg/web/kegweb/templatetags/__init__.py
src/pykeg/web/kegweb/templatetags/kegweblib.py
src/pykeg/web/static/bootstrap/bootstrap.css
src/pykeg/web/static/bootstrap/bootstrap.min.css
src/pykeg/web/static/bootstrap/docs/index.html
src/pykeg/web/static/bootstrap/docs/javascript.html
src/pykeg/web/static/bootstrap/docs/assets/css/docs.css
src/pykeg/web/static/bootstrap/docs/assets/ico/bootstrap-apple-114x114.png
src/pykeg/web/static/bootstrap/docs/assets/ico/bootstrap-apple-57x57.png
src/pykeg/web/static/bootstrap/docs/assets/ico/bootstrap-apple-72x72.png
src/pykeg/web/static/bootstrap/docs/assets/img/bird.png
src/pykeg/web/static/bootstrap/docs/assets/img/browsers.png
src/pykeg/web/static/bootstrap/docs/assets/img/example-diagram-01.png
src/pykeg/web/static/bootstrap/docs/assets/img/example-diagram-02.png
src/pykeg/web/static/bootstrap/docs/assets/img/example-diagram-03.png
src/pykeg/web/static/bootstrap/docs/assets/img/grid-18px.png
src/pykeg/web/static/bootstrap/docs/assets/img/twitter-logo-no-bird.png
src/pykeg/web/static/bootstrap/docs/assets/js/application.js
src/pykeg/web/static/bootstrap/docs/assets/js/google-code-prettify/prettify.css
src/pykeg/web/static/bootstrap/docs/assets/js/google-code-prettify/prettify.js
src/pykeg/web/static/bootstrap/examples/container-app.html
src/pykeg/web/static/bootstrap/examples/fluid.html
src/pykeg/web/static/bootstrap/examples/hero.html
src/pykeg/web/static/bootstrap/js/bootstrap-alerts.js
src/pykeg/web/static/bootstrap/js/bootstrap-buttons.js
src/pykeg/web/static/bootstrap/js/bootstrap-dropdown.js
src/pykeg/web/static/bootstrap/js/bootstrap-modal.js
src/pykeg/web/static/bootstrap/js/bootstrap-popover.js
src/pykeg/web/static/bootstrap/js/bootstrap-scrollspy.js
src/pykeg/web/static/bootstrap/js/bootstrap-tabs.js
src/pykeg/web/static/bootstrap/js/bootstrap-twipsy.js
src/pykeg/web/static/bootstrap/js/tests/index.html
src/pykeg/web/static/bootstrap/js/tests/unit/bootstrap-alerts.js
src/pykeg/web/static/bootstrap/js/tests/unit/bootstrap-buttons.js
src/pykeg/web/static/bootstrap/js/tests/unit/bootstrap-dropdown.js
src/pykeg/web/static/bootstrap/js/tests/unit/bootstrap-modal.js
src/pykeg/web/static/bootstrap/js/tests/unit/bootstrap-popover.js
src/pykeg/web/static/bootstrap/js/tests/unit/bootstrap-scrollspy.js
src/pykeg/web/static/bootstrap/js/tests/unit/bootstrap-tabs.js
src/pykeg/web/static/bootstrap/js/tests/unit/bootstrap-twipsy.js
src/pykeg/web/static/bootstrap/js/tests/vendor/qunit.css
src/pykeg/web/static/bootstrap/js/tests/vendor/qunit.js
src/pykeg/web/static/css/kegweb.css
src/pykeg/web/static/fancybox/fancy_close.png
src/pykeg/web/static/fancybox/fancy_loading.png
src/pykeg/web/static/fancybox/fancy_nav_left.png
src/pykeg/web/static/fancybox/fancy_nav_right.png
src/pykeg/web/static/fancybox/fancy_shadow_e.png
src/pykeg/web/static/fancybox/fancy_shadow_n.png
src/pykeg/web/static/fancybox/fancy_shadow_ne.png
src/pykeg/web/static/fancybox/fancy_shadow_nw.png
src/pykeg/web/static/fancybox/fancy_shadow_s.png
src/pykeg/web/static/fancybox/fancy_shadow_se.png
src/pykeg/web/static/fancybox/fancy_shadow_sw.png
src/pykeg/web/static/fancybox/fancy_shadow_w.png
src/pykeg/web/static/fancybox/fancy_title_left.png
src/pykeg/web/static/fancybox/fancy_title_main.png
src/pykeg/web/static/fancybox/fancy_title_over.png
src/pykeg/web/static/fancybox/fancy_title_right.png
src/pykeg/web/static/fancybox/fancybox-x.png
src/pykeg/web/static/fancybox/fancybox-y.png
src/pykeg/web/static/fancybox/fancybox.png
src/pykeg/web/static/fancybox/jquery.easing-1.3.pack.js
src/pykeg/web/static/fancybox/jquery.fancybox-1.3.4.css
src/pykeg/web/static/fancybox/jquery.fancybox-1.3.4.js
src/pykeg/web/static/fancybox/jquery.fancybox-1.3.4.pack.js
src/pykeg/web/static/fancybox/jquery.mousewheel-3.0.4.pack.js
src/pykeg/web/static/highcharts/js/highcharts.js
src/pykeg/web/static/highcharts/js/highcharts.src.js
src/pykeg/web/static/highcharts/js/adapters/mootools-adapter.js
src/pykeg/web/static/highcharts/js/adapters/mootools-adapter.src.js
src/pykeg/web/static/highcharts/js/adapters/prototype-adapter.js
src/pykeg/web/static/highcharts/js/adapters/prototype-adapter.src.js
src/pykeg/web/static/highcharts/js/modules/exporting.js
src/pykeg/web/static/highcharts/js/modules/exporting.src.js
src/pykeg/web/static/highcharts/js/themes/dark-blue.js
src/pykeg/web/static/highcharts/js/themes/dark-green.js
src/pykeg/web/static/highcharts/js/themes/gray.js
src/pykeg/web/static/highcharts/js/themes/grid.js
src/pykeg/web/static/images/background.png
src/pykeg/web/static/images/beerpint.png
src/pykeg/web/static/images/info.png
src/pykeg/web/static/images/keg-header.png
src/pykeg/web/static/images/keg.png
src/pykeg/web/static/images/kegbot-icon-72x72.png
src/pykeg/web/static/images/kegbot-unknown-square.png
src/pykeg/web/static/images/unknown-drinker.png
src/pykeg/web/static/js/jquery.autounits.js
src/pykeg/web/static/js/jquery.cookie.js
src/pykeg/web/static/js/jquery.timeago.js
src/pykeg/web/static/js/kegweb.js
src/pykeg/web/static/less/less-1.1.5.min.js
src/pykeg/web/templates/__init__.py
src/pykeg/web/templates/base.html
src/pykeg/web/templates/index.html
src/pykeg/web/templates/page-twocol.html
src/pykeg/web/templates/account/base.html
src/pykeg/web/templates/account/index.html
src/pykeg/web/templates/account/mugshot.html
src/pykeg/web/templates/contrib/facebook/link.html
src/pykeg/web/templates/contrib/facebook/settings.html
src/pykeg/web/templates/contrib/facebook/status-update.html
src/pykeg/web/templates/contrib/twitter/link.html
src/pykeg/web/templates/contrib/twitter/settings.html
src/pykeg/web/templates/kegadmin/backup-restore.html
src/pykeg/web/templates/kegadmin/base.html
src/pykeg/web/templates/kegadmin/change-kegs.html
src/pykeg/web/templates/kegadmin/index.html
src/pykeg/web/templates/kegadmin/nav-items.html
src/pykeg/web/templates/kegadmin/tap-edit.html
src/pykeg/web/templates/kegweb/basic-stats.html
src/pykeg/web/templates/kegweb/claim_token.html
src/pykeg/web/templates/kegweb/drink-box.html
src/pykeg/web/templates/kegweb/drink_detail.html
src/pykeg/web/templates/kegweb/drinker-rank.html
src/pykeg/web/templates/kegweb/drinker_detail.html
src/pykeg/web/templates/kegweb/drinker_list.html
src/pykeg/web/templates/kegweb/event-box-keg-ended.html
src/pykeg/web/templates/kegweb/event-box-keg-tapped.html
src/pykeg/web/templates/kegweb/event-box-session-joined.html
src/pykeg/web/templates/kegweb/event-box.html
src/pykeg/web/templates/kegweb/keg-image.html
src/pykeg/web/templates/kegweb/keg-session.html
src/pykeg/web/templates/kegweb/keg-snapshot.html
src/pykeg/web/templates/kegweb/keg_detail.html
src/pykeg/web/templates/kegweb/keg_list.html
src/pykeg/web/templates/kegweb/mugshot_box.html
src/pykeg/web/templates/kegweb/page_block.html
src/pykeg/web/templates/kegweb/picture-gallery.html
src/pykeg/web/templates/kegweb/session_detail.html
src/pykeg/web/templates/kegweb/system-stats.html
src/pykeg/web/templates/kegweb/statement/statement.html
src/pykeg/web/templates/registration/login.html
src/pykeg/web/templates/registration/logout.html
src/pykeg/web/templates/registration/password_reset.html
src/pykeg/web/templates/registration/password_reset_complete.html
src/pykeg/web/templates/registration/password_reset_confirm.html
src/pykeg/web/templates/registration/password_reset_done.html
src/pykeg/web/templates/registration/registration_complete.html
src/pykeg/web/templates/registration/registration_form.html