{"id":21286497,"url":"https://github.com/jjpaulo2/pipconf","last_synced_at":"2025-07-11T11:32:46.841Z","repository":{"id":48818377,"uuid":"353798266","full_name":"jjpaulo2/pipconf","owner":"jjpaulo2","description":"⚙ An easy to use Python's PIP configuration manager","archived":false,"fork":false,"pushed_at":"2024-08-10T04:27:08.000Z","size":421,"stargazers_count":15,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-04T16:29:03.648Z","etag":null,"topics":["configuration-management","pip","pipconf","pure-python","pypi","python","typer"],"latest_commit_sha":null,"homepage":"https://jjpaulo2.github.io/pipconf/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jjpaulo2.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"jjpaulo2"}},"created_at":"2021-04-01T18:57:01.000Z","updated_at":"2025-06-06T16:54:19.000Z","dependencies_parsed_at":"2024-11-21T11:32:50.317Z","dependency_job_id":"622c39f0-f32a-4382-abcd-a438d9ba8a42","html_url":"https://github.com/jjpaulo2/pipconf","commit_stats":{"total_commits":19,"total_committers":2,"mean_commits":9.5,"dds":0.3157894736842105,"last_synced_commit":"94a584900474624446f3f8a953f7fafa86967893"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/jjpaulo2/pipconf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjpaulo2%2Fpipconf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjpaulo2%2Fpipconf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjpaulo2%2Fpipconf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjpaulo2%2Fpipconf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jjpaulo2","download_url":"https://codeload.github.com/jjpaulo2/pipconf/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjpaulo2%2Fpipconf/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264795402,"owners_count":23665231,"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":["configuration-management","pip","pipconf","pure-python","pypi","python","typer"],"created_at":"2024-11-21T11:29:39.106Z","updated_at":"2025-07-11T11:32:45.381Z","avatar_url":"https://github.com/jjpaulo2.png","language":"Python","funding_links":["https://github.com/sponsors/jjpaulo2"],"categories":[],"sub_categories":[],"readme":"# PIPCONF - The PIP configuration manager\n\n![Python](https://img.shields.io/badge/Python-3.8_%7C_3.9_%7C_3.10_%7C_3.11_%7C_3.12-green)\n[![Tests](https://github.com/jjpaulo2/pipconf/actions/workflows/tests.yaml/badge.svg?branch=main)](https://github.com/jjpaulo2/pipconf/actions/workflows/tests.yaml)\n[![Publish](https://github.com/jjpaulo2/pipconf/actions/workflows/publish.yaml/badge.svg)](https://github.com/jjpaulo2/pipconf/actions/workflows/publish.yaml)\n[![PyPI - Version](https://img.shields.io/pypi/v/pipconf)](https://pypi.org/project/pipconf/)\n[![Sponsor](https://img.shields.io/badge/Sponsor-Pipconf-deeppink)](https://github.com/sponsors/jjpaulo2)\n\n![](screenshot.png)\n\nIf you need to manage multiple configurations containing indexes and trusted hosts for PIP, this project was made for you.\n\n- [Introduction](#introduction)\n- [Installation](#instalation)\n- [Usage](#usage)\n    - [List all available configurations](#list-all-available-configurations)\n    - [Create a new configuration](#create-a-new-configuration)\n    - [Get current configuration](#get-current-configuration)\n    - [Show the configuration file content](#show-the-configuration-file-content)\n    - [Set configuration file](#set-configuration-file)\n    - [Set local file as the current config](#set-local-file-as-the-current-config)\n\n\n\n### Introduction\n\nThe `pipconf` is based in `pip.conf` files in `$HOME/.pip` folder. But you won't create it with this name. So, you need to create your configuration files following the template `config-file-name.conf`. \n\nFor the first steps, create a new configuration.\n\n```shell\n$ pipconf new my-config.conf --open\n```\n\nThe file will come with a configuration template. All you need to do is just replace with your necessities.\n\n```toml\n\u003c!-- my-config.conf --\u003e\n\n[global]\nindex-url = https://pypi.org/simple\n# extra-index-url = \n# trusted-host = \n# timeout = 15\n# retries = 5\n...\n```\n\n```toml\n\u003c!-- company-config.conf --\u003e\n\n[global]\nindex-url = http://mycompany.com/artifactory/api/pypi/pypi/simple\nextra-index-url = http://mycompany.com/artifactory/api/pypi/pypi-local/simple/\ntrusted-host = mycompany.com\n```\n\n## Instalation\n\nThe package is available at [pypi.org](https://pypi.org/project/pipconf/). Then, you can install it using pip.\n\n```shell\n$ pip install pipconf\n```\n\n## Usage\n\n```shell\n$ pipconf --help\n```\nThe expected output should be something like the following content.\n\n```\n Usage: pipconf [OPTIONS] COMMAND [ARGS]...         \n                                                    \n ______ ___________  _____ _____ _   _ ______       \n | ___ \\_   _| ___ \\/  __ \\  _  | \\ | ||  ___|      \n | |_/ / | | | |_/ /| /  \\/ | | |  \\| || |          \n |  __/  | | |  __/ | |   | | | | . ` ||  _|        \n | |    _| |_| |    | \\__/\\ \\_/ / |\\  || |          \n \\_|    \\___/\\_|     \\____/\\___/\\_| \\_/\\_| v2.0.0   \n                                                    \n Under BSD-2-Clause License, by @jjpaulo2           \n Contribute at https://github.com/jjpaulo2/pipconf  \n                                                    \n╭─ Display informations ───────────────────────────╮\n│ current   Shows the currently active config file │\n│ list      Lists all available configs            │\n│ show      Shows a config file content            │\n╰──────────────────────────────────────────────────╯\n╭─ Change configurations ──────────────────────────╮\n│ local   Select a config file in current workdir  │\n│ new     Creates a new config file                │\n│ set     Select a configuration                   │\n╰──────────────────────────────────────────────────╯\n```\n\n### List all available configurations\n\n```shell\n$ pipconf list\n```\n```\nAvailable configurations at /home/user/.pip:\n\n● company.conf (/home/user/.pip/company.conf)\n○ my-config.conf (/home/user/.pip/my-config.conf)\n○ project.conf (/home/user/.pip/project-config.conf)\n```\n\n### Create a new configuration\n\n```shell\n$ pipconf new my-config\n```\n```\nConfig file my-config.conf created!\n```\n\nYou can also pass a `--open` flag to create and open the file.\n\n```shell\n$ pipconf new my-config --open\n```\n\n### Get current configuration\n\n```shell\n$ pipconf current\n```\n```\nCurrent configuration is /home/user/.pip/my-conf.conf!\n```\n\n### Show the configuration file content\n\n```shell\n$ pipconf show my-conf\n```\n```\n╭─────────── /home/user/.pip/test.conf ────────────╮\n│ [global]                                         │\n│ index-url = https://pypi.org/simple              │\n│ ...                                              │\n╰──────────────────────────────────────────────────╯\n```\n\nIf you don't pass any parameter, the command will show the content of the current configation file.\n\n```shell\n$ pipconf show\n```\n\n### Set configuration file\n\n```shell\n$ pipconf set my-config\n```\n```\nConfiguration is now set to my-config.conf!\n```\n\n### Set local file as the current config\n\nIf in the current workdir exists a file named `pip.conf`, you can set it as the current configuration.\n\n```shell\n$ pipconf local\n```\n```\nConfiguration is now set to /home/user/workspace/project/pip.conf!\n```\n\n---\n\nUnder [BSD-2-Clause License](./LICENSE), by [@jjpaulo2](https://github.com/jjpaulo2).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjjpaulo2%2Fpipconf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjjpaulo2%2Fpipconf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjjpaulo2%2Fpipconf/lists"}