A documentação do usuário e a documentação do desenvolvedor estão disponíveis em Leia os documentos.
FontTools requer Python 3.8 ou posterior. Tentamos seguir o mesmo cronograma de suporte mínimo à versão Python do NumPy (consulte NEP 29).
O pacote está listado no Python Package Index (PyPI), então você pode instalá-lo com pip:
pip install fonttools
Se quiser contribuir para o seu desenvolvimento, você pode clonar o repositório do GitHub, instalar o pacote em modo ‘editável’ e modificar o código-fonte no local. Recomendamos a criação de um ambiente virtual, usando o módulo virtualenv ou Python 3 venv.
# download the source code to 'fonttools' folder
git clone https://github.com/fonttools/fonttools.git
cd fonttools
# create new virtual environment called e.g. 'fonttools-venv', or anything you like
python -m virtualenv fonttools-venv
# source the `activate` shell script to enter the environment (Unix-like); to exit, just type `deactivate`
. fonttools-venv/bin/activate
# to activate the virtual environment in Windows `cmd.exe`, do
fonttools-venv S cripts a ctivate.bat
# install in 'editable' mode
pip install -e .
O pacote fontTools
atualmente não possui dependências externas (obrigatórias) além dos módulos incluídos na Biblioteca Padrão do Python. No entanto, algumas dependências extras são exigidas por alguns de seus módulos, necessárias para desbloquear recursos opcionais. A distribuição PyPI fonttools
também suporta os chamados "extras", ou seja, um conjunto de palavras-chave que descrevem um grupo de dependências adicionais, que podem ser usadas na instalação via pip ou na especificação de um requisito. Por exemplo:
pip install fonttools[ufo,lxml,woff,unicode]
Este comando instalará fonttools, bem como as dependências opcionais necessárias para desbloquear os recursos extras chamados "ufo", etc.
Lib/fontTools/misc/etree.py
O módulo exporta uma API semelhante ao ElementTree para leitura/gravação de arquivos XML e permite usar como back-end o módulo xml.etree
integrado ou lxml. Este último é preferido sempre que presente, pois geralmente é mais rápido e seguro.
Extra: lxml
Lib/fontTools/ufoLib
Pacote para leitura e gravação de arquivos fonte de OVNIs; requer:
pyfilesystem2
) camada de abstração do sistema de arquivos.enum
integrado (requerido apenas em Python <3.4). Extra: ufo
Lib/fontTools/ttLib/woff2.py
Módulo para compactar/descompactar fontes web WOFF 2.0; requer:
Extra: woff
Lib/fontTools/ttLib/sfnt.py
Para compactar melhor as fontes da web WOFF 1.0, o seguinte módulo pode ser usado em vez da biblioteca zlib
integrada:
Extra: woff
Lib/fontTools/unicode.py
Para exibir os nomes dos caracteres Unicode ao despejar a tabela cmap
com ttx
usamos o módulo unicodedata
na Biblioteca Padrão. A versão incluída varia entre as diferentes versões do Python. Para usar os dados mais recentes disponíveis, você pode instalar:
unicodedata
para Python 3.x atualizado para a versão Unicode 15.0 mais recente. Extra: unicode
Lib/fontTools/varLib/interpolatable.py
Módulo para encontrar ordem errada de contorno/componente entre diferentes mestres. Requer um dos seguintes pacotes para resolver o chamado "problema de correspondência perfeita de peso mínimo em gráficos bipartidos", ou o problema de atribuição:
Para plotar os resultados em formato PDF ou HTML, você também precisa instalar:
Extra: interpolatable
Lib/fontTools/varLib/plot.py
Módulo para visualização de DesignSpaceDocument e VariationModel resultante.
Extra: plot
Lib/fontTools/misc/symfont.py
Módulo avançado para análise estatística de fontes simbólicas; requer:
Extra: symfont
Lib/fontTools/t1Lib.py
Para obter o criador do arquivo e o tipo de fontes Macintosh PostScript Type 1 no Python 3, você precisa instalar o seguinte módulo, pois o antigo módulo MacOS
não está mais incluído no Mac Python:
Extra: type1
Lib/fontTools/ttLib/removeOverlaps.py
Simplifique os glifos TrueType mesclando contornos e componentes sobrepostos.
Extra: pathops
Lib/fontTools/pens/cocoaPen.py
e Lib/fontTools/pens/quartzPen.py
Canetas para desenhar glifos com Cocoa NSBezierPath
ou CGPath
requerem:
Lib/fontTools/pens/qtPen.py
Caneta para desenhar glifos com QPainterPath
do Qt, requer:
Lib/fontTools/pens/reportLabPen.py
Caneta para desenhar glifos como imagens PNG, requer:
Lib/fontTools/pens/freetypePen.py
Caneta para desenhar glifos com FreeType como imagens raster, requer:
Lib/fontTools/ttLib/tables/otBase.py
Use a biblioteca Harfbuzz para serializar GPOS/GSUB usando o método hb_repack
, requer:
Extra: repacker
NEWS.rst
com todas as alterações desde a última versão. Escreva uma entrada no changelog para cada PR, com uma ou duas frases curtas resumindo-o, bem como links para o PR e questões relevantes abordadas pelo PR. Não coloque um novo título, o próximo comando fará isso por você.pip install -r dev-requirements.txt
e, em seguida, execute o comando python setup.py release
na ponta do branch main
. Por padrão, isso aumenta apenas o terceiro dígito ou 'patch', a menos que você passe --major
ou --minor
para aumentar, respectivamente, o primeiro ou o segundo dígito. Isso altera a string da versão do pacote, extrai as alterações desde a versão mais recente de NEWS.rst
e usa esse texto para criar uma tag git anotada (ou uma tag git assinada se você passar a opção --sign
e sua conta git e Github forem configurado para assinar commits usando uma chave GPG). Ele também confirma um aumento de versão adicional que abre o branch principal para o ciclo de desenvolvimento subsequentegit push --follow-tags
. Nota: também pode enviar outras tags locais, tenha cuidado.Em ordem alfabética:
aschmitz, Olivier Berten, Samyak Bhuta, Erik van Blokland, Petr van Blokland, Jelle Bosma, Sascha Brawer, Tom Byrer, Antonio Cavedoni, Frédéric Coiffier, Vincent Connare, David Corbett, Simon Cozens, Dave Crossland, Simon Daniels, Peter Dekkers, Behdad Esfahbod, Behnam Esfahbod, Hannes Famira, Sam Fishman, Matt Fontaine, Takaaki Fuji, Rob Hagemans, Yannis Haralambous, Greg Hitchcock, Jeremie Hornus, Khaled Hosny, John Hudson, Denis Moyogo Jacquerye, Jack Jansen, Tom Kacvinsky, Jens Kutilek, Antoine Leca, Werner Lemberg, Tal Leming, Peter Lofting , Cosimo Lupo, Olli Meier, Masaya Nakamura, Dave Opstad, Laurence Penney, Roozbeh Pournader, Garret Rieger, Read Roberts, Colin Rofls, Guido van Rossum, Just van Rossum, Andreas Seidel, Georg Seifert, Chris Simpkins, Miguel Sousa, Adam Twardoch, Adrien Tétar, Vitaly Volkov, Paul Wise.
Copyright (c) 2000 BeOpen.com. Todos os direitos reservados.
Copyright (c) 1995-2001 Corporação para Iniciativas Nacionais de Pesquisa. Todos os direitos reservados.
Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdã. Todos os direitos reservados.
Divirta-se!