Metadata-Version: 2.4
Name: portforward
Version: 0.7.6
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
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.14
License-File: LICENSE
License-File: AUTHORS.rst
Summary: Easy Kubernetes Port-Forward For Python
Keywords: portforward,kubernetes,k8s
Author-email: Sebastian Ziemann <corka149@mailbox.org>
License: MIT License
Requires-Python: >=3.7
Description-Content-Type: text/x-rst; charset=UTF-8
Project-URL: Changelog, https://github.com/pytogo/portforward/blob/main/HISTORY.rst
Project-URL: Documentation, https://portforward.readthedocs.io
Project-URL: Repository, https://github.com/pytogo/portforward.git

===========
portforward
===========


.. image:: https://img.shields.io/pypi/v/portforward.svg
        :target: https://pypi.python.org/pypi/portforward

.. image:: https://img.shields.io/pypi/status/portforward.svg
        :target: https://pypi.python.org/pypi/portforward

.. image:: https://img.shields.io/pypi/dm/portforward
        :alt: PyPI - Downloads

.. image:: https://readthedocs.org/projects/portforward/badge/?version=latest
        :target: https://portforward.readthedocs.io/en/latest/?version=latest
        :alt: Documentation Status

.. image:: https://github.com/pytogo/portforward/actions/workflows/python-app.yml/badge.svg
        :target: https://github.com/pytogo/portforward/actions
        :alt: Build status



Easy Kubernetes Port-Forward For Python


* Free software: MIT license
* Documentation: https://portforward.readthedocs.io.


Installation
-----------------------------

Wheels are available for:

* **Windows** (architectures: ``x64``, ``x86``)
* **macOS**   (architectures: ``x86_64``, ``aarch64``)
* **Linux**   (architectures: ``x86_64``, ``x86``, ``aarch64``, ``armv7``, ``s390x``, ``ppc64le``)

Musllinux wheels (Alpine‑compatible) are provided for ``x86_64``, ``x86``, ``aarch64`` and ``armv7``.

with Python versions:

* 3.9
* 3.10
* 3.11
* 3.12
* 3.13

**Requirements for installation from source**

The following things are required when there is no wheel available for the target system.

* `Rust` installed and available in the path (https://www.rust-lang.org/tools/install)
* `Python` (at least v3.7 - below was never tested but might work)

Pip knows how to install ``portforward``.

.. code-block::

    pip install portforward


Quickstart
----------

.. code-block:: Python

    import requests

    import portforward


    def main():
        namespace = "test"
        pod_name = "web"  # You can also use a service name instead
        local_port = 9000  # from port
        pod_port = 80  # to port

        # No path to kube config provided - will use default from $HOME/.kube/config
        with portforward.forward(namespace, pod_name, local_port, pod_port):
            response = requests.get("http://localhost:9000")
            print(f"Done: \n'{response.status_code}'\n'{response.text[:20]}...'")


    if __name__ == "__main__":
        main()


Features
--------

* Native Kubernetes port-forwarding with the ``.kube/config`` from the home dir
  or any other path to config.
* Portforward for pods and services - the lib will first look for a pod with matching name then for
  a service
* Waiting for a pod to become ready
* Multiple forwards per pod or service
* As context manager, sync or async client


Development
-----------

In case you want to develop on this library itself please take a look at the CONTRIBUTING page.

Credits
-------

This project is enabled by PyO3_.

.. _PyO3: https://pyo3.rs

