Demicode

Latest version: v1.4.0

Safety actively analyzes 682387 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 3

0.7

Starting with this release, demicode clearly **distinguishes between user errors and unexpected exceptions**, even if it internally uses exceptions for both. For the former, it only prints the error message. For the latter, it also prints an exception trace and points to the issue tracker. Demicode's **output of statistics with the `--stats` option** has been significantly improved as well.

The **test script has been modularized** using Python's builtin `unittest` module. You can run tests with `./runtest.py` or with Visual Studio Code, the latter thanks to the configuration in `.vscode/settings.json`. In preparation of the release of Unicode 15.1, the **versions for code generation have been locked down**. In particular, testing grapheme cluster breaks now is specific to Unicode 15.0, since 15.1 updates the algorithm.

0.6

Demicode won't crash when ingesting **UCD files from Unicode versions before 13.0.0 any more**. The lack of some information and the presence of outdated property values are now gracefully ignored.

This release also changes how **unassigned code points and sequences of more than one grapheme cluster are handled**. Assuming that they may just be valid for some future version of the Unicode standard than the currently active one, demicode now **elides blots for them and adds an explanatory note** instead of the (non-existent) name.

0.5

In addition to considerable clean-up of demicode's internal code, the tool now optimizes UCD data for faster look ups. Several of the `--with-…` selections have been improved. In particular `--with-version-oracle` now displays exactly one emoji per detectable Unicode version.

0.4

1. This release fixes a bug in the **URL creation logic** for mirroring and now mirrors UCD and CLDR files to the **operating system's cache directory**.
2. Furthermore, it significantly streamlines the computation of **grapheme cluster width**, which now takes all emoji into account. That yields significantly better and more consistent results than the [wcwidth](https://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c) solely based on Unicode's East Asian Width.
3. Finally, this release further modularizes the code, with the mirroring logic now in its own module.

0.3

The marquee feature for v0.3 is support for **grapheme clusters** in addition to individual code points. Demicode also gained the ability to iterate over grapheme cluster breaks, so that it can validate user input.

For **emoji sequences**, demicode goes further and makes their **names** available, including those only published with the CLDR. Furthermore, demicode now displays the age in terms of the **Unicode Emoji version**, e.g., `E0.7`. Next, demicode now uses an improved width calculation for emoji, ensuring that they always have double width—unless they are paired with a text variation selector. To enable that functionality, demicode tracks more UCD properties.

Finally, this release enables **logging** for remote interactions, adds some **tests**, and performs optional **validation of UCD data**.

0.2.3

I finally hit on the the right screenshot URLs. The README [now renders on PyPI](https://pypi.org/project/demicode/) as well. Yay! 🎉

Page 2 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.