Test & Code

130: virtualenv activation prompt consistency across shells - an open source dev and test adventure - Brian Skinn


Listen Later

virtualenv supports six shells: bash, csh, fish, xonsh, cmd, posh. Each handles prompts slightly differently. Although the virtualenv custom prompt behavior should be the same across shells, Brian Skinn noticed inconsistencies. He set out to fix those inconsistencies. That was the start of an adventure in open source collaboration, shell prompt internals, difficult test problems, and continuous integration quirks. 

Brian Skinn initially noticed that on Windows cmd, a space was added between a prefix defined by --prompt and the rest of the prompt, whereas on bash no space was added.

For reference, there were/are three nominal virtualenv prompt modification behaviors, all of which apply to the prompt changes that are made at the time of virtualenv activation:

  1. If the environment variable VIRTUAL_ENV_DISABLE_PROMPT is defined and non-empty at activation time, do not modify the prompt at all. Otherwise:
  2.  If the --prompt argument was supplied at creation time, use that argument as the prefix to apply to the prompt; or,
  3. If the --prompt argument was not supplied at creation time, use the default prefix of "() " as the prefix (the environment folder name surrounded by parentheses, and with a trailing space after the last paren.

Special Guest: Brian Skinn.


Links:

  • virtualenv
  • Initial issue that started the adventure
  • final PR
  • pent: pent Extracts Numerical Text -- Mini-language driven parser for structured numerical data
  • Lightening talk on pent



...more
View all episodesView all episodes
Download on the App Store

Test & CodeBy Brian Okken

  • 4.7
  • 4.7
  • 4.7
  • 4.7
  • 4.7

4.7

70 ratings


More shows like Test & Code

View all
Radiolab by WNYC Studios

Radiolab

44,010 Listeners

Software Engineering Daily by Software Engineering Daily

Software Engineering Daily

623 Listeners

Heavy Networking by Packet Pushers

Heavy Networking

328 Listeners

Talk Python To Me by Michael Kennedy

Talk Python To Me

587 Listeners

Python Bytes by Michael Kennedy and Brian Okken

Python Bytes

214 Listeners

Darknet Diaries by Jack Rhysider

Darknet Diaries

8,001 Listeners

The Real Python Podcast by Real Python

The Real Python Podcast

141 Listeners

Unexplainable by Vox

Unexplainable

2,285 Listeners

Network Automation Nerds by Packet Pushers

Network Automation Nerds

3 Listeners