fabricplus


Namefabricplus JSON
Version 1.0.1 PyPI version JSON
download
home_pagehttps://fabricplus.prokopto.dev/
SummaryA Python 3.8.10+ wrapper to add in SCP functionality for file transfer in Fabric.
upload_time2024-06-05 14:30:14
maintainerCourtney Caldwell
docs_urlNone
authorCourtney Caldwell
requires_python<4.0,>=3.8.1
licenseMIT
keywords fabric scp file transfer python wrapper paramiko connection transfer
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            ![PyPI - Version](https://img.shields.io/pypi/v/fabricplus)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/fabricplus)
![PyPI - License](https://img.shields.io/pypi/l/fabricplus)
![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/prokopto-dev/fabric-plus/testing.yml?logo=github&label=testing)

# FabricPlus

A drop-in expansion of features in the Fabric library.

As of version `0.1.0`, those include:

- Jumphost connectivity support
  - `jump_run` command to run commands from the intermediate jumphost
- SCP Transfer support (including via a jumphost)
- `su` command support

See the API documentation on the [FabricPlus Website](https://fabricplus.prokopto.dev/) for more information, as well as "Getting Started" guide.

See [`fabric`](https://github.com/fabric/fabric) for more details on the base `fabric` library, if interested in the underlying behaviors. Some have been changed: see Important Changes and the documentation for more information.

## Note On Changelogs

### v1.0.1

- Bugfix: `su` command had an invalid argument when processing subcommands. Fixed.

## Installation

### pip (via PyPI)

As of version `0.1.0`, FabricPlus is available via `pip` and is on the Python Package Index.

To install, simply install `fabricplus`.

```bash
pip install fabricplus
```

### Building From Source

You can also build `fabricplus` from source, especially if you want features or updates released outside of a tagged release on `PyPI`.

To do so, you'll need `poetry`, and an environment with a version of Python greater than or equal to `3.8`.

#### Step 1: Install Poetry

To install `poetry`, simply run:

```bash
pip install poetry
```

For more information on `poetry`, see the [Poetry Website](https://python-poetry.org/).

#### Step 2: Clone Repo and Run `poetry build`

Once you have that installed, clone the repo, then run `poetry build` from the root directory:

```bash
# Clone
git clone https://github.com/prokopto-dev/fabric-plus
# Move into fabric-plus
cd fabric-plus
# Run poetry build
poetry build
# install with pip the newly build wheel file (file name may vary)
pip install dist/fabricplus-0.1.0-py3-none-any.whl
```

## Quick-Start

The following is all the basic *new* features in one small block.

```python3
# importing as Connection
from fabricplus.connection import ConnectionPlus as Connection

# Creating a basic connection
conn_1: Connection = Connection("host1.example.com")

# Creating a jumphost connection, and then a host connection via that jumphost
jumphost_1: Connection = Connection("jumphost.example.com")
conn_via_jh: Connection = Connection("host2.example.com", jump_target=jumphost_1)

# Creating a host that uses SCP for transfers by default
conn_2: Connection("host3.example.com", scp=True)

# Running a get via SCP on the host1/conn_1, which doesn't use SCP by default
conn_1.get("/path/to/some/remote/file", scp=True)

# Running a command as some other user via su
conn_1.su("date", user="someotheruser", password="someuserspasswd")
```

License Addendum
----------------
- [`scp.py`](https://github.com/jbardin/scp.py) is used by import under the LGPL v2.1 license, and this notice is in accordance with that license.
- [`paramiko-jump`](https://github.com/andrewschenck/paramiko-jump) used under Apache License 2.0, see `fabricplus/paramiko_modifications/client.py` for license details.
- [`fabric`](https://github.com/fabric/fabric) is used, and falls under a BSD-2-Clause license, which doesn't restrict its use as an imported library, but is noted here anyways.
            

Raw data

            {
    "_id": null,
    "home_page": "https://fabricplus.prokopto.dev/",
    "name": "fabricplus",
    "maintainer": "Courtney Caldwell",
    "docs_url": null,
    "requires_python": "<4.0,>=3.8.1",
    "maintainer_email": "courtneyccaldwell@gmail.com",
    "keywords": "fabric, scp, file transfer, python, wrapper, paramiko, connection, transfer",
    "author": "Courtney Caldwell",
    "author_email": "courtneyccaldwell@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/1d/75/4a784ee1868a14ab7b42b80f3a91be004e662baa755cdf764662fc119f66/fabricplus-1.0.1.tar.gz",
    "platform": null,
    "description": "![PyPI - Version](https://img.shields.io/pypi/v/fabricplus)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/fabricplus)\n![PyPI - License](https://img.shields.io/pypi/l/fabricplus)\n![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/prokopto-dev/fabric-plus/testing.yml?logo=github&label=testing)\n\n# FabricPlus\n\nA drop-in expansion of features in the Fabric library.\n\nAs of version `0.1.0`, those include:\n\n- Jumphost connectivity support\n  - `jump_run` command to run commands from the intermediate jumphost\n- SCP Transfer support (including via a jumphost)\n- `su` command support\n\nSee the API documentation on the [FabricPlus Website](https://fabricplus.prokopto.dev/) for more information, as well as \"Getting Started\" guide.\n\nSee [`fabric`](https://github.com/fabric/fabric) for more details on the base `fabric` library, if interested in the underlying behaviors. Some have been changed: see Important Changes and the documentation for more information.\n\n## Note On Changelogs\n\n### v1.0.1\n\n- Bugfix: `su` command had an invalid argument when processing subcommands. Fixed.\n\n## Installation\n\n### pip (via PyPI)\n\nAs of version `0.1.0`, FabricPlus is available via `pip` and is on the Python Package Index.\n\nTo install, simply install `fabricplus`.\n\n```bash\npip install fabricplus\n```\n\n### Building From Source\n\nYou can also build `fabricplus` from source, especially if you want features or updates released outside of a tagged release on `PyPI`.\n\nTo do so, you'll need `poetry`, and an environment with a version of Python greater than or equal to `3.8`.\n\n#### Step 1: Install Poetry\n\nTo install `poetry`, simply run:\n\n```bash\npip install poetry\n```\n\nFor more information on `poetry`, see the [Poetry Website](https://python-poetry.org/).\n\n#### Step 2: Clone Repo and Run `poetry build`\n\nOnce you have that installed, clone the repo, then run `poetry build` from the root directory:\n\n```bash\n# Clone\ngit clone https://github.com/prokopto-dev/fabric-plus\n# Move into fabric-plus\ncd fabric-plus\n# Run poetry build\npoetry build\n# install with pip the newly build wheel file (file name may vary)\npip install dist/fabricplus-0.1.0-py3-none-any.whl\n```\n\n## Quick-Start\n\nThe following is all the basic *new* features in one small block.\n\n```python3\n# importing as Connection\nfrom fabricplus.connection import ConnectionPlus as Connection\n\n# Creating a basic connection\nconn_1: Connection = Connection(\"host1.example.com\")\n\n# Creating a jumphost connection, and then a host connection via that jumphost\njumphost_1: Connection = Connection(\"jumphost.example.com\")\nconn_via_jh: Connection = Connection(\"host2.example.com\", jump_target=jumphost_1)\n\n# Creating a host that uses SCP for transfers by default\nconn_2: Connection(\"host3.example.com\", scp=True)\n\n# Running a get via SCP on the host1/conn_1, which doesn't use SCP by default\nconn_1.get(\"/path/to/some/remote/file\", scp=True)\n\n# Running a command as some other user via su\nconn_1.su(\"date\", user=\"someotheruser\", password=\"someuserspasswd\")\n```\n\nLicense Addendum\n----------------\n- [`scp.py`](https://github.com/jbardin/scp.py) is used by import under the LGPL v2.1 license, and this notice is in accordance with that license.\n- [`paramiko-jump`](https://github.com/andrewschenck/paramiko-jump) used under Apache License 2.0, see `fabricplus/paramiko_modifications/client.py` for license details.\n- [`fabric`](https://github.com/fabric/fabric) is used, and falls under a BSD-2-Clause license, which doesn't restrict its use as an imported library, but is noted here anyways.",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A Python 3.8.10+ wrapper to add in SCP functionality for file transfer in Fabric.",
    "version": "1.0.1",
    "project_urls": {
        "Homepage": "https://fabricplus.prokopto.dev/",
        "Repository": "https://github.com/prokopto-dev/fabric-plus"
    },
    "split_keywords": [
        "fabric",
        " scp",
        " file transfer",
        " python",
        " wrapper",
        " paramiko",
        " connection",
        " transfer"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3a89a7962c8fd1e1d3963f51d0ae31f55d884a16289f8d9739b49df8701ca8d9",
                "md5": "6098419ac2ca98012d033c43c8262f92",
                "sha256": "bb0150c9620e7b44a57897cc0407ca815e107f0b5d107335a6b23af58a28e7bb"
            },
            "downloads": -1,
            "filename": "fabricplus-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6098419ac2ca98012d033c43c8262f92",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.8.1",
            "size": 12850,
            "upload_time": "2024-06-05T14:30:10",
            "upload_time_iso_8601": "2024-06-05T14:30:10.359474Z",
            "url": "https://files.pythonhosted.org/packages/3a/89/a7962c8fd1e1d3963f51d0ae31f55d884a16289f8d9739b49df8701ca8d9/fabricplus-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1d754a784ee1868a14ab7b42b80f3a91be004e662baa755cdf764662fc119f66",
                "md5": "69292e860a14419876f8d988a20ca469",
                "sha256": "cc2d30b43efddd8a5c5d1cdb2c1dfbf32d49cbf9e9fa8bc2c97843c599ab1d2e"
            },
            "downloads": -1,
            "filename": "fabricplus-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "69292e860a14419876f8d988a20ca469",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.8.1",
            "size": 12393,
            "upload_time": "2024-06-05T14:30:14",
            "upload_time_iso_8601": "2024-06-05T14:30:14.739463Z",
            "url": "https://files.pythonhosted.org/packages/1d/75/4a784ee1868a14ab7b42b80f3a91be004e662baa755cdf764662fc119f66/fabricplus-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-05 14:30:14",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "prokopto-dev",
    "github_project": "fabric-plus",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "lcname": "fabricplus"
}
        
Elapsed time: 4.09808s