# HG changeset patch # User Pierre-Yves David # Date 1565218981 -7200 # Node ID ca5ca3badd3cc6d9896713c8a647b352cada7c0a # Parent bbe71b5afd02c764639780bfe763348d5e5d7a6b flagutil: create a `mercurial.revlogutils.flagutil` module The flagprocessings logic is duplicated in 2 extra places, and usually in a less robust flavor. This is a maintenance nightmare that I would like to see cleaned up. To do so I am creating a `flagutil` module to move flag processings related code and make it easily reusable by other code. diff -r bbe71b5afd02 -r ca5ca3badd3c contrib/import-checker.py --- a/contrib/import-checker.py Wed Aug 07 22:02:49 2019 +0200 +++ b/contrib/import-checker.py Thu Aug 08 01:03:01 2019 +0200 @@ -31,6 +31,7 @@ 'mercurial.node', # for revlog to re-export constant to extensions 'mercurial.revlogutils.constants', + 'mercurial.revlogutils.flagutil', # for cffi modules to re-export pure functions 'mercurial.pure.base85', 'mercurial.pure.bdiff', diff -r bbe71b5afd02 -r ca5ca3badd3c mercurial/revlog.py --- a/mercurial/revlog.py Wed Aug 07 22:02:49 2019 +0200 +++ b/mercurial/revlog.py Thu Aug 08 01:03:01 2019 +0200 @@ -38,13 +38,6 @@ from .revlogutils.constants import ( FLAG_GENERALDELTA, FLAG_INLINE_DATA, - REVIDX_DEFAULT_FLAGS, - REVIDX_ELLIPSIS, - REVIDX_EXTSTORED, - REVIDX_FLAGS_ORDER, - REVIDX_ISCENSORED, - REVIDX_KNOWN_FLAGS, - REVIDX_RAWTEXT_CHANGING_FLAGS, REVLOGV0, REVLOGV1, REVLOGV1_FLAGS, @@ -54,6 +47,15 @@ REVLOG_DEFAULT_FORMAT, REVLOG_DEFAULT_VERSION, ) +from .revlogutils.flagutil import ( + REVIDX_DEFAULT_FLAGS, + REVIDX_ELLIPSIS, + REVIDX_EXTSTORED, + REVIDX_FLAGS_ORDER, + REVIDX_ISCENSORED, + REVIDX_KNOWN_FLAGS, + REVIDX_RAWTEXT_CHANGING_FLAGS, +) from .thirdparty import ( attr, ) diff -r bbe71b5afd02 -r ca5ca3badd3c mercurial/revlogutils/flagutil.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/revlogutils/flagutil.py Thu Aug 08 01:03:01 2019 +0200 @@ -0,0 +1,31 @@ +# flagutils.py - code to deal with revlog flags and their processors +# +# Copyright 2016 Remi Chaintron +# Copyright 2016-2019 Pierre-Yves David +# +# This software may be used and distributed according to the terms of the +# GNU General Public License version 2 or any later version. + +from __future__ import absolute_import + +from .constants import ( + REVIDX_DEFAULT_FLAGS, + REVIDX_ELLIPSIS, + REVIDX_EXTSTORED, + REVIDX_FLAGS_ORDER, + REVIDX_ISCENSORED, + REVIDX_KNOWN_FLAGS, + REVIDX_RAWTEXT_CHANGING_FLAGS, +) + +# blanked usage of all the name to prevent pyflakes constraints +# We need these name available in the module for extensions. +REVIDX_ISCENSORED +REVIDX_ELLIPSIS +REVIDX_EXTSTORED +REVIDX_DEFAULT_FLAGS +REVIDX_FLAGS_ORDER +REVIDX_KNOWN_FLAGS +REVIDX_RAWTEXT_CHANGING_FLAGS + +