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.
Files changed (541) hide show
  1. {Py3AMF-0.8.9 → py3amf-0.9.0}/CHANGES.txt +42 -1
  2. {Py3AMF-0.8.9 → py3amf-0.9.0}/MANIFEST.in +3 -1
  3. py3amf-0.9.0/PKG-INFO +146 -0
  4. py3amf-0.9.0/Py3AMF.egg-info/PKG-INFO +146 -0
  5. {Py3AMF-0.8.9 → py3amf-0.9.0}/Py3AMF.egg-info/SOURCES.txt +4 -5
  6. py3amf-0.9.0/Py3AMF.egg-info/requires.txt +4 -0
  7. py3amf-0.9.0/README.rst +107 -0
  8. {Py3AMF-0.8.9 → py3amf-0.9.0}/cpyamf/amf0.pyx +55 -34
  9. {Py3AMF-0.8.9 → py3amf-0.9.0}/cpyamf/amf3.pyx +61 -35
  10. {Py3AMF-0.8.9 → py3amf-0.9.0}/cpyamf/codec.pxd +3 -2
  11. {Py3AMF-0.8.9 → py3amf-0.9.0}/cpyamf/codec.pyx +19 -16
  12. {Py3AMF-0.8.9 → py3amf-0.9.0}/cpyamf/util.pyx +23 -21
  13. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/about.rst +5 -7
  14. py3amf-0.9.0/doc/architecture/adapters.rst +58 -0
  15. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/attributecontrol.rst +12 -11
  16. py3amf-0.9.0/doc/architecture/classmapping.rst +89 -0
  17. py3amf-0.9.0/doc/architecture/future.rst +20 -0
  18. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/overview.rst +4 -14
  19. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/typemap.rst +1 -5
  20. py3amf-0.9.0/doc/bugs.rst +37 -0
  21. py3amf-0.9.0/doc/community/download.rst +40 -0
  22. py3amf-0.9.0/doc/community/irc.rst +9 -0
  23. py3amf-0.9.0/doc/community/mailinglist.rst +9 -0
  24. py3amf-0.9.0/doc/community/maintainers.rst +28 -0
  25. py3amf-0.9.0/doc/community/team.rst +8 -0
  26. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/conf.py +25 -18
  27. py3amf-0.9.0/doc/html/tutorials.html +66 -0
  28. py3amf-0.9.0/doc/install.rst +126 -0
  29. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/index.rst +0 -7
  30. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/apache/index.rst +0 -1
  31. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/index.rst +0 -2
  32. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/_version.py +1 -1
  33. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/test_sqlalchemy.py +2 -1
  34. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/amf3.py +53 -7
  35. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/codec.py +1 -1
  36. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/remoting/__init__.py +0 -4
  37. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/remoting/gateway/twisted.py +5 -5
  38. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/__init__.py +71 -17
  39. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/gateway/test_django.py +12 -10
  40. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/gateway/test_twisted.py +69 -20
  41. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/remoting/test_remoteobject.py +1 -1
  42. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_alias.py +10 -10
  43. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_amf3.py +6 -4
  44. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_basic.py +4 -4
  45. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_gateway.py +2 -2
  46. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_remoting.py +3 -3
  47. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_sol.py +14 -14
  48. py3amf-0.9.0/pyamf/tests/test_suite.py +300 -0
  49. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_util.py +4 -4
  50. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/util/__init__.py +1 -1
  51. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/util/imports.py +90 -1
  52. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/util/pure.py +33 -1
  53. py3amf-0.9.0/pyproject.toml +3 -0
  54. py3amf-0.9.0/requirements.txt +2 -0
  55. {Py3AMF-0.8.9 → py3amf-0.9.0}/setup.cfg +1 -2
  56. {Py3AMF-0.8.9 → py3amf-0.9.0}/setup.py +15 -14
  57. {Py3AMF-0.8.9 → py3amf-0.9.0}/setupinfo.py +20 -83
  58. py3amf-0.9.0/test-requirements.txt +4 -0
  59. Py3AMF-0.8.9/PKG-INFO +0 -100
  60. Py3AMF-0.8.9/Py3AMF.egg-info/PKG-INFO +0 -100
  61. Py3AMF-0.8.9/Py3AMF.egg-info/requires.txt +0 -22
  62. Py3AMF-0.8.9/README.md +0 -72
  63. Py3AMF-0.8.9/cpyamf/amf0.c +0 -12372
  64. Py3AMF-0.8.9/cpyamf/amf3.c +0 -18935
  65. Py3AMF-0.8.9/cpyamf/codec.c +0 -16797
  66. Py3AMF-0.8.9/cpyamf/util.c +0 -1
  67. Py3AMF-0.8.9/doc/architecture/adapters.rst +0 -77
  68. Py3AMF-0.8.9/doc/architecture/classmapping.rst +0 -75
  69. Py3AMF-0.8.9/doc/architecture/future.rst +0 -11
  70. Py3AMF-0.8.9/doc/bugs.rst +0 -55
  71. Py3AMF-0.8.9/doc/community/download.rst +0 -45
  72. Py3AMF-0.8.9/doc/community/irc.rst +0 -19
  73. Py3AMF-0.8.9/doc/community/mailinglist.rst +0 -77
  74. Py3AMF-0.8.9/doc/community/maintainers.rst +0 -32
  75. Py3AMF-0.8.9/doc/community/team.rst +0 -11
  76. Py3AMF-0.8.9/doc/html/tutorials.html +0 -121
  77. Py3AMF-0.8.9/doc/install.rst +0 -201
  78. Py3AMF-0.8.9/requirements.txt +0 -1
  79. {Py3AMF-0.8.9 → py3amf-0.9.0}/LICENSE.txt +0 -0
  80. {Py3AMF-0.8.9 → py3amf-0.9.0}/Py3AMF.egg-info/dependency_links.txt +0 -0
  81. {Py3AMF-0.8.9 → py3amf-0.9.0}/Py3AMF.egg-info/not-zip-safe +0 -0
  82. {Py3AMF-0.8.9 → py3amf-0.9.0}/Py3AMF.egg-info/top_level.txt +0 -0
  83. {Py3AMF-0.8.9 → py3amf-0.9.0}/cpyamf/__init__.py +0 -0
  84. {Py3AMF-0.8.9 → py3amf-0.9.0}/cpyamf/amf0.pxd +0 -0
  85. {Py3AMF-0.8.9 → py3amf-0.9.0}/cpyamf/amf3.pxd +0 -0
  86. {Py3AMF-0.8.9 → py3amf-0.9.0}/cpyamf/util.pxd +0 -0
  87. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/Makefile +0 -0
  88. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/adapters/myadapter.py +0 -0
  89. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/adapters/mymodule.py +0 -0
  90. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/attribute-control/iexternalizable.py +0 -0
  91. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/attribute-control/models1.py +0 -0
  92. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/attribute-control/models2.py +0 -0
  93. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/attribute-control/models3.py +0 -0
  94. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/attribute-control/proxied-attr.py +0 -0
  95. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/attribute-control/server.py +0 -0
  96. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/attribute-control/static-attr.py +0 -0
  97. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/attribute-control/synonym.py +0 -0
  98. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/attribute-control/whitelist.py +0 -0
  99. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/class-mapping/alias-decorator.py +0 -0
  100. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/class-mapping/example-classes.as +0 -0
  101. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/examples/class-mapping/example-classes.py +0 -0
  102. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/architecture/index.rst +0 -0
  103. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/community/index.rst +0 -0
  104. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/community/thanks.rst +0 -0
  105. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/contents.rst +0 -0
  106. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/html/defindex.html +0 -0
  107. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/html/layout.html +0 -0
  108. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/html/static/logo.png +0 -0
  109. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/html/static/pyamf.ico +0 -0
  110. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/license.rst +0 -0
  111. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/make.bat +0 -0
  112. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/addressbook.rst +0 -0
  113. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/bytearray.rst +0 -0
  114. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/geoip.rst +0 -0
  115. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/guestbook.rst +0 -0
  116. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/images/addressbook_example.png +0 -0
  117. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/images/binarysocket.png +0 -0
  118. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/images/bytearrayexample.jpg +0 -0
  119. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/images/geoip-example.jpg +0 -0
  120. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/images/guestbook-example.jpg +0 -0
  121. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/images/ohloh-api-example.png +0 -0
  122. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/images/ohloh_logo.png +0 -0
  123. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/images/recordset.jpg +0 -0
  124. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/images/shellexample.png +0 -0
  125. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/images/udp-options.png +0 -0
  126. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/images/udp-overview.png +0 -0
  127. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/images/udp-resize.png +0 -0
  128. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/ohloh.rst +0 -0
  129. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/recordset.rst +0 -0
  130. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/shell.rst +0 -0
  131. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/simple.rst +0 -0
  132. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/socket.rst +0 -0
  133. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/actionscript/udp.rst +0 -0
  134. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/apache/images/mod_python-logo.gif +0 -0
  135. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/apache/mod_python.rst +0 -0
  136. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/apache/mod_wsgi.rst +0 -0
  137. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/Readme.txt +0 -0
  138. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/.actionScriptProperties +0 -0
  139. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/.flexProperties +0 -0
  140. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/.project +0 -0
  141. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/build.xml +0 -0
  142. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/deploy/index.html +0 -0
  143. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/src/org/pyamf/examples/addressbook/AddressBook.as +0 -0
  144. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/src/org/pyamf/examples/addressbook/components/EditEmailDlg.mxml +0 -0
  145. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/src/org/pyamf/examples/addressbook/components/EditEmailDlgClass.as +0 -0
  146. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/src/org/pyamf/examples/addressbook/components/EditPhoneDlg.mxml +0 -0
  147. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/src/org/pyamf/examples/addressbook/components/EditPhoneDlgClass.as +0 -0
  148. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/src/org/pyamf/examples/addressbook/components/EditUserDlg.mxml +0 -0
  149. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/src/org/pyamf/examples/addressbook/components/EditUserDlgClass.as +0 -0
  150. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/src/org/pyamf/examples/addressbook/models/Email.as +0 -0
  151. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/src/org/pyamf/examples/addressbook/models/PhoneNumber.as +0 -0
  152. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/src/org/pyamf/examples/addressbook/models/SAObject.as +0 -0
  153. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/src/org/pyamf/examples/addressbook/models/User.as +0 -0
  154. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/flex/src/sa_example.mxml +0 -0
  155. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/python/client.py +0 -0
  156. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/python/controller.py +0 -0
  157. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/python/crossdomain.xml +0 -0
  158. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/python/models.py +0 -0
  159. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/python/persistent.py +0 -0
  160. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/python/server.py +0 -0
  161. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/addressbook/python/server.wsgi +0 -0
  162. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/flex/.actionScriptProperties +0 -0
  163. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/flex/.flexProperties +0 -0
  164. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/flex/.project +0 -0
  165. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/flex/build.xml +0 -0
  166. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/flex/deploy/index.html +0 -0
  167. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/flex/src/bytearray.mxml +0 -0
  168. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/flex/src/org/pyamf/examples/bytearray/ByteArrayExample.as +0 -0
  169. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/flex/src/org/pyamf/examples/bytearray/Snapshot.as +0 -0
  170. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/python/__init__.py +0 -0
  171. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/python/client.py +0 -0
  172. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/python/crossdomain.xml +0 -0
  173. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/python/gateway/__init__.py +0 -0
  174. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/python/gateway/gateway.py +0 -0
  175. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/python/gateway/images/django-logo.jpg +0 -0
  176. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/python/gateway/models.py +0 -0
  177. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/python/gateway/views.py +0 -0
  178. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/python/manage.py +0 -0
  179. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/python/server.wsgi +0 -0
  180. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/python/settings.py +0 -0
  181. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/python/urls.py +0 -0
  182. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/bytearray/readme.txt +0 -0
  183. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/geoip/flex/.actionScriptProperties +0 -0
  184. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/geoip/flex/.flexProperties +0 -0
  185. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/geoip/flex/.project +0 -0
  186. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/geoip/flex/build.xml +0 -0
  187. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/geoip/flex/deploy/index.html +0 -0
  188. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/geoip/flex/src/geoip.mxml +0 -0
  189. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/geoip/flex/src/org/pyamf/examples/geoip/GeoipExample.as +0 -0
  190. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/geoip/flex/src/org/pyamf/examples/geoip/vo/GeoInfo.as +0 -0
  191. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/geoip/python/client.py +0 -0
  192. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/geoip/python/server.py +0 -0
  193. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/geoip/python/server.wsgi +0 -0
  194. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/geoip/readme.txt +0 -0
  195. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/.actionScriptProperties +0 -0
  196. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/.flexProperties +0 -0
  197. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/db/schema.sql +0 -0
  198. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/flex/build.xml +0 -0
  199. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/flex/deploy/index.html +0 -0
  200. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/flex/src/assets/main.css +0 -0
  201. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/flex/src/guestbook.mxml +0 -0
  202. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/flex/src/org/pyamf/examples/guestbook/GuestbookExample.as +0 -0
  203. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/flex/src/org/pyamf/examples/guestbook/components/MessageBox.mxml +0 -0
  204. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/flex/src/org/pyamf/examples/guestbook/components/SubmitBox.mxml +0 -0
  205. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/flex/src/org/pyamf/examples/guestbook/events/SubmitEvent.as +0 -0
  206. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/flex/src/org/pyamf/examples/guestbook/vo/Message.as +0 -0
  207. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/python/client.py +0 -0
  208. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/python/crossdomain.xml +0 -0
  209. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/python/guestbook.py +0 -0
  210. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/python/guestbook.tac +0 -0
  211. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/python/server.py +0 -0
  212. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/python/settings.cfg +0 -0
  213. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/guestbook/readme.txt +0 -0
  214. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/ohloh/Readme.txt +0 -0
  215. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/ohloh/flex/.actionScriptProperties +0 -0
  216. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/ohloh/flex/.flexProperties +0 -0
  217. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/ohloh/flex/.project +0 -0
  218. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/ohloh/flex/build.xml +0 -0
  219. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/ohloh/flex/deploy/index.html +0 -0
  220. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/ohloh/flex/src/OhlohApi.mxml +0 -0
  221. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/ohloh/flex/src/org/pyamf/examples/ohloh/ApiExample.as +0 -0
  222. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/ohloh/python/client.py +0 -0
  223. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/ohloh/python/ohloh.py +0 -0
  224. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/ohloh/python/server.py +0 -0
  225. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/ohloh/python/server.wsgi +0 -0
  226. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/recordset/Readme.txt +0 -0
  227. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/recordset/flash/deploy/index.html +0 -0
  228. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/recordset/flash/src/SoftwareInfoClass.as +0 -0
  229. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/recordset/flash/src/SoftwareInfoExample.fla +0 -0
  230. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/recordset/python/client.py +0 -0
  231. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/recordset/python/db.py +0 -0
  232. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/recordset/python/gateway.py +0 -0
  233. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/recordset/python/gateway.wsgi +0 -0
  234. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/recordset/python/init.py +0 -0
  235. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/Readme.txt +0 -0
  236. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/flex/.actionScriptProperties +0 -0
  237. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/flex/.flexProperties +0 -0
  238. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/flex/.project +0 -0
  239. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/flex/build.xml +0 -0
  240. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/flex/deploy/index.html +0 -0
  241. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/flex/src/org/pyamf/examples/sharedobject/SharedObjectExample.as +0 -0
  242. {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
  243. {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
  244. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/flex/src/sharedobject.mxml +0 -0
  245. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/flex/src/style.css +0 -0
  246. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/python/client.py +0 -0
  247. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/python/crossdomain.xml +0 -0
  248. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/python/server.py +0 -0
  249. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shared-object/python/service.py +0 -0
  250. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/flex/.actionScriptProperties +0 -0
  251. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/flex/.flexProperties +0 -0
  252. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/flex/.project +0 -0
  253. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/flex/assets/main.css +0 -0
  254. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/flex/build.xml +0 -0
  255. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/flex/deploy/index.html +0 -0
  256. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/flex/src/org/pyamf/examples/shell/Shell.as +0 -0
  257. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/flex/src/shell.mxml +0 -0
  258. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/python/__init__.py +0 -0
  259. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/python/client.py +0 -0
  260. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/python/gateway.py +0 -0
  261. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/python/manage.py +0 -0
  262. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/python/settings.py +0 -0
  263. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/python/urls.py +0 -0
  264. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/shell/readme.txt +0 -0
  265. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/simple/Readme.txt +0 -0
  266. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/simple/flex/build.xml +0 -0
  267. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/simple/flex/deploy/index.html +0 -0
  268. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/simple/flex/src/org/pyamf/examples/simple/SimpleView.as +0 -0
  269. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/simple/flex/src/org/pyamf/examples/simple/User.as +0 -0
  270. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/simple/flex/src/simple.mxml +0 -0
  271. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/simple/python/client.py +0 -0
  272. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/simple/python/server.py +0 -0
  273. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/flex/.actionScriptProperties +0 -0
  274. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/flex/.flexProperties +0 -0
  275. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/flex/.project +0 -0
  276. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/flex/build.xml +0 -0
  277. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/flex/deploy/index.html +0 -0
  278. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/flex/src/org/pyamf/examples/socket/PythonSocket.as +0 -0
  279. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/flex/src/org/pyamf/examples/socket/SocketExample.as +0 -0
  280. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/flex/src/socket.mxml +0 -0
  281. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/python/client.py +0 -0
  282. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/python/server.py +0 -0
  283. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/python/socket-policy.xml +0 -0
  284. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/python/timer.tac +0 -0
  285. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/socket/readme.txt +0 -0
  286. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/udp/air/.actionScriptProperties +0 -0
  287. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/udp/air/.flexProperties +0 -0
  288. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/udp/air/.project +0 -0
  289. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/udp/air/deploy/udp.air +0 -0
  290. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/udp/air/src/UDPExample-app.xml +0 -0
  291. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/udp/air/src/UDPExample.as +0 -0
  292. {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
  293. {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
  294. {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
  295. {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
  296. {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
  297. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/udp/python/server.py +0 -0
  298. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/actionscript/udp/readme.txt +0 -0
  299. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/apache/client.py +0 -0
  300. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/apache/mod_python.py +0 -0
  301. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/apache/mod_python.vhost +0 -0
  302. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/apache/mod_wsgi.py +0 -0
  303. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/apache/mod_wsgi.vhost +0 -0
  304. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/apache/myApp.wsgi +0 -0
  305. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/client.py +0 -0
  306. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/Readme.txt +0 -0
  307. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/app.yaml +0 -0
  308. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/assets/appengine-powered.gif +0 -0
  309. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/assets/logo.jpg +0 -0
  310. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/assets/mootools.js +0 -0
  311. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/assets/python-powered.png +0 -0
  312. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/assets/swfobject.js +0 -0
  313. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/crossdomain.xml +0 -0
  314. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/echo/__init__.py +0 -0
  315. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/echo/gateway.py +0 -0
  316. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/echo/index.py +0 -0
  317. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/index.py +0 -0
  318. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/manage.py +0 -0
  319. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/settings.py +0 -0
  320. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/shell/__init__.py +0 -0
  321. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/shell/gateway.py +0 -0
  322. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/shell/index.py +0 -0
  323. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/__init__.py +0 -0
  324. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/decoder.py +0 -0
  325. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/encoder.py +0 -0
  326. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/jsonfilter.py +0 -0
  327. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/scanner.py +0 -0
  328. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/__init__.py +0 -0
  329. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/test_decode.py +0 -0
  330. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/test_default.py +0 -0
  331. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/test_dump.py +0 -0
  332. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/test_fail.py +0 -0
  333. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/test_float.py +0 -0
  334. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/test_indent.py +0 -0
  335. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/test_pass1.py +0 -0
  336. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/test_pass2.py +0 -0
  337. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/test_pass3.py +0 -0
  338. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/test_recursion.py +0 -0
  339. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/test_separators.py +0 -0
  340. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/simplejson/tests/test_unicode.py +0 -0
  341. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/templates/base.html +0 -0
  342. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/templates/index.html +0 -0
  343. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/templates/swf.html +0 -0
  344. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/demo/urls.py +0 -0
  345. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/flash.as +0 -0
  346. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/webapp.py +0 -0
  347. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/appengine/wsgi.py +0 -0
  348. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/cherrypy/client.py +0 -0
  349. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/cherrypy/crossdomain.xml +0 -0
  350. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/cherrypy/gateway.py +0 -0
  351. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/django/amfgateway.py +0 -0
  352. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/django/client.py +0 -0
  353. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/pylons/crossdomain.xml +0 -0
  354. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/pylons/pylons_client.py +0 -0
  355. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/pylons/pylons_gateway.py +0 -0
  356. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/pylons/pyramid_client.py +0 -0
  357. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/pylons/pyramid_gateway.py +0 -0
  358. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/turbogears/app.mxml +0 -0
  359. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/turbogears/mygateway.py +0 -0
  360. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/twisted/classic.py +0 -0
  361. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/twisted/client.py +0 -0
  362. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/twisted/preferred.py +0 -0
  363. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/twisted/stackless.py +0 -0
  364. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/twisted/wsgi.py +0 -0
  365. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/werkzeug/client.py +0 -0
  366. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/gateways/werkzeug/server.py +0 -0
  367. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/Readme.txt +0 -0
  368. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/as2/authenticate.as +0 -0
  369. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/as2/authenticate.fla +0 -0
  370. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/as2/index.html +0 -0
  371. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/as3/Authentication.as +0 -0
  372. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/as3/authentication.fla +0 -0
  373. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/as3/index.html +0 -0
  374. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/flex/.actionScriptProperties +0 -0
  375. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/flex/.flexProperties +0 -0
  376. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/flex/.project +0 -0
  377. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/flex/build.xml +0 -0
  378. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/flex/deploy/index.html +0 -0
  379. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/flex/src/authentication.mxml +0 -0
  380. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/flash/ssa1/main.asc +0 -0
  381. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/python/client.py +0 -0
  382. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/python/server.py +0 -0
  383. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/authentication/python/server.wsgi +0 -0
  384. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/client/amf_version.py +0 -0
  385. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/client/authentication.py +0 -0
  386. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/client/basic.py +0 -0
  387. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/client/exception.py +0 -0
  388. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/client/headers.py +0 -0
  389. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/client/logger.py +0 -0
  390. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/client/referer.py +0 -0
  391. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/client/user_agent.py +0 -0
  392. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/Readme.txt +0 -0
  393. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flash/as1/deploy/index.html +0 -0
  394. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flash/as1/src/helloworld.as +0 -0
  395. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flash/as1/src/helloworld.fla +0 -0
  396. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flash/as2/deploy/index.html +0 -0
  397. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flash/as2/src/helloworld.as +0 -0
  398. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flash/as2/src/helloworld.fla +0 -0
  399. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flash/as3/deploy/index.html +0 -0
  400. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flash/as3/src/HelloWorld.as +0 -0
  401. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flash/as3/src/helloworld.fla +0 -0
  402. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flash/ssa1/main.asc +0 -0
  403. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flex/build.xml +0 -0
  404. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flex/deploy/index.html +0 -0
  405. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flex/remoteobject/build.xml +0 -0
  406. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flex/remoteobject/deploy/index.html +0 -0
  407. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flex/remoteobject/src/helloworld.mxml +0 -0
  408. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/flex/src/helloworld.mxml +0 -0
  409. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/python/client.py +0 -0
  410. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/python/crossdomain.xml +0 -0
  411. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/python/server.py +0 -0
  412. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/helloworld/python/server.wsgi +0 -0
  413. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/general/remoteobject/remoteobject_test.as +0 -0
  414. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/jython/ant/embedded/build.xml +0 -0
  415. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/jython/ant/embedded/src/java/org/pyamf/HelloWorld.java +0 -0
  416. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/jython/ant/embedded/src/python/client.py +0 -0
  417. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/jython/ant/embedded/src/python/server.py +0 -0
  418. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/jython/client.py +0 -0
  419. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/jython/demo_app.py +0 -0
  420. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/jython/swing/Readme.txt +0 -0
  421. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/jython/swing/client.py +0 -0
  422. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/jython/swing/gui.py +0 -0
  423. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/examples/jython/web.xml +0 -0
  424. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/appengine.rst +0 -0
  425. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/cherrypy.rst +0 -0
  426. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/django.rst +0 -0
  427. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/images/appengine-logo.gif +0 -0
  428. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/images/cherrypy-logo.jpg +0 -0
  429. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/images/django-logo.png +0 -0
  430. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/images/pylons-logo.png +0 -0
  431. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/images/sqlalchemy-logo.gif +0 -0
  432. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/images/turbogears-logo.png +0 -0
  433. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/index.rst +0 -0
  434. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/pylons.rst +0 -0
  435. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/sqlalchemy.rst +0 -0
  436. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/stackless.rst +0 -0
  437. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/turbogears.rst +0 -0
  438. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/twisted.rst +0 -0
  439. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/web2py.rst +0 -0
  440. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/gateways/werkzeug.rst +0 -0
  441. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/authentication/as2.rst +0 -0
  442. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/authentication/as3.rst +0 -0
  443. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/authentication/flex.rst +0 -0
  444. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/authentication/index.rst +0 -0
  445. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/authentication/ssa1.rst +0 -0
  446. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/client.rst +0 -0
  447. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/helloworld/as1.rst +0 -0
  448. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/helloworld/as2.rst +0 -0
  449. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/helloworld/as3.rst +0 -0
  450. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/helloworld/flex.rst +0 -0
  451. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/helloworld/index.rst +0 -0
  452. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/helloworld/ssa1.rst +0 -0
  453. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/index.rst +0 -0
  454. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/remoteobject.rst +0 -0
  455. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/general/sharedobject.rst +0 -0
  456. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/jython/ant.rst +0 -0
  457. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/jython/images/ant-logo.gif +0 -0
  458. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/jython/images/jython-logo.png +0 -0
  459. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/jython/images/modjy-pyamf.png +0 -0
  460. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/jython/images/swing-example.png +0 -0
  461. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/jython/index.rst +0 -0
  462. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/jython/modjy.rst +0 -0
  463. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/tutorials/jython/swing.rst +0 -0
  464. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/whatsnew/0.5.rst +0 -0
  465. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/whatsnew/0.6.rst +0 -0
  466. {Py3AMF-0.8.9 → py3amf-0.9.0}/doc/whatsnew/index.rst +0 -0
  467. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/__init__.py +0 -0
  468. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/__init__.py +0 -0
  469. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_array.py +0 -0
  470. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_collections.py +0 -0
  471. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_decimal.py +0 -0
  472. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_django_contrib_auth_models.py +0 -0
  473. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_django_db_models_base.py +0 -0
  474. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_django_db_models_fields.py +0 -0
  475. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_django_db_models_query.py +0 -0
  476. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_django_utils_translation.py +0 -0
  477. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_elixir.py +0 -0
  478. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_google_appengine_api_datastore_types.py +0 -0
  479. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_google_appengine_ext_blobstore.py +0 -0
  480. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_google_appengine_ext_db.py +0 -0
  481. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_google_appengine_ext_ndb.py +0 -0
  482. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_sets.py +0 -0
  483. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_sqlalchemy_orm.py +0 -0
  484. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_sqlalchemy_orm_collections.py +0 -0
  485. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/_weakref.py +0 -0
  486. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/gae_base.py +0 -0
  487. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/models.py +0 -0
  488. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/__init__.py +0 -0
  489. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/django_app/__init__.py +0 -0
  490. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/django_app/adapters/__init__.py +0 -0
  491. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/django_app/adapters/models.py +0 -0
  492. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/django_app/settings.py +0 -0
  493. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/google/__init__.py +0 -0
  494. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/google/_ndb_models.py +0 -0
  495. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/google/_xdb_models.py +0 -0
  496. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/google/test_blobstore.py +0 -0
  497. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/google/test_datastore_types.py +0 -0
  498. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/google/test_ndb.py +0 -0
  499. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/google/test_xdb.py +0 -0
  500. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/test_array.py +0 -0
  501. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/test_collections.py +0 -0
  502. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/test_django.py +0 -0
  503. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/test_elixir.py +0 -0
  504. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/tests/test_weakref.py +0 -0
  505. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/adapters/util.py +0 -0
  506. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/alias.py +0 -0
  507. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/amf0.py +0 -0
  508. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/flex/__init__.py +0 -0
  509. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/flex/data.py +0 -0
  510. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/flex/messaging.py +0 -0
  511. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/python.py +0 -0
  512. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/remoting/amf0.py +0 -0
  513. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/remoting/amf3.py +0 -0
  514. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/remoting/client/__init__.py +0 -0
  515. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/remoting/gateway/__init__.py +0 -0
  516. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/remoting/gateway/django.py +0 -0
  517. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/remoting/gateway/google.py +0 -0
  518. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/remoting/gateway/wsgi.py +0 -0
  519. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/sol.py +0 -0
  520. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/gateway/__init__.py +0 -0
  521. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/gateway/test_google.py +0 -0
  522. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/gateway/test_wsgi.py +0 -0
  523. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/imports/spam.py +0 -0
  524. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/modules/__init__.py +0 -0
  525. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/modules/test_decimal.py +0 -0
  526. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/modules/test_sets.py +0 -0
  527. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/remoting/__init__.py +0 -0
  528. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/remoting/test_amf0.py +0 -0
  529. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/remoting/test_client.py +0 -0
  530. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_adapters.py +0 -0
  531. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_adapters_util.py +0 -0
  532. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_amf0.py +0 -0
  533. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_codec.py +0 -0
  534. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_flex.py +0 -0
  535. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_flex_messaging.py +0 -0
  536. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_imports.py +0 -0
  537. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_versions.py +0 -0
  538. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/test_xml.py +0 -0
  539. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/tests/util.py +0 -0
  540. {Py3AMF-0.8.9 → py3amf-0.9.0}/pyamf/versions.py +0 -0
  541. {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 PyAMF.
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
  ----------------
@@ -4,6 +4,8 @@ prune doc/build
4
4
  prune doc/_build
5
5
  include setupinfo.py
6
6
  include *.txt
7
- include *.md
7
+ global-exclude *.md
8
8
  global-exclude *.swf
9
9
  global-exclude *.pyc
10
+ include cpyamf/*.pyx
11
+ include cpyamf/*.pxd
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.md
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
@@ -0,0 +1,4 @@
1
+ defusedxml>=0.7.1
2
+
3
+ [lxml]
4
+ lxml>=6.1.1
@@ -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.readBytes()
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.iteritems():
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 = PyString_FromStringAndSize(b, <Py_ssize_t>l)
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 = PyString_GET_SIZE(s)
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(PyString_AS_STRING(s), l)
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 = PyString_GET_SIZE(u)
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(PyString_AS_STRING(u), l)
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 PyString_CheckExact(data):
479
+ if not PyBytes_CheckExact(data):
459
480
  raise TypeError('expected str from xml.tostring')
460
481
 
461
- cdef Py_ssize_t l = PyString_GET_SIZE(data)
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(PyString_AS_STRING(data), l)
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.iteritems():
495
- if PyInt_Check(key) or PyLong_Check(key):
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)