Recent commits to derivepassphrase.git (f38b80e71b72c46036ddccd2dc7c5cfbb6a4daf2)
https://git.schokokeks.org/derivepassphrase.git/tree/f38b80e71b72c46036ddccd2dc7c5cfbb6a4daf2
Recent commits feed provided by GitList.Normalize and unwrap translatable strings (messages and comments)Rewrite one-paragraph comments and strings as one-line strings, with
implicit line continuation if necessary. This is how they would appear
anyway if printed via `repr`, and in the `mkdocstrings`-extracted API
documentation. Further trim the "TRANSLATORS:" prefix from comments; it
is added automatically during `.po` file writing as necessary.
Some minor changes to the docstrings have also been made:
* `Label`
- `VAULT_METAVAR_SERVICE`: Trim `as "service_metavar"` from the`
comments for consistency.
* DebugMsgTemplate
- `VAULT_NATIVE_EVP_BYTESTOKEY_RESULT`: Use the correct message.
- `VAULT_NATIVE_CHECKING_MAC_DETAILS`,
`VAULT_NATIVE_V02_PAYLOAD_MAC_POSTPROCESSING`: Fix reference to
`InfoMsgTemplate.VAULT_NATIVE_PARSING_IV_PAYLOAD_AND_MAC`
* InfoMsgTemplate
- `VAULT_NATIVE_PARSING_IV_PAYLOAD_MAC`: Use "these terms" instead
of "this term".
The diff is hard to read in normal "line" mode, but much clearer if read
in "word-diff" mode (with quotes also treated as whitespace).
https://git.schokokeks.org/derivepassphrase.git/commit/f38b80e71b72c46036ddccd2dc7c5cfbb6a4daf2
software@the13thletter.info (Marco Ricci)Wed, 15 Jan 2025 16:01:44 +0100f38b80e71b72c46036ddccd2dc7c5cfbb6a4daf2Add hypothesis-based tests for l10n machineryThis specifically tests the `DebugTranslations` object, and various
asserted properties of `TranslatedStrings` and `TranslatableStrings`
such as hashability and equality under various modifications (e.g.
trimming the filename).
To further support this, `TranslatedStrings` now know their own format
string replacement fields (except for `%`-formatted strings), and the
`DebugTranslations` class now uses that knowledge instead of duplicating
it inline. Additionally, because `TranslatedString`s are always
interpolated, there is a new `TranslatedString.constant` constructor
for `str` templates which ensures that nothing is interpolated.
Some code branches previously excluded from coverage are now considered
again.
https://git.schokokeks.org/derivepassphrase.git/commit/d21c0bed73ae46bd06b004f5c0c1621b729e6fab
software@the13thletter.info (Marco Ricci)Tue, 14 Jan 2025 03:06:58 +0100d21c0bed73ae46bd06b004f5c0c1621b729e6fabFix obvious coverage failures among the translatable strings machineryUse examples in doctests where it makes didactical sense.
https://git.schokokeks.org/derivepassphrase.git/commit/5507510b6e8800ac739fd5ce5de3b3a6d771dce4
software@the13thletter.info (Marco Ricci)Mon, 13 Jan 2025 23:28:32 +01005507510b6e8800ac739fd5ce5de3b3a6d771dce4Split off comments in translatable string enum value constructorNow that the constructor for translatable string enum values is
homogeneous, split the constructor into a curried two-step function
call. This should hopefully look much better visually separated when
rendered in the API documentation than the current solution, because the
rendering normalizes the multiline strings into single-line strings with
escape sequences.
(This commit only splits the arguments into the two-step function call;
the arguments have not yet been trimmed or normalized.)
https://git.schokokeks.org/derivepassphrase.git/commit/3d077627bc7f337b394d9a265c54b6042df3f4e8
software@the13thletter.info (Marco Ricci)Mon, 13 Jan 2025 22:44:58 +01003d077627bc7f337b394d9a265c54b6042df3f4e8Sort arguments to translatable string enum value constructor
https://git.schokokeks.org/derivepassphrase.git/commit/8075959562a0ba81ec2468af6e470e85f720f5df
software@the13thletter.info (Marco Ricci)Mon, 13 Jan 2025 18:05:33 +01008075959562a0ba81ec2468af6e470e85f720f5dfIssue new context IDs for translatable messagesUse an ID system similar to the trove classifiers used the Python
packaging authority.
(Enum members were not reordered according to this new ID system.)
https://git.schokokeks.org/derivepassphrase.git/commit/0e8eaab68ebf814292a967aecf1315839baadd4d
software@the13thletter.info (Marco Ricci)Mon, 13 Jan 2025 17:36:18 +01000e8eaab68ebf814292a967aecf1315839baadd4dFix debug output of messages with trimmed filenamesWe do need to keep track of the trimming status when adding those
variants to the cache, because the debug output formatter will discover
the trimmed fields in the template anyway and otherwise attempt to emit
them. So store the set of trimmed fields in the cache for each message,
and pass it on to the formatter. We will assume that if a field gets
trimmed, then it had a `None` value, which is true for all the fields we
currently support trimming.
https://git.schokokeks.org/derivepassphrase.git/commit/ede0e19df43c7bfd4d20199f918afc62df29e3b0
software@the13thletter.info (Marco Ricci)Mon, 13 Jan 2025 17:28:25 +0100ede0e19df43c7bfd4d20199f918afc62df29e3b0Support SOURCE_DATE_EPOCH for .po file generationCopyright messages and the creation date will bear the source date epoch
value.
https://git.schokokeks.org/derivepassphrase.git/commit/61a16b1ca63e9019311836f286b6c2ae713710fd
software@the13thletter.info (Marco Ricci)Mon, 13 Jan 2025 16:16:12 +010061a16b1ca63e9019311836f286b6c2ae713710fdMove translation string preparation into the TranslatableString classSave for a few factory functions to make enum definitions more readable,
the normalization machinery for translatable strings belongs in their
class. I originally coded this separately because I mistakenly believed
that `typing.NamedTuple` classes cannot contain methods of their own.
https://git.schokokeks.org/derivepassphrase.git/commit/e7887804003dc277a9095956ffb7a44cb90608f4
software@the13thletter.info (Marco Ricci)Mon, 13 Jan 2025 15:49:08 +0100e7887804003dc277a9095956ffb7a44cb90608f4Properly support trimmed filenames in translation stringsThe debug translations object and the `.po` file writer now properly
support translation strings with the filename portion trimmed.
Effectively, these are separate translation strings, and as such they
need separate cache entries and separate `.po` entries.
To fully support this, the translatable string itself now knows how to
trim the filename replacement field, which the debug translations object
now honors. The `.po` writer still needs the enum name to construct the
message ID, but now it takes an optional transformed string to use
instead of the enum value, if given.
One additional minor fix to the debug translator: some of the emitted
translated messages interpolate other translated messages (such as
metavars). Thus when interpolating arguments, if the argument is
a translated string, then stringify it before interpolation. This
avoids printing the `repr` of the inner translated string, which is
otherwise very common for debug translation output.
https://git.schokokeks.org/derivepassphrase.git/commit/c0b2e8ab4fd0a0ff9dd1a158502d4f70c85d7721
software@the13thletter.info (Marco Ricci)Mon, 13 Jan 2025 14:50:03 +0100c0b2e8ab4fd0a0ff9dd1a158502d4f70c85d7721