Show More
@@ -147,7 +147,7 b' class DisplayFormatter(Configurable):' | |||||
147 | # object handled itself, don't proceed |
|
147 | # object handled itself, don't proceed | |
148 | return {}, {} |
|
148 | return {}, {} | |
149 |
|
149 | |||
150 | format_dict, md_dict = self.mimebundle_formatter(obj) |
|
150 | format_dict, md_dict = self.mimebundle_formatter(obj, include=include, exclude=exclude) | |
151 |
|
151 | |||
152 | if format_dict or md_dict: |
|
152 | if format_dict or md_dict: | |
153 | if include: |
|
153 | if include: | |
@@ -937,6 +937,35 b' class MimeBundleFormatter(BaseFormatter):' | |||||
937 | return r, {} |
|
937 | return r, {} | |
938 | return r |
|
938 | return r | |
939 |
|
939 | |||
|
940 | @catch_format_error | |||
|
941 | def __call__(self, obj, include=None, exclude=None): | |||
|
942 | """Compute the format for an object. | |||
|
943 | ||||
|
944 | Identical to parent's method but we pass extra parameters to the method. | |||
|
945 | ||||
|
946 | Unlike other _repr_*_ `_repr_mimebundle_` should allow extra kwargs, in | |||
|
947 | particular `include` and `exclude`. | |||
|
948 | """ | |||
|
949 | if self.enabled: | |||
|
950 | # lookup registered printer | |||
|
951 | try: | |||
|
952 | printer = self.lookup(obj) | |||
|
953 | except KeyError: | |||
|
954 | pass | |||
|
955 | else: | |||
|
956 | return printer(obj) | |||
|
957 | # Finally look for special method names | |||
|
958 | method = get_real_method(obj, self.print_method) | |||
|
959 | ||||
|
960 | if method is not None: | |||
|
961 | d = {} | |||
|
962 | d['include'] = include | |||
|
963 | d['exclude'] = include | |||
|
964 | return method(**d) | |||
|
965 | return None | |||
|
966 | else: | |||
|
967 | return None | |||
|
968 | ||||
940 |
|
969 | |||
941 | FormatterABC.register(BaseFormatter) |
|
970 | FormatterABC.register(BaseFormatter) | |
942 | FormatterABC.register(PlainTextFormatter) |
|
971 | FormatterABC.register(PlainTextFormatter) |
@@ -440,7 +440,7 b' def test_json_as_string_deprecated():' | |||||
440 |
|
440 | |||
441 | def test_repr_mime(): |
|
441 | def test_repr_mime(): | |
442 | class HasReprMime(object): |
|
442 | class HasReprMime(object): | |
443 | def _repr_mimebundle_(self): |
|
443 | def _repr_mimebundle_(self, include=None, exclude=None): | |
444 | return { |
|
444 | return { | |
445 | 'application/json+test.v2': { |
|
445 | 'application/json+test.v2': { | |
446 | 'x': 'y' |
|
446 | 'x': 'y' | |
@@ -477,7 +477,7 b' def test_repr_mime():' | |||||
477 |
|
477 | |||
478 | def test_repr_mime_meta(): |
|
478 | def test_repr_mime_meta(): | |
479 | class HasReprMimeMeta(object): |
|
479 | class HasReprMimeMeta(object): | |
480 | def _repr_mimebundle_(self): |
|
480 | def _repr_mimebundle_(self, include=None, exclude=None): | |
481 | data = { |
|
481 | data = { | |
482 | 'image/png': 'base64-image-data', |
|
482 | 'image/png': 'base64-image-data', | |
483 | } |
|
483 | } |
General Comments 0
You need to be logged in to leave comments.
Login now