Index: abp/filters/__init__.py |
=================================================================== |
--- a/abp/filters/__init__.py |
+++ b/abp/filters/__init__.py |
@@ -8,12 +8,121 @@ |
# Adblock Plus is distributed in the hope that it will be useful, |
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
# GNU General Public License for more details. |
# |
# You should have received a copy of the GNU General Public License |
# along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
-# flake8: noqa |
-from .parser import * |
-from .renderer import * |
-from .sources import * |
+"""Tools for working with Adblock Plus filter lists. |
+ |
+This is a library for parsing and rendering filter lists that are used by |
+adblocking software to determine what content to block and what to let through. |
+ |
+Example |
+------- |
+ |
+ from abp.filters import parse_filterlist |
+ |
+ with open(fl_path, 'rt') as fl_file: |
+ for line in parse_filterlist(fl_file): |
+ if line.type == 'filter': |
+ print('Filter:' + line.text) |
+ print('| Selector: {0[type]}:{0[value]}'.format(line.selector)) |
+ print('| Action: ' + line.action) |
+ for key, value in line.options: |
+ print('| Option[{}]: {}'.format(key, value)) |
+ |
+Exported members |
+---------------- |
+ |
+Functions: |
+ |
+ - parse_filterlist - Parse a filter list from an iterable of strings. |
+ - parse_line - Parse one line of a filter list. |
+ - render_filterlist - Combine filter list fragments into a filter list. |
+ |
+Filter list fragment sources for filter list rendering: |
+ |
+ - WebSource - loads fragments from the web. |
+ - FSSource - loads fragments from a directory on the filesystem. |
+ - TopSource - a specialized FSSource that represents current directory and |
+ should be used as the starting source of render_filterlist. |
+ |
+Exceptions that thrown by the functions in this module: |
+ |
+ - ParseError - thrown by the parser when invalid input is encountered. |
+ - IncludeError - thrown by the renderer when an include instruction cannot |
+ be processed. |
+ - MissingHeader - thrown by the renderer when the output doesn't start with a |
+ header. |
+ |
+Constants for code that works with filter lists: |
+ |
+ - SELECTOR_TYPE - Namespace for constants that determine how the filter |
+ matches content (for example: SELECTOR_TYPE.CSS): |
+ |
+ - URL_PATTERN - Match URL against a pattern (see |
+ https://adblockplus.org/filters#basic), |
+ - URL_REGEXP - Match URL against a regular expression, |
+ - CSS - Select elements via a CSS selector, |
+ - XCSS - CSS selector with extensions (to emulate CSS4), |
+ - ABP_SIMPLE - Deprecated simplified element selection syntax. |
+ |
+ - FILTER_ACTION - Namespace for constants that determine what the filter does |
+ with selected content (for example: FILTER_ACTION.BLOCK): |
+ |
+ - BLOCK - Block the request, |
+ - ALLOW - Allow the request (even if blocked by other filters), |
+ - HIDE - Hide selected element, |
+ - SHOW - Show selected element (even if hidden by other filters). |
+ |
+ - FILTER_OPTION - Namespace for filter option constants (for example |
+ FILTER_OPTION.IMAGE). See https://adblockplus.org/filters#options for the |
+ full list of options. |
+ |
+See docstrings of module members for further information. |
+ |
+Notes |
+----- |
+`str` in function and method signatures always means a unicode string (Python3 |
+meaning of `str`). |
+ |
+""" |
+ |
+from .parser import ( |
+ FILTER_ACTION, |
+ FILTER_OPTION, |
+ SELECTOR_TYPE, |
+ ParseError, |
+ parse_filterlist, |
+ parse_line, |
+) |
+from .renderer import ( |
+ IncludeError, |
+ MissingHeader, |
+ render_filterlist, |
+) |
+from .sources import ( |
+ FSSource, |
+ TopSource, |
+ WebSource, |
+) |
+ |
+__all__ = [ |
+ # Constants |
+ 'FILTER_ACTION', |
+ 'FILTER_OPTION', |
+ 'SELECTOR_TYPE', |
+ # Exceptions |
+ 'ParseError', |
+ 'IncludeError', |
+ 'MissingHeader', |
+ # File sources |
+ 'FSSource', |
+ 'TopSource', |
+ 'WebSource', |
+ # Functions |
+ 'parse_filterlist', |
+ 'parse_line', |
+ 'render_filterlist', |
+] |