Skip to content
Snippets Groups Projects
Commit 623e9356 authored by Marek Chrastina's avatar Marek Chrastina
Browse files

Make pylint happy

parent d93556e8
Branches
Tags
1 merge request!1Add py script
Pipeline #7913 passed
...@@ -9,7 +9,7 @@ mdcheck: ...@@ -9,7 +9,7 @@ mdcheck:
- mdl *.md - mdl *.md
pylint: pylint:
allow_failure: true #allow_failure: true
stage: test stage: test
image: it4innovations/docker-pycheck:latest image: it4innovations/docker-pycheck:latest
script: script:
......
"""
pipupgradedependencies init
"""
__import__('pkg_resources').declare_namespace(__name__) __import__('pkg_resources').declare_namespace(__name__)
"""
pipupgradedependencies
"""
import argparse import argparse
import json import json
import os import os
...@@ -6,6 +9,9 @@ import subprocess ...@@ -6,6 +9,9 @@ import subprocess
import sys import sys
def find_dependencies(json_input, package): def find_dependencies(json_input, package):
"""
find package dependencies in json tree
"""
if isinstance(json_input, dict): if isinstance(json_input, dict):
keys = json_input.keys() keys = json_input.keys()
if 'package_name' in keys and 'required_version' in keys: if 'package_name' in keys and 'required_version' in keys:
...@@ -17,11 +23,21 @@ def find_dependencies(json_input, package): ...@@ -17,11 +23,21 @@ def find_dependencies(json_input, package):
for item in json_input: for item in json_input:
for item_val in find_dependencies(item, package): for item_val in find_dependencies(item, package):
yield item_val yield item_val
def arg_parse(): def arg_parse():
parser = argparse.ArgumentParser(description="Pipupgradedependencies upgrades all outdated packages with respect to existing dependencies.") """
parser_args = parser.parse_args() argument parser
"""
parser = argparse.ArgumentParser(
description="Pipupgradedependencies upgrades all outdated packages with respect to \
existing dependencies."
)
parser.parse_args()
def main(): def main():
"""
main function
"""
arg_parse() arg_parse()
os.environ["PYTHONWARNINGS"] = "ignore:DEPRECATION" os.environ["PYTHONWARNINGS"] = "ignore:DEPRECATION"
...@@ -33,13 +49,19 @@ def main(): ...@@ -33,13 +49,19 @@ def main():
finished_upgrades = [] finished_upgrades = []
while True: while True:
try: try:
outdated_packages = subprocess.check_output(["pip", "list", "--outdated"], stderr=subprocess.STDOUT) outdated_packages = subprocess.check_output(
["pip", "list", "--outdated"],
stderr=subprocess.STDOUT
)
except subprocess.CalledProcessError: except subprocess.CalledProcessError:
sys.exit(1) sys.exit(1)
outdated_packages = [line.split()[0] for line in outdated_packages.strip().split("\n")[2:]] outdated_packages = [line.split()[0] for line in outdated_packages.strip().split("\n")[2:]]
try: try:
pipdeptree = subprocess.check_output(["pipdeptree", "--json-tree"], stderr=subprocess.STDOUT) pipdeptree = subprocess.check_output(
["pipdeptree", "--json-tree"],
stderr=subprocess.STDOUT
)
except subprocess.CalledProcessError: except subprocess.CalledProcessError:
sys.exit(1) sys.exit(1)
pipdeptree = pipdeptree.strip() pipdeptree = pipdeptree.strip()
...@@ -49,10 +71,13 @@ def main(): ...@@ -49,10 +71,13 @@ def main():
for package in outdated_packages: for package in outdated_packages:
if package in finished_upgrades: if package in finished_upgrades:
continue continue
package_dependencies = [ _ for _ in find_dependencies(jsonpipdeptree, package)] dependencies = [_ for _ in find_dependencies(jsonpipdeptree, package)]
package_dependencies = list(set(package_dependencies)) dependencies = list(set(dependencies))
if len(filter(lambda dependency: re.search(r'(^==.*|^\d.*)', dependency), package_dependencies)) == 0: if not [dep for dep in dependencies if re.search(r'(^==.*|^\d.*)', dep) is not None]:
possible_upgrades.append({'package': package, 'dependencies': [ dependency for dependency in package_dependencies if 'Any' not in dependency]}) possible_upgrades.append(
{'package': package,
'dependencies': [dep for dep in dependencies if 'Any' not in dep]}
)
try: try:
package = possible_upgrades[-1] package = possible_upgrades[-1]
...@@ -61,7 +86,11 @@ def main(): ...@@ -61,7 +86,11 @@ def main():
finished_upgrades.append(package['package']) finished_upgrades.append(package['package'])
try: try:
subprocess.check_call(["pip", "install", "--upgrade", "%s%s" % (package['package'], "".join(package['dependencies']))], stderr=subprocess.STDOUT) subprocess.check_call(
["pip", "install", "--upgrade",
"%s%s" % (package['package'], "".join(package['dependencies']))],
stderr=subprocess.STDOUT
)
except subprocess.CalledProcessError: except subprocess.CalledProcessError:
sys.exit(1) sys.exit(1)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment