uvartage


Nameuvartage JSON
Version 0.3.1 PyPI version JSON
download
home_pageNone
SummaryWrapper for uv with artifact storage in airgapped environments
upload_time2025-08-09 20:50:31
maintainerNone
docs_urlNone
authorRainer Schwarzbach
requires_python>=3.11
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # uvartage

_A wrapper around **[uv]** for usage with artifact storage in airgapped environments_

The **uvartage** command starts a [REPL] (read-eval-print loop) using the
[Python cmd module] where environment variables have been set for **uv** and **uvx**
to use an artifact storage that requires authentication.

> Please note: so far, only [Artifactory] is supported as such an artifact storage backend.


For convenience, the **git** command is also supported.

Own command implementations include:

*   **cd** changes directories
*   **env** prints the available environment variables
*   **list** partially implements the functionality
    of the Unix **ls** command (ie. list files and/or directories)
*   **pwd** prints the working directory path
*   **sh** can be used to run arbitrary commands using the shell interpreter

The credentials for the user are asked at start time,
and stored in environment variables for each repository.

The REPL features a simple history, and tab completion for a subset of the commands
(currently, only **list** and **sh**, based on paths in the file system).

The loop can be left in different ways, depending on the operating system:

* Unix: Ctrl-D
* Windows: Ctrl-Z followed by the enter key
* as an anternative, you could enter `EOF` literally and press the enter key to exit. This method should always work.



## Prerequisites

[uv] has to be installed,
but otherwise, only standard library modules are used.


## Usage

### Built.in usage information

```console
[osuser@workstation workdir]$ uvartage --help
usage: uvartage [-h] [--version] [-v ] [--backend {artifactory}] [--ca-file CA_FILE] [--user USER]
                [USER@]HOSTNAME ...

Wrapper for uv with artifact storage in airgapped environments

positional arguments:
  [USER@]HOSTNAME       the artifact storage hostname, or user and hostname combined by '@'.
  repositories          the package repositories (default first). If not at least one repository name
                        is provided, the value of the environment variable UVARTAGE_DEFAULT_REPOSITORY
                        will be used.

options:
  -h, --help            show this help message and exit
  --version             print version and exit
  -v , --verbose        show more messages
  --backend {artifactory}
                        the artifact storage backend type (default and currently the only supported
                        backend: artifactory)
  --ca-file CA_FILE     a CA cert bundle file to be provided via SSL_CERT_FILE.
  --user USER           username for the artifact storage backend if the hostname is not explicitly
                        specified as USER@HOSTNAME; default is 'osuser'.

[osuser@workstation workdir]$
```


### Example REPL start

> ... with examiniation of the environment variables set for **uv**

``` console
[osuser@workstation workdir]$ uvartage artuser@artifacts.example.com defaultrepo extrarepo1 extrarepo2
| Neither the environment variable SSL_CERT_FILE has been set, nor a CA file through --ca-file.
| You might encounter problems if using a non-standard (i.e. organization internal) certificate authority.
Please enter the password for artuser on artifacts.example.com (input is hidden):
Welcome to the uv wrapper shell. Type help or ? to list commands.

«uvartage» [osuser@workstation workdir] env UV*
UV_DEFAULT_INDEX=primary=https://artifacts.example.com/artifactory/api/pypi/defaultrepo/simple
UV_INDEX=extra1=https://artifacts.example.com/artifactory/api/pypi/extrarepo1/simple extra2=https://artifacts.example.com/artifactory/api/pypi/extrarepo2/simple
UV_INDEX_EXTRA1_PASSWORD=[masked: entered password]
UV_INDEX_EXTRA1_USERNAME=artuser
UV_INDEX_EXTRA2_PASSWORD=[masked: entered password]
UV_INDEX_EXTRA2_USERNAME=artuser
UV_INDEX_PRIMARY_PASSWORD=[masked: entered password]
UV_INDEX_PRIMARY_USERNAME=artuser
«uvartage» [osuser@workstation workdir]
```


### Supported commands in the REPL

```
«uvartage» [osuser@workstation workdir] help

Documented commands (type help <topic>):
========================================
EOF  cd  env  git  help  list  ls  pwd  sh  uv  uvx

«uvartage» [osuser@workstation workdir] help EOF
Exit the REPL by EOF (eg. Ctrl-D on Unix)
«uvartage» [osuser@workstation workdir] help cd
Change directory
«uvartage» [osuser@workstation workdir] help env
Print the environment variables
«uvartage» [osuser@workstation workdir] help git
Run git with the provided arguments
«uvartage» [osuser@workstation workdir] help help
List available commands with "help" or detailed help with "help cmd".
«uvartage» [osuser@workstation workdir] help list
Print directory contents (emulation)
«uvartage» [osuser@workstation workdir] help ls
Deprecated POSIX platform only external ls command
«uvartage» [osuser@workstation workdir] help pwd
Print working directory
«uvartage» [osuser@workstation workdir] help sh
Run an arbitrary command through the shell
«uvartage» [osuser@workstation workdir] help uv
Run uv with the provided arguments
«uvartage» [osuser@workstation workdir] help uvx
Run uvx with the provided arguments
«uvartage» [osuser@workstation workdir]
```


* * *
[uv]: https://docs.astral.sh/uv/
[REPL]: https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop
[Python cmd module]: https://docs.python.org/3/library/cmd.html
[Artifactory]: https://jfrog.com/artifactory/

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "uvartage",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": null,
    "author": "Rainer Schwarzbach",
    "author_email": "Rainer Schwarzbach <rainer@blackstream.de>",
    "download_url": "https://files.pythonhosted.org/packages/85/82/37c55da2bed7dc4eae568df7d9cc87d54dc17c135163c9699bebc48c09f6/uvartage-0.3.1.tar.gz",
    "platform": null,
    "description": "# uvartage\n\n_A wrapper around **[uv]** for usage with artifact storage in airgapped environments_\n\nThe **uvartage** command starts a [REPL] (read-eval-print loop) using the\n[Python cmd module] where environment variables have been set for **uv** and **uvx**\nto use an artifact storage that requires authentication.\n\n> Please note: so far, only [Artifactory] is supported as such an artifact storage backend.\n\n\nFor convenience, the **git** command is also supported.\n\nOwn command implementations include:\n\n*   **cd** changes directories\n*   **env** prints the available environment variables\n*   **list** partially implements the functionality\n    of the Unix **ls** command (ie. list files and/or directories)\n*   **pwd** prints the working directory path\n*   **sh** can be used to run arbitrary commands using the shell interpreter\n\nThe credentials for the user are asked at start time,\nand stored in environment variables for each repository.\n\nThe REPL features a simple history, and tab completion for a subset of the commands\n(currently, only **list** and **sh**, based on paths in the file system).\n\nThe loop can be left in different ways, depending on the operating system:\n\n* Unix: Ctrl-D\n* Windows: Ctrl-Z followed by the enter key\n* as an anternative, you could enter `EOF` literally and press the enter key to exit. This method should always work.\n\n\n\n## Prerequisites\n\n[uv] has to be installed,\nbut otherwise, only standard library modules are used.\n\n\n## Usage\n\n### Built.in usage information\n\n```console\n[osuser@workstation workdir]$ uvartage --help\nusage: uvartage [-h] [--version] [-v ] [--backend {artifactory}] [--ca-file CA_FILE] [--user USER]\n                [USER@]HOSTNAME ...\n\nWrapper for uv with artifact storage in airgapped environments\n\npositional arguments:\n  [USER@]HOSTNAME       the artifact storage hostname, or user and hostname combined by '@'.\n  repositories          the package repositories (default first). If not at least one repository name\n                        is provided, the value of the environment variable UVARTAGE_DEFAULT_REPOSITORY\n                        will be used.\n\noptions:\n  -h, --help            show this help message and exit\n  --version             print version and exit\n  -v , --verbose        show more messages\n  --backend {artifactory}\n                        the artifact storage backend type (default and currently the only supported\n                        backend: artifactory)\n  --ca-file CA_FILE     a CA cert bundle file to be provided via SSL_CERT_FILE.\n  --user USER           username for the artifact storage backend if the hostname is not explicitly\n                        specified as USER@HOSTNAME; default is 'osuser'.\n\n[osuser@workstation workdir]$\n```\n\n\n### Example REPL start\n\n> ... with examiniation of the environment variables set for **uv**\n\n``` console\n[osuser@workstation workdir]$ uvartage artuser@artifacts.example.com defaultrepo extrarepo1 extrarepo2\n| Neither the environment variable SSL_CERT_FILE has been set, nor a CA file through --ca-file.\n| You might encounter problems if using a non-standard (i.e. organization internal) certificate authority.\nPlease enter the password for artuser on artifacts.example.com (input is hidden):\nWelcome to the uv wrapper shell. Type help or ? to list commands.\n\n\u00abuvartage\u00bb [osuser@workstation workdir] env UV*\nUV_DEFAULT_INDEX=primary=https://artifacts.example.com/artifactory/api/pypi/defaultrepo/simple\nUV_INDEX=extra1=https://artifacts.example.com/artifactory/api/pypi/extrarepo1/simple extra2=https://artifacts.example.com/artifactory/api/pypi/extrarepo2/simple\nUV_INDEX_EXTRA1_PASSWORD=[masked: entered password]\nUV_INDEX_EXTRA1_USERNAME=artuser\nUV_INDEX_EXTRA2_PASSWORD=[masked: entered password]\nUV_INDEX_EXTRA2_USERNAME=artuser\nUV_INDEX_PRIMARY_PASSWORD=[masked: entered password]\nUV_INDEX_PRIMARY_USERNAME=artuser\n\u00abuvartage\u00bb [osuser@workstation workdir]\n```\n\n\n### Supported commands in the REPL\n\n```\n\u00abuvartage\u00bb [osuser@workstation workdir] help\n\nDocumented commands (type help <topic>):\n========================================\nEOF  cd  env  git  help  list  ls  pwd  sh  uv  uvx\n\n\u00abuvartage\u00bb [osuser@workstation workdir] help EOF\nExit the REPL by EOF (eg. Ctrl-D on Unix)\n\u00abuvartage\u00bb [osuser@workstation workdir] help cd\nChange directory\n\u00abuvartage\u00bb [osuser@workstation workdir] help env\nPrint the environment variables\n\u00abuvartage\u00bb [osuser@workstation workdir] help git\nRun git with the provided arguments\n\u00abuvartage\u00bb [osuser@workstation workdir] help help\nList available commands with \"help\" or detailed help with \"help cmd\".\n\u00abuvartage\u00bb [osuser@workstation workdir] help list\nPrint directory contents (emulation)\n\u00abuvartage\u00bb [osuser@workstation workdir] help ls\nDeprecated POSIX platform only external ls command\n\u00abuvartage\u00bb [osuser@workstation workdir] help pwd\nPrint working directory\n\u00abuvartage\u00bb [osuser@workstation workdir] help sh\nRun an arbitrary command through the shell\n\u00abuvartage\u00bb [osuser@workstation workdir] help uv\nRun uv with the provided arguments\n\u00abuvartage\u00bb [osuser@workstation workdir] help uvx\nRun uvx with the provided arguments\n\u00abuvartage\u00bb [osuser@workstation workdir]\n```\n\n\n* * *\n[uv]: https://docs.astral.sh/uv/\n[REPL]: https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop\n[Python cmd module]: https://docs.python.org/3/library/cmd.html\n[Artifactory]: https://jfrog.com/artifactory/\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Wrapper for uv with artifact storage in airgapped environments",
    "version": "0.3.1",
    "project_urls": {
        "Bug Tracker": "https://gitlab.com/blackstream-x/uvartage/-/issues",
        "CI": "https://gitlab.com/blackstream-x/uvartage/-/pipelines",
        "Homepage": "https://gitlab.com/blackstream-x/uvartage",
        "Repository": "https://gitlab.com/blackstream-x/uvartage.git"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7cb147f75f2ee64a92251bd25f5301e3ba1376bd6b1eb27f29cac8fa89133f9c",
                "md5": "065fda5178642c6f670ada62cdbbe0d4",
                "sha256": "24352a513aa2f9c0b2642a00522e20865738c959de2e8f97673c475b34d1d536"
            },
            "downloads": -1,
            "filename": "uvartage-0.3.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "065fda5178642c6f670ada62cdbbe0d4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 11735,
            "upload_time": "2025-08-09T20:50:30",
            "upload_time_iso_8601": "2025-08-09T20:50:30.869338Z",
            "url": "https://files.pythonhosted.org/packages/7c/b1/47f75f2ee64a92251bd25f5301e3ba1376bd6b1eb27f29cac8fa89133f9c/uvartage-0.3.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "858237c55da2bed7dc4eae568df7d9cc87d54dc17c135163c9699bebc48c09f6",
                "md5": "c534d9c1e2e21c9e3bcd0a61bf984cef",
                "sha256": "9fc58e0349ec3bad74e1ec7068bad318fb3dfa3d0e3722803db7f90708c0e921"
            },
            "downloads": -1,
            "filename": "uvartage-0.3.1.tar.gz",
            "has_sig": false,
            "md5_digest": "c534d9c1e2e21c9e3bcd0a61bf984cef",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 8877,
            "upload_time": "2025-08-09T20:50:31",
            "upload_time_iso_8601": "2025-08-09T20:50:31.952854Z",
            "url": "https://files.pythonhosted.org/packages/85/82/37c55da2bed7dc4eae568df7d9cc87d54dc17c135163c9699bebc48c09f6/uvartage-0.3.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-09 20:50:31",
    "github": false,
    "gitlab": true,
    "bitbucket": false,
    "codeberg": false,
    "gitlab_user": "blackstream-x",
    "gitlab_project": "uvartage",
    "lcname": "uvartage"
}
        
Elapsed time: 0.89526s