[pypy-commit] cffi default: Follow-up on b87441f6f36c
arigo
pypy.commits at gmail.com
Fri Jan 20 03:41:20 EST 2017
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r2864:35e9e354b292
Date: 2017-01-20 09:41 +0100
http://bitbucket.org/cffi/cffi/changeset/35e9e354b292/
Log: Follow-up on b87441f6f36c
diff --git a/cffi/recompiler.py b/cffi/recompiler.py
--- a/cffi/recompiler.py
+++ b/cffi/recompiler.py
@@ -1,5 +1,6 @@
import os, sys, io
from . import ffiplatform, model
+from .error import VerificationError
from .cffi_opcode import *
VERSION = "0x2601"
@@ -211,7 +212,7 @@
method = getattr(self, '_generate_cpy_%s_%s' % (kind,
step_name))
except AttributeError:
- raise ffiplatform.VerificationError(
+ raise VerificationError(
"not implemented in recompile(): %r" % name)
try:
self._current_quals = quals
@@ -354,12 +355,12 @@
included_module_name, included_source = (
ffi_to_include._assigned_source[:2])
except AttributeError:
- raise ffiplatform.VerificationError(
+ raise VerificationError(
"ffi object %r includes %r, but the latter has not "
"been prepared with set_source()" % (
self.ffi, ffi_to_include,))
if included_source is None:
- raise ffiplatform.VerificationError(
+ raise VerificationError(
"not implemented yet: ffi.include() of a Python-based "
"ffi inside a C-based ffi")
prnt(' "%s",' % (included_module_name,))
@@ -464,12 +465,12 @@
included_module_name, included_source = (
ffi_to_include._assigned_source[:2])
except AttributeError:
- raise ffiplatform.VerificationError(
+ raise VerificationError(
"ffi object %r includes %r, but the latter has not "
"been prepared with set_source()" % (
self.ffi, ffi_to_include,))
if included_source is not None:
- raise ffiplatform.VerificationError(
+ raise VerificationError(
"not implemented yet: ffi.include() of a C-based "
"ffi inside a Python-based ffi")
prnt('from %s import ffi as _ffi%d' % (included_module_name, i))
@@ -839,7 +840,7 @@
prnt(' { %s = &p->%s; (void)tmp; }' % (
ftype.get_c_name('*tmp', 'field %r'%fname, quals=fqual),
fname))
- except ffiplatform.VerificationError as e:
+ except VerificationError as e:
prnt(' /* %s */' % str(e)) # cannot verify it, ignore
prnt('}')
prnt('struct _cffi_align_%s { char x; %s y; };' % (approxname, cname))
@@ -1002,7 +1003,7 @@
def _generate_cpy_const(self, is_int, name, tp=None, category='const',
check_value=None):
if (category, name) in self._seen_constants:
- raise ffiplatform.VerificationError(
+ raise VerificationError(
"duplicate declaration of %s '%s'" % (category, name))
self._seen_constants.add((category, name))
#
@@ -1101,7 +1102,7 @@
def _generate_cpy_macro_ctx(self, tp, name):
if tp == '...':
if self.target_is_python:
- raise ffiplatform.VerificationError(
+ raise VerificationError(
"cannot use the syntax '...' in '#define %s ...' when "
"using the ABI mode" % (name,))
check_value = None
@@ -1234,7 +1235,7 @@
def _generate_cpy_extern_python_ctx(self, tp, name):
if self.target_is_python:
- raise ffiplatform.VerificationError(
+ raise VerificationError(
"cannot use 'extern \"Python\"' in the ABI mode")
if tp.ellipsis:
raise NotImplementedError("a vararg function is extern \"Python\"")
@@ -1315,7 +1316,7 @@
if tp.length is None:
self.cffi_types[index] = CffiOp(OP_OPEN_ARRAY, item_index)
elif tp.length == '...':
- raise ffiplatform.VerificationError(
+ raise VerificationError(
"type %s badly placed: the '...' array length can only be "
"used on global arrays or on fields of structures" % (
str(tp).replace('/*...*/', '...'),))
diff --git a/cffi/vengine_cpy.py b/cffi/vengine_cpy.py
--- a/cffi/vengine_cpy.py
+++ b/cffi/vengine_cpy.py
@@ -2,7 +2,8 @@
# DEPRECATED: implementation for ffi.verify()
#
import sys, imp
-from . import model, ffiplatform
+from . import model
+from .error import VerificationError
class VCPythonEngine(object):
@@ -155,7 +156,7 @@
self.verifier.modulefilename)
except ImportError as e:
error = "importing %r: %s" % (self.verifier.modulefilename, e)
- raise ffiplatform.VerificationError(error)
+ raise VerificationError(error)
finally:
if hasattr(sys, "setdlopenflags"):
sys.setdlopenflags(previous_flags)
@@ -185,7 +186,7 @@
def __dir__(self):
return FFILibrary._cffi_dir + list(self.__dict__)
library = FFILibrary()
- if module._cffi_setup(lst, ffiplatform.VerificationError, library):
+ if module._cffi_setup(lst, VerificationError, library):
import warnings
warnings.warn("reimporting %r might overwrite older definitions"
% (self.verifier.get_module_name()))
@@ -212,7 +213,7 @@
method = getattr(self, '_generate_cpy_%s_%s' % (kind,
step_name))
except AttributeError:
- raise ffiplatform.VerificationError(
+ raise VerificationError(
"not implemented in verify(): %r" % name)
try:
method(tp, realname)
@@ -485,7 +486,7 @@
prnt(' { %s = &p->%s; (void)tmp; }' % (
ftype.get_c_name('*tmp', 'field %r'%fname, quals=fqual),
fname))
- except ffiplatform.VerificationError as e:
+ except VerificationError as e:
prnt(' /* %s */' % str(e)) # cannot verify it, ignore
prnt('}')
prnt('static PyObject *')
@@ -550,7 +551,7 @@
# check that the layout sizes and offsets match the real ones
def check(realvalue, expectedvalue, msg):
if realvalue != expectedvalue:
- raise ffiplatform.VerificationError(
+ raise VerificationError(
"%s (we have %d, but C compiler says %d)"
% (msg, expectedvalue, realvalue))
ffi = self.ffi
@@ -771,7 +772,7 @@
BItemType = self.ffi._get_cached_btype(tp.item)
length, rest = divmod(size, self.ffi.sizeof(BItemType))
if rest != 0:
- raise ffiplatform.VerificationError(
+ raise VerificationError(
"bad size: %r does not seem to be an array of %s" %
(name, tp.item))
tp = tp.resolve_length(length)
diff --git a/cffi/vengine_gen.py b/cffi/vengine_gen.py
--- a/cffi/vengine_gen.py
+++ b/cffi/vengine_gen.py
@@ -4,7 +4,8 @@
import sys, os
import types
-from . import model, ffiplatform
+from . import model
+from .error import VerificationError
class VGenericEngine(object):
@@ -102,7 +103,7 @@
method = getattr(self, '_generate_gen_%s_%s' % (kind,
step_name))
except AttributeError:
- raise ffiplatform.VerificationError(
+ raise VerificationError(
"not implemented in verify(): %r" % name)
try:
method(tp, realname)
@@ -281,7 +282,7 @@
prnt(' { %s = &p->%s; (void)tmp; }' % (
ftype.get_c_name('*tmp', 'field %r'%fname, quals=fqual),
fname))
- except ffiplatform.VerificationError as e:
+ except VerificationError as e:
prnt(' /* %s */' % str(e)) # cannot verify it, ignore
prnt('}')
self.export_symbols.append(layoutfuncname)
@@ -344,7 +345,7 @@
# check that the layout sizes and offsets match the real ones
def check(realvalue, expectedvalue, msg):
if realvalue != expectedvalue:
- raise ffiplatform.VerificationError(
+ raise VerificationError(
"%s (we have %d, but C compiler says %d)"
% (msg, expectedvalue, realvalue))
ffi = self.ffi
@@ -498,7 +499,7 @@
error = self.ffi.string(p)
if sys.version_info >= (3,):
error = str(error, 'utf-8')
- raise ffiplatform.VerificationError(error)
+ raise VerificationError(error)
def _enum_funcname(self, prefix, name):
# "$enum_$1" => "___D_enum____D_1"
@@ -591,7 +592,7 @@
BItemType = self.ffi._get_cached_btype(tp.item)
length, rest = divmod(size, self.ffi.sizeof(BItemType))
if rest != 0:
- raise ffiplatform.VerificationError(
+ raise VerificationError(
"bad size: %r does not seem to be an array of %s" %
(name, tp.item))
tp = tp.resolve_length(length)
diff --git a/cffi/verifier.py b/cffi/verifier.py
--- a/cffi/verifier.py
+++ b/cffi/verifier.py
@@ -4,6 +4,7 @@
import sys, os, binascii, shutil, io
from . import __version_verifier_modules__
from . import ffiplatform
+from .error import VerificationError
if sys.version_info >= (3, 3):
import importlib.machinery
@@ -42,7 +43,7 @@
ext_package=None, tag='', force_generic_engine=False,
source_extension='.c', flags=None, relative_to=None, **kwds):
if ffi._parser._uses_new_feature:
- raise ffiplatform.VerificationError(
+ raise VerificationError(
"feature not supported with ffi.verify(), but only "
"with ffi.set_source(): %s" % (ffi._parser._uses_new_feature,))
self.ffi = ffi
@@ -83,7 +84,7 @@
which can be tweaked beforehand."""
with self.ffi._lock:
if self._has_source and file is None:
- raise ffiplatform.VerificationError(
+ raise VerificationError(
"source code already written")
self._write_source(file)
@@ -92,7 +93,7 @@
This produces a dynamic link library in 'self.modulefilename'."""
with self.ffi._lock:
if self._has_module:
- raise ffiplatform.VerificationError("module already compiled")
+ raise VerificationError("module already compiled")
if not self._has_source:
self._write_source()
self._compile_module()
More information about the pypy-commit
mailing list