<commit_before>"""
XML-RPC Event Publisher for pykeg.

Pykeg can publish certain types of events to multiple XML-RPC listeners. This
is a publish-only interface; subscription to event streams must be done out of
band (ie, in the global config).

Remote clients of this data should immediately return after an event is
published. Any returned data will be discardeded (TODO: return HANGUP?)

Several types of events are currently supported:

   KegbotEvent_Drink
      Published to report a drink, typically immediately after it has been
      poured.

      Fields:
         uint     id          // drink id
         uint     kegid       // keg id
         unit     userid      // drinker id
         string   username    // descriptive drinker name
         string   kegname     // descriptive keg name<commit_msg>- i foundeded it!<commit_after>"""
XML-RPC Event Publisher for pykeg.

Pykeg can publish certain types of events to multiple XML-RPC listeners. This
is a publish-only interface; subscription to event streams must be done out of
band (ie, in the global config).

Remote clients of this data should immediately return after an event is
published. Any returned data will be discarded (TODO: return HANGUP?)

Several types of events are currently supported:

   KegbotEvent_Drink
      Published to report a drink, typically immediately after it has been
      poured.

      Fields:
         uint     id          // drink id
         uint     kegid       // keg id
         unit     userid      // drinker id
         string   username    // descriptive drinker name
         string   kegname     // descriptive keg name
{'fraction_non_alphanumeric': 0.04411764705882353, 'fraction_numerical': 0.0, 'mean_word_length': 2.395010395010395, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3579750', 'n_tokens_mistral': 419, 'n_tokens_neox': 397, 'n_words': 206}