Py3AMF 0.8.9__tar.gz → 0.9.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {Py3AMF-0.8.9 → py3amf-0.9.0}/CHANGES.txt +42 -1
- {Py3AMF-0.8.9 → py3amf-0.9.0}/MANIFEST.in +3 -1
- py3amf-0.9.0/PKG-INFO +146 -0
- py3amf-0.9.0/Py3AMF.egg-info/PKG-INFO +146 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/Py3AMF.egg-info/SOURCES.txt +4 -5
- py3amf-0.9.0/Py3AMF.egg-info/requires.txt +4 -0
- py3amf-0.9.0/README.rst +107 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/cpyamf/amf0.pyx +55 -34
- {Py3AMF-0.8.9 → py3amf-0.9.0}/cpyamf/amf3.pyx +61 -35
- {Py3AMF-0.8.9 → py3amf-0.9.0}/cpyamf/codec.pxd +3 -2
- {Py3AMF-0.8.9 → py3amf-0.9.0}/cpyamf/codec.pyx +19 -16
- {Py3AMF-0.8.9 → py3amf-0.9.0}/cpyamf/util.pyx +23 -21
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/about.rst +5 -7
- py3amf-0.9.0/doc/architecture/adapters.rst +58 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/attributecontrol.rst +12 -11
- py3amf-0.9.0/doc/architecture/classmapping.rst +89 -0
- py3amf-0.9.0/doc/architecture/future.rst +20 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/overview.rst +4 -14
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/typemap.rst +1 -5
- py3amf-0.9.0/doc/bugs.rst +37 -0
- py3amf-0.9.0/doc/community/download.rst +40 -0
- py3amf-0.9.0/doc/community/irc.rst +9 -0
- py3amf-0.9.0/doc/community/mailinglist.rst +9 -0
- py3amf-0.9.0/doc/community/maintainers.rst +28 -0
- py3amf-0.9.0/doc/community/team.rst +8 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/conf.py +25 -18
- py3amf-0.9.0/doc/html/tutorials.html +66 -0
- py3amf-0.9.0/doc/install.rst +126 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/index.rst +0 -7
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/apache/index.rst +0 -1
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/index.rst +0 -2
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/_version.py +1 -1
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/test_sqlalchemy.py +2 -1
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/amf3.py +53 -7
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/codec.py +1 -1
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/remoting/__init__.py +0 -4
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/remoting/gateway/twisted.py +5 -5
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/__init__.py +71 -17
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/gateway/test_django.py +12 -10
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/gateway/test_twisted.py +69 -20
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/remoting/test_remoteobject.py +1 -1
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_alias.py +10 -10
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_amf3.py +6 -4
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_basic.py +4 -4
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_gateway.py +2 -2
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_remoting.py +3 -3
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_sol.py +14 -14
- py3amf-0.9.0/pyamf/tests/test_suite.py +300 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_util.py +4 -4
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/util/__init__.py +1 -1
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/util/imports.py +90 -1
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/util/pure.py +33 -1
- py3amf-0.9.0/pyproject.toml +3 -0
- py3amf-0.9.0/requirements.txt +2 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/setup.cfg +1 -2
- {Py3AMF-0.8.9 → py3amf-0.9.0}/setup.py +15 -14
- {Py3AMF-0.8.9 → py3amf-0.9.0}/setupinfo.py +20 -83
- py3amf-0.9.0/test-requirements.txt +4 -0
- Py3AMF-0.8.9/PKG-INFO +0 -100
- Py3AMF-0.8.9/Py3AMF.egg-info/PKG-INFO +0 -100
- Py3AMF-0.8.9/Py3AMF.egg-info/requires.txt +0 -22
- Py3AMF-0.8.9/README.md +0 -72
- Py3AMF-0.8.9/cpyamf/amf0.c +0 -12372
- Py3AMF-0.8.9/cpyamf/amf3.c +0 -18935
- Py3AMF-0.8.9/cpyamf/codec.c +0 -16797
- Py3AMF-0.8.9/cpyamf/util.c +0 -1
- Py3AMF-0.8.9/doc/architecture/adapters.rst +0 -77
- Py3AMF-0.8.9/doc/architecture/classmapping.rst +0 -75
- Py3AMF-0.8.9/doc/architecture/future.rst +0 -11
- Py3AMF-0.8.9/doc/bugs.rst +0 -55
- Py3AMF-0.8.9/doc/community/download.rst +0 -45
- Py3AMF-0.8.9/doc/community/irc.rst +0 -19
- Py3AMF-0.8.9/doc/community/mailinglist.rst +0 -77
- Py3AMF-0.8.9/doc/community/maintainers.rst +0 -32
- Py3AMF-0.8.9/doc/community/team.rst +0 -11
- Py3AMF-0.8.9/doc/html/tutorials.html +0 -121
- Py3AMF-0.8.9/doc/install.rst +0 -201
- Py3AMF-0.8.9/requirements.txt +0 -1
- {Py3AMF-0.8.9 → py3amf-0.9.0}/LICENSE.txt +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/Py3AMF.egg-info/dependency_links.txt +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/Py3AMF.egg-info/not-zip-safe +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/Py3AMF.egg-info/top_level.txt +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/cpyamf/__init__.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/cpyamf/amf0.pxd +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/cpyamf/amf3.pxd +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/cpyamf/util.pxd +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/Makefile +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/adapters/myadapter.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/adapters/mymodule.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/attribute-control/iexternalizable.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/attribute-control/models1.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/attribute-control/models2.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/attribute-control/models3.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/attribute-control/proxied-attr.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/attribute-control/server.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/attribute-control/static-attr.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/attribute-control/synonym.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/attribute-control/whitelist.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/class-mapping/alias-decorator.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/class-mapping/example-classes.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/class-mapping/example-classes.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/index.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/community/index.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/community/thanks.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/contents.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/html/defindex.html +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/html/layout.html +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/html/static/logo.png +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/html/static/pyamf.ico +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/license.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/make.bat +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/addressbook.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/bytearray.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/geoip.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/guestbook.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/images/addressbook_example.png +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/images/binarysocket.png +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/images/bytearrayexample.jpg +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/images/geoip-example.jpg +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/images/guestbook-example.jpg +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/images/ohloh-api-example.png +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/images/ohloh_logo.png +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/images/recordset.jpg +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/images/shellexample.png +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/images/udp-options.png +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/images/udp-overview.png +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/images/udp-resize.png +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/ohloh.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/recordset.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/shell.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/simple.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/socket.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/udp.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/apache/images/mod_python-logo.gif +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/apache/mod_python.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/apache/mod_wsgi.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/Readme.txt +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/.actionScriptProperties +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/.flexProperties +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/.project +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/build.xml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/deploy/index.html +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/src/org/pyamf/examples/addressbook/AddressBook.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/src/org/pyamf/examples/addressbook/components/EditEmailDlg.mxml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/src/org/pyamf/examples/addressbook/components/EditEmailDlgClass.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/src/org/pyamf/examples/addressbook/components/EditPhoneDlg.mxml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/src/org/pyamf/examples/addressbook/components/EditPhoneDlgClass.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/src/org/pyamf/examples/addressbook/components/EditUserDlg.mxml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/src/org/pyamf/examples/addressbook/components/EditUserDlgClass.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/src/org/pyamf/examples/addressbook/models/Email.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/src/org/pyamf/examples/addressbook/models/PhoneNumber.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/src/org/pyamf/examples/addressbook/models/SAObject.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/src/org/pyamf/examples/addressbook/models/User.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/src/sa_example.mxml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/python/client.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/python/controller.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/python/crossdomain.xml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/python/models.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/python/persistent.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/python/server.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/python/server.wsgi +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/flex/.actionScriptProperties +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/flex/.flexProperties +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/flex/.project +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/flex/build.xml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/flex/deploy/index.html +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/flex/src/bytearray.mxml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/flex/src/org/pyamf/examples/bytearray/ByteArrayExample.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/flex/src/org/pyamf/examples/bytearray/Snapshot.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/python/__init__.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/python/client.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/python/crossdomain.xml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/python/gateway/__init__.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/python/gateway/gateway.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/python/gateway/images/django-logo.jpg +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/python/gateway/models.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/python/gateway/views.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/python/manage.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/python/server.wsgi +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/python/settings.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/python/urls.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/readme.txt +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/geoip/flex/.actionScriptProperties +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/geoip/flex/.flexProperties +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/geoip/flex/.project +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/geoip/flex/build.xml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/geoip/flex/deploy/index.html +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/geoip/flex/src/geoip.mxml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/geoip/flex/src/org/pyamf/examples/geoip/GeoipExample.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/geoip/flex/src/org/pyamf/examples/geoip/vo/GeoInfo.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/geoip/python/client.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/geoip/python/server.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/geoip/python/server.wsgi +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/geoip/readme.txt +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/.actionScriptProperties +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/.flexProperties +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/db/schema.sql +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/flex/build.xml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/flex/deploy/index.html +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/flex/src/assets/main.css +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/flex/src/guestbook.mxml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/flex/src/org/pyamf/examples/guestbook/GuestbookExample.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/flex/src/org/pyamf/examples/guestbook/components/MessageBox.mxml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/flex/src/org/pyamf/examples/guestbook/components/SubmitBox.mxml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/flex/src/org/pyamf/examples/guestbook/events/SubmitEvent.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/flex/src/org/pyamf/examples/guestbook/vo/Message.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/python/client.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/python/crossdomain.xml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/python/guestbook.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/python/guestbook.tac +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/python/server.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/python/settings.cfg +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/readme.txt +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/ohloh/Readme.txt +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/ohloh/flex/.actionScriptProperties +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/ohloh/flex/.flexProperties +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/ohloh/flex/.project +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/ohloh/flex/build.xml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/ohloh/flex/deploy/index.html +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/ohloh/flex/src/OhlohApi.mxml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/ohloh/flex/src/org/pyamf/examples/ohloh/ApiExample.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/ohloh/python/client.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/ohloh/python/ohloh.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/ohloh/python/server.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/ohloh/python/server.wsgi +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/recordset/Readme.txt +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/recordset/flash/deploy/index.html +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/recordset/flash/src/SoftwareInfoClass.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/recordset/flash/src/SoftwareInfoExample.fla +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/recordset/python/client.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/recordset/python/db.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/recordset/python/gateway.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/recordset/python/gateway.wsgi +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/recordset/python/init.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/Readme.txt +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/flex/.actionScriptProperties +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/flex/.flexProperties +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/flex/.project +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/flex/build.xml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/flex/deploy/index.html +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/flex/src/org/pyamf/examples/sharedobject/SharedObjectExample.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/flex/src/org/pyamf/examples/sharedobject/vo/App.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/flex/src/org/pyamf/examples/sharedobject/vo/SharedObject.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/flex/src/sharedobject.mxml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/flex/src/style.css +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/python/client.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/python/crossdomain.xml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/python/server.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/python/service.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/flex/.actionScriptProperties +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/flex/.flexProperties +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/flex/.project +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/flex/assets/main.css +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/flex/build.xml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/flex/deploy/index.html +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/flex/src/org/pyamf/examples/shell/Shell.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/flex/src/shell.mxml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/python/__init__.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/python/client.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/python/gateway.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/python/manage.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/python/settings.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/python/urls.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/readme.txt +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/simple/Readme.txt +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/simple/flex/build.xml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/simple/flex/deploy/index.html +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/simple/flex/src/org/pyamf/examples/simple/SimpleView.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/simple/flex/src/org/pyamf/examples/simple/User.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/simple/flex/src/simple.mxml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/simple/python/client.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/simple/python/server.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/flex/.actionScriptProperties +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/flex/.flexProperties +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/flex/.project +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/flex/build.xml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/flex/deploy/index.html +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/flex/src/org/pyamf/examples/socket/PythonSocket.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/flex/src/org/pyamf/examples/socket/SocketExample.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/flex/src/socket.mxml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/python/client.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/python/server.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/python/socket-policy.xml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/python/timer.tac +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/readme.txt +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/udp/air/.actionScriptProperties +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/udp/air/.flexProperties +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/udp/air/.project +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/udp/air/deploy/udp.air +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/udp/air/src/UDPExample-app.xml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/udp/air/src/UDPExample.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/udp/air/src/org/pyamf/examples/air/udp/events/LogEvent.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/udp/air/src/org/pyamf/examples/air/udp/net/NetworkConnection.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/udp/air/src/org/pyamf/examples/air/udp/net/UDPConnection.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/udp/air/src/org/pyamf/examples/air/udp/view/TextWindow.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/udp/air/src/org/pyamf/examples/air/udp/vo/HelloWorld.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/udp/python/server.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/udp/readme.txt +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/apache/client.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/apache/mod_python.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/apache/mod_python.vhost +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/apache/mod_wsgi.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/apache/mod_wsgi.vhost +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/apache/myApp.wsgi +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/client.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/Readme.txt +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/app.yaml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/assets/appengine-powered.gif +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/assets/logo.jpg +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/assets/mootools.js +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/assets/python-powered.png +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/assets/swfobject.js +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/crossdomain.xml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/echo/__init__.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/echo/gateway.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/echo/index.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/index.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/manage.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/settings.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/shell/__init__.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/shell/gateway.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/shell/index.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/__init__.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/decoder.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/encoder.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/jsonfilter.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/scanner.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/__init__.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/test_decode.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/test_default.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/test_dump.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/test_fail.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/test_float.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/test_indent.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/test_pass1.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/test_pass2.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/test_pass3.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/test_recursion.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/test_separators.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/test_unicode.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/templates/base.html +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/templates/index.html +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/templates/swf.html +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/urls.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/flash.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/webapp.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/wsgi.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/cherrypy/client.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/cherrypy/crossdomain.xml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/cherrypy/gateway.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/django/amfgateway.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/django/client.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/pylons/crossdomain.xml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/pylons/pylons_client.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/pylons/pylons_gateway.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/pylons/pyramid_client.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/pylons/pyramid_gateway.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/turbogears/app.mxml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/turbogears/mygateway.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/twisted/classic.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/twisted/client.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/twisted/preferred.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/twisted/stackless.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/twisted/wsgi.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/werkzeug/client.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/werkzeug/server.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/Readme.txt +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/as2/authenticate.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/as2/authenticate.fla +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/as2/index.html +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/as3/Authentication.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/as3/authentication.fla +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/as3/index.html +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/flex/.actionScriptProperties +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/flex/.flexProperties +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/flex/.project +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/flex/build.xml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/flex/deploy/index.html +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/flex/src/authentication.mxml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/ssa1/main.asc +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/python/client.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/python/server.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/python/server.wsgi +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/client/amf_version.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/client/authentication.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/client/basic.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/client/exception.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/client/headers.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/client/logger.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/client/referer.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/client/user_agent.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/Readme.txt +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flash/as1/deploy/index.html +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flash/as1/src/helloworld.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flash/as1/src/helloworld.fla +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flash/as2/deploy/index.html +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flash/as2/src/helloworld.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flash/as2/src/helloworld.fla +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flash/as3/deploy/index.html +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flash/as3/src/HelloWorld.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flash/as3/src/helloworld.fla +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flash/ssa1/main.asc +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flex/build.xml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flex/deploy/index.html +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flex/remoteobject/build.xml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flex/remoteobject/deploy/index.html +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flex/remoteobject/src/helloworld.mxml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flex/src/helloworld.mxml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/python/client.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/python/crossdomain.xml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/python/server.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/python/server.wsgi +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/remoteobject/remoteobject_test.as +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/jython/ant/embedded/build.xml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/jython/ant/embedded/src/java/org/pyamf/HelloWorld.java +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/jython/ant/embedded/src/python/client.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/jython/ant/embedded/src/python/server.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/jython/client.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/jython/demo_app.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/jython/swing/Readme.txt +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/jython/swing/client.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/jython/swing/gui.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/jython/web.xml +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/appengine.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/cherrypy.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/django.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/images/appengine-logo.gif +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/images/cherrypy-logo.jpg +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/images/django-logo.png +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/images/pylons-logo.png +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/images/sqlalchemy-logo.gif +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/images/turbogears-logo.png +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/index.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/pylons.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/sqlalchemy.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/stackless.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/turbogears.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/twisted.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/web2py.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/werkzeug.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/authentication/as2.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/authentication/as3.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/authentication/flex.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/authentication/index.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/authentication/ssa1.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/client.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/helloworld/as1.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/helloworld/as2.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/helloworld/as3.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/helloworld/flex.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/helloworld/index.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/helloworld/ssa1.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/index.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/remoteobject.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/sharedobject.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/jython/ant.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/jython/images/ant-logo.gif +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/jython/images/jython-logo.png +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/jython/images/modjy-pyamf.png +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/jython/images/swing-example.png +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/jython/index.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/jython/modjy.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/jython/swing.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/whatsnew/0.5.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/whatsnew/0.6.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/whatsnew/index.rst +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/__init__.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/__init__.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_array.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_collections.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_decimal.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_django_contrib_auth_models.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_django_db_models_base.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_django_db_models_fields.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_django_db_models_query.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_django_utils_translation.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_elixir.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_google_appengine_api_datastore_types.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_google_appengine_ext_blobstore.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_google_appengine_ext_db.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_google_appengine_ext_ndb.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_sets.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_sqlalchemy_orm.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_sqlalchemy_orm_collections.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_weakref.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/gae_base.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/models.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/__init__.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/django_app/__init__.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/django_app/adapters/__init__.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/django_app/adapters/models.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/django_app/settings.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/google/__init__.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/google/_ndb_models.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/google/_xdb_models.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/google/test_blobstore.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/google/test_datastore_types.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/google/test_ndb.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/google/test_xdb.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/test_array.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/test_collections.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/test_django.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/test_elixir.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/test_weakref.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/util.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/alias.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/amf0.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/flex/__init__.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/flex/data.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/flex/messaging.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/python.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/remoting/amf0.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/remoting/amf3.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/remoting/client/__init__.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/remoting/gateway/__init__.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/remoting/gateway/django.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/remoting/gateway/google.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/remoting/gateway/wsgi.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/sol.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/gateway/__init__.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/gateway/test_google.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/gateway/test_wsgi.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/imports/spam.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/modules/__init__.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/modules/test_decimal.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/modules/test_sets.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/remoting/__init__.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/remoting/test_amf0.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/remoting/test_client.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_adapters.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_adapters_util.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_amf0.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_codec.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_flex.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_flex_messaging.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_imports.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_versions.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_xml.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/util.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/versions.py +0 -0
- {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/xml.py +0 -0
|
@@ -2,9 +2,50 @@ Changelog
|
|
|
2
2
|
=========
|
|
3
3
|
|
|
4
4
|
This document contains information about the changes between the different
|
|
5
|
-
versions of
|
|
5
|
+
versions of Py3AMF.
|
|
6
6
|
|
|
7
7
|
.. contents::
|
|
8
|
+
0.9.0 (2026-07-03)
|
|
9
|
+
------------------
|
|
10
|
+
- Test CPython 3.11 through 3.14 while keeping installation open for older
|
|
11
|
+
Python 3 versions where possible.
|
|
12
|
+
- Keep AMF0, AMF3, core remoting, the WSGI gateway, and the pure Python
|
|
13
|
+
runtime path as the supported 0.9.0 surface.
|
|
14
|
+
- Keep ``pyamf.adapters`` helper modules available, while removing legacy
|
|
15
|
+
framework adapter and gateway tests from the default suite.
|
|
16
|
+
- Drop official support for Jython and Cython extension builds. Existing
|
|
17
|
+
Cython sources remain in the source tree for compatibility and reference,
|
|
18
|
+
but Cython is no longer installed as a development dependency and extension
|
|
19
|
+
builds are disabled during installation.
|
|
20
|
+
- Drop official support for Twisted, Django, and Google App Engine gateway
|
|
21
|
+
integrations.
|
|
22
|
+
- Drop official support for Django, SQLAlchemy, Elixir, and Google App Engine
|
|
23
|
+
adapter integrations. Existing adapter modules remain available as helper
|
|
24
|
+
and legacy modules, but framework-specific object conversion should happen
|
|
25
|
+
at the application layer.
|
|
26
|
+
- Split runtime and full test dependencies into ``requirements.txt`` and
|
|
27
|
+
``test-requirements.txt``.
|
|
28
|
+
- Remove deprecated setuptools ``test_suite`` and ``tests_require`` metadata,
|
|
29
|
+
and remove the deprecated license classifier.
|
|
30
|
+
- Add PEP 517 build metadata and fix source distribution metadata so runtime
|
|
31
|
+
dependencies are installed correctly from both wheels and sdists.
|
|
32
|
+
- Add GitHub Actions coverage for the supported CPython 3.11 through 3.14
|
|
33
|
+
test matrix.
|
|
34
|
+
- Refresh installation, architecture, community, and tutorial documentation to
|
|
35
|
+
advertise only the supported 0.9.0 runtime surface.
|
|
36
|
+
|
|
37
|
+
0.8.12 (2024-01-23)
|
|
38
|
+
----------------
|
|
39
|
+
- Support dictionary
|
|
40
|
+
|
|
41
|
+
0.8.11 (2022-02-25)
|
|
42
|
+
----------------
|
|
43
|
+
- Change str to binary
|
|
44
|
+
- Fix syntax errors
|
|
45
|
+
|
|
46
|
+
0.8.10 (2020-01-10)
|
|
47
|
+
----------------
|
|
48
|
+
- Support Python 3.7 and 3.8
|
|
8
49
|
|
|
9
50
|
0.8.9 (2018-07-18)
|
|
10
51
|
----------------
|
py3amf-0.9.0/PKG-INFO
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: Py3AMF
|
|
3
|
+
Version: 0.9.0
|
|
4
|
+
Summary: AMF support for Python
|
|
5
|
+
Home-page: https://github.com/StdCarrot/Py3AMF
|
|
6
|
+
Author: The Py3AMF Project
|
|
7
|
+
Author-email: yhbu@stdc.so
|
|
8
|
+
License: MIT License
|
|
9
|
+
Keywords: python3 amf amf0 amf3 flex flash remoting rpc http flashplayer air bytearray objectproxy arraycollection recordset actionscript decoder encoder gateway wsgi remoteobject sharedobject lso sol
|
|
10
|
+
Classifier: Intended Audience :: Developers
|
|
11
|
+
Classifier: Intended Audience :: Information Technology
|
|
12
|
+
Classifier: Natural Language :: English
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Programming Language :: Python
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
19
|
+
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
|
|
20
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
21
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
22
|
+
Description-Content-Type: text/x-rst
|
|
23
|
+
License-File: LICENSE.txt
|
|
24
|
+
Requires-Dist: defusedxml>=0.7.1
|
|
25
|
+
Provides-Extra: lxml
|
|
26
|
+
Requires-Dist: lxml>=6.1.1; extra == "lxml"
|
|
27
|
+
Dynamic: author
|
|
28
|
+
Dynamic: author-email
|
|
29
|
+
Dynamic: classifier
|
|
30
|
+
Dynamic: description
|
|
31
|
+
Dynamic: description-content-type
|
|
32
|
+
Dynamic: home-page
|
|
33
|
+
Dynamic: keywords
|
|
34
|
+
Dynamic: license
|
|
35
|
+
Dynamic: license-file
|
|
36
|
+
Dynamic: provides-extra
|
|
37
|
+
Dynamic: requires-dist
|
|
38
|
+
Dynamic: summary
|
|
39
|
+
|
|
40
|
+
Py3AMF
|
|
41
|
+
======
|
|
42
|
+
|
|
43
|
+
Py3AMF is a Python 3 fork of
|
|
44
|
+
`PyAMF <https://github.com/hydralabs/pyamf>`__. It provides Action
|
|
45
|
+
Message Format (AMF0 and AMF3) encoding, decoding, and remoting support
|
|
46
|
+
for Python applications.
|
|
47
|
+
|
|
48
|
+
Current support
|
|
49
|
+
~~~~~~~~~~~~~~~
|
|
50
|
+
|
|
51
|
+
The 0.9.0 release line keeps the supported surface small and focused:
|
|
52
|
+
|
|
53
|
+
- CPython 3.11, 3.12, 3.13, and 3.14 are tested with the
|
|
54
|
+
``python:3.11-slim``, ``python:3.12-slim``, ``python:3.13-slim``, and
|
|
55
|
+
``python:3.14-slim`` container images.
|
|
56
|
+
- Older Python 3 versions are not intentionally blocked, but they are not
|
|
57
|
+
part of the active test matrix.
|
|
58
|
+
- AMF0, AMF3, core remoting, the WSGI gateway, and pure Python runtime
|
|
59
|
+
code are supported.
|
|
60
|
+
- ``pyamf.adapters`` remains available as helper and compatibility
|
|
61
|
+
modules.
|
|
62
|
+
- Jython, Cython extension builds, framework gateways, and automatic
|
|
63
|
+
conversion of third-party framework models are no longer officially
|
|
64
|
+
supported.
|
|
65
|
+
|
|
66
|
+
Applications should convert framework-specific objects at the application
|
|
67
|
+
layer before passing data to Py3AMF.
|
|
68
|
+
|
|
69
|
+
Install
|
|
70
|
+
~~~~~~~
|
|
71
|
+
|
|
72
|
+
Install the released package with pip:
|
|
73
|
+
|
|
74
|
+
::
|
|
75
|
+
|
|
76
|
+
python -m pip install Py3AMF
|
|
77
|
+
|
|
78
|
+
For local development:
|
|
79
|
+
|
|
80
|
+
::
|
|
81
|
+
|
|
82
|
+
git clone git@github.com:StdCarrot/Py3AMF.git
|
|
83
|
+
cd Py3AMF
|
|
84
|
+
python -m pip install -r test-requirements.txt
|
|
85
|
+
python -c "import pyamf.tests; pyamf.tests.main()"
|
|
86
|
+
python -m pip install .
|
|
87
|
+
|
|
88
|
+
Simple example
|
|
89
|
+
~~~~~~~~~~~~~~
|
|
90
|
+
|
|
91
|
+
Everything is same with PyAMF, but you have to concern str and bytes
|
|
92
|
+
types.
|
|
93
|
+
|
|
94
|
+
::
|
|
95
|
+
|
|
96
|
+
import pyamf
|
|
97
|
+
from pyamf import remoting
|
|
98
|
+
from pyamf.flex import messaging
|
|
99
|
+
import uuid
|
|
100
|
+
import requests
|
|
101
|
+
|
|
102
|
+
msg = messaging.RemotingMessage(operation='retrieveUser',
|
|
103
|
+
destination='so.stdc.flexact.common.User',
|
|
104
|
+
messageId=str(uuid.uuid4()).upper(),
|
|
105
|
+
body=['user_id'])
|
|
106
|
+
req = remoting.Request(target='UserService', body=[msg])
|
|
107
|
+
ev = remoting.Envelope(pyamf.AMF3)
|
|
108
|
+
ev['/0'] = req
|
|
109
|
+
|
|
110
|
+
# Encode request
|
|
111
|
+
bin_msg = remoting.encode(ev)
|
|
112
|
+
|
|
113
|
+
# Send request; You can use other channels like RTMP
|
|
114
|
+
resp = requests.post('http://example.com/amf',
|
|
115
|
+
data=bin_msg.getvalue(),
|
|
116
|
+
headers={'Content-Type': 'application/x-amf'})
|
|
117
|
+
|
|
118
|
+
# Decode response
|
|
119
|
+
resp_msg = remoting.decode(resp.content)
|
|
120
|
+
print(resp_msg.bodies)
|
|
121
|
+
|
|
122
|
+
--------------
|
|
123
|
+
|
|
124
|
+
`Action Message Format
|
|
125
|
+
<http://en.wikipedia.org/wiki/Action_Message_Format>`__ is a compact
|
|
126
|
+
binary format used by Adobe Flash Player and Adobe AIR applications.
|
|
127
|
+
Py3AMF keeps the AMF codec and WSGI remoting pieces current for modern
|
|
128
|
+
Python 3 runtimes.
|
|
129
|
+
|
|
130
|
+
The `Adobe Integrated
|
|
131
|
+
Runtime <http://en.wikipedia.org/wiki/Adobe_AIR>`__ and `Adobe Flash
|
|
132
|
+
Player <http://en.wikipedia.org/wiki/Flash_Player>`__ use AMF to
|
|
133
|
+
communicate between an application and a remote server. AMF encodes
|
|
134
|
+
remote procedure calls (RPC) into a compact binary representation that
|
|
135
|
+
can be transferred over HTTP/HTTPS or the
|
|
136
|
+
`RTMP/RTMPS <http://en.wikipedia.org/wiki/Real_Time_Messaging_Protocol>`__
|
|
137
|
+
protocol. Objects and data values are serialized into this binary
|
|
138
|
+
format, which increases performance, allowing applications to load data
|
|
139
|
+
up to 10 times faster than with text-based formats such as XML or SOAP.
|
|
140
|
+
|
|
141
|
+
AMF3, the default serialization for ActionScript 3.0, provides various
|
|
142
|
+
advantages over AMF0, which is used for ActionScript 1.0 and 2.0. AMF3
|
|
143
|
+
sends data over the network more efficiently than AMF0. AMF3 supports
|
|
144
|
+
sending ``int`` and ``uint`` objects as integers and supports data types
|
|
145
|
+
that are available only in ActionScript 3.0, such as ``ByteArray``,
|
|
146
|
+
``ArrayCollection``, ``ObjectProxy``, and ``IExternalizable``.
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: Py3AMF
|
|
3
|
+
Version: 0.9.0
|
|
4
|
+
Summary: AMF support for Python
|
|
5
|
+
Home-page: https://github.com/StdCarrot/Py3AMF
|
|
6
|
+
Author: The Py3AMF Project
|
|
7
|
+
Author-email: yhbu@stdc.so
|
|
8
|
+
License: MIT License
|
|
9
|
+
Keywords: python3 amf amf0 amf3 flex flash remoting rpc http flashplayer air bytearray objectproxy arraycollection recordset actionscript decoder encoder gateway wsgi remoteobject sharedobject lso sol
|
|
10
|
+
Classifier: Intended Audience :: Developers
|
|
11
|
+
Classifier: Intended Audience :: Information Technology
|
|
12
|
+
Classifier: Natural Language :: English
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Programming Language :: Python
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
19
|
+
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
|
|
20
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
21
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
22
|
+
Description-Content-Type: text/x-rst
|
|
23
|
+
License-File: LICENSE.txt
|
|
24
|
+
Requires-Dist: defusedxml>=0.7.1
|
|
25
|
+
Provides-Extra: lxml
|
|
26
|
+
Requires-Dist: lxml>=6.1.1; extra == "lxml"
|
|
27
|
+
Dynamic: author
|
|
28
|
+
Dynamic: author-email
|
|
29
|
+
Dynamic: classifier
|
|
30
|
+
Dynamic: description
|
|
31
|
+
Dynamic: description-content-type
|
|
32
|
+
Dynamic: home-page
|
|
33
|
+
Dynamic: keywords
|
|
34
|
+
Dynamic: license
|
|
35
|
+
Dynamic: license-file
|
|
36
|
+
Dynamic: provides-extra
|
|
37
|
+
Dynamic: requires-dist
|
|
38
|
+
Dynamic: summary
|
|
39
|
+
|
|
40
|
+
Py3AMF
|
|
41
|
+
======
|
|
42
|
+
|
|
43
|
+
Py3AMF is a Python 3 fork of
|
|
44
|
+
`PyAMF <https://github.com/hydralabs/pyamf>`__. It provides Action
|
|
45
|
+
Message Format (AMF0 and AMF3) encoding, decoding, and remoting support
|
|
46
|
+
for Python applications.
|
|
47
|
+
|
|
48
|
+
Current support
|
|
49
|
+
~~~~~~~~~~~~~~~
|
|
50
|
+
|
|
51
|
+
The 0.9.0 release line keeps the supported surface small and focused:
|
|
52
|
+
|
|
53
|
+
- CPython 3.11, 3.12, 3.13, and 3.14 are tested with the
|
|
54
|
+
``python:3.11-slim``, ``python:3.12-slim``, ``python:3.13-slim``, and
|
|
55
|
+
``python:3.14-slim`` container images.
|
|
56
|
+
- Older Python 3 versions are not intentionally blocked, but they are not
|
|
57
|
+
part of the active test matrix.
|
|
58
|
+
- AMF0, AMF3, core remoting, the WSGI gateway, and pure Python runtime
|
|
59
|
+
code are supported.
|
|
60
|
+
- ``pyamf.adapters`` remains available as helper and compatibility
|
|
61
|
+
modules.
|
|
62
|
+
- Jython, Cython extension builds, framework gateways, and automatic
|
|
63
|
+
conversion of third-party framework models are no longer officially
|
|
64
|
+
supported.
|
|
65
|
+
|
|
66
|
+
Applications should convert framework-specific objects at the application
|
|
67
|
+
layer before passing data to Py3AMF.
|
|
68
|
+
|
|
69
|
+
Install
|
|
70
|
+
~~~~~~~
|
|
71
|
+
|
|
72
|
+
Install the released package with pip:
|
|
73
|
+
|
|
74
|
+
::
|
|
75
|
+
|
|
76
|
+
python -m pip install Py3AMF
|
|
77
|
+
|
|
78
|
+
For local development:
|
|
79
|
+
|
|
80
|
+
::
|
|
81
|
+
|
|
82
|
+
git clone git@github.com:StdCarrot/Py3AMF.git
|
|
83
|
+
cd Py3AMF
|
|
84
|
+
python -m pip install -r test-requirements.txt
|
|
85
|
+
python -c "import pyamf.tests; pyamf.tests.main()"
|
|
86
|
+
python -m pip install .
|
|
87
|
+
|
|
88
|
+
Simple example
|
|
89
|
+
~~~~~~~~~~~~~~
|
|
90
|
+
|
|
91
|
+
Everything is same with PyAMF, but you have to concern str and bytes
|
|
92
|
+
types.
|
|
93
|
+
|
|
94
|
+
::
|
|
95
|
+
|
|
96
|
+
import pyamf
|
|
97
|
+
from pyamf import remoting
|
|
98
|
+
from pyamf.flex import messaging
|
|
99
|
+
import uuid
|
|
100
|
+
import requests
|
|
101
|
+
|
|
102
|
+
msg = messaging.RemotingMessage(operation='retrieveUser',
|
|
103
|
+
destination='so.stdc.flexact.common.User',
|
|
104
|
+
messageId=str(uuid.uuid4()).upper(),
|
|
105
|
+
body=['user_id'])
|
|
106
|
+
req = remoting.Request(target='UserService', body=[msg])
|
|
107
|
+
ev = remoting.Envelope(pyamf.AMF3)
|
|
108
|
+
ev['/0'] = req
|
|
109
|
+
|
|
110
|
+
# Encode request
|
|
111
|
+
bin_msg = remoting.encode(ev)
|
|
112
|
+
|
|
113
|
+
# Send request; You can use other channels like RTMP
|
|
114
|
+
resp = requests.post('http://example.com/amf',
|
|
115
|
+
data=bin_msg.getvalue(),
|
|
116
|
+
headers={'Content-Type': 'application/x-amf'})
|
|
117
|
+
|
|
118
|
+
# Decode response
|
|
119
|
+
resp_msg = remoting.decode(resp.content)
|
|
120
|
+
print(resp_msg.bodies)
|
|
121
|
+
|
|
122
|
+
--------------
|
|
123
|
+
|
|
124
|
+
`Action Message Format
|
|
125
|
+
<http://en.wikipedia.org/wiki/Action_Message_Format>`__ is a compact
|
|
126
|
+
binary format used by Adobe Flash Player and Adobe AIR applications.
|
|
127
|
+
Py3AMF keeps the AMF codec and WSGI remoting pieces current for modern
|
|
128
|
+
Python 3 runtimes.
|
|
129
|
+
|
|
130
|
+
The `Adobe Integrated
|
|
131
|
+
Runtime <http://en.wikipedia.org/wiki/Adobe_AIR>`__ and `Adobe Flash
|
|
132
|
+
Player <http://en.wikipedia.org/wiki/Flash_Player>`__ use AMF to
|
|
133
|
+
communicate between an application and a remote server. AMF encodes
|
|
134
|
+
remote procedure calls (RPC) into a compact binary representation that
|
|
135
|
+
can be transferred over HTTP/HTTPS or the
|
|
136
|
+
`RTMP/RTMPS <http://en.wikipedia.org/wiki/Real_Time_Messaging_Protocol>`__
|
|
137
|
+
protocol. Objects and data values are serialized into this binary
|
|
138
|
+
format, which increases performance, allowing applications to load data
|
|
139
|
+
up to 10 times faster than with text-based formats such as XML or SOAP.
|
|
140
|
+
|
|
141
|
+
AMF3, the default serialization for ActionScript 3.0, provides various
|
|
142
|
+
advantages over AMF0, which is used for ActionScript 1.0 and 2.0. AMF3
|
|
143
|
+
sends data over the network more efficiently than AMF0. AMF3 supports
|
|
144
|
+
sending ``int`` and ``uint`` objects as integers and supports data types
|
|
145
|
+
that are available only in ActionScript 3.0, such as ``ByteArray``,
|
|
146
|
+
``ArrayCollection``, ``ObjectProxy``, and ``IExternalizable``.
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
CHANGES.txt
|
|
2
2
|
LICENSE.txt
|
|
3
3
|
MANIFEST.in
|
|
4
|
-
README.
|
|
4
|
+
README.rst
|
|
5
|
+
pyproject.toml
|
|
5
6
|
requirements.txt
|
|
6
7
|
setup.cfg
|
|
7
8
|
setup.py
|
|
8
9
|
setupinfo.py
|
|
10
|
+
test-requirements.txt
|
|
9
11
|
Py3AMF.egg-info/PKG-INFO
|
|
10
12
|
Py3AMF.egg-info/SOURCES.txt
|
|
11
13
|
Py3AMF.egg-info/dependency_links.txt
|
|
@@ -13,16 +15,12 @@ Py3AMF.egg-info/not-zip-safe
|
|
|
13
15
|
Py3AMF.egg-info/requires.txt
|
|
14
16
|
Py3AMF.egg-info/top_level.txt
|
|
15
17
|
cpyamf/__init__.py
|
|
16
|
-
cpyamf/amf0.c
|
|
17
18
|
cpyamf/amf0.pxd
|
|
18
19
|
cpyamf/amf0.pyx
|
|
19
|
-
cpyamf/amf3.c
|
|
20
20
|
cpyamf/amf3.pxd
|
|
21
21
|
cpyamf/amf3.pyx
|
|
22
|
-
cpyamf/codec.c
|
|
23
22
|
cpyamf/codec.pxd
|
|
24
23
|
cpyamf/codec.pyx
|
|
25
|
-
cpyamf/util.c
|
|
26
24
|
cpyamf/util.pxd
|
|
27
25
|
cpyamf/util.pyx
|
|
28
26
|
doc/Makefile
|
|
@@ -499,6 +497,7 @@ pyamf/tests/test_gateway.py
|
|
|
499
497
|
pyamf/tests/test_imports.py
|
|
500
498
|
pyamf/tests/test_remoting.py
|
|
501
499
|
pyamf/tests/test_sol.py
|
|
500
|
+
pyamf/tests/test_suite.py
|
|
502
501
|
pyamf/tests/test_util.py
|
|
503
502
|
pyamf/tests/test_versions.py
|
|
504
503
|
pyamf/tests/test_xml.py
|
py3amf-0.9.0/README.rst
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
Py3AMF
|
|
2
|
+
======
|
|
3
|
+
|
|
4
|
+
Py3AMF is a Python 3 fork of
|
|
5
|
+
`PyAMF <https://github.com/hydralabs/pyamf>`__. It provides Action
|
|
6
|
+
Message Format (AMF0 and AMF3) encoding, decoding, and remoting support
|
|
7
|
+
for Python applications.
|
|
8
|
+
|
|
9
|
+
Current support
|
|
10
|
+
~~~~~~~~~~~~~~~
|
|
11
|
+
|
|
12
|
+
The 0.9.0 release line keeps the supported surface small and focused:
|
|
13
|
+
|
|
14
|
+
- CPython 3.11, 3.12, 3.13, and 3.14 are tested with the
|
|
15
|
+
``python:3.11-slim``, ``python:3.12-slim``, ``python:3.13-slim``, and
|
|
16
|
+
``python:3.14-slim`` container images.
|
|
17
|
+
- Older Python 3 versions are not intentionally blocked, but they are not
|
|
18
|
+
part of the active test matrix.
|
|
19
|
+
- AMF0, AMF3, core remoting, the WSGI gateway, and pure Python runtime
|
|
20
|
+
code are supported.
|
|
21
|
+
- ``pyamf.adapters`` remains available as helper and compatibility
|
|
22
|
+
modules.
|
|
23
|
+
- Jython, Cython extension builds, framework gateways, and automatic
|
|
24
|
+
conversion of third-party framework models are no longer officially
|
|
25
|
+
supported.
|
|
26
|
+
|
|
27
|
+
Applications should convert framework-specific objects at the application
|
|
28
|
+
layer before passing data to Py3AMF.
|
|
29
|
+
|
|
30
|
+
Install
|
|
31
|
+
~~~~~~~
|
|
32
|
+
|
|
33
|
+
Install the released package with pip:
|
|
34
|
+
|
|
35
|
+
::
|
|
36
|
+
|
|
37
|
+
python -m pip install Py3AMF
|
|
38
|
+
|
|
39
|
+
For local development:
|
|
40
|
+
|
|
41
|
+
::
|
|
42
|
+
|
|
43
|
+
git clone git@github.com:StdCarrot/Py3AMF.git
|
|
44
|
+
cd Py3AMF
|
|
45
|
+
python -m pip install -r test-requirements.txt
|
|
46
|
+
python -c "import pyamf.tests; pyamf.tests.main()"
|
|
47
|
+
python -m pip install .
|
|
48
|
+
|
|
49
|
+
Simple example
|
|
50
|
+
~~~~~~~~~~~~~~
|
|
51
|
+
|
|
52
|
+
Everything is same with PyAMF, but you have to concern str and bytes
|
|
53
|
+
types.
|
|
54
|
+
|
|
55
|
+
::
|
|
56
|
+
|
|
57
|
+
import pyamf
|
|
58
|
+
from pyamf import remoting
|
|
59
|
+
from pyamf.flex import messaging
|
|
60
|
+
import uuid
|
|
61
|
+
import requests
|
|
62
|
+
|
|
63
|
+
msg = messaging.RemotingMessage(operation='retrieveUser',
|
|
64
|
+
destination='so.stdc.flexact.common.User',
|
|
65
|
+
messageId=str(uuid.uuid4()).upper(),
|
|
66
|
+
body=['user_id'])
|
|
67
|
+
req = remoting.Request(target='UserService', body=[msg])
|
|
68
|
+
ev = remoting.Envelope(pyamf.AMF3)
|
|
69
|
+
ev['/0'] = req
|
|
70
|
+
|
|
71
|
+
# Encode request
|
|
72
|
+
bin_msg = remoting.encode(ev)
|
|
73
|
+
|
|
74
|
+
# Send request; You can use other channels like RTMP
|
|
75
|
+
resp = requests.post('http://example.com/amf',
|
|
76
|
+
data=bin_msg.getvalue(),
|
|
77
|
+
headers={'Content-Type': 'application/x-amf'})
|
|
78
|
+
|
|
79
|
+
# Decode response
|
|
80
|
+
resp_msg = remoting.decode(resp.content)
|
|
81
|
+
print(resp_msg.bodies)
|
|
82
|
+
|
|
83
|
+
--------------
|
|
84
|
+
|
|
85
|
+
`Action Message Format
|
|
86
|
+
<http://en.wikipedia.org/wiki/Action_Message_Format>`__ is a compact
|
|
87
|
+
binary format used by Adobe Flash Player and Adobe AIR applications.
|
|
88
|
+
Py3AMF keeps the AMF codec and WSGI remoting pieces current for modern
|
|
89
|
+
Python 3 runtimes.
|
|
90
|
+
|
|
91
|
+
The `Adobe Integrated
|
|
92
|
+
Runtime <http://en.wikipedia.org/wiki/Adobe_AIR>`__ and `Adobe Flash
|
|
93
|
+
Player <http://en.wikipedia.org/wiki/Flash_Player>`__ use AMF to
|
|
94
|
+
communicate between an application and a remote server. AMF encodes
|
|
95
|
+
remote procedure calls (RPC) into a compact binary representation that
|
|
96
|
+
can be transferred over HTTP/HTTPS or the
|
|
97
|
+
`RTMP/RTMPS <http://en.wikipedia.org/wiki/Real_Time_Messaging_Protocol>`__
|
|
98
|
+
protocol. Objects and data values are serialized into this binary
|
|
99
|
+
format, which increases performance, allowing applications to load data
|
|
100
|
+
up to 10 times faster than with text-based formats such as XML or SOAP.
|
|
101
|
+
|
|
102
|
+
AMF3, the default serialization for ActionScript 3.0, provides various
|
|
103
|
+
advantages over AMF0, which is used for ActionScript 1.0 and 2.0. AMF3
|
|
104
|
+
sends data over the network more efficiently than AMF0. AMF3 supports
|
|
105
|
+
sending ``int`` and ``uint`` objects as integers and supports data types
|
|
106
|
+
that are available only in ActionScript 3.0, such as ``ByteArray``,
|
|
107
|
+
``ArrayCollection``, ``ObjectProxy``, and ``IExternalizable``.
|
|
@@ -6,7 +6,6 @@ C-extension for L{pyamf.amf3} Python module in L{PyAMF<pyamf>}.
|
|
|
6
6
|
|
|
7
7
|
:since: 0.6
|
|
8
8
|
"""
|
|
9
|
-
|
|
10
9
|
from cpython cimport *
|
|
11
10
|
from libc.stdlib cimport *
|
|
12
11
|
from libc.string cimport *
|
|
@@ -20,24 +19,24 @@ import pyamf
|
|
|
20
19
|
from pyamf import xml, util
|
|
21
20
|
|
|
22
21
|
|
|
23
|
-
cdef char TYPE_NUMBER = '\x00'
|
|
24
|
-
cdef char TYPE_BOOL = '\x01'
|
|
25
|
-
cdef char TYPE_STRING = '\x02'
|
|
26
|
-
cdef char TYPE_OBJECT = '\x03'
|
|
27
|
-
cdef char TYPE_MOVIECLIP = '\x04'
|
|
28
|
-
cdef char TYPE_NULL = '\x05'
|
|
29
|
-
cdef char TYPE_UNDEFINED = '\x06'
|
|
30
|
-
cdef char TYPE_REFERENCE = '\x07'
|
|
31
|
-
cdef char TYPE_MIXEDARRAY = '\x08'
|
|
32
|
-
cdef char TYPE_OBJECTTERM = '\x09'
|
|
33
|
-
cdef char TYPE_ARRAY = '\x0A'
|
|
34
|
-
cdef char TYPE_DATE = '\x0B'
|
|
35
|
-
cdef char TYPE_LONGSTRING = '\x0C'
|
|
36
|
-
cdef char TYPE_UNSUPPORTED = '\x0D'
|
|
37
|
-
cdef char TYPE_RECORDSET = '\x0E'
|
|
38
|
-
cdef char TYPE_XML = '\x0F'
|
|
39
|
-
cdef char TYPE_TYPEDOBJECT = '\x10'
|
|
40
|
-
cdef char TYPE_AMF3 = '\x11'
|
|
22
|
+
cdef char TYPE_NUMBER = b'\x00'
|
|
23
|
+
cdef char TYPE_BOOL = b'\x01'
|
|
24
|
+
cdef char TYPE_STRING = b'\x02'
|
|
25
|
+
cdef char TYPE_OBJECT = b'\x03'
|
|
26
|
+
cdef char TYPE_MOVIECLIP = b'\x04'
|
|
27
|
+
cdef char TYPE_NULL = b'\x05'
|
|
28
|
+
cdef char TYPE_UNDEFINED = b'\x06'
|
|
29
|
+
cdef char TYPE_REFERENCE = b'\x07'
|
|
30
|
+
cdef char TYPE_MIXEDARRAY = b'\x08'
|
|
31
|
+
cdef char TYPE_OBJECTTERM = b'\x09'
|
|
32
|
+
cdef char TYPE_ARRAY = b'\x0A'
|
|
33
|
+
cdef char TYPE_DATE = b'\x0B'
|
|
34
|
+
cdef char TYPE_LONGSTRING = b'\x0C'
|
|
35
|
+
cdef char TYPE_UNSUPPORTED = b'\x0D'
|
|
36
|
+
cdef char TYPE_RECORDSET = b'\x0E'
|
|
37
|
+
cdef char TYPE_XML = b'\x0F'
|
|
38
|
+
cdef char TYPE_TYPEDOBJECT = b'\x10'
|
|
39
|
+
cdef char TYPE_AMF3 = b'\x11'
|
|
41
40
|
|
|
42
41
|
|
|
43
42
|
cdef object ASObject = pyamf.ASObject
|
|
@@ -122,7 +121,7 @@ cdef class Decoder(codec.Decoder):
|
|
|
122
121
|
|
|
123
122
|
break
|
|
124
123
|
|
|
125
|
-
key = self.
|
|
124
|
+
key = self.readString()
|
|
126
125
|
|
|
127
126
|
PyDict_SetItem(obj_attrs, key, self.readElement())
|
|
128
127
|
|
|
@@ -181,7 +180,7 @@ cdef class Decoder(codec.Decoder):
|
|
|
181
180
|
|
|
182
181
|
self.readObjectAttributes(attrs)
|
|
183
182
|
|
|
184
|
-
for key, value in attrs.
|
|
183
|
+
for key, value in attrs.items():
|
|
185
184
|
try:
|
|
186
185
|
key = int(key)
|
|
187
186
|
except ValueError:
|
|
@@ -229,7 +228,7 @@ cdef class Decoder(codec.Decoder):
|
|
|
229
228
|
l = self.stream.read_ulong()
|
|
230
229
|
|
|
231
230
|
self.stream.read(&b, l)
|
|
232
|
-
s =
|
|
231
|
+
s = PyBytes_FromStringAndSize(b, <Py_ssize_t>l)
|
|
233
232
|
|
|
234
233
|
if bytes:
|
|
235
234
|
return s
|
|
@@ -329,9 +328,9 @@ cdef class Encoder(codec.Encoder):
|
|
|
329
328
|
self.writeType(TYPE_BOOL)
|
|
330
329
|
|
|
331
330
|
if b is True:
|
|
332
|
-
return self.writeType('\x01')
|
|
331
|
+
return self.writeType(b'\x01')
|
|
333
332
|
else:
|
|
334
|
-
return self.writeType('\x00')
|
|
333
|
+
return self.writeType(b'\x00')
|
|
335
334
|
|
|
336
335
|
cdef int writeUndefined(self, data) except -1:
|
|
337
336
|
return self.writeType(TYPE_UNDEFINED)
|
|
@@ -387,6 +386,28 @@ cdef class Encoder(codec.Encoder):
|
|
|
387
386
|
|
|
388
387
|
return 0
|
|
389
388
|
|
|
389
|
+
cdef int writeSet(self, object a) except -1:
|
|
390
|
+
cdef Py_ssize_t size = -1, i = -1
|
|
391
|
+
|
|
392
|
+
if self.writeReference(a) != -1:
|
|
393
|
+
return 0
|
|
394
|
+
|
|
395
|
+
self.context.addObject(a)
|
|
396
|
+
|
|
397
|
+
self.writeType(TYPE_ARRAY)
|
|
398
|
+
size = PySet_GET_SIZE(a)
|
|
399
|
+
|
|
400
|
+
self.stream.write_ulong(size)
|
|
401
|
+
|
|
402
|
+
set_iter = iter(a)
|
|
403
|
+
while True:
|
|
404
|
+
try:
|
|
405
|
+
self.writeElement(next(set_iter))
|
|
406
|
+
except StopIteration:
|
|
407
|
+
break
|
|
408
|
+
|
|
409
|
+
return 0
|
|
410
|
+
|
|
390
411
|
cdef int writeInt(self, object a) except -1:
|
|
391
412
|
self.writeType(TYPE_NUMBER)
|
|
392
413
|
|
|
@@ -406,7 +427,7 @@ cdef class Encoder(codec.Encoder):
|
|
|
406
427
|
"""
|
|
407
428
|
Write a string of bytes to the data stream.
|
|
408
429
|
"""
|
|
409
|
-
cdef Py_ssize_t l =
|
|
430
|
+
cdef Py_ssize_t l = PyBytes_GET_SIZE(s)
|
|
410
431
|
|
|
411
432
|
if l > 0xffff:
|
|
412
433
|
self.writeType(TYPE_LONGSTRING)
|
|
@@ -418,7 +439,7 @@ cdef class Encoder(codec.Encoder):
|
|
|
418
439
|
else:
|
|
419
440
|
self.stream.write_ushort(l)
|
|
420
441
|
|
|
421
|
-
return self.stream.write(
|
|
442
|
+
return self.stream.write(PyBytes_AS_STRING(s), l)
|
|
422
443
|
|
|
423
444
|
cdef int writeString(self, u) except -1:
|
|
424
445
|
"""
|
|
@@ -435,14 +456,14 @@ cdef class Encoder(codec.Encoder):
|
|
|
435
456
|
if PyUnicode_CheckExact(u):
|
|
436
457
|
u = self.context.getBytesForString(u)
|
|
437
458
|
|
|
438
|
-
cdef Py_ssize_t l =
|
|
459
|
+
cdef Py_ssize_t l = PyBytes_GET_SIZE(u)
|
|
439
460
|
|
|
440
461
|
if l > 0xffff:
|
|
441
462
|
self.stream.write_ulong(l)
|
|
442
463
|
else:
|
|
443
464
|
self.stream.write_ushort(l)
|
|
444
465
|
|
|
445
|
-
return self.stream.write(
|
|
466
|
+
return self.stream.write(PyBytes_AS_STRING(u), l)
|
|
446
467
|
|
|
447
468
|
cdef int writeXML(self, e) except -1:
|
|
448
469
|
"""
|
|
@@ -455,14 +476,14 @@ cdef class Encoder(codec.Encoder):
|
|
|
455
476
|
if isinstance(data, unicode):
|
|
456
477
|
data = data.encode('utf-8')
|
|
457
478
|
|
|
458
|
-
if not
|
|
479
|
+
if not PyBytes_CheckExact(data):
|
|
459
480
|
raise TypeError('expected str from xml.tostring')
|
|
460
481
|
|
|
461
|
-
cdef Py_ssize_t l =
|
|
482
|
+
cdef Py_ssize_t l = PyBytes_GET_SIZE(data)
|
|
462
483
|
|
|
463
484
|
self.stream.write_ulong(l)
|
|
464
485
|
|
|
465
|
-
return self.stream.write(
|
|
486
|
+
return self.stream.write(PyBytes_AS_STRING(data), l)
|
|
466
487
|
|
|
467
488
|
cdef int writeDateTime(self, d) except -1:
|
|
468
489
|
if self.timezone_offset is not None:
|
|
@@ -491,9 +512,9 @@ cdef class Encoder(codec.Encoder):
|
|
|
491
512
|
|
|
492
513
|
@param o: The C{dict} data to be encoded to the AMF0 data stream.
|
|
493
514
|
"""
|
|
494
|
-
for key, value in attrs.
|
|
495
|
-
if
|
|
496
|
-
key = str(key)
|
|
515
|
+
for key, value in attrs.items():
|
|
516
|
+
if PyLong_Check(key):
|
|
517
|
+
key = str(key).encode()
|
|
497
518
|
|
|
498
519
|
self.serialiseString(key)
|
|
499
520
|
self.writeElement(value)
|