python / cpython

The Python programming language
https://www.python.org
Other
62.15k stars 29.86k forks source link

Implement packaging.database.*Distribution.__str__ #57375

Closed merwok closed 10 years ago

merwok commented 12 years ago
BPO 13166
Nosy @tarekziade, @merwok

Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

Show more details

GitHub fields: ```python assignee = 'https://github.com/merwok' closed_at = created_at = labels = [] title = 'Implement packaging.database.*Distribution.__str__' updated_at = user = 'https://github.com/merwok' ``` bugs.python.org fields: ```python activity = actor = 'eric.araujo' assignee = 'eric.araujo' closed = True closed_date = closer = 'eric.araujo' components = ['Distutils2'] creation = creator = 'eric.araujo' dependencies = [] files = [] hgrepos = [] issue_num = 13166 keywords = [] message_count = 3.0 messages = ['145463', '160800', '160896'] nosy_count = 4.0 nosy_names = ['tarek', 'eric.araujo', 'alexis', 'python-dev'] pr_nums = [] priority = 'normal' resolution = 'out of date' stage = 'resolved' status = 'closed' superseder = None type = None url = 'https://bugs.python.org/issue13166' versions = ['3rd party', 'Python 3.3'] ```

merwok commented 12 years ago

In code working with instances of packaging.database.Distribution, it’s bothersome to have to use '%r %s' % (dist.name, dist.version) all the time. It is also not good-looking in 2.x, where we get u'name'. I think it would be best to implement a __str__ method on the class and just use %s everywhere, for example in pysetup list and pysetup search. More sophisticated clients that want to display projects in a GUI can still access dist.name, dist.version and other attributes.

I’ve insisted on using %r for project names and paths to avoid ambiguities with trailing spaces and such hard-to-catch things. For logging output, we have to pass pure strings, but for direct console printing we could use ANSI escape sequences to display projects’ names in bold for example.

1762cc99-3127-4a62-9baf-30c3d0f51ef7 commented 12 years ago

New changeset ff44594dd3c0 by Guillaume Pratte in branch 'default': bpo-13166: Implement __str__ on Distribution and EggInfoDistribution, use for pysetup list, pysetup graph and installation log http://hg.python.org/distutils2/rev/ff44594dd3c0

merwok commented 12 years ago

64b0bf5e0596 reverted the changes to d2.depgraph; more tests need to be added first to make sure the new output is still valid DOT.