zope.principalannotation

সফটওয়্যার স্ক্রিনশট:
zope.principalannotation
সফটওয়্যার বিবরণ:
সংস্করণ: 4.0.0 Alpha 2
তারিখ আপলোড: 14 Apr 15
ডেভেলপার: Zope Corporation and Contributors
লাইসেন্স: বিনামূল্যে
জনপ্রিয়তা: 0

Rating: 5.0/5 (Total Votes: 1)

.

zope.principalannotation একটি পাইথন zope.security প্রিন্সিপাল জন্য টীকা কার্যকরী মডিউল & nbsp হয় তা স্পষ্ট করার জন্য, এখানে প্রধান zope.security.interfaces.IPrincipal ইন্টারফেস এবং টীকা প্রদান করে যে বস্তুর Zope প্রদান বস্তুর হয়. annotation.interfaces.IAnnotations.
সমস্যা প্রিন্সিপাল প্রতি নিরাপত্তা অংশগ্রহণ (অনুরোধ বা কিছু) জন্য উড়ে নির্মাণ গতিশীল, অ ক্রমাগত বস্তু, তাই AttributeAnnotations মত সাধারণ টীকা কৌশল, তাদের প্রয়োগ করা যাবে না হয়.
এই প্যাকেজ প্রধান আইডি দ্বারা টীকা হিসেবে IAnnotations করতে IPrincipal থেকে একটা এডাপটার সংরক্ষণ, প্রধান টীকা একটি ক্রমাগত সংগ্রহস্থল উপলব্ধ করা হয়.
PrincipalAnnotationUtility
এই প্যাকেজ এর কোর প্রিন্সিপাল জন্য টীকা সঞ্চয় এবং সহজেই তাদের পেতে পারবেন PrincipalAnnotationUtility বর্গ.
এটা IPrincipalAnnotationUtility ইন্টারফেস উপলব্ধ করা হয়:
>>> Zope.principalannotation.interfaces IPrincipalAnnotationUtility আমদানি থেকে
>>> Zope.principalannotation.utility আমদানি PrincipalAnnotationUtility থেকে
>>> Zope.interface.verify আমদানি verifyObject থেকে
>>> Util = PrincipalAnnotationUtility ()
>>> VerifyObject (IPrincipalAnnotationUtility, util)
সত্য
GetAnnotations, getAnnotationsById এবং hasAnnotations: এটি তিনটি পদ্ধতি উপলব্ধ করা হয়. এর একটি পরীক্ষার প্রধান তৈরি এবং এই পদ্ধতি পরীক্ষা করা যাক:
>>> Zope.security.testing আমদানি প্রিন্সিপাল থেকে
>>> Nadako = প্রিন্সিপাল ('nadako')
>>> Nadako.id
'Nadako'
আমাদের প্রধান কোন টীকা আছে, যদি আমরা চেক করতে পারেন. অবশ্যই, এটি বর্তমানে কোনো নেই:
>>> Util.hasAnnotations (nadako)
মিথ্যা
আমরা IAnnotations প্রধান বস্তু নিজেই ব্যবহার করে বস্তুর পেতে পারেন:
>>> Util.getAnnotations (nadako)

অথবা প্রধান আইডি ব্যবহার করে:
>>> Util.getAnnotationsById (nadako.id)

এর IAnnotations আমাদের প্রধান জন্য অবজেক্ট এবং এটি সঙ্গে খেলা যাক:
>>> Annots = util.getAnnotations (nadako)
>>> Zope.interface.verify আমদানি verifyObject থেকে
>>> Zope.annotation.interfaces আমদানি IAnnotations থেকে
>>> VerifyObject (IAnnotations, annots)
সত্য
এর IAnnotation চুক্তি চেক করা যাক:
>>> Bool, (annots)
মিথ্যা
>>> Annots ['not.here']
ট্রেসব্যাক (সবচেয়ে সাম্প্রতিক কল শেষ):
...
KeyError: 'not.here'
>>> Annots.get ('not.here') কেউ না হয়
সত্য
>>> Annots.get ('not.here', 42)
42
IAnnotations বস্তুর আমরা তার জন্য একটি কী সেট শুধুমাত্র যখন উপযোগ মধ্যে সংরক্ষিত হয় যে, মনে রাখবেন. এই আমাদের সব, আমরা শুধু টীকা এর Presense জন্য চেক করা হয় না যখন কোনো তথ্য ধারণ করার জন্য না পারবেন একটি সহজ অপ্টিমাইজেশান হয়. hasAnnotations পদ্ধতি টীকা একটি কী সংরক্ষণের পর ফিরে সত্য হবে:
>>> Util.hasAnnotations (nadako)
মিথ্যা
>>> Annots = 'কিছু তথ্য' ['its.here']
>>> Util.hasAnnotations (nadako)
সত্য
আমরা বিদ্যমান কী মুছে দিতে পারেন:
>>> দেল annots ['its.here']
কিন্তু আমরা (কোন) অবাস্তব যে কী মুছে ফেলতে পারবেন না:
>>> দেল annots ['its.here']
ট্রেসব্যাক (সবচেয়ে সাম্প্রতিক কল শেষ):
...
KeyError: 'its.here'
একাধিক টীকা ইউটিলিটি
আপনার আবেদন তার কম্পোনেন্ট রেজিস্ট্রি সঙ্গে একটি root সাইট বস্তু (ওরফে সাইট ম্যানেজার) আছে এবং যে বস্তু তার নিজের উপাদান রেজিস্ট্রি সঙ্গে একটি সাব-সাইটে বস্তুর আছে, এবং যে উপাদান রেজিস্ট্রি তার বেস হিসাবে root এর উপাদান রেজিস্ট্রি আছে যে কল্পনা করা.
যে ক্ষেত্রে, আমরা IAnnotations উচ্চ স্তরের ইউটিলিটি থেকে টীকা উদ্ধার করার জন্য উপলব্ধ করা আপত্তি চাই.
এর রুট সাইটে আমাদের উপযোগ রেজিস্টার এবং তার নিজস্ব IPrincipalAnnotationUtility সঙ্গে একটি উপ-সাইট তৈরি করা যাক:
>>> রুট ['util'] = util
>>> Rootsm = root.getSiteManager ()
>>> Rootsm.registerUtility (util, IPrincipalAnnotationUtility)
>>> Zope.site.folder আমদানি ফোল্ডার থেকে
>>> Zope.site.site আমদানি LocalSiteManager থেকে
>>> উপ-সাইট = ফোল্ডার ()
>>> রুট ['উপ-সাইট'] = উপ-সাইট
>>> Subsm = LocalSiteManager (উপ-সাইট)
>>> Subsm .__ bases__ = (rootsm)
>>> Subsite.setSiteManager (subsm)
>>> Util2 = PrincipalAnnotationUtility ()
>>> উপ-সাইট ['util2'] = util2
>>> Subsm.registerUtility (util2, IPrincipalAnnotationUtility)
এখন, এর রুট ইউটিলিটি দ্বারা উপলব্ধ IAnnotations একটি কী, তৈরি করা যাক:
>>> Annots = util.getAnnotations (nadako)
>>> Annots ['root.number'] = 42
উপ-সাইট ইউটিলিটি সফলভাবে টীকা পাওয়া উচিত:
>>> Annots2 = util2.getAnnotations (nadako)
>>> Bool, (annots2)
সত্য
>>> Annots2 ['root.number']
42
আমরা উভয় উচ্চ পর্যায়ের টীকা এবং নিম্ন স্তরের বেশী কি আছে, নিম্ন স্তরের অগ্রাধিকার আছে, কিন্তু উচ্চ স্তরের মুছে ফেলা বা ওভাররাইড করা হবে না:
>>> Annots ['another.number'] = 1
>>> Annots2 ['another.number'] = 42
>>> Annots ['another.number']
1
>>> Annots2 ['another.number']
42
আমরা নিম্ন স্তরের থেকে কী মুছে দিন, এটি একটি উচ্চ স্তরের ইউটিলিটি থেকে মুছে ফেলা হবে না:
>>> দেল annots2 ['another.number']
>>> Annots ['another.number']
1
>>> Annots2 ['another.number']
1
IPrincipal -> IAnnotations অ্যাডাপ্টারের
অবশ্যই, সবচেয়ে চমৎকার বৈশিষ্ট্য আমরা শুধু IAnnotations আমাদের প্রধান লক্ষ্য খাপ খাওয়ানো এবং zope.annotation প্যাকেজের মধ্যে নথিভুক্ত আদর্শ উপায় ব্যবহার করে যারা টীকা পেতে পারেন.
& Nbsp; >>> annots = IAnnotations (nadako)
& Nbsp; >>> annots
& Nbsp;
& Nbsp; >>> annots ['root.number']
& Nbsp; 42
ডিফল্টরূপে, IAnnotation অ্যাডাপ্টারের বর্তমান সাইট এর ইউটিলিটি ব্যবহার করে:
>>> IAnnotations (nadako) (nadako) util.getAnnotations হয়
সত্য
>>> Zope.site.hooks আমদানি setSite থেকে
>>> SetSite (উপ-সাইট)
>>> IAnnotations (nadako) (nadako) util2.getAnnotations হয়
সত্য
Howerver, আমরা টীকা ইউটিলিটি পেতে যা থেকে কিছু প্রসঙ্গ বস্তু উল্লেখ করতে IAnnotations একটি বাইনারি মাল্টি অ্যাডাপ্টার ব্যবহার করতে পারেন:
>>> Zope.component আমদানি getMultiAdapter থেকে
>>> Annots = getMultiAdapter ((nadako, root পরিচয়ে), IAnnotations)
>>> Annots হয় util.getAnnotations (nadako)
সত্য
>>> Annots = getMultiAdapter ((nadako, উপ-সাইট), IAnnotations)
>>> Annots হয় util2.getAnnotations (nadako)
সত্য

এই রিলিজে নতুন কি:.

  • সংশোধন Trove ক্লাসিফায়ার

কি সংস্করণ 3.6.1 নতুন:

  • নেস্টেড স্থানীয় সাইট ম্যানেজার সেটআপ একটি পরীক্ষা ব্যর্থতা সংশোধন করা হয়েছে .

  • Zope.container উপর
  • সরানো নির্ভরতা.

আবশ্যক

  • পাইথন

বিকাশকারী অন্যান্য সফ্টওয়্যার Zope Corporation and Contributors

মন্তব্য zope.principalannotation

পাওয়া মন্তব্যসমূহ না
মন্তব্য যোগ করুন
ছবি চালু!