-
-
Notifications
You must be signed in to change notification settings - Fork 88
Closed
Labels
Description
Hi all,
I have multiple requirement files in a folder. This is done because of different environments, e.g.:
/requirements/base.txt
/requirements/development.txt
/requirements/production.txt
The base.txt has all dependencies which are needed in all environments. The other files (e.g. development.txt or production.txt) refer to the base.txt and add additional dependencies, e.g.
# base requirements
-r base.txt
#additional requirements
pylint==2.2.0
Could you advance cyclonedx-python to scan multiple requirement files at once?
Furthermore, cyclonedx-python fails if there is "-r base.txt" in a requirements file?
Traceback (most recent call last):
File "/home/test/.local/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/requirements.py", line 98, in __init__
req = REQUIREMENT.parseString(requirement_string)
File "/home/test/.local/lib/python3.8/site-packages/pkg_resources/_vendor/pyparsing.py", line 1654, in parseString
raise exc
File "/home/test/.local/lib/python3.8/site-packages/pkg_resources/_vendor/pyparsing.py", line 1644, in parseString
loc, tokens = self._parse( instring, 0 )
File "/home/test/.local/lib/python3.8/site-packages/pkg_resources/_vendor/pyparsing.py", line 1402, in _parseNoCache
loc,tokens = self.parseImpl( instring, preloc, doActions )
File "/home/test/.local/lib/python3.8/site-packages/pkg_resources/_vendor/pyparsing.py", line 3417, in parseImpl
loc, exprtokens = e._parse( instring, loc, doActions )
File "/home/test/.local/lib/python3.8/site-packages/pkg_resources/_vendor/pyparsing.py", line 1402, in _parseNoCache
loc,tokens = self.parseImpl( instring, preloc, doActions )
File "/home/test/.local/lib/python3.8/site-packages/pkg_resources/_vendor/pyparsing.py", line 3739, in parseImpl
return self.expr._parse( instring, loc, doActions, callPreParse=False )
File "/home/test/.local/lib/python3.8/site-packages/pkg_resources/_vendor/pyparsing.py", line 1402, in _parseNoCache
loc,tokens = self.parseImpl( instring, preloc, doActions )
File "/home/test/.local/lib/python3.8/site-packages/pkg_resources/_vendor/pyparsing.py", line 3400, in parseImpl
loc, resultlist = self.exprs[0]._parse( instring, loc, doActions, callPreParse=False )
File "/home/test/.local/lib/python3.8/site-packages/pkg_resources/_vendor/pyparsing.py", line 1406, in _parseNoCache
loc,tokens = self.parseImpl( instring, preloc, doActions )
File "/home/test/.local/lib/python3.8/site-packages/pkg_resources/_vendor/pyparsing.py", line 2711, in parseImpl
raise ParseException(instring, loc, self.errmsg, self)
pkg_resources._vendor.pyparsing.ParseException: Expected W:(abcd...) (at char 0), (line:1, col:1)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/test/.local/bin/cyclonedx-bom", line 8, in <module>
sys.exit(main())
File "/home/test/.local/lib/python3.8/site-packages/cyclonedx_py/client.py", line 211, in main
CycloneDxCmd(args).execute()
File "/home/test/.local/lib/python3.8/site-packages/cyclonedx_py/client.py", line 88, in execute
output = self.get_output()
File "/home/test/.local/lib/python3.8/site-packages/cyclonedx_py/client.py", line 52, in get_output
parser = self._get_input_parser()
File "/home/test/.local/lib/python3.8/site-packages/cyclonedx_py/client.py", line 203, in _get_input_parser
return RequirementsParser(requirements_content=input_data)
File "/home/test/.local/lib/python3.8/site-packages/cyclonedx/parser/requirements.py", line 32, in __init__
for requirement in requirements:
File "/home/test/.local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3080, in parse_requirements
yield Requirement(line)
File "/home/test/.local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3090, in __init__
super(Requirement, self).__init__(requirement_string)
File "/home/test/.local/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/requirements.py", line 100, in __init__
raise InvalidRequirement(
pkg_resources.extern.packaging.requirements.InvalidRequirement: Parse error at "'-r base.'": Expected W:(abcd...)
The following command is an example to this issue:
cyclonedx-bom -r -i base.txt -r -i development.txt --format json -o test.json
Thank you