Name | trustregion JSON |
Version |
1.2.1
JSON |
| download |
home_page | None |
Summary | Trust-region subproblem solvers for nonlinear/nonconvex optimization |
upload_time | 2024-05-31 02:16:57 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.8 |
license | GPL-3.0-or-later |
keywords |
mathematics
optimization
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
===========================================
trustregion: Trust-region subproblem solver
===========================================
.. image:: https://github.com/lindonroberts/trust-region/actions/workflows/python_testing.yml/badge.svg
:target: https://github.com/lindonroberts/trust-region/actions
:alt: Build Status
.. image:: https://img.shields.io/badge/License-GPL%20v3-blue.svg
:target: https://www.gnu.org/licenses/gpl-3.0
:alt: GNU GPL v3 License
.. image:: https://img.shields.io/pypi/v/trustregion.svg
:target: https://pypi.python.org/pypi/trustregion
:alt: Latest PyPI version
This package provides Python routines for solving the trust-region subproblem from nonlinear, nonconvex optimization. For more details on trust-region methods, see the book: A. R. Conn, N. I. M. Gould and Ph. L. Toint (2000), Trust-Region Methods, MPS-SIAM Series on Optimization.
The trust-region subproblem we solve is
.. code-block::
min_{s in R^n} g^T s + 0.5 s^T H s, subject to ||s||_2 <= delta (and sl <= s <= su)
**Quick install**
.. code-block:: bash
$ sudo apt-get install gfortran
$ pip install --user numpy
$ pip install --user trustregion
For more details, see below. Note that NumPy must be installed first, as it is used to compile the Fortran-linked modules.
**Interface**
The Python package :code:`trustregion` provides one routine, :code:`solve`, with interface:
.. code-block:: python
import trustregion
s = trustregion.solve(g, H, delta, sl=None, su=None, verbose_output=False)
s, gnew, crvmin = trustregion.solve(g, H, delta, sl=None, su=None, verbose_output=True)
where the inputs are
* :code:`g`, the gradient of the objective (as a 1D NumPy array)
* :code:`H`, the symmetric Hessian matrix of the objective (as a 2D square NumPy array) - this can be :code:`None` if the model is linear
* :code:`delta`, the trust-region radius (non-negative float)
* :code:`sl`, the lower bounds on the step (as a 1D NumPy array) - this can be :code:`None` if not present, but :code:`sl` and :code:`su` must either be both :code:`None` or both set
* :code:`su`, the upper bounds on the step (as a 1D NumPy array) - this can be :code:`None` if not present, but :code:`sl` and :code:`su` must either be both :code:`None` or both set
* :code:`verbose_output`, a flag indicating which outputs to return.
The outputs are:
* :code:`s`, an approximate minimizer of the subproblem (as a 1D NumPy array)
* :code:`gnew`, the gradient of the objective at the solution :code:`s` (i.e. :code:`gnew = g + H.dot(s)`)
* :code:`crvmin`, a float giving information about the curvature of the problem. If :code:`s` is on the trust-region boundary (given by :code:`delta`), then :code:`crvmin=0`. If :code:`s` is constrained in all directions by the box constraints, then :code:`crvmin=-1`. Otherwise, :code:`crvmin>0` is the smallest curvature seen in the Hessian.
**Example Usage**
Examples for the use of :code:`trustregion.solve` can be found in the `examples <https://github.com/lindonroberts/trust-region/tree/master/examples>`_ directory on Github.
**Algorithms**
:code:`trustregion` implements three different methods for solving the subproblem, based on the problem class (in Fortran 90, wrapped to Python):
* :code:`trslin.f90` solves the linear objective case (where :code:`H=None` or :code:`H=0`), using Algorithm B.1 from: L. Roberts (2019), `Derivative-Free Algorithms for Nonlinear Optimisation Problems <https://ora.ox.ac.uk/objects/uuid:ec76e895-6eee-491a-88ed-b4ed10fa6003>`_, PhD Thesis, University of Oxford.
* :code:`trsapp.f90` solves the quadratic case without box constraints. It is a minor modification of the routine of the same name in :code:`NEWUOA` [M. J. D. Powell (2004), `The NEWUOA software for unconstrained optimization without derivatives <http://www.damtp.cam.ac.uk/user/na/NA_papers/NA2004_08.pdf>`_, technical report DAMTP 2004/NA05, University of Cambridge].
* :code:`trsbox.f90` solves the quadratic case with box constraints. It is a minor modification of the routine of the same name in :code:`BOBYQA` [M. J. D. Powell (2009), `The BOBYQA algorithm for bound constrained optimization without derivatives <http://www.damtp.cam.ac.uk/user/na/NA_papers/NA2009_06.pdf>`_, technical report DAMTP 2009/NA06, University of Cambridge].
In the linear case, an active-set method is used to solve the resulting convex problem. In the quadratic cases, a modification of the Steihaug-Toint/conjugate gradient method is used. For more details, see the relevant references above.
Requirements
------------
:code:`trustregion` requires the following software to be installed:
* Fortran compiler (e.g. gfortran)
* Python 3.8 or higher (http://www.python.org/)
Additionally, the following python packages should be installed (these will be installed automatically if using *pip*, see `Installation using pip`_):
* NumPy (http://www.numpy.org/)
Installation using pip
----------------------
For easy installation, use `pip <http://www.pip-installer.org/>`_ as root:
.. code-block:: bash
$ [sudo] pip install numpy
$ [sudo] pip install trustregion
Note that NumPy should be installed before :code:`trustregion`, as it is used to compile the Fortran modules.
If you do not have root privileges or you want to install :code:`trustregion` for your private use, you can use:
.. code-block:: bash
$ pip install --user numpy
$ pip install --user trustregion
which will install :code:`trustregion` in your home directory.
Note that if an older install of :code:`trustregion` is present on your system you can use:
.. code-block:: bash
$ [sudo] pip install --upgrade trustregion
to upgrade :code:`trustregion` to the latest version.
Manual installation
-------------------
Alternatively, you can download the source code from `Github <https://github.com/lindonroberts/trust-region>`_ and unpack as follows:
.. code-block:: bash
$ git clone https://github.com/lindonroberts/trust-region
$ cd trust-region
To upgrade :code:`trustregion` to the latest version, navigate to the top-level directory (i.e. the one containing :code:`setup.py`) and rerun the installation using :code:`pip`, as above:
.. code-block:: bash
$ git pull
$ [sudo] pip install . # with admin privileges
Testing
-------
If you installed :code:`trustregion` manually, you can test your installation by running:
.. code-block:: bash
$ pip install pytest
$ cd trustregion/tests
$ python -m pytest
Alternatively, the documentation provides some simple examples of how to run :code:`trustregion`.
Uninstallation
--------------
If :code:`trustregion` was installed using *pip* you can uninstall as follows:
.. code-block:: bash
$ [sudo] pip uninstall trustregion
If :code:`trustregion` was installed manually you have to remove the installed files by hand (located in your python site-packages directory).
Bugs
----
Please report any bugs using GitHub's issue tracker.
License
-------
This algorithm is released under the GNU GPL license.
Raw data
{
"_id": null,
"home_page": null,
"name": "trustregion",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "Lindon Roberts <lindon.roberts@sydney.edu.au>",
"keywords": "mathematics, optimization",
"author": null,
"author_email": "Lindon Roberts <lindon.roberts@sydney.edu.au>",
"download_url": "https://files.pythonhosted.org/packages/1c/e6/d6156baebf625e0b98ca49ae4cca0375357a343e983a2542be2bfc226fda/trustregion-1.2.1.tar.gz",
"platform": null,
"description": "===========================================\ntrustregion: Trust-region subproblem solver\n===========================================\n\n.. image:: https://github.com/lindonroberts/trust-region/actions/workflows/python_testing.yml/badge.svg\n :target: https://github.com/lindonroberts/trust-region/actions\n :alt: Build Status\n\n.. image:: https://img.shields.io/badge/License-GPL%20v3-blue.svg\n :target: https://www.gnu.org/licenses/gpl-3.0\n :alt: GNU GPL v3 License\n\n.. image:: https://img.shields.io/pypi/v/trustregion.svg\n :target: https://pypi.python.org/pypi/trustregion\n :alt: Latest PyPI version\n\nThis package provides Python routines for solving the trust-region subproblem from nonlinear, nonconvex optimization. For more details on trust-region methods, see the book: A. R. Conn, N. I. M. Gould and Ph. L. Toint (2000), Trust-Region Methods, MPS-SIAM Series on Optimization.\n\nThe trust-region subproblem we solve is\n\n.. code-block::\n\n min_{s in R^n} g^T s + 0.5 s^T H s, subject to ||s||_2 <= delta (and sl <= s <= su)\n\n**Quick install**\n\n .. code-block:: bash\n\n $ sudo apt-get install gfortran\n $ pip install --user numpy\n $ pip install --user trustregion\n\nFor more details, see below. Note that NumPy must be installed first, as it is used to compile the Fortran-linked modules.\n\n**Interface** \n\nThe Python package :code:`trustregion` provides one routine, :code:`solve`, with interface:\n\n .. code-block:: python\n\n import trustregion\n s = trustregion.solve(g, H, delta, sl=None, su=None, verbose_output=False)\n s, gnew, crvmin = trustregion.solve(g, H, delta, sl=None, su=None, verbose_output=True)\n\nwhere the inputs are\n\n* :code:`g`, the gradient of the objective (as a 1D NumPy array)\n* :code:`H`, the symmetric Hessian matrix of the objective (as a 2D square NumPy array) - this can be :code:`None` if the model is linear\n* :code:`delta`, the trust-region radius (non-negative float)\n* :code:`sl`, the lower bounds on the step (as a 1D NumPy array) - this can be :code:`None` if not present, but :code:`sl` and :code:`su` must either be both :code:`None` or both set\n* :code:`su`, the upper bounds on the step (as a 1D NumPy array) - this can be :code:`None` if not present, but :code:`sl` and :code:`su` must either be both :code:`None` or both set\n* :code:`verbose_output`, a flag indicating which outputs to return.\n\nThe outputs are:\n\n* :code:`s`, an approximate minimizer of the subproblem (as a 1D NumPy array)\n* :code:`gnew`, the gradient of the objective at the solution :code:`s` (i.e. :code:`gnew = g + H.dot(s)`)\n* :code:`crvmin`, a float giving information about the curvature of the problem. If :code:`s` is on the trust-region boundary (given by :code:`delta`), then :code:`crvmin=0`. If :code:`s` is constrained in all directions by the box constraints, then :code:`crvmin=-1`. Otherwise, :code:`crvmin>0` is the smallest curvature seen in the Hessian.\n\n**Example Usage** \n\nExamples for the use of :code:`trustregion.solve` can be found in the `examples <https://github.com/lindonroberts/trust-region/tree/master/examples>`_ directory on Github.\n\n**Algorithms**\n\n:code:`trustregion` implements three different methods for solving the subproblem, based on the problem class (in Fortran 90, wrapped to Python):\n\n* :code:`trslin.f90` solves the linear objective case (where :code:`H=None` or :code:`H=0`), using Algorithm B.1 from: L. Roberts (2019), `Derivative-Free Algorithms for Nonlinear Optimisation Problems <https://ora.ox.ac.uk/objects/uuid:ec76e895-6eee-491a-88ed-b4ed10fa6003>`_, PhD Thesis, University of Oxford.\n* :code:`trsapp.f90` solves the quadratic case without box constraints. It is a minor modification of the routine of the same name in :code:`NEWUOA` [M. J. D. Powell (2004), `The NEWUOA software for unconstrained optimization without derivatives <http://www.damtp.cam.ac.uk/user/na/NA_papers/NA2004_08.pdf>`_, technical report DAMTP 2004/NA05, University of Cambridge].\n* :code:`trsbox.f90` solves the quadratic case with box constraints. It is a minor modification of the routine of the same name in :code:`BOBYQA` [M. J. D. Powell (2009), `The BOBYQA algorithm for bound constrained optimization without derivatives <http://www.damtp.cam.ac.uk/user/na/NA_papers/NA2009_06.pdf>`_, technical report DAMTP 2009/NA06, University of Cambridge].\n\nIn the linear case, an active-set method is used to solve the resulting convex problem. In the quadratic cases, a modification of the Steihaug-Toint/conjugate gradient method is used. For more details, see the relevant references above.\n\nRequirements\n------------\n:code:`trustregion` requires the following software to be installed:\n\n* Fortran compiler (e.g. gfortran)\n* Python 3.8 or higher (http://www.python.org/)\n\nAdditionally, the following python packages should be installed (these will be installed automatically if using *pip*, see `Installation using pip`_):\n\n* NumPy (http://www.numpy.org/)\n\nInstallation using pip\n----------------------\nFor easy installation, use `pip <http://www.pip-installer.org/>`_ as root:\n\n .. code-block:: bash\n\n $ [sudo] pip install numpy\n $ [sudo] pip install trustregion\n\nNote that NumPy should be installed before :code:`trustregion`, as it is used to compile the Fortran modules.\n\nIf you do not have root privileges or you want to install :code:`trustregion` for your private use, you can use:\n\n .. code-block:: bash\n\n $ pip install --user numpy\n $ pip install --user trustregion\n\nwhich will install :code:`trustregion` in your home directory.\n\nNote that if an older install of :code:`trustregion` is present on your system you can use:\n\n .. code-block:: bash\n\n $ [sudo] pip install --upgrade trustregion\n\nto upgrade :code:`trustregion` to the latest version.\n\nManual installation\n-------------------\nAlternatively, you can download the source code from `Github <https://github.com/lindonroberts/trust-region>`_ and unpack as follows:\n\n .. code-block:: bash\n\n $ git clone https://github.com/lindonroberts/trust-region\n $ cd trust-region\n\nTo upgrade :code:`trustregion` to the latest version, navigate to the top-level directory (i.e. the one containing :code:`setup.py`) and rerun the installation using :code:`pip`, as above:\n\n .. code-block:: bash\n\n $ git pull\n $ [sudo] pip install . # with admin privileges\n\nTesting\n-------\nIf you installed :code:`trustregion` manually, you can test your installation by running:\n\n .. code-block:: bash\n\n $ pip install pytest\n $ cd trustregion/tests\n $ python -m pytest\n\nAlternatively, the documentation provides some simple examples of how to run :code:`trustregion`.\n\nUninstallation\n--------------\nIf :code:`trustregion` was installed using *pip* you can uninstall as follows:\n\n .. code-block:: bash\n\n $ [sudo] pip uninstall trustregion\n\nIf :code:`trustregion` was installed manually you have to remove the installed files by hand (located in your python site-packages directory).\n\nBugs\n----\nPlease report any bugs using GitHub's issue tracker.\n\nLicense\n-------\nThis algorithm is released under the GNU GPL license.\n",
"bugtrack_url": null,
"license": "GPL-3.0-or-later",
"summary": "Trust-region subproblem solvers for nonlinear/nonconvex optimization",
"version": "1.2.1",
"project_urls": {
"Bug tracker": "https://github.com/lindonroberts/trust-region/issues/",
"Documentation": "https://github.com/lindonroberts/trust-region",
"Download": "https://github.com/lindonroberts/trust-region/releases/",
"Homepage": "https://github.com/lindonroberts/trust-region",
"Source code": "https://github.com/lindonroberts/trust-region"
},
"split_keywords": [
"mathematics",
" optimization"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "719a543c660c68acd2ac97979ff074f34f18bb63c871e691461806d8d1e6280c",
"md5": "54c4ffd333dc24fd0fb2cd92f9eedbfd",
"sha256": "96b161bc63dd26985d5d93c866895def859946d9a734a9b762db4931a9d59054"
},
"downloads": -1,
"filename": "trustregion-1.2.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "54c4ffd333dc24fd0fb2cd92f9eedbfd",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 1042958,
"upload_time": "2024-05-31T02:16:08",
"upload_time_iso_8601": "2024-05-31T02:16:08.294461Z",
"url": "https://files.pythonhosted.org/packages/71/9a/543c660c68acd2ac97979ff074f34f18bb63c871e691461806d8d1e6280c/trustregion-1.2.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2f6d17530d35018bda5f342ec7d72bbf36e5e22928863359781bd5af493e8e20",
"md5": "35a7ec9e3e8d08aad432cfc82b80ba56",
"sha256": "e9454b9f35e8a4b0ba419a5dd8b72287760b5f9b59c4d2332711e5aeb93af2dc"
},
"downloads": -1,
"filename": "trustregion-1.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "35a7ec9e3e8d08aad432cfc82b80ba56",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 1046890,
"upload_time": "2024-05-31T02:16:10",
"upload_time_iso_8601": "2024-05-31T02:16:10.940775Z",
"url": "https://files.pythonhosted.org/packages/2f/6d/17530d35018bda5f342ec7d72bbf36e5e22928863359781bd5af493e8e20/trustregion-1.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b1aaab75c687eab4bf1f6b154362cb3328a8e37abe52292924e807d692218fab",
"md5": "f4bc9598d4132f9e54286fe928afe53c",
"sha256": "8fd6e57f1055c4ad9e92c5eb7aeb905a5a0a4d5b2224e5d86dfe8e88b1263213"
},
"downloads": -1,
"filename": "trustregion-1.2.1-cp310-cp310-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "f4bc9598d4132f9e54286fe928afe53c",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 55546,
"upload_time": "2024-05-31T02:16:12",
"upload_time_iso_8601": "2024-05-31T02:16:12.879973Z",
"url": "https://files.pythonhosted.org/packages/b1/aa/ab75c687eab4bf1f6b154362cb3328a8e37abe52292924e807d692218fab/trustregion-1.2.1-cp310-cp310-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b2aa714b6cc89116a35de8752eb6cf33f249a3cc077520e62b152bea340d7572",
"md5": "7b5dca36466482e80a2f9f2b5f32e3ab",
"sha256": "4758ca4a0a15b33747a03251895d14b73043ccd29208f7cd36a13430a3e9dbc3"
},
"downloads": -1,
"filename": "trustregion-1.2.1-cp310-cp310-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "7b5dca36466482e80a2f9f2b5f32e3ab",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 53164,
"upload_time": "2024-05-31T02:16:14",
"upload_time_iso_8601": "2024-05-31T02:16:14.652581Z",
"url": "https://files.pythonhosted.org/packages/b2/aa/714b6cc89116a35de8752eb6cf33f249a3cc077520e62b152bea340d7572/trustregion-1.2.1-cp310-cp310-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "97b5dc83d47a02b394bbabc30ee36bbc8af5758eb19196609a84462410e13f95",
"md5": "292b22723c1e45e17721738d78d29257",
"sha256": "293dd77c360197a55071c1b180f616fd77366dd24bdc4d3f8a04232d41429a6a"
},
"downloads": -1,
"filename": "trustregion-1.2.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "292b22723c1e45e17721738d78d29257",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 1042960,
"upload_time": "2024-05-31T02:16:16",
"upload_time_iso_8601": "2024-05-31T02:16:16.116211Z",
"url": "https://files.pythonhosted.org/packages/97/b5/dc83d47a02b394bbabc30ee36bbc8af5758eb19196609a84462410e13f95/trustregion-1.2.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "749d25f9135ef5768d1b300dc7b3a56e6e24bc05eac88b8c29e8f05ba32e49cb",
"md5": "0280fc22a65f5a323cbbd7f2e3a34038",
"sha256": "6a3da78ca87e39b658486bfa5f325716f13972e66ae4c47fbbe9d451d2f4aca0"
},
"downloads": -1,
"filename": "trustregion-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "0280fc22a65f5a323cbbd7f2e3a34038",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 1046906,
"upload_time": "2024-05-31T02:16:17",
"upload_time_iso_8601": "2024-05-31T02:16:17.538919Z",
"url": "https://files.pythonhosted.org/packages/74/9d/25f9135ef5768d1b300dc7b3a56e6e24bc05eac88b8c29e8f05ba32e49cb/trustregion-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e5b3b9e39d06e82f24f0625cf69c20384198264b0abfc3ab7b73f7de87d5135c",
"md5": "433bbb28395496d38302c7f6d6259e97",
"sha256": "85109a2c46bb0b60c48ef80542a666621abe1dda9bbe14bc3b0db4412a8bee70"
},
"downloads": -1,
"filename": "trustregion-1.2.1-cp311-cp311-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "433bbb28395496d38302c7f6d6259e97",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 55547,
"upload_time": "2024-05-31T02:16:18",
"upload_time_iso_8601": "2024-05-31T02:16:18.995606Z",
"url": "https://files.pythonhosted.org/packages/e5/b3/b9e39d06e82f24f0625cf69c20384198264b0abfc3ab7b73f7de87d5135c/trustregion-1.2.1-cp311-cp311-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "172786e8cb8661716ad7648ea95c63f224e46de94fd5cc0a9e10c38e03eca273",
"md5": "c104f431e01f5961fc54d8605c44b0a0",
"sha256": "7a7902b10aeafbb614cfa66ea44b09ef4edcab372fd028fe1c02153aa401b722"
},
"downloads": -1,
"filename": "trustregion-1.2.1-cp311-cp311-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "c104f431e01f5961fc54d8605c44b0a0",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 53163,
"upload_time": "2024-05-31T02:16:20",
"upload_time_iso_8601": "2024-05-31T02:16:20.803469Z",
"url": "https://files.pythonhosted.org/packages/17/27/86e8cb8661716ad7648ea95c63f224e46de94fd5cc0a9e10c38e03eca273/trustregion-1.2.1-cp311-cp311-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ec716756aa5864d38befa7854f3c4ebff135e75063c522641a581dfd4dc81346",
"md5": "5b949e15f330932ae9ea8440f652ce70",
"sha256": "917d9af2db20d1918d170d3fce78477b7d6d5925cc5c9e87c2fc75a3e3382817"
},
"downloads": -1,
"filename": "trustregion-1.2.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "5b949e15f330932ae9ea8440f652ce70",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 1043089,
"upload_time": "2024-05-31T02:16:22",
"upload_time_iso_8601": "2024-05-31T02:16:22.775499Z",
"url": "https://files.pythonhosted.org/packages/ec/71/6756aa5864d38befa7854f3c4ebff135e75063c522641a581dfd4dc81346/trustregion-1.2.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1c0edfa2fe9d1bf50636b1d0066b211af038d3fc0634961ed3996b75fda40e6c",
"md5": "3ff2df424e2ddc07b84bb96b49250ff6",
"sha256": "bc5a96f5b53ae2523aebbe746a5b02e11e673f6488e59473eeb577c94ce0b011"
},
"downloads": -1,
"filename": "trustregion-1.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "3ff2df424e2ddc07b84bb96b49250ff6",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 1047045,
"upload_time": "2024-05-31T02:16:25",
"upload_time_iso_8601": "2024-05-31T02:16:25.002406Z",
"url": "https://files.pythonhosted.org/packages/1c/0e/dfa2fe9d1bf50636b1d0066b211af038d3fc0634961ed3996b75fda40e6c/trustregion-1.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4ca9cfc25b3f9531425ceb5587dc29a81e156cc5fa11ac7fa917f9b552047c39",
"md5": "b0706970a3ed49b481a118a3b2869fa8",
"sha256": "21e0ba4f9472d851e30b3ecba511aec9ddd75c698d5157c719f1afb833b9d65b"
},
"downloads": -1,
"filename": "trustregion-1.2.1-cp312-cp312-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "b0706970a3ed49b481a118a3b2869fa8",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 55639,
"upload_time": "2024-05-31T02:16:27",
"upload_time_iso_8601": "2024-05-31T02:16:27.107179Z",
"url": "https://files.pythonhosted.org/packages/4c/a9/cfc25b3f9531425ceb5587dc29a81e156cc5fa11ac7fa917f9b552047c39/trustregion-1.2.1-cp312-cp312-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6c5dd21b82b9527b0ef8df080c6009ecf8f4e99fb77e15c0955f797003f19c3d",
"md5": "1430a40b54a3dffc9baa3da89cdd8c16",
"sha256": "5528821e0e5152e53c3daa9f8888b87edc86b02ffcbb3e1f5ff6dfae1df40d10"
},
"downloads": -1,
"filename": "trustregion-1.2.1-cp312-cp312-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "1430a40b54a3dffc9baa3da89cdd8c16",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 53366,
"upload_time": "2024-05-31T02:16:28",
"upload_time_iso_8601": "2024-05-31T02:16:28.783461Z",
"url": "https://files.pythonhosted.org/packages/6c/5d/d21b82b9527b0ef8df080c6009ecf8f4e99fb77e15c0955f797003f19c3d/trustregion-1.2.1-cp312-cp312-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "73066f910327d9d3032a081ee0bb104db9f961c54b58950bbce94a137084dfab",
"md5": "aa1cb4416cecf7beed952ddeb7d6cd8b",
"sha256": "8c974892ace5db7685ca90fbb4acd8257564ecc88a6d000b85ad1126e3b31a6f"
},
"downloads": -1,
"filename": "trustregion-1.2.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "aa1cb4416cecf7beed952ddeb7d6cd8b",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 1042972,
"upload_time": "2024-05-31T02:16:30",
"upload_time_iso_8601": "2024-05-31T02:16:30.187474Z",
"url": "https://files.pythonhosted.org/packages/73/06/6f910327d9d3032a081ee0bb104db9f961c54b58950bbce94a137084dfab/trustregion-1.2.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "69f546d5f0776863339816b40e9539993b4cd47a11ba782d86eabf627ffd0403",
"md5": "1d0116e07cbd4f5cad39c049f3afce1d",
"sha256": "cd8bff7ce7d761a87b1a3488b674a990e330fc4e344592da1872081bd7bb2f2e"
},
"downloads": -1,
"filename": "trustregion-1.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "1d0116e07cbd4f5cad39c049f3afce1d",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 1046882,
"upload_time": "2024-05-31T02:16:32",
"upload_time_iso_8601": "2024-05-31T02:16:32.465507Z",
"url": "https://files.pythonhosted.org/packages/69/f5/46d5f0776863339816b40e9539993b4cd47a11ba782d86eabf627ffd0403/trustregion-1.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "013013f9187cf3c8e6f121a05a9885118e3826391ffe2cff66715eb2fc242c53",
"md5": "40a82591be351bd3fe2e34720615060d",
"sha256": "855bf6d8b19d22ac654511ac9127d5efddfe4b20e9c34374268678647ba500e6"
},
"downloads": -1,
"filename": "trustregion-1.2.1-cp38-cp38-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "40a82591be351bd3fe2e34720615060d",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 55487,
"upload_time": "2024-05-31T02:16:33",
"upload_time_iso_8601": "2024-05-31T02:16:33.795497Z",
"url": "https://files.pythonhosted.org/packages/01/30/13f9187cf3c8e6f121a05a9885118e3826391ffe2cff66715eb2fc242c53/trustregion-1.2.1-cp38-cp38-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "90c99c2006b10155f17cc035be2c3bb20e4cef26b9fb0a5cf50c02ac3e68f205",
"md5": "ba084c9e6d7ad28473c2bd31abb63ebd",
"sha256": "4f462a771a4ca5fbe8a0094d4db35aaac968cb9463169152de03ba1f9698cd06"
},
"downloads": -1,
"filename": "trustregion-1.2.1-cp38-cp38-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "ba084c9e6d7ad28473c2bd31abb63ebd",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 53108,
"upload_time": "2024-05-31T02:16:35",
"upload_time_iso_8601": "2024-05-31T02:16:35.236975Z",
"url": "https://files.pythonhosted.org/packages/90/c9/9c2006b10155f17cc035be2c3bb20e4cef26b9fb0a5cf50c02ac3e68f205/trustregion-1.2.1-cp38-cp38-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1b024d2e973a793ca0ab5b9a019f24f2bd3bc397213ef87e2c71237a510d32ed",
"md5": "d34f1a1c1ebe6d75572b94d7259c4172",
"sha256": "48d46b18419e9e45de40a4ea1d447d12a96a0d16d1132da1bb907a5b05307084"
},
"downloads": -1,
"filename": "trustregion-1.2.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "d34f1a1c1ebe6d75572b94d7259c4172",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 1042978,
"upload_time": "2024-05-31T02:16:37",
"upload_time_iso_8601": "2024-05-31T02:16:37.231470Z",
"url": "https://files.pythonhosted.org/packages/1b/02/4d2e973a793ca0ab5b9a019f24f2bd3bc397213ef87e2c71237a510d32ed/trustregion-1.2.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c846904e4ad9a21a837fa8d2371f549f07c727bc1316d3e95a681b750a271b77",
"md5": "a01d330fa51dd63dd374f37487974f0e",
"sha256": "444e5fabab8b592e4b15eca2eb0d4090de89735134b45634cefb75740c6670e1"
},
"downloads": -1,
"filename": "trustregion-1.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "a01d330fa51dd63dd374f37487974f0e",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 1046885,
"upload_time": "2024-05-31T02:16:38",
"upload_time_iso_8601": "2024-05-31T02:16:38.887344Z",
"url": "https://files.pythonhosted.org/packages/c8/46/904e4ad9a21a837fa8d2371f549f07c727bc1316d3e95a681b750a271b77/trustregion-1.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "04386e69c3684ce46ce2946e99c9f096c80641d80e18a820e6bc6a220862c101",
"md5": "e4c090d89cce4743689ea1d4daf6b463",
"sha256": "34a46585815c63f2a199dd6fb8c35c2c26d1ed334b98c7056e856d789b61c0de"
},
"downloads": -1,
"filename": "trustregion-1.2.1-cp39-cp39-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "e4c090d89cce4743689ea1d4daf6b463",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 55539,
"upload_time": "2024-05-31T02:16:40",
"upload_time_iso_8601": "2024-05-31T02:16:40.419851Z",
"url": "https://files.pythonhosted.org/packages/04/38/6e69c3684ce46ce2946e99c9f096c80641d80e18a820e6bc6a220862c101/trustregion-1.2.1-cp39-cp39-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "abe99fa9fff388fc649beb5e15720fc170dc6ad67a3c2653c424014e3383de0b",
"md5": "4ff1bc08629cbc6198896411b48be5e3",
"sha256": "015e496b3ab709c42f7a61cbf545341150bf80180ecd483219e65312d2433a8f"
},
"downloads": -1,
"filename": "trustregion-1.2.1-cp39-cp39-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "4ff1bc08629cbc6198896411b48be5e3",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 53101,
"upload_time": "2024-05-31T02:16:42",
"upload_time_iso_8601": "2024-05-31T02:16:42.861136Z",
"url": "https://files.pythonhosted.org/packages/ab/e9/9fa9fff388fc649beb5e15720fc170dc6ad67a3c2653c424014e3383de0b/trustregion-1.2.1-cp39-cp39-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ff0ecd856b17e77037feffbede58c856fd8168a5ecfd00244175786fac79a3bd",
"md5": "656a9143810745b6e6717cab579c401c",
"sha256": "c0c92ffd96717546fc0971d0fb698d96cd89a1ffdb0fde8614d755b8f41d2b13"
},
"downloads": -1,
"filename": "trustregion-1.2.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "656a9143810745b6e6717cab579c401c",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.8",
"size": 1043326,
"upload_time": "2024-05-31T02:16:44",
"upload_time_iso_8601": "2024-05-31T02:16:44.354679Z",
"url": "https://files.pythonhosted.org/packages/ff/0e/cd856b17e77037feffbede58c856fd8168a5ecfd00244175786fac79a3bd/trustregion-1.2.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9e9b817e896330422a8745a066c4748dcd912dd00a86869ba4e5727bbb73aecd",
"md5": "aebf91475b0340438ace81fb46051311",
"sha256": "5e1d3979eae0dd8ec11e265e33a039edeb039f090fc9cfd9b4301b30288da753"
},
"downloads": -1,
"filename": "trustregion-1.2.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "aebf91475b0340438ace81fb46051311",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.8",
"size": 1047242,
"upload_time": "2024-05-31T02:16:45",
"upload_time_iso_8601": "2024-05-31T02:16:45.833693Z",
"url": "https://files.pythonhosted.org/packages/9e/9b/817e896330422a8745a066c4748dcd912dd00a86869ba4e5727bbb73aecd/trustregion-1.2.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cfba815dd102f8e8b6f12456df34f07766c4c63b1739b9b5afe63a21f93e7ab4",
"md5": "94930fe425a5d3d54e8e705465b01de5",
"sha256": "822b9b2845b49083dedbdb7eb3add123266fa913c3d91e716f1376f28a5cfeb5"
},
"downloads": -1,
"filename": "trustregion-1.2.1-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "94930fe425a5d3d54e8e705465b01de5",
"packagetype": "bdist_wheel",
"python_version": "pp38",
"requires_python": ">=3.8",
"size": 1043094,
"upload_time": "2024-05-31T02:16:47",
"upload_time_iso_8601": "2024-05-31T02:16:47.519057Z",
"url": "https://files.pythonhosted.org/packages/cf/ba/815dd102f8e8b6f12456df34f07766c4c63b1739b9b5afe63a21f93e7ab4/trustregion-1.2.1-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8b3a93f986504f0dac174a2a51cb47df3647deeba5d61781869847329d31b3b2",
"md5": "3636051d54b41932bb2d8b65ed80e80e",
"sha256": "1c19d7d72501c5bd5f8b77a75406fab9aa1dfc1abd905e0e6dfb8d8323183a0a"
},
"downloads": -1,
"filename": "trustregion-1.2.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "3636051d54b41932bb2d8b65ed80e80e",
"packagetype": "bdist_wheel",
"python_version": "pp38",
"requires_python": ">=3.8",
"size": 1047050,
"upload_time": "2024-05-31T02:16:49",
"upload_time_iso_8601": "2024-05-31T02:16:49.215480Z",
"url": "https://files.pythonhosted.org/packages/8b/3a/93f986504f0dac174a2a51cb47df3647deeba5d61781869847329d31b3b2/trustregion-1.2.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "83543c23f03bf540ee14c188314ae062ec312ced921a03785da1a83b22f5ad8f",
"md5": "ac259b2ca6351334fd67ca89b7535460",
"sha256": "f451a6e31c7a12fa80e764d743211bbbfd8070890267815f1846c442fd791086"
},
"downloads": -1,
"filename": "trustregion-1.2.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "ac259b2ca6351334fd67ca89b7535460",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": ">=3.8",
"size": 1043260,
"upload_time": "2024-05-31T02:16:53",
"upload_time_iso_8601": "2024-05-31T02:16:53.146582Z",
"url": "https://files.pythonhosted.org/packages/83/54/3c23f03bf540ee14c188314ae062ec312ced921a03785da1a83b22f5ad8f/trustregion-1.2.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "494bd96dc09bcbbd9e5885ccb7c3a44894ff3c370112ee026a55b422766ee6a7",
"md5": "6a7ead35fdd0b07fc0a4a96ec7292c71",
"sha256": "55701d86b1d339e92538c2fc06b38fee5d0f969b134579f4e14a6746d871c213"
},
"downloads": -1,
"filename": "trustregion-1.2.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "6a7ead35fdd0b07fc0a4a96ec7292c71",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": ">=3.8",
"size": 1047184,
"upload_time": "2024-05-31T02:16:55",
"upload_time_iso_8601": "2024-05-31T02:16:55.642534Z",
"url": "https://files.pythonhosted.org/packages/49/4b/d96dc09bcbbd9e5885ccb7c3a44894ff3c370112ee026a55b422766ee6a7/trustregion-1.2.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1ce6d6156baebf625e0b98ca49ae4cca0375357a343e983a2542be2bfc226fda",
"md5": "e06c11d73baf2937897f56ca85c3e6f8",
"sha256": "93964d09005661c6aad699e8eb4f97590d14a346c70b4037e51d9fc7bfc18ea8"
},
"downloads": -1,
"filename": "trustregion-1.2.1.tar.gz",
"has_sig": false,
"md5_digest": "e06c11d73baf2937897f56ca85c3e6f8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 37259,
"upload_time": "2024-05-31T02:16:57",
"upload_time_iso_8601": "2024-05-31T02:16:57.090043Z",
"url": "https://files.pythonhosted.org/packages/1c/e6/d6156baebf625e0b98ca49ae4cca0375357a343e983a2542be2bfc226fda/trustregion-1.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-31 02:16:57",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "lindonroberts",
"github_project": "trust-region",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "trustregion"
}