summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Shawcroft <scott@adafruit.com>2019-06-04 11:39:03 -0700
committerGitHub <noreply@github.com>2019-06-04 11:39:03 -0700
commitc5a4e19d6f76a09cba73149d5e3d4548da320899 (patch)
tree42d4d2d202fb156b7f6f59b9489464cc28800e0f
parentbcda5e133d0f4c13265cc927a4e9de9a77b187c6 (diff)
parente8521c83797f0e54dca4ebc4750224c84a31457e (diff)
Merge pull request #1915 from jreese/rst2pyi
Use rst2pyi to generate type stubs and package
-rw-r--r--.gitignore3
-rw-r--r--Makefile14
-rw-r--r--requirements-dev.txt1
-rw-r--r--setup.py22
4 files changed, 39 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index 69f71847b..3e5bd2830 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,6 +12,8 @@
# Packages
############
+dist/
+*.egg-info
# Logs and Databases
######################
@@ -25,6 +27,7 @@
######################
build/
bin/
+circuitpython-stubs/
# Test failure outputs
######################
diff --git a/Makefile b/Makefile
index 5d5d99fb8..09fbf9c1a 100644
--- a/Makefile
+++ b/Makefile
@@ -17,6 +17,13 @@ CONFDIR = .
FORCE = -E
VERBOSE = -v
+# path to generated type stubs
+STUBDIR = circuitpython-stubs
+# Run "make VALIDATE= stubs" to avoid validating generated stub files
+VALIDATE = -v
+# path to pypi source distributions
+DISTDIR = dist
+
# Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the
# full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the
# executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
@@ -31,7 +38,7 @@ I18NSPHINXOPTS = $(BASEOPTS)
TRANSLATE_SOURCES = extmod lib main.c ports/atmel-samd ports/nrf py shared-bindings shared-module supervisor
-.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
+.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext stubs
help:
@echo "Please use \`make <target>' where <target> is one of"
@@ -60,6 +67,7 @@ help:
clean:
rm -rf $(BUILDDIR)/*
+ rm -rf $(STUBDIR) $(DISTDIR) *.egg-info
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@@ -203,3 +211,7 @@ translate: locale/circuitpython.pot
check-translate: locale/circuitpython.pot $(wildcard locale/*.po)
$(PYTHON) tools/check_translations.py $^
+
+stubs:
+ rst2pyi $(VALIDATE) shared-bindings/ $(STUBDIR)
+ python setup.py sdist
diff --git a/requirements-dev.txt b/requirements-dev.txt
new file mode 100644
index 000000000..7cd491ade
--- /dev/null
+++ b/requirements-dev.txt
@@ -0,0 +1 @@
+rst2pyi>=0.3.0
diff --git a/setup.py b/setup.py
new file mode 100644
index 000000000..1e0d81da3
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,22 @@
+from datetime import datetime
+from setuptools import setup
+from pathlib import Path
+
+stub_root = Path("circuitpython-stubs")
+stubs = [p.relative_to(stub_root).as_posix() for p in stub_root.glob("*.pyi")]
+
+now = datetime.utcnow()
+version = now.strftime("%Y.%m.%d")
+
+setup(
+ name="circuitpython-stubs",
+ description="PEP 561 type stubs for CircuitPython",
+ url="https://github.com/adafruit/circuitpython",
+ maintainer="CircuitPythonistas",
+ author_email="circuitpython@adafruit.com",
+ version=version,
+ license="MIT",
+ package_data={"circuitpython-stubs": stubs},
+ packages=["circuitpython-stubs"],
+ setup_requires=["setuptools>=38.6.0"],
+)