2
2
# -*- coding: utf-8 -*-
3
3
4
4
"""Usage:
5
- pip-diff (--fresh | --stale) <reqfile1> <reqfile2>
5
+ pip-diff (--fresh | --stale) <reqfile1> <reqfile2> [--exclude <package>...]
6
6
pip-diff (-h | --help)
7
7
8
8
Options:
@@ -41,7 +41,7 @@ class Requirements(object):
41
41
self .requirements .append (requirement .req )
42
42
43
43
44
- def diff (self , requirements , ignore_versions = False ):
44
+ def diff (self , requirements , ignore_versions = False , excludes = None ):
45
45
r1 = self
46
46
r2 = requirements
47
47
results = {'fresh' : [], 'stale' : []}
@@ -55,7 +55,7 @@ class Requirements(object):
55
55
for req in r2 .requirements :
56
56
r = req .project_name if ignore_versions else req
57
57
58
- if r not in other_reqs :
58
+ if r not in other_reqs and r not in excludes :
59
59
results ['fresh' ].append (req )
60
60
61
61
# Generate stale packages.
@@ -67,7 +67,7 @@ class Requirements(object):
67
67
for req in r1 .requirements :
68
68
r = req .project_name if ignore_versions else req
69
69
70
- if r not in other_reqs :
70
+ if r not in other_reqs and r not in excludes :
71
71
results ['stale' ].append (req )
72
72
73
73
return results
@@ -76,9 +76,10 @@ class Requirements(object):
76
76
77
77
78
78
79
- def diff (r1 , r2 , include_fresh = False , include_stale = False ):
79
+ def diff (r1 , r2 , include_fresh = False , include_stale = False , excludes = None ):
80
80
81
81
include_versions = True if include_stale else False
82
+ excludes = excludes if len (excludes ) else []
82
83
83
84
try :
84
85
r1 = Requirements (r1 )
@@ -87,7 +88,7 @@ def diff(r1, r2, include_fresh=False, include_stale=False):
87
88
print ('There was a problem loading the given requirements files.' )
88
89
exit (os .EX_NOINPUT )
89
90
90
- results = r1 .diff (r2 , ignore_versions = True )
91
+ results = r1 .diff (r2 , ignore_versions = True , excludes = excludes )
91
92
92
93
if include_fresh :
93
94
for line in results ['fresh' ]:
@@ -106,7 +107,8 @@ def main():
106
107
'r1' : args ['<reqfile1>' ],
107
108
'r2' : args ['<reqfile2>' ],
108
109
'include_fresh' : args ['--fresh' ],
109
- 'include_stale' : args ['--stale' ]
110
+ 'include_stale' : args ['--stale' ],
111
+ 'excludes' : args ['<package>' ]
110
112
}
111
113
112
114
diff (** kwargs )
0 commit comments