What's Changed
Bug Fixes & Core Improvements
-
Comma-Separated Number Parsing in Network Lists (@fastfingertips in 680b38f)
- Fixed an issue in
user_network.pywhere follower, following, watched, lists, and likes counts containing commas (e.g."1,250") resulted in string truncation or parsing failures when converting to integers. - Ensured complete numeric extraction across high-volume accounts with thousands of followers or logged films.
- Fixed an issue in
-
Standardized Number Extraction & Fallback Robustness (@fastfingertips in 7b2a79d)
- Standardized integer extraction and edge-case handling across page scrapers (
user_films.py,user_list.py,user_network.py,user_tags.py) usingextract_number_from_text. - Enhanced
extract_and_convert_shorthandinutils_parser.pyto support uppercase and lowercase suffixes (K/k,M/m), decimal values, and both BeautifulSoup Tag and raw string inputs. - Refactored
get_movie_count_from_metato robustly parse counts from list page meta descriptions with safe fallback defaults.
- Standardized integer extraction and edge-case handling across page scrapers (
Testing & CI Modernization
-
Deterministic Unit Test Suite (@fastfingertips in fd8a440, 513dc2f)
- Added 36 comprehensive, deterministic offline unit tests in
tests/test_parsers_unit.pycovering HTML extraction, shorthand numbers, ISO date parsing, URL normalization, and tag counting. - Added unit tests in
tests/test_models_unit.pyverifyingMovieJSONdataclass serialization, optional field handling, and round-trip consistency.
- Added 36 comprehensive, deterministic offline unit tests in
-
Pytest Smoke Marker Separation (@fastfingertips in 5b31bde, 0a06473)
- Categorized all live network integration tests (
test_user,test_movie,test_list,test_scraper,test_search) under the@pytest.mark.smoke()marker. - Configured
pyproject.tomlwith defaultaddopts = "-m 'not smoke'"to execute the fast offline suite in ~0.5 seconds, eliminating flaky test runs and Letterboxd rate limiting in standard CI steps.
- Categorized all live network integration tests (
-
CI Workflows & Ruff Linter Compatibility (@fastfingertips in f362764, 4d94d1b, 22a0b69, 71b796b)
- Updated daily DOM health check workflow to execute live smoke tests explicitly using
--smokeviatests/run_tests.py. - Resolved Ruff linter compatibility across versions for
S105(hardcoded passwords false positive) andPT023(marker parentheses) inpyproject.toml. - Cleaned up formatting and unused
# noqacomments across core modules.
- Updated daily DOM health check workflow to execute live smoke tests explicitly using
-
Commit Standards & Pre-commit Hook (@fastfingertips in 2ff69a4)
- Configured a native Python commit-msg hook in
.pre-commit-config.yamlenforcing a strict 62-character commit subject limit. - Documented commit title constraints and project contribution guidelines in
CONTRIBUTING.md.
- Configured a native Python commit-msg hook in
Example Tools & CLI Updates
-
Compare Watchlists (
compare_watchlists.pyv0.1.6) (@fastfingertips in 4a59094)- Enhanced report layout with updated styling, improved poster grid and table views, and optimized comparison filtering.
-
Network Balance Analyzer (
network_balance.pyv0.1.2) (@fastfingertips in f5f470c)- Optimized mutual follower calculations and added user avatar image rendering alongside usernames.
- Improved summary badge hierarchy and table sorting.
-
Follow Stats Reporter (
follow_stats.pyv0.1.4) (@fastfingertips in 4082ccc)- Added avatar rendering, multi-column sorting, and responsive table layout in generated HTML follow statistics reports.
Commit Details
140ac48chore: bump version to 6.6.1 by @fastfingertips2ff69a4ci: enforce 62 chars commit title limit via pre-commit by @fastfingertips22a0b69ci: fix ruff format compatibility by @fastfingertips4d94d1bci: resolve ruff version compatibility for s105 and pt023 by @fastfingertipsf362764ci: run smoke tests in health check and update test runner script by @fastfingertips71b796bstyle: format code and remove unused noqa comments by @fastfingertips0a06473test: mark live integration tests with smoke marker by @fastfingertips513dc2ftest: add unit tests for MovieJSON data model by @fastfingertips5b31bdetest: configure pytest smoke marker and mark test_user by @fastfingertipsfd8a440test: add unit tests for parser utils by @fastfingertips4a59094feat(examples): update compare watchlists (v0.1.6) by @fastfingertipsf5f470cfeat(examples): optimize network balance and display avatars with names (v0.1.2) by @fastfingertips7b2a79dfix: standardize number extraction and handle edge cases across pages and utils by @fastfingertips680b38ffix(user_network): handle comma-separated numbers in network member counts by @fastfingertips4082cccfeat(examples): improve follow stats report with avatars and sorting (v0.1.4) by @fastfingertips
Full Changelog: v6.6.0...v6.6.1