File tree 3 files changed +74
-0
lines changed
3 files changed +74
-0
lines changed Original file line number Diff line number Diff line change 59
59
/258-pandas /README.md
60
60
/132 /README.md
61
61
/257 /README.md
62
+ /163 /README.md
63
+ /Pipfile
64
+ /Pipfile.lock
Original file line number Diff line number Diff line change
1
+ from operator import methodcaller
2
+ from packaging import version
3
+
4
+ def changed_dependencies (old_reqs : str , new_reqs : str ) -> list :
5
+ """Compare old vs new requirement multiline strings
6
+ and return a list of dependencies that have been upgraded
7
+ (have a newer version)
8
+ """
9
+ oldreqslines = old_reqs .split ()
10
+ newreqslines = new_reqs .split ()
11
+ oldreqs = {entry [0 ]: entry [1 ] for entry in map (methodcaller ("split" , "==" ), oldreqslines )}
12
+ newreqs = {entry [0 ]: entry [1 ] for entry in map (methodcaller ("split" , "==" ), newreqslines )}
13
+ upgradereqs = [entry [0 ] for entry in newreqs .items ()
14
+ if version .parse (entry [1 ]) > version .parse (oldreqs [entry [0 ]])]
15
+ return upgradereqs
16
+
17
+
18
+ other_old_reqs = """
19
+ twilio==6.23.1
20
+ urllib3==1.21.1
21
+ Werkzeug==0.12.1
22
+ WTForms==1.19.0
23
+ """
24
+ other_new_reqs = """
25
+ twilio==6.3.0
26
+ urllib3==1.21.1
27
+ Werkzeug==0.14.1
28
+ WTForms==2.1
29
+ """
30
+ changed_dependencies (other_old_reqs , other_new_reqs )
Original file line number Diff line number Diff line change
1
+ from reqs import changed_dependencies
2
+
3
+ # version might be fictitious for testing purposes
4
+ old_reqs = """
5
+ certifi==2017.4.17
6
+ chardet==3.0.4
7
+ click==6.7
8
+ Faker==0.7.12
9
+ Flask==0.12.1
10
+ """
11
+ new_reqs = """
12
+ certifi==2016.11.29
13
+ chardet==2.0.4
14
+ click==5.0
15
+ Faker==1.0.2
16
+ Flask==1.0.2
17
+ """
18
+ other_old_reqs = """
19
+ twilio==6.23.1
20
+ urllib3==1.21.1
21
+ Werkzeug==0.12.1
22
+ WTForms==1.19.0
23
+ """
24
+ other_new_reqs = """
25
+ twilio==6.3.0
26
+ urllib3==1.21.1
27
+ Werkzeug==0.14.1
28
+ WTForms==2.1
29
+ """
30
+
31
+
32
+ def test_changed_dependencies_old_vs_new ():
33
+ actual = changed_dependencies (old_reqs , new_reqs )
34
+ expected = ['Faker' , 'Flask' ]
35
+ assert sorted (actual ) == expected
36
+
37
+
38
+ def test_changed_dependencies_other_data ():
39
+ actual = changed_dependencies (other_old_reqs , other_new_reqs )
40
+ expected = ['WTForms' , 'Werkzeug' ]
41
+ assert sorted (actual ) == expected
You can’t perform that action at this time.
0 commit comments