Skip to content

Instantly share code, notes, and snippets.

@joshuaskelly
Created July 10, 2018 20:13
Show Gist options
  • Save joshuaskelly/cc1e11cd19f2f55209f52d25b8aa18c9 to your computer and use it in GitHub Desktop.
Save joshuaskelly/cc1e11cd19f2f55209f52d25b8aa18c9 to your computer and use it in GitHub Desktop.
import timeit
d = {"TWITCHCHATJOIN": 'JOIN',
"TWITCHCHATLEAVE": 'PART',
"TWITCHCHATMESSAGE": 'PRIVMSG',
"TWITCHCHATMODE": 'MODE',
"TWITCHCHATCLEARCHAT": 'CLEARCHAT',
"TWITCHCHATHOSTTARGET": 'HOSTTARGET',
"TWITCHCHATNOTICE": 'NOTICE',
"TWITCHCHATRECONNECT": 'RECONNECT',
"TWITCHCHATROOMSTATE": 'ROOMSTATE',
"TWITCHCHATUSERNOTICE": 'USERNOTICE',
"TWITCHCHATUSERSTATE": 'USERSTATE',
"TWITCHCHATWHISPER": 'WHISPER',
"TWITCHCHATCOMMAND": 'COMMAND'}
def from_command(command):
return d.get(command) or 'COMMAND'
class TwitchChatEventType(object):
TWITCHCHATJOIN = 'JOIN'
TWITCHCHATLEAVE = 'PART'
TWITCHCHATMESSAGE = 'PRIVMSG'
TWITCHCHATMODE = 'MODE'
TWITCHCHATCLEARCHAT = 'CLEARCHAT'
TWITCHCHATHOSTTARGET = 'HOSTTARGET'
TWITCHCHATNOTICE = 'NOTICE'
TWITCHCHATRECONNECT = 'RECONNECT'
TWITCHCHATROOMSTATE = 'ROOMSTATE'
TWITCHCHATUSERNOTICE = 'USERNOTICE'
TWITCHCHATUSERSTATE = 'USERSTATE'
TWITCHCHATWHISPER = 'WHISPER'
TWITCHCHATCOMMAND = 'COMMAND'
@classmethod
def from_command(cls, command):
if hasattr(cls, command):
return getattr(cls, command)
return cls.TWITCHCHATCOMMAND
def from_command_2(command):
if command == "TWITCHCHATJOIN":
return 'JOIN'
elif command == "TWITCHCHATLEAVE":
return 'PART'
elif command == "TWITCHCHATMESSAGE":
return 'PRIVMSG'
elif command == "TWITCHCHATMODE":
return 'MODE'
elif command == "TWITCHCHATCLEARCHAT":
return 'CLEARCHAT'
elif command == "TWITCHCHATHOSTTARGET":
return 'HOSTTARGET'
elif command == "TWITCHCHATNOTICE":
return 'NOTICE'
elif command == "TWITCHCHATRECONNECT":
return 'RECONNECT'
elif command == "TWITCHCHATROOMSTATE":
return 'ROOMSTATE'
elif command == "TWITCHCHATUSERNOTICE":
return 'USERNOTICE'
elif command == "TWITCHCHATUSERSTATE":
return 'USERSTATE'
elif command == "TWITCHCHATWHISPER":
return 'WHISPER'
return 'COMMAND'
def a():
from_command("TWITCHCHATMODE")
def b():
TwitchChatEventType.from_command("TWITCHCHATMODE")
def c():
from_command_2("TWITCHCHATMODE")
count = 10000
total_1 = timeit.timeit(a, number=count)
print("Cached dictionary:")
print(total_1 / count)
print()
total_2 = timeit.timeit(b, number=count)
print("Getattr:")
print(total_2 / count)
print()
total_3 = timeit.timeit(c, number=count)
print("If statement:")
print(total_3 / count)
print()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment