| # Copyright 2022 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| """A collection of functions used by other python files |
| """ |
| |
| import os |
| import sys |
| |
| ROOT_PATH = os.path.join(os.path.dirname(__file__), '..', '..') |
| PYJSON5_PATH = os.path.join(ROOT_PATH, 'third_party', 'pyjson5', 'src') |
| |
| sys.path.append(PYJSON5_PATH) |
| |
| import json5 |
| |
| |
| def load_metadata(): |
| flags_path = os.path.join(ROOT_PATH, 'chrome', 'browser', |
| 'flag-metadata.json') |
| return json5.load(open(flags_path)) |
| |
| |
| def keep_expired_by(flags, mstone): |
| """Filter flags to contain only flags that expire by mstone. |
| |
| Only flags that either never expire or have an expiration milestone <= mstone |
| are in the returned list. |
| |
| >>> keep_expired_by([{'expiry_milestone': 3}], 2) |
| [] |
| >>> keep_expired_by([{'expiry_milestone': 3}], 3) |
| [{'expiry_milestone': 3}] |
| >>> keep_expired_by([{'expiry_milestone': -1}], 3) |
| [] |
| """ |
| return [f for f in flags if -1 != f['expiry_milestone'] <= mstone] |