mercury-python


Namemercury-python JSON
Version 2.6.1 PyPI version JSON
download
home_pagehttps://github.com/cisco/mercury-python/
SummaryPython interface into mercury's network protocol fingerprinting and analysis functionality
upload_time2024-12-18 13:53:19
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-python/",
    "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": "2.6.1",
    "project_urls": {
        "Homepage": "https://github.com/cisco/mercury-python/"
    },
    "split_keywords": [
        "tls",
        "fingerprinting",
        "network",
        "traffic",
        "analysis"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0a951cb03e4f3994fffee3f76ba14107fc0c37da6c1ca4d58b9fd8af0ac36fde",
                "md5": "a2e41a3ecc42e62289b8795c79b65e93",
                "sha256": "a8cf6672d94f735a6d215880e45c04cc2f818f12c7ba743c02e87b49cb8b48a9"
            },
            "downloads": -1,
            "filename": "mercury_python-2.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "a2e41a3ecc42e62289b8795c79b65e93",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.6.0",
            "size": 9626219,
            "upload_time": "2024-12-18T13:53:19",
            "upload_time_iso_8601": "2024-12-18T13:53:19.732433Z",
            "url": "https://files.pythonhosted.org/packages/0a/95/1cb03e4f3994fffee3f76ba14107fc0c37da6c1ca4d58b9fd8af0ac36fde/mercury_python-2.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c5fe5fc72d06754b6dfea7efd9295527b61a38139602a242fd9f78b4e548c08f",
                "md5": "7450867ee6f4a76fc9d5dad69a09ae9b",
                "sha256": "3128090bd0383415b5502a7a73b9938c964075f5439927830e2d0c93b1f12af6"
            },
            "downloads": -1,
            "filename": "mercury_python-2.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7450867ee6f4a76fc9d5dad69a09ae9b",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.6.0",
            "size": 9939769,
            "upload_time": "2024-12-18T13:53:32",
            "upload_time_iso_8601": "2024-12-18T13:53:32.518545Z",
            "url": "https://files.pythonhosted.org/packages/c5/fe/5fc72d06754b6dfea7efd9295527b61a38139602a242fd9f78b4e548c08f/mercury_python-2.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d76aeb0f9ebe0422007e548e1edca33d2e99b5fccbbed7d6988d6759ea652867",
                "md5": "fa3f6f93607fcc28ef30c2a04198b7e1",
                "sha256": "efeebb08cf0918fa9341a059fc7b0fe42ac30dc6aef343aade5d2101135d13de"
            },
            "downloads": -1,
            "filename": "mercury_python-2.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "fa3f6f93607fcc28ef30c2a04198b7e1",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.6.0",
            "size": 9646509,
            "upload_time": "2024-12-18T13:53:43",
            "upload_time_iso_8601": "2024-12-18T13:53:43.129584Z",
            "url": "https://files.pythonhosted.org/packages/d7/6a/eb0f9ebe0422007e548e1edca33d2e99b5fccbbed7d6988d6759ea652867/mercury_python-2.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "718ba44d31ebf2eca84e87884b756bda63915711c1070b495576bebed10cb9be",
                "md5": "688a7e61a3b7dbc2e702bac5e0b94508",
                "sha256": "61fcd81cee26fd80751fe960501252203a6f5afc499063de5a46e8b5c5eb65ff"
            },
            "downloads": -1,
            "filename": "mercury_python-2.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "688a7e61a3b7dbc2e702bac5e0b94508",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.6.0",
            "size": 9959362,
            "upload_time": "2024-12-18T13:53:54",
            "upload_time_iso_8601": "2024-12-18T13:53:54.345589Z",
            "url": "https://files.pythonhosted.org/packages/71/8b/a44d31ebf2eca84e87884b756bda63915711c1070b495576bebed10cb9be/mercury_python-2.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4a00bb978ac534491bddae75c1961ffeaaf2099bd8504e13b4f7ee11cb80398b",
                "md5": "fd7f4c7ca34e0986ade4cc78d0d9d63c",
                "sha256": "5248ae03de28b1d6ed397789c8fc73d62ed71c075250180f4b4598dd4196af09"
            },
            "downloads": -1,
            "filename": "mercury_python-2.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "fd7f4c7ca34e0986ade4cc78d0d9d63c",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.6.0",
            "size": 9627663,
            "upload_time": "2024-12-18T13:54:04",
            "upload_time_iso_8601": "2024-12-18T13:54:04.775356Z",
            "url": "https://files.pythonhosted.org/packages/4a/00/bb978ac534491bddae75c1961ffeaaf2099bd8504e13b4f7ee11cb80398b/mercury_python-2.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2d795baee47b327d1caa91b3bd8ff8798fce6a49919d57db58c119cfd52a0291",
                "md5": "69accccb0b95d94586e9927b82f662f2",
                "sha256": "fef2eb22462871d66f1fe8a561e770e28f8c3e0359263c64ead99218b2bad593"
            },
            "downloads": -1,
            "filename": "mercury_python-2.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "69accccb0b95d94586e9927b82f662f2",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.6.0",
            "size": 9943534,
            "upload_time": "2024-12-18T13:54:16",
            "upload_time_iso_8601": "2024-12-18T13:54:16.112832Z",
            "url": "https://files.pythonhosted.org/packages/2d/79/5baee47b327d1caa91b3bd8ff8798fce6a49919d57db58c119cfd52a0291/mercury_python-2.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1a560258e848899493d4fbd942da249d6802b0df654bc32a863a741943982212",
                "md5": "39365833143ec3572fcc68082d66c6bd",
                "sha256": "af40eec8a248626f6dd59881e8a3dc5d1d63c5cb093cd3ce6699e88bc62c7563"
            },
            "downloads": -1,
            "filename": "mercury_python-2.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "39365833143ec3572fcc68082d66c6bd",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.6.0",
            "size": 9626149,
            "upload_time": "2024-12-18T13:54:28",
            "upload_time_iso_8601": "2024-12-18T13:54:28.655347Z",
            "url": "https://files.pythonhosted.org/packages/1a/56/0258e848899493d4fbd942da249d6802b0df654bc32a863a741943982212/mercury_python-2.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fd6e641797c908240ba668f77575936604b5dae60424111edb754008027d8aee",
                "md5": "e4e4652a25d516d11dbfedfb28c755a2",
                "sha256": "2c4f451b48b37eda5c246fc7baa902a606326dbbaa7df45548c9ba9165ec7603"
            },
            "downloads": -1,
            "filename": "mercury_python-2.6.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e4e4652a25d516d11dbfedfb28c755a2",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.6.0",
            "size": 9940822,
            "upload_time": "2024-12-18T13:54:39",
            "upload_time_iso_8601": "2024-12-18T13:54:39.715516Z",
            "url": "https://files.pythonhosted.org/packages/fd/6e/641797c908240ba668f77575936604b5dae60424111edb754008027d8aee/mercury_python-2.6.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "04ec3f610e804224ed5995100a1e4cd7b33e3f8e8a2fb805b3d7fe050dad06d1",
                "md5": "2f1f85c7e7a895adaf2cced65cc569a7",
                "sha256": "c3bc1f3fba7a0d8672f96faa911930e9df149af4a0834cefe26e48038def75ad"
            },
            "downloads": -1,
            "filename": "mercury_python-2.6.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "2f1f85c7e7a895adaf2cced65cc569a7",
            "packagetype": "bdist_wheel",
            "python_version": "cp36",
            "requires_python": ">=3.6.0",
            "size": 9649735,
            "upload_time": "2024-12-18T13:54:50",
            "upload_time_iso_8601": "2024-12-18T13:54:50.202117Z",
            "url": "https://files.pythonhosted.org/packages/04/ec/3f610e804224ed5995100a1e4cd7b33e3f8e8a2fb805b3d7fe050dad06d1/mercury_python-2.6.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e361330d19c9b260d33335c72f6753c32894260e9dd450acd5cafa015387ff7b",
                "md5": "16056758e2ba90a9f1a6efce2a920d4d",
                "sha256": "d4a583c9bca2b2f7a8cd8501c5e01aeabecc72071c80151e9bd9f1fbfa2c0593"
            },
            "downloads": -1,
            "filename": "mercury_python-2.6.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "16056758e2ba90a9f1a6efce2a920d4d",
            "packagetype": "bdist_wheel",
            "python_version": "cp36",
            "requires_python": ">=3.6.0",
            "size": 9963440,
            "upload_time": "2024-12-18T13:55:02",
            "upload_time_iso_8601": "2024-12-18T13:55:02.637972Z",
            "url": "https://files.pythonhosted.org/packages/e3/61/330d19c9b260d33335c72f6753c32894260e9dd450acd5cafa015387ff7b/mercury_python-2.6.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f831969d5c94dc169fcb72005dab227d5360792069dfc778f41c9a8416cc96c1",
                "md5": "321b3542513320eb51bdc7cc0fcb1a55",
                "sha256": "af1e38debcc0df67f5211619718e272b5319aec988946c9d694d8b8e987dcb9a"
            },
            "downloads": -1,
            "filename": "mercury_python-2.6.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "321b3542513320eb51bdc7cc0fcb1a55",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.6.0",
            "size": 9610498,
            "upload_time": "2024-12-18T13:55:15",
            "upload_time_iso_8601": "2024-12-18T13:55:15.611229Z",
            "url": "https://files.pythonhosted.org/packages/f8/31/969d5c94dc169fcb72005dab227d5360792069dfc778f41c9a8416cc96c1/mercury_python-2.6.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "014db156bf2cf2da4154a4e113a8b58ad6919f8e34f6ddba01c561f655d8004a",
                "md5": "74139ec09ac0110f4ffa29b7d61a1076",
                "sha256": "22c2d838b438aaab46edf3fb1dff6665a4198c58a76dfa47fbae0b6dd8dcf140"
            },
            "downloads": -1,
            "filename": "mercury_python-2.6.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "74139ec09ac0110f4ffa29b7d61a1076",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.6.0",
            "size": 9928991,
            "upload_time": "2024-12-18T13:55:26",
            "upload_time_iso_8601": "2024-12-18T13:55:26.764728Z",
            "url": "https://files.pythonhosted.org/packages/01/4d/b156bf2cf2da4154a4e113a8b58ad6919f8e34f6ddba01c561f655d8004a/mercury_python-2.6.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "986fefff40d869e9111365f924614afe0f4935022f4d164d961059bd66227caf",
                "md5": "7bdceb78ae2aa4e157b2d08e44428922",
                "sha256": "7ceb7d9dbbeeaef73e190dcca6ca188a8065154e41323288f8b96acbdce3f823"
            },
            "downloads": -1,
            "filename": "mercury_python-2.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "7bdceb78ae2aa4e157b2d08e44428922",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.6.0",
            "size": 9633493,
            "upload_time": "2024-12-18T13:55:37",
            "upload_time_iso_8601": "2024-12-18T13:55:37.632886Z",
            "url": "https://files.pythonhosted.org/packages/98/6f/efff40d869e9111365f924614afe0f4935022f4d164d961059bd66227caf/mercury_python-2.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6d9cda6797064c91d122f806ac63951a576a41d5432ebfec33cacdfb417f259b",
                "md5": "0ca194f2d31b385c41ad22b68ffb2438",
                "sha256": "920287361c05a1814acaec900fbea8397889b83f37ae18759bc5e083d934edad"
            },
            "downloads": -1,
            "filename": "mercury_python-2.6.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0ca194f2d31b385c41ad22b68ffb2438",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.6.0",
            "size": 9954618,
            "upload_time": "2024-12-18T13:55:48",
            "upload_time_iso_8601": "2024-12-18T13:55:48.276436Z",
            "url": "https://files.pythonhosted.org/packages/6d/9c/da6797064c91d122f806ac63951a576a41d5432ebfec33cacdfb417f259b/mercury_python-2.6.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c5fd0c30f44f75dce498525c0e2056fdd38e87f305be0e4e4d80e4593cbf18d5",
                "md5": "1d6fb0a798d2efc1481518248dae92a1",
                "sha256": "8a5f1d53848cdcb1feb2a0ae034cebac075b0edce7b64287e4398987aa68c1c7"
            },
            "downloads": -1,
            "filename": "mercury_python-2.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "1d6fb0a798d2efc1481518248dae92a1",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.6.0",
            "size": 9628551,
            "upload_time": "2024-12-18T13:55:59",
            "upload_time_iso_8601": "2024-12-18T13:55:59.433516Z",
            "url": "https://files.pythonhosted.org/packages/c5/fd/0c30f44f75dce498525c0e2056fdd38e87f305be0e4e4d80e4593cbf18d5/mercury_python-2.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a87d26142e354911adf1600cd4fb1e54d5ab4bc3bddf2a18f9e4196e49c9fa3f",
                "md5": "9b9fa4afec411729d11f772ab682bfd2",
                "sha256": "af2f35e20b1ceaf12ab58dd7c9deb067d168e92bfcb52881b06242676a191b3e"
            },
            "downloads": -1,
            "filename": "mercury_python-2.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9b9fa4afec411729d11f772ab682bfd2",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.6.0",
            "size": 9941781,
            "upload_time": "2024-12-18T13:56:10",
            "upload_time_iso_8601": "2024-12-18T13:56:10.107406Z",
            "url": "https://files.pythonhosted.org/packages/a8/7d/26142e354911adf1600cd4fb1e54d5ab4bc3bddf2a18f9e4196e49c9fa3f/mercury_python-2.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-18 13:53:19",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "cisco",
    "github_project": "mercury-python",
    "github_not_found": true,
    "lcname": "mercury-python"
}
        
Elapsed time: 0.40794s