70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
import collections.abc
 | 
						|
import datetime
 | 
						|
 | 
						|
from objc import _objc
 | 
						|
 | 
						|
__all__ = [
 | 
						|
    "registerListType",
 | 
						|
    "registerMappingType",
 | 
						|
    "registerSetType",
 | 
						|
    "registerDateType",
 | 
						|
]
 | 
						|
 | 
						|
_objc.options._datetime_date_type = datetime.date
 | 
						|
_objc.options._datetime_datetime_type = datetime.datetime
 | 
						|
 | 
						|
 | 
						|
def registerListType(type_object):
 | 
						|
    """
 | 
						|
    Register 'type' as a list-like type that will be proxied
 | 
						|
    as an NSMutableArray subclass.
 | 
						|
    """
 | 
						|
    if _objc.options._sequence_types is None:
 | 
						|
        _objc.options._sequence_types = ()
 | 
						|
 | 
						|
    _objc.options._sequence_types += (type_object,)
 | 
						|
 | 
						|
 | 
						|
def registerMappingType(type_object):
 | 
						|
    """
 | 
						|
    Register 'type' as a dictionary-like type that will be proxied
 | 
						|
    as an NSMutableDictionary subclass.
 | 
						|
    """
 | 
						|
    if _objc.options._mapping_types is None:
 | 
						|
        _objc.options._mapping_types = ()
 | 
						|
 | 
						|
    _objc.options._mapping_types += (type_object,)
 | 
						|
 | 
						|
 | 
						|
def registerSetType(type_object):
 | 
						|
    """
 | 
						|
    Register 'type' as a set-like type that will be proxied
 | 
						|
    as an NSMutableSet subclass.
 | 
						|
    """
 | 
						|
    if _objc.options._set_types is None:
 | 
						|
        _objc.options._set_types = ()
 | 
						|
 | 
						|
    _objc.options._set_types += (type_object,)
 | 
						|
 | 
						|
 | 
						|
def registerDateType(type_object):
 | 
						|
    """
 | 
						|
    Register 'type' as a date-like type that will be proxied
 | 
						|
    as an NSDate subclass.
 | 
						|
    """
 | 
						|
    if _objc.options._date_types is None:
 | 
						|
        _objc.options._date_types = ()
 | 
						|
 | 
						|
    _objc.options._date_types += (type_object,)
 | 
						|
 | 
						|
 | 
						|
registerListType(collections.abc.Sequence)
 | 
						|
registerListType(range)
 | 
						|
registerMappingType(collections.abc.Mapping)
 | 
						|
registerMappingType(dict)
 | 
						|
registerSetType(set)
 | 
						|
registerSetType(frozenset)
 | 
						|
registerSetType(collections.abc.Set)
 | 
						|
registerDateType(datetime.date)
 | 
						|
registerDateType(datetime.datetime)
 |