Changelog
Unreleased
Currently none
v1.6.7 (2026-06-08)
Fix docs build
v1.6.6 (2026-06-08)
Parsing loop refactor
v1.6.5 (2026-06-07)
Remove redundant string join in the parser
v1.6.4 (2026-06-07)
Parser state optimizations
Parsing and interpretation performance improvements
v1.6.3 (2026-06-03)
Performance improvements in the parser
Performance improvements in the interpreter
v1.6.2 (2026-05-16)
Fix import structure
This should have no user-facing consequences as it was a purely internal change.
Include tests in coverage
Start testing on 3.15-beta
Stricter type checking
v1.6.1 (2025-12-20)
Fix for GitHub releases overview due to accidentally deleted immutable release
v1.6.0 (2025-12-20)
Function names in
MathBlockare now case-insensitiveExample:
tan,TAN,tAn, etc. all now call the tangent functionShould not have any user-facing consequences, since these are matched in an already-parsed block body and thus are only text.
v1.5.0 (2025-09-24)
Enforce zero-depth requirement for the specially formed attributes of
EmbedBlockThis affects the payloads of
author,field, andfooter, whose payloads must now have a|at “zero-depth” to properly separate their different sub-attributes.
v1.4.3 (2025-08-26)
Refactor tests to use pytest.parametrize
Fix accidental dict literal instead of empty set constructor in
BlockABC.will_acceptShould not have had any user-facing consequences since it is just an empty fallback
v1.4.2 (2025-07-18)
Catch
ParseBaseExceptioninMathBlockinstead ofParseSyntaxExceptionThe approach in the previous version did not suffice.
v1.4.1 (2025-07-18)
Reject invalid syntax in
MathBlockBlocks that contain invalid/unparseable syntax and cause pyparsing to raise a
ParseSyntaxExceptionare now rejected instead of throwing an exception into the interpreter
v1.4.0 (2025-06-30)
Removed use of
@overrideannotations to actually support Python 3.11
v1.3.2 (2025-06-10)
Reject division by zero in
MathBlockBlocks that divide by zero are now rejected instead of throwing an exception into the interpreter
v1.3.1 (2025-06-10)
Fix copy/paste errors in
EmbedBlock’s documentationThe
fieldsection contained copy/pastedfootertext, this has been fixed
v1.3.0 (2025-06-10)
Fix undefined guild-specific or global nicknames causing blocks to be rejected
For
discord.Memberobjects,MemberAdapternow falls back toglobal_nameifnickis undefined and further tonameifglobal_nameis also undefinedFor
discord.Userobjects,MemberAdapternow falls back tonameifglobal_nameis undefined
Fix an undefined channel topic causing blocks to be rejected
ChannelAdapternow falls back to an empty string
Move
PythonBlockfromblocks.conditionaltoblocks.stringsNever belonged in the
conditionalgroupingThis should not affect any users since blocks are exported via
ya_tagscript.blocksbut ifPythonBlockwas imported from the full path, the following change is necessary:-from ya_tagscript.blocks.conditional import PythonBlock +from ya_tagscript.blocks.strings import PythonBlock
or
-from ya_tagscript.blocks.conditional.python_block import PythonBlock +from ya_tagscript.blocks.strings.python_block import PythonBlock
but the recommended way remains
-from ya_tagscript.blocks.conditional import PythonBlock +from ya_tagscript.blocks import PythonBlock
Fix duplicate spaces between emoji in
ReactBlockbeing counted against the emoji limitThese spaces are now ignored and only the actual strings passed are counted
v1.2.1 (2025-06-06)
Make loggers and
TimedeltaBlock.humanize_fnprivate values/attributesThese are all internal details with no place in the user’s code
Replace
datetime.timezone.utcwithdatetime.UTC
v1.2.0 (2025-05-18)
Allow passing
discord.UsertoMemberAdapterAllows conveniently passing
ctx.authorto a seed variableMemberAdapter, for example
Add
.. versionchangeddirectives toCycleBlockandListBlockregarding the 1.1.0 changesAlso re-added both blocks to the “Referenced by” section of the zero-depth glossary entry
v1.1.0 (2025-05-17)
CycleBlockandListBlockno longer have a “zero-depth” restriction
v1.0.0 (2025-05-14)
Full rearchitecture of interpreter released.