| Name | trustregion JSON |
| Version |
1.2.2
JSON |
| download |
| home_page | None |
| Summary | Trust-region subproblem solvers for nonlinear/nonconvex optimization |
| upload_time | 2025-10-09 11:47:38 |
| 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/>`_:
.. code-block:: bash
$ pip install numpy
$ 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.
Alternatively, you can use pip inside a virtual environment using `Python's virtual environments <https://docs.python.org/3/tutorial/venv.html>`_ or the `conda <https://conda.io/projects/conda/en/latest/index.html>`_ environment manager.
Note that if an older install of :code:`trustregion` is present on your system you can use:
.. code-block:: bash
$ 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
$ pip install .
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
$ 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/f0/e6/d43fa697185b7b46759029c357d5ae34576278f1a4cd5469b5df3e34cd47/trustregion-1.2.2.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/>`_:\n\n .. code-block:: bash\n\n $ pip install numpy\n $ 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. \nAlternatively, you can use pip inside a virtual environment using `Python's virtual environments <https://docs.python.org/3/tutorial/venv.html>`_ or the `conda <https://conda.io/projects/conda/en/latest/index.html>`_ environment manager.\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 $ 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 $ pip install .\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 $ 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.2",
"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": null,
"digests": {
"blake2b_256": "fdd4ba20e55d8ed444f56e58de92a45b909c3c05f588273152e015b8353434dc",
"md5": "2fe8c38abe33f8d71da1df99bbf6f50d",
"sha256": "2161ec596785448bfde25cc66b5b84a84bfa83bd9b752365451992219624d5ce"
},
"downloads": -1,
"filename": "trustregion-1.2.2-cp310-cp310-macosx_15_0_arm64.whl",
"has_sig": false,
"md5_digest": "2fe8c38abe33f8d71da1df99bbf6f50d",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 820185,
"upload_time": "2025-10-09T11:47:07",
"upload_time_iso_8601": "2025-10-09T11:47:07.503295Z",
"url": "https://files.pythonhosted.org/packages/fd/d4/ba20e55d8ed444f56e58de92a45b909c3c05f588273152e015b8353434dc/trustregion-1.2.2-cp310-cp310-macosx_15_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f55500520162683fe78f86c5c3080c4225d43322a962c3346bd1edb10b3a924f",
"md5": "615b64a5a3136931048e7933d2b2fe07",
"sha256": "b67bc50cf4f49106f352ce2c1ab3424cf5de313cae32c7aa73a701dca047d179"
},
"downloads": -1,
"filename": "trustregion-1.2.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "615b64a5a3136931048e7933d2b2fe07",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 1064018,
"upload_time": "2025-10-09T11:47:09",
"upload_time_iso_8601": "2025-10-09T11:47:09.334404Z",
"url": "https://files.pythonhosted.org/packages/f5/55/00520162683fe78f86c5c3080c4225d43322a962c3346bd1edb10b3a924f/trustregion-1.2.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "42fd7412b6427ee7b15dcaa723c8fc639a53f67d86d1edfcccb211c3aef66abf",
"md5": "171f91207e75c6ddf69c74c7ffbb7e29",
"sha256": "c8e79748197f70113c50e09c92058f4f659f6b560e758cb3d828211a47fcf7e0"
},
"downloads": -1,
"filename": "trustregion-1.2.2-cp310-cp310-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "171f91207e75c6ddf69c74c7ffbb7e29",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 53745,
"upload_time": "2025-10-09T11:47:10",
"upload_time_iso_8601": "2025-10-09T11:47:10.627511Z",
"url": "https://files.pythonhosted.org/packages/42/fd/7412b6427ee7b15dcaa723c8fc639a53f67d86d1edfcccb211c3aef66abf/trustregion-1.2.2-cp310-cp310-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "77a9372e7e787d81f9d1b3ab4e8f063259d20a119a80ced2ee7d2dce7c2e4715",
"md5": "f5f77ff321f0a2a6579c3beb66fc8f56",
"sha256": "adc60860b232f83b59ff86cd3ac18808c1e2db57827ded7644ff075ba0bcdf13"
},
"downloads": -1,
"filename": "trustregion-1.2.2-cp311-cp311-macosx_15_0_arm64.whl",
"has_sig": false,
"md5_digest": "f5f77ff321f0a2a6579c3beb66fc8f56",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 820414,
"upload_time": "2025-10-09T11:47:11",
"upload_time_iso_8601": "2025-10-09T11:47:11.791890Z",
"url": "https://files.pythonhosted.org/packages/77/a9/372e7e787d81f9d1b3ab4e8f063259d20a119a80ced2ee7d2dce7c2e4715/trustregion-1.2.2-cp311-cp311-macosx_15_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2cd50e3870aafb8c4eedbf3e6fc41a3de055f31d832b60a296334488a6148ba3",
"md5": "93d16c1a6a4344b2b925c836fcc4ae16",
"sha256": "5dba4759018caab1a00ee2ecc212621e647e1eb20c5de672734da5d83ac65ecb"
},
"downloads": -1,
"filename": "trustregion-1.2.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "93d16c1a6a4344b2b925c836fcc4ae16",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 1064473,
"upload_time": "2025-10-09T11:47:13",
"upload_time_iso_8601": "2025-10-09T11:47:13.504613Z",
"url": "https://files.pythonhosted.org/packages/2c/d5/0e3870aafb8c4eedbf3e6fc41a3de055f31d832b60a296334488a6148ba3/trustregion-1.2.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "688881177e8a9ae61d764aa0b71cc1b6d27272b67ff083438aa5693a0c845d0e",
"md5": "4a99a7d2cff83c4a081122c0f40fe42a",
"sha256": "862a4f62ff7c4c565d653fb00e0385ebe3ac6b46634e8b9ccf94c21ad39f52dc"
},
"downloads": -1,
"filename": "trustregion-1.2.2-cp311-cp311-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "4a99a7d2cff83c4a081122c0f40fe42a",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 54286,
"upload_time": "2025-10-09T11:47:14",
"upload_time_iso_8601": "2025-10-09T11:47:14.816990Z",
"url": "https://files.pythonhosted.org/packages/68/88/81177e8a9ae61d764aa0b71cc1b6d27272b67ff083438aa5693a0c845d0e/trustregion-1.2.2-cp311-cp311-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "cc9120d3b4579f4a96787e788b88189640bc464a3c8a742bb8cec6f389d8d920",
"md5": "fecf8b51a326e49fc14086bc5e76faca",
"sha256": "eb2b88350ed2d8506c503340978dca986f77c12cad7168479e29c19377d48cbd"
},
"downloads": -1,
"filename": "trustregion-1.2.2-cp312-cp312-macosx_15_0_arm64.whl",
"has_sig": false,
"md5_digest": "fecf8b51a326e49fc14086bc5e76faca",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 820463,
"upload_time": "2025-10-09T11:47:15",
"upload_time_iso_8601": "2025-10-09T11:47:15.893045Z",
"url": "https://files.pythonhosted.org/packages/cc/91/20d3b4579f4a96787e788b88189640bc464a3c8a742bb8cec6f389d8d920/trustregion-1.2.2-cp312-cp312-macosx_15_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "25ab6a23d839513906db7d651ebab4d0c8e48ccbb479845468c41251adb78b5a",
"md5": "c07e023bc5c7634f77ceed6bf8ca7ae1",
"sha256": "518525156563c842bb93a6d197c2c669e52d6836bdf01715807bb0bfcb7154bc"
},
"downloads": -1,
"filename": "trustregion-1.2.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "c07e023bc5c7634f77ceed6bf8ca7ae1",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 1064710,
"upload_time": "2025-10-09T11:47:17",
"upload_time_iso_8601": "2025-10-09T11:47:17.133508Z",
"url": "https://files.pythonhosted.org/packages/25/ab/6a23d839513906db7d651ebab4d0c8e48ccbb479845468c41251adb78b5a/trustregion-1.2.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e3618a330a05f2fc607a5fcd8f912366912d0dfff2daf5da4902a36dd95b13ff",
"md5": "704f6446271420ae1c641e392cd39b91",
"sha256": "0ba9a78836aab20072672962af4403e35f1d729a90db297d02eee35893e60e52"
},
"downloads": -1,
"filename": "trustregion-1.2.2-cp312-cp312-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "704f6446271420ae1c641e392cd39b91",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 54500,
"upload_time": "2025-10-09T11:47:18",
"upload_time_iso_8601": "2025-10-09T11:47:18.343604Z",
"url": "https://files.pythonhosted.org/packages/e3/61/8a330a05f2fc607a5fcd8f912366912d0dfff2daf5da4902a36dd95b13ff/trustregion-1.2.2-cp312-cp312-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "028787dff98eb3907b5dc7d0dc7eef4c0a203f099235f5c999b9e9be6ffc454d",
"md5": "a61106f835519d8dbbc2db5729b7f9bf",
"sha256": "79b1043355e0dd97e5738b05f7ef8b0af4e3ee8da873aae11409bbcbe6e0c18c"
},
"downloads": -1,
"filename": "trustregion-1.2.2-cp313-cp313-macosx_15_0_arm64.whl",
"has_sig": false,
"md5_digest": "a61106f835519d8dbbc2db5729b7f9bf",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 820494,
"upload_time": "2025-10-09T11:47:19",
"upload_time_iso_8601": "2025-10-09T11:47:19.417294Z",
"url": "https://files.pythonhosted.org/packages/02/87/87dff98eb3907b5dc7d0dc7eef4c0a203f099235f5c999b9e9be6ffc454d/trustregion-1.2.2-cp313-cp313-macosx_15_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "71aa649234c953de101c6f257c6defffec147f427cb2818b315175d756d48e67",
"md5": "7e8450db0542e02ee02230dd540964a5",
"sha256": "0785e3b7245b92e81365f358b935136ff1a185f6c451eb61629de7ffade6b014"
},
"downloads": -1,
"filename": "trustregion-1.2.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "7e8450db0542e02ee02230dd540964a5",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 1064707,
"upload_time": "2025-10-09T11:47:20",
"upload_time_iso_8601": "2025-10-09T11:47:20.615621Z",
"url": "https://files.pythonhosted.org/packages/71/aa/649234c953de101c6f257c6defffec147f427cb2818b315175d756d48e67/trustregion-1.2.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b526d55f04d89614ebb6d777e79e338e8c79d60be9b52bd955e175ea8cf517f3",
"md5": "7dc18593b9e3874e1cd34e7d4ad9c61a",
"sha256": "6008f877a979688b592ffe57b3194e2a2b2acdae57f15e638d1af71fac76cc2d"
},
"downloads": -1,
"filename": "trustregion-1.2.2-cp313-cp313-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "7dc18593b9e3874e1cd34e7d4ad9c61a",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 54498,
"upload_time": "2025-10-09T11:47:22",
"upload_time_iso_8601": "2025-10-09T11:47:22.031080Z",
"url": "https://files.pythonhosted.org/packages/b5/26/d55f04d89614ebb6d777e79e338e8c79d60be9b52bd955e175ea8cf517f3/trustregion-1.2.2-cp313-cp313-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b8db8e412c8517e4206d32ec981b9ad8e162362926b39d671e3dd4f8d3869bfb",
"md5": "9fa6f32e45d07eb9ad77edf06270b9fb",
"sha256": "1dd0cb5c233a957b7107eac1db809b55c1815d39a7a5d23bd273ba3e267e12f4"
},
"downloads": -1,
"filename": "trustregion-1.2.2-cp314-cp314-macosx_15_0_arm64.whl",
"has_sig": false,
"md5_digest": "9fa6f32e45d07eb9ad77edf06270b9fb",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.8",
"size": 820508,
"upload_time": "2025-10-09T11:47:23",
"upload_time_iso_8601": "2025-10-09T11:47:23.098710Z",
"url": "https://files.pythonhosted.org/packages/b8/db/8e412c8517e4206d32ec981b9ad8e162362926b39d671e3dd4f8d3869bfb/trustregion-1.2.2-cp314-cp314-macosx_15_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "485c3b20aae2bc6030c8977e6e296f4ce56bd01e187952a400ae4bb87a8277d9",
"md5": "8972075901880b41598bb78474176874",
"sha256": "3dbd9236b6aea5d8a76bd55cd68c126b34571a332e36142f9cfed98898552578"
},
"downloads": -1,
"filename": "trustregion-1.2.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "8972075901880b41598bb78474176874",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.8",
"size": 1064682,
"upload_time": "2025-10-09T11:47:24",
"upload_time_iso_8601": "2025-10-09T11:47:24.469462Z",
"url": "https://files.pythonhosted.org/packages/48/5c/3b20aae2bc6030c8977e6e296f4ce56bd01e187952a400ae4bb87a8277d9/trustregion-1.2.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "58151db542e2f8e84b1bc7c62086dd824e561b8a2c13372dbe35696e9391725d",
"md5": "c4592283f4bafd0bc19f2ac10ba0a943",
"sha256": "2c9b8a5391750353edbf98f4f4577c5fa14b81f7d83837115f845f4819adda06"
},
"downloads": -1,
"filename": "trustregion-1.2.2-cp314-cp314-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "c4592283f4bafd0bc19f2ac10ba0a943",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.8",
"size": 54478,
"upload_time": "2025-10-09T11:47:25",
"upload_time_iso_8601": "2025-10-09T11:47:25.901644Z",
"url": "https://files.pythonhosted.org/packages/58/15/1db542e2f8e84b1bc7c62086dd824e561b8a2c13372dbe35696e9391725d/trustregion-1.2.2-cp314-cp314-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "332f87ac3cccf92a5f12cea07345a7220b2424321f73d38bdcf6e8962689ab59",
"md5": "9d113ece51a96632ec14f343577307cf",
"sha256": "67525681a6eb04ed03267619c1d3f62f6add5eefeeb5b0e779beff75df4f55e3"
},
"downloads": -1,
"filename": "trustregion-1.2.2-cp314-cp314t-macosx_15_0_arm64.whl",
"has_sig": false,
"md5_digest": "9d113ece51a96632ec14f343577307cf",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.8",
"size": 821124,
"upload_time": "2025-10-09T11:47:27",
"upload_time_iso_8601": "2025-10-09T11:47:27.483504Z",
"url": "https://files.pythonhosted.org/packages/33/2f/87ac3cccf92a5f12cea07345a7220b2424321f73d38bdcf6e8962689ab59/trustregion-1.2.2-cp314-cp314t-macosx_15_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f0b71c97bb1c0f473f4d1c2f810aa4645642982a8f63b4d21bbc5793ad03c09e",
"md5": "3fbc4af5cc596ce3542be8af8c8f657b",
"sha256": "74d30d93465c14b6d62e687e648cdf9aac7d41aaf0b7ce9929ca8c7b237b19b2"
},
"downloads": -1,
"filename": "trustregion-1.2.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "3fbc4af5cc596ce3542be8af8c8f657b",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.8",
"size": 1065570,
"upload_time": "2025-10-09T11:47:28",
"upload_time_iso_8601": "2025-10-09T11:47:28.675669Z",
"url": "https://files.pythonhosted.org/packages/f0/b7/1c97bb1c0f473f4d1c2f810aa4645642982a8f63b4d21bbc5793ad03c09e/trustregion-1.2.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "1987fadf1a66293917af5a4d8f0353137edcf2456de0520dc3af4f79dc38ab82",
"md5": "c7989dfa9908bedb6b703544bd8deaaa",
"sha256": "fc786df39007e20cc9aa3f05e6684aa6e87b1f1cef4768f4207544a5066f26d0"
},
"downloads": -1,
"filename": "trustregion-1.2.2-cp314-cp314t-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "c7989dfa9908bedb6b703544bd8deaaa",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.8",
"size": 55316,
"upload_time": "2025-10-09T11:47:30",
"upload_time_iso_8601": "2025-10-09T11:47:30.034872Z",
"url": "https://files.pythonhosted.org/packages/19/87/fadf1a66293917af5a4d8f0353137edcf2456de0520dc3af4f79dc38ab82/trustregion-1.2.2-cp314-cp314t-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f4502920cbace191a94dec16330250c19f5178ed8d2419790d30388742185ab4",
"md5": "26bbabb92c4d55f905388612983867a6",
"sha256": "473a41730fad45e69f530ac645549ea0ab43901cf6f167955a1953edc40d6ce6"
},
"downloads": -1,
"filename": "trustregion-1.2.2-cp38-cp38-macosx_15_0_arm64.whl",
"has_sig": false,
"md5_digest": "26bbabb92c4d55f905388612983867a6",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 819656,
"upload_time": "2025-10-09T11:47:31",
"upload_time_iso_8601": "2025-10-09T11:47:31.060778Z",
"url": "https://files.pythonhosted.org/packages/f4/50/2920cbace191a94dec16330250c19f5178ed8d2419790d30388742185ab4/trustregion-1.2.2-cp38-cp38-macosx_15_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d870b0811567c25f58a2dfc81f1279fbd55052267a7711f781bcd356774ff368",
"md5": "20cae8af458dfa3e8407a2a8b652766d",
"sha256": "47077ce44df5ef1bafdcca4738e30a69c461347cdf4e9ef76d0107a2379ad0dd"
},
"downloads": -1,
"filename": "trustregion-1.2.2-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "20cae8af458dfa3e8407a2a8b652766d",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 1063525,
"upload_time": "2025-10-09T11:47:32",
"upload_time_iso_8601": "2025-10-09T11:47:32.294843Z",
"url": "https://files.pythonhosted.org/packages/d8/70/b0811567c25f58a2dfc81f1279fbd55052267a7711f781bcd356774ff368/trustregion-1.2.2-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "30cb06f580969f9a7764b7d66227db9ee5b15fad9e8d9e1db44bd32629a7fdfc",
"md5": "32379064f11282756d20786b78ac387c",
"sha256": "fe1d527e9d96504cebd81b0c93e19095fbc25132223930abc71df25c1a25467c"
},
"downloads": -1,
"filename": "trustregion-1.2.2-cp38-cp38-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "32379064f11282756d20786b78ac387c",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 53210,
"upload_time": "2025-10-09T11:47:33",
"upload_time_iso_8601": "2025-10-09T11:47:33.865507Z",
"url": "https://files.pythonhosted.org/packages/30/cb/06f580969f9a7764b7d66227db9ee5b15fad9e8d9e1db44bd32629a7fdfc/trustregion-1.2.2-cp38-cp38-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "eadc063aa13ca1a5037bb08ccf1007bbe8891e24e752519a3afe678c166125cf",
"md5": "0969f33b4e6c048316db3184e3186eeb",
"sha256": "f72daa6570beb16f8a70f40ba20a509b0dbd9057d523adb20415581d68430de6"
},
"downloads": -1,
"filename": "trustregion-1.2.2-cp39-cp39-macosx_15_0_arm64.whl",
"has_sig": false,
"md5_digest": "0969f33b4e6c048316db3184e3186eeb",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 820159,
"upload_time": "2025-10-09T11:47:34",
"upload_time_iso_8601": "2025-10-09T11:47:34.967289Z",
"url": "https://files.pythonhosted.org/packages/ea/dc/063aa13ca1a5037bb08ccf1007bbe8891e24e752519a3afe678c166125cf/trustregion-1.2.2-cp39-cp39-macosx_15_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "21d1b791d6457f631bf83a8cbc49a210748440798642f04b823836bb0e92ff07",
"md5": "a1758bb1d6619d846b3c09bc423afd93",
"sha256": "02273684a7a025c9db8c3f3e1d0e243a7fb781a46b8ba55132a368c8993da0a1"
},
"downloads": -1,
"filename": "trustregion-1.2.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "a1758bb1d6619d846b3c09bc423afd93",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 1064114,
"upload_time": "2025-10-09T11:47:36",
"upload_time_iso_8601": "2025-10-09T11:47:36.504638Z",
"url": "https://files.pythonhosted.org/packages/21/d1/b791d6457f631bf83a8cbc49a210748440798642f04b823836bb0e92ff07/trustregion-1.2.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "49f4bc9c9e7bb5c7dc5ebf92feeaca28a9581d0a7e651645d8e74010d98cb0c7",
"md5": "2facafd0fd8702530f834fdd9683d0aa",
"sha256": "a804adb505777e594be95c00f72c9129c26fd3bffa842c71da729ad9e1c63efe"
},
"downloads": -1,
"filename": "trustregion-1.2.2-cp39-cp39-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "2facafd0fd8702530f834fdd9683d0aa",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 53786,
"upload_time": "2025-10-09T11:47:37",
"upload_time_iso_8601": "2025-10-09T11:47:37.829911Z",
"url": "https://files.pythonhosted.org/packages/49/f4/bc9c9e7bb5c7dc5ebf92feeaca28a9581d0a7e651645d8e74010d98cb0c7/trustregion-1.2.2-cp39-cp39-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f0e6d43fa697185b7b46759029c357d5ae34576278f1a4cd5469b5df3e34cd47",
"md5": "08d7659c8c2a5a8344478ea12e3bda5a",
"sha256": "4348c45ae9f5cd671a1476a061ed99e355373270f88cf388bd7f3b489f6c0023"
},
"downloads": -1,
"filename": "trustregion-1.2.2.tar.gz",
"has_sig": false,
"md5_digest": "08d7659c8c2a5a8344478ea12e3bda5a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 37631,
"upload_time": "2025-10-09T11:47:38",
"upload_time_iso_8601": "2025-10-09T11:47:38.831014Z",
"url": "https://files.pythonhosted.org/packages/f0/e6/d43fa697185b7b46759029c357d5ae34576278f1a4cd5469b5df3e34cd47/trustregion-1.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-09 11:47:38",
"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"
}