Code Monkey home page Code Monkey logo

afdko's Introduction

AFDKO Test Suite

Coverage

PyPI

Language grade: C/C++ Language grade: Python Total alerts Join the chat at https://gitter.im/adobe-type-tools/afdko

Adobe Font Development Kit for OpenType (AFDKO)

The AFDKO is a set of tools for building OpenType font files from PostScript and TrueType font data.

This repository contains the data files, Python scripts, and sources for the command line programs that comprise the AFDKO. The project uses the Apache 2.0 Open Source license. Please note that the AFDKO makes use of several dependencies, listed in the requirements.txt file, which will automatically be installed if you install AFDKO with pip. Most of these dependencies are BSD or MIT license, with the exception of tqdm, which is MPL 2.0.

Please refer to the AFDKO Overview for a more detailed description of what is included in the package.

Please see the wiki for additional information, such as links to reference materials and related projects.

Installation

The AFDKO requires Python 3.7 or later.

Releases are available on the Python Package Index (PyPI) and can be installed with pip.

Note for macOS users: we recommend that you do not use the system Python. Among other reasons, macOS ships with Python 2 and the latest version of the AFDKO is only available for Python 3. You can find instructions for using Brew to install Python 3 on macOS here: Installing Python 3 on Mac OS X

Note for all users: if you are in a Python 3 only environment, then the command pip is sufficient. If you are in a mixed Python 2 and Python 3 environment, or you are unsure of your environment, then the command pip3 ensures that you are using the Python 3 version of pip. It is for this reason that we have used pip3 in the instructions below.

Note for Linux users (and users of other platforms that are not macOS or Windows): When there is not a pre-built "wheel" for your platform pip will attempt to build the C and C++ portions of the package from source. This process will only succeed if both the C and C++ development tools and libuuid are installed. See build from source below.

Installing

Option 1 (Recommended)

  • Create a virtual environment:

      python3 -m venv afdko_env
    
  • Activate the virtual environment:

    • macOS & Linux

        source afdko_env/bin/activate
      
    • Windows

        afdko_env\Scripts\activate.bat
      
  • Install afdko:

      pip3 install afdko
    

Installing the afdko inside a virtual environment prevents conflicts between its dependencies and other modules installed globally.

Option 2

Install afdko globally:

pip3 install --user afdko

Updating

Use the -U (or --upgrade) option to update the afdko (and its dependencies) to the newest stable release:

pip3 install -U afdko

To get pre-release and in-development versions, use the --pre flag:

pip3 install -U afdko --pre

Uninstalling

To remove the afdko package use the command:

pip3 uninstall afdko

Build from source

First you must have installed the development tools for your platform.

On the Mac, install these with:

xcode-select --install

On Linux (Ubuntu 17.10 LTS or later), install these with:

apt-get -y install python3.7
apt-get -y install python-pip
apt-get -y install python-dev
apt-get -y install uuid-dev

On other POSIX-like operating systems, libuuid and its header files may be in a package named libuuid-devel or util-linux-libs. The source code for libuuid is maintained in the util-linux repository.

On Windows, you need Visual Studio 2017 or later.

To build the afdko from source, clone the afdko GitHub repository, ensure the wheel module is installed (pip3 install wheel), then cd to the top-level directory of the afdko, and run:

pip3 install .

For further information on building from source see docs/FDK_Build_Notes.md.

Note

It's not possible to install the afdko in editable/develop mode using pip3 install -e . ; this is because the toolkit includes binary C executables which setup.py tries to install in the bin/ (or Scripts/) folder, however this process was only meant to be used with text-based scripts (either written in Python or a shell scripting language). To work around this problem (which really only impacts the few core afdko developers who need to get live feedback as they modify the source files) you can use alternative methods like exporting a PYTHONPATH, using a .pth file or similar hacks. For further details read this comment.

Major changes from version 2.5.x

  • The AFDKO has been restructured so that it can be installed as a Python package. It now depends on the user's Python interpreter, and no longer contains its own Python interpreter.

  • Two programs, IS and checkoutlines were dropped because their source code could not be open-sourced. These tools are available in release version 2.5.65322 and older.

Note

If you install the old AFDKO as well as the new PyPI afdko package, the tools from the newer version will take precedence over the older. This happens because pip adds the afdko's package path at the beginning of the system's PATH environment variable, whereas the old installer adds it at the end; this modification to PATH is not undone by the uninstaller. If you want to completely remove the path to the newer version, you will have to edit the PATH. On the Mac, this means editing the line in your login file that sets the PATH variable. On Windows, this means editing the PATH environment variable in the system's Control Panel.

afdko's People

Contributors

anthrotype avatar arnie97 avatar be5invis avatar benkiel avatar blueshade7 avatar brawer avatar cjchapman avatar codeman38 avatar drj11 avatar frankrolf avatar iterumllc avatar jamesgk avatar josh-hadley avatar kaydeearts avatar khaledhosny avatar mashabow avatar miguelsousa avatar moyogo avatar msoxzw avatar n7s avatar petercon avatar punchcutter avatar pyup-bot avatar readroberts avatar rrthomas avatar schriftgestalt avatar sergeresko avatar simoncozens avatar skef avatar typemytype avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.