v2.0.0b10
What's Changed
TLDR: Mostly fixes found by code scanning as a preparation for the upcoming v2.0.0 release
- π Fix misleading 'Unknown block type' warning for failed blocks and add missing DuplicateFieldKeyBlock.entry (#520) by @MiWeiss in #523
- π¦ Migrate packaging from setup.py to pyproject.toml by @MiWeiss in #524
- β¨ Add SortBlocksMiddleware for custom block sorting by @MiWeiss in #525
- β¨ Honor enclosing demands on fields and strings when writing (#447) by @MiWeiss in #528
- π Raise descriptive error when writing failed blocks without raw bibtex by @MiWeiss in #526
- π¦ Make Library.add fail on duplicate keys by default by @MiWeiss in #527
- π Run unittest workflow on all pushes by @MiWeiss in #548
- π Fix README/RELEASE/docs cosmetics by @MiWeiss in #550
- π Fix AddEnclosingMiddleware.metadata_key identifier by @MiWeiss in #551
- π Fix swapped month metadata messages in MonthIntMiddleware by @MiWeiss in #549
- β¬οΈ Require Python 3.10+, test through 3.14 by @MiWeiss in #557
- π¦ Fix PyPI topic classifier, add Python 3.13/3.14 by @MiWeiss in #556
- π₯ Remove dead state from Splitter by @MiWeiss in #554
- π Return a copy in Library.strings_dict by @MiWeiss in #552
- π¨ Align middleware override signatures with base class by @MiWeiss in #553
- β¨ Align @string values according to BibtexFormat.value_column by @MiWeiss in #558
- π Resolve @string references case-insensitively by @MiWeiss in #559
- π Fix String values becoming tuples in latex transformation middlewares by @MiWeiss in #560
- π Make Entry dict access symmetric for ENTRYTYPE and ID by @MiWeiss in #561
- π·οΈ Fix type annotations on public API by @MiWeiss in #562
- β¨ Make blocks and fields hashable by @MiWeiss in #563
- π§ Update linting rules and pre-commit config (py310 floor, drop setup-cfg-fmt, bump revs) by @MiWeiss in #564
- π Make InvalidNameError copyable and picklable by @eeshsaxena in #599
- Honor custom parsing failure comments by @sapunyangkut in #566
- π Apply parse stack only to new blocks in parse_string(library=...) by @MiWeiss in #603
- π Abort entry parsing on a dangling field key before
}by @MiWeiss in #602 - π§ Only run unittests on pushes to main by @MiWeiss in #611
- π Fix RecursionError on long runs of consecutive newlines by @MiWeiss in #601
- π Keep month field enclosing when the value is not transformed by @MiWeiss in #605
- π Preserve enclosing demand in value-transforming middlewares by @MiWeiss in #606
- π Make Library.remove atomic and tolerant of changed block keys by @MiWeiss in #607
- π Spread block hashes to avoid pathological set/dict collisions by @MiWeiss in #608
- π§ Drop dead
libraryparameter fromSplitter.split()by @MiWeiss in #610 - π Only strip enclosing delimiters that enclose the whole value by @MiWeiss in #604
- β‘ Fix quadratic Library.add during parsing and slow quote-enclosing check by @MiWeiss in #612
- π Warn when writing a large library with a deep-copying unparse stack by @MiWeiss in #615
- π Do not mutate the passed library in write_string/write_file by @MiWeiss in #614
- π¦ Ship the complete test tree and its resources in the sdist by @MiWeiss in #616
- π Materialize iterable middleware arguments before inspecting them by @MiWeiss in #617
- π§ Re-enable and modernize CodeQL workflow by @MiWeiss in #619
- β¨ Support parenthesis-delimited blocks (
@article(...)) by @MiWeiss in #620 - π Bump version to v2.0.0b10 by @MiWeiss in #621
New Contributors
- @eeshsaxena made their first contribution in #599
- @sapunyangkut made their first contribution in #566
Full Changelog: v2.0.0b9...v2.0.0b10