Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: abp/filters/__init__.py

Issue 29465720: Issue 4970 - Document the library API of python-abp (Closed)
Patch Set: Improve the docstrings and help() behavior, shorten the README, add Development documentation and a… Created Oct. 10, 2017, 4:25 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « abp/__init__.py ('k') | abp/filters/parser.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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',
+]
« no previous file with comments | « abp/__init__.py ('k') | abp/filters/parser.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld