Ϫft dZddlZddlZddlmZmZmZddlmZddl m Z ddl m Z ddl mZmZmZmZddlmZdd lmZmZGd d ej.ej0Zd Zy) z Shiny new words service maker N)ListOptionalSequence)plugin)strports) MultiService)checkers credentialsportalstrcred)usage)iwordsserviceceZdZUejgZddejdfgZe e e e e d<ejdgZiZdZej(ej,D]SZej.evsJeeej.<ej1ej.dzdddej.zd zfU[d Zd Zd Zy) OptionshostnameNz*Name of this server; purely an informative optParametersgroup)multiUse-portz2strports description of the port to bind for the z servercTtjj|g|i|g|d<y)Ngroups)r r__init__)selfakws 3/usr/lib/python3/dist-packages/twisted/words/tap.pyrzOptions.__init__2s' t.a.2.Xcz|dj|jtjjy)z"Specify a group which should existrN)appenddecodesysstdinencoding)rnames r opt_groupzOptions.opt_group6s' Xdkk#))*<*<=>rcL|jtj|y)z Name of a passwd-style file. (This is for backwards-compatibility only; you should use the --auth command instead.) N) addCheckerr FilePasswordDB)rfilenames r opt_passwdzOptions.opt_passwd:s //9:r)__name__ __module__ __qualname__r IUsernamePasswordsupportedInterfacessocket gethostnamerrrrstr__annotations__r CompletionscompDatainterfacePluginsplgr getPluginsrIProtocolPluginr%r rr&r+rrrrs&889   F   8  4M4#/0!u  7)4H C v  !7!78  xx////%("7"D((      ?;rrc|jdg}tj|d}tj||}t }|j D]_}|j|dz}||j |j||}tj||}|j|a|dD]} |j| |S)N credCheckersrrr) getrInMemoryWordsRealmr Portalrr7 getFactoryrsetServiceParent createGroup) configr= wordsRealm wordsPortalmsvcplgNameportfactorysvcgs r makeServicerMCs::nb1L++F:,>?J-- L9K >D**'zz'G+,  --g6AAKG""41C   &'H "q!" Kr)__doc__r1r"typingrrrtwistedrtwisted.applicationrtwisted.application.servicer twisted.credr r r r twisted.pythonr twisted.wordsrrrAuthOptionMixinrMr;rrrWsK ++(4?? ),;emmW44,;^r