[project] name = "mediawiki-dump-tools" version = "0.1.1" description = "Convert MediaWiki XML database dumps into tabular datasets for research" readme = "README.md" license = "GPL-3.0-or-later" license-files = ["COPYING"] requires-python = ">=3.11" authors = [ { name = "Benjamin Mako Hill" }, { name = "Nathan TeBlunthuis" }, { name = "Will Beason" }, { name = "Sohyeon Hwang" }, { name = "Kaylea Champion" }, ] keywords = ["mediawiki", "wikipedia", "wiki", "dump", "xml", "revision", "research"] classifiers = [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Operating System :: POSIX", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Scientific/Engineering :: Information Analysis", "Topic :: Text Processing :: Markup", ] dependencies = [ "deltas>=0.7.0", "more-itertools>=10.7.0", "mwparserfromhell>=0.6.0", "mwpersistence>=0.2.4", "mwreverts>=0.1.5", "mwtypes>=0.4.0", "mwxml>=0.3.8", "pyarrow>=20.0.0", "sortedcontainers>=2.4.0", ] # Two features carry dependencies that are awkward enough to install that they # are kept out of the base install: -p legacy needs mediawiki-utilities, a 2015 # package that also pulls in a MySQL client, and --diff and -p wikidiff2 need # pywikidiff2, which compiles a C++ extension. Everything else, including the # default -p sequence, works with neither. [project.optional-dependencies] legacy = ["mediawiki-utilities>=0.4.18"] # A wikidiff2 extra belongs here too, but pywikidiff2 is not yet published to # PyPI, so an extra naming it could not resolve. Until it is, wikiq reports the # git install command when --diff or -p wikidiff2 is used without it. # Duplicated from [dependency-groups] below, which is PEP 735 and so is visible # only to uv. This is what makes `pip install -e '.[dev]'` work. dev = [ "pandas>=2.1.0", "pytest>=8.4.1", "pytest-asyncio>=1.0.0", "pytest-benchmark>=5.1.0", ] [project.urls] Homepage = "https://wiki.communitydata.science/" Repository = "https://gitea.communitydata.science/collective/mediawiki_dump_tools" [project.scripts] wikiq = "wikiq:main" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["src/wikiq"] # Without an explicit list hatchling walks the whole working tree, which sweeps # in any local virtualenv and editor state while still omitting the test dumps, # since those are gitignored. Tests run from a clone of the repository rather # than from the sdist. [tool.hatch.build.targets.sdist] include = [ "src/wikiq", "README.md", "COPYING", "pyproject.toml", ] [dependency-groups] dev = [ "ipython>=8.18.1", "memray>=1.17.2", "pandas>=2.1.0", "pytest>=8.4.1", "pytest-asyncio>=1.0.0", "pytest-benchmark>=5.1.0", ]