Changes¶
6.1.0 (22 Apr 2024)¶
Add support for lexing nested fenced codeblocks in markdown.
Add support for tilde-delimited codeblocks in markdown.
Fix bug with the end offset of codeblocks in markdown.
6.0.3 (31 Jan 2024)¶
Support pytest 8 and above, due to yet another breaking change in an API Sybil relies on.
Thanks to Adam Dangoor for the fix.
6.0.2 (23 Nov 2023)¶
Remove use of deprecated
py.path.local
.
6.0.1 (22 Nov 2023)¶
Fix lexing of ReST directives and directives-in-comments where the directives were not separated by at least one newline.
6.0.0 (21 Nov 2023)¶
The public interface is now fully typed and checked with
mypy
.Official support for Python 3.12 with Python 3.7 now being the minimum supported version.
ReST
andMyST
directives now have their options extracted as part of the lexing process.Added support for MyST single-line html-style comment directives.
Fixed parsing of MyST directive options with no leading whitespace.
Fixed parsing of Markdown and MyST fenced codeblocks at the end of documents with no trailing newline.
Rework document evaluators to be more flexible and structured.
skip has been reworked to check validity of operations and allow a reason to be provided for an unconditional skip so it can be highlighted as a skipped test in test runner output. The skip parsers are also now lexer-based.
Make
Region.evaluator
optional, removing the need for the separateLexedRegion
class.
Huge thanks to Adam Dangoor for all his work on typing!
5.0.3 (14 Jul 2023)¶
Fix bug in traceback trimming on the latest release of pytest.
5.0.2 (19 May 2023)¶
Fixed bug in the
repr()
ofLexedRegion
instances where a lexeme wasNone
.Fixed lexing of ReST directives, such as
code-block
, where they occurred at the end of a docstring.Ensure the
namespace
in which doctests are evaluated always has a__name__
. This is required by an implementation detail oftyping.runtime_checkable
.
5.0.1 (9 May 2023)¶
Fix a bug that prevent r-prefixed docstrings from being correctly parsed from
.py
files.
5.0.0 (26 Mar 2023)¶
4.0.1 (8 Feb 2023)¶
Switch
sybil.parsers.myst.SkipParser()
to use the correct comment character.Note that the doctest extension needs to be enabled to render
doctest
directives.Warn about ReST and MyST doctest parsers and overlapping blocks.
4.0.0 (25 Dec 2022)¶
Restructure to support lexing source languages such as ReST and MyST while testing examples in target languages such as Python, doctest and bash.
Add support for MyST examples.
Include a plan for migrating from
sphinx.ext.doctest
.
3.0.1 (25 Feb 2022)¶
Continue with the ever shifting sands of pytest APIs, this time appeasing warnings from pytest 7 that when fixed break compatibility with pytest 6.
3.0.0 (26 Oct 2021)¶
Require pytest 6.2.0.
Drop Python 2 support.
Add support for Python 3.10
Remove the
encoding
parameter toDocTestParser
as it is no longer used.CodeBlockParser
has been renamed toPythonCodeBlockParser
, see the Code blocks documentation for details.Support has been added to check examples in Python source code in addition to documentation source files.
FIX_BYTE_UNICODE_REPR
has been removed as it should no longer be needed.
Thanks to Stefan Behnel for his work on Code blocks parsing!
2.0.1 (29 Nov 2020)¶
Make
DocTestParser
more permissive with respect to tabs in documents. Tabs that aren’t in the doctest block not longer cause parsing of the document to fail.
2.0.0 (17 Nov 2020)¶
Drop support for nose.
Handle encoded data returned by doctest execution on Python 2.
1.4.0 (5 Aug 2020)¶
Support nested directories of source files rather than just one directory.
Support multiple patterns of files to include.
1.3.1 (29 Jul 2020)¶
Support pytest 6.
1.3.0 (28 Mar 2020)¶
Treat all documentation source files as being
utf-8
encoded. This can be overridden by passing an encoding when instantiating aSybil
.
1.2.2 (20 Feb 2020)¶
Improvements to
FIX_BYTE_UNICODE_REPR
for multiple strings on a single line.Better handling of files with Windows line endings on Linux under Python 2.
1.2.1 (21 Jan 2020)¶
Fixes for pytest 3.1.0.
1.2.0 (28 Apr 2019)¶
Only compile code in codeblocks at evaluation time, giving skip a chance to skip code blocks that won’t compile on a particular version of Python.
1.1.0 (25 Apr 2019)¶
1.0.9 (1 Aug 2018)¶
Fix for pytest 3.7+.
1.0.8 (6 Apr 2018)¶
Changes only to unit tests to support fixes in the latest release of pytest.
1.0.7 (25 January 2018)¶
Literal tabs may no longer be included in text that is parsed by the
DocTestParser
. Previously, tabs were expanded which could cause unpleasant problems.
1.0.6 (30 November 2017)¶
Fix compatibility with pytest 3.3+.
Thanks to Bruno Oliveira for this fix!
1.0.5 (6 June 2017)¶
Fix ordering issue that would cause some tests to fail when run on systems using tmpfs.
1.0.4 (5 June 2017)¶
Fix another bug in
CodeBlockParser
where acode-block
followed by a less-indented block would be incorrectly indented, resulting in aSyntaxError
.
1.0.3 (2 June 2017)¶
Fix bug in
CodeBlockParser
where it would incorrectly parse indented code blocks.
1.0.2 (1 June 2017)¶
Fix bug in
CodeBlockParser
where it would not find indented code blocks.
1.0.1 (30 May 2017)¶
Fix bug where unicode and byte literals weren’t corrected in doctest tracebacks, even when
FIX_BYTE_UNICODE_REPR
was specified.
1.0.0 (26 May 2017)¶
Initial release