Skip to content

Commit 8e9ac2d

Browse files
committed
Add some notes for tracking questions and issues along the way
1 parent e4c3c67 commit 8e9ac2d

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

py_limited_api.txt

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
2+
3+
-------------------------------------------------
4+
Temporary notes, do not commit in the final merge
5+
-------------------------------------------------
6+
7+
8+
New bdist_wheel docs including the --py-limited-api option:
9+
https://bitbucket.org/HexDecimal/wheel-fork/src/b25d28cc111f8d354e1b8d949a54ffb3c262dfce/docs/index.rst?fileviewer=file-view-default
10+
11+
PEP 384: https://www.python.org/dev/peps/pep-0384/
12+
13+
14+
* Can I get rid of wx.siplib and just add dependency on SIP from pypi? Yes, of
15+
course, but it would make using interim builds more difficult.
16+
17+
* Can I eliminate all uses of the restricted APIs (at least the buffer related
18+
things so far) and use equivalent APIs from siplib itself? If not then I'll
19+
probably have to separate out the incompatible stuff into my own API module
20+
like siplib (and could probably include siplib there if desired...)
21+
22+
* How to set the tags in the wheel filename? If bdist_wheel doesn't do it
23+
already then it looks like we can override a get_tag(self) method in the
24+
customization of the bdist_wheel class we already have...
25+
26+
For example, from py2exe's setup.py:
27+
28+
class my_bdist_wheel(bdist_wheel.bdist_wheel):
29+
"""We change the bdist_wheel command so that it creates a
30+
wheel-file compatible with CPython, 3.4, 3.5, and 3.6 only
31+
by setting the impl_tag to 'cp33.cp34.cp35.cp36'
32+
"""
33+
def get_tag(self):
34+
impl_tag, abi_tag, plat_tag = super().get_tag()
35+
return "cp33.cp34.cp35.cp36", abi_tag, plat_tag
36+
37+
38+
* The bdist_wheel docs say that --py-limited-api is ignored on Windows???
39+
40+
* The extension modules will need to have a different name, I think. Currently
41+
waf is controlling that. Do current versions of waf support py-limited-api
42+
or will something new need to be hacked into it?
43+
44+
* Check into what Extension(py_limited_api=True, ...) does in recent versions
45+
of setuptools.
46+
47+
48+
49+
50+
Issues discovered so far
51+
------------------------
52+
53+
* We WILL need a separate Python version-specific API module, siplib can give
54+
us lots of help, but doesn't cover everything
55+
56+
* all the PyFoo_GET_ITEM type of "faster" macros will need to be changed to
57+
their function call equivalents, meaning that our optimizations for those
58+
things will be undone.
59+
60+
* At least most of the new buffer APIs are not available in the limited API
61+
62+
* It appears that PyDateTime APIs are also not available
63+
64+
* We access elements of PyMethod and such in a few places, in the limited API
65+
those are opaque types.
66+
67+
* Ditto for sipSimpleWrapper
68+
69+
* There are a few things currently in wxpy_api like wxPyNoAppError that are
70+
expected to end up in the _core module.

0 commit comments

Comments
 (0)