Metadata-Version: 2.1
Name: jtypes.javabridge
Version: 4.0.4b1
Summary: Running and interacting with the JVM from Python (ctypes/cffi-based javabridge).
Author: Adam Karpierz
Author-email: adam@karpierz.net
Maintainer: Adam Karpierz
Maintainer-email: adam@karpierz.net
License: BSD license ; https://opensource.org/licenses/BSD-3-Clause
Project-URL: Homepage, https://pypi.org/project/jtypes.javabridge/
Project-URL: Documentation, https://jtypesjavabridge.readthedocs.io/
Project-URL: Download, https://pypi.org/project/jtypes.javabridge/
Project-URL: Source, https://github.com/karpierz/jtypes.javabridge
Project-URL: Issues, https://github.com/karpierz/jtypes.javabridge/issues
Keywords: jni,jvm,jtypes,jt,jpype,jep,pyjnius,jpy,javabridge,pyjava,jcc,py4j,jython,java,pythonjava,rubicon-java
Platform: any
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Natural Language :: Polish
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Programming Language :: Java
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Libraries :: Java Libraries
Requires-Python: <4.0.0,>=3.9.0
Description-Content-Type: text/x-rst; charset=UTF-8
License-File: LICENSE
Requires-Dist: setuptools>=75.3.0
Requires-Dist: pkg-about>=1.2.2
Requires-Dist: jni>=1.1.0b5
Requires-Dist: jvm>=0.6.0b5
Provides-Extra: numpy
Requires-Dist: numpy>=1.26.2; extra == "numpy"
Provides-Extra: doc
Requires-Dist: Sphinx>=7.4.7; extra == "doc"
Requires-Dist: sphinx-toolbox>=3.8.1; extra == "doc"
Requires-Dist: sphinx-tabs>=3.4.5; extra == "doc"
Requires-Dist: sphinx-copybutton>=0.5.2; extra == "doc"
Requires-Dist: sphinxcontrib-spelling>=8.0.0; extra == "doc"
Requires-Dist: sphinx-lint>=1.0.0; extra == "doc"
Requires-Dist: restructuredtext-lint>=1.4.0; extra == "doc"
Requires-Dist: nbsphinx>=0.9.5; extra == "doc"
Provides-Extra: test
Requires-Dist: numpy>=1.26.2; extra == "test"
Requires-Dist: deepdiff>=8.0.1; extra == "test"
Requires-Dist: rich>=13.9.4; extra == "test"

jtypes.javabridge
=================

Python wrapper for the Java Native Interface.

Overview
========

The |package_bold| package makes it easy to start a Java virtual machine (JVM)
from Python and interact with it. Python code can interact with the JVM using
a low-level API or a more convenient high-level API.

`PyPI record`_.

`Documentation`_.

| |package_bold| is an almost fully compliant implementation of Lee Kamentsky's
  and Vebjorn Ljosa's good known **Javabridge** package by reimplementing whole
  its functionality in a clean Python instead of Cython and C.
| |package_bold| package is closely based on the `jvm`_ and `jni`_ Python packages.

About javabridge:
-----------------

Borrowed from the `original website`_:

| The **javabridge** Python package makes it easy to start a Java virtual machine
  (JVM) from Python and interact with it.
| Python code can interact with the JVM using a low-level API or a more convenient
  high-level API.

The **javabridge** was developed for and is used by the cell image analysis
software `CellProfiler <https://cellprofiler.org/>`_ together with
`python-bioformats <https://github.com/CellProfiler/python-bioformats/>`_
to interface to various Java code, including `Bio-Formats <https://loci.wisc.edu/
software/bio-formats>`_ and `ImageJ <https://developer.imagej.net/>`_.

Requirements
============

- Java Runtime (JRE) or Java Development Kit (JDK), and NumPy (not mandatory but
  highly recommended).

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

Prerequisites:

+ Python 3.9 or higher

  * https://www.python.org/
  * Java 11 is a primary test environment.

+ pip and setuptools

  * https://pypi.org/project/pip/
  * https://pypi.org/project/setuptools/

To install run:

  .. parsed-literal::

    python -m pip install --upgrade |package|

Development
===========

Prerequisites:

+ Development is strictly based on *tox*. To install it run::

    python -m pip install --upgrade tox

Visit `Development page`_.

Installation from sources:

clone the sources:

  .. parsed-literal::

    git clone |respository| |package|

and run:

  .. parsed-literal::

    python -m pip install ./|package|

or on development mode:

  .. parsed-literal::

    python -m pip install --editable ./|package|

License
=======

  | |copyright|
  | Licensed under the BSD license
  | https://opensource.org/licenses/BSD-3-Clause
  | Please refer to the accompanying LICENSE file.

Authors
=======

* Adam Karpierz <adam@karpierz.net>

.. |package| replace:: jtypes.javabridge
.. |package_bold| replace:: **jtypes.javabridge**
.. |copyright| replace:: Copyright (c) 2014-2024, Adam Karpierz
.. |respository| replace:: https://github.com/karpierz/jtypes.javabridge.git
.. _Development page: https://github.com/karpierz/jtypes.javabridge
.. _PyPI record: https://pypi.org/project/jtypes.javabridge/
.. _Documentation: https://jtypesjavabridge.readthedocs.io/
.. _jvm: https://pypi.org/project/jvm/
.. _jni: https://pypi.org/project/jni/
.. _original website: https://pythonhosted.org/javabridge/

Changelog
=========

4.0.4b1 (2024-11-08)
--------------------
- Add support for Python 3.9, 3.10, 3.11, 3.12, 3.13
- Drop support for Python 3.5, 3.6, 3.7, 3.8
- Drop support for Python2.
- Add support for PyPy 3.9 and 3.10
- Synchro with javabridge master branch (v4.0.4).
- General update, improvements and cleanup.
- Update of Mozilla Rhino.
- Copyright year update.
- Setup update and improvements.

1.0.18b3 (2018-11-08)
---------------------
- Update of the required setuptools version.
- Minor setup and tests improvements.
- Last release for Python2.

1.0.18b1 (2018-10-01)
---------------------
- Synchro with javabridge master branch (v.1.0.18+).

1.0.17b2 (2018-05-29)
---------------------
- Synchro with javabridge master branch.
- Bug fixes and improvements in Java 9 support.
- Update of Mozilla Rhino.
- Update of the required setuptools version.

1.0.14b4 (2018-02-26)
---------------------
- Improvement and simplification of setup and packaging.

1.0.14b3 (2018-01-29)
---------------------
- Development moved to github.
- General improvements and update.

1.0.14b2 (2017-01-01)
---------------------
- Second beta release.
- Version numbering in sync. with the original javabridge.

0.1.1a1 (2014-10-05)
--------------------
- Initial version.
