{ "info": { "author": "Francesco Ceccon", "author_email": "francesco@ceccon.me", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Scientific/Engineering :: Mathematics" ], "description": "Pypopt: Ipopt for Python\n========================\n\nPypopt is an Ipopt wrapper for Python. The aim is to expose the same\nAPI as Ipopt C++ interface.\n\n\nExamples\n--------\n\nYou can find examples in the ``examples/`` folder.\n\n\nPythonJournal\n-------------\n\nIn Pypopt you can use Python objects as targets for Ipopt journaling.\nThe Python objects needs to implement two methods:\n\n* ``write(str)``: called to write ``str`` to the stream object\n* ``flush()``: called to flush the stream\n\nThis means we can use Python3 ``io.StringIO`` to capture Ipopt output to string:\n\n.. code-block:: python\n\n app = IpoptApplication()\n f = io.StringIO()\n j = PythonJournal(EJournalLevel.J_NONE, f)\n jnlst = app.journalist()\n jnlst.add_journal(j)\n\n\nRequirements\n------------\n\n* A working C++ compiler\n* Cython\n* Ipopt\n* Pytest + pytest-runner + pytest-cov for testing\n\n\nIpopt Installation\n------------------\n\nWe recommend `installing Ipopt from source`__.\n\n__ https://www.coin-or.org/Ipopt/documentation/node10.html\n\nIf you have Ipopt installed in a different location than ``/usr`` set\nthe following environment variables before proceeding to the next\nsection::\n\n IPOPT_INCLUDE_DIR=/path/to/ipopt/include\n IPOPT_LIBRARY_DIR=/path/to/ipopt/lib\n\n\nInstallation\n------------\n\nPypopt is available on Pypi_::\n\n pip install pypopt\n\n.. _Pypi: https://pypi.org/project/pypopt/\n\n\nInstallation from Source\n------------------------\n\nTo install `pypopt` simply run::\n\n python setup.py install\n\n\nTroubleshooting\n---------------\n\nPypopt is a Cython extension, this makes it sometimes tricky to install correctly.\n\n\nDifferent toolchain for Ipopt and Pypopt\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIpopt and Pypopt need to be compiled with the same C++ toolchain. If\nthat's not the case, you will see an error like the following when\nloading Pypopt::\n\n Traceback (most recent call last):\n File \"\", line 1, in \n File \"/lib/python3.6/site-packages/pypopt/__init__.py\", line 24, in \n from pypopt._cython import (\n ImportError: /lib/python3.6/site-packages/pypopt/_cython.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZN5Ipopt7Journal4NameB5cxx11Ev\n\nThis means Ipopt and Pypopt were compiled with different\ncompilers/flags. To fix this issue install Ipopt from source and set\nthe ``IPOPT_INCLUDE_DIR`` and ``IPOPT_LIBRARY_DIR`` environment\nvariables to your Ipopt installation.\n\n\nLicense\n-------\n\nCopyright 2018 Francesco Ceccon\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n\nChangelog\n=========\n\n0.4.3 (2018-08-16)\n------------------\n\n* Change ``finalize_solution`` callback to include ``SolverReturn`` status\n\n0.4.2 (2018-07-05)\n------------------\n\n* Documentation update\n\n\n0.4.1 (2018-07-05)\n------------------\n\n* Fix MANIFEST.in\n\n\n0.4.0 (2018-07-05)\n------------------\n\n* Changes to TNLP interface", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "pypopt", "package_url": "https://pypi.org/project/pypopt/", "platform": "", "project_url": "https://pypi.org/project/pypopt/", "project_urls": null, "release_url": "https://pypi.org/project/pypopt/0.4.3/", "requires_dist": null, "requires_python": "", "summary": "Bindings to Ipopt C++ library.", "version": "0.4.3" }, "last_serial": 4176725, "releases": { "0.4.0": [ { "comment_text": "", "digests": { "md5": "a7c07c35d877b21412b22b308fd6ac78", "sha256": "b0fc04c9514514456205055ff150c58768ee5dd22f67f4908f7b304b9da2ca16" }, "downloads": -1, "filename": "pypopt-0.4.0.tar.gz", "has_sig": false, "md5_digest": "a7c07c35d877b21412b22b308fd6ac78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 185528, "upload_time": "2018-07-05T12:52:04", "url": "https://files.pythonhosted.org/packages/96/90/814f1fda447d8a5b947fe67d5b3a0e993ea761fd851c5a66947f8ff221eb/pypopt-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "9df03ff8add7d9af4dca72e819fda66c", "sha256": "8028bd0d68fe0d10db18c6f436b354c22350ab0b45f2f1394ce3edaf36dcee4c" }, "downloads": -1, "filename": "pypopt-0.4.1.tar.gz", "has_sig": false, "md5_digest": "9df03ff8add7d9af4dca72e819fda66c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 191963, "upload_time": "2018-07-05T12:58:44", "url": "https://files.pythonhosted.org/packages/31/ae/14d4bdcee235bc929bc9e4ee399f254fbc25f34a4fa7c79b1ea906761eae/pypopt-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "3a5904b79441f9018123e8df959d70a0", "sha256": "6860409c44f7034cf432274a40a429ccd64d81e9233700dc1462c8178ad1551b" }, "downloads": -1, "filename": "pypopt-0.4.2.tar.gz", "has_sig": false, "md5_digest": "3a5904b79441f9018123e8df959d70a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 193249, "upload_time": "2018-07-05T13:39:58", "url": "https://files.pythonhosted.org/packages/89/9a/3303682fea81a32008d4620e5046bdddd0d12fec22c47af9635d2834b8f7/pypopt-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "125dc440a105613e528d190d8caca786", "sha256": "b0a488707890cea8731af59844ab67965df2f2c523cf9de27be9061b82f66b6a" }, "downloads": -1, "filename": "pypopt-0.4.3.tar.gz", "has_sig": false, "md5_digest": "125dc440a105613e528d190d8caca786", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 202478, "upload_time": "2018-08-16T13:59:37", "url": "https://files.pythonhosted.org/packages/3a/f3/093c6b8f619e3be350f6200df9e42e20b4982f51b9cbf68d2915d215c91d/pypopt-0.4.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "125dc440a105613e528d190d8caca786", "sha256": "b0a488707890cea8731af59844ab67965df2f2c523cf9de27be9061b82f66b6a" }, "downloads": -1, "filename": "pypopt-0.4.3.tar.gz", "has_sig": false, "md5_digest": "125dc440a105613e528d190d8caca786", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 202478, "upload_time": "2018-08-16T13:59:37", "url": "https://files.pythonhosted.org/packages/3a/f3/093c6b8f619e3be350f6200df9e42e20b4982f51b9cbf68d2915d215c91d/pypopt-0.4.3.tar.gz" } ] }