You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
depot_tools/metadata/tests/data
Jiewei Qian 79cfa048c0 metadata: early terminate certain fields to avoid over extraction
This CL adds a "early terminate the field based on field value" parser
mechanism to end the field as soon as the field value provides an
unambiguous answer to the question we care about.

This is to prevent over-extraction over certain fields (specifically,
local modifications) which can either be a definitive answer (e.g. No
modification) or multi-line free-form texts (which may contain unknown
fields that we don't care about at this stage).

This mitigates over extraction of README.chromium files like:

```
Local Modifications:
None

How to Uprev:
Steps...
```

Where the old parser would extract "None\n\nHow to Uprev:\nSteps..."

This CL also refactors single line fields to use the same early
termination mechanism since single line field simply ends as soon as
the line is parsed.

Union[Something, None] is changed to Optional[Something] based on
styleguide.

Bug: b/324149233
Change-Id: I3fca80eaceb071263f8ae8730afda230fff0bbb0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5394917
Reviewed-by: Anne Redulla <aredulla@google.com>
Commit-Queue: Jiewei Qian <qjw@chromium.org>
11 months ago
..
src
LICENSE
README.chromium.test.multi-invalid
README.chromium.test.multi-local-modifications metadata: early terminate certain fields to avoid over extraction 11 months ago
README.chromium.test.multi-valid
README.chromium.test.single-valid metadata: early terminate certain fields to avoid over extraction 11 months ago

README.chromium.test.single-valid

Name: Test-A README for Chromium metadata
Short Name: metadata-test-valid
URL: https://www.example.com/metadata,
     https://www.example.com/parser
Unknown Field: Should be extracted into a field, because the preceding URL
               field is structured, thus terminated by another field-like
               line, even if the field name isn't well known to us.
Version: 1.0.12
Date: 2020-12-03
License: Apache, 2.0 and MIT
License File: LICENSE
Security Critical: yes
Shipped: yes
CPEPrefix: unknown
This line should be ignored because CPEPrefix is a one-liner field.
Description:
A test metadata file, with a
 multi-line description.

Local Modifications:
None.

Additional paragraphs describing the package.