The recent `flake8==3.8.1` update reported new errors:
```
kivy_ios/toolchain.py:292:31: E741 ambiguous variable name 'l'
...
```
Also note the entire `xcassets.py` file is being ignored as we can't
seem to use one ignore for the entire list anymore. I'm not sure if
this is a regression or a new feature from flake8.
Note this is an early version working on the `x86_64` simulator.
It wasn't tested on an arm device.
Requires setuptools to be installed:
```sh
python toolchain.py pip install setuptools
```
Tested with main.py:
```python
import netifaces
print("interfaces:", netifaces.interfaces())
```
And produced the following output in the `x86_64` simulator:
```
Available orientation: KIVY_ORIENTATION=LandscapeLeft LandscapeRight Portrait PortraitUpsideDown
Initializing python
Running main.py: /Users/vagrant/Library/Developer/CoreSimulator/Devices/.../Application/.../testnetifaces.app/YourApp/main.pyc
interfaces: ['lo0', 'gif0', 'stf0', 'en0', 'utun0', 'utun1']
Leaving
```
Also removes try/except on `pbxproj` imports. This is now part of
the `setup.py` dependencies and installed automatically.
Users bypassing the `setup.py` should know what they're doing, hence
they should be able to read an `ImportError` exception.
Drops system, host and target Python 2 support.
Note a lot of recipes were having hardcoded reference to
`lib/python2.7/site-packages/` directory. I suspect most
of theses were not working, but the reference has been updated
to `lib/python3.7/site-packages/` following the same hardcoding
pattern. In follow up work we would do a walkthrough each recipes
to fix at least compilation time issues.
Also note the `rebuild_updated_recipes.py` is expected to fail as
this is touching many recipes including recipes that were already
broken.
- shutil.rmtree() with ignore_errors=True
- os.makedirs() with exist_ok=True
- str.endswith() using extension list
Also moves `sh` with other imports and removes unnecessary super() call
Explanation: Apple forbids some symbols that Numpy is linked against (ccopy, dcopy, scopy, zcopy and xerbla). Compilation and tests work fine but the App Store complains and prevents uploading such builds.
This patch aliases the culprits to the public, allowed method names, allowing the linking to proceed as before and the resulting binary to be accepted by the App Store.
- updates all imports to prefix kivy_ios
- adds basic `setup.py` file
- adds a simple `toolchain.py` to the root folder for compat
Makes it possible to install kivy-ios from PyPI:
```
pip install kivy-ios
toolchain --help
```
Note the `rebuild_updated_recipes.py` is expected to fail as we
moved all the recipes.
This is a working, but unperfect iteration that come with limitations
we would address in subsequent pull requests, such as:
- the new usage is not yet documented
- CI is not testing the source distribution creation and install
- Continuous Delivery to PyPI is not in place
- `toolchain` binary is a bit too generic name
- we're still vendoring things under `tools/`