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
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...)
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.
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?
The following command is an example to this issue:
cyclonedx-bom -r -i base.txt -r -i development.txt --format json -o test.jsonThank you