/pipconf

⚙ An easy to use Python's PIP configuration manager

Primary LanguagePythonBSD 2-Clause "Simplified" LicenseBSD-2-Clause

PIPCONF - The PIP configuration manager

Python Tests Publish PyPI - Version Sponsor

If you need to manage multiple configurations containing indexes and trusted hosts for PIP, this project was made for you.

Introduction

The 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.

For the first steps, create a new configuration.

$ pipconf new my-config.conf --open

The file will come with a configuration template. All you need to do is just replace with your necessities.

<!-- my-config.conf -->

[global]
index-url = https://pypi.org/simple
# extra-index-url = 
# trusted-host = 
# timeout = 15
# retries = 5
...
<!-- company-config.conf -->

[global]
index-url = http://mycompany.com/artifactory/api/pypi/pypi/simple
extra-index-url = http://mycompany.com/artifactory/api/pypi/pypi-local/simple/
trusted-host = mycompany.com

Instalation

The package is available at pypi.org. Then, you can install it using pip.

$ pip install pipconf

Usage

$ pipconf --help

The expected output should be something like the following content.

 Usage: pipconf [OPTIONS] COMMAND [ARGS]...         
                                                    
 ______ ___________  _____ _____ _   _ ______       
 | ___ \_   _| ___ \/  __ \  _  | \ | ||  ___|      
 | |_/ / | | | |_/ /| /  \/ | | |  \| || |          
 |  __/  | | |  __/ | |   | | | | . ` ||  _|        
 | |    _| |_| |    | \__/\ \_/ / |\  || |          
 \_|    \___/\_|     \____/\___/\_| \_/\_| v2.0.0   
                                                    
 Under BSD-2-Clause License, by @jjpaulo2           
 Contribute at https://github.com/jjpaulo2/pipconf  
                                                    
╭─ Display informations ───────────────────────────╮
│ current   Shows the currently active config file │
│ list      Lists all available configs            │
│ show      Shows a config file content            │
╰──────────────────────────────────────────────────╯
╭─ Change configurations ──────────────────────────╮
│ local   Select a config file in current workdir  │
│ new     Creates a new config file                │
│ set     Select a configuration                   │
╰──────────────────────────────────────────────────╯

List all available configurations

$ pipconf list
Available configurations at /home/user/.pip:

● company.conf (/home/user/.pip/company.conf)
○ my-config.conf (/home/user/.pip/my-config.conf)
○ project.conf (/home/user/.pip/project-config.conf)

Create a new configuration

$ pipconf new my-config
Config file my-config.conf created!

You can also pass a --open flag to create and open the file.

$ pipconf new my-config --open

Get current configuration

$ pipconf current
Current configuration is /home/user/.pip/my-conf.conf!

Show the configuration file content

$ pipconf show my-conf
╭─────────── /home/user/.pip/test.conf ────────────╮
│ [global]                                         │
│ index-url = https://pypi.org/simple              │
│ ...                                              │
╰──────────────────────────────────────────────────╯

If you don't pass any parameter, the command will show the content of the current configation file.

$ pipconf show

Set configuration file

$ pipconf set my-config
Configuration is now set to my-config.conf!

Set local file as the current config

If in the current workdir exists a file named pip.conf, you can set it as the current configuration.

$ pipconf local
Configuration is now set to /home/user/workspace/project/pip.conf!

Under BSD-2-Clause License, by @jjpaulo2.