Log
April 2026:
- fetch: improve the code based on my blog post review
- Merge pull request #17 from alexwlchan/less-ruff-config
- tests: example.com is fixed, so use a different site for SSL errors
- pyproject.toml: document my remaining Ruff lints
- pyproject.toml: document what Ruff rule D212 is
- all: fix Ruff lint D401 (non-imperative-mood)
- text: use Smartypants to handle the quote entities
- dev_requirements: remove keyring dependency
- fetch: improve URL handling for URLs with existing query params
- fetch: remove the now-unused
fetch_imagefunction
- fetch: add a
download_imagefunction
March 2026:
- dev_requirements: switch from twine to uv for publishing to PyPI
- urls: remove the
hyperlinkdependency
- fetch: add some helper functions for calling HTTP methods
- all: add a
textsub-package with SmartyPants formatting
- CHANGELOG: bump to v28
- Merge pull request #16 from alexwlchan/remove-nitrate
- all: remove the silver-nitrate and httpx dependencies
- pyproject.toml: remove some vestigial setup data
February 2026:
- CHANGELOG: add a changelog entry for v27
- static_site_tests: browser should be a function-scoped fixture
- static_site_tests: allow reusing the browser fixture
- static_site_tests: fix some bugs in the Playwright testing
- static_site_tests: ensure deterministic test ordering
- Merge pull request #15 from alexwlchan/playwright
- static_site_tests: add page testing with Playwright
- Merge pull request #14 from alexwlchan/pytest-generate
- .github: fix installation of ffprobe
- tests: switch to using pytester to test the test suite
- media: change subtitles from a str to a list
January 2026:
December 2025:
- Merge pull request #13 from alexwlchan/now
- Add a method to return the current timestamp
- Parallelise the
test_no_videos_are_av1test
- Allow passing both
widthandheightas part ofThumbnailConfig
- Expose
get_tint_colouras a public function
- Account for EXIF orientation in image width/height
- Defining a list of tags is now optional
- Fix the ruff lints; remove dependency
- Improve the error message on failed assertions
- Ignore a few more files and folders
- Merge pull request #12 from alexwlchan/fuzzy-tag-matching
- Add standard tests for fuzzy tag matching
- Merge pull request #11 from alexwlchan/static-site-test-suite
- Add a set of standard tests for static sites
- Merge pull request #10 from alexwlchan/is-url-safe
- Add an
is_url_safe()function
- Merge pull request #9 from alexwlchan/media-entities
- Add support for media entities
- Merge pull request #8 from alexwlchan/is-mastodon-url
- Add an
is_mastodon_host()function for detecting Mastodon instances
- Merge pull request #7 from alexwlchan/parse-tumblr-url
- Add a function for parsing Tumblr post URLs
- Merge pull request #6 from alexwlchan/mastodon-urls
- Add a function for parsing Mastodon post URLs
- Merge pull request #5 from alexwlchan/convert-to-utc
- Convert timestamps to UTC in
reformat_date
November 2025:
- Rename
timestampstodates
- Merge pull request #4 from alexwlchan/add-youtube-stuff
- Add a “clean YouTube URL” function and “urls” extra
- remember to bump the version!
- Merge pull request #2 from alexwlchan/is-av1-video
- Add is_av1_video()
- tweak the pyproject name
- Merge pull request #1 from alexwlchan/timestamps
- Add all my code for dealing with timestamps
- don’t run interrogate in github-actions
- initial commit with code
- initial commit