cyipopt

Cython interface for the interior point optimzer IPOPT

https://github.com/mechmotum/cyipopt

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    6 of 26 committers (23.1%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.4%) to scientific vocabulary

Keywords from Contributors

parameter-estimation mathematical-programming nonlinear-programming cvode modeling-language optimal-control closember cython sensitivity-analysis
Last synced: 10 months ago · JSON representation

Repository

Cython interface for the interior point optimzer IPOPT

Basic Info
  • Host: GitHub
  • Owner: mechmotum
  • License: epl-2.0
  • Language: Python
  • Default Branch: master
  • Size: 1.75 MB
Statistics
  • Stars: 267
  • Watchers: 9
  • Forks: 62
  • Open Issues: 17
  • Releases: 13
Created over 11 years ago · Last pushed 11 months ago
Metadata Files
Readme Changelog License Authors

README.rst

==================
README for cyipopt
==================

Ipopt_ (Interior Point OPTimizer, pronounced eye-pea-opt) is a software package
for large-scale nonlinear optimization. Ipopt is available from the COIN-OR_
initiative, under the Eclipse Public License (EPL).

**cyipopt** is a Python wrapper around Ipopt. It enables using Ipopt from the
comfort of the Python programming language.

.. _Ipopt: https://projects.coin-or.org/Ipopt
.. _COIN-OR: https://projects.coin-or.org/

Status
======

.. list-table::

   * - Anaconda
     - .. image:: https://anaconda.org/conda-forge/cyipopt/badges/version.svg
          :target: https://anaconda.org/conda-forge/cyipopt
       .. image:: https://anaconda.org/conda-forge/cyipopt/badges/downloads.svg
          :target: https://anaconda.org/conda-forge/cyipopt
   * - PyPI
     - .. image:: https://badge.fury.io/py/cyipopt.svg
          :target: https://pypi.org/project/cyipopt
       .. image:: https://pepy.tech/badge/cyipopt
          :target: https://pypi.org/project/cyipopt
   * - Read the Docs
     - .. image:: https://readthedocs.org/projects/cyipopt/badge/?version=latest
          :target: https://cyipopt.readthedocs.io/en/latest/?badge=latest
          :alt: Documentation Status

History
=======

**This repository was forked in 2016 from https://bitbucket.org/amitibo/cyipopt
and is now considered the primary repository.** The fork includes a SciPy-style
interface and ability to handle exceptions in the callback functions.

As of version 1.1.0 (2021-09-07), the distribution is released under the name
"cyipopt" on PyPi (https://pypi.org/project/cyipopt). Before version 1.1.0, it
was released under the name "ipopt" (https://pypi.org/project/ipopt).

Installation
============

We recommend using conda to install cyipopt on Linux, Mac, and Windows::

   conda install -c conda-forge cyipopt

Other `installation options`_ are present in the documentation.

.. _installation options: https://github.com/mechmotum/cyipopt/blob/master/docs/source/install.rst


Building `manylinux` wheels
===========================

manylinux wheels can be built for a tagged version (GIT_TAG below) of cyipopt via docker by running (while in the root of this repo)::

   docker run -v $(pwd):/wheels --rm --platform=linux/amd64 quay.io/pypa/manylinux_2_28_x86_64 bash /wheels/build_manylinux_wheels.sh GIT_TAG

for linux/amd64 and::

   docker run -v $(pwd):/wheels --rm --platform=linux/aarch64 quay.io/pypa/manylinux_2_28_aarch64 bash /wheels/build_manylinux_wheels.sh GIT_TAG

for linux/aarch64 platforms. Built wheels appear at the folder the command was executed from.

.. warning::
    Docker supports emulating non-native platforms to e.g. produce ARM binaries from an AMD64 host. However this can be quite slow (~1h for our case).

License
=======

cyipopt is open-source code released under the EPL_ license, see the
``LICENSE`` file.

.. _EPL: https://www.eclipse.org/legal/epl-2.0/

Contributing
============

For bug reports, feature requests, comments, patches use the GitHub issue
tracker and/or pull request system.

Contributors (made with `contrib.rocks `_):

.. image:: https://contrib.rocks/image?repo=mechmotum/cyipopt
   :target: https://github.com/mechmotum/cyipopt/graphs/contributors

Owner

  • Name: TU Delft Bicycle Lab
  • Login: mechmotum
  • Kind: organization
  • Email: j.k.moore@tudelft.nl
  • Location: Delft, Netherlands

A bicycle engineering research lab led by Jason K. Moore @ TU Delft

GitHub Events

Total
  • Release event: 2
  • Issues event: 23
  • Watch event: 32
  • Issue comment event: 69
  • Push event: 11
  • Pull request review event: 5
  • Pull request review comment event: 6
  • Pull request event: 9
  • Fork event: 7
Last Year
  • Release event: 2
  • Issues event: 23
  • Watch event: 32
  • Issue comment event: 69
  • Push event: 11
  • Pull request review event: 5
  • Pull request review comment event: 6
  • Pull request event: 9
  • Fork event: 7

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 638
  • Total Committers: 26
  • Avg Commits per committer: 24.538
  • Development Distribution Score (DDS): 0.624
Past Year
  • Commits: 145
  • Committers: 10
  • Avg Commits per committer: 14.5
  • Development Distribution Score (DDS): 0.69
Top Committers
Name Email Commits
Jason K. Moore m****s@g****m 240
Sam Brockie s****9@c****k 169
Robert Parker r****r@g****m 42
jhelgert j****t@p****e 36
Matt Haberland m****a@c****u 25
Matthias Kümmerer m****s@m****g 20
amitibo a****o@l****t 16
yannikschaelte y****e@g****m 14
Nikitas Rontsis n****s@g****m 14
apommel a****l@g****m 11
andr1976 5****6 8
Benjamin A. Beasley c****e@m****t 7
Amit Aides a****o@t****l 7
Andre E Toscano a****e@v****m 6
Huawei Wang h****a@g****m 4
Sam Brockie s****e@i****m 3
Christoph Hansknecht c****t@t****e 3
Jonathan Helgert j****t 3
wielandbrendel w****l@p****e 2
Avik De a****e@g****m 2
bocklund b****d@g****m 1
amitibo a****o@V****l 1
John Siirola j****a 1
Tobias Kies t****s@a****o 1
amitibo a****o@V****l 1
Polina Lakrisenko p****o@g****m 1

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 108
  • Total pull requests: 78
  • Average time to close issues: 7 months
  • Average time to close pull requests: 26 days
  • Total issue authors: 66
  • Total pull request authors: 18
  • Average comments per issue: 4.41
  • Average comments per pull request: 4.13
  • Merged pull requests: 61
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 17
  • Pull requests: 14
  • Average time to close issues: 3 months
  • Average time to close pull requests: 6 days
  • Issue authors: 15
  • Pull request authors: 5
  • Average comments per issue: 2.35
  • Average comments per pull request: 2.14
  • Merged pull requests: 9
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • moorepants (22)
  • jhelgert (4)
  • ForceBru (4)
  • hssharadga (3)
  • musicinmybrain (3)
  • rlacjfjin (2)
  • Robbybp (2)
  • lfaucheux (2)
  • yasirroni (2)
  • brocksam (2)
  • brunomorampc (2)
  • patrickocal (2)
  • EmJay276 (2)
  • tobias-kies-artemis (2)
  • Peter230655 (1)
Pull Request Authors
  • moorepants (37)
  • mdhaber (8)
  • chrhansk (8)
  • brocksam (5)
  • jhelgert (4)
  • musicinmybrain (4)
  • nrontsis (4)
  • stevenrhall (3)
  • lynntf (3)
  • Robbybp (2)
  • philsuess (2)
  • tobias-kies-artemis (2)
  • zhengzl18 (1)
  • jameshammondpx (1)
  • MarkusZimmerDLR (1)
Top Labels
Issue Labels
bug (4) enhancement (3) documentation (2)
Pull Request Labels

Packages

  • Total packages: 4
  • Total downloads:
    • pypi 6,482 last-month
  • Total docker downloads: 68
  • Total dependent packages: 13
    (may contain duplicates)
  • Total dependent repositories: 28
    (may contain duplicates)
  • Total versions: 39
  • Total maintainers: 2
pypi.org: ipopt

A Cython wrapper to the IPOPT optimization package

  • Versions: 7
  • Dependent Packages: 3
  • Dependent Repositories: 20
  • Downloads: 1,007 Last month
  • Docker Downloads: 25
Rankings
Dependent packages count: 3.1%
Dependent repos count: 3.2%
Docker downloads count: 3.7%
Average: 4.4%
Stargazers count: 4.7%
Downloads: 5.6%
Forks count: 5.8%
Maintainers (2)
Last synced: 11 months ago
pypi.org: cyipopt

A Cython wrapper to the IPOPT optimization package

  • Versions: 6
  • Dependent Packages: 7
  • Dependent Repositories: 3
  • Downloads: 5,475 Last month
  • Docker Downloads: 43
Rankings
Dependent packages count: 2.4%
Docker downloads count: 3.1%
Stargazers count: 4.7%
Average: 5.4%
Forks count: 5.8%
Downloads: 7.3%
Dependent repos count: 9.0%
Maintainers (1)
Last synced: 11 months ago
proxy.golang.org: github.com/mechmotum/cyipopt
  • Versions: 19
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.3%
Average: 5.5%
Dependent repos count: 5.7%
Last synced: 11 months ago
conda-forge.org: cyipopt

Ipopt (Interior Point OPTimizer, pronounced eye-pea-Opt) is a software package for large-scale nonlinear optimization. cyipopt is a python wrapper around Ipopt. It enables using Ipopt from the comfort of the great Python scripting language. Ipopt is available from the COIN-OR initiative, under the Eclipse Public License (EPL).

  • Versions: 7
  • Dependent Packages: 3
  • Dependent Repositories: 5
Rankings
Dependent repos count: 14.8%
Dependent packages count: 15.6%
Average: 20.6%
Forks count: 25.3%
Stargazers count: 26.5%
Last synced: 11 months ago

Dependencies

docs/requirements.txt pypi
  • numpydoc >=0.7
  • sphinx >=1.6.7
requirements.txt pypi
  • cython >=0.26
  • ipopt >=3.12
  • numpy >=1.15
  • pkg-config >=0.29.2
  • setuptools >=39.0
.github/workflows/docs.yml actions
  • actions/checkout v2 composite
  • conda-incubator/setup-miniconda v2 composite
.github/workflows/test.yml actions
  • actions/checkout v2 composite
  • conda-incubator/setup-miniconda v2 composite
.github/workflows/tests.yml actions
  • actions/checkout v2 composite
  • conda-incubator/setup-miniconda v2 composite