Add generatedependency command

This comment generated pip install requirement files.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2019-05-15 15:58:54 -04:00
parent 7339eb2a09
commit 8e32c5adae

View File

@@ -0,0 +1,47 @@
from __future__ import unicode_literals
from django.core import management
from django.utils.translation import ugettext_lazy as _
from ...classes import PythonDependency, DependencyGroup
class Command(management.BaseCommand):
help = 'Generate Python requirement files.'
def add_arguments(self, parser):
parser.add_argument('environment', nargs='?', help='Environment name')
parser.add_argument(
'--exclude', action='store', dest='exclude', help=_(
'Comma separated names of dependencies to exclude from the '
'list generated.'
),
)
parser.add_argument(
'--only', action='store', dest='only', help=_(
'Comma separated names of dependencies to show in the list '
'while excluding every other one.'
),
)
def handle(self, *args, **options):
dependency_list = PythonDependency.get_for_attribute(
attribute_name='environment__name',
attribute_value=options['environment'], subclass_only=True
)
exclude_list = (options['exclude'] or '').split(',')
only_list = (options['only'] or '').split(',')
result = []
for dependency in dependency_list:
if only_list != ['']:
if dependency.name in only_list:
result.append(dependency)
else:
result.append(dependency)
for dependency in result:
if dependency.name not in exclude_list:
print(
'{}{}'.format(dependency.name, dependency.version_string)
)