Skip to main content

MWParserFromHell is a parser for MediaWiki wikicode.

Project description

Build Status Coverage Status

mwparserfromhell (the MediaWiki Parser from Hell) is a Python package that provides an easy-to-use and outrageously powerful parser for MediaWiki wikicode. It supports Python 3.8+.

Developed by Earwig with contributions from Σ, Legoktm, and others. Full documentation is available on ReadTheDocs. Development occurs on GitHub.

Installation

The easiest way to install the parser is through the Python Package Index; you can install the latest release with pip install mwparserfromhell (get pip). Make sure your pip is up-to-date first, especially on Windows.

Alternatively, get the latest development version:

git clone https://github.com/earwig/mwparserfromhell.git
cd mwparserfromhell
python setup.py install

The comprehensive unit testing suite requires pytest (pip install pytest) and can be run with python -m pytest.

Usage

Normal usage is rather straightforward (where text is page text):

>>> import mwparserfromhell
>>> wikicode = mwparserfromhell.parse(text)

wikicode is a mwparserfromhell.Wikicode object, which acts like an ordinary str object with some extra methods. For example:

>>> text = "I has a template! {{foo|bar|baz|eggs=spam}} See it?"
>>> wikicode = mwparserfromhell.parse(text)
>>> print(wikicode)
I has a template! {{foo|bar|baz|eggs=spam}} See it?
>>> templates = wikicode.filter_templates()
>>> print(templates)
['{{foo|bar|baz|eggs=spam}}']
>>> template = templates[0]
>>> print(template.name)
foo
>>> print(template.params)
['bar', 'baz', 'eggs=spam']
>>> print(template.get(1).value)
bar
>>> print(template.get("eggs").value)
spam

Since nodes can contain other nodes, getting nested templates is trivial:

>>> text = "{{foo|{{bar}}={{baz|{{spam}}}}}}"
>>> mwparserfromhell.parse(text).filter_templates()
['{{foo|{{bar}}={{baz|{{spam}}}}}}', '{{bar}}', '{{baz|{{spam}}}}', '{{spam}}']

You can also pass recursive=False to filter_templates() and explore templates manually. This is possible because nodes can contain additional Wikicode objects:

>>> code = mwparserfromhell.parse("{{foo|this {{includes a|template}}}}")
>>> print(code.filter_templates(recursive=False))
['{{foo|this {{includes a|template}}}}']
>>> foo = code.filter_templates(recursive=False)[0]
>>> print(foo.get(1).value)
this {{includes a|template}}
>>> print(foo.get(1).value.filter_templates()[0])
{{includes a|template}}
>>> print(foo.get(1).value.filter_templates()[0].get(1).value)
template

Templates can be easily modified to add, remove, or alter params. Wikicode objects can be treated like lists, with append(), insert(), remove(), replace(), and more. They also have a matches() method for comparing page or template names, which takes care of capitalization and whitespace:

>>> text = "{{cleanup}} '''Foo''' is a [[bar]]. {{uncategorized}}"
>>> code = mwparserfromhell.parse(text)
>>> for template in code.filter_templates():
...     if template.name.matches("Cleanup") and not template.has("date"):
...         template.add("date", "July 2012")
...
>>> print(code)
{{cleanup|date=July 2012}} '''Foo''' is a [[bar]]. {{uncategorized}}
>>> code.replace("{{uncategorized}}", "{{bar-stub}}")
>>> print(code)
{{cleanup|date=July 2012}} '''Foo''' is a [[bar]]. {{bar-stub}}
>>> print(code.filter_templates())
['{{cleanup|date=July 2012}}', '{{bar-stub}}']

You can then convert code back into a regular str object (for saving the page!) by calling str() on it:

>>> text = str(code)
>>> print(text)
{{cleanup|date=July 2012}} '''Foo''' is a [[bar]]. {{bar-stub}}
>>> text == code
True

Limitations

While the MediaWiki parser generates HTML and has access to the contents of templates, among other things, mwparserfromhell acts as a direct interface to the source code only. This has several implications:

  • Syntax elements produced by a template transclusion cannot be detected. For example, imagine a hypothetical page "Template:End-bold" that contained the text </b>. While MediaWiki would correctly understand that <b>foobar{{end-bold}} translates to <b>foobar</b>, mwparserfromhell has no way of examining the contents of {{end-bold}}. Instead, it would treat the bold tag as unfinished, possibly extending further down the page.

  • Templates adjacent to external links, as in http://example.com{{foo}}, are considered part of the link. In reality, this would depend on the contents of the template.

  • When different syntax elements cross over each other, as in {{echo|''Hello}}, world!'', the parser gets confused because this cannot be represented by an ordinary syntax tree. Instead, the parser will treat the first syntax construct as plain text. In this case, only the italic tag would be properly parsed.

    Workaround: Since this commonly occurs with text formatting and text formatting is often not of interest to users, you may pass skip_style_tags=True to mwparserfromhell.parse(). This treats '' and ''' as plain text.

    A future version of mwparserfromhell may include multiple parsing modes to get around this restriction more sensibly.

Additionally, the parser lacks awareness of certain wiki-specific settings:

  • Word-ending links are not supported, since the linktrail rules are language-specific.

  • Localized namespace names aren’t recognized, so file links (such as [[File:...]]) are treated as regular wikilinks.

  • Anything that looks like an XML tag is treated as a tag, even if it is not a recognized tag name, since the list of valid tags depends on loaded MediaWiki extensions.

Integration

mwparserfromhell is used by and originally developed for EarwigBot; Page objects have a parse method that essentially calls mwparserfromhell.parse() on page.get().

If you’re using Pywikibot, your code might look like this:

import mwparserfromhell
import pywikibot

def parse(title):
    site = pywikibot.Site()
    page = pywikibot.Page(site, title)
    text = page.get()
    return mwparserfromhell.parse(text)

If you’re not using a library, you can parse any page with the following Python 3 code (using the API and the requests library):

import mwparserfromhell
import requests

API_URL = "https://en.wikipedia.org/w/api.php"

def parse(title):
    params = {
        "action": "query",
        "prop": "revisions",
        "rvprop": "content",
        "rvslots": "main",
        "rvlimit": 1,
        "titles": title,
        "format": "json",
        "formatversion": "2",
    }
    headers = {"User-Agent": "My-Bot-Name/1.0"}
    req = requests.get(API_URL, headers=headers, params=params)
    res = req.json()
    revision = res["query"]["pages"][0]["revisions"][0]
    text = revision["slots"]["main"]["content"]
    return mwparserfromhell.parse(text)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mwparserfromhell-0.6.6.tar.gz (138.9 kB view details)

Uploaded Source

Built Distributions

mwparserfromhell-0.6.6-cp312-cp312-win_amd64.whl (101.1 kB view details)

Uploaded CPython 3.12 Windows x86-64

mwparserfromhell-0.6.6-cp312-cp312-win32.whl (98.7 kB view details)

Uploaded CPython 3.12 Windows x86

mwparserfromhell-0.6.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (201.9 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

mwparserfromhell-0.6.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (203.0 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

mwparserfromhell-0.6.6-cp312-cp312-macosx_10_9_universal2.whl (124.2 kB view details)

Uploaded CPython 3.12 macOS 10.9+ universal2 (ARM64, x86-64)

mwparserfromhell-0.6.6-cp311-cp311-win_amd64.whl (100.7 kB view details)

Uploaded CPython 3.11 Windows x86-64

mwparserfromhell-0.6.6-cp311-cp311-win32.whl (98.4 kB view details)

Uploaded CPython 3.11 Windows x86

mwparserfromhell-0.6.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (196.3 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

mwparserfromhell-0.6.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (197.7 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

mwparserfromhell-0.6.6-cp311-cp311-macosx_10_9_universal2.whl (123.8 kB view details)

Uploaded CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

mwparserfromhell-0.6.6-cp310-cp310-win_amd64.whl (100.5 kB view details)

Uploaded CPython 3.10 Windows x86-64

mwparserfromhell-0.6.6-cp310-cp310-win32.whl (98.5 kB view details)

Uploaded CPython 3.10 Windows x86

mwparserfromhell-0.6.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (191.0 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

mwparserfromhell-0.6.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (192.6 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

mwparserfromhell-0.6.6-cp310-cp310-macosx_11_0_x86_64.whl (99.4 kB view details)

Uploaded CPython 3.10 macOS 11.0+ x86-64

mwparserfromhell-0.6.6-cp39-cp39-win_amd64.whl (103.9 kB view details)

Uploaded CPython 3.9 Windows x86-64

mwparserfromhell-0.6.6-cp39-cp39-win32.whl (101.0 kB view details)

Uploaded CPython 3.9 Windows x86

mwparserfromhell-0.6.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (190.5 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

mwparserfromhell-0.6.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (192.1 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

mwparserfromhell-0.6.6-cp39-cp39-macosx_11_0_x86_64.whl (99.4 kB view details)

Uploaded CPython 3.9 macOS 11.0+ x86-64

mwparserfromhell-0.6.6-cp38-cp38-win_amd64.whl (103.9 kB view details)

Uploaded CPython 3.8 Windows x86-64

mwparserfromhell-0.6.6-cp38-cp38-win32.whl (100.9 kB view details)

Uploaded CPython 3.8 Windows x86

mwparserfromhell-0.6.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (196.1 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

mwparserfromhell-0.6.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (198.0 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

mwparserfromhell-0.6.6-cp38-cp38-macosx_11_0_x86_64.whl (99.4 kB view details)

Uploaded CPython 3.8 macOS 11.0+ x86-64

File details

Details for the file mwparserfromhell-0.6.6.tar.gz.

File metadata

  • Download URL: mwparserfromhell-0.6.6.tar.gz
  • Upload date:
  • Size: 138.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/68.1.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.18

File hashes

Hashes for mwparserfromhell-0.6.6.tar.gz
Algorithm Hash digest
SHA256 71afec1e9784ba576e95d6f34845582d3c733a3a52ba770dd8a9c3a40e5b649f
MD5 a93a031436cdd62995d04c4ff79e4458
BLAKE2b-256 47aa358f9af602b743ac8898353f240f678b69722801bd0625507c69d9755936

See more details on using hashes here.

File details

Details for the file mwparserfromhell-0.6.6-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for mwparserfromhell-0.6.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 cdc46c115b2495d4025920b7b30a6885a96d2b797ccc4009bf3cc02940ae55d3
MD5 191670c14db11c6709333150b114a4fe
BLAKE2b-256 780924c2f37524a3ebc3574975766748c7e4423ecefaa815c9fc4a324cbcf94a

See more details on using hashes here.

File details

Details for the file mwparserfromhell-0.6.6-cp312-cp312-win32.whl.

File metadata

File hashes

Hashes for mwparserfromhell-0.6.6-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 19e9a4bcd85707c83172405eb2a9a046eff9d38dd7f1a56a5e5ecbbfef4a640a
MD5 c44179447b6e45c4a866269f2b3082c8
BLAKE2b-256 8ee1026ea60ac66a8bc9314230cc0c1ad2bf496ceb16a3771d4fcfd6ecc25971

See more details on using hashes here.

File details

Details for the file mwparserfromhell-0.6.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mwparserfromhell-0.6.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2b75fae6d01c8fda19dbf127175122d7aa2964ef6454690e6868bbc3d80a7bc1
MD5 443d9a2e985429b72efca7c6b690e4d7
BLAKE2b-256 7a396bd8d9678e8b3f57babee36b5a9540db8cccba1b81a64ed56576c653994b

See more details on using hashes here.

File details

Details for the file mwparserfromhell-0.6.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mwparserfromhell-0.6.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d2febd92a55a3f19b461833267726cb81429c3d6cb0006ad1691dfa849789e5d
MD5 bd57217092d984e6160587f2c994b877
BLAKE2b-256 bcabda1b51303f0457c8cd343cf2d9a66fd0c5654fe8d0331c8107751459191f

See more details on using hashes here.

File details

Details for the file mwparserfromhell-0.6.6-cp312-cp312-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for mwparserfromhell-0.6.6-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 910d36bc70e8bea758380e75c12fd47626b295abec9f73a6099d8f937a649e77
MD5 39baa3cb68857e7a5039ea48f6f40f9b
BLAKE2b-256 61c0059513420490a2d96b470d4f560445d89f022a4749a20a952bfb002e2915

See more details on using hashes here.

File details

Details for the file mwparserfromhell-0.6.6-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for mwparserfromhell-0.6.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 063c1e79befd1f55d77c358e0f5006f5ecf88ddf218ff6af55188d686139330e
MD5 2eba4ecc98106032854f1276a3955c87
BLAKE2b-256 305116b6381021d3bb5ce1a277fd3334f7155f4aed1885e22eae78f4bfa07923

See more details on using hashes here.

File details

Details for the file mwparserfromhell-0.6.6-cp311-cp311-win32.whl.

File metadata

File hashes

Hashes for mwparserfromhell-0.6.6-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 dbe5976b1b524e26aa2eb71b6219960f2578f56b536c68e0a79deb63e3b7f710
MD5 8037a7c9e0b4eb1e12081dfd9676a390
BLAKE2b-256 3ddaaf2daa54a7a6d89eb9c37320a0a39d9815b66b1d5bd000fa80d43f1a6847

See more details on using hashes here.

File details

Details for the file mwparserfromhell-0.6.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mwparserfromhell-0.6.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 007d0859e5467241b73c6e974df039a074609ce4e2b9df8c2263a8920554d032
MD5 4229d9dc165768afa2d8e96b7a51797b
BLAKE2b-256 9b1ed3e3ff290be89135854c5945953c8fd9615388e795de1eb3da71e1a5b9ca

See more details on using hashes here.

File details

Details for the file mwparserfromhell-0.6.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mwparserfromhell-0.6.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 59633d3cc09993af75ced8dfbd6800e1e38e64620851a095575621548448875c
MD5 60d4b3856bca44512ae36f9662a16049
BLAKE2b-256 bd67cbe2512d3ad77520fa869aaf14f3bd76402ca9d0d11c3068386d0eb75696

See more details on using hashes here.

File details

Details for the file mwparserfromhell-0.6.6-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for mwparserfromhell-0.6.6-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 fff66e97f7c02aa0fd57ff8f702977a9c5a1d72ef55b64ee9b146291e4c41057
MD5 7e2cd6ab0f73d44ade66a605273008fa
BLAKE2b-256 19151eb4fc9d68747885fb08f431de74a77a9b04851c141d58507ed337e721b2

See more details on using hashes here.

File details

Details for the file mwparserfromhell-0.6.6-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for mwparserfromhell-0.6.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6a89edf53f15877223d923e122e9a97f3f7b85f56dc56d91a3d77b89c9dd4126
MD5 73532185fd8fbd0d001b7b691959227f
BLAKE2b-256 fb34d9c24046343296c076ab3b093b3a0081318b86c1d1396ec6f308805003a3

See more details on using hashes here.

File details

Details for the file mwparserfromhell-0.6.6-cp310-cp310-win32.whl.

File metadata

File hashes

Hashes for mwparserfromhell-0.6.6-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 6b11dea3bcdebe4554933169eade815e9d6b898175faa5a20a744524fd99210f
MD5 e12828d449a5a0002fd56a485685c7a2
BLAKE2b-256 d74a6aedd790b97ca897fe091cc9f1fdf9c7543cfdd1f56074e4af1d2489c7ee

See more details on using hashes here.

File details

Details for the file mwparserfromhell-0.6.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mwparserfromhell-0.6.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9136696d6b29838adcf8f428e3f7028b2c6e788fc05fe1beeb4b135429c356df
MD5 4d0b235362f24ec9f474a66679b31967
BLAKE2b-256 94c623cf7c7525af4c70573c6a86a576daa4815b0fa3385a5b62eeef0b5cd0d6

See more details on using hashes here.

File details

Details for the file mwparserfromhell-0.6.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mwparserfromhell-0.6.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ebc70f8a24aa60e54728be740f1c12a4acb1b12d1cc947d87b067cc1c83339fd
MD5 ba88488ec4cc860124241ee3b39ddce9
BLAKE2b-256 4e694fd2699c1d2db1a86e8ca02b5f1af7f49ab50c4da924c95d2dfd3be8c936

See more details on using hashes here.

File details

Details for the file mwparserfromhell-0.6.6-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for mwparserfromhell-0.6.6-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 d6995b9cfe6ec79556db0232a39210ac11aa69ee304cfc95b29c51be381e202b
MD5 2f7ddc4fb36829632015a859f42e1ec7
BLAKE2b-256 70ac91a87496212f8909f983f6f057ddd1b4ba897bf48a67e4fdecc50d37b0ec

See more details on using hashes here.

File details

Details for the file mwparserfromhell-0.6.6-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for mwparserfromhell-0.6.6-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 1960bcc5115ea57427df130150edf1dbfc2fb03465e548e630bb6eb37976d793
MD5 b802d9a58f5df5667b3a286e18f3b39e
BLAKE2b-256 720af4583a92d3489d5cbc256b12b5c88c65fb5f259d5ed0448f78f8f9f30c24

See more details on using hashes here.

File details

Details for the file mwparserfromhell-0.6.6-cp39-cp39-win32.whl.

File metadata

File hashes

Hashes for mwparserfromhell-0.6.6-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 54e2dd30edc1a358408d14343b30dcca0b4613227781e4bbee968bd4395d94ff
MD5 55b4841f9c31d8bb16e7bd60509b5231
BLAKE2b-256 633f34271ba4889a8071ee65e8fadba8116abaebfa68b684b268d7245bc4ff04

See more details on using hashes here.

File details

Details for the file mwparserfromhell-0.6.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mwparserfromhell-0.6.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1915fe4f5e5ae34f16242d4cd98da2adc81a810ab94105ec2af3dc95d7ce74aa
MD5 f97ada256db3973140cbb3a81b7e5c2d
BLAKE2b-256 cf73be45e97670103132f37d20efde2e8d391505eace17ba1962bdf1fa52212e

See more details on using hashes here.

File details

Details for the file mwparserfromhell-0.6.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mwparserfromhell-0.6.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 50c482e703d2d51401f7e36a71ae9493901f170225940196292f97398713dde5
MD5 a6f4686a7ca40a8f81a04c327454aff9
BLAKE2b-256 ffb0b47287759839cb1f3da9946c2b73f4ad324dffd319020371846d1fe3499f

See more details on using hashes here.

File details

Details for the file mwparserfromhell-0.6.6-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for mwparserfromhell-0.6.6-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 746bad799179684994ecee72a26352e0bbe2b697f6a7e35dc5ad151606bcb8ab
MD5 289e8a168456d7cadf7daed8c70e4289
BLAKE2b-256 0e3fca66ec2a86be83cbd107d12e7d8edc139ad0c18b1361123a6c311662f420

See more details on using hashes here.

File details

Details for the file mwparserfromhell-0.6.6-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for mwparserfromhell-0.6.6-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 e28ffa9a7e0748ec64002a84234201ef69c2d4a710508baf9cc25f4ee274c6bd
MD5 fe98eb5a750e83f7dad392951363c828
BLAKE2b-256 dafd73684ae8ba1dba96061d17764481a9112910c77aa5e72c15a2da1050d36a

See more details on using hashes here.

File details

Details for the file mwparserfromhell-0.6.6-cp38-cp38-win32.whl.

File metadata

File hashes

Hashes for mwparserfromhell-0.6.6-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 a58251a5d5c77abdfd061624dc05667c2774e93e8178a2fbd1a3b45f8673f1a9
MD5 aa24cd4c5181674c8f52de5aaedf08d8
BLAKE2b-256 9ef6ed9d07dc35378371e4812e2df50b2019f9d59ab2fc351ff0a222b70c0bc7

See more details on using hashes here.

File details

Details for the file mwparserfromhell-0.6.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mwparserfromhell-0.6.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1d2422659abb29191a0fa096cf8bead837ac3ecd343065569b2acc7a84ecf866
MD5 48c77db8f7784738d7ea4479d5e80730
BLAKE2b-256 7ec15780c084c0626735e330c6150ef4acb0f73f8b6b0720d79198ef6fb32483

See more details on using hashes here.

File details

Details for the file mwparserfromhell-0.6.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mwparserfromhell-0.6.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 03e03b8bec729af850457d045b04d0c9d3e296ff8bf66b455f754cccb29c3bea
MD5 c44defb199883802a455eccb48c2202d
BLAKE2b-256 a3f281c29426e1b6ec55111b068603d38188b9b067503c2ac0f95deac1363b9b

See more details on using hashes here.

File details

Details for the file mwparserfromhell-0.6.6-cp38-cp38-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for mwparserfromhell-0.6.6-cp38-cp38-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 fd05481adc0806f4b8f8f8cb309ec56924b17ce386cb1c2f73919d8a012e6b16
MD5 a8352662d56aefe28443cb5128549fc5
BLAKE2b-256 15b798e5e4fc94270cc6ec20261081b21daf0f9dda8db53003848b0794547daa

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page