当前位置: 首页>>代码示例>>Python>>正文


Python PyObjCTools.KeyValueCoding类代码示例

本文整理汇总了Python中PyObjCTools.KeyValueCoding的典型用法代码示例。如果您正苦于以下问题:Python KeyValueCoding类的具体用法?Python KeyValueCoding怎么用?Python KeyValueCoding使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了KeyValueCoding类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test_attribute_access

    def test_attribute_access(self):
        v = object()
        o = KeyValueCoding.kvc(v)
        o.key
        o.key2
        getattr(o, "key3.key4")
        self.assertEqual(self._trace,  [
            ('get', v, 'key'),
            ('get', v, 'key2'),
            ('get', v, 'key3.key4'),
        ])
        self._trace[:] = []

        o.key = 42
        setattr(o, "key3.key4", 99)
        self.assertEqual(self._trace,  [
            ('set', v, 'key', 42),
            ('set', v, 'key3.key4', 99),
        ])
        self._trace[:] = []

        class Object (object):
            pass

        v = Object()
        o = KeyValueCoding.kvc(v)
        o.key = 42
        o._key = 99
        self.assertEqual(self._trace,  [
            ('set', v, 'key', 42),
        ])
        self.assertEqual(o._key, 99)
        self.assertIn('_key', o.__dict__)
        self.assertNotIn('key', o.__dict__)
开发者ID:BMXE,项目名称:music-player,代码行数:34,代码来源:test_keyvaluecoding.py

示例2: test_cocoa_get

 def test_cocoa_get(self):
     r = objc.lookUpClass('NSObject').alloc().init()
     self.assertEqual(KeyValueCoding.getKey(r, 'description'), r.description())
     self.assertEqual(KeyValueCoding.getKeyPath(r, 'description'), r.description())
     self.assertEqual(KeyValueCoding.getKeyPath(r, 'description.length'), len(r.description()))
     self.assertRaises(KeyError, KeyValueCoding.getKey, r, 'nosuchattr')
     self.assertRaises(KeyError, KeyValueCoding.getKeyPath, r, 'description.nosuchattr')
开发者ID:BMXE,项目名称:music-player,代码行数:7,代码来源:test_keyvaluecoding.py

示例3: test_attr_get

    def test_attr_get(self):
        class Record (object):
            __slots__ = ('slot1', '__dict__')
            def __init__(self, **kwds):
                for k, v in kwds.items():
                    setattr(self, k, v)

            @property
            def prop1(self):
                return 'a property'

        r = Record(slot1=42, attr1='a')

        self.assertEqual(KeyValueCoding.getKey(r, 'slot1'), 42)
        self.assertEqual(KeyValueCoding.getKey(r, 'attr1'), 'a')
        self.assertEqual(KeyValueCoding.getKey(r, 'prop1'), 'a property')
        self.assertEqual(KeyValueCoding.getKeyPath(r, 'slot1'), 42)
        self.assertEqual(KeyValueCoding.getKeyPath(r, 'attr1'), 'a')
        self.assertEqual(KeyValueCoding.getKeyPath(r, 'prop1'), 'a property')

        r = Record(attr1=Record(attr2='b', attr3=[Record(a=1), Record(a=2, b='b')]))
        self.assertRaises(KeyError, KeyValueCoding.getKey, r, 'slot1')
        self.assertRaises(KeyError, KeyValueCoding.getKey, r, 'attr99')
        self.assertRaises(KeyError, KeyValueCoding.getKeyPath, r, 'slot1')
        self.assertRaises(KeyError, KeyValueCoding.getKeyPath, r, 'attr99')

        self.assertEqual(KeyValueCoding.getKeyPath(r, 'attr1.attr2'), 'b')
        self.assertEqual(KeyValueCoding.getKeyPath(r, 'attr1.attr3.a'), [1, 2])
        self.assertEqual(KeyValueCoding.getKeyPath(r, 'attr1.attr3.b'), [null, 'b'])
        self.assertRaises(KeyError, KeyValueCoding.getKeyPath, r, 'attr3')
        self.assertRaises(KeyError, KeyValueCoding.getKeyPath, r, 'attr1.attr9')
开发者ID:BMXE,项目名称:music-player,代码行数:31,代码来源:test_keyvaluecoding.py

示例4: test_cocoa_set

    def test_cocoa_set(self):
        o = objc.lookUpClass('NSMutableDictionary').alloc().init()
        KeyValueCoding.setKey(o, 'attr', 'value')
        self.assertEqual(o, {'attr': 'value'})

        KeyValueCoding.setKeyPath(o, 'attr', 'value2')
        self.assertEqual(o, {'attr': 'value2'})

        o = objc.lookUpClass('NSObject').alloc().init()
        self.assertRaises(KeyError, KeyValueCoding.setKey, o, 'description', 'hello')
        self.assertRaises(KeyError, KeyValueCoding.setKeyPath, o, 'description', 'hello')
开发者ID:BMXE,项目名称:music-player,代码行数:11,代码来源:test_keyvaluecoding.py

示例5: test_dict_set

    def test_dict_set(self):
        v = {'a': 42, 'c':{} }

        KeyValueCoding.setKey(v, 'a', 43)
        KeyValueCoding.setKey(v, 'b', 'B')
        self.assertEqual(v, {'a': 43, 'b': 'B', 'c':{} })

        KeyValueCoding.setKeyPath(v, 'a', 44)
        KeyValueCoding.setKeyPath(v, 'b', 'C')
        KeyValueCoding.setKeyPath(v, 'c.a', 'A')
        self.assertEqual(v, {'a': 44, 'b': 'C', 'c':{'a': 'A'} })
开发者ID:BMXE,项目名称:music-player,代码行数:11,代码来源:test_keyvaluecoding.py

示例6: test_count

    def test_count(self):
        arrayOperators = KeyValueCoding._ArrayOperators

        values = [
                { 'a' : 1 },
                { 'a' : 2, 'b': 4 },
                { 'a' : 3, 'b': 2 },
                { 'a' : 4 },
        ]
        self.assertEqual(arrayOperators.count(values, 'a'), len(values))
        self.assertEqual(arrayOperators.count(values, 'b'), len(values))
        self.assertEqual(arrayOperators.count(values, ()), len(values))
        self.assertEqual(KeyValueCoding.getKeyPath(values, '@count'), len(values))
        self.assertEqual(KeyValueCoding.getKeyPath(values, '@count.a'), len(values))
开发者ID:BMXE,项目名称:music-player,代码行数:14,代码来源:test_keyvaluecoding.py

示例7: test_keyCaps

    def test_keyCaps(self):
        self.assertEqual(KeyValueCoding.keyCaps("attr"), "Attr")
        self.assertEqual(KeyValueCoding.keyCaps("Attr"), "Attr")
        self.assertEqual(KeyValueCoding.keyCaps("AttR"), "AttR")
        self.assertEqual(KeyValueCoding.keyCaps("attr_with_value"), "Attr_with_value")

        self.assertEqual(KeyValueCoding.keyCaps(b"attr"), b"Attr")
        self.assertEqual(KeyValueCoding.keyCaps(b"Attr"), b"Attr")
        self.assertEqual(KeyValueCoding.keyCaps(b"AttR"), b"AttR")
        self.assertEqual(KeyValueCoding.keyCaps(b"attr_with_value"), b"Attr_with_value")
开发者ID:BMXE,项目名称:music-player,代码行数:10,代码来源:test_keyvaluecoding.py

示例8: test_avg

    def test_avg(self):
        arrayOperators = KeyValueCoding._ArrayOperators

        values = [
                { 'a' : 1 },
                { 'a' : 2, 'b': 4 },
                { 'a' : 3, 'b': 2 },
                { 'a' : 4 },
        ]
        self.assertEqual(arrayOperators.avg(values, 'a'), 2.5)
        self.assertEqual(arrayOperators.avg(values, 'b'), 1.5)
        self.assertEqual(arrayOperators.avg(values, 'c'), 0)
        self.assertEqual(arrayOperators.avg([], 'b'), 0)
        self.assertRaises(KeyError, arrayOperators.avg, [], ())

        self.assertEqual(KeyValueCoding.getKeyPath(values, '@avg.a'), 2.5)
        self.assertEqual(KeyValueCoding.getKeyPath(values, '@avg.b'), 1.5)
        self.assertEqual(KeyValueCoding.getKeyPath(values, '@avg.c'), 0)
开发者ID:BMXE,项目名称:music-player,代码行数:18,代码来源:test_keyvaluecoding.py

示例9: test_sum

    def test_sum(self):
        arrayOperators = KeyValueCoding._ArrayOperators

        values = [
                { 'a' : 1 },
                { 'a' : 2, 'b': 4 },
                { 'a' : 3, 'b': 2 },
                { 'a' : 4 },
        ]
        self.assertEqual(arrayOperators.sum(values, 'a'), 10)
        self.assertEqual(arrayOperators.sum(values, 'b'), 6)
        self.assertEqual(arrayOperators.sum(values, 'c'), 0)
        self.assertEqual(arrayOperators.sum([], 'b'), 0)
        self.assertRaises(KeyError, arrayOperators.sum, [], ())

        self.assertEqual(KeyValueCoding.getKeyPath(values, '@sum.a'), 10)
        self.assertEqual(KeyValueCoding.getKeyPath(values, '@sum.b'), 6)
        self.assertEqual(KeyValueCoding.getKeyPath(values, '@sum.c'), 0)
开发者ID:BMXE,项目名称:music-player,代码行数:18,代码来源:test_keyvaluecoding.py

示例10: testMixedGraph2

    def testMixedGraph2(self):
        arr = objc.lookUpClass('NSMutableArray').alloc().init()
        d1 = objc.lookUpClass('NSMutableDictionary').alloc().init()
        d2 = objc.lookUpClass('NSMutableDictionary').alloc().init()
        d3 = {}
        
        root = objc.lookUpClass('NSMutableDictionary').dictionaryWithDictionary_({ 'a': arr, 'd': d2 })

        arr.addObject_(d1)
        arr.addObject_(d3)
        d1['k'] = 1
        d3['k'] = 2

        KeyValueCoding.setKeyPath(root, 'd.a', 'the letter A')
        self.assertEqual(d2, {'a': 'the letter A', })

        self.assertEqual(KeyValueCoding.getKeyPath(root, 'd.a'), 'the letter A')
        self.assertEqual(KeyValueCoding.getKeyPath(arr, 'k'), [1, 2])
        self.assertEqual(KeyValueCoding.getKeyPath(root, 'a.k'), [1, 2])
开发者ID:BMXE,项目名称:music-player,代码行数:19,代码来源:test_keyvaluecoding.py

示例11: test_distinctUnionOfObjects

    def test_distinctUnionOfObjects(self):
        arrayOperators = KeyValueCoding._ArrayOperators

        class Int (object):
            def __init__(self, value):
                self._value = value

            def __repr__(self):
                return 'Int(%r)'%(self._value)

            def __eq__(self, other):
                if isinstance(other, int):
                    return self._value == other

                elif isinstance(other, Int):
                    return self._value == other._value

                else:
                    return False

            def __hash__(self): raise TypeError

        values = [
                { 'a' : { 'b': 1 } },
                { 'a' : { 'b': Int(1) } },
                { 'a' : { 'b': 2 } },
                { 'a' : { 'b': Int(3) } },
                { 'a' : { 'b': Int(3) } },
        ]
        
        self.assertEqual(arrayOperators.distinctUnionOfObjects(values, ('a', 'b')), [1, 2, 3 ])
        self.assertEqual(KeyValueCoding.getKeyPath(values, '@distinctUnionOfObjects.a.b'), [1, 2, 3 ])

        values.append({'a': {}})
        self.assertRaises(KeyError, arrayOperators.distinctUnionOfObjects, values, ('a', 'b'))
        self.assertRaises(KeyError, KeyValueCoding.getKeyPath, values, '@distinctUnionOfObjects.a.b')

        class Rec (object):
            def __init__(self, b):
                self.b = b

            def __eq__(self, other):
                return type(self) == type(other) and self.b == other.b

            def __hash__(self): raise TypeError

        values = [
                { 'a' : Rec(1) },
                { 'a' : Rec(1) },
                { 'a' : Rec(2) },
                { 'a' : Rec(3) },
        ]
        self.assertEqual(arrayOperators.distinctUnionOfObjects(values, ('a', 'b')), [1, 2, 3 ])
开发者ID:BMXE,项目名称:music-player,代码行数:53,代码来源:test_keyvaluecoding.py

示例12: test_max

    def test_max(self):
        arrayOperators = KeyValueCoding._ArrayOperators

        values = [
                { 'a' : 1 },
                { 'a' : 2, 'b': 5 },
                { 'a' : 3, 'b': 2 },
                { 'a' : 4 },
        ]
        self.assertEqual(arrayOperators.max(values, 'a'), 4)
        self.assertEqual(arrayOperators.max(values, 'b'), 5)
        self.assertRaises(KeyError, arrayOperators.max, values, ())
        self.assertEqual(KeyValueCoding.getKeyPath(values, '@max.a'), 4)
开发者ID:BMXE,项目名称:music-player,代码行数:13,代码来源:test_keyvaluecoding.py

示例13: test_unionOfObjects

    def test_unionOfObjects(self):
        arrayOperators = KeyValueCoding._ArrayOperators

        values = [
                { 'a' : { 'b': 1 } },
                { 'a' : { 'b': 1 } },
                { 'a' : { 'b': 2 } },
                { 'a' : { 'b': 3 } },
        ]
        
        self.assertEqual(arrayOperators.unionOfObjects(values, ('a', 'b')), [1, 1, 2, 3 ])
        self.assertEqual(KeyValueCoding.getKeyPath(values, '@unionOfObjects.a.b'), [1, 1, 2, 3])

        values.append({'a': {}})
        self.assertRaises(KeyError, arrayOperators.unionOfObjects, values, ('a', 'b'))
开发者ID:BMXE,项目名称:music-player,代码行数:15,代码来源:test_keyvaluecoding.py

示例14: test_item_access

    def test_item_access(self):
        v = object()
        o = KeyValueCoding.kvc(v)
        o['key']
        o['key2']
        o['key3.key4']
        self.assertEqual(self._trace,  [
            ('get-path', v, 'key'),
            ('get-path', v, 'key2'),
            ('get-path', v, 'key3.key4'),
        ])
        self._trace[:] = []

        o["key"] = 42
        o["key3.key4"] = 99
        self.assertEqual(self._trace,  [
            ('set-path', v, 'key', 42),
            ('set-path', v, 'key3.key4', 99),
        ])
        self._trace[:] = []


        self.assertRaises(TypeError, operator.getitem, o, 42)
        self.assertRaises(TypeError, operator.setitem, o, 42, 99)
开发者ID:BMXE,项目名称:music-player,代码行数:24,代码来源:test_keyvaluecoding.py

示例15: test_msum

 def test_msum(self):
     self.assertEqual(KeyValueCoding.msum([1, 1e100, 1, -1e100] * 10000), 20000)
     self.assertEqual(KeyValueCoding.msum([1.0, 2.0, 3.0, 4.0]), 10.0)
开发者ID:BMXE,项目名称:music-player,代码行数:3,代码来源:test_keyvaluecoding.py


注:本文中的PyObjCTools.KeyValueCoding类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。