Saravanan666/pypi-org huggingface dataset:
Package: pil-plus
INTRODUCTION"pil_plus" is a Python package that makes it easier to work with images. It provides a collection of functions that build upon the Python Imaging Library (PIL) and OpenCV, adding additional features and functionality.Some of the features offered by "pil_plus" include:Image resizing: Functions for quickly and easily resizing images to different dimensions.Image rotation: Functions for rotating images by any angle.Image filtering: Functions for applying various image filters, such as blur, sharpen, and edge detection.Writing Text on ImagesRemoving background of ImagesReplacing a specific color in the image with anotherOverall, "pil_plus" aims to provide a simple and intuitive interface for working with images in Python, making it easy to perform common image manipulation tasks.Installationpil_plus can be installed using pip with the following command:pip install pil-plusUsageusing pil_plus is as simple as the following:Importing the packageOpening an imageGetting size of the imageResizing and rotatingImage filteringWriting text on imageRemoving background of the imageReplacing one color with anotherOther common functionsImporting the packagefrompil_plusimportPilPlusOpening an image# using path of the imageimage=PilPlus("test.jpg")# converting numpy array to PilPlus objectimage=PilPlus(some_numpy_image_array)# converting Pil Image to PilPlus objectimage=PilPlus(some_pil_image_variable)# converting base64 string to PilPlus objectimage=PilPlus(some_base64_string)Getting size of the image# Getting image widthwidth=image.get_width()# Getting image heightheight=image.get_height()# Getting image size tuplesize=image.get_size()Resizing and rotatingResizing:# changing width and keeping aspect ratioimage.resize(new_width=1000)# changing height and keeping aspect ratioimage.resize(new_height=1000)# changing both width and heightimage.resize(new_width=600,new_height=800)Rotating:# rotating -45 degreesimage.rotate(-45)Image filtering# applying Guassian Blurimage.apply_gaussian_blur()# sharpening the imageimage.sharpen()# applying backgroundimage.apply_background((255,255,255))# changes background from transparent (see Removing background of the image) to black# getting canny edges and showing the returned imageedges=image.get_canny_edges()edges.show()Writing Text on imageimage.draw_text("The is sample text",text_color=(0,0,0),coordinates=(0,0))Removing Background of the imageimage.remove_background()Replacing one color with another# replace black with whiteimage.replace_color((0,0,0),(255,255,255))Other common functions# showing the imageimage.show()# saving the imageimage.save()# save as outputs\output.png (incrementing 1 in the file name if it exists)image.save('some_dir/name.extension')# save in some other path# returning base64 stringimage.get_base64()# get PIL Image objectimage.get_image()# getting numpy arrayimage.get_numpy_array()# Conversion between different color models and conventionsimage.rgb_to_bgr()image.bgr_to_rgb()image.convert_to_grayscale()image.convert_to_rgb()
Package: pil-resize-aspect-ratio
pil_resizeDescriptionResize/paste images easily keeping their aspect ratioInstallpipinstallpil_resize_aspect_ratio# orpip3installpil_resize_aspect_ratioUsagefrompil_resize_aspect_ratioimportResizer,FillTypep_org_img_bg='bg.png'p_overlay_img='fg.png'path_out='final.png'resized_bg_image=Resizer.resize_keep_aspect_ratio(image=p_org_img_bg,fill_type=FillType.Fill,target_size=(1920,1080),return_image_instead_of_success=False)print(Resizer.paste_and_fit(background_image=resized_bg_image,foreground_image=p_overlay_img,path_out=path_out))Dependenciesnoraise,Pillow
Package: pil-supporter
pil-supporterhttps://pypi.org/project/pil-supporterpip install pil-supporterSupported APIsimport pil_supporter

pil_supporter.utils.draw_rect(image, point1, point2)
pil_supporter.utils.draw_label(image, text, point, font_color=(255, 255, 255), font_size=28)
pil_supporter.utils.draw_rect_with_label(image, point1, point2, text, font_color=(255, 255, 255), font_size=28)
pil_supporter.utils.draw_point(image, point)
pil_supporter.utils.draw_image(image, image_to_draw, point)

pil_supporter.utils.crop_center(image_file, left, top, right, bottom)
pil_supporter.utils.create_dummy_image(size, image_file, background_color=(255, 255, 255))
pil_supporter.utils.read_from_image_file(image_file)
Package: piltesseract
PILtesseract=======[![](https://img.shields.io/pypi/v/piltesseract.svg?branch=master)](https://pypi.python.org/pypi/piltesseract)Simple Tesseract wrapper for converting PIL Images to text.**Warning:** PILtesseract is intended to only work with tesseract 3.03+,one awesome feature added in 3.03 is the ability to pipe images via stdin,PILtesseract utilizes this feature.Features------------- Completely wraps [Tesseract-OCR](https://github.com/tesseract-ocr/tesseract) command line optional arguments.- Sends [PIL](https://pillow.readthedocs.org/en/latest/) images to tesseract through stdin (avoids creating a temp file).- Works for Python 2 and 3.- All working code in [one file](https://github.com/Digirolamo/PILtesseract/blob/master/piltesseract/tesseractwrapper.py).- [MIT License](https://github.com/Digirolamo/PILtesseract/blob/master/LICENSE)- [Documentation](http://piltesseract.readthedocs.org/en/latest/)Here is a simple example:>>> from PIL import Image>>> from piltesseract import get_text_from_image>>> image = Image.open('quickfox.png')>>> get_text_from_image(image)'The quick brown fox jumps over the lazy dog'See [Advanced Example](http://piltesseract.readthedocs.org/en/latest/example.html)See [Recipes](http://piltesseract.readthedocs.org/en/latest/recipes.html)Requirements------------More detailed installation instructions can be found [here](http://piltesseract.readthedocs.org/en/latest/install.html).- [Tesseract-OCR](https://github.com/tesseract-ocr/tesseract): 3.03 or higher- First install either from source or from [binaries](https://github.com/tesseract-ocr/tesseract/wiki).- Ensure that the tesseract binary folder is on your [PATH](https://en.wikipedia.org/wiki/PATH_(variable)).- [Pillow](https://pillow.readthedocs.org/en/latest/)- ```$ pip install Pillow```- [Six](https://pythonhosted.org/six/)- ```$ pip install six```Install------------$ pip install piltesseract
Package: piltools
PILToolsPython Imaging Library ToolsPillow is "the friendly PIL fork by Alex Clark and Contributors".This tool suite is meant to augment the existing Python Imaging Library with the following tools:Recrop: A dynamic image resizer. Given a target (width, height) dimension, resize the image, then crop with respect to a focus area.(More tools to come)InstallpipinstallpiltoolsExample A(spect) R(atio) Resizefrom PIL import Image
from piltools.transform import ar_resize

im = Image.open("./cosmos.jpg")

# Double image in size
ar_resize(im, 2).show()Example ReCropfrom PIL import Image
from piltools.transform import recrop

im = Image.open("./cosmos.jpg")

# Create an ad Banner using top center portion of image
recrop(im, (468, 60), v_align="top", h_align="center").show()
Package: pil-utils
pil-utils功能提供BuildImage类，方便图片尺寸修改、添加文字等操作提供Text2Image类，方便实现文字转图，支持少量BBCode标签文字支持多种字体切换，能够支持emoji添加文字自动调节字体大小配置字体字体文件需要安装到系统目录下Note安装新字体后若文字仍显示不正常，可删掉matplotlib字体缓存文件重新运行程序缓存文件位置：Windows:C:\Users\<username>\.matplotlib\fontlist-xxx.jsonLinux:~/.cache/matplotlib/fontlist-xxx.jsonMac:~/Library/Caches/matplotlib/fontlist-xxx.json默认从以下备选字体列表中查找能够显示的字体"Arial", "Tahoma", "Helvetica Neue", "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans SC", "Noto Sans CJK JP", "WenQuanYi Micro Hei", "Apple Color Emoji", "Noto Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"中文字体 和 emoji字体 安装根据系统的不同，推荐安装的字体如下：Windows:大部分 Windows 系统自带微软雅黑中文字体 和Segoe UI Emojiemoji 字体，一般情况下无需额外安装Linux:部分系统可能自带文泉驿微米黑中文字体；对于 Ubuntu 系统，推荐安装 Noto Sans CJK 和 Noto Color Emoji：sudoaptinstallfonts-noto-cjkfonts-noto-color-emoji为避免 Noto Sans CJK 中部分中文显示为异体（日文）字形，可以将简体中文设置为默认语言（详见ArchWiki）：sudolocale-genzh_CNzh_CN.UTF-8
sudoupdate-localeLC_ALL=zh_CN.UTF-8LANG=zh_CN.UTF-8
fc-cache-fv其他 Linux 系统可以自行下载字体文件安装：思源黑体：https://github.com/adobe-fonts/source-han-sansNotoSansSC：https://fonts.google.com/noto/specimen/Noto+Sans+SCNoto Color Emoji：https://github.com/googlefonts/noto-emojiMac:苹果系统一般自带 "PingFang SC" 中文字体 与 "Apple Color Emoji" emoji 字体字体安装方式不同系统的字体安装方式：Windows:双击通过字体查看器安装复制到字体文件夹：C:\Windows\FontsLinux:在/usr/share/fonts目录下新建文件夹，如myfonts，将字体文件复制到该路径下；运行如下命令建立字体缓存：fc-cache-fvMac:使用字体册打开字体文件安装使用示例BuildImagefrompil_utilsimportBuildImage# output: BytesIOoutput=BuildImage.new("RGBA",(200,200),"grey").circle().draw_text((0,0,200,200),"测试test😂").save_png()Text2Imagefrompil_utilsimportText2Image# img: PIL.Image.Imageimg=Text2Image.from_text("@mnixry 🤗",50).to_image(bg_color="white")使用BBCodefrompil_utilsimporttext2image# img: PIL.Image.Imageimg=text2image("N[size=40][color=red]O[/color][/size]neBo[size=40][color=blue]T[/color][/size]\n[align=center]太强啦[/align]")目前支持的BBCode标签：[align=left|right|center][/align]: 文字对齐方式[color=#66CCFF|red|black][/color]: 字体颜色[stroke=#66CCFF|red|black][/stroke]: 描边颜色[font=Microsoft YaHei][/font]: 文字字体[size=30][/size]: 文字大小[b][/b]: 文字加粗[i][/i]: 文字斜体[u][/u]: 文字下划线[del][/del]: 文字删除线特别感谢HibiKier/zhenxun_bot基于 Nonebot2 和 go-cqhttp 开发，以 postgresql 作为数据库，非常可爱的绪山真寻bot
Package: pilwio-api
Pilw.io API wrapperPython wrapper forPilw.io APIInstallationpip install pilwio-apiUsageimportpilwio""" Initialize version wrapper with apikey """api=pilwio.V1('apikey')""" Set new apikey if necessary """api.set_apikey('new_api_key')""" User info """api.whoami()Virtual machinesapi.vm.index()api.vm.show(uuid)api.vm.create(vm)api.vm.delete(uuid)api.vm.update(uuid,**kwargs)api.vm.start(uuid)api.vm.stop(uuid)api.vm.ips(uuid)api.vm.reserve_ip(uuid)api.vm.release_ip(uuid)api.vm.clone(uuid,name)api.vm.toggle_backup(uuid)api.vm.rebuild(uuid,replica_uuid)Floating IPapi.network.create(**kwargs)api.network.list()api.network.get(ipv4)api.network.update(ipv4,**kwargs)api.network.delete(ipv4)api.network.assign(ipv4,uuid)api.network.unassign(ipv4)Replicasapi.replica.index(uuid,*rtype)api.replica.create(uuid,*rtype)api.replica.delete(uuid)Tokensapi.token.index()api.token.delete(token_id)api.token.update(token_id,**kwargs)api.token.create(token)Resource Billingapi.billing.index(id)api.billing.info(uuid)api.billing.update(uuid,id)Credit cardsapi.card.index(account_id)api.card.delete(card_id)api.card.show(card_id)api.card.set_primary(card_id)Invoicesapi.invoice.index(id)api.invoice.show(invoice_id)api.invoice.pay_all(account_id)api.invoice.pay_amount(account_id,amount)api.invoice.pay_invoice(invoice_id)Billing Accountsapi.billing_account.index()api.billing_account.show(account_id)api.billing_account.update(account_id,account_data)api.billing_account.set_default(account_id)api.billing_account.get_unpaid(account_id)Storageapi.storage.url()api.storage.show(name)api.storage.index(billing_account_id)#param optionalapi.storage.user()api.storage.keys()api.storage.delete_key(key)api.storage.create_key()
Package: pimcp3008
# InstallingStable library from PyPi:Just runpip install pimcp3008# PiMcp3008’s Methods## Constructor(config={})‘config’ is dictionary type.### ‘channel’Configure SPI chip selects of Raspberry Pi.Channel.CE0.valueCE0 is used for MCP3008DefaultChannel.CE1.valueCE1 is used for MCP3008Channel.CE2.valueCE2 is used for MCP3008Only Auxiliary Mode### ‘clock’Configure SPI clock of Raspberry Pi.Integer valueDefault: 1000000### ‘device’Configure MCP3008 compatible devices.Device.MCP3008.valueUse MCP3008DefaultDevice.MCP3004.valueUse MCP3004## read(channels)Read A/D convert value.
Argument channels that enumerate integer value is valiable length.
Return value has include selected channel’s value.MCP3008: 0 to 7MCP3004: 0 to 3If argument channels is not exist, return value has include all channel’s value.Return value is dictionary type.
Key is channels value that type is int.
Value is integer value.# SampleRunsudo pigpiodbefore running the sample.## Simple# -*- coding: utf-8 -*-importpimpc3008asMPC3008importtimeobj=MPC3008.PiMpc3008()try:whileTrue:values=obj.read()print(values)time.sleep(10)exceptKeyboardInterrupt:pass## Modify config‘clock’ is 100kHz.# -*- coding: utf-8 -*-importpimpc3008asMPC3008importtimeconfig={'clock':100000}# pigpioを初期化するobj=MPC3008.PiMpc3008(config)try:whileTrue:values=obj.read()print(values)time.sleep(10)exceptKeyboardInterrupt:# Ctrl + C で終了するpass## Select ChannelGet 0ch, 2ch and 4ch values.# -*- coding: utf-8 -*-importpimpc3008asMPC3008importtimeobj=MPC3008.PiMpc3008()try:whileTrue:values=obj.read(0,2,4)print(values)time.sleep(10)exceptKeyboardInterrupt:pass
Package: pi-MCP4725
A Python module for the Raspberry Pi to interface with theMCP4725IÂ²C Digital-to-Analogue Converter.CompatibilityTested on Python 3.9 on a Raspberry Pi Zero W v1.1, but should be compatible with most Raspberry Pi models running the latest version of Python.Module works with Microchip's MCP4725 DAC.Pre-requisitessmbus2libraryThe MCP4725 module uses the Raspberry Pi's built-in IÂ²C driver to communicate with the chip. This is done on Python using the SMBus protocol. However, due to SMBus incorporating only a subset of IÂ²C features, it is not fully compatible with IÂ²C commands. This is fixed by usingsmbus2, a drop-in replacement of thesmbusmodule with extra functionality permitting the extra IÂ²C features. It can be imported assmbusto be backward compatible. See below for more details.The module must be imported within the main code (it is not imported within the module).
Package: pimg
pimgCLI (and library) for saving an image in clipboard to a local file with PyGObjectInspired byPasteImgrequires Python 2.x and PyGTK (Last-Modified: May 2011)InstallpipinstallpimgExampleFirst, crop or copy image on browsere,g) Cropping a screen:Ubuntu: Shift+PrtScnWindows: Win+Shift+SThen, to save the image in clipboard in local:$ pimg g sth.png
$ file sth.png
sth.png: PNG image data, ...Usage$ pimg -h
usage: pimg [-h] [-V] {get,g,copy,c} ...

Save an image in clipboard / Copy an image to clipboard

positional arguments:
  {get,g,copy,c}
    get (g)       get/save an image from clipboard
    copy (c)      copy a local image to clipboard

options:
  -h, --help      show this help message and exit
  -V, --version   show program's version number and exit$ pimg g -h
usage: pimg get [-h] PATH

positional arguments:
  PATH        path of save file

options:
  -h, --help  show this help message and exit$ pimg c -h
usage: pimg copy [-h] PATH

positional arguments:
  PATH        path of image to copy

options:
  -h, --help  show this help message and exitlicenseMITAuthorharuna(eggplants)
Package: pimglow
PiGlowLibrary for the Pimoroni Pibrella board, based on the sn3218 IChttps://github.com/Gadgetoid/python-sn3218I have attempted to make this library code compatible with Jason (@Boeeerb) Barnett’s PiGlow examples,
he maintains by far the most complete codebase and documentation for the PiGlow here:https://github.com/Boeeerb/PiGlowChange Log1.1devMade code-compatible with Jason Barnett’s PiGlow libraryrenamed my ‘led’ method to ‘single’wrapped inherited ‘set’ to automatically call ‘update’1.0devInitial experimental module
Package: pimht
pimhtPython mhtml parserInstallation$ pip install pimhtExampleimportpimhtmhtml=pimht.from_filename("test.mhtml")forpartinmhtml:print(part)PerformanceThechardetmodule, used by default, is slow. Performance can be improved by also installingcchardetwith:$ pip install pimht[speedups]This is aimed specifically at parsing Google Chrome generated snapshots as fast as possible, but feel free to report issues with MHTML files from other sources.
Package: pimkl
pimklpathway induced multiple kernel learning for computational biologyFree software: MIT licenseDocumentation:https://pimkl.readthedocs.io.FeaturesThe pimkl command:Usage: pimkl [OPTIONS] NETWORK_CSV_FILE NETWORK_NAME GENE_SETS_GMT_FILE
         GENE_SETS_NAME PREPROCESS_DIR OUTPUT_DIR CLASS_LABEL_FILE [LAM]
         [K] [NUMBER_OF_FOLDS] [MAX_PER_CLASS] [SEED] [MAX_PROCESSES]
         [FOLD]

Console script for a complete pimkl pipeline, including preprocessing and
analysis. For more details consult the following console scripts, which
are here executed in this order. `pimkl-preprocess --help` `pimkl-analyse
run-performance-analysis --help`

Options:
-fd, --data_csv_file PATH       [required]
-nd, --data_name TEXT           [required]
--model_name [EasyMKL|UMKLKNN|AverageMKL]
--help                          Show this message and exit.RequirementsC++14 capable C++ compilercmake (>3.0.2)PythonInstallationInstall the dependenciespipinstall-rrequirements.txtInstall the packagepipinstall.TutorialYou can find a brief tutorial in the dedicated folder.CreditsThis package was created withCookiecutterand theaudreyr/cookiecutter-pypackageproject template.History0.1.0 (2020-11-05)First release on PyPI.0.1.0 (2019-10-01)First release.
Package: pimm
pimmpip mirrors managerThis is a pip mirrors manager, just likenrmfor npm.support commandpmmls# list all serverpmmhelp# show helppmmtest# show response time of all serverspmmuse<name># use <server_name> serverpmm-V# show current versionpmmadd<name><url># Add a mirrorpmmrm<name>#Remove the mirrorpmmreset#Reset to the initial statemirrors includes{"aliyun":"https://mirrors.aliyun.com/pypi/simple","douban":"https://pypi.doubanio.com/simple","hit":"https://mirrors.hit.edu.cn/pypi/web/simple","huawei":"https://repo.huaweicloud.com/repository/pypi/simple","jlu":"https://mirrors.jlu.edu.cn/pypi/simple","pku":"https://mirrors.pku.edu.cn/pypi/web/simple","tencent":"https://mirrors.cloud.tencent.com/pypi/simple","thu":"https://pypi.tuna.tsinghua.edu.cn/simple","ustc":"https://pypi.mirrors.ustc.edu.cn/simple","default":"https://pypi.org/simple"}LICENSEMIT
Package: pimoroni-bme280
BME280 Temperature, Pressure, & Humidity SensorSuitable for measuring ambient temperature, barometric pressure, and humidity, the BME280 is a great indoor environmental sensor.Pre-requisitesYou must enable:i2c:sudo raspi-config nonint do_i2c 0You can optionally runsudo raspi-configor the graphical Raspberry Pi Configuration UI to enable interfaces.InstallingStable library from PyPi, the smbus library is also needed:Just runpython3 -m pip install pimoroni-bme280Latest/development library from GitHub:git clone https://github.com/pimoroni/bme280-pythoncd bme280-pythonsudo ./install.sh1.0.0Repackage to hatch/pyproject.tomlRequire i2cdevice>=1.0.0 (smbus2)0.1.1Fix so package is included in .whl releases0.1.0Switch to setup.cfgMatch humidity compensation to BOSCH formula0.0.2Update to i2cdevice>=0.0.6 set/get API0.0.1Initial Release
Package: pimoroni-mics6814
MICS6814 Breakout Garden BreakoutPre-requisitesYou must enable i2c:i2c:sudo raspi-config nonint do_i2c 0You can optionally runsudo raspi-configor the graphical Raspberry Pi Configuration UI to enable interfaces.InstallingStable library and dependencies from GitHub:git clone https://github.com/pimoroni/mics6814-pythoncd mics6814-pythonsudo ./install.shLatest/development library and dependencies from GitHub:git clone https://github.com/pimoroni/mics6814-pythoncd mics6814-pythonsudo ./install.sh --unstableStable (library only) from PyPi:Just runsudo pip3 install pimoroni-mics6814Changelog0.0.2Swap Oxidizing/Reducing pins so readings are correct0.0.1Initial Release
Package: pimoroni-sgp30
SGP30 Gas SensorInstallingStable library from PyPi:Just runsudo pip install pimoroni-sgp30Latest/development library from GitHub:git clone https://github.com/pimoroni/sgp30-pythoncd sgp30-pythonsudo ./install.shChangelog0.0.2BugFix: avoid infinite loop during start_measurement (thanks @millerdq2038)BugFix: corrected parameter order for set_baseline (thanks @phooey)Improvement: close i2c file handle to avoid leak (https://github.com/pimoroni/sgp30-python/issues/5)0.0.1Initial Release
Package: pimp
Python Install Magic Package============================Python packaging is complicated and often clashes with distro package managers.To make things worse, now there's ``pimp``. It uses `pip<https://pypi.python.org/pypi/pip>`_ and `distutilshttp://docs.python.org/2/library/distutils.html`_ to download packages fromPyPI and build RPMs out of them, which it installs using the system's packagemanagement.Requirements and Installation-----------------------------Every self-respecting ``pimp`` needs a `Fedora <http://fedoraproject.org/>`_(purple color recommended), no other distributions have even been tested. Toinstall ``pimp``, first install pip and virtualenv using yum::yum install python-pip virtualenvAfter that, we'll bootstrap pimp with itself::TMPDIR=`mktemp -d` && virtualenv --distribute $TMPDIR && \$TMPDIR/bin/pip install pimp -U &&\$TMPDIR/bin/pimp --python /usr/bin/python install pimp -U &&\rm -rf $TMPDIRThis will create temporary directory and a new virtual environment in it,install ``pimp`` from PyPI, use ``pimp`` to package itself, install thatpackage and remove the temporary directory.The good parts--------------``/usr/local`` aside, there shouldn't be any files in your ``/usr`` directorythat aren't managed by the package manager (and even then I'm not even fond ofinstalling stuff into ``/usr/local``). When you use ``pip`` to install packagessystem-wide, they end up ``/usr``, without the ``local``-part.``pimp`` tries to remedy this situation, by giving you a way to installpackages through auto-generated rpm-packages that can be uninstalled cleanly.The bad parts-------------As of spring 2013, Python packaging is a complete mess (just google distutils,distutils2, setuptools, distlib, packaging, pip, easy_install or any othercrazy piece of software messing with packages). Since ``pimp`` largely relieson some of these, there are a few issues described below. The general messagehere is though, only use ``pimp`` for the one thing it is intended: Installingthe occasional script system-wide. [1]_Only use PyPI-packages~~~~~~~~~~~~~~~~~~~~~~``pip`` does not support local filesystem packages or checkouts using``git+git://``-urls in the same way it does PyPI downloads. This makes it hardto support these, so for now[2]_, only PyPI packages aresupported.RPM-names~~~~~~~~~For reasons unknown, distutils' ``bdist_rpm`` command allows a lot ofcustomization - but not the RPM name. Your best is hoping that you do not runinto a naming conflict with another package. On the bright side, you'll bewarned by ``rpm`` beforehand and nothing should break.Useful things-------------------``pimp`` sets the release-version of every package it creates to ``pimp``. Thismeans that you can list all packages installed by it using::rpm -qa release="pimp"Uninstalling all these is just as simple::sudo rpm -ve `rpm -qa release="pimp"`.. [1]: A good use case is if you have command-line tools from PyPI (e.g.`hitnrun <https://pypi.python.org/pypi/hitnrun>`_) that you run in manyprojects, but don't want to reinstall for every virtualenv... [2]: And possibly a long, long time...