Skip to content

Instantly share code, notes, and snippets.

@ychevarrias
Last active March 13, 2022 08:44
Show Gist options
  • Save ychevarrias/fe384900b61a30a06e50ed2c70f665f2 to your computer and use it in GitHub Desktop.
Save ychevarrias/fe384900b61a30a06e50ed2c70f665f2 to your computer and use it in GitHub Desktop.
Match requirement.txt with pip freeze stdout
import subprocess
result = subprocess.run(['pip', 'freeze'], stdout=subprocess.PIPE)
rq_file = open("requirements.txt", "r")
rq_file_versioned = open("requirements_versioned.txt", "w")
rq_versioned = list()
versioned_lines = result.stdout.decode("utf-8").split("\n")[:-1]
rq_lines = rq_file.readlines()
rq_file.close()
def match(dependency):
global versioned_lines
for versioned_line in versioned_lines:
versioned_line = versioned_line.strip()
dependency_bulk = versioned_line.split("==")[0]
if dependency == dependency_bulk:
print(f"FOUND : {dependency} => {versioned_line}")
return versioned_line
print(f"SKIP : {dependency}")
return dependency
for rq_line in rq_lines:
rq_line = rq_line.strip()
dependency = rq_line.split("==")[0]
rq_versioned.append(match(dependency))
rq_file_versioned.write("\n".join(rq_versioned))
rq_file_versioned.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment