के साथ पायथन ट्विस्ट एकीकरण मुझे पाइथन की Twisted और Cmd पसंद है। मैं उन्हें एक साथ उपयोग करना चाहता हूं।सीएमडी मॉड्यूल
मुझे कुछ चीजें काम कर रही हैं, लेकिन अब तक मुझे यह पता नहीं चला है कि टैब-पूरा करने का काम कैसे किया जाए, क्योंकि मुझे नहीं लगता कि ट्विस्टेड लाइन रिसीवर में तुरंत टैब कीपर्स ईवेंट कैसे प्राप्त करें (एंटर दबाए बिना)।
#!/usr/bin/env python
from cmd import Cmd
from twisted.internet import reactor
from twisted.internet.stdio import StandardIO
from twisted.protocols.basic import LineReceiver
class CommandProcessor(Cmd):
def do_EOF(self, line):
return True
class LineProcessor(LineReceiver):
from os import linesep as delimiter # makes newline work
def __init__(self):
self.processor = CommandProcessor()
self.setRawMode()
def connectionMade(self):
self.transport.write('>>> ')
def rawDataReceived(self, data):
self.processor.onecmd(data)
self.transport.write('>>> ')
StandardIO(LineProcessor())
reactor.run()
अलावा टैब पूरा होने से, यह कुछ हद तक काम करता है:
यहाँ मेरी कोड अब तक है। मैं "मदद" जैसे कमांड दर्ज कर सकता हूं और सीएमडी मॉड्यूल परिणाम प्रिंट करेगा। लेकिन मैंने सीएमडी मॉड्यूल की निफ्टी टैब-पूर्ण कार्यक्षमता खो दी है, क्योंकि ट्विस्ट एक समय में एक पंक्ति को बफर कर रहा है। मैंने खाली स्ट्रिंग में LineProcessor.delimiter
सेट करने का प्रयास किया, इसका कोई फायदा नहीं हुआ। शायद मुझे LineReceiver के बजाय उपयोग करने के लिए मुड़ने का कुछ और टुकड़ा ढूंढना होगा? या शायद एक आसान दृष्टिकोण है जो हर चरित्र को एक-एक करके संसाधित करने से बच जाएगा?
मैं अकेले सीएमडी का उपयोग नहीं कर सकता, क्योंकि मैं इसे एक नेटवर्क एप्लिकेशन बनाना चाहता हूं, जहां कुछ आदेश डेटा भेजना होगा, और नेटवर्क से डेटा प्राप्त करना असीमित रूप से होगा (और उपयोगकर्ता को प्रदर्शित किया जाएगा)।
तो क्या हम उपर्युक्त कोड या कुछ पूरी तरह से अलग से शुरू करते हैं, मैं पाइथन में एक अच्छा, दोस्ताना टर्मिनल एप्लिकेशन बनाना चाहता हूं जो नेटवर्क घटनाओं और टैब पूर्ण करने के लिए प्रतिक्रिया देता है। मुझे उम्मीद है कि मैं पहले से बाहर क्या कर सकता हूं और खुद को बहुत अधिक लागू नहीं करना है।
[मुड़ मैनहोल] (http://twistedmatrix.com/trac/wiki/TwistedConch), [उदाहरण] (http://twistedmatrix.com/documents/current/conch पर एक नज़र /examples/demo_manhole.tac) – jfs
मैंने मैनहोल और कोच को देखा लेकिन उन्होंने जो कुछ भी कर रहा है उसके लिए उन्होंने मुझे बहुत समझ नहीं दी। दस्तावेज कॉन्च को क्लाइंट और सर्वर दोनों, एसएसएचवी 2 कार्यान्वयन के रूप में वर्णित करता है, और दिखाता है कि आप एक एसएसएच सर्वर कैसे बना सकते हैं जो अपने ग्राहकों के लिए रंगीनकरण करता है। मेरी जरूरतें दोनों समान और अलग हैं। यदि आपके पास मैनहोल का उपयोग करने का एक और अधिक विशिष्ट सुझाव है, तो मैं सभी कान हूं ... इसके साथ की समस्याओं में से एक दस्तावेज की एक स्पष्ट कमी है। –