amplpy


Nameamplpy JSON
Version 0.15.2 PyPI version JSON
download
home_pagehttp://ampl.com/
SummaryPython API for AMPL
upload_time2025-07-09 16:15:43
maintainerNone
docs_urlNone
authorAMPL Optimization Inc.
requires_pythonNone
licenseBSD-3
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            
# AMPLPY: Python API for AMPL

```python
# Install Python API for AMPL
$ python -m pip install amplpy --upgrade

# Install solver modules (e.g., HiGHS, CBC, Gurobi)
$ python -m amplpy.modules install highs cbc gurobi

# Activate your license (e.g., free https://ampl.com/ce license)
$ python -m amplpy.modules activate <license-uuid>

# Import in Python
$ python
>>> from amplpy import AMPL
>>> ampl = AMPL() # instantiate AMPL object
```

```python
# Minimal example:
from amplpy import AMPL
import pandas as pd
ampl = AMPL()
ampl.eval(r"""
    set A ordered;
    param S{A, A};
    param lb default 0;
    param ub default 1;
    var w{A} >= lb <= ub;
    minimize portfolio_variance:
        sum {i in A, j in A} w[i] * S[i, j] * w[j];
    s.t. portfolio_weights:
        sum {i in A} w[i] = 1;
""")
tickers, cov_matrix = # ... pre-process data in Python
ampl.set["A"] = tickers
ampl.param["S"] = pd.DataFrame(cov_matrix, index=tickers, columns=tickers)
ampl.solve(solver="gurobi", gurobi_options="outlev=1")
assert ampl.solve_result == "solved"
sigma = ampl.get_value("sqrt(sum {i in A, j in A} w[i] * S[i, j] * w[j])")
print(f"Volatility: {sigma*100:.1f}%")
# ... post-process solution in Python
```

[[Documentation](https://amplpy.readthedocs.io/)] [[AMPL Modules for Python](https://dev.ampl.com/ampl/python/modules.html)] [[Available on Google Colab](https://colab.ampl.com/)] [[AMPL Community Edition](http://ampl.com/ce)]

`amplpy` is an interface that allows developers to access the features of [AMPL](https://ampl.com) from within Python. For a quick introduction to AMPL see [Quick Introduction to AMPL](https://dev.ampl.com/ampl/introduction.html).

In the same way that AMPL’s syntax matches naturally the mathematical description of the model, the input and output data matches naturally Python lists, sets, dictionaries, `pandas` and `numpy` objects.

All model generation and solver interaction is handled directly by AMPL, which leads to great stability and speed; the library just acts as an intermediary, and the added overhead (in terms of memory and CPU usage) depends mostly on how much data is sent and read back from AMPL, the size of the expanded model as such is irrelevant.

With `amplpy` you can model and solve large scale optimization problems in Python with the performance of heavily optimized C code without losing model readability. The same model can be deployed on applications built on different languages by just switching the API used.

## Documentation

- http://amplpy.ampl.com

## Repositories:

* GitHub Repository: https://github.com/ampl/amplpy
* PyPI Repository: https://pypi.python.org/pypi/amplpy

            

Raw data

            {
    "_id": null,
    "home_page": "http://ampl.com/",
    "name": "amplpy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": null,
    "author": "AMPL Optimization Inc.",
    "author_email": "devteam@ampl.com",
    "download_url": "https://files.pythonhosted.org/packages/f3/ca/20d8319f8c157676dbbd96c00732097d06f2c893c5715ff4c10d21ad4572/amplpy-0.15.2.tar.gz",
    "platform": "any",
    "description": "\n# AMPLPY: Python API for AMPL\n\n```python\n# Install Python API for AMPL\n$ python -m pip install amplpy --upgrade\n\n# Install solver modules (e.g., HiGHS, CBC, Gurobi)\n$ python -m amplpy.modules install highs cbc gurobi\n\n# Activate your license (e.g., free https://ampl.com/ce license)\n$ python -m amplpy.modules activate <license-uuid>\n\n# Import in Python\n$ python\n>>> from amplpy import AMPL\n>>> ampl = AMPL() # instantiate AMPL object\n```\n\n```python\n# Minimal example:\nfrom amplpy import AMPL\nimport pandas as pd\nampl = AMPL()\nampl.eval(r\"\"\"\n    set A ordered;\n    param S{A, A};\n    param lb default 0;\n    param ub default 1;\n    var w{A} >= lb <= ub;\n    minimize portfolio_variance:\n        sum {i in A, j in A} w[i] * S[i, j] * w[j];\n    s.t. portfolio_weights:\n        sum {i in A} w[i] = 1;\n\"\"\")\ntickers, cov_matrix = # ... pre-process data in Python\nampl.set[\"A\"] = tickers\nampl.param[\"S\"] = pd.DataFrame(cov_matrix, index=tickers, columns=tickers)\nampl.solve(solver=\"gurobi\", gurobi_options=\"outlev=1\")\nassert ampl.solve_result == \"solved\"\nsigma = ampl.get_value(\"sqrt(sum {i in A, j in A} w[i] * S[i, j] * w[j])\")\nprint(f\"Volatility: {sigma*100:.1f}%\")\n# ... post-process solution in Python\n```\n\n[[Documentation](https://amplpy.readthedocs.io/)] [[AMPL Modules for Python](https://dev.ampl.com/ampl/python/modules.html)] [[Available on Google Colab](https://colab.ampl.com/)] [[AMPL Community Edition](http://ampl.com/ce)]\n\n`amplpy` is an interface that allows developers to access the features of [AMPL](https://ampl.com) from within Python. For a quick introduction to AMPL see [Quick Introduction to AMPL](https://dev.ampl.com/ampl/introduction.html).\n\nIn the same way that AMPL\u2019s syntax matches naturally the mathematical description of the model, the input and output data matches naturally Python lists, sets, dictionaries, `pandas` and `numpy` objects.\n\nAll model generation and solver interaction is handled directly by AMPL, which leads to great stability and speed; the library just acts as an intermediary, and the added overhead (in terms of memory and CPU usage) depends mostly on how much data is sent and read back from AMPL, the size of the expanded model as such is irrelevant.\n\nWith `amplpy` you can model and solve large scale optimization problems in Python with the performance of heavily optimized C code without losing model readability. The same model can be deployed on applications built on different languages by just switching the API used.\n\n## Documentation\n\n- http://amplpy.ampl.com\n\n## Repositories:\n\n* GitHub Repository: https://github.com/ampl/amplpy\n* PyPI Repository: https://pypi.python.org/pypi/amplpy\n",
    "bugtrack_url": null,
    "license": "BSD-3",
    "summary": "Python API for AMPL",
    "version": "0.15.2",
    "project_urls": {
        "Download": "https://github.com/ampl/amplpy",
        "Homepage": "http://ampl.com/"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bd0c1e62f917472c4d9a1863fa2295c37c6312f9974c9b20cb2ffec6e800be43",
                "md5": "8ec14277aea0132f037e4ba2a7112161",
                "sha256": "38723b624350f290d483a3aa592ee38a68e087f6442c07d2fea8ad9563d8812c"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp310-cp310-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "8ec14277aea0132f037e4ba2a7112161",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 1087116,
            "upload_time": "2025-07-09T16:14:51",
            "upload_time_iso_8601": "2025-07-09T16:14:51.301064Z",
            "url": "https://files.pythonhosted.org/packages/bd/0c/1e62f917472c4d9a1863fa2295c37c6312f9974c9b20cb2ffec6e800be43/amplpy-0.15.2-cp310-cp310-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cef9aeccf77e066ff453d558e1438f2585906e443ce28d73d8e0ee8cfe1e2997",
                "md5": "44a32afa0894b10ee4cfefe72aaa52a1",
                "sha256": "66897f0cfb00cab7462f6c59694bc5e8a98731fef5dad374913cdb228e086cd8"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "44a32afa0894b10ee4cfefe72aaa52a1",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 827890,
            "upload_time": "2025-07-09T16:14:53",
            "upload_time_iso_8601": "2025-07-09T16:14:53.229615Z",
            "url": "https://files.pythonhosted.org/packages/ce/f9/aeccf77e066ff453d558e1438f2585906e443ce28d73d8e0ee8cfe1e2997/amplpy-0.15.2-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "34956852c10d8f0c8a13aa339b340e5ac67c5eec55600650fbd7aab04d78d490",
                "md5": "5a4d8a6e2cbb9e0fe770750e010c8dd2",
                "sha256": "d98e2127f071658b62902f6c55c3ab56257a40a765a860baf0c2b39c76b4084f"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "5a4d8a6e2cbb9e0fe770750e010c8dd2",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 2182692,
            "upload_time": "2025-07-09T16:14:56",
            "upload_time_iso_8601": "2025-07-09T16:14:56.498256Z",
            "url": "https://files.pythonhosted.org/packages/34/95/6852c10d8f0c8a13aa339b340e5ac67c5eec55600650fbd7aab04d78d490/amplpy-0.15.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b555177dbc3cfb0e7b02f5d77774212b9314e8337dd95ba6d46da5e5c6dad67a",
                "md5": "7cc5745c0a474920a50d65bd7bb0d9d5",
                "sha256": "5b52f5280b87b9a6d866784d57c95210e198882297ac17c3c735fc9201d91c23"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7cc5745c0a474920a50d65bd7bb0d9d5",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 2196620,
            "upload_time": "2025-07-09T16:14:58",
            "upload_time_iso_8601": "2025-07-09T16:14:58.746316Z",
            "url": "https://files.pythonhosted.org/packages/b5/55/177dbc3cfb0e7b02f5d77774212b9314e8337dd95ba6d46da5e5c6dad67a/amplpy-0.15.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "08df29b68156ac67c74633c59eae79e029cb33dc6862a5d5b5ec9be92c6b96c9",
                "md5": "9efd2acfaef4a656fd075343f3a2ba4a",
                "sha256": "a2f36b224a4b28f22e3a14f749844531c9c04a7ba42622705cce692638ab7b7a"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "9efd2acfaef4a656fd075343f3a2ba4a",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 1532373,
            "upload_time": "2025-07-09T16:15:00",
            "upload_time_iso_8601": "2025-07-09T16:15:00.768158Z",
            "url": "https://files.pythonhosted.org/packages/08/df/29b68156ac67c74633c59eae79e029cb33dc6862a5d5b5ec9be92c6b96c9/amplpy-0.15.2-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "242d03370cbb66aac02e67762deac52ca5e3638eec403fe62a6a4c431f89c77e",
                "md5": "f3dea62ffb82941e56ca0e69bcc35ab3",
                "sha256": "9da898bea4c0a934cc689f6f6e89723af5c70176ab0ad16b5b925856e9b483a0"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp311-cp311-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "f3dea62ffb82941e56ca0e69bcc35ab3",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 1105211,
            "upload_time": "2025-07-09T16:15:02",
            "upload_time_iso_8601": "2025-07-09T16:15:02.259596Z",
            "url": "https://files.pythonhosted.org/packages/24/2d/03370cbb66aac02e67762deac52ca5e3638eec403fe62a6a4c431f89c77e/amplpy-0.15.2-cp311-cp311-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "804fe6b39d551f77926adac0ba9699d3e81b6d8eadd753e9d362ffccc2d3c21d",
                "md5": "07b2e5c6131d22bfdcd8c23232b70691",
                "sha256": "b49de227b6cf14fc483262429345b536d1f8607e6d9343173bbdd8b6fee97fde"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "07b2e5c6131d22bfdcd8c23232b70691",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 837219,
            "upload_time": "2025-07-09T16:15:03",
            "upload_time_iso_8601": "2025-07-09T16:15:03.850221Z",
            "url": "https://files.pythonhosted.org/packages/80/4f/e6b39d551f77926adac0ba9699d3e81b6d8eadd753e9d362ffccc2d3c21d/amplpy-0.15.2-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "baaeec6dd1bac444caa7c12c54cb8f3cca6f951c66b7cf919b2f632b67b90105",
                "md5": "32c403737d822550170dc58810a3032b",
                "sha256": "3263dccd5922e6b556b88ade8871d5d2ef10898084005fe2770b0d03ea01d944"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "32c403737d822550170dc58810a3032b",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 2307992,
            "upload_time": "2025-07-09T16:15:05",
            "upload_time_iso_8601": "2025-07-09T16:15:05.507642Z",
            "url": "https://files.pythonhosted.org/packages/ba/ae/ec6dd1bac444caa7c12c54cb8f3cca6f951c66b7cf919b2f632b67b90105/amplpy-0.15.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4f68773bc89f727461035e67e6d4292e87081fd51eadb3b685f8a1a84d8fedaf",
                "md5": "f3cd0bb8278c2d80c28e5fa12a4b63be",
                "sha256": "f17b3accc489e1666d2bdc16a6bbfd4a79dc9f3525916bc3744c5ad053fec18a"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f3cd0bb8278c2d80c28e5fa12a4b63be",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 2320223,
            "upload_time": "2025-07-09T16:15:07",
            "upload_time_iso_8601": "2025-07-09T16:15:07.236945Z",
            "url": "https://files.pythonhosted.org/packages/4f/68/773bc89f727461035e67e6d4292e87081fd51eadb3b685f8a1a84d8fedaf/amplpy-0.15.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "47c0e8cfe0e5bf24ab582284fe34b9fa9ecb07167ce96408cf0b7584ceb4e54d",
                "md5": "abb51f6096a2a5957779a8df867a07c8",
                "sha256": "1fdf2eddba0c6bb4a8fd37741254499999b840e7b3b5c3f7b9961164eda228ed"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "abb51f6096a2a5957779a8df867a07c8",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 1533008,
            "upload_time": "2025-07-09T16:15:08",
            "upload_time_iso_8601": "2025-07-09T16:15:08.877818Z",
            "url": "https://files.pythonhosted.org/packages/47/c0/e8cfe0e5bf24ab582284fe34b9fa9ecb07167ce96408cf0b7584ceb4e54d/amplpy-0.15.2-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "29b196872f91959886d14a06b8f2b8bbfdbebb6485f6896336ac966ec8276fb4",
                "md5": "c23bc85b12f1dc06735db13678eda2f2",
                "sha256": "02ab01f1bde7ed4a591b320eb464c7b03ce81b9e4dc4525107e01ffaa706589c"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp312-cp312-macosx_10_13_universal2.whl",
            "has_sig": false,
            "md5_digest": "c23bc85b12f1dc06735db13678eda2f2",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 1089281,
            "upload_time": "2025-07-09T16:15:10",
            "upload_time_iso_8601": "2025-07-09T16:15:10.663387Z",
            "url": "https://files.pythonhosted.org/packages/29/b1/96872f91959886d14a06b8f2b8bbfdbebb6485f6896336ac966ec8276fb4/amplpy-0.15.2-cp312-cp312-macosx_10_13_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "149b20efc4c8952bd33ace680b8082fc95c9301162af7810635e33a691e1e311",
                "md5": "7d178db19663a248b724bd456b05d635",
                "sha256": "64024e6f6408a5eb02a0330a50f09acd29ad4430a6082c1e5b864d98c49830a1"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp312-cp312-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7d178db19663a248b724bd456b05d635",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 831841,
            "upload_time": "2025-07-09T16:15:12",
            "upload_time_iso_8601": "2025-07-09T16:15:12.969456Z",
            "url": "https://files.pythonhosted.org/packages/14/9b/20efc4c8952bd33ace680b8082fc95c9301162af7810635e33a691e1e311/amplpy-0.15.2-cp312-cp312-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "92fcd24f0513515527ac0f8988e903677e54bad1eaea3d7bc9417048e34e996c",
                "md5": "69472deaf64785e82f2698ea74d426d7",
                "sha256": "c32d19f3a2111ae5f8c2c0f5931c3d19e28fcc356c21056732490fec6916e3e6"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "69472deaf64785e82f2698ea74d426d7",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 2247493,
            "upload_time": "2025-07-09T16:15:14",
            "upload_time_iso_8601": "2025-07-09T16:15:14.629927Z",
            "url": "https://files.pythonhosted.org/packages/92/fc/d24f0513515527ac0f8988e903677e54bad1eaea3d7bc9417048e34e996c/amplpy-0.15.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1fe3673323ecd7cb6d2200d234b9b694fc604360a749afbfd6a24ba3732098bc",
                "md5": "7e6d18fee681db1120c5958067083c58",
                "sha256": "aef1066b58a517b986caf7dc740fcd587a75fc0d4eca9e474007c323c8258ca4"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7e6d18fee681db1120c5958067083c58",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 2281147,
            "upload_time": "2025-07-09T16:15:16",
            "upload_time_iso_8601": "2025-07-09T16:15:16.217210Z",
            "url": "https://files.pythonhosted.org/packages/1f/e3/673323ecd7cb6d2200d234b9b694fc604360a749afbfd6a24ba3732098bc/amplpy-0.15.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "475e092a4cd36138de0211f244806cd66d3e838a48a7795ea1ba71918219b668",
                "md5": "644a20b4cf0eb33e68964e91b9db9674",
                "sha256": "2d9f84fa8e10b6163589f575d2c67cbe1d19ac1e98aa81be7bb5b90b6c55d929"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "644a20b4cf0eb33e68964e91b9db9674",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 1520968,
            "upload_time": "2025-07-09T16:15:17",
            "upload_time_iso_8601": "2025-07-09T16:15:17.962225Z",
            "url": "https://files.pythonhosted.org/packages/47/5e/092a4cd36138de0211f244806cd66d3e838a48a7795ea1ba71918219b668/amplpy-0.15.2-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fe57dd6043ce91f4137a6af32e168fa2897b321925ae46ae3a318956e8b2535f",
                "md5": "1d28391fdf3d544da24286d10c450499",
                "sha256": "a71ef66a10363ea8f1a1de2698c8b017d5524de29800631ba88cc039a98c7d52"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp313-cp313-macosx_10_13_universal2.whl",
            "has_sig": false,
            "md5_digest": "1d28391fdf3d544da24286d10c450499",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": null,
            "size": 1085437,
            "upload_time": "2025-07-09T16:15:19",
            "upload_time_iso_8601": "2025-07-09T16:15:19.323139Z",
            "url": "https://files.pythonhosted.org/packages/fe/57/dd6043ce91f4137a6af32e168fa2897b321925ae46ae3a318956e8b2535f/amplpy-0.15.2-cp313-cp313-macosx_10_13_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bec7bff6235d2cfa8ba55a40566a3c5239772d276daa476b8e045b3b00aebf25",
                "md5": "37e520f37874356b19168f2a3c23df2b",
                "sha256": "fa2727ead72e4161acce4d1573b28cee098af298fe9bb074315810ac9bbd7770"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp313-cp313-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "37e520f37874356b19168f2a3c23df2b",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": null,
            "size": 829913,
            "upload_time": "2025-07-09T16:15:21",
            "upload_time_iso_8601": "2025-07-09T16:15:21.279545Z",
            "url": "https://files.pythonhosted.org/packages/be/c7/bff6235d2cfa8ba55a40566a3c5239772d276daa476b8e045b3b00aebf25/amplpy-0.15.2-cp313-cp313-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "21ff930302da89a163edf63c1519f9142d0e39f70bed04d3884b195bc1ab7298",
                "md5": "0c70aa2e096b69960d3b84cad36be592",
                "sha256": "460ee67b2db2134fda8db8b84a03c61c4af4b7e8e09971465fac79e656a1f989"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "0c70aa2e096b69960d3b84cad36be592",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": null,
            "size": 2244156,
            "upload_time": "2025-07-09T16:15:23",
            "upload_time_iso_8601": "2025-07-09T16:15:23.604188Z",
            "url": "https://files.pythonhosted.org/packages/21/ff/930302da89a163edf63c1519f9142d0e39f70bed04d3884b195bc1ab7298/amplpy-0.15.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "dc2b6ecc4504ebec8608769cd3ec5cb8dd0459968539a251fe1bcbe24b914928",
                "md5": "e0b1e542a9b17a39f7790da5fbc412f8",
                "sha256": "fed338a6f9f5392b3433c12858f825207e6cf990f035536efb6d03e0679d95f8"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e0b1e542a9b17a39f7790da5fbc412f8",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": null,
            "size": 2274012,
            "upload_time": "2025-07-09T16:15:25",
            "upload_time_iso_8601": "2025-07-09T16:15:25.297759Z",
            "url": "https://files.pythonhosted.org/packages/dc/2b/6ecc4504ebec8608769cd3ec5cb8dd0459968539a251fe1bcbe24b914928/amplpy-0.15.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6e41a407cf1902e2cf6f006d85a0624ea0da2b3241d8cb86fbaeaead03ef2d6f",
                "md5": "5b918856aab5cf322b2e011c1017d657",
                "sha256": "8b33fbe6bad6054fc2de27f09a6a7d3842649e0fd9f8a8198d92c62186ce6921"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "5b918856aab5cf322b2e011c1017d657",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": null,
            "size": 1522171,
            "upload_time": "2025-07-09T16:15:27",
            "upload_time_iso_8601": "2025-07-09T16:15:27.079945Z",
            "url": "https://files.pythonhosted.org/packages/6e/41/a407cf1902e2cf6f006d85a0624ea0da2b3241d8cb86fbaeaead03ef2d6f/amplpy-0.15.2-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "17aefe269da53d3ba7d0c921ca696635d81282e9032ac382455dc165fb341ef1",
                "md5": "1e7b04ba92ffe68650f16d84365fb153",
                "sha256": "3ddf933c6f4ebeb92a85852e7e0acd5ed49f90e34a331d81709d0070bd69a90a"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp38-cp38-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "1e7b04ba92ffe68650f16d84365fb153",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 1118722,
            "upload_time": "2025-07-09T16:15:28",
            "upload_time_iso_8601": "2025-07-09T16:15:28.457352Z",
            "url": "https://files.pythonhosted.org/packages/17/ae/fe269da53d3ba7d0c921ca696635d81282e9032ac382455dc165fb341ef1/amplpy-0.15.2-cp38-cp38-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "81cae17f59cf0c8901771040989eaaa85d06d1e5019f90af19f6bebccbc73f53",
                "md5": "3ebe974454df10be2609bf4497d13df7",
                "sha256": "22b45da13e2e1aa64be652bb13d32ac100b09923cf3aeceb9fd5ba9d05ebc231"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp38-cp38-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3ebe974454df10be2609bf4497d13df7",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 844054,
            "upload_time": "2025-07-09T16:15:29",
            "upload_time_iso_8601": "2025-07-09T16:15:29.709757Z",
            "url": "https://files.pythonhosted.org/packages/81/ca/e17f59cf0c8901771040989eaaa85d06d1e5019f90af19f6bebccbc73f53/amplpy-0.15.2-cp38-cp38-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8a73164b4583bb2213a9a60430c8105be0726fd142e416c836d13037709232e7",
                "md5": "2656d8aee08f4a7811c84b24a31174b3",
                "sha256": "de6170fb2b7ccff165eb015ec52e073b958d02c1b32ed456cd33461c58e834b6"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "2656d8aee08f4a7811c84b24a31174b3",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 2254563,
            "upload_time": "2025-07-09T16:15:31",
            "upload_time_iso_8601": "2025-07-09T16:15:31.289891Z",
            "url": "https://files.pythonhosted.org/packages/8a/73/164b4583bb2213a9a60430c8105be0726fd142e416c836d13037709232e7/amplpy-0.15.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b481502baba37af18eedda8e99c5a076d46eb6c10d2b1d02ad2350ec5c5768de",
                "md5": "d420e824fd37dac46f0c850d76bf8748",
                "sha256": "99e7751c2128b432ff975f3ce29ac6abb1308dd1d86519c1a8e5b794b32ac52d"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d420e824fd37dac46f0c850d76bf8748",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 2266681,
            "upload_time": "2025-07-09T16:15:32",
            "upload_time_iso_8601": "2025-07-09T16:15:32.875689Z",
            "url": "https://files.pythonhosted.org/packages/b4/81/502baba37af18eedda8e99c5a076d46eb6c10d2b1d02ad2350ec5c5768de/amplpy-0.15.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "912195ee5d6db059a13589d9a99aa9750f1935de057d74a62d885d91a8f66aaf",
                "md5": "bf03e7e292074de3dd195904c9507264",
                "sha256": "d29821fc3cf524f77a91757a717ee77576da44032b1206d33b3d955e0921c349"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "bf03e7e292074de3dd195904c9507264",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 1535899,
            "upload_time": "2025-07-09T16:15:34",
            "upload_time_iso_8601": "2025-07-09T16:15:34.719818Z",
            "url": "https://files.pythonhosted.org/packages/91/21/95ee5d6db059a13589d9a99aa9750f1935de057d74a62d885d91a8f66aaf/amplpy-0.15.2-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fb88d85600ba82e55fe09700ea2869809d370e5bab504c6521e7fd9d5ebe39fc",
                "md5": "a2b2c595a6b7346c5cc1ed54407266fb",
                "sha256": "a317bd47cadb427ef7baf1c9ff3e322cd33b2d797f397e3a9c46a3e0390984fc"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp39-cp39-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "a2b2c595a6b7346c5cc1ed54407266fb",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 1088295,
            "upload_time": "2025-07-09T16:15:36",
            "upload_time_iso_8601": "2025-07-09T16:15:36.007071Z",
            "url": "https://files.pythonhosted.org/packages/fb/88/d85600ba82e55fe09700ea2869809d370e5bab504c6521e7fd9d5ebe39fc/amplpy-0.15.2-cp39-cp39-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5f11fb99409f34468c7fcbccfdc5b3c3454b4c231200b5fbd0cc91b6cc22d87e",
                "md5": "a16408cd79e7fdd5d63844f6dd3f3d57",
                "sha256": "217d6fcbeebc6ea3e4cbb9bea8ed7e96bc365194bedddcd66e0dd831701d93f4"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a16408cd79e7fdd5d63844f6dd3f3d57",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 828600,
            "upload_time": "2025-07-09T16:15:37",
            "upload_time_iso_8601": "2025-07-09T16:15:37.306199Z",
            "url": "https://files.pythonhosted.org/packages/5f/11/fb99409f34468c7fcbccfdc5b3c3454b4c231200b5fbd0cc91b6cc22d87e/amplpy-0.15.2-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c41dbb8b17b2f1786a9bd7530aade109b36a37e34e9d82c0aac2998e5e05f82b",
                "md5": "3bb402cd44f33e499bc4167a1e31b798",
                "sha256": "157d98ffb8457f8de15d4e2c146636cd9db5d8c0eac0aaae439d3e7d47bcdb59"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "3bb402cd44f33e499bc4167a1e31b798",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 2176071,
            "upload_time": "2025-07-09T16:15:39",
            "upload_time_iso_8601": "2025-07-09T16:15:39.559539Z",
            "url": "https://files.pythonhosted.org/packages/c4/1d/bb8b17b2f1786a9bd7530aade109b36a37e34e9d82c0aac2998e5e05f82b/amplpy-0.15.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9b1361f2ca441b3d7948a57beef437cc03153b37d733a543bb16c104b794951e",
                "md5": "89e06c491076bbceb256b83923540a76",
                "sha256": "a31d1bf306005ccaa792ede9410de9aa209b69616a4956eed6bac580f57fdd9a"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "89e06c491076bbceb256b83923540a76",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 2186500,
            "upload_time": "2025-07-09T16:15:41",
            "upload_time_iso_8601": "2025-07-09T16:15:41.113526Z",
            "url": "https://files.pythonhosted.org/packages/9b/13/61f2ca441b3d7948a57beef437cc03153b37d733a543bb16c104b794951e/amplpy-0.15.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bee50e2cee63f1016213808e061f5354ec6dbe4fc57bd889177cb6d1d5a171c6",
                "md5": "0cafb3ada66d6148e9f5514efa2a7b16",
                "sha256": "7bf07cc70506b8cd81f95a0bcf78e0b54c9773490212f94629bc8fcb648b462e"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "0cafb3ada66d6148e9f5514efa2a7b16",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 1532947,
            "upload_time": "2025-07-09T16:15:42",
            "upload_time_iso_8601": "2025-07-09T16:15:42.478826Z",
            "url": "https://files.pythonhosted.org/packages/be/e5/0e2cee63f1016213808e061f5354ec6dbe4fc57bd889177cb6d1d5a171c6/amplpy-0.15.2-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f3ca20d8319f8c157676dbbd96c00732097d06f2c893c5715ff4c10d21ad4572",
                "md5": "dccfed181d0852150e5fd72ae88daf21",
                "sha256": "9efb4861545e012fa7caf71dea1c6d0af255f1300707970d032e14e6d1840293"
            },
            "downloads": -1,
            "filename": "amplpy-0.15.2.tar.gz",
            "has_sig": false,
            "md5_digest": "dccfed181d0852150e5fd72ae88daf21",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 1677032,
            "upload_time": "2025-07-09T16:15:43",
            "upload_time_iso_8601": "2025-07-09T16:15:43.949214Z",
            "url": "https://files.pythonhosted.org/packages/f3/ca/20d8319f8c157676dbbd96c00732097d06f2c893c5715ff4c10d21ad4572/amplpy-0.15.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-09 16:15:43",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ampl",
    "github_project": "amplpy",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "lcname": "amplpy"
}
        
Elapsed time: 0.72549s