Skip to content

Commit

Permalink
Don't include virtualenv in final generated top level requirements.txt
Browse files Browse the repository at this point in the history
  • Loading branch information
Kami committed Dec 24, 2015
1 parent f32c711 commit d9004b1
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 3 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ requirements: virtualenv .sdist-requirements
$(VIRTUALENV_DIR)/bin/pip install --upgrade pip

# Generate all requirements to support current CI pipeline.
$(VIRTUALENV_DIR)/bin/python scripts/fixate-requirements.py -s st2*/in-requirements.txt -f fixed-requirements.txt -o requirements.txt
$(VIRTUALENV_DIR)/bin/python scripts/fixate-requirements.py --skip=virtualenv -s st2*/in-requirements.txt -f fixed-requirements.txt -o requirements.txt

# Install requirements
#
Expand Down
20 changes: 18 additions & 2 deletions scripts/fixate-requirements.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,9 @@ def parse_args():
help='Specify path to fixed-requirements.txt file.')
parser.add_argument('-o', '--output-file', default='requirements.txt',
help='Specify path to the resulting requirements file.')
parser.add_argument('--skip', default=None,
help=('Comma delimited list of requirements to not '
'include in the generated file.'))
if len(sys.argv) < 2:
parser.print_help()
sys.exit(1)
Expand Down Expand Up @@ -104,10 +107,13 @@ def merge_source_requirements(sources):
return merged_requirements


def write_requirements(sources=None, fixed_requirements=None, output_file=None):
def write_requirements(sources=None, fixed_requirements=None, output_file=None,
skip=None):
"""
Write resulting requirements taking versions from the fixed_requirements.
"""
skip = skip or []

requirements = merge_source_requirements(sources)
fixed = load_requirements(locate_file(fixed_requirements, must_exist=True))

Expand All @@ -127,6 +133,9 @@ def write_requirements(sources=None, fixed_requirements=None, output_file=None):
lines_to_write = []
links = set()
for req in requirements:
if req.req.project_name in skip:
continue

# we don't have any idea how to process links, so just add them
if req.link and req.link not in links:
links.add(req.link)
Expand All @@ -153,6 +162,13 @@ def write_requirements(sources=None, fixed_requirements=None, output_file=None):
if __name__ == '__main__':
check_pip_version()
args = parse_args()

if args['skip']:
skip = args['skip'].split(',')
else:
skip = None

write_requirements(sources=args['source_requirements'],
fixed_requirements=args['fixed_requirements'],
output_file=args['output_file'])
output_file=args['output_file'],
skip=skip)

0 comments on commit d9004b1

Please sign in to comment.