diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 0000000..8a18954
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,8 @@
+[metadata]
+license_files = COPYING
+
+[bdist_wheel]
+universal=1
+
+[aliases]
+test=pytest
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000..da4df12
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,26 @@
+import setuptools
+
+with open("README.md", "r") as fh:
+    long_description = fh.read()
+
+setuptools.setup(
+    name="vtr_xml_utils",
+    version="0.0.1",
+    author="SymbiFlow Authors",
+    author_email="symbiflow@lists.librecores.org",
+    description="A set of Python utilities for working with Verilog to \
+                 Routing XML files",
+    long_description=long_description,
+    long_description_content_type="text/markdown",
+    url="https://github.com/SymbiFlow/vtr-xml-utils",
+    packages=setuptools.find_packages(),
+    install_requires=['lxml'],
+    setup_requires=["pytest-runner"],
+    tests_require=["pytest"],
+    include_package_data=True,
+    classifiers=[
+        "Programming Language :: Python :: 3",
+        "License :: OSI Approved :: ISC License",
+        "Operating System :: OS Independent",
+    ],
+)
diff --git a/vtr_xml_utils/__init__.py b/vtr_xml_utils/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/vtr_xml_utils/__init__.py
diff --git a/vtr_xml_utils/convert.py b/vtr_xml_utils/convert.py
new file mode 100644
index 0000000..d751651
--- /dev/null
+++ b/vtr_xml_utils/convert.py
@@ -0,0 +1,48 @@
+#!/usr/bin/env python3
+import lxml.etree as ET
+import pkg_resources
+import os
+from pathlib import Path
+
+
+def get_filenames_containing(pattern, rootdir):
+    return list(set([str(f) for f in
+                     Path(os.path.dirname(rootdir)).rglob(pattern)]))
+
+
+def vtr_stylize_xml(xmlfilename: str):
+    """Applies a set of stylesheet rules to the input model or PB type XML file.
+    It also includes the XInclude blocks in the final output.
+
+    Parameters
+    ----------
+    xmlfilename : str
+        The path to the input XML file.
+
+    Returns
+    -------
+    str
+        A string containing formatted XML file, with added parts from the
+        XInclude statements in the original XML.
+    """
+    xslresourcesroot = pkg_resources.resource_filename('vtr_xml_utils',
+                                                       'resources')
+    xslresourcesroot += '/'
+    converters = [
+        'identity.xsl',
+        'convert-pb_type-attributes.xsl',
+        'convert-port-tag.xsl',
+        'convert-prefix-port.xsl',
+        'pack-patterns.xsl',
+        'remove-duplicate-models.xsl',
+        'attribute-fixes.xsl',
+        'sort-tags.xsl']
+    parser = ET.XMLParser(remove_comments=True)
+    etdata = ET.parse(xmlfilename, parser)
+    etdata.xinclude()
+    for c in converters:
+        xslt = ET.parse(xslresourcesroot + c, parser)
+        transform = ET.XSLT(xslt)
+        etdata = transform(etdata)
+    return '<?xml version="1.0"?>\n' \
+           + ET.tostring(etdata, pretty_print=True).decode('utf-8')
