{"id":21934923,"url":"https://github.com/tueda/donuts-python","last_synced_at":"2026-02-22T21:46:28.717Z","repository":{"id":49790828,"uuid":"203820494","full_name":"tueda/donuts-python","owner":"tueda","description":"Python binding to Donuts: 🍩 × 🐍","archived":false,"fork":false,"pushed_at":"2025-02-22T09:37:33.000Z","size":176,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-22T09:42:04.259Z","etag":null,"topics":["binding","computer-algebra","mathematics","multivariate-polynomials","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tueda.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-22T15:15:39.000Z","updated_at":"2025-02-22T09:36:58.000Z","dependencies_parsed_at":"2023-12-28T13:28:37.244Z","dependency_job_id":"c0bccfff-8540-48e7-a7d4-33d510ce9fd7","html_url":"https://github.com/tueda/donuts-python","commit_stats":{"total_commits":146,"total_committers":2,"mean_commits":73.0,"dds":"0.013698630136986356","last_synced_commit":"6570bf26cef841ccae8ce133eefab9111fe21c8c"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tueda%2Fdonuts-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tueda%2Fdonuts-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tueda%2Fdonuts-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tueda%2Fdonuts-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tueda","download_url":"https://codeload.github.com/tueda/donuts-python/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244966458,"owners_count":20539794,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["binding","computer-algebra","mathematics","multivariate-polynomials","python"],"created_at":"2024-11-29T00:17:44.481Z","updated_at":"2025-10-30T09:04:49.043Z","avatar_url":"https://github.com/tueda.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Donuts-Python\n=============\n\n.. image:: https://badge.fury.io/py/donuts-python.svg\n    :target: https://pypi.org/project/donuts-python/\n    :alt: PyPI version\n\n.. image:: https://github.com/tueda/donuts-python/actions/workflows/test.yml/badge.svg?branch=main\n    :target: https://github.com/tueda/donuts-python/actions?query=branch:main\n    :alt: Test\n\n.. image:: https://readthedocs.org/projects/donuts-python/badge/?version=latest\n    :target: https://donuts-python.readthedocs.io/en/latest/\n    :alt: Documentation Status\n\nPython binding to the `Donuts`_ wrapper for the `Rings`_ library by Stanislav Poslavsky.\n\n\nRequirements\n------------\n\n* Python 3.7 or later\n* Java 8 or later\n\n\nInstallation\n------------\n\n.. code:: shell\n\n    pip install donuts-python\n\n\nExample\n-------\n\n.. code:: python\n\n    \u003e\u003e\u003e from donuts import *\n    \u003e\u003e\u003e a = Polynomial('1 + x + y')\n    \u003e\u003e\u003e b = Polynomial('1 + y + z')\n    \u003e\u003e\u003e g = a + b\n    \u003e\u003e\u003e g\n    Polynomial('2+z+2*y+x')\n    \u003e\u003e\u003e ag = a * g\n    \u003e\u003e\u003e bg = b * g\n    \u003e\u003e\u003e ag.gcd(bg)  # must be equal to g\n    Polynomial('2+z+2*y+x')\n    \u003e\u003e\u003e ag / bg  # same as RationalFunction(ag, bg)\n    RationalFunction('(1+y+x)/(1+z+y)')\n    \u003e\u003e\u003e Polynomial('2*x^2 - 2*x^3 + 2*x^2*y - 2*x^3*y').factors\n    (Polynomial('-2'), Polynomial('x'), Polynomial('x'), Polynomial('-1+x'), Polynomial('1+y'))\n\n\nDevelopment\n-----------\n\n.. The code is tested by \"readme_dev\" in .github/workflows/test.yml and .gitlab-ci.yml.\n\n.. code:: shell\n\n    git submodule update --init\n    poetry install\n    poetry run invoke prepare\n\n    poetry run invoke build\n\n    poetry run invoke fmt\n    poetry run invoke lint\n    poetry run invoke test\n    poetry run invoke bench\n    poetry run invoke doc\n\n    DONUTS_PYTHON_BACKEND=pyjnius poetry run invoke test\n    DONUTS_PYTHON_BACKEND=py4j    poetry run invoke test\n    DONUTS_PYTHON_BACKEND=jpype   poetry run invoke test\n\n    poetry run invoke build --sdist --wheel\n\n\nAcknowledgements\n----------------\n\nThis software was developed as part of the project supported by JSPS KAKENHI Grant Number 19K03831.\n\n\nLicense\n-------\n\nDonuts-Python is distributed under the MIT license.\n\nThe wheel contains a fat JAR file generated from the following dependencies:\n\n* `Donuts`_ (MIT)\n* `Rings`_ (Apache 2.0)\n* `libdivide4j`_ (Apache 2.0)\n* `Combinatorics for Java`_ (Apache 2.0)\n* `Apache Commons Math`_ (Apache 2.0)\n* `GNU Trove`_ (LGPL 2.1)\n\n\n.. _Donuts: https://github.com/tueda/donuts\n.. _Rings:  https://github.com/PoslavskySV/rings\n.. _libdivide4j: https://github.com/PoslavskySV/libdivide4j\n.. _Combinatorics for Java: https://github.com/PoslavskySV/combinatorics\n.. _Apache Commons Math: https://github.com/apache/commons-math\n.. _GNU Trove: https://bitbucket.org/trove4j/trove\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftueda%2Fdonuts-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftueda%2Fdonuts-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftueda%2Fdonuts-python/lists"}