New submission from Aaron Meurer <[email protected]>:
Take the following scenario which happened to me recently. I am trying to debug
an issue on Travis CI involving environment variables. Basically, I am not sure
if an environment variable is being set correctly. So in my code, I put
print(os.environ.keys())
The reason I put keys() was 1, I didn't care about the values, and 2, I have
secure environment variables set on Travis.
To my surprise, in the Travis logs, I found something like this
KeysView(environ({'TRAVIS_STACK_FEATURES': 'basic cassandra chromium couchdb
disabled-ipv6 docker docker-compose elasticsearch firefox go-toolchain
google-chrome jdk memcached mongodb mysql neo4j nodejs_interpreter
perl_interpreter perlbrew phantomjs postgresql python_interpreter rabbitmq
redis riak ruby_interpreter sqlite xserver', 'CI': 'true', ..., 'MANPATH':
'/home/travis/.nvm/versions/node/v7.4.0/share/man:/home/travis/.kiex/elixirs/elixir-1.4.5/man:/home/travis/.rvm/rubies/ruby-2.4.1/share/man:/usr/local/man:/usr/local/clang-3.9.0/share/man:/usr/local/share/man:/usr/share/man:/home/travis/.rvm/man'}))
So instead of just printing the keys like I asked for, it printed the whole
environment, plus "KeysView(environ(". Included here was my secure environment
variable.
Now, fortunately, Travis hides the contents of secure environment variables in
the logs, but it didn't used to
(https://blog.travis-ci.com/2017-05-08-security-advisory).
Aside from being a potential security issue, it's just annoying that it prints
the whole environment. The values are much larger than the keys. With a normal
dictionary, print(d.keys()) just prints the keys:
>>> print(dict(a=1, b=2).keys())
dict_keys(['a', 'b'])
----------
messages: 308190
nosy: Aaron.Meurer
priority: normal
severity: normal
status: open
title: print(os.environ.keys()) should only print the keys
versions: Python 3.7
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue32300>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com