| OLD | NEW |
| 1 # This file is part of Adblock Plus <https://adblockplus.org/>, | 1 # This file is part of Adblock Plus <https://adblockplus.org/>, |
| 2 # Copyright (C) 2006-present eyeo GmbH | 2 # Copyright (C) 2006-present eyeo GmbH |
| 3 # | 3 # |
| 4 # Adblock Plus is free software: you can redistribute it and/or modify | 4 # Adblock Plus is free software: you can redistribute it and/or modify |
| 5 # it under the terms of the GNU General Public License version 3 as | 5 # it under the terms of the GNU General Public License version 3 as |
| 6 # published by the Free Software Foundation. | 6 # published by the Free Software Foundation. |
| 7 # | 7 # |
| 8 # Adblock Plus is distributed in the hope that it will be useful, | 8 # Adblock Plus is distributed in the hope that it will be useful, |
| 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 59 dict | 59 dict |
| 60 With all strings encoded as unicode. | 60 With all strings encoded as unicode. |
| 61 | 61 |
| 62 """ | 62 """ |
| 63 if isinstance(data, dict): | 63 if isinstance(data, dict): |
| 64 return {strings2utf8(k): strings2utf8(v) for k, v in data.items()} | 64 return {strings2utf8(k): strings2utf8(v) for k, v in data.items()} |
| 65 if isinstance(data, list): | 65 if isinstance(data, list): |
| 66 return [strings2utf8(v) for v in data] | 66 return [strings2utf8(v) for v in data] |
| 67 if isinstance(data, tuple): | 67 if isinstance(data, tuple): |
| 68 return tuple(strings2utf8(v) for v in data) | 68 return tuple(strings2utf8(v) for v in data) |
| 69 if isinstance(data, type('')): # Python 2/3 compatible way of | 69 if isinstance(data, type('')): |
| 70 # saying "unicode string". | 70 # The condition is a Python 2/3 way of saying "unicode string". |
| 71 return data.encode('utf-8') | 71 return data.encode('utf-8') |
| 72 return data | 72 return data |
| 73 | 73 |
| 74 | 74 |
| 75 def line2dict(text, mode='body'): | 75 def line2dict(text, mode='body'): |
| 76 """Convert a filterlist line to a dictionary. | 76 """Convert a filterlist line to a dictionary. |
| 77 | 77 |
| 78 All strings in the output dictionary will be UTF8 byte strings. This is | 78 All strings in the output dictionary will be UTF8 byte strings. This is |
| 79 necessary to prevent unicode encoding errors in rPython conversion layer. | 79 necessary to prevent unicode encoding errors in rPython conversion layer. |
| 80 | 80 |
| 81 Parameters | 81 Parameters |
| 82 ---------- | 82 ---------- |
| 83 text: str | 83 text: str |
| 84 The filter text we want to parse | 84 The filter text we want to parse |
| 85 mode: str | 85 mode: str |
| 86 Parsing mode (see `abp.filters.parser.parse_line`). | 86 Parsing mode (see `abp.filters.parser.parse_line`). |
| 87 | 87 |
| 88 Returns | 88 Returns |
| 89 ------- | 89 ------- |
| 90 dict | 90 dict |
| 91 With the parsing results and all strings converted to utf8 byte | 91 With the parsing results and all strings converted to utf8 byte |
| 92 strings. | 92 strings. |
| 93 | 93 |
| 94 """ | 94 """ |
| 95 return strings2utf8(tuple2dict(parse_line(text, mode))) | 95 return strings2utf8(tuple2dict(parse_line(text, mode))) |
| OLD | NEW |