Skip to content

Commit 57bc1c5

Browse files
committed
fix #1060: dynamically generate MANIFEST.in
1 parent b258d82 commit 57bc1c5

File tree

4 files changed

+159
-18
lines changed

4 files changed

+159
-18
lines changed

HISTORY.rst

+2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
- 1040_: implemented full unicode support.
2121
- 1051_: disk_usage() on Python 3 is now able to accept bytes.
2222
- 1058_: test suite now enables all warnings by default.
23+
- 1060_: source distribution is dynamically generated so that it only includes
24+
relevant files.
2325

2426
**Bug fixes**
2527

MANIFEST.in

+116-14
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,120 @@
1-
include *.bat
2-
include *.rst
31
include .coveragerc
4-
include CREDITS*
2+
include .git-pre-commit
3+
include .gitignore
4+
include CREDITS
5+
include DEVGUIDE.rst
6+
include HISTORY.rst
57
include IDEAS
6-
include INSTALL*
7-
include LICENSE*
8-
include HISTORY*
8+
include INSTALL.rst
9+
include LICENSE
10+
include MANIFEST.in
911
include Makefile
12+
include README.rst
13+
include docs/Makefile
14+
include docs/README
15+
include docs/_static/copybutton.js
16+
include docs/_static/favicon.ico
17+
include docs/_static/sidebar.js
18+
include docs/_template/globaltoc.html
19+
include docs/_template/indexcontent.html
20+
include docs/_template/indexsidebar.html
21+
include docs/_template/page.html
22+
include docs/_themes/pydoctheme/static/pydoctheme.css
23+
include docs/_themes/pydoctheme/theme.conf
24+
include docs/conf.py
25+
include docs/index.rst
26+
include docs/make.bat
27+
include make.bat
28+
include psutil/__init__.py
29+
include psutil/_common.py
30+
include psutil/_compat.py
31+
include psutil/_psbsd.py
32+
include psutil/_pslinux.py
33+
include psutil/_psosx.py
34+
include psutil/_psposix.py
35+
include psutil/_pssunos.py
36+
include psutil/_psutil_bsd.c
37+
include psutil/_psutil_common.c
38+
include psutil/_psutil_common.h
39+
include psutil/_psutil_linux.c
40+
include psutil/_psutil_osx.c
41+
include psutil/_psutil_posix.c
42+
include psutil/_psutil_posix.h
43+
include psutil/_psutil_sunos.c
44+
include psutil/_psutil_windows.c
45+
include psutil/_pswindows.py
46+
include psutil/arch/bsd/freebsd.c
47+
include psutil/arch/bsd/freebsd.h
48+
include psutil/arch/bsd/freebsd_socks.c
49+
include psutil/arch/bsd/freebsd_socks.h
50+
include psutil/arch/bsd/netbsd.c
51+
include psutil/arch/bsd/netbsd.h
52+
include psutil/arch/bsd/netbsd_socks.c
53+
include psutil/arch/bsd/netbsd_socks.h
54+
include psutil/arch/bsd/openbsd.c
55+
include psutil/arch/bsd/openbsd.h
56+
include psutil/arch/osx/process_info.c
57+
include psutil/arch/osx/process_info.h
58+
include psutil/arch/solaris/v10/ifaddrs.c
59+
include psutil/arch/solaris/v10/ifaddrs.h
60+
include psutil/arch/windows/glpi.h
61+
include psutil/arch/windows/inet_ntop.c
62+
include psutil/arch/windows/inet_ntop.h
63+
include psutil/arch/windows/ntextapi.h
64+
include psutil/arch/windows/process_handles.c
65+
include psutil/arch/windows/process_handles.h
66+
include psutil/arch/windows/process_info.c
67+
include psutil/arch/windows/process_info.h
68+
include psutil/arch/windows/security.c
69+
include psutil/arch/windows/security.h
70+
include psutil/arch/windows/services.c
71+
include psutil/arch/windows/services.h
72+
include psutil/tests/README.rst
73+
include psutil/tests/__init__.py
74+
include psutil/tests/__main__.py
75+
include psutil/tests/test_bsd.py
76+
include psutil/tests/test_connections.py
77+
include psutil/tests/test_contracts.py
78+
include psutil/tests/test_linux.py
79+
include psutil/tests/test_memory_leaks.py
80+
include psutil/tests/test_misc.py
81+
include psutil/tests/test_osx.py
82+
include psutil/tests/test_posix.py
83+
include psutil/tests/test_process.py
84+
include psutil/tests/test_sunos.py
85+
include psutil/tests/test_system.py
86+
include psutil/tests/test_unicode.py
87+
include psutil/tests/test_windows.py
88+
include scripts/battery.py
89+
include scripts/cpu_distribution.py
90+
include scripts/disk_usage.py
91+
include scripts/fans.py
92+
include scripts/free.py
93+
include scripts/ifconfig.py
94+
include scripts/internal/README
95+
include scripts/internal/bench_oneshot.py
96+
include scripts/internal/bench_oneshot_2.py
97+
include scripts/internal/check_broken_links.py
98+
include scripts/internal/download_exes.py
99+
include scripts/internal/generate_manifest.py
100+
include scripts/internal/print_announce.py
101+
include scripts/internal/print_timeline.py
102+
include scripts/internal/winmake.py
103+
include scripts/iotop.py
104+
include scripts/killall.py
105+
include scripts/meminfo.py
106+
include scripts/netstat.py
107+
include scripts/nettop.py
108+
include scripts/pidof.py
109+
include scripts/pmap.py
110+
include scripts/procinfo.py
111+
include scripts/procsmem.py
112+
include scripts/ps.py
113+
include scripts/pstree.py
114+
include scripts/sensors.py
115+
include scripts/temperatures.py
116+
include scripts/top.py
117+
include scripts/who.py
118+
include scripts/winservices.py
119+
include setup.py
10120
include tox.ini
11-
12-
recursive-include psutil *.py *.c *.h *.rst
13-
recursive-include scripts *.py
14-
recursive-include README*
15-
16-
recursive-include docs *.conf *.rst *.js *.html *.css *.py *.bat *Makefile* README*
17-
recursive-exclude docs/_build *
18-
recursive-exclude .ci *

Makefile

+10-4
Original file line numberDiff line numberDiff line change
@@ -196,9 +196,6 @@ pyflakes:
196196
flake8:
197197
@git ls-files | grep \\.py$ | xargs $(PYTHON) -m flake8
198198

199-
check-manifest:
200-
PYTHONWARNINGS=all $(PYTHON) -m check_manifest -v $(ARGS)
201-
202199
# ===================================================================
203200
# GIT
204201
# ===================================================================
@@ -243,8 +240,9 @@ pre-release:
243240
assert ver in history, '%r not in HISTORY.rst' % ver; \
244241
assert 'XXXX' not in history; \
245242
"
246-
${MAKE} win-download-exes
243+
${MAKE} generate-manifest
247244
PYTHONWARNINGS=all $(PYTHON) setup.py sdist
245+
${MAKE} win-download-exes
248246

249247
# Create a release: creates tar.gz and exes/wheels, uploads them,
250248
# upload doc, git tag release.
@@ -261,6 +259,14 @@ print-announce:
261259
print-timeline:
262260
@PYTHONWARNINGS=all $(PYTHON) scripts/internal/print_timeline.py
263261

262+
# Inspect MANIFEST.in file.
263+
check-manifest:
264+
PYTHONWARNINGS=all $(PYTHON) -m check_manifest -v $(ARGS)
265+
266+
# Generates MANIFEST.in file.
267+
generate-manifest:
268+
@PYTHONWARNINGS=all $(PYTHON) scripts/internal/generate_manifest.py > MANIFEST.in
269+
264270
# ===================================================================
265271
# Misc
266272
# ===================================================================

scripts/internal/generate_manifest.py

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#!/usr/bin/env python
2+
3+
# Copyright (c) 2009 Giampaolo Rodola'. All rights reserved.
4+
# Use of this source code is governed by a BSD-style license that can be
5+
# found in the LICENSE file.
6+
7+
"""
8+
Generate MANIFEST.in file.
9+
"""
10+
11+
import os
12+
import subprocess
13+
14+
15+
def sh(cmd):
16+
return subprocess.check_output(
17+
cmd, shell=True, universal_newlines=True).strip()
18+
19+
20+
def main():
21+
files = sh("git ls-files").split('\n')
22+
for file in files:
23+
if file.startswith('.ci/') or \
24+
os.path.splitext(file)[1] in ('.png', '.jpg') or \
25+
file in ('.travis.yml', 'appveyor.yml'):
26+
continue
27+
print("include " + file)
28+
29+
30+
if __name__ == '__main__':
31+
main()

0 commit comments

Comments
 (0)