[doc] Tidy up top-level access to documentation
* List all modules and utilities * Move wordy optional requirements to separate page * Remove cruft from README and add pointers to online documentation
This commit is contained in:
parent
9691acb15d
commit
7a59d8105b
@ -31,165 +31,59 @@ See the Optional Requirements section below for details about module-specific de
|
||||
Utilities
|
||||
---------
|
||||
|
||||
Commands for merging and subsetting fonts are also available::
|
||||
fontTools installs four command-line utilities:
|
||||
|
||||
pyftmerge
|
||||
pyftsubset
|
||||
- ``pyftmerge``, a tool for merging fonts; see :py:mod:`fontTools.merge`
|
||||
- ``pyftsubset``, a tool for subsetting fonts; see :py:mod:`fontTools.subset`
|
||||
- ``ttx``, a tool for converting between OpenType binary fonts (OTF) and an XML representation (TTX); see :py:mod:`fontTools.ttx`
|
||||
- ``fonttools``, a "meta-tool" for accessing other components of the fontTools family.
|
||||
|
||||
Please see the :py:mod:`fontTools.merge` and :py:mod:`fontTools.subset` documentation for additional information about these tools.
|
||||
This last utility takes a subcommand, which could be one of:
|
||||
|
||||
- ``cu2qu``: Convert a UFO font with cubic curves to quadratic curves
|
||||
- ``feaLib``: Add features from a feature file (.fea) into a OTF font
|
||||
- ``mtiLib``: Convert Monotype FontDame layout files to TTX
|
||||
- ``subset``: OpenType font subsetter and optimizer
|
||||
- ``varLib``: Build a variable font from a designspace file and masters
|
||||
|
||||
Libraries
|
||||
---------
|
||||
|
||||
XXX
|
||||
The main library you will want to access when using fontTools for font
|
||||
engineering is likely to be :py:mod:`fontTools.ttLib`, which is the package
|
||||
for handling TrueType/OpenType fonts. However, there are many other
|
||||
libraries in the fontTools suite:
|
||||
|
||||
- :py:mod:`fontTools.afmLib`: Module for reading and writing AFM files
|
||||
- :py:mod:`fontTools.agl`: Access to the Adobe Glyph List
|
||||
- :py:mod:`fontTools.cffLib`: Read/write tools for Adobe CFF fonts
|
||||
- :py:mod:`fontTools.colorLib`: Module for handling colors in CPAL/COLR fonts
|
||||
- :py:mod:`fontTools.cu2qu`: Module for cubic to quadratic conversion
|
||||
- :py:mod:`fontTools.designspaceLib`: Read and write designspace files
|
||||
- :py:mod:`fontTools.encodings`: Support for font-related character encodings
|
||||
- :py:mod:`fontTools.feaLib`: Read and read AFDKO feature files
|
||||
- :py:mod:`fontTools.fontBuilder`: Construct TTF/OTF fonts from scratch
|
||||
- :py:mod:`fontTools.merge`: Tools for merging font files
|
||||
- :py:mod:`fontTools.pens`: Various classes for manipulating glyph outlines
|
||||
- :py:mod:`fontTools.subset`: OpenType font subsetting and optimization
|
||||
- :py:mod:`fontTools.svgLib.path`: Library for drawing SVG paths onto glyphs
|
||||
- :py:mod:`fontTools.t1Lib`: Tools for PostScript Type 1 fonts (Python2 only)
|
||||
- :py:mod:`fontTools.ttx`: Module for converting between OTF and XML representation
|
||||
- :py:mod:`fontTools.ufoLib`: Module for reading and writing UFO files
|
||||
- :py:mod:`fontTools.unicodedata`: Convert between Unicode and OpenType script information
|
||||
- :py:mod:`fontTools.varLib`: Module for dealing with 'gvar'-style font variations
|
||||
- :py:mod:`fontTools.voltLib`: Module for dealing with Visual OpenType Layout Tool (VOLT) files
|
||||
|
||||
A selection of sample Python programs using these libaries can be found in the `Snippets directory <https://github.com/fonttools/fonttools/blob/master/Snippets/>`_ of the fontTools repository.
|
||||
|
||||
Optional Requirements
|
||||
Optional Dependencies
|
||||
---------------------
|
||||
|
||||
The fontTools package currently has no (required) external dependencies
|
||||
besides the modules included in the Python Standard Library.
|
||||
However, a few extra dependencies are required to unlock optional features
|
||||
in some of the library modules.
|
||||
|
||||
The fonttools PyPI distribution also supports so-called "extras", i.e. a
|
||||
set of keywords that describe a group of additional dependencies, which can be
|
||||
used when installing via pip, or when specifying a requirement.
|
||||
For example:
|
||||
|
||||
.. code:: sh
|
||||
|
||||
pip install fonttools[ufo,lxml,woff,unicode]
|
||||
|
||||
This command will install fonttools, as well as the optional dependencies that
|
||||
are required to unlock the extra features named "ufo", etc.
|
||||
|
||||
.. note::
|
||||
|
||||
Optional dependencies are detailed by module in the list below with the ``Extra`` setting that automates ``pip`` dependency installation when this is supported.
|
||||
|
||||
|
||||
|
||||
:py:mod:`fontTools.misc.etree`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The module exports a ElementTree-like API for reading/writing XML files, and allows to use as the backend either the built-in ``xml.etree`` module or `lxml <https://lxml.de>`__. The latter is preferred whenever present, as it is generally faster and more secure.
|
||||
|
||||
*Extra:* ``lxml``
|
||||
|
||||
|
||||
:py:mod:`fontTools.ufoLib`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Package for reading and writing UFO source files; it requires:
|
||||
|
||||
* `fs <https://pypi.org/pypi/fs>`__: (aka ``pyfilesystem2``) filesystem abstraction layer.
|
||||
|
||||
* `enum34 <https://pypi.org/pypi/enum34>`__: backport for the built-in ``enum`` module (only required on Python < 3.4).
|
||||
|
||||
*Extra:* ``ufo``
|
||||
|
||||
|
||||
:py:mod:`fontTools.ttLib.woff2`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Module to compress/decompress WOFF 2.0 web fonts; it requires:
|
||||
|
||||
* `brotli <https://pypi.python.org/pypi/Brotli>`__: Python bindings of the Brotli compression library.
|
||||
|
||||
*Extra:* ``woff``
|
||||
|
||||
|
||||
:py:mod:`fontTools.unicode`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
To display the Unicode character names when dumping the ``cmap`` table
|
||||
with ``ttx`` we use the ``unicodedata`` module in the Standard Library.
|
||||
The version included in there varies between different Python versions.
|
||||
To use the latest available data, you can install:
|
||||
|
||||
* `unicodedata2 <https://pypi.python.org/pypi/unicodedata2>`__: ``unicodedata`` backport for Python 2.7
|
||||
and 3.x updated to the latest Unicode version 12.0. Note this is not necessary if you use Python 3.8
|
||||
as the latter already comes with an up-to-date ``unicodedata``.
|
||||
|
||||
*Extra:* ``unicode``
|
||||
|
||||
|
||||
:py:mod:`fontTools.varLib.interpolatable`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Module for finding wrong contour/component order between different masters.
|
||||
It requires one of the following packages in order to solve the so-called
|
||||
"minimum weight perfect matching problem in bipartite graphs", or
|
||||
the Assignment problem:
|
||||
|
||||
* `scipy <https://pypi.python.org/pypi/scipy>`__: the Scientific Library for Python, which internally
|
||||
uses `NumPy <https://pypi.python.org/pypi/numpy>`__ arrays and hence is very fast;
|
||||
* `munkres <https://pypi.python.org/pypi/munkres>`__: a pure-Python module that implements the Hungarian
|
||||
or Kuhn-Munkres algorithm.
|
||||
|
||||
*Extra:* ``interpolatable``
|
||||
|
||||
|
||||
:py:mod:`fontTools.varLib.plot`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Module for visualizing DesignSpaceDocument and resulting VariationModel.
|
||||
|
||||
* `matplotlib <https://pypi.org/pypi/matplotlib>`__: 2D plotting library.
|
||||
|
||||
*Extra:* ``plot``
|
||||
|
||||
|
||||
:py:mod:`fontTools.misc.symfont`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Advanced module for symbolic font statistics analysis; it requires:
|
||||
|
||||
* `sympy <https://pypi.python.org/pypi/sympy>`__: the Python library for symbolic mathematics.
|
||||
|
||||
*Extra:* ``symfont``
|
||||
|
||||
|
||||
:py:mod:`fontTools.t1Lib`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
To get the file creator and type of Macintosh PostScript Type 1 fonts
|
||||
on Python 3 you need to install the following module, as the old ``MacOS``
|
||||
module is no longer included in Mac Python:
|
||||
|
||||
* `xattr <https://pypi.python.org/pypi/xattr>`__: Python wrapper for extended filesystem attributes
|
||||
(macOS platform only).
|
||||
|
||||
*Extra:* ``type1``
|
||||
|
||||
|
||||
:py:mod:`fontTools.pens.cocoaPen`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Pen for drawing glyphs with Cocoa ``NSBezierPath``, requires:
|
||||
|
||||
* `PyObjC <https://pypi.python.org/pypi/pyobjc>`__: the bridge between Python and the Objective-C
|
||||
runtime (macOS platform only).
|
||||
|
||||
|
||||
:py:mod:`fontTools.pens.qtPen`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Pen for drawing glyphs with Qt's ``QPainterPath``, requires:
|
||||
|
||||
* `PyQt5 <https://pypi.python.org/pypi/PyQt5>`__: Python bindings for the Qt cross platform UI and
|
||||
application toolkit.
|
||||
|
||||
|
||||
:py:mod:`fontTools.pens.reportLabPen`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Pen to drawing glyphs as PNG images, requires:
|
||||
|
||||
* `reportlab <https://pypi.python.org/pypi/reportlab>`__: Python toolkit for generating PDFs and
|
||||
graphics.
|
||||
in some of the library modules. See the :doc:`optional requirements <./optional>`
|
||||
page for more information.
|
||||
|
||||
Developer information
|
||||
---------------------
|
||||
|
140
Doc/source/optional.rst
Normal file
140
Doc/source/optional.rst
Normal file
@ -0,0 +1,140 @@
|
||||
Optional Dependencies
|
||||
=====================
|
||||
|
||||
The fonttools PyPI distribution also supports so-called "extras", i.e. a
|
||||
set of keywords that describe a group of additional dependencies, which can be
|
||||
used when installing via pip, or when specifying a requirement.
|
||||
For example:
|
||||
|
||||
.. code:: sh
|
||||
|
||||
pip install fonttools[ufo,lxml,woff,unicode]
|
||||
|
||||
This command will install fonttools, as well as the optional dependencies that
|
||||
are required to unlock the extra features named "ufo", etc.
|
||||
|
||||
.. note::
|
||||
|
||||
Optional dependencies are detailed by module in the list below with the ``Extra`` setting that automates ``pip`` dependency installation when this is supported.
|
||||
|
||||
|
||||
|
||||
:py:mod:`fontTools.misc.etree`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The module exports a ElementTree-like API for reading/writing XML files, and allows to use as the backend either the built-in ``xml.etree`` module or `lxml <https://lxml.de>`__. The latter is preferred whenever present, as it is generally faster and more secure.
|
||||
|
||||
*Extra:* ``lxml``
|
||||
|
||||
|
||||
:py:mod:`fontTools.ufoLib`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Package for reading and writing UFO source files; it requires:
|
||||
|
||||
* `fs <https://pypi.org/pypi/fs>`__: (aka ``pyfilesystem2``) filesystem abstraction layer.
|
||||
|
||||
* `enum34 <https://pypi.org/pypi/enum34>`__: backport for the built-in ``enum`` module (only required on Python < 3.4).
|
||||
|
||||
*Extra:* ``ufo``
|
||||
|
||||
|
||||
:py:mod:`fontTools.ttLib.woff2`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Module to compress/decompress WOFF 2.0 web fonts; it requires:
|
||||
|
||||
* `brotli <https://pypi.python.org/pypi/Brotli>`__: Python bindings of the Brotli compression library.
|
||||
|
||||
*Extra:* ``woff``
|
||||
|
||||
|
||||
:py:mod:`fontTools.unicode`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
To display the Unicode character names when dumping the ``cmap`` table
|
||||
with ``ttx`` we use the ``unicodedata`` module in the Standard Library.
|
||||
The version included in there varies between different Python versions.
|
||||
To use the latest available data, you can install:
|
||||
|
||||
* `unicodedata2 <https://pypi.python.org/pypi/unicodedata2>`__: ``unicodedata`` backport for Python 2.7
|
||||
and 3.x updated to the latest Unicode version 12.0. Note this is not necessary if you use Python 3.8
|
||||
as the latter already comes with an up-to-date ``unicodedata``.
|
||||
|
||||
*Extra:* ``unicode``
|
||||
|
||||
|
||||
:py:mod:`fontTools.varLib.interpolatable`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Module for finding wrong contour/component order between different masters.
|
||||
It requires one of the following packages in order to solve the so-called
|
||||
"minimum weight perfect matching problem in bipartite graphs", or
|
||||
the Assignment problem:
|
||||
|
||||
* `scipy <https://pypi.python.org/pypi/scipy>`__: the Scientific Library for Python, which internally
|
||||
uses `NumPy <https://pypi.python.org/pypi/numpy>`__ arrays and hence is very fast;
|
||||
* `munkres <https://pypi.python.org/pypi/munkres>`__: a pure-Python module that implements the Hungarian
|
||||
or Kuhn-Munkres algorithm.
|
||||
|
||||
*Extra:* ``interpolatable``
|
||||
|
||||
|
||||
:py:mod:`fontTools.varLib.plot`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Module for visualizing DesignSpaceDocument and resulting VariationModel.
|
||||
|
||||
* `matplotlib <https://pypi.org/pypi/matplotlib>`__: 2D plotting library.
|
||||
|
||||
*Extra:* ``plot``
|
||||
|
||||
|
||||
:py:mod:`fontTools.misc.symfont`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Advanced module for symbolic font statistics analysis; it requires:
|
||||
|
||||
* `sympy <https://pypi.python.org/pypi/sympy>`__: the Python library for symbolic mathematics.
|
||||
|
||||
*Extra:* ``symfont``
|
||||
|
||||
|
||||
:py:mod:`fontTools.t1Lib`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
To get the file creator and type of Macintosh PostScript Type 1 fonts
|
||||
on Python 3 you need to install the following module, as the old ``MacOS``
|
||||
module is no longer included in Mac Python:
|
||||
|
||||
* `xattr <https://pypi.python.org/pypi/xattr>`__: Python wrapper for extended filesystem attributes
|
||||
(macOS platform only).
|
||||
|
||||
*Extra:* ``type1``
|
||||
|
||||
|
||||
:py:mod:`fontTools.pens.cocoaPen`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Pen for drawing glyphs with Cocoa ``NSBezierPath``, requires:
|
||||
|
||||
* `PyObjC <https://pypi.python.org/pypi/pyobjc>`__: the bridge between Python and the Objective-C
|
||||
runtime (macOS platform only).
|
||||
|
||||
|
||||
:py:mod:`fontTools.pens.qtPen`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Pen for drawing glyphs with Qt's ``QPainterPath``, requires:
|
||||
|
||||
* `PyQt5 <https://pypi.python.org/pypi/PyQt5>`__: Python bindings for the Qt cross platform UI and
|
||||
application toolkit.
|
||||
|
||||
|
||||
:py:mod:`fontTools.pens.reportLabPen`
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Pen to drawing glyphs as PNG images, requires:
|
||||
|
||||
* `reportlab <https://pypi.python.org/pypi/reportlab>`__: Python toolkit for generating PDFs and
|
||||
graphics.
|
167
README.rst
167
README.rst
@ -11,6 +11,9 @@ What is this?
|
||||
licence <LICENSE>`__.
|
||||
| Among other things this means you can use it free of charge.
|
||||
|
||||
`User documentation <https://fonttools.readthedocs.io/en/latest/>` and
|
||||
`developer documentation <https://fonttools.readthedocs.io/en/latest/developer.html>` is available at `Read the Docs <https://fonttools.readthedocs.io/>`.
|
||||
|
||||
Installation
|
||||
~~~~~~~~~~~~
|
||||
|
||||
@ -54,112 +57,6 @@ Python 3 `venv <https://docs.python.org/3/library/venv.html>`__ module.
|
||||
# install in 'editable' mode
|
||||
pip install -e .
|
||||
|
||||
TTX – From OpenType and TrueType to XML and Back
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Once installed you can use the ``ttx`` command to convert binary font
|
||||
files (``.otf``, ``.ttf``, etc) to the TTX XML format, edit them, and
|
||||
convert them back to binary format. TTX files have a .ttx file
|
||||
extension.
|
||||
|
||||
.. code:: sh
|
||||
|
||||
ttx /path/to/font.otf
|
||||
ttx /path/to/font.ttx
|
||||
|
||||
The TTX application can be used in two ways, depending on what
|
||||
platform you run it on:
|
||||
|
||||
- As a command line tool (Windows/DOS, Unix, macOS)
|
||||
- By dropping files onto the application (Windows, macOS)
|
||||
|
||||
TTX detects what kind of files it is fed: it will output a ``.ttx`` file
|
||||
when it sees a ``.ttf`` or ``.otf``, and it will compile a ``.ttf`` or
|
||||
``.otf`` when the input file is a ``.ttx`` file. By default, the output
|
||||
file is created in the same folder as the input file, and will have the
|
||||
same name as the input file but with a different extension. TTX will
|
||||
*never* overwrite existing files, but if necessary will append a unique
|
||||
number to the output filename (before the extension) such as
|
||||
``Arial#1.ttf``
|
||||
|
||||
When using TTX from the command line there are a bunch of extra options.
|
||||
These are explained in the help text, as displayed when typing
|
||||
``ttx -h`` at the command prompt. These additional options include:
|
||||
|
||||
- specifying the folder where the output files are created
|
||||
- specifying which tables to dump or which tables to exclude
|
||||
- merging partial ``.ttx`` files with existing ``.ttf`` or ``.otf``
|
||||
files
|
||||
- listing brief table info instead of dumping to ``.ttx``
|
||||
- splitting tables to separate ``.ttx`` files
|
||||
- disabling TrueType instruction disassembly
|
||||
|
||||
The TTX file format
|
||||
-------------------
|
||||
|
||||
The following tables are currently supported:
|
||||
|
||||
.. begin table list
|
||||
.. code::
|
||||
|
||||
BASE, CBDT, CBLC, CFF, CFF2, COLR, CPAL, DSIG, EBDT, EBLC, FFTM,
|
||||
Feat, GDEF, GMAP, GPKG, GPOS, GSUB, Glat, Gloc, HVAR, JSTF, LTSH,
|
||||
MATH, META, MVAR, OS/2, SING, STAT, SVG, Silf, Sill, TSI0, TSI1,
|
||||
TSI2, TSI3, TSI5, TSIB, TSID, TSIJ, TSIP, TSIS, TSIV, TTFA, VDMX,
|
||||
VORG, VVAR, ankr, avar, bsln, cidg, cmap, cvar, cvt, feat, fpgm,
|
||||
fvar, gasp, gcid, glyf, gvar, hdmx, head, hhea, hmtx, kern, lcar,
|
||||
loca, ltag, maxp, meta, mort, morx, name, opbd, post, prep, prop,
|
||||
sbix, trak, vhea and vmtx
|
||||
.. end table list
|
||||
|
||||
Other tables are dumped as hexadecimal data.
|
||||
|
||||
TrueType fonts use glyph indices (GlyphIDs) to refer to glyphs in most
|
||||
places. While this is fine in binary form, it is really hard to work
|
||||
with for humans. Therefore we use names instead.
|
||||
|
||||
The glyph names are either extracted from the ``CFF`` table or the
|
||||
``post`` table, or are derived from a Unicode ``cmap`` table. In the
|
||||
latter case the Adobe Glyph List is used to calculate names based on
|
||||
Unicode values. If all of these methods fail, names are invented based
|
||||
on GlyphID (eg ``glyph00142``)
|
||||
|
||||
It is possible that different glyphs use the same name. If this happens,
|
||||
we force the names to be unique by appending ``#n`` to the name (``n``
|
||||
being an integer number.) The original names are being kept, so this has
|
||||
no influence on a "round tripped" font.
|
||||
|
||||
Because the order in which glyphs are stored inside the binary font is
|
||||
important, we maintain an ordered list of glyph names in the font.
|
||||
|
||||
Other Tools
|
||||
~~~~~~~~~~~
|
||||
|
||||
Commands for merging and subsetting fonts are also available:
|
||||
|
||||
.. code:: sh
|
||||
|
||||
pyftmerge
|
||||
pyftsubset
|
||||
|
||||
fontTools Python Module
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The fontTools Python module provides a convenient way to
|
||||
programmatically edit font files.
|
||||
|
||||
.. code:: py
|
||||
|
||||
>>> from fontTools.ttLib import TTFont
|
||||
>>> font = TTFont('/path/to/font.ttf')
|
||||
>>> font
|
||||
<fontTools.ttLib.TTFont object at 0x10c34ed50>
|
||||
>>>
|
||||
|
||||
A selection of sample Python programs is in the
|
||||
`Snippets <https://github.com/fonttools/fonttools/blob/master/Snippets/>`__
|
||||
directory.
|
||||
|
||||
Optional Requirements
|
||||
---------------------
|
||||
|
||||
@ -297,64 +194,6 @@ are required to unlock the extra features named "ufo", etc.
|
||||
* `reportlab <https://pypi.python.org/pypi/reportlab>`__: Python toolkit
|
||||
for generating PDFs and graphics.
|
||||
|
||||
Testing
|
||||
~~~~~~~
|
||||
|
||||
To run the test suite, you need to install `pytest <http://docs.pytest.org/en/latest/>`__.
|
||||
When you run the ``pytest`` command, the tests will run against the
|
||||
installed ``fontTools`` package, or the first one found in the
|
||||
``PYTHONPATH``.
|
||||
|
||||
You can also use `tox <https://tox.readthedocs.io/en/latest/>`__ to
|
||||
automatically run tests on different Python versions in isolated virtual
|
||||
environments.
|
||||
|
||||
.. code:: sh
|
||||
|
||||
pip install tox
|
||||
tox
|
||||
|
||||
Note that when you run ``tox`` without arguments, the tests are executed
|
||||
for all the environments listed in tox.ini's ``envlist``. In our case,
|
||||
this includes Python 3.6 and 3.7, so for this to work the ``python3.6``
|
||||
and ``python3.7`` executables must be available in your ``PATH``.
|
||||
|
||||
You can specify an alternative environment list via the ``-e`` option,
|
||||
or the ``TOXENV`` environment variable:
|
||||
|
||||
.. code:: sh
|
||||
|
||||
tox -e py36
|
||||
TOXENV="py36-cov,htmlcov" tox
|
||||
|
||||
Development Community
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
TTX/FontTools development is ongoing in an active community of
|
||||
developers, that includes professional developers employed at major
|
||||
software corporations and type foundries as well as hobbyists.
|
||||
|
||||
Feature requests and bug reports are always welcome at
|
||||
https://github.com/fonttools/fonttools/issues/
|
||||
|
||||
The best place for discussions about TTX from an end-user perspective as
|
||||
well as TTX/FontTools development is the
|
||||
https://groups.google.com/d/forum/fonttools mailing list. There is also
|
||||
a development https://groups.google.com/d/forum/fonttools-dev mailing
|
||||
list for continuous integration notifications. You can also email Behdad
|
||||
privately at behdad@behdad.org
|
||||
|
||||
History
|
||||
~~~~~~~
|
||||
|
||||
The fontTools project was started by Just van Rossum in 1999, and was
|
||||
maintained as an open source project at
|
||||
http://sourceforge.net/projects/fonttools/. In 2008, Paul Wise (pabs3)
|
||||
began helping Just with stability maintenance. In 2013 Behdad Esfahbod
|
||||
began a friendly fork, thoroughly reviewing the codebase and making
|
||||
changes at https://github.com/behdad/fonttools to add new features and
|
||||
support for new font formats.
|
||||
|
||||
Acknowledgements
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user