Releases: abseil/abseil-py
Releases · abseil/abseil-py
v2.1.0
Added
- (flags) Added
absl.flags.override_value
function to provideFlagHolder
with a construct to modify values. The new interface parallelsabsl.flags.FlagValues.__setattr__
but checks that the provided value conforms to the flag's expected type. - (testing) Added a new method
absltest.TestCase.assertDataclassEqual
that tests equality ofdataclass.dataclass
objects with better error messages when the assert fails.
Changed
- (flags)
absl.flags.argparse_flags.ArgumentParser
now correctly inherits an empty instance ofFlagValues
to ensure that absl flags, such as--flagfile
,--undefok
are supported. - (testing) Do not exit 5 if tests were skipped on Python 3.12. This follows the CPython change in python/cpython#113856.
Fixed
- (flags) The flag
foo
no longer retains the valuebar
afterFLAGS.foo = bar
fails due to a validation error. - (testing) Fixed an issue caused by this Python 3.12.1 change where the test reporter crashes when all tests are skipped.
v2.0.0
New
- Support Python 3.12.
Changed
absl-py
no longer supports Python 3.6. It has reached end-of-life for more
than a year now.- (logging)
logging.exception
can now takeexc_info
as argument, with
default valueTrue
. Prior to this change settingexc_info
would raise
KeyError
, this change fixes this behaviour. - (testing) For Python 3.11+, the calls to
absltest.TestCase.enter_context
are forwarded tounittest.TestCase.enterContext
(when called via instance)
orunittest.TestCase.enterClassContext
(when called via class) now. As a
result, on Python 3.11+, the private_cls_exit_stack
attribute is not
defined onabsltest.TestCase
and_exit_stack
attribute is not defined on
its instances. - (testing)
absltest.TestCase.assertSameStructure()
now uses the test case's
equality functions (registered withTestCase.addTypeEqualityFunc()
) for
comparing leaves of the structure. - (testing)
abslTest.TestCase.fail()
now names its arguments
(self, msg=None, user_msg=None)
, and not(self, msg=None, prefix=None)
,
better reflecting the behavior and usage of the two message arguments. DEFINE_enum
,DEFINE_multi_enum
, andEnumParser
now raise errors when
enum_values
is provided as a single string value. Additionally,
EnumParser.enum_values
is now stored as a list copy of the provided
enum_values
parameter.- (testing) Updated
paramaterized.CoopTestCase()
to use Python 3 metaclass
idioms. Most uses of this function continued working during the Python 3
migration still worked because a Python 2 compatibility__metaclass__
variables also existed. Now pure Python 3 base classes without backwards
compatibility will work as intended. - (testing)
absltest.TestCase.assertSequenceStartsWith
now explicitly fail
when passed aMapping
orSet
object as thewhole
argument.
v1.4.0
New
- (testing) Added
@flagsaver.as_parsed
: this allows saving/restoring flags
using string values as if parsed from the command line and will also reflect
other flag states after command line parsing, e.g..present
is set.
Changed
- (logging) If no log dir is specified
logging.find_log_dir()
now falls back
totempfile.gettempdir()
instead of/tmp/
.
Fixed
- (flags) Additional kwargs (e.g.
short_name=
) toDEFINE_multi_enum_class
are now correctly passed to the underlyingFlag
object.
v1.3.0
Added
- (flags) Added a new
absl.flags.set_default
function that updates the flag
default for a providedFlagHolder
. This parallels the
absl.flags.FlagValues.set_default
interface which takes a flag name. - (flags) The following functions now also accept
FlagHolder
instance(s) in
addition to flag name(s) as their first positional argument:flags.register_validator
flags.validator
flags.register_multi_flags_validator
flags.multi_flags_validator
flags.mark_flag_as_required
flags.mark_flags_as_required
flags.mark_flags_as_mutual_exclusive
flags.mark_bool_flags_as_mutual_exclusive
flags.declare_key_flag
Changed
- (testing) Assertions
assertRaisesWithPredicateMatch
and
assertRaisesWithLiteralMatch
now capture the raisedException
for
further analysis when used as a context manager. - (testing) TextAndXMLTestRunner now produces time duration values with
millisecond precision in XML test result output. - (flags) Keyword access to
flag_name
arguments in the following functions
is deprecated. This parameter will be renamed in a future 2.0.0 release.flags.register_validator
flags.validator
flags.register_multi_flags_validator
flags.multi_flags_validator
flags.mark_flag_as_required
flags.mark_flags_as_required
flags.mark_flags_as_mutual_exclusive
flags.mark_bool_flags_as_mutual_exclusive
flags.declare_key_flag