Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
suds — Clone of suds 0.4 + suds-0.4-CVE-2013-2217.patch | Kitploit
उपकरण/GitHubGitHub/osirium/suds
Vulnerability AnalysisScripting & AutomationAPI Security TestingWeb SecurityUtilities & FrameworksAPI Security
GitHubosirium/suds

suds

Clone of suds 0.4 + suds-0.4-CVE-2013-2217.patch

रिपॉजिटरी देखें
8 साल पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

OVERVIEW

"Suds" वेब सेवा क्लाइंट पायथन के लिए एक हल्का SOAP-आधारित क्लाइंट है, जो LGPL के तहत लाइसेंस प्राप्त है।

विवरण के लिए, यहां जाएं:

  • प्रोजेक्ट साइट: https://fedorahosted.org/suds/
  • दस्तावेज़ीकरण: https://fedorahosted.org/suds/wiki/Documentation
  • एपीडॉक्स: http://jortel.fedorapeople.org/suds/doc/

रिलीज़-नोट्स:

संस्करण 0.3.6 (04-31-09):

  • हार्ड कोडेड /tmp/suds को tempfile.gettempdir() में बदलें और आवश्यकतानुसार suds/ बनाएं।
  • Any.get_attribute() के लिए रिटर्न प्रकार ठीक करें।
  • http कैशिंग को अपडेट करें ताकि file:// url अनदेखा किए जाएं।
  • केवल रिप्लाई इंजेक्ट किए जाने पर संदेशों की बेहतर लॉगिंग।
  • XInteger और XFloat प्रकारों को ठीक करें ताकि लौटाए गए ऐरे का सही अनुवाद हो।
  • समान नेमस्पेस के साथ xs:import स्कीमा ठीक करें।
  • बाहरी संदर्भों को लोड न करने के लिए पार्सर को अपडेट करें और XMLSchema.xsd स्थान के लिए Import.bind() जोड़ें।
  • स्कीमा डॉक्टर जोड़ें - रनटाइम पर XSD में पैच लगाने के लिए उपयोग किया जाता है। (विकल्प.doctor देखें)
  • पायथन 2.6 में डिप्रीकेशन चेतावनियों को ठीक करें।
  • पर परिभाषित @default के लिए व्यवहार जोड़ें।
  • @xsi:type मान को हमेशा doc/literal के लिए qualified बनाने के लिए बदलें। (0.3.5 परिवर्तन को वापस लेता है)।
  • @xsi:type कब qualified होता है, इसे नियंत्रित करने के लिए Option.xstq विकल्प जोड़ें।
  • फिक्स किए गए टिकट: #64, #129, #205, #206, #217, #221, #222, #224, #225, #228, #229, #230

संस्करण 0.3.5 (04-16-09):

  • http कैशिंग जोड़ता है। डिफ़ॉल्ट (1) दिन है। विधि आह्वान पर लागू नहीं होता है। विवरण के लिए दस्तावेज़ीकरण देखें।
  • अब fc9 से पहले निर्माण न करने के बाद से spec में फेडोरा संस्करण जांच हटा दी गई।
  • tar.sh के साथ टारबॉल बनाने के लिए makefile अपडेट किया गया।
  • document/literal के लिए bare/wrapped निर्धारण WSDL में स्थानांतरित किया गया।
  • Transport को एक पैकेज में पुनर्गठित किया गया (http हेडर की बेहतर लॉगिंग प्रदान करता है)।
  • फिक्स किए गए टिकट: #207, #209, #210, #212, #214, #215

संस्करण 0.3.4 (02-24-09):

  • स्टैटिक (स्वचालित) Import.bind('http://schemas.xmlsoap.org/soap/encoding/'), उपयोगकर्ताओं को अब ऐसा करने की आवश्यकता नहीं है।
  • मूल ws-सुरक्षा {{{UsernameToken}}} और केवल क्लियर-टेक्स्ट पासवर्ड के साथ।
  • डिक्शनरी पास करके ''विरल'' सोप हेडर के लिए समर्थन जोड़ें
  • उपयोगकर्ता द्वारा परिभाषित मनमाने सोप हेडर के लिए समर्थन जोड़ें
  • एकाधिक सोप हेडर प्रविष्टियों वाले सेवा संचालन को ठीक करता है।
  • स्कीमा लोडिंग और डीरेफरेंसिंग एल्गोरिदम में सुधार।
  • नेस्टेड सोप मल्टीरेफ्स ठीक किया गया।
  • elementFormDefault="unqualified" के लिए बेहतर (सच्चा) समर्थन अधिक सटीक नेमस्पेसिंग प्रदान करता है।
  • WSDL भाग प्रकार अब डिफ़ॉल्ट रूप से WSDL targetNamespace नहीं होते।
  • फिक्स किए गए टिकट: #4, #6, #21, #32, #62, #66, #71, #72, #114, #155, #201.

संस्करण 0.3.3 (11-31-08):

  • अब (परीक्षण) पैकेज स्थापित नहीं करता।
  • API-3 प्रस्ताव को लागू करता है ( https://fedorahosted.org/suds/wiki/Api3Proposal )
    • प्लगेबल ट्रांसपोर्ट
    • कीवर्ड विधि तर्क
    • डिफ़ॉल्ट ट्रांसपोर्ट में बुनियादी http प्रमाणीकरण
  • सोप संदेश में नेमस्पेस उपसर्ग सामान्यीकरण जोड़ें।
  • खाली नोड्स की बेहतर सोप संदेश छंटाई।
  • फिक्स किए गए टिकट: #51 - #60

संस्करण 0.3.2 (11-7-08):

  • SOAP {{{MultiRef}}} समर्थन ''(पहला पास r300 में जोड़ा गया)''
  • नए स्कीमा टैग के लिए समर्थन जोड़ें:
    • xs:include/
    • xs:simpleContent/
    • xs:group/
    • xs:attributeGroup/
  • नए xs <--> पायथन प्रकार रूपांतरणों के लिए समर्थन जोड़ा गया:
    • xs:int
    • xs:long
    • xs:float
    • xs:double
  • उत्पादित नोड्स के नेमस्पेसिंग को और तेज करने के लिए मार्शलर और बाइंडिंग को संशोधित करें।
  • स्कीमा लोडिंग के दौरान ''xsd'' पैकेज dereference() में अनंत पुनरावृत्ति ठीक की गई।
  • WSDL रूट में स्कीमा फ़ाइलों के wsdl:import/ के लिए समर्थन जोड़ें।
  • (&) के दोहरे एन्कोडिंग को ठीक करें।
  • Client API जोड़ें:
    • setheaders() - कीवर्ड के समान लेकिन सभी आह्वानों के लिए काम करता है।
    • addprefix() - नेमस्पेस उपसर्गों का मैपिंग।
    • setlocation() - WSDL में स्थान को ओवरराइड करें; सभी कॉल के लिए कीवर्ड के समान।
    • setproxy() - सभी आह्वानों के लिए प्रॉक्सी कीवर्ड के समान।
  • सोप हेडर के लिए उचित नेमस्पेस उपसर्ग जोड़ें।
  • फिक्स किए गए टिकट: #5, #12, #34, #37, #40, #44, #45, #46, #48, #49, #50, #51

संस्करण 0.3.1 (10-1-08):

  • 0.3 रिलीज़ का त्वरित अनुवर्ती, जिसने मल्टी-पोर्ट सेवा परिभाषाओं के साथ काम करना आवश्यकता से अधिक कठिन बना दिया था। विचार करने (और अच्छी नींद लेने) के बाद, यह स्पष्ट लगा कि कुछ बदलावों से यह बहुत आसान हो जाएगा: 1) गैर-सोप बाइंडिंग को फ़िल्टर करें - वे वास्तविक समस्या पैदा कर रहे थे; 2) चूंकि अधिकांश सर्वर किसी भी सोप बाइंडिंग (सोप 1.1 और 1.2) से खुश हैं, इसलिए पोर्ट योग्यता के बिना उन्हें आह्वान करते समय विधियों के अस्पष्ट संदर्भ लगभग हर मामले में ठीक काम करेंगे। तो, क्यों न केवल सड्स को पोर्ट चुनने दिया जाए? जब आवश्यक न हो तो उपयोगकर्ता को ऐसा करने के लिए मजबूर न करें। अधिकांश मामलों में, 0.2.9 और पहले के उपयोगकर्ताओं को 0.3 पर जाने पर अपने कोड को अपडेट करने की आवश्यकता नहीं होगी जैसा कि उन्हें 0.3 में हो सकती थी।

संस्करण 0.3 (9-30-08):

  • 0.2.9 में शुरू की गई मल्टी-पोर्ट सेवाओं के लिए समर्थन का विस्तार करता है। यह जोड़ एकाधिक सेवाओं को समान विधि परिभाषित करने की अनुमति देता है और सड्स इसे उचित रूप से संभालेगा। अनुभाग 'एकाधिक पोर्ट वाली सेवाएं:' देखें।

  • मल्टी-डॉक्यूमेंट document/literal सोप बाइंडिंग शैली के लिए समर्थन जोड़ें। अनुभाग 'मल्टी-डॉक्यूमेंट Document/Literal:' देखें।

  • (xs:group, xs:attributeGroup) टैग के लिए समर्थन जोड़ें।

  • Client.last_sent() और Client.last_received() जोड़ें।

संस्करण 0.2.9 (9-09-08):

  • एक सेवा के भीतर एकाधिक पोर्ट के लिए समर्थन।
  • विशेषता संदर्भ <xs:attribute ref=""/>
  • सैक्स पैकेज में XML विशेष वर्ण एन्कोडर को प्लगेबल बनाएं

संस्करण 0.2.8 (8-28-08):

  • document/literal बाइंडिंग को अपडेट करें ताकि हमेशा द्वारा संदर्भित दस्तावेज़ रूट भेजा जाए। स्पेस और उपयोगकर्ता इनपुट की एक और समीक्षा के बाद, ऐसा लगता है कि संदर्भित तत्व हमेशा दस्तावेज़ रूट होता है।

  • 'binding' schemaLocations को namespace-uri में मैप करने के लिए समर्थन जोड़ें।
    यह उन आयातों के लिए है जो schemaLocation निर्दिष्ट नहीं करते हैं और फिर भी स्कीमा को डाउनलोड करने की अपेक्षा करते हैं। जैसे: Axis 'http://schemas.xmlsoap.org/soap/encoding/' का संदर्भ बिना schemaLocation के देता है। इसलिए, ऐसा करके:

    from suds.xsd.sxbasic import Import. Import.bind('http://schemas.xmlsoap.org/soap/encoding/')

    स्कीमा एक schemaLocation से बंध जाता है और यह डाउनलोड हो जाता है।

  • बुनियादी अनमार्शलर को /schema/ की आवश्यकता नहीं है। इसे पुनर्गठन के दौरान हटा दिया जाना चाहिए था लेकिन छूट गया था।

  • क्लाइंट को अपडेट करें ताकि kwargs को send() में पास किया जा सके और WSDL में सेवा स्थान को ओवरराइड करने के लिए /location/ kwarg जोड़ें।

  • मार्शलर को अपडेट करें ताकि उन ऑब्जेक्ट विशेषताओं के लिए XML उत्सर्जित न हो जो दोनों वैकल्पिक और value=None हों और जो तत्वों और/या विशेषताओं का प्रतिनिधित्व करती हों। * फैक्ट्री (बिल्डर) को अपडेट करें ताकि सभी विशेषताएँ शामिल हों। * SchemaObject में optional() विधि जोड़ें।

  • यदि निर्दिष्ट किया गया हो तो WSDL को अपडेट करें ताकि संचालन में नेमस्पेस ओवरराइड हो।

  • स्कीमा लोडिंग समस्या ठीक करें - आयात प्रसंस्करण से पहले सभी स्कीमा बनाएं।

  • फेडोरा में सबमिशन की तैयारी में पैकेजिंग अपडेट करें

संस्करण 0.2.7 (8-11-08):

  • document/literal - लपेटा और अनलपेटा के लिए पहचान/समर्थन जोड़ें।
  • document/literal {लपेटा} को अपडेट करें ताकि दस्तावेज़ रूट ( के अंतर्गत) को रैपर तत्व (उचित नेमस्पेस के साथ) पर सेट किया जाए।
  • , और के लिए समर्थन जोड़ें जिनमें maxOccurs हो और जो अनमार्शलर को एक unbounded संग्रह में निहित तत्वों के मानों को सूची के रूप में सेट करने का कारण बनता है।
  • के बच्चों को छोड़ने के लिए client.factory (बिल्डर) को अपडेट करें क्योंकि 'उपयोगकर्ता' को वास्तव में यह तय करने की आवश्यकता है कि कौन से बच्चे शामिल करने हैं।
  • आयातित स्कीमा से प्रकारों के पुन: चपटा होने को रोकने के लिए चपटा करने वाले एल्गोरिदम को अपडेट करें।
  • चपटा/विलय एल्गोरिदम में समायोजन।

संस्करण 0.2.6 (8-5-08):

  • xsd पैकेज के ओवरहाल के दौरान टूटे हुए ENUMs को ठीक करें।
  • टिकट #24 में परिभाषित प्रकार को ठीक करें।
  • टिकट #30 में रिपोर्ट किए गए अनुसार विधि हस्ताक्षरों में डुप्लिकेट पैराम नाम ठीक करें।
  • सड्स LGPL के रूप में लाइसेंस प्राप्त है।
  • टिकट #31 में पैच द्वारा सुझाए अनुसार suds.init() में लॉगिंग सेटअप हटाएं। उपयोगकर्ताओं को अब लॉगर कॉन्फ़िगर करने की आवश्यकता होगी।
  • Client.Factory.create() के लिए समर्थन जोड़ें वैकल्पिक: प्रकार को पूरी तरह से योग्य बनाने के लिए सिंटैक्स: {namespace}name. जैसे: client.factory.create('{http://blabla.com/ns}Person')

संस्करण 0.2.5 (8-01-08):

  • (XSD) पैकेज को ओवरहाल किया गया। यह नया (विलय) दृष्टिकोण सरल है और अधिक विश्वसनीय और रखरखाव योग्य होना चाहिए। साथ ही, बेहतर प्रदर्शन प्रदान करना चाहिए क्योंकि मर्ज की गई स्कीमा डिक्शनरी लुकअप के माध्यम से लुकअप करती है।

    इस ओवरहाल से वर्तमान TypeNotFound और xs:extension/ समस्याएं ठीक होनी चाहिए, मुझे उम्मीद है :-)।

  • dateTime मुद्रण बग ठीक किया गया।

  • उन xsd प्रकारों के लिए बिल्डर.Builder में अनंत पुनरावृत्ति रोकथाम जोड़ी गई जिनमें स्वयं शामिल होते हैं।

संस्करण 0.2.4 (7-28-08):

  • WSDL आयातों के लिए समर्थन जोड़ा गया: wsdl:import/
  • xsd<->पायथन प्रकार रूपांतरणों के लिए समर्थन जोड़ा गया (धन्यवाद: Nathan Van Gheem) इसके लिए:
    • xs:date
    • xs:time
    • xs:dateTime
  • ठीक किया गया:
    • बग: schemaLocation निर्दिष्ट के साथ स्कीमा .
    • बग: सेवा विवरण में निर्दिष्ट नेमस्पेस तब तक मान्य नहीं होते जब तक कि client/proxy मुद्रित नहीं हो जाता।

संस्करण 0.2.3 (7-23-08):

  • अनुकूलन।

संस्करण 0.2.2 (7-8-08):

  • Exception.init() का उपयोग करके Exception.message सेट करने के लिए अपवादों को अधिक /मानक/ पायथन बनाने के लिए अपडेट करें जैसा कि टिकट #14 द्वारा सुझाया गया है; bindings को अपडेट करें ताकि WebFault (p) पास करके उठाया जा सके

  • बाइंडिंग में लौटाए गए मानों में एकाधिक रूट नोड्स को संभालने की क्षमता जोड़ें; सूचियों के लौटाए जाने के विपरीत एक समग्र वस्तु के रूप में लौटाया गया

  • सोपएक्शन को उद्धरणों में संलग्न करने के लिए ठीक करें

  • xs:all/ के लिए समर्थन जोड़ें

  • SchemaObject में unbounded() विधि ठीक करें

  • स्कीमा को नए (xsd) पैकेज में पुनर्गठित किया गया। फ़ाइलें बहुत बड़ी हो रही थीं। क्वेरी में execute() जोड़ा गया और suds को Schema.find() का सीधे उपयोग करने के बजाय क्वेरी को execute() करने के लिए रेट्रोफिट किया गया। साथ ही, स्कीमा से hokey start() विधियों को हटाया गया, साथ ही क्वेरी वृद्धि को भी।

  • आउटबाउंड सॉप संदेशों और/या इनबाउंड रिप्लाई संदेशों को इंजेक्ट करने के लिए उपयोग किया जाने वाला inject कीवर्ड जोड़ें। SoapClient को रिफैक्टर करें और

    1. send() का नाम बदलकर invoke() करें
    2. संदेश भेजने को invoke() से अलग करें और send() में रखें; TestClient जोड़ें जो संदेश और रिप्लाई इंजेक्शन के लिए इनवोकेशन kwargs को inject={'msg=, and reply='} रखने की अनुमति देता है
  • नेमस्पेस व्यवहार के बेहतर प्रबंधन के लिए sax में Namespace वर्ग जोड़ें; suds को Namespace आयात और उपयोग करने के लिए रेट्रोफिट करें

  • संदर्भित प्रकारों (विशेषताओं @base="",@type="" होने पर) को हल करने के लिए उपयोग किए जाने वाले डिफ़ॉल्ट नेमस्पेस को बदलें ताकि जब कोई उपसर्ग निर्दिष्ट न हो: targetNamespace के बजाय XML (नोड) नेमस्पेस का उपयोग करें।

  • [email protected] द्वारा टिकट #13 में परिभाषित फिक्स लागू करें

  • सेवा परिभाषा को अपडेट करें ताकि सेवा विधियों को ' my_method(xs:int arg0, Person arg1) ' के रूप में प्रदर्शित किया जाए ' my_method(arg0{xs:int}, arg1{Person}) ' के बजाय जो पारंपरिक विधि हस्ताक्षरों की तरह अधिक है

  • अनमार्शलर में xsd/पायथन प्रकार रूपांतरण जोड़ें (केवल XBoolean); अनमार्शलर को Content वर्ग का उपयोग करने के लिए रिफैक्टर करें जो API को स्वच्छ बनाता है, मार्शलर और अनमार्शलर के बीच समरूपता जोड़ता है, स्कीमा-संपत्ति आधारित प्रकार रूपांतरण के लिए अच्छा तंत्र प्रदान करता है

  • मार्शलर को Appenders के साथ रिफैक्टर करें; बाइंडिंग्स में returned_type() और returnes_collection() के लिए फिक्स का समर्थन करने के लिए resolve() में nobuiltin फ़्लैग जोड़ें

  • (202,204) http कोड के लिए समर्थन जोड़ें

  • XBoolean और मैपिंग जोड़ें; प्रकार रूपांतरणों की तैयारी में TreeResolver में findattr() जोड़ें

  • स्कीमा और स्कीमा प्रॉपर्टी लोडिंग अपडेट की गई (गहरी पुनरावृत्ति रोक दी गई); आयातित स्कीमा को बदल दिया गया ताकि वे अब आयातित स्कीमा की नकल न करें, बल्कि आयात प्रॉक्सी अनुरोध खोजें; ServiceDefinition वर्ग जोड़ा गया जो बेहतर सेवा निरीक्षण प्रदान करता है; साथ ही नेमस्पेस मैपिंग प्रदान करता है और प्रकार दिखाता है; स्कीमा प्रॉपर्टी API सरलीकृत की गई; xs:any और xs:anyType के लिए समर्थन जोड़ा गया; कुछ स्कीमा लुकअप समस्याएं ठीक की गईं; बाइंडिंग क्लासेस को थोड़ा रिफैक्टर किया गया; बहुत सारी डिबग लॉगिंग जोड़ी गई (प्रदर्शन के लिए कुछ को टिप्पणी करनी पड़ सकती है - कुछ आर्ग महंगे हैं)।

संस्करण 0.2.1 (5-8-08):

  • schema.py SchemaProperty लोडिंग अनुक्रम को अपडेट करें ताकि स्कीमा 3 चरणों में लोड हो: 1) कच्चा पेड़ बनाएं। 2) @ref और @base जैसे निर्भरताओं को हल करें। 3) पेड़ को समतल करने (denormalize) के लिए आवश्यकतानुसार पोते-बच्चों को प्रचारित करें।

    wsdl भी बदल दिया गया ताकि स्कीमा केवल एक बार लोड करके संग्रहीत किया जा सके। स्कीमा संग्रह को बदल दिया गया ताकि स्कीमा 2 चरणों में लोड हों: 1) सभी कच्ची स्कीमा ऑब्जेक्ट बनाएं। 2) स्कीमा लोड करें।

    यह सुनिश्चित करता है कि स्थानीय 'd स्कीमा को तब पाया जा सके जब क्रम से बाहर संदर्भित किया जाए। sax.py Element इंटरफ़ेस बदल गया: attribute() को get() और set() से बदल दिया गया। साथ ही, विशेषता मानों तक पहुँचने के लिए getitem और setitem का उपयोग किया जा सकता है। sax.py के लिए एपीडॉक्स अपडेट किए गए। और ... अंत में अब ठीक से समर्थित है।

  • लॉगिंग ठीक करें: suds.init.logger() में INFO पर सेट न करके; केवल रूट लॉगर पर हैंडलर सेट करें; लॉगर (log) को क्लासेस से मॉड्यूल में स्थानांतरित किया और लॉगर नाम के लिए name का उपयोग किया। नोट: इसका मतलब है कि सॉप संदेश लॉगिंग सक्षम करने के लिए: > > logger('suds.serviceproxy').setLevel(logging.DEBUG) > -- इसके बजाय -- > > logger('serviceproxy').setLevel(logging.DEBUG) >

  • (xsd) स्कीमा नोड्स के लिए समर्थन जोड़ें जो मुख्य रूप से बिल्डर द्वारा लौटाई गई ऑब्जेक्ट्स को प्रभावित करता है

  • serviceproxy.py:set_proxies() को INFO के बजाय DEBUG लॉग करने के लिए अपडेट करें।

  • स्कीमा str को बेहतर बनाएं ताकि कच्चा xml और मॉडल दोनों दिखाई दें (ज्यादातर डिबगिंग के लिए)।

संस्करण-0.2 (04-28-08):

  • इसमें rpc/encoded सॉप शैली का पहला कट शामिल है।

  • Property क्लास को suds.sudsobject.Object से बदल दिया गया। Property क्लास बहुत समय पहले विकसित की गई थी थोड़े अलग उद्देश्य के साथ। suds Object एक सरल (अधिक सीधा) दृष्टिकोण है जो कम कोड की आवश्यकता है और डिबगर में बेहतर काम करता है।

  • बाइंडिंग (और एन्कोडिंग) प्रति-विधि आधार पर चुनी जाती है जो wsdl के साथ अधिक सुसंगत है। 0.1.7 और उससे पहले में, बाइंडिंग तब चुनी जाती थी जब ServiceProxy का निर्माण किया गया था और सभी सेवा विधियों के लिए उपयोग किया जाता था। बाइंडिंग को self.binding के रूप में संग्रहीत किया गया था। चूंकि WSDL प्रत्येक संचालन के लिए एक अलग बाइंडिंग शैली और एन्कोडिंग प्रदान करता है, Suds को उसी तरह काम करने के लिए बदलने की आवश्यकता थी।* (nil_supported) और (faults) फ़्लैग्स को **kwargs का उपयोग करके सर्विस प्रॉक्सी में पास किया गया। इन फ़्लैग्स के अलावा, एक (http_proxy) फ़्लैग जोड़ा गया है और इसे urllib2.Request ऑब्जेक्ट में पास किया गया है। निम्नलिखित आर्ग्स समर्थित हैं:

  • faults = सर्वर द्वारा उठाए गए दोष उठाएँ (डिफ़ॉल्ट: True), अन्यथा सर्विस विधि आह्वान से टपल (http code, object) लौटाएँ।

  • nil_supported = बाइंडिंग्स उन नोड्स पर xsi:nil="true" सेट करेंगी जिनका value=None है जब यह फ़्लैग True है (डिफ़ॉल्ट: True)। अन्यथा, एक खाली नोड भेजा जाता है।

  • proxy = अनुरोधों पर निर्दिष्ट करने के लिए एक http प्रॉक्सी (डिफ़ॉल्ट: {})। प्रॉक्सी को {protocol:proxy,} के रूप में परिभाषित किया गया है।

  • Http प्रॉक्सी समर्थित है (ऊपर देखें)।

  • ServiceProxy को SoapClient को डेलिगेट करने के लिए रिफ़ैक्टर किया गया। चूँकि सर्विस प्रॉक्सी getattr() के माध्यम से वेब सेवाओं को एक्सपोज़ करती है, ServiceProxy वर्ग द्वारा प्रदान किया गया कोई भी गुण (विधियों सहित) wsdl द्वारा परिभाषित WS संचालन को छिपा देता है। इसलिए, सब कुछ SoapClient में ले जाकर, wsdl संचालन अब सेवा प्रॉक्सी में गुणों और विधियों के लिए hoky नामों का उपयोग किए बिना छिपे नहीं रहते। इसके बजाय, सेवा प्रॉक्सी में client और factory गुण हैं (जो वास्तव में नाम संघर्ष के लिए कम जोखिम पर होने चाहिए)। अभी के लिए get_instance() और get_enum() विधियों को पश्चगामी संगतता बनाए रखने के लिए स्थानांतरित नहीं किया गया है। हालाँकि, पसंदीदा API परिवर्तन निम्नलिखित को बदलना होगा:

    service = ServiceProxy('myurl') person = service.get_instance('person')

    ... इसके साथ कुछ इस तरह ...

    service = ServiceProxy('myurl') person = service.factory.get_instance('person')

    कुछ रिलीज़ों के बाद उपयोगकर्ताओं को नए API पर स्विच करने का समय देने के बाद, get_instance() और get_enum() विधियों को बड़े अक्षरों में नोटिस के साथ हटाया जा सकता है।

  • वह समस्या ठीक की गई जहाँ wsdl अनुभाग को परिभाषित नहीं करता है और Suds http://www.w3.org/2001/XMLSchema नेमस्पेस के लिए उपसर्गों को हल नहीं कर पाता है ताकि (xs:string) जैसे बिल्ट-इन प्रकारों का पता लगा सके।

version-0.1.7 (04-08-08):

  • Binding.nil_supported जोड़ा गया जो नियंत्रित करता है कि प्रॉपर्टी वैल्यू (आउट) = None और खाली टैग (इन) को कैसे संसाधित किया जाता है।

    • service.binding.nil_supported = True -- इसका मतलब है कि प्रॉपर्टी वैल्यू = None को (आउट) के रूप में मार्शल किया जाता है और को '' के रूप में अनमार्शल किया जाता है और को None के रूप में अनमार्शल किया जाता है।
    • service.binding.nil_supported = False -- इसका मतलब है कि प्रॉपर्टी वैल्यू = None को (आउट) के रूप में मार्शल किया जाता है और और को None के रूप में अनमार्शल किया जाता है। xsi:nil को वास्तव में अनदेखा किया जाता है।
    • डिफ़ॉल्ट (TRUE) है
  • Sax हैंडलर को एकाधिक character() कॉलबैक को संभालने के लिए अपडेट किया गया जब सैक्स पार्सर टेक्स्ट को "चंक" करता है। जब node.text None होता है, तो node.text को कैरेक्टर्स पर सेट किया जाता है। अन्यथा, कैरेक्टर्स को जोड़ा जाता है। धन्यवाद - [email protected]

  • विशेष (text) विशेषता को text से बदल दिया गया ताकि "text" नाम के प्राकृतिक तत्वों की अनुमति हो सके।

  • यूनिकोड समर्थन जोड़ा गया:

    • str वाली सभी कक्षाओं में unicode जोड़ा गया।
    • सभी str() कॉल को unicode() से बदल दिया गया।
    • str() unicode का UTF-8 एन्कोडेड परिणाम लौटाता है।
  • XML आउटपुट UTF-8 के रूप में एन्कोड किया गया जो HTTP हेडर से मेल खाता है और यूनिकोड का समर्थन करता है।

  • SchemaCollection को builtin() और custom() विधियाँ प्रदान करने के लिए बदला गया। इसे समर्थन देने के लिए, sax.py में Element में findPrefixes() जोड़ा गया। यह वैसे भी एक बेहतर दृष्टिकोण है क्योंकि wsdl और स्कीमों में http://www.w3.org/2001/XMLSchema के कई उपसर्ग हो सकते हैं। doc/lit और rpc/lit दोनों बाइंडिंग के साथ परीक्षण किया गया।

  • बाइंडिंग पैकेजों को document & rpc से literal & encoded में रिफ़ैक्टर किया गया।

  • पूर्ण नेमस्पेस समर्थन का समापन इस प्रकार है:

    • संदर्भित प्रकारों के विशेषता मानों से नेमस्पेस उपसर्ग अब नहीं हटाए जाते हैं जो wsdl में परिभाषित हैं।
    • का उपयोग करके आयात की गई स्कीमाएँ आवश्यकतानुसार नेमस्पेस और उपसर्ग मैपिंग और पुनः मैपिंग को ठीक से संभालती हैं।
    • सभी प्रकारों को पूरी तरह से योग्य (नेमस्पेस के साथ) लुकअप का उपयोग करके हल किया जाता है।
    • Schema.get_type() ns उपसर्गों के साथ और बिना पथों का समर्थन करता है। जब कोई उपसर्ग निर्दिष्ट नहीं किया जाता है, तो प्रकार स्कीमा के लक्ष्य नेमस्पेस का उपयोग करके मिलान किया जाता है।
  • Property उस क्रम में विशेषता नाम (कुंजियाँ) बनाए रखता है जिस क्रम में उन्हें जोड़ा गया था। इसका मतलब यह भी है कि get_item() और get_names() क्रमबद्ध मान लौटाते हैं। (हालाँकि, मुझे संदेह है कि ऑर्डरिंग वास्तव में wsdl/स्कीमा में निर्दिष्ट ऑर्डर का उपयोग करके मार्शलर में की जानी चाहिए)

schema.py का प्रमुख रिफ़ैक्टरिंग। प्राथमिक लक्ष्य नेमस्पेस द्वारा पूरी तरह से योग्य प्रकार लुकअप की तैयारी है। एक बार पूरा होने के बाद, विशेषता मानों पर उपसर्ग अब नहीं हटाए जाएंगे (शुद्ध नहीं किए जाएंगे)। परिवर्तन सारांश: 1) SchemaProperty ओवरले क्लासेस init पर बनाई गईं, न कि ऑन-डिमांड पर। 2) स्कीमा आयात अब Schema के बजाय नए Import वर्ग द्वारा किए जाते हैं। 3) Schema एक फ़ैक्टरी का उपयोग करके शीर्ष-स्तरीय गुण लोड करता है। 4) सभी SchemaProperty /children/ सूचियों को SchemaProperty व्युत्पन्न वर्गों में cmp द्वारा सॉर्ट किया जाता है। यह सुनिश्चित करता है कि समान नाम वाले प्रकार निम्नलिखित क्रम में हल किए जाएँ (Import, Complex, Simple, Element)। 5) सभी /children/ SchemaProperty सूचियाँ init पर बनाई जाती हैं, न कि ऑन-डिमांड पर। 6) SchemaGroup बनाया गया और WSDL वर्ग अपडेट किया गया। यह wsdl को नोड्स को एकत्रित करने से बेहतर काम करता है जो wsdl पैरेंट एलिमेंट से लिंकेज को अलग करता है जिसमें नेमस्पेस उपसर्ग मैपिंग होती है। 7) एलिमेंट दोनों नेमस्पेस रीमैपिंग और आयातित स्कीमा के targetNamespace और संबंधित उपसर्ग मैपिंग के उपसर्ग रीमैपिंग को ठीक से संभालता है। उदा: SCHEMA-A में उपसर्ग (tns) xmlns:tns=http://nsA के रूप में मैप किया गया है और targetNamespace=http://nsA है। SCHEMA-B स्कीमा A आयात कर रहा है और उसका उपसर्ग (abc) xmlns:abc=http://nsABC के रूप में मैप किया गया है। SCHEMA-B A को <import namespace=http://nsB xxx schemaLocation=http://nsA/schema-a.xsd> के रूप में आयात करता है। इसलिए, चूँकि SCHEMA-B SCHEMA-A के तत्वों को उपसर्ग (abc) जैसे abc:something के साथ संदर्भित करेगा, SCHEMA-A के targetNamespace को http://nsABC में अपडेट किया जाना चाहिए और type=tns:something वाले सभी तत्वों को type=abc:something में अपडेट किया जाना चाहिए ताकि उन्हें हल किया जा सके।

  • अनमार्शलिंग समस्या ठीक की गई जहाँ नोड्स को प्रॉपर्टी में (text, value) के रूप में जोड़ा जा रहा था। यह तब पेश किया गया था जब बाइंडिंग्स को रिफ़ैक्टर किया गया था।

  • विभिन्न Property प्रिंट समस्याएँ ठीक की गईं।

नोट्स:

root@kitploit:~
Coniuro के Jesper Noehr को rpc/literal बाइंडिंग के बहुमत के लिए और #suds पर बहुत सारे सहयोग के लिए धन्यवाद।

version-0.1.6 (03-06-08):

  • उन wsdls का उचित प्रबंधन प्रदान करता है जिनमें xsd स्कीमा आयात वाले स्कीमा अनुभाग होते हैं: <import namespace="" schemaLocation=""?>। जब schemaLocation निर्दिष्ट किया जाता है तो संदर्भित स्कीमाएँ आयात की जाती हैं।
  • उन http स्थिति कोडों के लिए अपवाद उठाता है जिन्हें पहले से नहीं संभाला गया है।

version-0.1.5( 02-21-08 ):

  • मॉड्यूल में पदानुक्रमित नामों द्वारा लॉगर प्राप्त करने के लिए बेहतर लॉगिंग प्रदान करता है।
  • अन्य बाइंडिंग्स को वास्तव में समर्थन देने के लिए आवश्यकतानुसार रिफ़ैक्टर किया गया।
  • सैक्स मॉड्यूल जोड़ा गया जो ElementTree को प्रतिस्थापित करता है। यह तेज़, सरल है और नेमस्पेस (उपसर्गों) को ठीक से संभालता है।

version-0.1.4 (12-21-07):

  • सर्विस विधि पैरामीटरों को None होने की अनुमति प्रदान करता है।
  • विधि पैरामीटरों का उचित प्रबंधन जोड़ा गया जो Property ऑब्जेक्ट की सूचियाँ हैं।

version-0.1.3 (12-19-07):

  • उस समस्या को ठीक करता है जहाँ संग्रह (maxOccurs > 1) के रूप में चिह्नित नोड्स DocumentReader द्वारा < 2 मानों के साथ मैप-इन होने पर value=[] के साथ प्रॉपर्टी ऑब्जेक्ट नहीं बना रहे थे। यह bindings.Document.ReplyHint.stripns() (जो DocumentReader.stripns() का उपयोग करता है) के DocumentReader.stripn() में रूपांतरण को याद करने के कारण हुआ था जो अब 0.1.2 के अनुसार एक टुपल (ns,tag) लौटाता है।

version-0.1.2 (12-18-07):

इस रिलीज़ में Property में निम्नलिखित अद्यतन शामिल हैं: * मेटाडेटा समर्थन * ओवरराइड: getitem, setitem, contans * XML दस्तावेज़ों के लिए नेमस्पेस को संभालने के लिए Property.metadata का उपयोग करने के लिए property(reader|writer) में परिवर्तन * setup.py requires को ठीक करता है।

version-0.1.1 (12-17-07):

यह रिलीज़ fedora में होस्ट की गई पहली रिलीज़ को चिह्नित करती है।

टूल डाउनलोड करें
  • sudsobject.Property जोड़ें; एक प्रॉपर्टी एक विशेष ऑब्जेक्ट है जिसमें एक (value) विशेषता होती है और यह बिल्डर (फैक्ट्री) द्वारा बिना बच्चों के स्कीमा-प्रकारों के लिए लौटाया जाता है जैसे: और ; बिल्डर, मार्शलर्स और रिज़ॉल्वर्स को प्रॉपर्टीज को संभालने के लिए अपडेट किया गया; रिज़ॉल्वर, स्कीमा को विशेषता लुकअप को संभालने के लिए भी अपडेट किया गया (जो अनुपलब्ध था)

  • उपयोगकर्ता द्वारा परिभाषित सोप हेडर के लिए आधारभूत कार्य जोड़ें।

  • टिकट #7 के अनुसार elementFormDefault ठीक करें

  • बाइंडिंग से अप्रयुक्त kwargs हटाएं; wsdl में बाइंडिंग कैश करें; लीगेसी ServiceProxy को {नए} Client API को डेलिगेट करने के लिए रेट्रोफिट करें; 'nillable' विशेषता पर प्राकृतिक हैंडलिंग के पक्ष में कीवर्ड nil_supported हटाएं स्कीमा के भीतर

  • विशेषता फ़्लैग (nillable और form) के लिए समर्थन जोड़ें

  • Proxy (दूसरी पीढ़ी का API) वर्ग जोड़ें

  • एक्सेसर/रूपांतरण फ़ंक्शन जोड़ें ताकि उपयोगकर्ता को x विशेषताओं तक पहुँचने की आवश्यकता न हो। साथ ही आसान रूपांतरण और पुनरावृत्ति के लिए todict() और get_items() जोड़ें

  • गहराई में देखने से पहले @ref के लिए शीर्ष-स्तरीय तत्व खोजें

  • SchemaObject में derived() जोड़ें। यह सुनिश्चित करने के लिए आवश्यक है कि सभी व्युत्पन्न प्रकार (wsdl क्लासेस) xsi:type द्वारा योग्य हों, बिना suds के पिछले रिलीज़ों में की गई सभी कस्टम प्रकारों के लिए xsi:type निर्दिष्ट किए। लिटरल मार्शलर को अपडेट करें ताकि केवल तब xsi:type जोड़ा जाए जब प्रकार को निर्दिष्ट करने की आवश्यकता हो।

  • सैक्स में ns प्रचार को बदलें ताकि माता-पिता के पास उपसर्ग होने पर ns को माता-पिता में प्रचारित होने से रोका जा सके।

  • बाइंडिंग returned_type() को (अनसुलझा) Element लौटाने के लिए बदलें

  • नई सुविधाओं का समर्थन करने और रिपोर्ट किए गए बगों को ठीक करने के लिए, मैं Suds में उन घटकों को रिफैक्टर करने और उम्मीद है कि विकसित करने की प्रक्रिया में हूं जो इनपुट/आउटपुट अनुवाद प्रदान करते हैं:

    • बिल्डर (अनुवाद: XSD ऑब्जेक्ट्स => पायथन ऑब्जेक्ट्स)
    • मार्शलर (अनुवाद: पायथन ऑब्जेक्ट्स => XML/SOAP)
    • अनमार्शलर (अनुवाद: सॉप/xml => पायथन ऑब्जेक्ट्स)

    यह विकास इन घटकों के बीच बेहतर समरूपता प्रदान करेगा:

    बिल्डर और अनमार्शलर पायथन (sudsobject.Object का उपवर्ग) ऑब्जेक्ट्स का उत्पादन करेंगे:

    • metadata.type = XSD प्रकार (SchemaObject)
    • उपवर्ग नाम ( class.name ) = स्कीमा-प्रकार का नाम.

    और

    मार्शलर, बिल्डर या अनमार्शलर द्वारा उत्पादित पायथन ऑब्जेक्ट्स का उपभोग करते हुए, इस मानक जानकारी का लाभ उठाकर उपयुक्त आउटपुट ( XML/SOAP ) का उत्पादन करेंगे।

    0.2.1 कोड अधिकांशतः ऐसा ही व्यवहार करता है लेकिन ... पूरी तरह से नहीं. साथ ही, कार्यान्वयन में कुछ अतिरेकता है।

    ऐसा करते समय, बिल्डर, मार्शलर्स और अनमार्शलर क्लासेस द्वारा उपयोग की जाने वाली सामान्य स्कीमा-प्रकार "लुकअप" कार्यक्षमता को "रिज़ॉल्वर" क्लासेस के पदानुक्रम में निकालना समझदारी लगी। इससे बिल्डर, मार्शलर्स और अनमार्शलर क्लासेस की जटिलता और अतिरेकता कम होती है और बेहतर मॉड्यूलरिटी की अनुमति मिलती है। एक बार यह रिफैक्टरिंग पूरी हो जाने पर, लिटरल/एनकोडेड मार्शलर्स के बीच का अंतर बहुत छोटा हो गया। यह देखते हुए कि bindings.literal और bindings.encoded पैकेजों में कोड की मात्रा कम थी (और कम हो रही थी) और Suds कोड बेस को कॉम्पैक्ट रखने के हित में, मैंने सभी मार्शलिंग क्लासेस को bindings.marshaller मॉड्यूल में स्थानांतरित कर दिया। सभी bindings.XX उप-पैकेज हटा दिए जाएंगे।

    शुद्ध प्रभाव:

    Suds के सभी प्रमुख घटक:

    • क्लाइंट (पुराना: सेवा प्रॉक्सी)
    • wsdl
      • स्कीमा (xsd पैकेज)
      • रिज़ॉल्वर्स
    • आउटपुट (मार्शलिंग)
    • बिल्डर
    • इनपुट (अनमार्शलिंग)

    अब बेहतर है:

    • मॉड्यूलरिटी
    • ऑब्जेक्ट मेटाडेटा के संबंध में समरूपता।
    • कोड पुन: उपयोग (< 1% कोड डुप्लिकेशन --- मुझे आशा है)
    • ढीला युग्मन

    ... और निम्नलिखित सुविधाओं/बग-फिक्स के लिए बेहतर प्रदान करता है:

    • (फिक्स) विशेषता पर आधारित XML तत्व योग्यता का उचित स्तर। यह सुनिश्चित करेगा कि जब elementFormDefault="qualified" होता है, Suds लिटरल और एनकोडेड दोनों बाइंडिंग के लिए रूट तत्वों पर उचित नेमस्पेस शामिल करेगा। इसे ठीक से काम करने के लिए, लिटरल मार्शलर को (एनकोडेड मार्शलर की तरह) स्कीमा-प्रकार जागरूक होने की आवश्यकता थी। यदि मैंने ऊपर वर्णित रिफैक्टरिंग के बजाय एनकोडेड मार्शलर के समान स्कीमा-प्रकार लुकअप जोड़ा होता, तो दोनों क्लासेस लगभग एक-दूसरे की पूर्ण नकल होती :-(
  • बिल्डर और अनमार्शलर स्कीमा.Schema.find() का उपयोग करते थे स्कीमा-प्रकारों को हल करने के लिए। वे उचित संदर्भ में प्रकारों को हल करने के लिए एक पथ "person.name.first" बनाते थे। चूंकि Schema.find() स्टेटलेस था, यह प्रत्येक कॉल पर मध्यवर्ती पथ तत्वों को हल करता था। नए रिज़ॉल्वर क्लासेस स्टेटफुल हैं और बाल प्रकारों को बहुत अधिक कुशलता से हल करती हैं।

  • sudsobject.Object में items() विधि जैसे नाम टकराव को रोकें। मैंने सभी विधियों (क्लास विधियों सहित) को एक फ़ैक्टरी क्लास में स्थानांतरित कर दिया है जो Object क्लास में एक क्लास attr ( factory ) के रूप में शामिल है। अब जब सभी विशेषताओं में पायथन बिल्ट-इन नामकरण है, हमारे पास और कोई नाम टकराव नहीं होना चाहिए। यह निश्चित रूप से मानता है कि कोई wsdl/schema इकाई नाम में पायथन बिल्ट-इन नामकरण सम्मेलन वाला नाम नहीं होगा लेकिन मुझे कहीं न कहीं रेखा खींचनी ही होगी :-)