From 268e912273dcb7bacc5a7102d5a3f90a868f035f Mon Sep 17 00:00:00 2001 From: Paul Tremberth Date: Mon, 1 Feb 2016 12:43:27 +0100 Subject: [PATCH] Add pretty-printting of settings as dict if using IPython shell Suggested by @digenis see http://ipython.readthedocs.org/en/stable/api/generated/IPython.lib.pretty.html?#extending --- scrapy/settings/__init__.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/scrapy/settings/__init__.py b/scrapy/settings/__init__.py index 918bfc1e5..7b7808959 100644 --- a/scrapy/settings/__init__.py +++ b/scrapy/settings/__init__.py @@ -4,6 +4,7 @@ import copy import warnings from collections import MutableMapping from importlib import import_module +from pprint import pformat from scrapy.utils.deprecate import create_deprecated_class from scrapy.exceptions import ScrapyDeprecationWarning @@ -388,6 +389,12 @@ class BaseSettings(MutableMapping): settings = self.copy() return settings._to_dict() + def _repr_pretty_(self, p, cycle): + if cycle: + p.text(repr(self)) + else: + p.text(pformat(self.copy_to_dict())) + @property def overrides(self): warnings.warn("`Settings.overrides` attribute is deprecated and won't "