Adds script for verifying font files
This commit is contained in:
parent
12076e07b1
commit
1f684610cd
13 changed files with 1406 additions and 0 deletions
45
misc/pylib/extractor/__init__.py
Executable file
45
misc/pylib/extractor/__init__.py
Executable file
|
|
@ -0,0 +1,45 @@
|
|||
from extractor.exceptions import ExtractorError
|
||||
from extractor.formats.opentype import isOpenType, extractFontFromOpenType
|
||||
from extractor.formats.woff import isWOFF, extractFontFromWOFF
|
||||
from extractor.formats.type1 import isType1, extractFontFromType1
|
||||
from extractor.formats.ttx import isTTX, extractFontFromTTX
|
||||
|
||||
|
||||
__version__ = "0.2.1.dev0"
|
||||
|
||||
_extractFunctions = dict(
|
||||
OTF=extractFontFromOpenType,
|
||||
Type1=extractFontFromType1,
|
||||
WOFF=extractFontFromWOFF,
|
||||
ttx=extractFontFromTTX,
|
||||
)
|
||||
|
||||
def extractFormat(pathOrFile):
|
||||
if isType1(pathOrFile):
|
||||
return "Type1"
|
||||
elif isWOFF(pathOrFile):
|
||||
return "WOFF"
|
||||
elif isOpenType(pathOrFile):
|
||||
return "OTF"
|
||||
elif isTTX(pathOrFile):
|
||||
return "ttx"
|
||||
return None
|
||||
|
||||
def extractUFO(pathOrFile, destination, doGlyphs=True, doInfo=True, doKerning=True, format=None, customFunctions={}):
|
||||
if format is None:
|
||||
format = extractFormat(pathOrFile)
|
||||
if format not in _extractFunctions:
|
||||
raise ExtractorError("Unknown file format.")
|
||||
func = _extractFunctions[format]
|
||||
# wrap the extraction in a try: except: so that
|
||||
# callers don't need to worry about lower level
|
||||
# (fontTools, etc.) errors. if an error
|
||||
# occurs, print the traceback for debugging and
|
||||
# raise an ExtractorError.
|
||||
try:
|
||||
func(pathOrFile, destination, doGlyphs=doGlyphs, doInfo=doInfo, doKerning=doKerning, customFunctions=customFunctions.get(format, []))
|
||||
except:
|
||||
import sys
|
||||
import traceback
|
||||
traceback.print_exc(file=sys.stdout)
|
||||
raise ExtractorError("There was an error reading the %s file." % format)
|
||||
Reference in a new issue