Rationonnement de liaisons cython pour le moteur de mise en forme HarfBuzz.
import sys
import uharfbuzz as hb
fontfile = sys . argv [ 1 ]
text = sys . argv [ 2 ]
blob = hb . Blob . from_file_path ( fontfile )
face = hb . Face ( blob )
font = hb . Font ( face )
buf = hb . Buffer ()
buf . add_str ( text )
buf . guess_segment_properties ()
features = { "kern" : True , "liga" : True }
hb . shape ( font , buf , features )
infos = buf . glyph_infos
positions = buf . glyph_positions
for info , pos in zip ( infos , positions ):
gid = info . codepoint
glyph_name = font . glyph_to_string ( gid )
cluster = info . cluster
x_advance = pos . x_advance
x_offset = pos . x_offset
y_offset = pos . y_offset
print ( f" { glyph_name } gid { gid } = { cluster } @ { x_advance } , { y_offset } + { x_advance } " )Lors de la construction du package UharfBuzz, il intègre automatiquement des sources de HarfBuzz minimales afin que vous n'ayez pas à installer la bibliothèque HarfBuzz native.
Cependant, si vous souhaitez utiliser uharfbuzz avec votre harfbuzz fourni par le système (par exemple, si vous l'avez construit à partir de sources avec configuration personnalisée), vous pouvez définir USE_SYSTEM_LIBS=1 variable d'environnement (voir l'exemple ci-dessous).
USE_SYSTEM_LIBS=1 pip install uharfbuzz --no-binary :uharfbuzz: L'installation de HarfBuzz est trouvée à l'aide de pkg-config , vous devez donc avoir des fichiers .pc HarfBuzz dans votre système. Si vous l'avez construit à partir de sources, Meson les installe automatiquement. Sinon, vous voudrez peut-être installer le package de développement HarfBuzz, comme harfbuzz-devel sur les distros dérivés de Fedora.
Remarque: vous devez créer HarfBuzz avec le support expérimental de l'API activé.
Utilisez git tag -a pour créer une nouvelle balise annotée, ou git tag -s pour une balise annotée signée GPG, si vous préférez.
Nommez la nouvelle balise avec un «V» leader suivi de trois chiffres majeurs.minor.patch, comme dans le versioning sémantique. Regardez les balises existantes pour les exemples.
Dans le message de balise, écrivez quelques notes de version courtes décrivant les modifications depuis la balise précédente. La ligne d'objet sera le nom de libération et le corps du message sera les notes de libération.
Enfin, poussez la balise vers le référentiel distant (par exemple en supposant en amont est appelé origine):
$ git push origin v0.4.3
Cela déclenchera le CI pour construire les packages de distribution et les télécharger automatiquement sur l'index Python Package, si tous les tests passent avec succès. Le CI créera également automatiquement une nouvelle version GitHub et utilisera le contenu de la balise GIT annotée pour les notes de version.