diff --git a/MANIFEST.in b/MANIFEST.in index 185e57646a4..fbda541d22c 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -32,3 +32,5 @@ recursive-include django/contrib/gis/tests/geogapp/fixtures * recursive-include django/contrib/gis/tests/relatedapp/fixtures * recursive-include django/contrib/sitemaps/templates * recursive-include django/contrib/sitemaps/tests/templates * +recursive-exclude * __pycache__ +recursive-exclude * *.py[co] diff --git a/django/core/management/templates.py b/django/core/management/templates.py index aa65593e9cf..d34a0deb7ec 100644 --- a/django/core/management/templates.py +++ b/django/core/management/templates.py @@ -138,7 +138,7 @@ class TemplateCommand(BaseCommand): os.mkdir(target_dir) for dirname in dirs[:]: - if dirname.startswith('.'): + if dirname.startswith('.') or dirname == '__pycache__': dirs.remove(dirname) for filename in files: diff --git a/django/db/utils.py b/django/db/utils.py index 0ce09bab70e..b889cdf9ade 100644 --- a/django/db/utils.py +++ b/django/db/utils.py @@ -30,7 +30,7 @@ def load_backend(backend_name): try: available_backends = [f for f in os.listdir(backend_dir) if os.path.isdir(os.path.join(backend_dir, f)) - and not f.startswith('.')] + and not (f.startswith('.') or f == '__pycache__')] except EnvironmentError: available_backends = [] full_notation = backend_name.startswith('django.db.backends.') diff --git a/django/template/defaultfilters.py b/django/template/defaultfilters.py index 1bfb6270239..e15440f90ee 100644 --- a/django/template/defaultfilters.py +++ b/django/template/defaultfilters.py @@ -96,7 +96,7 @@ def fix_ampersands_filter(value): # Values for testing floatformat input against infinity and NaN representations, # which differ across platforms and Python versions. Some (i.e. old Windows # ones) are not recognized by Decimal but we want to return them unchanged vs. -# returning an empty string as we do for completley invalid input. Note these +# returning an empty string as we do for completely invalid input. Note these # need to be built up from values that are not inf/nan, since inf/nan values do # not reload properly from .pyc files on Windows prior to some level of Python 2.5 # (see Python Issue757815 and Issue1080440). diff --git a/setup.py b/setup.py index 165c5e9f735..333d57ac70f 100644 --- a/setup.py +++ b/setup.py @@ -67,9 +67,10 @@ if root_dir != '': django_dir = 'django' for dirpath, dirnames, filenames in os.walk(django_dir): - # Ignore dirnames that start with '.' + # Ignore PEP 3147 cache dirs and those whose names start with '.' for i, dirname in enumerate(dirnames): - if dirname.startswith('.'): del dirnames[i] + if dirname.startswith('.') or dirname == '__pycache__': + del dirnames[i] if '__init__.py' in filenames: packages.append('.'.join(fullsplit(dirpath))) elif filenames: