Python 3.9 reached end of life in October 2025, and 3.11 is where the current ecosystem sits: it unlocks pyarrow 25 (we were held at 21, the last release supporting 3.9), more-itertools 11, and pandas 3 for the test suite, along with the large CPython 3.11 interpreter speedups on exactly the kind of CPU-bound work wikiq does. Nothing in the code needed changes. Raising the floor exposed that PyPI's yamlconf 0.2.6 (a transitive dependency via deltas) pins pyyaml == 5.4.1, which has no wheels for 3.11+ and no longer builds from source under current setuptools. Add a PEP 508 reference to the fork that loosens the pin; it can be dropped when https://github.com/halfak/yamlconf/pull/10 is merged and released. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
When you install this from git, you will need to first clone the repository:
git clone git://projects.mako.cc/mediawiki_dump_tools
From within the repository working directory, initiatlize and set up the submodule like:
git submodule init
git submodule update
Wikimedia dumps are usually in a compressed format such as 7z (most common), gz, or bz2. Wikiq uses your computer's compression software to read these files. Therefore wikiq depends on [7za]{.title-ref}, [gzcat]{.title-ref}, and [zcat]{.title-ref}.
Dependencies
These non-Python dependencies must be installed on your system for wikiq and its associated tests to work.
- 7zip
- ffmpeg
A new diff engine based on [_wikidiff2]{.title-ref} can be used for word-persistence. Wikiq can also output the diffs between each page revision. This requires installing Wikidiff 2 on your system. On Debian or Ubuntu Linux this can be done via.
apt-get install php-wikidiff2
You may have to also run. sudo phpenmod wikidiff2.
Tests ----To run tests:
python -m unittest test.Wikiq_Unit_Test
TODO:
- [] Output metadata about the run. What parameters were used? What versions of deltas?
- [] Url encoding by default