diff --git a/Lib/fontTools/varLib/designspace.py b/Lib/fontTools/varLib/designspace.py
deleted file mode 100644
index 21de0270c..000000000
--- a/Lib/fontTools/varLib/designspace.py
+++ /dev/null
@@ -1,123 +0,0 @@
-"""Rudimentary support for loading MutatorMath .designspace files.
-
-DEPRECATED. Use ``fonttools.designspaceLib`` instead.
-"""
-from __future__ import print_function, division, absolute_import
-from fontTools.misc.py23 import *
-try:
- import xml.etree.cElementTree as ET
-except ImportError:
- import xml.etree.ElementTree as ET
-
-import warnings
-warnings.warn(
- "fontTools.varLib.designspace is deprecated. "
- "Use fontTools.designspaceLib instead.",
- DeprecationWarning,
-)
-
-__all__ = ['load', 'loads']
-
-namespaces = {'xml': '{http://www.w3.org/XML/1998/namespace}'}
-
-
-def _xml_parse_location(et):
- loc = {}
- for dim in et.find('location'):
- assert dim.tag == 'dimension'
- name = dim.attrib['name']
- value = float(dim.attrib['xvalue'])
- assert name not in loc
- loc[name] = value
- return loc
-
-
-def _load_item(et):
- item = dict(et.attrib)
- for element in et:
- if element.tag == 'location':
- value = _xml_parse_location(et)
- else:
- value = {}
- if 'copy' in element.attrib:
- value['copy'] = bool(int(element.attrib['copy']))
- # TODO load more?!
- item[element.tag] = value
- return item
-
-
-def _xml_parse_axis_or_map(element):
- dic = {}
- for name in element.attrib:
- if name in ['name', 'tag']:
- dic[name] = element.attrib[name]
- else:
- dic[name] = float(element.attrib[name])
- return dic
-
-
-def _load_axis(et):
- item = _xml_parse_axis_or_map(et)
- maps = []
- labelnames = {}
- for element in et:
- assert element.tag in ['labelname', 'map']
- if element.tag == 'labelname':
- lang = element.attrib["{0}lang".format(namespaces['xml'])]
- labelnames[lang] = element.text
- elif element.tag == 'map':
- maps.append(_xml_parse_axis_or_map(element))
- if labelnames:
- item['labelname'] = labelnames
- if maps:
- item['map'] = maps
- return item
-
-
-def _load(et):
- designspace = {}
- ds = et.getroot()
-
- axes_element = ds.find('axes')
- if axes_element is not None:
- axes = []
- for et in axes_element:
- axes.append(_load_axis(et))
- designspace['axes'] = axes
-
- sources_element = ds.find('sources')
- if sources_element is not None:
- sources = []
- for et in sources_element:
- sources.append(_load_item(et))
- designspace['sources'] = sources
-
- instances_element = ds.find('instances')
- if instances_element is not None:
- instances = []
- for et in instances_element:
- instances.append(_load_item(et))
- designspace['instances'] = instances
-
- return designspace
-
-
-def load(filename):
- """Load designspace from a file name or object.
- Returns a dictionary containing three (optional) items:
- - list of "axes"
- - list of "sources" (aka masters)
- - list of "instances"
- """
- return _load(ET.parse(filename))
-
-
-def loads(string):
- """Load designspace from a string."""
- return _load(ET.fromstring(string))
-
-if __name__ == '__main__':
- import sys
- from pprint import pprint
- for f in sys.argv[1:]:
- pprint(load(f))
diff --git a/Tests/varLib/data/Designspace.designspace b/Tests/varLib/data/Designspace.designspace
deleted file mode 100644
index df1036eab..000000000
--- a/Tests/varLib/data/Designspace.designspace
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- Contrast
- Kontrast
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Tests/varLib/data/Designspace2.designspace b/Tests/varLib/data/Designspace2.designspace
deleted file mode 100644
index ac7d403f7..000000000
--- a/Tests/varLib/data/Designspace2.designspace
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/Tests/varLib/designspace_test.py b/Tests/varLib/designspace_test.py
deleted file mode 100644
index fbdaab37a..000000000
--- a/Tests/varLib/designspace_test.py
+++ /dev/null
@@ -1,69 +0,0 @@
-from __future__ import print_function, division, absolute_import
-from __future__ import unicode_literals
-from fontTools.varLib import designspace
-import os
-import unittest
-
-
-class DesignspaceTest(unittest.TestCase):
- def test_load(self):
- self.maxDiff = None
- self.assertEqual(
- designspace.load(_getpath("Designspace.designspace")),
-
- {'sources':
- [{'location': {'weight': 0.0},
- 'groups': {'copy': True},
- 'filename': 'DesignspaceTest-Light.ufo',
- 'info': {'copy': True},
- 'name': 'master_1',
- 'lib': {'copy': True}},
- {'location': {'weight': 1.0},
- 'name': 'master_2',
- 'filename': 'DesignspaceTest-Bold.ufo'}],
-
- 'instances':
- [{'location': {'weight': 0.5},
- 'familyname': 'DesignspaceTest',
- 'filename': 'instance/DesignspaceTest-Medium.ufo',
- 'kerning': {},
- 'info': {},
- 'stylename': 'Medium'}],
-
- 'axes':
- [{'name': 'weight',
- 'map': [{'input': 0.0, 'output': 10.0},
- {'input': 401.0, 'output': 66.0},
- {'input': 1000.0, 'output': 990.0}],
- 'tag': 'wght',
- 'maximum': 1000.0,
- 'minimum': 0.0,
- 'default': 0.0},
- {'maximum': 1000.0,
- 'default': 250.0,
- 'minimum': 0.0,
- 'name': 'width',
- 'tag': 'wdth'},
- {'name': 'contrast',
- 'tag': 'cntr',
- 'maximum': 100.0,
- 'minimum': 0.0,
- 'default': 0.0,
- 'labelname': {'de': 'Kontrast', 'en': 'Contrast'}}]
- }
- )
-
- def test_load2(self):
- self.assertEqual(
- designspace.load(_getpath("Designspace2.designspace")),
- {'sources': [], 'instances': [{}]})
-
-
-def _getpath(testfile):
- path, _ = os.path.split(__file__)
- return os.path.join(path, "data", testfile)
-
-
-if __name__ == "__main__":
- import sys
- sys.exit(unittest.main())