Releases: justinfx/fileseq
Patch Release v3.1.1
What's Changed
- grammar: fix directory rule to allow UNC paths (
//server/share/) (#153) - fix setDirname stripping the root path separator, causing root-level paths to lose their leading slash
Full Changelog: v3.1.0...v3.1.1
Minor Release v3.1.0
What's Changed
This isn't really a breaking change, but it removes a runtime dependency in favor of an internal vendor location. Because a very specific major.minor version of antlr4 runtime is needed to match the generator, we want to make sure we never collide with any other project in an environment that could also be using the runtime on a different version.
- Vendor the antlr4 runtime into an internal location and remove from pyproject.toml dependencies
Full Changelog: v3.0.2...v3.1.0
Patch Release v3.0.2
What's Changed
- grammar: Adjust the directory parsing rule to handle edge case containing dots (refs #152)
- grammar: simplify redundant tokens into just a basename pattern
Full Changelog: v3.0.1...v3.0.2
Patch Release v3.0.1
What's Changed
This patch release only makes a change to the PyPI package distribution details.
- pyproject.toml: rename the distribution name field from 'fileseq' back to "Fileseq" for consistency (#151)
Major Release v3.0.0
What's Changed
New v3 major release. This is a major version with breaking changes covering two significant architectural
improvements.
ANTLR4 Grammar-Based Parsing (PR #149)
Sequence pattern parsing has been migrated from regex to a shared ANTLR4 grammar, aligning the Python
implementation with the Go and C++ implementations for consistency and maintainability.
Removed API:
FileSequence.SPLIT_REandFileSequence.DISK_REclass variablesconstants.SPLIT_PATTERN,constants.SPLIT_RE,constants.SPLIT_SUB_PATTERN,constants.SPLIT_SUB_RE
Removed files:
setup.py→ replaced bypyproject.tomlsrc/fileseq/__version__.py→ version now derived from git tags viasetuptools-scmrequirements.txt→ replaced bypyproject.tomloptional dependency groups (pip install ".[dev]",pip install ".[docs]")
Behavioral changes:
- Auto-padding now only applies to single-frame files without explicit padding —
foo.1@@@@.exrpreserves
@@@@rather than re-padding
Range-Based FrameSet (PR #150)
FrameSet now stores frame ranges compactly as Range objects rather than expanding all frames upfront,
reducing memory usage by ~99.9%+ for large ranges (e.g. 100k frames drops from ~7.8MB to ~536 bytes).
Deprecated API (raises DeprecationWarning):
FrameSet.items— useset(fs)insteadFrameSet.order— uselist(fs)orfs[i]instead
Bug fixes:
isConsecutive()now correctly handles interleaved ranges and empty framesetshasSubFrames()correctly detects decimal notation like"1.0-5.0"- Stagger modifier (
:) now properly deduplicates frames
Pull Requests
- Implement ANTLR4 grammar parsing and migration from regex focus (refs #147) by @justinfx in
#149 - Refactor FrameSet to use range-based storage (fixes #148) by @justinfx in
#150
Full Changelog: v2.3.1...v3.0.0
Patch Release v2.3.1
What's Changed
- [#137] Strip whitespace from frame range in
FrameSetconstructor
Full Changelog: v2.3.0...v2.3.1
Release v2.3.0
Patch Release v2.2.1
What's Changed
- Fix Decimal handling in FrameSet broken by changes in #141 by @GlenWalker in #142
Full Changelog: v2.2.0...v2.2.1
Release v2.2.0
Patch Release v1.15.3
Patch Release v1.15.3
- [#135] (backport)
yield_sequences_in_list: use unique key for single files with no frame to prevent name collision with same basename using frames
Full Changelog: v1.15.2...v1.15.3