tree 641186a74b4f406526d7033f8cc123eeb385dbcd
parent 4f2dd2f049dcc3656b6bc6e0995fbe0c6bd6d61b
author Richard Levasseur <rlevasseur@google.com> 1725113987 -0700
committer GitHub <noreply@github.com> 1725113987 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJm0yaTCRC1aQ7uu5UhlAAAnSkQAK0W2TZoDkRpXyPb8nc7BpD0
 DUsfwX+fxhrJ0+rwZmWCO8XWpiUElykI9bNl/wtmXPvJQGKsFXyLCqrZoC4jT7wS
 r7vaXuF4wxoDlAW9ooRCi2B8mPeuYcL9ImjaGi1/NGiFHSDLkYnJ1VWAmh5VnE2n
 82+R+NTDrYCvs1QlXOm1lS3+Z1vQdO2Z03Js8mQLrZnZFHrGwvn1weRfZGoqFnBO
 u8zGE2DAv8JNWo4jJl2Oqxn1DXY07wqioK68YN8i6cy+ndturUQ+SJ4UEgiteyqF
 fzp0G9XBvLDNiNhQyqefUYcot0dWFfBLjjSCMrZoe1m40kv93UdsjOcgM6p+r7xF
 JQLkYcBw7XBbRr/PPLswLH7C1c4GUnR7ECehDfnsN/fVdLKTXJ/pKw8gnya1n0zp
 qgLCkao/VEvgNAVHMnaT3lt1CL3yk0zOOiziwhKyu5NQsJUipexRegrXjUSXqEmt
 ERJw7EeUJ6pfbNVg/2/UFf2Amu00a2qWwV9rKOc0YDCviraJ0oDjG6R6acxViQk7
 W14yIKbfjGDUkSxW+sHMvFEh/sO5cWNlS6FzWplHhtcbn/U7FcYEFIK+JkKoSwSa
 1aEgrIC+7YgJv35etWgJHxbjz6Y3HRI3/2UHgHZJgHbFV7v9WTHEMJ29gl1MEIgI
 sO6VpMiJ9xVE6LeM72fb
 =w1EI
 -----END PGP SIGNATURE-----
 

refactor(flags): return FeatureFlagInfo in --python_version flag (#2167)

Make the `--python_version` flag also return the `FeatureFlagInfo`
provider.

There are two reasons to also return the FeatureFlagInfo provider:

First, it allows the flag implementation to change the value and have
that value respected
by config_setting() later. This allows, for example, the rule to use
custom logic (and
information from things it depends on) to determine the effective flag
value.

Secondly, it makes the flag compatible with the Google fork of this
rule, which is
implemented using FeatureFlagInfo, to help eventually converge them.

Along the way, add config_common to the Sphinx Bazel inventory.