Giter Club home page Giter Club logo

psautohint's Introduction

Test and Build Codecov PyPI Language grade: C/C++ Language grade: Python Total alerts

Important Note: otfautohint

This repository is now retired. We have added a python port of its code to version 4.0.0 of AFDKO (to be released shortly, prerelease here). There is more information here. The new tool can be called from the command line as otfautohint, allowing it and psautohint to be used at the same time during a transition period. Please switch to otfautohint and file any new issues or PRs against that tool.

(psautohint was split off from AFDKO a number of years ago for technical reasons having to do with code organization. The Python port resolves those issues so we are adding it back into AFDKO to simplify distribution of our tools.)

PSAutoHint

A standalone version of AFDKO’s autohinter.

Building and running

This repository currently consists of a core autohinter written in C, a Python C extension providing an interface to it, and helper Python code.

To build the C extension:

python setup.py build

To install the C extension and the helper scripts globally:

pip install -r requirements.txt .

Alternatively to install them for the current user:

pip install -r requirements.txt --user .

The autohinter can be used by running:

psautohint

To build just the autohintexe binary:

python setup.py build_exe

Testing

We have a test suite that can be run with:

pytest

Debugging

For standard debugging, build with:

python setup.py build --debug

It is also possible to build a debug version with AddressSanitizer ("ASan") support (currently for Mac OS X only) with:

python setup.py build --asan
pip install .

Once it is installed, you can use the util/launch-asan.sh shell script to launch a Python process that invokes the ASan libraries needed for debugging. Attach Xcode the launched process, then execute code in the process that triggers memory usage problems and wait for ASan to do its magic.

NOTE: be sure to build and install psautohint as described above; using other techniques such as python setup.py install will cause a re-build without ASan and debug support, which won't work.

psautohint's People

Contributors

khaledhosny avatar josh-hadley avatar miguelsousa avatar readroberts avatar pyup-bot avatar anthrotype avatar cjchapman avatar renovate[bot] avatar schriftgestalt avatar kaydeearts avatar kontur avatar benkiel avatar moyogo avatar madig avatar codeman38 avatar adrientetar avatar holomorph avatar dependabot[bot] avatar jamesgk avatar skef avatar

Stargazers

Mark Douma 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.