""" Specific support for NSData. NSData needs to be handles specially for correctness reasons, and is therefore in the core instead of the Foundation framework wrappers. """ import sys from objc._convenience import addConvenienceForClass from objc._objc import registerMetaDataForSelector registerMetaDataForSelector( b'NSData', b'dataWithBytes:length:', { 'arguments': { 2: { 'type': b'^v', 'type_modifier': b'n', 'c_array_length_in_arg': 3 } } }) def nsdata__new__(cls, value=None): if value is None: return cls.data() else: return cls.dataWithBytes_length_(value, len(value)) if sys.version_info[0] == 2: # pragma: no 3.x cover def nsdata__str__(self): if len(self) == 0:
NSData needs to be handles specially for correctness reasons, and is therefore in the core instead of the Foundation framework wrappers. """ from objc._objc import registerMetaDataForSelector from objc._convenience import addConvenienceForClass import sys registerMetaDataForSelector( b"NSData", b"dataWithBytes:length:", { "arguments": { 2: { "type": b"^v", "type_modifier": b"n", "c_array_length_in_arg": 3 } } }, ) def nsdata__new__(cls, value=None): if value is None: return cls.data() else: return cls.dataWithBytes_length_(value, len(value))
registerMetaDataForSelector( b"NSObject", b"sortUsingFunction:context:", dict( arguments={ 2: { "callable": { "retval": { "type": _C_NSInteger }, "arguments": { 0: { "type": _C_ID }, 1: { "type": _C_ID }, 2: { "type": _C_ID }, }, }, "callable_retained": False, }, 3: { "type": _C_ID }, }), )
else: # pragma: no 2.x cover INT_TYPES = int STR_TYPES = str registerMetaDataForSelector( b"NSObject", b"sortUsingFunction:context:", dict( arguments={ 2: { 'callable': { 'retval': { 'type': _C_NSInteger }, 'arguments': { 0: { 'type': _C_ID }, 1: { 'type': _C_ID }, 2: { 'type': _C_ID }, } }, 'callable_retained': False, }, 3: { 'type': _C_ID }, }, ) ) def _ensure_array(anArray): """ Return *anArray* as a list, tuple or NSArray """ if not isinstance(anArray, (NSArray, list, tuple)): anArray = list(anArray)
else: def doCmp(a, b, cmpfunc): return cmpfunc(key(a), key(b)) self.sortUsingFunction_context_(doCmp, cmpfunc) registerMetaDataForSelector( b"NSObject", b"sortUsingFunction:context:", dict( arguments={ 2: { "callable": {"reval": "i", "arguments": {0: {"type": "@"}, 1: {"type": "@"}, 2: {"type": "@"}}}, "callable_retained": False, }, 3: {"type": "@"}, } ), ) CONVENIENCE_METHODS[b"sortUsingFunction:context:"] = (("sort", sort),) CONVENIENCE_METHODS[b"hasPrefix:"] = (("startswith", lambda self, pfx: self.hasPrefix_(pfx)),) CONVENIENCE_METHODS[b"hasSuffix:"] = (("endswith", lambda self, pfx: self.hasSuffix_(pfx)),)
INT_TYPES = int STR_TYPES = str registerMetaDataForSelector( b"NSObject", b"sortUsingFunction:context:", dict(arguments={ 2: { 'callable': { 'retval': { 'type': _C_NSInteger }, 'arguments': { 0: { 'type': _C_ID }, 1: { 'type': _C_ID }, 2: { 'type': _C_ID }, } }, 'callable_retained': False, }, 3: { 'type': _C_ID }, }, )) def _ensure_array(anArray):
""" Specific support for NSData. NSData needs to be handles specially for correctness reasons, and is therefore in the core instead of the Foundation framework wrappers. """ from objc._objc import registerMetaDataForSelector from objc._convenience import addConvenienceForClass import sys registerMetaDataForSelector( b'NSData', b'dataWithBytes:length:', { 'arguments': { 2: { 'type': b'^v', 'type_modifier': b'n', 'c_array_length_in_arg': 3 } } }) def nsdata__new__(cls, value=None): if value is None: return cls.data() else: return cls.dataWithBytes_length_(value, len(value)) if sys.version_info[0] == 2: # pragma: no 3.x cover def nsdata__str__(self): if len(self) == 0: return str(b"")