mercury-python


Namemercury-python JSON
Version 0.2.0 PyPI version JSON
download
home_pagehttps://github.com/cisco/mercury/src/cython/
SummaryPython interface into mercury's network protocol fingerprinting and analysis functionality
upload_time2024-08-27 14:28:22
maintainerNone
docs_urlNone
authorBlake Anderson
requires_python>=3.6.0
licenseNone
keywords tls fingerprinting network traffic analysis
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # mercury-python

The goal of the `mercury-python` package is to expose mercury's network protocol analysis functionality via python. The cython interface is given in `mercury.pyx`.

## Installation

### Recommended Installation

```bash
pip install mercury-python
```

### From Source

You will first need to [build mercury](https://wwwin-github.cisco.com/network-intelligence/mercury-transition#building-and-installing-mercury)
and install cython and optionally wheel:

```bash
pip install cython
pip install wheel
```

Within mercury's `src/cython/` directory, `Makefile` will build the package based on the makefile target:

```bash
make        # default build in-place
make wheel  # generates pip-installable wheel file
```

## Usage

### Initialization

```python
import mercury

libmerc = mercury.Mercury()                                                            # initialization for packet parsing
libmerc = mercury.Mercury(do_analysis=True, resources=b'/<path>/<to>/<resources.tgz>') # initialization for analysis
```

### Parsing packets

```python
hex_packet = '5254001235020800273a230d08004500...'
libmerc.get_mercury_json(bytes.fromhex(hex_packet))
```

```javascript
{
    "fingerprints": {
        "tls": "tls/(0303)(13011303...)((0000)...)"
    },
    "tls": {
        "client": {
            "version": "0303",
            "random": "0d4e266cf66416689ded443b58d2b12bb2f53e8a3207148e3c8f2be2476cbd24",
            "session_id": "67b5db473da1b71fbca9ed288052032ee0d5139dcfd6ea78b4436e509703c0e4",
            "cipher_suites": "130113031302c02bc02fcca9cca8c02cc030c00ac009c013c014009c009d002f0035000a",
            "compression_methods": "00",
            "server_name": "content-signature-2.cdn.mozilla.net",
            "application_layer_protocol_negotiation": [
                "h2",
                "http/1.1"
            ],
            "session_ticket": ""
        }
    },
    "src_ip": "10.0.2.15",
    "dst_ip": "13.249.64.25",
    "protocol": 6,
    "src_port": 32972,
    "dst_port": 443,
}
```


### Analysis

There are two methods to invoke mercury's analysis functionality. The first operates on the full hex packet:

```python
libmerc.analyze_packet(bytes.fromhex(hex_packet))
```

```javascript
{
    "tls": {
        "client": {
            "server_name": "content-signature-2.cdn.mozilla.net"
        }
    },
    "fingerprint_info": {
        "status": "labeled",
        "type": "tls",
        "str_repr": "tls/1/(0303)(13011303...)[(0000)...]"
    },
    "analysis": {
        "process": "firefox",
        "score": 0.9992411956652674,
        "malware": false,
        "p_malware": 8.626882751003134e-06
    }
```

The second method operates directly on the data features (network protocol fingerprint string and destination context):

```python
libmerc.perform_analysis('tls/1/(0303)(13011303...)[(0000)...]', 'content-signature-2.cdn.mozilla.net', '13.249.64.25', 443)
```

```javascript
{
    "fingerprint_info": {
        "status": "labeled"
    },
    "analysis": {
        "process": "firefox",
        "score": 0.9992158715704546,
        "malware": false,
        "p_malware": 8.745628825189023e-06
    }
}
```


### Static functions

Parsing base64 representations of certificate data:

```python
b64_cert = 'MIIJRDC...'
mercury.parse_cert(b64_cert)
```
output:
```javascript
{
    "version": "02",
    "serial_number": "00eede6560cd35c0af02000000005971b7",
    "signature_identifier": {
        "algorithm": "sha256WithRSAEncryption"
    },
    "issuer": [
        {
            "country_name": "US"
        },
        {
            "organization_name": "Google Trust Services"
        },
        {
            "common_name": "GTS CA 1O1"
        }
    ],
    ...
```

Parsing base64 representations of DNS data:

```python
b64_dns = '1e2BgAAB...'
mercury.parse_dns(b64_dns)
```
output:
```javascript
{
    "response": {
        "question": [
            {
                "name": "live.github.com.",
                "type": "AAAA",
                "class": "IN"
            }
        ],
        ...
```


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/cisco/mercury/src/cython/",
    "name": "mercury-python",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6.0",
    "maintainer_email": null,
    "keywords": "tls fingerprinting network traffic analysis",
    "author": "Blake Anderson",
    "author_email": "blake.anderson@cisco.com",
    "download_url": null,
    "platform": null,
    "description": "# mercury-python\n\nThe goal of the `mercury-python` package is to expose mercury's network protocol analysis functionality via python. The cython interface is given in `mercury.pyx`.\n\n## Installation\n\n### Recommended Installation\n\n```bash\npip install mercury-python\n```\n\n### From Source\n\nYou will first need to [build mercury](https://wwwin-github.cisco.com/network-intelligence/mercury-transition#building-and-installing-mercury)\nand install cython and optionally wheel:\n\n```bash\npip install cython\npip install wheel\n```\n\nWithin mercury's `src/cython/` directory, `Makefile` will build the package based on the makefile target:\n\n```bash\nmake        # default build in-place\nmake wheel  # generates pip-installable wheel file\n```\n\n## Usage\n\n### Initialization\n\n```python\nimport mercury\n\nlibmerc = mercury.Mercury()                                                            # initialization for packet parsing\nlibmerc = mercury.Mercury(do_analysis=True, resources=b'/<path>/<to>/<resources.tgz>') # initialization for analysis\n```\n\n### Parsing packets\n\n```python\nhex_packet = '5254001235020800273a230d08004500...'\nlibmerc.get_mercury_json(bytes.fromhex(hex_packet))\n```\n\n```javascript\n{\n    \"fingerprints\": {\n        \"tls\": \"tls/(0303)(13011303...)((0000)...)\"\n    },\n    \"tls\": {\n        \"client\": {\n            \"version\": \"0303\",\n            \"random\": \"0d4e266cf66416689ded443b58d2b12bb2f53e8a3207148e3c8f2be2476cbd24\",\n            \"session_id\": \"67b5db473da1b71fbca9ed288052032ee0d5139dcfd6ea78b4436e509703c0e4\",\n            \"cipher_suites\": \"130113031302c02bc02fcca9cca8c02cc030c00ac009c013c014009c009d002f0035000a\",\n            \"compression_methods\": \"00\",\n            \"server_name\": \"content-signature-2.cdn.mozilla.net\",\n            \"application_layer_protocol_negotiation\": [\n                \"h2\",\n                \"http/1.1\"\n            ],\n            \"session_ticket\": \"\"\n        }\n    },\n    \"src_ip\": \"10.0.2.15\",\n    \"dst_ip\": \"13.249.64.25\",\n    \"protocol\": 6,\n    \"src_port\": 32972,\n    \"dst_port\": 443,\n}\n```\n\n\n### Analysis\n\nThere are two methods to invoke mercury's analysis functionality. The first operates on the full hex packet:\n\n```python\nlibmerc.analyze_packet(bytes.fromhex(hex_packet))\n```\n\n```javascript\n{\n    \"tls\": {\n        \"client\": {\n            \"server_name\": \"content-signature-2.cdn.mozilla.net\"\n        }\n    },\n    \"fingerprint_info\": {\n        \"status\": \"labeled\",\n        \"type\": \"tls\",\n        \"str_repr\": \"tls/1/(0303)(13011303...)[(0000)...]\"\n    },\n    \"analysis\": {\n        \"process\": \"firefox\",\n        \"score\": 0.9992411956652674,\n        \"malware\": false,\n        \"p_malware\": 8.626882751003134e-06\n    }\n```\n\nThe second method operates directly on the data features (network protocol fingerprint string and destination context):\n\n```python\nlibmerc.perform_analysis('tls/1/(0303)(13011303...)[(0000)...]', 'content-signature-2.cdn.mozilla.net', '13.249.64.25', 443)\n```\n\n```javascript\n{\n    \"fingerprint_info\": {\n        \"status\": \"labeled\"\n    },\n    \"analysis\": {\n        \"process\": \"firefox\",\n        \"score\": 0.9992158715704546,\n        \"malware\": false,\n        \"p_malware\": 8.745628825189023e-06\n    }\n}\n```\n\n\n### Static functions\n\nParsing base64 representations of certificate data:\n\n```python\nb64_cert = 'MIIJRDC...'\nmercury.parse_cert(b64_cert)\n```\noutput:\n```javascript\n{\n    \"version\": \"02\",\n    \"serial_number\": \"00eede6560cd35c0af02000000005971b7\",\n    \"signature_identifier\": {\n        \"algorithm\": \"sha256WithRSAEncryption\"\n    },\n    \"issuer\": [\n        {\n            \"country_name\": \"US\"\n        },\n        {\n            \"organization_name\": \"Google Trust Services\"\n        },\n        {\n            \"common_name\": \"GTS CA 1O1\"\n        }\n    ],\n    ...\n```\n\nParsing base64 representations of DNS data:\n\n```python\nb64_dns = '1e2BgAAB...'\nmercury.parse_dns(b64_dns)\n```\noutput:\n```javascript\n{\n    \"response\": {\n        \"question\": [\n            {\n                \"name\": \"live.github.com.\",\n                \"type\": \"AAAA\",\n                \"class\": \"IN\"\n            }\n        ],\n        ...\n```\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Python interface into mercury's network protocol fingerprinting and analysis functionality",
    "version": "0.2.0",
    "project_urls": {
        "Homepage": "https://github.com/cisco/mercury/src/cython/"
    },
    "split_keywords": [
        "tls",
        "fingerprinting",
        "network",
        "traffic",
        "analysis"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "10c34798a38438a07fc2f8b1453ab7c97ed10ee64df3410f3319d6edad881877",
                "md5": "ca327ff0557eee1bc75e7f8485dbdbcd",
                "sha256": "3a29439f5275acdaf3ee5afcf9ba8e9961dafb2f6367fc1ae0570c7a1ff8bee6"
            },
            "downloads": -1,
            "filename": "mercury_python-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "ca327ff0557eee1bc75e7f8485dbdbcd",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.6.0",
            "size": 9078320,
            "upload_time": "2024-08-27T14:28:22",
            "upload_time_iso_8601": "2024-08-27T14:28:22.331214Z",
            "url": "https://files.pythonhosted.org/packages/10/c3/4798a38438a07fc2f8b1453ab7c97ed10ee64df3410f3319d6edad881877/mercury_python-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4b7da15a9cbb94d55689a860e5c3f3ed5d3ea4f1bfeeb67de01ddb810f7fb2ce",
                "md5": "4cad9d750053bdd6f6659db8436f7963",
                "sha256": "0af67640ecb5d37920f7d62f8a9ee338322b461b6d5546bd1ff7ab4cebc2c7a9"
            },
            "downloads": -1,
            "filename": "mercury_python-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4cad9d750053bdd6f6659db8436f7963",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.6.0",
            "size": 9387087,
            "upload_time": "2024-08-27T14:28:37",
            "upload_time_iso_8601": "2024-08-27T14:28:37.403730Z",
            "url": "https://files.pythonhosted.org/packages/4b/7d/a15a9cbb94d55689a860e5c3f3ed5d3ea4f1bfeeb67de01ddb810f7fb2ce/mercury_python-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "550c116d312f8e317838fae27f24a7088b9a009b8035a7a81b79de7738be2984",
                "md5": "e71c059528f4bd7373cf0d8f1450f78f",
                "sha256": "daddaf1d680fa74708ec643dc3f595a75c275cb968b3bf9ae8efda06542d7a46"
            },
            "downloads": -1,
            "filename": "mercury_python-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "e71c059528f4bd7373cf0d8f1450f78f",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.6.0",
            "size": 9096819,
            "upload_time": "2024-08-27T14:28:52",
            "upload_time_iso_8601": "2024-08-27T14:28:52.042190Z",
            "url": "https://files.pythonhosted.org/packages/55/0c/116d312f8e317838fae27f24a7088b9a009b8035a7a81b79de7738be2984/mercury_python-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "368017796498fecd5ad1d454f243a0a1f7ba9f61218de0c61aa9d47a97726287",
                "md5": "e84d7da6ed50bd2d01772b83a999f6f1",
                "sha256": "dcff50a53301aea6bc1d5f010a0702b763b68b6bc676492067bbc0c4c7531c63"
            },
            "downloads": -1,
            "filename": "mercury_python-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e84d7da6ed50bd2d01772b83a999f6f1",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.6.0",
            "size": 9406788,
            "upload_time": "2024-08-27T14:29:07",
            "upload_time_iso_8601": "2024-08-27T14:29:07.321150Z",
            "url": "https://files.pythonhosted.org/packages/36/80/17796498fecd5ad1d454f243a0a1f7ba9f61218de0c61aa9d47a97726287/mercury_python-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ae4339ee3ff9074de6297ebfb570298af89458c4f31af65f5bc6f875da60cbe6",
                "md5": "92dcb19205bff420254d6d8908ff6f90",
                "sha256": "be1577dd341837eeaae75695e45f549cc8cae08e0d41b55d3f6c20c9b2164c0c"
            },
            "downloads": -1,
            "filename": "mercury_python-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "92dcb19205bff420254d6d8908ff6f90",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.6.0",
            "size": 9073901,
            "upload_time": "2024-08-27T14:29:22",
            "upload_time_iso_8601": "2024-08-27T14:29:22.295389Z",
            "url": "https://files.pythonhosted.org/packages/ae/43/39ee3ff9074de6297ebfb570298af89458c4f31af65f5bc6f875da60cbe6/mercury_python-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c375e28c5366d115250e725f8ae5438a6b05ce267123f525026e92f52c697326",
                "md5": "9440e07ce512dcfe8bba48b76378b4bb",
                "sha256": "de0642ef9d7cfba712373d08958f0e92230e47ae8a438abb896cd37b24ae0b99"
            },
            "downloads": -1,
            "filename": "mercury_python-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9440e07ce512dcfe8bba48b76378b4bb",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.6.0",
            "size": 9383183,
            "upload_time": "2024-08-27T14:29:38",
            "upload_time_iso_8601": "2024-08-27T14:29:38.547443Z",
            "url": "https://files.pythonhosted.org/packages/c3/75/e28c5366d115250e725f8ae5438a6b05ce267123f525026e92f52c697326/mercury_python-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3e431a409646ab3504516c387ee303fdcbad73901c14b66a801f5fd3194836f8",
                "md5": "0f550d0890e69064366270b83a6e159c",
                "sha256": "3802fa59de124da7c0b8c29c0a0b5841b3b3961dd5caa77472f8242ec4642b61"
            },
            "downloads": -1,
            "filename": "mercury_python-0.2.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "0f550d0890e69064366270b83a6e159c",
            "packagetype": "bdist_wheel",
            "python_version": "cp36",
            "requires_python": ">=3.6.0",
            "size": 9094118,
            "upload_time": "2024-08-27T14:29:53",
            "upload_time_iso_8601": "2024-08-27T14:29:53.554620Z",
            "url": "https://files.pythonhosted.org/packages/3e/43/1a409646ab3504516c387ee303fdcbad73901c14b66a801f5fd3194836f8/mercury_python-0.2.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "378b15147d60ff3f6dc1c0f3f8f97c6d25ebb2091704aa706b102630e682be1e",
                "md5": "6b0e4d2d0c40bb66a9988719f60c1f29",
                "sha256": "1420e13642c8b67e1984083ee2ff0726d3291fc5aadb1e337113f576da24aa91"
            },
            "downloads": -1,
            "filename": "mercury_python-0.2.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6b0e4d2d0c40bb66a9988719f60c1f29",
            "packagetype": "bdist_wheel",
            "python_version": "cp36",
            "requires_python": ">=3.6.0",
            "size": 9406802,
            "upload_time": "2024-08-27T14:30:08",
            "upload_time_iso_8601": "2024-08-27T14:30:08.562103Z",
            "url": "https://files.pythonhosted.org/packages/37/8b/15147d60ff3f6dc1c0f3f8f97c6d25ebb2091704aa706b102630e682be1e/mercury_python-0.2.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d3f8779a1cabe192276e6b29d60d5744f0912c4c2324d71e01e78de1c35de3ac",
                "md5": "42cb01ecb8c3397ec50986f7193ad4ed",
                "sha256": "718d0e55d9c8880d59d3a827cf00451258ad8ec1042178c0ec5a2663de2dc370"
            },
            "downloads": -1,
            "filename": "mercury_python-0.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "42cb01ecb8c3397ec50986f7193ad4ed",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.6.0",
            "size": 9065918,
            "upload_time": "2024-08-27T14:30:22",
            "upload_time_iso_8601": "2024-08-27T14:30:22.986183Z",
            "url": "https://files.pythonhosted.org/packages/d3/f8/779a1cabe192276e6b29d60d5744f0912c4c2324d71e01e78de1c35de3ac/mercury_python-0.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5fca328ae5bbaba1eda07100d66d25bd643ba9ff9a010baaf0f0e76a00961d28",
                "md5": "6dff851d90ef877a1d4628fb88a49f7c",
                "sha256": "128556f7527614aff8d9303cff7d0cc3b1df2329ed7bc31feab5a14c22e613b6"
            },
            "downloads": -1,
            "filename": "mercury_python-0.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6dff851d90ef877a1d4628fb88a49f7c",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.6.0",
            "size": 9374126,
            "upload_time": "2024-08-27T14:30:39",
            "upload_time_iso_8601": "2024-08-27T14:30:39.814119Z",
            "url": "https://files.pythonhosted.org/packages/5f/ca/328ae5bbaba1eda07100d66d25bd643ba9ff9a010baaf0f0e76a00961d28/mercury_python-0.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "937fa33caecabc8fd63ce1ffe972c4a230dd25408531b0319044b3a9ec7adc4f",
                "md5": "04e09d109babe341226b10a6f83ffe66",
                "sha256": "abb37ee06c2a544daa5007808bd332f0f62e6701463a8510df03d139778187e1"
            },
            "downloads": -1,
            "filename": "mercury_python-0.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "04e09d109babe341226b10a6f83ffe66",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.6.0",
            "size": 9090427,
            "upload_time": "2024-08-27T14:30:55",
            "upload_time_iso_8601": "2024-08-27T14:30:55.118430Z",
            "url": "https://files.pythonhosted.org/packages/93/7f/a33caecabc8fd63ce1ffe972c4a230dd25408531b0319044b3a9ec7adc4f/mercury_python-0.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d5e8914db742d64b038b13a65c17d37f3da66037b2026fb56a3e0eb954415854",
                "md5": "3f3134aabd6348679495691af285c88a",
                "sha256": "e932dd207ac51f7ed15b4256746d4db767bee096c17bb99ab56c6ccfc1be6678"
            },
            "downloads": -1,
            "filename": "mercury_python-0.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3f3134aabd6348679495691af285c88a",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.6.0",
            "size": 9398676,
            "upload_time": "2024-08-27T14:31:10",
            "upload_time_iso_8601": "2024-08-27T14:31:10.239122Z",
            "url": "https://files.pythonhosted.org/packages/d5/e8/914db742d64b038b13a65c17d37f3da66037b2026fb56a3e0eb954415854/mercury_python-0.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d71bf4e355c71857d16b8ffd132205cc78bc835f18cd4b8a6a928e0f297e57b9",
                "md5": "2d27ddf9096d7f65239f7ac28ab19728",
                "sha256": "64be8728369bdc7b38a31d597690d1bf306ec5ebf03050c71ee0fe1b6add49b1"
            },
            "downloads": -1,
            "filename": "mercury_python-0.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "2d27ddf9096d7f65239f7ac28ab19728",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.6.0",
            "size": 9079907,
            "upload_time": "2024-08-27T14:31:25",
            "upload_time_iso_8601": "2024-08-27T14:31:25.016245Z",
            "url": "https://files.pythonhosted.org/packages/d7/1b/f4e355c71857d16b8ffd132205cc78bc835f18cd4b8a6a928e0f297e57b9/mercury_python-0.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6ec10ca7ac2256d13b3cb2f80108cfeb5774fbe54da7b74aa2e43fb27ca9b3c0",
                "md5": "cf0d2b98f0a13fbc8a1f4ab5947d9142",
                "sha256": "bf39561989e23d2b8291f67eeaa5f97913c11563c7ae8b78855cf1a71da488ba"
            },
            "downloads": -1,
            "filename": "mercury_python-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "cf0d2b98f0a13fbc8a1f4ab5947d9142",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.6.0",
            "size": 9389776,
            "upload_time": "2024-08-27T14:31:40",
            "upload_time_iso_8601": "2024-08-27T14:31:40.023499Z",
            "url": "https://files.pythonhosted.org/packages/6e/c1/0ca7ac2256d13b3cb2f80108cfeb5774fbe54da7b74aa2e43fb27ca9b3c0/mercury_python-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9abeb3193a413925678ce17b35854de5afa7cd9748751f4cdf5f04fd69e691f1",
                "md5": "41d9e7b16175206f21d4d6e810a8b136",
                "sha256": "264e8b85bcf0503ffc1a4d2761376fbcc1aa50e0ca78f74089f923f5f5e08b1f"
            },
            "downloads": -1,
            "filename": "mercury_python-0.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "41d9e7b16175206f21d4d6e810a8b136",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.6.0",
            "size": 1445155,
            "upload_time": "2024-08-27T14:31:44",
            "upload_time_iso_8601": "2024-08-27T14:31:44.206832Z",
            "url": "https://files.pythonhosted.org/packages/9a/be/b3193a413925678ce17b35854de5afa7cd9748751f4cdf5f04fd69e691f1/mercury_python-0.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c379d412c8176890122ab89253485850af27a28be1c197b487bafd7004f0e0f0",
                "md5": "8e8e1dd49c64438c17950a4b6c6f104d",
                "sha256": "4760b62ca6a96d95d53cfdbf30b112b1c97bcf20397d89f063711767d1660681"
            },
            "downloads": -1,
            "filename": "mercury_python-0.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8e8e1dd49c64438c17950a4b6c6f104d",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.6.0",
            "size": 1681698,
            "upload_time": "2024-08-27T14:31:48",
            "upload_time_iso_8601": "2024-08-27T14:31:48.222724Z",
            "url": "https://files.pythonhosted.org/packages/c3/79/d412c8176890122ab89253485850af27a28be1c197b487bafd7004f0e0f0/mercury_python-0.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c399b30224a69c11963f4aded0fa5735488f48c0a49047a1c2e0087219e83d8b",
                "md5": "37db668dd8529e87282b02ed66b5d2a5",
                "sha256": "eef16700aa2c906b8632085e30d90d82e1da49cef9fb272c92a5a9f4dc1f3818"
            },
            "downloads": -1,
            "filename": "mercury_python-0.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "37db668dd8529e87282b02ed66b5d2a5",
            "packagetype": "bdist_wheel",
            "python_version": "pp37",
            "requires_python": ">=3.6.0",
            "size": 1452115,
            "upload_time": "2024-08-27T14:31:51",
            "upload_time_iso_8601": "2024-08-27T14:31:51.868505Z",
            "url": "https://files.pythonhosted.org/packages/c3/99/b30224a69c11963f4aded0fa5735488f48c0a49047a1c2e0087219e83d8b/mercury_python-0.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "387e45536366f604ff34487fbf779c5bc4d800b16341477b9f1d13d0bf85d189",
                "md5": "79457c84eced8402f739e83c6c4fc75a",
                "sha256": "169d57506bfb0154dd34dbe83884d08e5fac405c2ba087654b67372e3eca76cf"
            },
            "downloads": -1,
            "filename": "mercury_python-0.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "79457c84eced8402f739e83c6c4fc75a",
            "packagetype": "bdist_wheel",
            "python_version": "pp37",
            "requires_python": ">=3.6.0",
            "size": 1690231,
            "upload_time": "2024-08-27T14:31:56",
            "upload_time_iso_8601": "2024-08-27T14:31:56.184014Z",
            "url": "https://files.pythonhosted.org/packages/38/7e/45536366f604ff34487fbf779c5bc4d800b16341477b9f1d13d0bf85d189/mercury_python-0.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "357d5a8d4d8a3d33ebe5ee57d0114704b4f85395fb368c16c6e2a103dd3722e2",
                "md5": "09018cbc1760e74178ebd4ce43a31df2",
                "sha256": "7c01ccb4bd214edcd08e6306c4f27855f196666ba8e4bd5f8568f4ca5c02a17e"
            },
            "downloads": -1,
            "filename": "mercury_python-0.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "09018cbc1760e74178ebd4ce43a31df2",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.6.0",
            "size": 1447544,
            "upload_time": "2024-08-27T14:31:59",
            "upload_time_iso_8601": "2024-08-27T14:31:59.870456Z",
            "url": "https://files.pythonhosted.org/packages/35/7d/5a8d4d8a3d33ebe5ee57d0114704b4f85395fb368c16c6e2a103dd3722e2/mercury_python-0.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "37eb29d53c4d4d2e8acec4663014804feed83ea4e8d683e0ebd5170e4b197f3b",
                "md5": "1e956dc9d234b4d4d196c7cdb6fe9b38",
                "sha256": "46d4be98b85c618f6f9388fc8280f1f21263d7aa3d2230e50b2a25341366f0a4"
            },
            "downloads": -1,
            "filename": "mercury_python-0.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1e956dc9d234b4d4d196c7cdb6fe9b38",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.6.0",
            "size": 1683175,
            "upload_time": "2024-08-27T14:32:03",
            "upload_time_iso_8601": "2024-08-27T14:32:03.796260Z",
            "url": "https://files.pythonhosted.org/packages/37/eb/29d53c4d4d2e8acec4663014804feed83ea4e8d683e0ebd5170e4b197f3b/mercury_python-0.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9857fdeb5765e2258af9612bfc5dcabe9f4adbc2e63d7aff29ddc755b7c44d74",
                "md5": "c5baddd863b5e4371c57f744b320d1fc",
                "sha256": "db42b9502b8d6f39dfef6d0f7284a19633ad04411c21c1ac18c97638edbef7bf"
            },
            "downloads": -1,
            "filename": "mercury_python-0.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "c5baddd863b5e4371c57f744b320d1fc",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.6.0",
            "size": 1445637,
            "upload_time": "2024-08-27T14:32:07",
            "upload_time_iso_8601": "2024-08-27T14:32:07.462770Z",
            "url": "https://files.pythonhosted.org/packages/98/57/fdeb5765e2258af9612bfc5dcabe9f4adbc2e63d7aff29ddc755b7c44d74/mercury_python-0.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d2f7288d2de07da65879b94205dbae5a881e37ffe6f810d37027210ab5e032e5",
                "md5": "cc68d4133f8c457cb96b5bc6683ac6fd",
                "sha256": "49f69a329f7e976da5c933f501dcbf79bd379ac93383348c2a591e12523cc71f"
            },
            "downloads": -1,
            "filename": "mercury_python-0.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "cc68d4133f8c457cb96b5bc6683ac6fd",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.6.0",
            "size": 1681764,
            "upload_time": "2024-08-27T14:32:12",
            "upload_time_iso_8601": "2024-08-27T14:32:12.714063Z",
            "url": "https://files.pythonhosted.org/packages/d2/f7/288d2de07da65879b94205dbae5a881e37ffe6f810d37027210ab5e032e5/mercury_python-0.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-27 14:28:22",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "cisco",
    "github_project": "mercury",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "mercury-python"
}
        
Elapsed time: 0.40754s