Syntax¶
New in version 0.2.0.
As with coverage.py, lines are marked with comments in the form:
# pragma: no cover
With coverage_pyver_pragma, the comment may be followed with an expression enclosed in parentheses:
# pragma: no cover (<=py38 and !Windows)
Each expression consists of one or more tags
(VERSION_TAG, PLATFORM_TAG or IMPLEMENTATION_TAG).
The tags can be joined with the keywords AND, OR and NOT, with the exclamation mark ! implying NOT.
Parentheses can be used to group sub expressions.
A series of tags without keywords between them are evaluated with AND.
- VERSION_TAG¶
A VERSION_TAG comprises an optional comparator (one of <=, <, >=, >),
a version specifier in the form pyXX, and an optional + to indicate >=.
Example:
<=py36
>=py37
<py38
>py27
py34+ # equivalent to >=py34
- PLATFORM_TAG¶
A PLATFORM_TAG comprises a single word which will be compared (ignoring case)
with the output of platform.system().
Example:
Windows
Linux
Darwin # macOS
Java
If the current platform cannot be determined all strings are treated as True.
- IMPLEMENTATION_TAG¶
An IMPLEMENTATION_TAG comprises a single word which will be compared (ignoring case)
with the output of platform.python_implementation().
Example:
CPython
PyPy
IronPython
Jython
Examples¶
Ignore if the Python version is less than or equal to 3.7:
# pragma: no cover (<=py37)
Ignore if running on Python 3.9:
# pragma: no cover (py39)
Ignore if the Python version is greater than 3.6 and it’s not running on PyPy:
# pragma: no cover (>py36 and !PyPy)
Ignore if the Python version is less than 3.8 and it’s running on Windows:
# pragma: no cover (Windows and <py38)
Ignore when not running on macOS (Darwin):
# pragma: no cover (!Darwin)
Ignore when not running on CPython:
# pragma: no cover (!CPython)
API Reference¶
Data:
|
The |
Classes:
|
Represents an |
|
Represents the |
|
Represents the |
|
Represents the |
|
Represents a logical operator ( |
|
Represents a |
|
Represents a |
- GRAMMAR(name=None)¶
Type:
ParserElementThe
coverage_pyver_pragmaexpression grammar.This can be used to parse an expression outside of the coverage context.
- class ImplementationTag(tokens: pyparsing.results.ParseResults)[source]¶
Bases:
strRepresents an
IMPLEMENTATION_TAGin the expression grammar.An
IMPLEMENTATION_TAGcomprises a single word which will be compared (ignoring case) with the output ofplatform.python_implementation().Examples:
CPython PyPy IronPython Jython
- Parameters
tokens
- __repr__()[source]¶
Return a string representation of the
ImplementationTag.- Return type
- class LogicalAND(tokens)[source]¶
Bases:
LogicalOpRepresents the
ANDlogical operator.- Parameters
tokens (
ParseResults)
- class LogicalNOT(tokens)[source]¶
Bases:
LogicalOpRepresents the
NOT / !logical operator.- Parameters
tokens (
ParseResults)
- class LogicalOR(tokens)[source]¶
Bases:
LogicalOpRepresents the
ORlogical operator.- Parameters
tokens (
ParseResults)
- class LogicalOp(tokens)[source]¶
Bases:
objectRepresents a logical operator (
AND,OR, andNOT / !).- Parameters
tokens (
ParseResults)
- class PlatformTag(tokens: pyparsing.results.ParseResults)[source]¶
Bases:
strRepresents a
PLATFORM_TAGin the expression grammar.A
PLATFORM_TAGcomprises a single word which will be compared (ignoring case) with the output ofplatform.system().Examples:
Windows Linux Darwin # macOS Java
If the current platform cannot be determined all strings are treated as
True.- Parameters
tokens
- __repr__()[source]¶
Return a string representation of the
PlatformTag.- Return type
- class VersionTag(tokens)[source]¶
Bases:
SpecifierSetRepresents a
VERSION_TAGin the expression grammar.A
VERSION_TAGcomprises an optional comparator (one of<=,<,>=,>), a version specifier in the formpyXX, and an optional+to indicate>=.Examples:
<=py36 >=py37 <py38 >py27 py34+
- Parameters
tokens (
ParseResults)
- __repr__()[source]¶
Return a string representation of the
VersionTag.- Return type