Commit f03bb32c authored by Stefan Behnel's avatar Stefan Behnel

turn cythonize() error on unknown compilation options into a warning

parent c23f143a
...@@ -40,6 +40,13 @@ Bugs fixed ...@@ -40,6 +40,13 @@ Bugs fixed
* Allow arrays of C++ classes. * Allow arrays of C++ classes.
Other changes
-------------
* Compilation no longer fails hard when unknown compilation options are passed.
Instead, it raises a warning and ignores them (as it did silently before 0.21).
0.21 (2014-09-10) 0.21 (2014-09-10)
================= =================
......
...@@ -498,11 +498,14 @@ class CompilationOptions(object): ...@@ -498,11 +498,14 @@ class CompilationOptions(object):
# ignore valid options that are not in the defaults # ignore valid options that are not in the defaults
unknown_options.difference_update(['include_path']) unknown_options.difference_update(['include_path'])
if unknown_options: if unknown_options:
raise ValueError("got unexpected compilation option%s: %s" % ( # TODO: make this a hard error in 0.22
message = "got unknown compilation option%s, please remove: %s" % (
's' if len(unknown_options) > 1 else '', 's' if len(unknown_options) > 1 else '',
', '.join(unknown_options))) ', '.join(unknown_options))
import warnings
warnings.warn(message)
directives = dict(options['compiler_directives']) # copy mutable field directives = dict(options['compiler_directives']) # copy mutable field
options['compiler_directives'] = directives options['compiler_directives'] = directives
if 'language_level' in directives and 'language_level' not in kw: if 'language_level' in directives and 'language_level' not in kw:
options['language_level'] = int(directives['language_level']) options['language_level'] = int(directives['language_level'])
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment