Esempio n. 1
0
    def __init__(self, patterns=None, encoding='utf8', **options):

        # Make sure encoding is taken care of when passing strings
        self.encoding = encoding
        ctypes.set_conversion_mode(encoding, 'replace')

        if 'nthread' not in options:
            # If thread count isn't given, use number of processors
            options['nthread'] = multiprocessing.cpu_count()

        # Add unspecified options values from Wapiti's default struct
        for field in _default_options._fields_:
            field_name = field[0]
            if not field_name in options:
                options[field_name] = getattr(_default_options, field_name)
        if options['maxiter'] == 0:
            # Wapiti specifies that 0 means max int size for this option.
            options['maxiter'] = 2147483647

        self.options = OptType(**options)

        # Load model from file if specified
        if self.options.model:
            self._model = _wapiti.api_load_model(self.options.model,
                                                 ctypes.pointer(self.options))
        else:
            if self.options.pattern:
                self.patterns = open(self.options.pattern).read()
            else:
                self.patterns = patterns

            self._model = _wapiti.api_new_model(ctypes.pointer(self.options),
                                                self.patterns)
Esempio n. 2
0
 def test_latin1_strict(self):
     wcslen = self.wcslen
     ctypes.set_conversion_mode("latin-1", "strict")
     self.assertEqual(wcslen(u"abc"), 3)
     self.assertEqual(wcslen(u"ab\u2070"), 3)
     self.assertEqual(wcslen("abc"), 3)
     self.assertEqual(wcslen("הצ��"), 4)
Esempio n. 3
0
 def test_ascii_ignore(self):
     ctypes.set_conversion_mode("ascii", "ignore")
     self.failUnlessEqual(wcslen(u"abc"), 3)
     self.failUnlessEqual(wcslen(u"ab\u2070"), 3)
     # ignore error mode skips non-ascii characters
     self.failUnlessEqual(wcslen("abc"), 3)
     self.failUnlessEqual(wcslen("הצ��"), 0)
Esempio n. 4
0
 def test_ascii_replace(self):
     wcslen = self.wcslen
     ctypes.set_conversion_mode("ascii", "replace")
     self.assertEqual(wcslen(u"abc"), 3)
     self.assertEqual(wcslen(u"ab\u2070"), 3)
     self.assertEqual(wcslen("abc"), 3)
     self.assertEqual(wcslen("abה"), 3)
 def test_ascii_replace(self):
     wcslen = self.wcslen
     ctypes.set_conversion_mode("ascii", "replace")
     self.assertEqual(wcslen(u"abc"), 3)
     self.assertEqual(wcslen(u"ab\u2070"), 3)
     self.assertEqual(wcslen("abc"), 3)
     self.assertEqual(wcslen("abä"), 3)
 def test_ascii_ignore(self):
     ctypes.set_conversion_mode("ascii", "ignore")
     self.failUnlessEqual(wcslen("abc"), 3)
     self.failUnlessEqual(wcslen("ab\u2070"), 3)
     # ignore error mode skips non-ascii characters
     self.failUnlessEqual(wcslen("abc"), 3)
     self.failUnlessEqual(wcslen(b"\xe4\xf6\xfc\xdf"), 0)
 def test_latin1_strict(self):
     wcslen = self.wcslen
     ctypes.set_conversion_mode("latin-1", "strict")
     self.assertEqual(wcslen(u"abc"), 3)
     self.assertEqual(wcslen(u"ab\u2070"), 3)
     self.assertEqual(wcslen("abc"), 3)
     self.assertEqual(wcslen("äöüß"), 4)
Esempio n. 8
0
 def test_ascii_ignore(self):
     ctypes.set_conversion_mode("ascii", "ignore")
     assert wcslen(u"abc") == 3
     assert wcslen(u"ab\u2070") == 3
     # ignore error mode skips non-ascii characters
     assert wcslen("abc") == 3
     assert wcslen("הצ��") == 0
Esempio n. 9
0
 def test_ascii_ignore(self):
     ctypes.set_conversion_mode("ascii", "ignore")
     assert wcslen(u"abc") == 3
     assert wcslen(u"ab\u2070") == 3
     # ignore error mode skips non-ascii characters
     assert wcslen("abc") == 3
     assert wcslen("הצ��") == 0
Esempio n. 10
0
 def test_ascii_ignore(self):
     ctypes.set_conversion_mode("ascii", "ignore")
     self.assertEqual(wcslen(u"abc"), 3)
     self.assertEqual(wcslen(u"ab\u2070"), 3)
     # ignore error mode skips non-ascii characters
     self.assertEqual(wcslen("abc"), 3)
     self.assertEqual(wcslen("g"), 0)
 def test_ascii_strict(self):
     ctypes.set_conversion_mode("ascii", "strict")
     # no conversions take place with unicode arguments
     self.failUnlessEqual(wcslen("abc"), 3)
     self.failUnlessEqual(wcslen("ab\u2070"), 3)
     # string args are converted
     self.failUnlessEqual(wcslen("abc"), 3)
     self.failUnlessRaises(ctypes.ArgumentError, wcslen, b"ab\xe4")
Esempio n. 12
0
 def test_ascii_strict(self):
     ctypes.set_conversion_mode("ascii", "strict")
     # no conversions take place with unicode arguments
     assert wcslen(u"abc") == 3
     assert wcslen(u"ab\u2070") == 3
     # string args are converted
     assert wcslen("abc") == 3
     py.test.raises(ctypes.ArgumentError, wcslen, "abה")
Esempio n. 13
0
 def test_ascii_strict(self):
     ctypes.set_conversion_mode("ascii", "strict")
     # no conversions take place with unicode arguments
     assert wcslen(u"abc") == 3
     assert wcslen(u"ab\u2070") == 3
     # string args are converted
     assert wcslen("abc") == 3
     py.test.raises(ctypes.ArgumentError, wcslen, "abה")
Esempio n. 14
0
 def test_ascii_strict(self):
     ctypes.set_conversion_mode("ascii", "strict")
     # no conversions take place with unicode arguments
     self.failUnlessEqual(wcslen(u"abc"), 3)
     self.failUnlessEqual(wcslen(u"ab\u2070"), 3)
     # string args are converted
     self.failUnlessEqual(wcslen("abc"), 3)
     self.failUnlessRaises(ctypes.ArgumentError, wcslen, "abה")
 def test_ascii_strict(self):
     wcslen = self.wcslen
     ctypes.set_conversion_mode("ascii", "strict")
     # no conversions take place with unicode arguments
     self.assertEqual(wcslen(u"abc"), 3)
     self.assertEqual(wcslen(u"ab\u2070"), 3)
     # string args are converted
     self.assertEqual(wcslen("abc"), 3)
     self.assertRaises(ctypes.ArgumentError, wcslen, "abä")
Esempio n. 16
0
    def __init__(self, patterns=None, encoding='utf8', **options):

        # Make sure encoding is taken care of when passing strings
        self.encoding = encoding
        ctypes.set_conversion_mode(encoding, 'replace')

        if 'nthread' not in options:
            # If thread count isn't given, use number of processors
            options['nthread'] = multiprocessing.cpu_count()

        # Add unspecified options values from Wapiti's default struct
        for field in _default_options._fields_:
            field_name = field[0]
            if not field_name in options:
                options[field_name] = getattr(_default_options, field_name)
        if options['maxiter'] == 0:
            # Wapiti specifies that 0 means max int size for this option.
            options['maxiter'] = 2147483647

        self.options = OptType(**options)

        # Load model from file if specified
        if self.options.model:
            self._model = _wapiti.api_load_model(
                self.options.model,
                ctypes.pointer(self.options)
            )
        else:
            if self.options.pattern:
                self.patterns = open(self.options.pattern).read()
            else:
                self.patterns = patterns

            self._model = _wapiti.api_new_model(
                ctypes.pointer(self.options),
                self.patterns
            )
Esempio n. 17
0
        def test_buffers(self):
            ctypes.set_conversion_mode("ascii", "strict")
            buf = ctypes.create_unicode_buffer("abc")
            assert len(buf) == 3 + 1

            ctypes.set_conversion_mode("ascii", "replace")
            buf = ctypes.create_unicode_buffer("abהצ�")
            assert buf[:] == u"ab\uFFFD\uFFFD\uFFFD\0"

            ctypes.set_conversion_mode("ascii", "ignore")
            buf = ctypes.create_unicode_buffer("abהצ�")
            # is that correct? not sure.  But with 'ignore', you get what you pay for..
            assert buf[:] == u"ab\0\0\0\0"
Esempio n. 18
0
        def test_buffers(self):
            ctypes.set_conversion_mode("ascii", "strict")
            buf = ctypes.create_unicode_buffer("abc")
            self.failUnlessEqual(len(buf), 3 + 1)

            ctypes.set_conversion_mode("ascii", "replace")
            buf = ctypes.create_unicode_buffer("abהצ�")
            self.failUnlessEqual(buf[:], u"ab\uFFFD\uFFFD\uFFFD\0")

            ctypes.set_conversion_mode("ascii", "ignore")
            buf = ctypes.create_unicode_buffer("abהצ�")
            # is that correct? not sure.  But with 'ignore', you get what you pay for..
            self.failUnlessEqual(buf[:], u"ab\0\0\0\0")
Esempio n. 19
0
        def test_buffers(self):
            ctypes.set_conversion_mode("ascii", "strict")
            buf = ctypes.create_string_buffer(u"abc")
            self.failUnlessEqual(len(buf), 3 + 1)

            ctypes.set_conversion_mode("ascii", "replace")
            buf = ctypes.create_string_buffer(u"abהצ�")
            self.failUnlessEqual(buf[:], "ab???\0")

            ctypes.set_conversion_mode("ascii", "ignore")
            buf = ctypes.create_string_buffer(u"abהצ�")
            # is that correct? not sure.  But with 'ignore', you get what you pay for..
            self.failUnlessEqual(buf[:], "ab\0\0\0\0")
Esempio n. 20
0
        def test_buffers(self):
            ctypes.set_conversion_mode("ascii", "strict")
            buf = ctypes.create_string_buffer(u"abc")
            assert len(buf) == 3+1

            ctypes.set_conversion_mode("ascii", "replace")
            buf = ctypes.create_string_buffer(u"abהצ�")
            assert buf[:] == "ab???\0"

            ctypes.set_conversion_mode("ascii", "ignore")
            buf = ctypes.create_string_buffer(u"abהצ�")
            # is that correct? not sure.  But with 'ignore', you get what you pay for..
            assert buf[:] == "ab\0\0\0\0"
Esempio n. 21
0
 def test_buffers(self):
     ctypes.set_conversion_mode("ascii", "strict")
     buf = ctypes.create_string_buffer(u"abc")
     self.assertEqual(len(buf), 4)
     ctypes.set_conversion_mode("ascii", "replace")
     buf = ctypes.create_string_buffer(u"ab\xe4\xf6\xfc")
     self.assertEqual(buf[:], "ab???\x00")
     self.assertEqual(buf[::], "ab???\x00")
     self.assertEqual(buf[::-1], "\x00???ba")
     self.assertEqual(buf[::2], "a??")
     self.assertEqual(buf[6:5:-1], "")
     ctypes.set_conversion_mode("ascii", "ignore")
     buf = ctypes.create_string_buffer(u"ab\xe4\xf6\xfc")
     self.assertEqual(buf[:], "ab\x00\x00\x00\x00")
     self.assertEqual(buf[::], "ab\x00\x00\x00\x00")
     self.assertEqual(buf[::-1], "\x00\x00\x00\x00ba")
     return
Esempio n. 22
0
 def test_buffers(self):
     ctypes.set_conversion_mode('ascii', 'strict')
     buf = ctypes.create_string_buffer(u'abc')
     self.assertEqual(len(buf), 4)
     ctypes.set_conversion_mode('ascii', 'replace')
     buf = ctypes.create_string_buffer(u'ab\xe4\xf6\xfc')
     self.assertEqual(buf[:], 'ab???\x00')
     self.assertEqual(buf[::], 'ab???\x00')
     self.assertEqual(buf[::-1], '\x00???ba')
     self.assertEqual(buf[::2], 'a??')
     self.assertEqual(buf[6:5:-1], '')
     ctypes.set_conversion_mode('ascii', 'ignore')
     buf = ctypes.create_string_buffer(u'ab\xe4\xf6\xfc')
     self.assertEqual(buf[:], 'ab\x00\x00\x00\x00')
     self.assertEqual(buf[::], 'ab\x00\x00\x00\x00')
     self.assertEqual(buf[::-1], '\x00\x00\x00\x00ba')
     return
Esempio n. 23
0
 def test_buffers(self):
     ctypes.set_conversion_mode('ascii', 'strict')
     buf = ctypes.create_string_buffer(u'abc')
     self.assertEqual(len(buf), 4)
     ctypes.set_conversion_mode('ascii', 'replace')
     buf = ctypes.create_string_buffer(u'ab\xe4\xf6\xfc')
     self.assertEqual(buf[:], 'ab???\x00')
     self.assertEqual(buf[::], 'ab???\x00')
     self.assertEqual(buf[::-1], '\x00???ba')
     self.assertEqual(buf[::2], 'a??')
     self.assertEqual(buf[6:5:-1], '')
     ctypes.set_conversion_mode('ascii', 'ignore')
     buf = ctypes.create_string_buffer(u'ab\xe4\xf6\xfc')
     self.assertEqual(buf[:], 'ab\x00\x00\x00\x00')
     self.assertEqual(buf[::], 'ab\x00\x00\x00\x00')
     self.assertEqual(buf[::-1], '\x00\x00\x00\x00ba')
     return
Esempio n. 24
0
 def test_buffers(self):
     ctypes.set_conversion_mode("ascii", "strict")
     buf = ctypes.create_unicode_buffer("abc")
     self.assertEqual(len(buf), 4)
     ctypes.set_conversion_mode("ascii", "replace")
     buf = ctypes.create_unicode_buffer("ab\xe4\xf6\xfc")
     self.assertEqual(buf[:], u"ab\ufffd\ufffd\ufffd\x00")
     self.assertEqual(buf[::], u"ab\ufffd\ufffd\ufffd\x00")
     self.assertEqual(buf[::-1], u"\x00\ufffd\ufffd\ufffdba")
     self.assertEqual(buf[::2], u"a\ufffd\ufffd")
     self.assertEqual(buf[6:5:-1], u"")
     ctypes.set_conversion_mode("ascii", "ignore")
     buf = ctypes.create_unicode_buffer("ab\xe4\xf6\xfc")
     self.assertEqual(buf[:], u"ab\x00\x00\x00\x00")
     self.assertEqual(buf[::], u"ab\x00\x00\x00\x00")
     self.assertEqual(buf[::-1], u"\x00\x00\x00\x00ba")
     self.assertEqual(buf[::2], u"a\x00\x00")
     self.assertEqual(buf[6:5:-1], u"")
     return
        def test_buffers(self):
            ctypes.set_conversion_mode("ascii", "strict")
            buf = ctypes.create_string_buffer(u"abc")
            self.assertEqual(len(buf), 3+1)

            ctypes.set_conversion_mode("ascii", "replace")
            buf = ctypes.create_string_buffer(u"abg")
            self.assertEqual(buf[:], "ab???\0")
            self.assertEqual(buf[::], "ab???\0")
            self.assertEqual(buf[::-1], "\0???ba")
            self.assertEqual(buf[::2], "a??")
            self.assertEqual(buf[6:5:-1], "")

            ctypes.set_conversion_mode("ascii", "ignore")
            buf = ctypes.create_string_buffer(u"abg")
            # is that correct? not sure.  But with 'ignore', you get what you pay for..
            self.assertEqual(buf[:], "ab\0\0\0\0")
            self.assertEqual(buf[::], "ab\0\0\0\0")
            self.assertEqual(buf[::-1], "\0\0\0\0ba")
Esempio n. 26
0
 def test_buffers(self):
     ctypes.set_conversion_mode('ascii', 'strict')
     buf = ctypes.create_unicode_buffer('abc')
     self.assertEqual(len(buf), 4)
     ctypes.set_conversion_mode('ascii', 'replace')
     buf = ctypes.create_unicode_buffer('ab\xe4\xf6\xfc')
     self.assertEqual(buf[:], u'ab\ufffd\ufffd\ufffd\x00')
     self.assertEqual(buf[::], u'ab\ufffd\ufffd\ufffd\x00')
     self.assertEqual(buf[::-1], u'\x00\ufffd\ufffd\ufffdba')
     self.assertEqual(buf[::2], u'a\ufffd\ufffd')
     self.assertEqual(buf[6:5:-1], u'')
     ctypes.set_conversion_mode('ascii', 'ignore')
     buf = ctypes.create_unicode_buffer('ab\xe4\xf6\xfc')
     self.assertEqual(buf[:], u'ab\x00\x00\x00\x00')
     self.assertEqual(buf[::], u'ab\x00\x00\x00\x00')
     self.assertEqual(buf[::-1], u'\x00\x00\x00\x00ba')
     self.assertEqual(buf[::2], u'a\x00\x00')
     self.assertEqual(buf[6:5:-1], u'')
     return
        def test_buffers(self):
            ctypes.set_conversion_mode("ascii", "strict")
            buf = ctypes.create_string_buffer("abc")
            self.failUnlessEqual(len(buf), 3+1)

            ctypes.set_conversion_mode("ascii", "replace")
            buf = ctypes.create_string_buffer("ab\xe4\xf6\xfc")
            self.failUnlessEqual(buf[:], b"ab???\0")
            self.failUnlessEqual(buf[::], b"ab???\0")
            self.failUnlessEqual(buf[::-1], b"\0???ba")
            self.failUnlessEqual(buf[::2], b"a??")
            self.failUnlessEqual(buf[6:5:-1], b"")

            ctypes.set_conversion_mode("ascii", "ignore")
            buf = ctypes.create_string_buffer("ab\xe4\xf6\xfc")
            # is that correct? not sure.  But with 'ignore', you get what you pay for..
            self.failUnlessEqual(buf[:], b"ab\0\0\0\0")
            self.failUnlessEqual(buf[::], b"ab\0\0\0\0")
            self.failUnlessEqual(buf[::-1], b"\0\0\0\0ba")
Esempio n. 28
0
 def test_buffers(self):
     ctypes.set_conversion_mode('ascii', 'strict')
     buf = ctypes.create_unicode_buffer('abc')
     self.assertEqual(len(buf), 4)
     ctypes.set_conversion_mode('ascii', 'replace')
     buf = ctypes.create_unicode_buffer('ab\xe4\xf6\xfc')
     self.assertEqual(buf[:], u'ab\ufffd\ufffd\ufffd\x00')
     self.assertEqual(buf[::], u'ab\ufffd\ufffd\ufffd\x00')
     self.assertEqual(buf[::-1], u'\x00\ufffd\ufffd\ufffdba')
     self.assertEqual(buf[::2], u'a\ufffd\ufffd')
     self.assertEqual(buf[6:5:-1], u'')
     ctypes.set_conversion_mode('ascii', 'ignore')
     buf = ctypes.create_unicode_buffer('ab\xe4\xf6\xfc')
     self.assertEqual(buf[:], u'ab\x00\x00\x00\x00')
     self.assertEqual(buf[::], u'ab\x00\x00\x00\x00')
     self.assertEqual(buf[::-1], u'\x00\x00\x00\x00ba')
     self.assertEqual(buf[::2], u'a\x00\x00')
     self.assertEqual(buf[6:5:-1], u'')
     return
Esempio n. 29
0
        def test_buffers(self):
            ctypes.set_conversion_mode("ascii", "strict")
            buf = ctypes.create_unicode_buffer("abc")
            self.failUnlessEqual(len(buf), 3 + 1)

            ctypes.set_conversion_mode("ascii", "replace")
            buf = ctypes.create_unicode_buffer(b"ab\xe4\xf6\xfc")
            self.failUnlessEqual(buf[:], "ab\uFFFD\uFFFD\uFFFD\0")
            self.failUnlessEqual(buf[::], "ab\uFFFD\uFFFD\uFFFD\0")
            self.failUnlessEqual(buf[::-1], "\0\uFFFD\uFFFD\uFFFDba")
            self.failUnlessEqual(buf[::2], "a\uFFFD\uFFFD")
            self.failUnlessEqual(buf[6:5:-1], "")

            ctypes.set_conversion_mode("ascii", "ignore")
            buf = ctypes.create_unicode_buffer(b"ab\xe4\xf6\xfc")
            # is that correct? not sure.  But with 'ignore', you get what you pay for..
            self.failUnlessEqual(buf[:], "ab\0\0\0\0")
            self.failUnlessEqual(buf[::], "ab\0\0\0\0")
            self.failUnlessEqual(buf[::-1], "\0\0\0\0ba")
            self.failUnlessEqual(buf[::2], "a\0\0")
            self.failUnlessEqual(buf[6:5:-1], "")
Esempio n. 30
0
        def test_buffers(self):
            ctypes.set_conversion_mode("ascii", "strict")
            buf = ctypes.create_unicode_buffer("abc")
            self.assertEqual(len(buf), 3+1)

            ctypes.set_conversion_mode("ascii", "replace")
            buf = ctypes.create_unicode_buffer("abg")
            self.assertEqual(buf[:], u"ab\uFFFD\uFFFD\uFFFD\0")
            self.assertEqual(buf[::], u"ab\uFFFD\uFFFD\uFFFD\0")
            self.assertEqual(buf[::-1], u"\0\uFFFD\uFFFD\uFFFDba")
            self.assertEqual(buf[::2], u"a\uFFFD\uFFFD")
            self.assertEqual(buf[6:5:-1], u"")

            ctypes.set_conversion_mode("ascii", "ignore")
            buf = ctypes.create_unicode_buffer("abg")
            # is that correct? not sure.  But with 'ignore', you get what you pay for..
            self.assertEqual(buf[:], u"ab\0\0\0\0")
            self.assertEqual(buf[::], u"ab\0\0\0\0")
            self.assertEqual(buf[::-1], u"\0\0\0\0ba")
            self.assertEqual(buf[::2], u"a\0\0")
            self.assertEqual(buf[6:5:-1], u"")
Esempio n. 31
0
 def test_ascii_replace(self):
     ctypes.set_conversion_mode('ascii', 'replace')
     self.assertEqual(func('abc'), 'abc')
     self.assertEqual(func(u'abc'), 'abc')
     self.assertEqual(func(u'\xe4\xf6\xfc\xdf'), '????')
Esempio n. 32
0
 def test_ascii_replace(self):
     ctypes.set_conversion_mode('ascii', 'strict')
     self.assertEqual(func('abc'), 'abc')
     self.assertEqual(func(u'abc'), 'abc')
     self.assertRaises(ctypes.ArgumentError, func, u'ab\xe4')
Esempio n. 33
0
 def test_ascii_ignore(self):
     ctypes.set_conversion_mode('ascii', 'ignore')
     self.assertEqual(func('abc'), 'abc')
     self.assertEqual(func(u'abc'), 'abc')
     self.assertEqual(func(u'\xe4\xf6\xfc\xdf'), '')
Esempio n. 34
0
 def test_latin1_strict(self):
     ctypes.set_conversion_mode("latin-1", "strict")
     self.failUnlessEqual(wcslen(u"abc"), 3)
     self.failUnlessEqual(wcslen(u"ab\u2070"), 3)
     self.failUnlessEqual(wcslen("abc"), 3)
     self.failUnlessEqual(wcslen("הצ��"), 4)
 def test_ascii_replace(self):
     ctypes.set_conversion_mode("ascii", "strict")
     self.failUnlessEqual(func("abc"), "abc")
     self.failUnlessEqual(func("abc"), "abc")
     self.assertRaises(ctypes.ArgumentError, func, "ab\xe4")
Esempio n. 36
0
 def tearDown(self):
     ctypes.set_conversion_mode(*self.prev_conv_mode)
Esempio n. 37
0
 def test_ascii_replace(self):
     ctypes.set_conversion_mode("ascii", "replace")
     self.failUnlessEqual(wcslen(u"abc"), 3)
     self.failUnlessEqual(wcslen(u"ab\u2070"), 3)
     self.failUnlessEqual(wcslen("abc"), 3)
     self.failUnlessEqual(wcslen("abה"), 3)
Esempio n. 38
0
 def test_ascii_replace_2(self):
     ctypes.set_conversion_mode("ascii", "replace")
     assert func("abc") == "abc"
     assert func(u"abc") == "abc"
     assert func(u"הצ��") == "????"
 def test_ascii_replace(self):
     ctypes.set_conversion_mode("ascii", "replace")
     self.failUnlessEqual(wcslen("abc"), 3)
     self.failUnlessEqual(wcslen("ab\u2070"), 3)
     self.failUnlessEqual(wcslen("abc"), 3)
     self.failUnlessEqual(wcslen("ab\xe4"), 3)
Esempio n. 40
0
 def setUp(self):
     self.prev_conv_mode = ctypes.set_conversion_mode("ascii", "strict")
     func.argtypes = [ctypes.c_char_p]
     func.restype = ctypes.c_char_p
Esempio n. 41
0
 def test_ascii_ignore(self):
     ctypes.set_conversion_mode("ascii", "ignore")
     self.assertEqual(func("abc"), "abc")
     self.assertEqual(func(u"abc"), "abc")
     self.assertEqual(func(u"g"), "")
Esempio n. 42
0
 def test_ascii_replace(self):
     ctypes.set_conversion_mode("ascii", "strict")
     self.failUnlessEqual(func("abc"), "abc")
     self.failUnlessEqual(func(u"abc"), "abc")
     self.assertRaises(ctypes.ArgumentError, func, u"abה")
Esempio n. 43
0
        WINFUNCTYPE.__doc__ = ctypes.CFUNCTYPE.__doc__.replace(
            "CFUNCTYPE", "WINFUNCTYPE")
    ctypes.WINFUNCTYPE = WINFUNCTYPE

    # Fix _reset_cache.
    _original_reset_cache = ctypes._reset_cache

    def _reset_cache():
        ctypes._win_functype_cache.clear()
        _original_reset_cache()

    ctypes._reset_cache = _reset_cache

    # Fix the string conversion mode.
    if hasattr(ctypes, "set_conversion_mode"):
        ctypes.set_conversion_mode("mbcs", "ignore")

    # Fix WinDLL.
    class WinDLL(ctypes.CDLL):
        """This class represents a dll exporting functions using the
        Windows stdcall calling convention.
        """
        _func_flags_ = _FUNCFLAG_STDCALL

    ctypes.WinDLL = WinDLL

    # Fix HRESULT.
    from _ctypes import _SimpleCData

    class HRESULT(_SimpleCData):
        _type_ = "l"
 def test_ascii_ignore(self):
     ctypes.set_conversion_mode("ascii", "ignore")
     self.failUnlessEqual(func("abc"), "abc")
     self.failUnlessEqual(func("abc"), "abc")
     self.failUnlessEqual(func("\xe4\xf6\xfc\xdf"), "")
Esempio n. 45
0
import ctypes
import datetime
import itertools
import os

from pyaloha.protocol import SerializableDatetime

ctypes.set_conversion_mode('utf8', 'strict')


def c_unicode(c_data):
    return unicode(ctypes.string_at(c_data), 'utf8')


def c_string(c_data):
    return c_data


class CEVENTTIME(ctypes.Structure):
    _fields_ = [('client_creation', ctypes.c_uint64),
                ('server_upload', ctypes.c_uint64)]

    __slots__ = ('client_creation', 'server_upload', 'dtime', 'is_accurate')

    delta_past = datetime.timedelta(days=6 * 30)
    delta_future = datetime.timedelta(days=1)

    def _setup_time(self):
        client_dtime = SerializableDatetime.utcfromtimestamp(
            self.client_creation / 1000.  # timestamp is in millisecs
        )
 def tearDown(self):
     ctypes.set_conversion_mode(*self.prev_conv_mode)
Esempio n. 47
0
 def setUp(self):
     self.prev_conv_mode = ctypes.set_conversion_mode("ascii", "strict")
Esempio n. 48
0
 def test_ascii_ignore(self):
     ctypes.set_conversion_mode('ascii', 'ignore')
     self.assertEqual(wcslen(u'abc'), 3)
     self.assertEqual(wcslen(u'ab\u2070'), 3)
     self.assertEqual(wcslen('abc'), 3)
     self.assertEqual(wcslen('\xe4\xf6\xfc\xdf'), 0)
 def test_ascii_replace(self):
     ctypes.set_conversion_mode("ascii", "replace")
     self.failUnlessEqual(func("abc"), "abc")
     self.failUnlessEqual(func("abc"), "abc")
     self.failUnlessEqual(func("\xe4\xf6\xfc\xdf"), "????")
Esempio n. 50
0
 def test_latin1_strict(self):
     ctypes.set_conversion_mode('latin-1', 'strict')
     self.assertEqual(wcslen(u'abc'), 3)
     self.assertEqual(wcslen(u'ab\u2070'), 3)
     self.assertEqual(wcslen('abc'), 3)
     self.assertEqual(wcslen('\xe4\xf6\xfc\xdf'), 4)
Esempio n. 51
0
import ctypes
import datetime
import itertools
import os
import sys

from pyaloha.protocol import SerializableDatetime

try:
    from ctypes import set_conversion_mode
except ImportError:
    pass
else:
    set_conversion_mode('utf8', 'strict')


def c_unicode(c_data):
    return unicode(ctypes.string_at(c_data), 'utf8')


def c_string(c_data):
    return c_data


class CEVENTTIME(ctypes.Structure):
    _fields_ = [('client_creation', ctypes.c_uint64),
                ('server_upload', ctypes.c_uint64)]

    __slots__ = ('client_creation', 'server_upload', 'dtime', 'is_accurate')

    delta_past = datetime.timedelta(days=6 * 30)
 def setUp(self):
     self.prev_conv_mode = ctypes.set_conversion_mode("ascii", "strict")
Esempio n. 53
0
 def test_ascii_replace(self):
     ctypes.set_conversion_mode("ascii", "replace")
     self.assertEqual(func("abc"), "abc")
     self.assertEqual(func(u"abc"), "abc")
     self.assertEqual(func(u"g"), "????")
Esempio n. 54
0
 def test_ascii_replace(self):
     ctypes.set_conversion_mode("ascii", "replace")
     self.failUnlessEqual(func("abc"), "abc")
     self.failUnlessEqual(func(u"abc"), "abc")
     self.failUnlessEqual(func(u"הצ��"), "????")
Esempio n. 55
0
 def tearDown(self):
     ctypes.set_conversion_mode(*self.prev_conv_mode)
     func.argtypes = None
     func.restype = ctypes.c_int
 def test_latin1_strict(self):
     ctypes.set_conversion_mode("latin-1", "strict")
     self.failUnlessEqual(wcslen("abc"), 3)
     self.failUnlessEqual(wcslen("ab\u2070"), 3)
     self.failUnlessEqual(wcslen("abc"), 3)
     self.failUnlessEqual(wcslen("\xe4\xf6\xfc\xdf"), 4)
Esempio n. 57
0
 def test_ascii_ignore(self):
     ctypes.set_conversion_mode("ascii", "ignore")
     self.failUnlessEqual(func("abc"), "abc")
     self.failUnlessEqual(func(u"abc"), "abc")
     self.failUnlessEqual(func(u"הצ��"), "")
 def setUp(self):
     self.prev_conv_mode = ctypes.set_conversion_mode("ascii", "strict")
     func.argtypes = [ctypes.c_char_p]
     func.restype = ctypes.c_char_p
Esempio n. 59
0
            return WinFunctionType
    if WINFUNCTYPE.__doc__:
        WINFUNCTYPE.__doc__ = ctypes.CFUNCTYPE.__doc__.replace(
            "CFUNCTYPE", "WINFUNCTYPE")
    ctypes.WINFUNCTYPE = WINFUNCTYPE

    # Fix _reset_cache.
    _original_reset_cache = ctypes._reset_cache
    def _reset_cache():
        ctypes._win_functype_cache.clear()
        _original_reset_cache()
    ctypes._reset_cache = _reset_cache

    # Fix the string conversion mode.
    if hasattr(ctypes, "set_conversion_mode"):
        ctypes.set_conversion_mode("mbcs", "ignore")

    # Fix WinDLL.
    class WinDLL(ctypes.CDLL):
        """This class represents a dll exporting functions using the
        Windows stdcall calling convention.
        """
        _func_flags_ = _FUNCFLAG_STDCALL
    ctypes.WinDLL = WinDLL

    # Fix HRESULT.
    from _ctypes import _SimpleCData
    class HRESULT(_SimpleCData):
        _type_ = "l"
        ##_check_retval_ = _check_HRESULT
    ctypes.HRESULT = HRESULT
 def tearDown(self):
     ctypes.set_conversion_mode(*self.prev_conv_mode)
     func.argtypes = None
     func.restype = ctypes.c_int