Control: tags -1 +patch The attached patch adds a special case for files in */python3/dist-packages directories to py3clean.
-- Dmitry Shachnev
Author: Dmitry Shachnev <[email protected]> Description: Don't remove *.py[co] files of foreign packages Bug: http://bugs.debian.org/685167 === modified file 'py3clean' --- py3clean 2012-07-13 04:52:23 +0000 +++ py3clean 2012-09-13 09:51:28 +0000 @@ -26,7 +26,7 @@ import sys from glob import glob1 from os import environ, remove, rmdir -from os.path import dirname, exists, join +from os.path import dirname, basename, exists, join sys.path.insert(1, '/usr/share/python3/') from debpython import files as dpf from debpython.version import SUPPORTED, getver, vrepr @@ -78,10 +78,14 @@ :type magic_tag: None or False or str""" if magic_tag is None: - # remove all files in __pycache__ directory + # remove compiled files in __pycache__ directory def find_files_to_remove(pyfile): - directory = "%s/__pycache__/" % dirname(pyfile) - for fn in glob1(directory, '*'): + directory = dirname(pyfile) + fnames = "*" + if directory.endswith("python3/dist-packages"): + fnames = basename(pyfile)[:-3] + ".*" + directory += "/__pycache__/" + for fn in glob1(directory, fnames): yield join(directory, fn) # remove "classic" .pyc files as well for filename in ("%sc" % pyfile, "%so" % pyfile): @@ -98,8 +102,12 @@ # remove .pyc files for no longer needed magic tags def find_files_to_remove(pyfile): - directory = "%s/__pycache__/" % dirname(pyfile) - for fn in glob1(directory, "*.%s.py[co]" % magic_tag): + directory = dirname(pyfile) + fnames = "*" + if directory.endswith("python3/dist-packages"): + fnames = basename(pyfile)[:-3] + directory += "/__pycache__/" + for fn in glob1(directory, "%s.%s.py[co]" % (fnames, magic_tag)): yield join(directory, fn) def myremove(fname):

