1414#
1515# Author: [email protected] (Otto van der Schaaf) 1616
17+ from collections import OrderedDict
1718import sys
1819import traceback
20+ import warnings
1921
2022class Error (Exception ):
2123 pass
@@ -32,6 +34,28 @@ def exec_template_call(func, lineno, item, level):
3234 pyconf_fatal (lineno , e )
3335 raise
3436
37+ def check_pagespeed_supported (directives ):
38+ global global_pagespeed_unsupported
39+ pagespeed_unsupported = None
40+
41+ try :
42+ pagespeed_unsupported = global_pagespeed_unsupported
43+ except NameError :
44+ pagespeed_unsupported = None
45+
46+ if not pagespeed_unsupported :
47+ return directives
48+
49+ supported_directives = OrderedDict ()
50+
51+ for directive in directives :
52+ if directive .lower () in map (str .lower , pagespeed_unsupported ):
53+ warnings .warn ("%s not supported, skipping" % directive )
54+ else :
55+ supported_directives [directive ] = directives [directive ]
56+
57+ return supported_directives
58+
3559def write_cfg (key_to_writer , config , key_to_node , level = 0 , parent_key = "" ):
3660 global global_writer
3761
@@ -49,6 +73,9 @@ def write_cfg(key_to_writer, config, key_to_node, level=0, parent_key = ""):
4973 if w != write_void :
5074 next_level = next_level + 1
5175
76+ if key .lower () == "pagespeed" :
77+ config [key ] = check_pagespeed_supported (config [key ])
78+
5279 handled = exec_template_call (w , lineno , config [key ], level )
5380
5481 if not handled :
@@ -97,3 +124,7 @@ def write_void(ps, level):
97124def set_writer (writer ):
98125 global global_writer
99126 global_writer = writer
127+
128+ def set_pagespeed_unsupported (pagespeed_unsupported ):
129+ global global_pagespeed_unsupported
130+ global_pagespeed_unsupported = pagespeed_unsupported
0 commit comments