diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..433cded --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,88 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source + +.PHONY: help clean html dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + -rm -rf build/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) build/html + @echo + @echo "Build finished. The HTML pages are in build/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) build/dirhtml + @echo + @echo "Build finished. The HTML pages are in build/dirhtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) build/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) build/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) build/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in build/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) build/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in build/qthelp, like this:" + @echo "# qcollectiongenerator build/qthelp/Pyogp.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile build/qthelp/Pyogp.qhc" + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) build/latex + @echo + @echo "Build finished; the LaTeX files are in build/latex." + @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \ + "run these through (pdf)latex." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) build/changes + @echo + @echo "The overview file is in build/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) build/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in build/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) build/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in build/doctest/output.txt." diff --git a/docs/README.txt b/docs/README.txt new file mode 100644 index 0000000..fa9ea65 --- /dev/null +++ b/docs/README.txt @@ -0,0 +1,16 @@ +This checkout contains the most recently complied version of the documentation in docs/html/. + +To rebuild the sphinx doc set: + +Get sphinx!!! + +Either use your virtualenv, or your native python install and run: + easy_install -U Sphinx + +Then, from the docs dir: + +1. python source/build.py +2. sphinx-build -a -c source/configure/ source/ html/ + +The docs/html/ directory will contain the fully compiled documentation set. +Please check in updated docs if you add functionality. \ No newline at end of file diff --git a/docs/html/.buildinfo b/docs/html/.buildinfo new file mode 100644 index 0000000..0885fbe --- /dev/null +++ b/docs/html/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: +tags: diff --git a/docs/html/.doctrees/environment.pickle b/docs/html/.doctrees/environment.pickle new file mode 100644 index 0000000..e2787ce Binary files /dev/null and b/docs/html/.doctrees/environment.pickle differ diff --git a/docs/html/.doctrees/history.doctree b/docs/html/.doctrees/history.doctree new file mode 100644 index 0000000..f23d190 Binary files /dev/null and b/docs/html/.doctrees/history.doctree differ diff --git a/docs/html/.doctrees/index.doctree b/docs/html/.doctrees/index.doctree new file mode 100644 index 0000000..ad87c96 Binary files /dev/null and b/docs/html/.doctrees/index.doctree differ diff --git a/docs/html/.doctrees/modules.doctree b/docs/html/.doctrees/modules.doctree new file mode 100644 index 0000000..c2fca6c Binary files /dev/null and b/docs/html/.doctrees/modules.doctree differ diff --git a/docs/html/.doctrees/modules/agent.doctree b/docs/html/.doctrees/modules/agent.doctree new file mode 100644 index 0000000..56da186 Binary files /dev/null and b/docs/html/.doctrees/modules/agent.doctree differ diff --git a/docs/html/.doctrees/modules/agentdomain.doctree b/docs/html/.doctrees/modules/agentdomain.doctree new file mode 100644 index 0000000..597f78d Binary files /dev/null and b/docs/html/.doctrees/modules/agentdomain.doctree differ diff --git a/docs/html/.doctrees/modules/agentmanager.doctree b/docs/html/.doctrees/modules/agentmanager.doctree new file mode 100644 index 0000000..c58f6a0 Binary files /dev/null and b/docs/html/.doctrees/modules/agentmanager.doctree differ diff --git a/docs/html/.doctrees/modules/appearance.doctree b/docs/html/.doctrees/modules/appearance.doctree new file mode 100644 index 0000000..8908e50 Binary files /dev/null and b/docs/html/.doctrees/modules/appearance.doctree differ diff --git a/docs/html/.doctrees/modules/base.doctree b/docs/html/.doctrees/modules/base.doctree new file mode 100644 index 0000000..bbc17d3 Binary files /dev/null and b/docs/html/.doctrees/modules/base.doctree differ diff --git a/docs/html/.doctrees/modules/build_packet_templates.doctree b/docs/html/.doctrees/modules/build_packet_templates.doctree new file mode 100644 index 0000000..69c85f3 Binary files /dev/null and b/docs/html/.doctrees/modules/build_packet_templates.doctree differ diff --git a/docs/html/.doctrees/modules/callbacks.doctree b/docs/html/.doctrees/modules/callbacks.doctree new file mode 100644 index 0000000..847fd47 Binary files /dev/null and b/docs/html/.doctrees/modules/callbacks.doctree differ diff --git a/docs/html/.doctrees/modules/caps.doctree b/docs/html/.doctrees/modules/caps.doctree new file mode 100644 index 0000000..dd856e6 Binary files /dev/null and b/docs/html/.doctrees/modules/caps.doctree differ diff --git a/docs/html/.doctrees/modules/circuit.doctree b/docs/html/.doctrees/modules/circuit.doctree new file mode 100644 index 0000000..c13f272 Binary files /dev/null and b/docs/html/.doctrees/modules/circuit.doctree differ diff --git a/docs/html/.doctrees/modules/config.doctree b/docs/html/.doctrees/modules/config.doctree new file mode 100644 index 0000000..f67872b Binary files /dev/null and b/docs/html/.doctrees/modules/config.doctree differ diff --git a/docs/html/.doctrees/modules/data_packer.doctree b/docs/html/.doctrees/modules/data_packer.doctree new file mode 100644 index 0000000..c36a473 Binary files /dev/null and b/docs/html/.doctrees/modules/data_packer.doctree differ diff --git a/docs/html/.doctrees/modules/data_unpacker.doctree b/docs/html/.doctrees/modules/data_unpacker.doctree new file mode 100644 index 0000000..b7efbfa Binary files /dev/null and b/docs/html/.doctrees/modules/data_unpacker.doctree differ diff --git a/docs/html/.doctrees/modules/datatypes.doctree b/docs/html/.doctrees/modules/datatypes.doctree new file mode 100644 index 0000000..127d212 Binary files /dev/null and b/docs/html/.doctrees/modules/datatypes.doctree differ diff --git a/docs/html/.doctrees/modules/enums.doctree b/docs/html/.doctrees/modules/enums.doctree new file mode 100644 index 0000000..7ca4b62 Binary files /dev/null and b/docs/html/.doctrees/modules/enums.doctree differ diff --git a/docs/html/.doctrees/modules/event_queue.doctree b/docs/html/.doctrees/modules/event_queue.doctree new file mode 100644 index 0000000..63ebd9a Binary files /dev/null and b/docs/html/.doctrees/modules/event_queue.doctree differ diff --git a/docs/html/.doctrees/modules/event_system.doctree b/docs/html/.doctrees/modules/event_system.doctree new file mode 100644 index 0000000..029c81a Binary files /dev/null and b/docs/html/.doctrees/modules/event_system.doctree differ diff --git a/docs/html/.doctrees/modules/events.doctree b/docs/html/.doctrees/modules/events.doctree new file mode 100644 index 0000000..b32bcad Binary files /dev/null and b/docs/html/.doctrees/modules/events.doctree differ diff --git a/docs/html/.doctrees/modules/exc.doctree b/docs/html/.doctrees/modules/exc.doctree new file mode 100644 index 0000000..e8a887f Binary files /dev/null and b/docs/html/.doctrees/modules/exc.doctree differ diff --git a/docs/html/.doctrees/modules/factory.doctree b/docs/html/.doctrees/modules/factory.doctree new file mode 100644 index 0000000..aaf9d95 Binary files /dev/null and b/docs/html/.doctrees/modules/factory.doctree differ diff --git a/docs/html/.doctrees/modules/groups.doctree b/docs/html/.doctrees/modules/groups.doctree new file mode 100644 index 0000000..6a40ef6 Binary files /dev/null and b/docs/html/.doctrees/modules/groups.doctree differ diff --git a/docs/html/.doctrees/modules/helpers.doctree b/docs/html/.doctrees/modules/helpers.doctree new file mode 100644 index 0000000..ed940bd Binary files /dev/null and b/docs/html/.doctrees/modules/helpers.doctree differ diff --git a/docs/html/.doctrees/modules/inventory.doctree b/docs/html/.doctrees/modules/inventory.doctree new file mode 100644 index 0000000..69433d7 Binary files /dev/null and b/docs/html/.doctrees/modules/inventory.doctree differ diff --git a/docs/html/.doctrees/modules/llsd_builder.doctree b/docs/html/.doctrees/modules/llsd_builder.doctree new file mode 100644 index 0000000..53b96d9 Binary files /dev/null and b/docs/html/.doctrees/modules/llsd_builder.doctree differ diff --git a/docs/html/.doctrees/modules/llsd_sender.doctree b/docs/html/.doctrees/modules/llsd_sender.doctree new file mode 100644 index 0000000..352d1f5 Binary files /dev/null and b/docs/html/.doctrees/modules/llsd_sender.doctree differ diff --git a/docs/html/.doctrees/modules/login.doctree b/docs/html/.doctrees/modules/login.doctree new file mode 100644 index 0000000..7d2c6f9 Binary files /dev/null and b/docs/html/.doctrees/modules/login.doctree differ diff --git a/docs/html/.doctrees/modules/message.doctree b/docs/html/.doctrees/modules/message.doctree new file mode 100644 index 0000000..e31b234 Binary files /dev/null and b/docs/html/.doctrees/modules/message.doctree differ diff --git a/docs/html/.doctrees/modules/mock_xmlrpc.doctree b/docs/html/.doctrees/modules/mock_xmlrpc.doctree new file mode 100644 index 0000000..762e246 Binary files /dev/null and b/docs/html/.doctrees/modules/mock_xmlrpc.doctree differ diff --git a/docs/html/.doctrees/modules/mockup_client.doctree b/docs/html/.doctrees/modules/mockup_client.doctree new file mode 100644 index 0000000..69bbba4 Binary files /dev/null and b/docs/html/.doctrees/modules/mockup_client.doctree differ diff --git a/docs/html/.doctrees/modules/mockup_net.doctree b/docs/html/.doctrees/modules/mockup_net.doctree new file mode 100644 index 0000000..c365426 Binary files /dev/null and b/docs/html/.doctrees/modules/mockup_net.doctree differ diff --git a/docs/html/.doctrees/modules/my_test_packetdata.doctree b/docs/html/.doctrees/modules/my_test_packetdata.doctree new file mode 100644 index 0000000..4484fd4 Binary files /dev/null and b/docs/html/.doctrees/modules/my_test_packetdata.doctree differ diff --git a/docs/html/.doctrees/modules/net.doctree b/docs/html/.doctrees/modules/net.doctree new file mode 100644 index 0000000..7394608 Binary files /dev/null and b/docs/html/.doctrees/modules/net.doctree differ diff --git a/docs/html/.doctrees/modules/objects.doctree b/docs/html/.doctrees/modules/objects.doctree new file mode 100644 index 0000000..a765b7f Binary files /dev/null and b/docs/html/.doctrees/modules/objects.doctree differ diff --git a/docs/html/.doctrees/modules/packet.doctree b/docs/html/.doctrees/modules/packet.doctree new file mode 100644 index 0000000..5447c51 Binary files /dev/null and b/docs/html/.doctrees/modules/packet.doctree differ diff --git a/docs/html/.doctrees/modules/packet_test.doctree b/docs/html/.doctrees/modules/packet_test.doctree new file mode 100644 index 0000000..30815e9 Binary files /dev/null and b/docs/html/.doctrees/modules/packet_test.doctree differ diff --git a/docs/html/.doctrees/modules/packethandler.doctree b/docs/html/.doctrees/modules/packethandler.doctree new file mode 100644 index 0000000..e4707d3 Binary files /dev/null and b/docs/html/.doctrees/modules/packethandler.doctree differ diff --git a/docs/html/.doctrees/modules/packets.doctree b/docs/html/.doctrees/modules/packets.doctree new file mode 100644 index 0000000..123e269 Binary files /dev/null and b/docs/html/.doctrees/modules/packets.doctree differ diff --git a/docs/html/.doctrees/modules/parse_packet.doctree b/docs/html/.doctrees/modules/parse_packet.doctree new file mode 100644 index 0000000..52abee8 Binary files /dev/null and b/docs/html/.doctrees/modules/parse_packet.doctree differ diff --git a/docs/html/.doctrees/modules/permissions.doctree b/docs/html/.doctrees/modules/permissions.doctree new file mode 100644 index 0000000..93ed18a Binary files /dev/null and b/docs/html/.doctrees/modules/permissions.doctree differ diff --git a/docs/html/.doctrees/modules/region.doctree b/docs/html/.doctrees/modules/region.doctree new file mode 100644 index 0000000..e7b2ae6 Binary files /dev/null and b/docs/html/.doctrees/modules/region.doctree differ diff --git a/docs/html/.doctrees/modules/sample_agent_login.doctree b/docs/html/.doctrees/modules/sample_agent_login.doctree new file mode 100644 index 0000000..4eba17a Binary files /dev/null and b/docs/html/.doctrees/modules/sample_agent_login.doctree differ diff --git a/docs/html/.doctrees/modules/sample_agent_manager.doctree b/docs/html/.doctrees/modules/sample_agent_manager.doctree new file mode 100644 index 0000000..e781d49 Binary files /dev/null and b/docs/html/.doctrees/modules/sample_agent_manager.doctree differ diff --git a/docs/html/.doctrees/modules/sample_appearance_management.doctree b/docs/html/.doctrees/modules/sample_appearance_management.doctree new file mode 100644 index 0000000..94143ac Binary files /dev/null and b/docs/html/.doctrees/modules/sample_appearance_management.doctree differ diff --git a/docs/html/.doctrees/modules/sample_chat_and_instant_messaging.doctree b/docs/html/.doctrees/modules/sample_chat_and_instant_messaging.doctree new file mode 100644 index 0000000..86e134e Binary files /dev/null and b/docs/html/.doctrees/modules/sample_chat_and_instant_messaging.doctree differ diff --git a/docs/html/.doctrees/modules/sample_group_chat.doctree b/docs/html/.doctrees/modules/sample_group_chat.doctree new file mode 100644 index 0000000..da05f02 Binary files /dev/null and b/docs/html/.doctrees/modules/sample_group_chat.doctree differ diff --git a/docs/html/.doctrees/modules/sample_group_creation.doctree b/docs/html/.doctrees/modules/sample_group_creation.doctree new file mode 100644 index 0000000..48fc1a1 Binary files /dev/null and b/docs/html/.doctrees/modules/sample_group_creation.doctree differ diff --git a/docs/html/.doctrees/modules/sample_inventory_handling.doctree b/docs/html/.doctrees/modules/sample_inventory_handling.doctree new file mode 100644 index 0000000..937d1ba Binary files /dev/null and b/docs/html/.doctrees/modules/sample_inventory_handling.doctree differ diff --git a/docs/html/.doctrees/modules/sample_inventory_transfer.doctree b/docs/html/.doctrees/modules/sample_inventory_transfer.doctree new file mode 100644 index 0000000..68f6d4d Binary files /dev/null and b/docs/html/.doctrees/modules/sample_inventory_transfer.doctree differ diff --git a/docs/html/.doctrees/modules/sample_inventory_transfer_specify_agent.doctree b/docs/html/.doctrees/modules/sample_inventory_transfer_specify_agent.doctree new file mode 100644 index 0000000..18a6b40 Binary files /dev/null and b/docs/html/.doctrees/modules/sample_inventory_transfer_specify_agent.doctree differ diff --git a/docs/html/.doctrees/modules/sample_login.doctree b/docs/html/.doctrees/modules/sample_login.doctree new file mode 100644 index 0000000..95335c7 Binary files /dev/null and b/docs/html/.doctrees/modules/sample_login.doctree differ diff --git a/docs/html/.doctrees/modules/sample_multi_region_connect.doctree b/docs/html/.doctrees/modules/sample_multi_region_connect.doctree new file mode 100644 index 0000000..db33418 Binary files /dev/null and b/docs/html/.doctrees/modules/sample_multi_region_connect.doctree differ diff --git a/docs/html/.doctrees/modules/sample_object_create_edit.doctree b/docs/html/.doctrees/modules/sample_object_create_edit.doctree new file mode 100644 index 0000000..7d5cbfc Binary files /dev/null and b/docs/html/.doctrees/modules/sample_object_create_edit.doctree differ diff --git a/docs/html/.doctrees/modules/sample_object_create_permissions.doctree b/docs/html/.doctrees/modules/sample_object_create_permissions.doctree new file mode 100644 index 0000000..9529f00 Binary files /dev/null and b/docs/html/.doctrees/modules/sample_object_create_permissions.doctree differ diff --git a/docs/html/.doctrees/modules/sample_object_creation.doctree b/docs/html/.doctrees/modules/sample_object_creation.doctree new file mode 100644 index 0000000..98c76e1 Binary files /dev/null and b/docs/html/.doctrees/modules/sample_object_creation.doctree differ diff --git a/docs/html/.doctrees/modules/sample_object_properties.doctree b/docs/html/.doctrees/modules/sample_object_properties.doctree new file mode 100644 index 0000000..cf97014 Binary files /dev/null and b/docs/html/.doctrees/modules/sample_object_properties.doctree differ diff --git a/docs/html/.doctrees/modules/sample_object_tracking.doctree b/docs/html/.doctrees/modules/sample_object_tracking.doctree new file mode 100644 index 0000000..4f47e0a Binary files /dev/null and b/docs/html/.doctrees/modules/sample_object_tracking.doctree differ diff --git a/docs/html/.doctrees/modules/sample_region_connect.doctree b/docs/html/.doctrees/modules/sample_region_connect.doctree new file mode 100644 index 0000000..2eba331 Binary files /dev/null and b/docs/html/.doctrees/modules/sample_region_connect.doctree differ diff --git a/docs/html/.doctrees/modules/settings.doctree b/docs/html/.doctrees/modules/settings.doctree new file mode 100644 index 0000000..e4677f3 Binary files /dev/null and b/docs/html/.doctrees/modules/settings.doctree differ diff --git a/docs/html/.doctrees/modules/stdlib_client.doctree b/docs/html/.doctrees/modules/stdlib_client.doctree new file mode 100644 index 0000000..baa636d Binary files /dev/null and b/docs/html/.doctrees/modules/stdlib_client.doctree differ diff --git a/docs/html/.doctrees/modules/template.doctree b/docs/html/.doctrees/modules/template.doctree new file mode 100644 index 0000000..3418caa Binary files /dev/null and b/docs/html/.doctrees/modules/template.doctree differ diff --git a/docs/html/.doctrees/modules/template_dict.doctree b/docs/html/.doctrees/modules/template_dict.doctree new file mode 100644 index 0000000..81c1686 Binary files /dev/null and b/docs/html/.doctrees/modules/template_dict.doctree differ diff --git a/docs/html/.doctrees/modules/template_parser.doctree b/docs/html/.doctrees/modules/template_parser.doctree new file mode 100644 index 0000000..787a5b6 Binary files /dev/null and b/docs/html/.doctrees/modules/template_parser.doctree differ diff --git a/docs/html/.doctrees/modules/testDocTests.doctree b/docs/html/.doctrees/modules/testDocTests.doctree new file mode 100644 index 0000000..ed9bfff Binary files /dev/null and b/docs/html/.doctrees/modules/testDocTests.doctree differ diff --git a/docs/html/.doctrees/modules/test_agent.doctree b/docs/html/.doctrees/modules/test_agent.doctree new file mode 100644 index 0000000..bc3efe9 Binary files /dev/null and b/docs/html/.doctrees/modules/test_agent.doctree differ diff --git a/docs/html/.doctrees/modules/test_circuits.doctree b/docs/html/.doctrees/modules/test_circuits.doctree new file mode 100644 index 0000000..d642e07 Binary files /dev/null and b/docs/html/.doctrees/modules/test_circuits.doctree differ diff --git a/docs/html/.doctrees/modules/test_datatypes.doctree b/docs/html/.doctrees/modules/test_datatypes.doctree new file mode 100644 index 0000000..678e735 Binary files /dev/null and b/docs/html/.doctrees/modules/test_datatypes.doctree differ diff --git a/docs/html/.doctrees/modules/test_event_queue.doctree b/docs/html/.doctrees/modules/test_event_queue.doctree new file mode 100644 index 0000000..3534532 Binary files /dev/null and b/docs/html/.doctrees/modules/test_event_queue.doctree differ diff --git a/docs/html/.doctrees/modules/test_events.doctree b/docs/html/.doctrees/modules/test_events.doctree new file mode 100644 index 0000000..2e13b4a Binary files /dev/null and b/docs/html/.doctrees/modules/test_events.doctree differ diff --git a/docs/html/.doctrees/modules/test_helpers.doctree b/docs/html/.doctrees/modules/test_helpers.doctree new file mode 100644 index 0000000..19bd4be Binary files /dev/null and b/docs/html/.doctrees/modules/test_helpers.doctree differ diff --git a/docs/html/.doctrees/modules/test_inventory.doctree b/docs/html/.doctrees/modules/test_inventory.doctree new file mode 100644 index 0000000..6f13f5d Binary files /dev/null and b/docs/html/.doctrees/modules/test_inventory.doctree differ diff --git a/docs/html/.doctrees/modules/test_legacy_login.doctree b/docs/html/.doctrees/modules/test_legacy_login.doctree new file mode 100644 index 0000000..5104b41 Binary files /dev/null and b/docs/html/.doctrees/modules/test_legacy_login.doctree differ diff --git a/docs/html/.doctrees/modules/test_llsd_builder.doctree b/docs/html/.doctrees/modules/test_llsd_builder.doctree new file mode 100644 index 0000000..edc4877 Binary files /dev/null and b/docs/html/.doctrees/modules/test_llsd_builder.doctree differ diff --git a/docs/html/.doctrees/modules/test_message_wrapper.doctree b/docs/html/.doctrees/modules/test_message_wrapper.doctree new file mode 100644 index 0000000..1e9d05b Binary files /dev/null and b/docs/html/.doctrees/modules/test_message_wrapper.doctree differ diff --git a/docs/html/.doctrees/modules/test_objects.doctree b/docs/html/.doctrees/modules/test_objects.doctree new file mode 100644 index 0000000..1ac0419 Binary files /dev/null and b/docs/html/.doctrees/modules/test_objects.doctree differ diff --git a/docs/html/.doctrees/modules/test_ogp_login.doctree b/docs/html/.doctrees/modules/test_ogp_login.doctree new file mode 100644 index 0000000..8accd3c Binary files /dev/null and b/docs/html/.doctrees/modules/test_ogp_login.doctree differ diff --git a/docs/html/.doctrees/modules/test_packetdata.doctree b/docs/html/.doctrees/modules/test_packetdata.doctree new file mode 100644 index 0000000..fd561a3 Binary files /dev/null and b/docs/html/.doctrees/modules/test_packetdata.doctree differ diff --git a/docs/html/.doctrees/modules/test_region.doctree b/docs/html/.doctrees/modules/test_region.doctree new file mode 100644 index 0000000..51e15cc Binary files /dev/null and b/docs/html/.doctrees/modules/test_region.doctree differ diff --git a/docs/html/.doctrees/modules/test_template_parser.doctree b/docs/html/.doctrees/modules/test_template_parser.doctree new file mode 100644 index 0000000..04d5a26 Binary files /dev/null and b/docs/html/.doctrees/modules/test_template_parser.doctree differ diff --git a/docs/html/.doctrees/modules/test_udp_deserializer.doctree b/docs/html/.doctrees/modules/test_udp_deserializer.doctree new file mode 100644 index 0000000..c2ed4c5 Binary files /dev/null and b/docs/html/.doctrees/modules/test_udp_deserializer.doctree differ diff --git a/docs/html/.doctrees/modules/test_udp_serializer.doctree b/docs/html/.doctrees/modules/test_udp_serializer.doctree new file mode 100644 index 0000000..c1b54f1 Binary files /dev/null and b/docs/html/.doctrees/modules/test_udp_serializer.doctree differ diff --git a/docs/html/.doctrees/modules/test_udpconnection.doctree b/docs/html/.doctrees/modules/test_udpconnection.doctree new file mode 100644 index 0000000..9d69bdc Binary files /dev/null and b/docs/html/.doctrees/modules/test_udpconnection.doctree differ diff --git a/docs/html/.doctrees/modules/types.doctree b/docs/html/.doctrees/modules/types.doctree new file mode 100644 index 0000000..23b9f1a Binary files /dev/null and b/docs/html/.doctrees/modules/types.doctree differ diff --git a/docs/html/.doctrees/modules/udpdeserializer.doctree b/docs/html/.doctrees/modules/udpdeserializer.doctree new file mode 100644 index 0000000..b0a49b8 Binary files /dev/null and b/docs/html/.doctrees/modules/udpdeserializer.doctree differ diff --git a/docs/html/.doctrees/modules/udpdispatcher.doctree b/docs/html/.doctrees/modules/udpdispatcher.doctree new file mode 100644 index 0000000..151a63f Binary files /dev/null and b/docs/html/.doctrees/modules/udpdispatcher.doctree differ diff --git a/docs/html/.doctrees/modules/udpserializer.doctree b/docs/html/.doctrees/modules/udpserializer.doctree new file mode 100644 index 0000000..6ba65df Binary files /dev/null and b/docs/html/.doctrees/modules/udpserializer.doctree differ diff --git a/docs/html/.doctrees/unittest.doctree b/docs/html/.doctrees/unittest.doctree new file mode 100644 index 0000000..0cf0cd6 Binary files /dev/null and b/docs/html/.doctrees/unittest.doctree differ diff --git a/docs/html/.doctrees/unittest/agent.doctree b/docs/html/.doctrees/unittest/agent.doctree new file mode 100644 index 0000000..f60197e Binary files /dev/null and b/docs/html/.doctrees/unittest/agent.doctree differ diff --git a/docs/html/.doctrees/unittest/base.doctree b/docs/html/.doctrees/unittest/base.doctree new file mode 100644 index 0000000..7f5b19e Binary files /dev/null and b/docs/html/.doctrees/unittest/base.doctree differ diff --git a/docs/html/.doctrees/unittest/basics.doctree b/docs/html/.doctrees/unittest/basics.doctree new file mode 100644 index 0000000..518d995 Binary files /dev/null and b/docs/html/.doctrees/unittest/basics.doctree differ diff --git a/docs/html/.doctrees/unittest/caps.doctree b/docs/html/.doctrees/unittest/caps.doctree new file mode 100644 index 0000000..acd881d Binary files /dev/null and b/docs/html/.doctrees/unittest/caps.doctree differ diff --git a/docs/html/.doctrees/unittest/config.doctree b/docs/html/.doctrees/unittest/config.doctree new file mode 100644 index 0000000..bf169f6 Binary files /dev/null and b/docs/html/.doctrees/unittest/config.doctree differ diff --git a/docs/html/.doctrees/unittest/login.doctree b/docs/html/.doctrees/unittest/login.doctree new file mode 100644 index 0000000..74eee5d Binary files /dev/null and b/docs/html/.doctrees/unittest/login.doctree differ diff --git a/docs/html/.doctrees/unittest/mock_xmlrpc.doctree b/docs/html/.doctrees/unittest/mock_xmlrpc.doctree new file mode 100644 index 0000000..444b1ca Binary files /dev/null and b/docs/html/.doctrees/unittest/mock_xmlrpc.doctree differ diff --git a/docs/html/.doctrees/unittest/mockup_client.doctree b/docs/html/.doctrees/unittest/mockup_client.doctree new file mode 100644 index 0000000..ba835c3 Binary files /dev/null and b/docs/html/.doctrees/unittest/mockup_client.doctree differ diff --git a/docs/html/.doctrees/unittest/mockup_net.doctree b/docs/html/.doctrees/unittest/mockup_net.doctree new file mode 100644 index 0000000..56fb9d4 Binary files /dev/null and b/docs/html/.doctrees/unittest/mockup_net.doctree differ diff --git a/docs/html/.doctrees/unittest/my_test_packetdata.doctree b/docs/html/.doctrees/unittest/my_test_packetdata.doctree new file mode 100644 index 0000000..530f793 Binary files /dev/null and b/docs/html/.doctrees/unittest/my_test_packetdata.doctree differ diff --git a/docs/html/.doctrees/unittest/network_test.doctree b/docs/html/.doctrees/unittest/network_test.doctree new file mode 100644 index 0000000..51ac761 Binary files /dev/null and b/docs/html/.doctrees/unittest/network_test.doctree differ diff --git a/docs/html/.doctrees/unittest/packet_handler.doctree b/docs/html/.doctrees/unittest/packet_handler.doctree new file mode 100644 index 0000000..4a3068a Binary files /dev/null and b/docs/html/.doctrees/unittest/packet_handler.doctree differ diff --git a/docs/html/.doctrees/unittest/packet_test.doctree b/docs/html/.doctrees/unittest/packet_test.doctree new file mode 100644 index 0000000..b2e4723 Binary files /dev/null and b/docs/html/.doctrees/unittest/packet_test.doctree differ diff --git a/docs/html/.doctrees/unittest/region.doctree b/docs/html/.doctrees/unittest/region.doctree new file mode 100644 index 0000000..717cc8f Binary files /dev/null and b/docs/html/.doctrees/unittest/region.doctree differ diff --git a/docs/html/.doctrees/unittest/testDocTests.doctree b/docs/html/.doctrees/unittest/testDocTests.doctree new file mode 100644 index 0000000..72f2650 Binary files /dev/null and b/docs/html/.doctrees/unittest/testDocTests.doctree differ diff --git a/docs/html/.doctrees/unittest/test_agent.doctree b/docs/html/.doctrees/unittest/test_agent.doctree new file mode 100644 index 0000000..f7085a6 Binary files /dev/null and b/docs/html/.doctrees/unittest/test_agent.doctree differ diff --git a/docs/html/.doctrees/unittest/test_circuits.doctree b/docs/html/.doctrees/unittest/test_circuits.doctree new file mode 100644 index 0000000..31a0b20 Binary files /dev/null and b/docs/html/.doctrees/unittest/test_circuits.doctree differ diff --git a/docs/html/.doctrees/unittest/test_datatypes.doctree b/docs/html/.doctrees/unittest/test_datatypes.doctree new file mode 100644 index 0000000..a176576 Binary files /dev/null and b/docs/html/.doctrees/unittest/test_datatypes.doctree differ diff --git a/docs/html/.doctrees/unittest/test_event_queue.doctree b/docs/html/.doctrees/unittest/test_event_queue.doctree new file mode 100644 index 0000000..46307b3 Binary files /dev/null and b/docs/html/.doctrees/unittest/test_event_queue.doctree differ diff --git a/docs/html/.doctrees/unittest/test_event_system.doctree b/docs/html/.doctrees/unittest/test_event_system.doctree new file mode 100644 index 0000000..c6ecded Binary files /dev/null and b/docs/html/.doctrees/unittest/test_event_system.doctree differ diff --git a/docs/html/.doctrees/unittest/test_events.doctree b/docs/html/.doctrees/unittest/test_events.doctree new file mode 100644 index 0000000..75b0c07 Binary files /dev/null and b/docs/html/.doctrees/unittest/test_events.doctree differ diff --git a/docs/html/.doctrees/unittest/test_helpers.doctree b/docs/html/.doctrees/unittest/test_helpers.doctree new file mode 100644 index 0000000..0a5ab5f Binary files /dev/null and b/docs/html/.doctrees/unittest/test_helpers.doctree differ diff --git a/docs/html/.doctrees/unittest/test_inventory.doctree b/docs/html/.doctrees/unittest/test_inventory.doctree new file mode 100644 index 0000000..f065774 Binary files /dev/null and b/docs/html/.doctrees/unittest/test_inventory.doctree differ diff --git a/docs/html/.doctrees/unittest/test_legacy_login.doctree b/docs/html/.doctrees/unittest/test_legacy_login.doctree new file mode 100644 index 0000000..7e706eb Binary files /dev/null and b/docs/html/.doctrees/unittest/test_legacy_login.doctree differ diff --git a/docs/html/.doctrees/unittest/test_llsd_builder.doctree b/docs/html/.doctrees/unittest/test_llsd_builder.doctree new file mode 100644 index 0000000..780877d Binary files /dev/null and b/docs/html/.doctrees/unittest/test_llsd_builder.doctree differ diff --git a/docs/html/.doctrees/unittest/test_message_wrapper.doctree b/docs/html/.doctrees/unittest/test_message_wrapper.doctree new file mode 100644 index 0000000..cde7b0f Binary files /dev/null and b/docs/html/.doctrees/unittest/test_message_wrapper.doctree differ diff --git a/docs/html/.doctrees/unittest/test_objects.doctree b/docs/html/.doctrees/unittest/test_objects.doctree new file mode 100644 index 0000000..d0a2048 Binary files /dev/null and b/docs/html/.doctrees/unittest/test_objects.doctree differ diff --git a/docs/html/.doctrees/unittest/test_ogp_login.doctree b/docs/html/.doctrees/unittest/test_ogp_login.doctree new file mode 100644 index 0000000..ddea510 Binary files /dev/null and b/docs/html/.doctrees/unittest/test_ogp_login.doctree differ diff --git a/docs/html/.doctrees/unittest/test_packetdata.doctree b/docs/html/.doctrees/unittest/test_packetdata.doctree new file mode 100644 index 0000000..5fd8b11 Binary files /dev/null and b/docs/html/.doctrees/unittest/test_packetdata.doctree differ diff --git a/docs/html/.doctrees/unittest/test_region.doctree b/docs/html/.doctrees/unittest/test_region.doctree new file mode 100644 index 0000000..f8a5059 Binary files /dev/null and b/docs/html/.doctrees/unittest/test_region.doctree differ diff --git a/docs/html/.doctrees/unittest/test_template_parser.doctree b/docs/html/.doctrees/unittest/test_template_parser.doctree new file mode 100644 index 0000000..1f88a5f Binary files /dev/null and b/docs/html/.doctrees/unittest/test_template_parser.doctree differ diff --git a/docs/html/.doctrees/unittest/test_udp_deserializer.doctree b/docs/html/.doctrees/unittest/test_udp_deserializer.doctree new file mode 100644 index 0000000..657cb6c Binary files /dev/null and b/docs/html/.doctrees/unittest/test_udp_deserializer.doctree differ diff --git a/docs/html/.doctrees/unittest/test_udp_serializer.doctree b/docs/html/.doctrees/unittest/test_udp_serializer.doctree new file mode 100644 index 0000000..7bf961b Binary files /dev/null and b/docs/html/.doctrees/unittest/test_udp_serializer.doctree differ diff --git a/docs/html/.doctrees/unittest/test_udpconnection.doctree b/docs/html/.doctrees/unittest/test_udpconnection.doctree new file mode 100644 index 0000000..585f261 Binary files /dev/null and b/docs/html/.doctrees/unittest/test_udpconnection.doctree differ diff --git a/docs/html/_sources/history.txt b/docs/html/_sources/history.txt new file mode 100644 index 0000000..0527f2e --- /dev/null +++ b/docs/html/_sources/history.txt @@ -0,0 +1,4 @@ +History +======= + +Some day there will be historical information here... \ No newline at end of file diff --git a/docs/html/_sources/index.txt b/docs/html/_sources/index.txt new file mode 100644 index 0000000..6b6c7eb --- /dev/null +++ b/docs/html/_sources/index.txt @@ -0,0 +1,48 @@ +.. _contents: + +Welcome to Pyogp API docs +========================= + +(doc set created |today|) + +Pyogp is a python library for interacting with virtual world environments like Second Life. Starting as a test framework for new Open Grid Protocol work led by Linden Lab, Pyogp continues as a client library for current and future protocols. + +This set of documents is primarily for use as API documentation. Pyogp is still young, and constantly evolving. Help refresh these docs regularly as work continues. + +Modules +======= + +Doc strings for all library files (modules) and their classes and methods. + +.. toctree:: + :maxdepth: 1 + + modules + +Unit Tests +========== + +Internal unit tests. + +.. toctree:: + :maxdepth: 1 + + unittest + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + + +History +======= + +.. toctree:: + :maxdepth: 1 + + history + diff --git a/docs/html/_sources/modules.txt b/docs/html/_sources/modules.txt new file mode 100644 index 0000000..24aa3cb --- /dev/null +++ b/docs/html/_sources/modules.txt @@ -0,0 +1,12 @@ +Modules +======= + +Modules refer to files, which naturally in turn contain classes and methods and functions. + +(doc set created |today|. Rebuild the docs to get a current snapshot. View docs/README.txt for guidance.) + +.. toctree:: + :glob: + + modules/* + diff --git a/docs/html/_sources/modules/agent.txt b/docs/html/_sources/modules/agent.txt new file mode 100644 index 0000000..6a92544 --- /dev/null +++ b/docs/html/_sources/modules/agent.txt @@ -0,0 +1,15 @@ +:mod:`agent` +============ + +.. automodule:: pyogp.lib.base.agent + +.. autoclass:: pyogp.lib.base.agent.Home + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.agent.Agent + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/agentdomain.txt b/docs/html/_sources/modules/agentdomain.txt new file mode 100644 index 0000000..eafc63e --- /dev/null +++ b/docs/html/_sources/modules/agentdomain.txt @@ -0,0 +1,10 @@ +:mod:`agentdomain` +================== + +.. automodule:: pyogp.lib.base.agentdomain + +.. autoclass:: pyogp.lib.base.agentdomain.AgentDomain + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/agentmanager.txt b/docs/html/_sources/modules/agentmanager.txt new file mode 100644 index 0000000..aa679fd --- /dev/null +++ b/docs/html/_sources/modules/agentmanager.txt @@ -0,0 +1,10 @@ +:mod:`agentmanager` +=================== + +.. automodule:: pyogp.lib.base.agentmanager + +.. autoclass:: pyogp.lib.base.agentmanager.AgentManager + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/appearance.txt b/docs/html/_sources/modules/appearance.txt new file mode 100644 index 0000000..295c338 --- /dev/null +++ b/docs/html/_sources/modules/appearance.txt @@ -0,0 +1,10 @@ +:mod:`appearance` +================= + +.. automodule:: pyogp.lib.base.appearance + +.. autoclass:: pyogp.lib.base.appearance.Appearance + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/build_packet_templates.txt b/docs/html/_sources/modules/build_packet_templates.txt new file mode 100644 index 0000000..875912b --- /dev/null +++ b/docs/html/_sources/modules/build_packet_templates.txt @@ -0,0 +1,5 @@ +:mod:`build_packet_templates` +============================= + +.. automodule:: pyogp.lib.base.utilities.build_packet_templates + diff --git a/docs/html/_sources/modules/callbacks.txt b/docs/html/_sources/modules/callbacks.txt new file mode 100644 index 0000000..24a49f5 --- /dev/null +++ b/docs/html/_sources/modules/callbacks.txt @@ -0,0 +1,10 @@ +:mod:`callbacks` +================ + +.. automodule:: pyogp.lib.base.utilities.callbacks + +.. autoclass:: pyogp.lib.base.utilities.callbacks.Callbacks + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/caps.txt b/docs/html/_sources/modules/caps.txt new file mode 100644 index 0000000..57ccf99 --- /dev/null +++ b/docs/html/_sources/modules/caps.txt @@ -0,0 +1,15 @@ +:mod:`caps` +=========== + +.. automodule:: pyogp.lib.base.caps + +.. autoclass:: pyogp.lib.base.caps.Capability + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.caps.SeedCapability + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/circuit.txt b/docs/html/_sources/modules/circuit.txt new file mode 100644 index 0000000..0f1eec6 --- /dev/null +++ b/docs/html/_sources/modules/circuit.txt @@ -0,0 +1,25 @@ +:mod:`circuit` +============== + +.. automodule:: pyogp.lib.base.message.circuit + +.. autoclass:: pyogp.lib.base.message.circuit.CircuitManager + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.circuit.PackFlags + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.circuit.Host + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.circuit.Circuit + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/data_packer.txt b/docs/html/_sources/modules/data_packer.txt new file mode 100644 index 0000000..a110065 --- /dev/null +++ b/docs/html/_sources/modules/data_packer.txt @@ -0,0 +1,20 @@ +:mod:`data_packer` +================== + +.. automodule:: pyogp.lib.base.message.data_packer + +.. autoclass:: pyogp.lib.base.message.data_packer.MsgType + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.data_packer.EndianType + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.data_packer.DataPacker + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/data_unpacker.txt b/docs/html/_sources/modules/data_unpacker.txt new file mode 100644 index 0000000..3b4ed2f --- /dev/null +++ b/docs/html/_sources/modules/data_unpacker.txt @@ -0,0 +1,20 @@ +:mod:`data_unpacker` +==================== + +.. automodule:: pyogp.lib.base.message.data_unpacker + +.. autoclass:: pyogp.lib.base.message.data_unpacker.EndianType + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.data_unpacker.MsgType + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.data_unpacker.DataUnpacker + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/datatypes.txt b/docs/html/_sources/modules/datatypes.txt new file mode 100644 index 0000000..f6da220 --- /dev/null +++ b/docs/html/_sources/modules/datatypes.txt @@ -0,0 +1,20 @@ +:mod:`datatypes` +================ + +.. automodule:: pyogp.lib.base.datatypes + +.. autoclass:: pyogp.lib.base.datatypes.Quaternion + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.datatypes.Vector3 + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.datatypes.UUID + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/enums.txt b/docs/html/_sources/modules/enums.txt new file mode 100644 index 0000000..529fa4b --- /dev/null +++ b/docs/html/_sources/modules/enums.txt @@ -0,0 +1,30 @@ +:mod:`enums` +============ + +.. automodule:: pyogp.lib.base.utilities.enums + +.. autoclass:: pyogp.lib.base.utilities.enums.CompressedUpdateFlags + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.utilities.enums.InventoryType + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.utilities.enums.PCode + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.utilities.enums.ImprovedIMDialogue + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.utilities.enums.ExtraParam + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/event_queue.txt b/docs/html/_sources/modules/event_queue.txt new file mode 100644 index 0000000..afbf1a5 --- /dev/null +++ b/docs/html/_sources/modules/event_queue.txt @@ -0,0 +1,20 @@ +:mod:`event_queue` +================== + +.. automodule:: pyogp.lib.base.event_queue + +.. autoclass:: pyogp.lib.base.event_queue.EventQueueClient + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.event_queue.EventQueueHandler + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.event_queue.EventQueueReceivedNotifier + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/event_system.txt b/docs/html/_sources/modules/event_system.txt new file mode 100644 index 0000000..aceda1e --- /dev/null +++ b/docs/html/_sources/modules/event_system.txt @@ -0,0 +1,15 @@ +:mod:`event_system` +=================== + +.. automodule:: pyogp.lib.base.event_system + +.. autoclass:: pyogp.lib.base.event_system.EventsHandler + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.event_system.EventNotifier + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/events.txt b/docs/html/_sources/modules/events.txt new file mode 100644 index 0000000..9a0362c --- /dev/null +++ b/docs/html/_sources/modules/events.txt @@ -0,0 +1,10 @@ +:mod:`events` +============= + +.. automodule:: pyogp.lib.base.utilities.events + +.. autoclass:: pyogp.lib.base.utilities.events.Event + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/exc.txt b/docs/html/_sources/modules/exc.txt new file mode 100644 index 0000000..f640313 --- /dev/null +++ b/docs/html/_sources/modules/exc.txt @@ -0,0 +1,160 @@ +:mod:`exc` +========== + +.. automodule:: pyogp.lib.base.exc + +.. autoclass:: pyogp.lib.base.exc.MessageDeserializationError + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.AgentDomainError + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.UserNotFound + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.ResourceNotFound + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.DataParsingError + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.AgentError + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.MessageSerializationError + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.DeserializationError + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.RegionSeedCapNotAvailable + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.RegionCapNotAvailable + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.MessageTemplateParsingError + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.UserNotAuthorized + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.DataUnpackingError + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.CircuitNotFound + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.ResourceError + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.CredentialDeserializerNotFound + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.NotImplemented + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.MessageSystemError + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.DeserializerNotFound + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.LoginError + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.SerializationError + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.ParseStartLocError + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.RegionDomainError + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.Error + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.HTTPError + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.DeserializationFailed + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.RegionMessageError + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.UserRezFailed + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.MessageTemplateNotFound + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.NetworkError + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.exc.MessageBuildingError + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/factory.txt b/docs/html/_sources/modules/factory.txt new file mode 100644 index 0000000..5f722c9 --- /dev/null +++ b/docs/html/_sources/modules/factory.txt @@ -0,0 +1,10 @@ +:mod:`factory` +============== + +.. automodule:: pyogp.lib.base.message.factory + +.. autoclass:: pyogp.lib.base.message.factory.MessageFactory + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/groups.txt b/docs/html/_sources/modules/groups.txt new file mode 100644 index 0000000..22f59af --- /dev/null +++ b/docs/html/_sources/modules/groups.txt @@ -0,0 +1,40 @@ +:mod:`groups` +============= + +.. automodule:: pyogp.lib.base.groups + +.. autoclass:: pyogp.lib.base.groups.ChatterBoxSessionEventReply_Message + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.groups.Group + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.groups.ChatterBoxSessionAgentListUpdates_Message + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.groups.MockChatInterface + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.groups.ChatterBoxSessionStartReply_Message + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.groups.GroupManager + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.groups.ChatterBoxInvitation_Message + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/helpers.txt b/docs/html/_sources/modules/helpers.txt new file mode 100644 index 0000000..6070336 --- /dev/null +++ b/docs/html/_sources/modules/helpers.txt @@ -0,0 +1,30 @@ +:mod:`helpers` +============== + +.. automodule:: pyogp.lib.base.utilities.helpers + +.. autoclass:: pyogp.lib.base.utilities.helpers.LLSDDeserializer + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.utilities.helpers.ListLLSDSerializer + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.utilities.helpers.Helpers + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.utilities.helpers.DictLLSDSerializer + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.utilities.helpers.Wait + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/inventory.txt b/docs/html/_sources/modules/inventory.txt new file mode 100644 index 0000000..390bf86 --- /dev/null +++ b/docs/html/_sources/modules/inventory.txt @@ -0,0 +1,30 @@ +:mod:`inventory` +================ + +.. automodule:: pyogp.lib.base.inventory + +.. autoclass:: pyogp.lib.base.inventory.InventoryFolder + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.inventory.InventoryItem + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.inventory.Inventory + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.inventory.AIS + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.inventory.UDP_Inventory + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/llsd_builder.txt b/docs/html/_sources/modules/llsd_builder.txt new file mode 100644 index 0000000..bd37545 --- /dev/null +++ b/docs/html/_sources/modules/llsd_builder.txt @@ -0,0 +1,25 @@ +:mod:`llsd_builder` +=================== + +.. automodule:: pyogp.lib.base.message.llsd_builder + +.. autoclass:: pyogp.lib.base.message.llsd_builder.MsgData + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.llsd_builder.MsgVariableData + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.llsd_builder.MsgBlockData + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.llsd_builder.LLSDMessageBuilder + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/llsd_sender.txt b/docs/html/_sources/modules/llsd_sender.txt new file mode 100644 index 0000000..5572b88 --- /dev/null +++ b/docs/html/_sources/modules/llsd_sender.txt @@ -0,0 +1,5 @@ +:mod:`llsd_sender` +================== + +.. automodule:: pyogp.lib.base.message.llsd_sender + diff --git a/docs/html/_sources/modules/login.txt b/docs/html/_sources/modules/login.txt new file mode 100644 index 0000000..a86987b --- /dev/null +++ b/docs/html/_sources/modules/login.txt @@ -0,0 +1,20 @@ +:mod:`login` +============ + +.. automodule:: pyogp.lib.base.login + +.. autoclass:: pyogp.lib.base.login.OGPLoginParams + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.login.Login + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.login.LegacyLoginParams + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/message.txt b/docs/html/_sources/modules/message.txt new file mode 100644 index 0000000..e67a225 --- /dev/null +++ b/docs/html/_sources/modules/message.txt @@ -0,0 +1,30 @@ +:mod:`message` +============== + +.. automodule:: pyogp.lib.base.message.message + +.. autoclass:: pyogp.lib.base.message.message.MsgData + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.message.Message + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.message.MsgVariableData + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.message.MsgBlockData + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.message.Block + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/net.txt b/docs/html/_sources/modules/net.txt new file mode 100644 index 0000000..fdbc0d9 --- /dev/null +++ b/docs/html/_sources/modules/net.txt @@ -0,0 +1,10 @@ +:mod:`net` +========== + +.. automodule:: pyogp.lib.base.network.net + +.. autoclass:: pyogp.lib.base.network.net.NetUDPClient + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/objects.txt b/docs/html/_sources/modules/objects.txt new file mode 100644 index 0000000..0f636a5 --- /dev/null +++ b/docs/html/_sources/modules/objects.txt @@ -0,0 +1,15 @@ +:mod:`objects` +============== + +.. automodule:: pyogp.lib.base.objects + +.. autoclass:: pyogp.lib.base.objects.Object + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.objects.Objects + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/packet.txt b/docs/html/_sources/modules/packet.txt new file mode 100644 index 0000000..ab1aa83 --- /dev/null +++ b/docs/html/_sources/modules/packet.txt @@ -0,0 +1,15 @@ +:mod:`packet` +============= + +.. automodule:: pyogp.lib.base.message.packet + +.. autoclass:: pyogp.lib.base.message.packet.PackFlags + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packet.UDPPacket + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/packethandler.txt b/docs/html/_sources/modules/packethandler.txt new file mode 100644 index 0000000..aab1f6c --- /dev/null +++ b/docs/html/_sources/modules/packethandler.txt @@ -0,0 +1,15 @@ +:mod:`packethandler` +==================== + +.. automodule:: pyogp.lib.base.message.packethandler + +.. autoclass:: pyogp.lib.base.message.packethandler.PacketHandler + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packethandler.PacketReceivedNotifier + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/packets.txt b/docs/html/_sources/modules/packets.txt new file mode 100644 index 0000000..90bbdf4 --- /dev/null +++ b/docs/html/_sources/modules/packets.txt @@ -0,0 +1,2375 @@ +:mod:`packets` +============== + +.. automodule:: pyogp.lib.base.message.packets + +.. autoclass:: pyogp.lib.base.message.packets.LeaveGroupReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.UUIDGroupNameReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectIncludeInSearchPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AvatarAppearancePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.PurgeInventoryDescendentsPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectClickActionPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AvatarSitResponsePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.CameraConstraintPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupVoteHistoryRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectShapePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AssetUploadRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupTitlesReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.EventLocationReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupTitleUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.StartLurePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ScriptAnswerYesPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ScriptControlChangePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.PayPriceReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.PreloadSoundPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SimulatorLoadPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ScriptSensorRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AlertMessagePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupActiveProposalsRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RegionHandshakeReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GrantGodlikePowersPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.OnlineNotificationPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelInfoReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RequestGodlikePowersPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.UpdateSimulatorPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectDelinkPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.MapNameRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AvatarInterestsUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.EstateCovenantReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.TrackAgentPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.TeleportLandmarkRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ScriptDataRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AgentRequestSitPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.EventInfoReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AgentWearablesUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RpcScriptRequestInboundForwardPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DataHomeLocationReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DirPopularQueryBackendPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.BuyObjectInventoryPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AgentPausePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DirLandReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SystemMessagePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.BulkUpdateInventoryPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.KickUserAckPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DirFindQueryBackendPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ChildAgentUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RemoveInventoryObjectsPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DirPopularReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelJoinPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.EjectGroupMemberReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ScriptSensorReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AgentDataUpdateRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ConfirmEnableSimulatorPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.FetchInventoryReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectPropertiesPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AgentMovementCompletePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AgentResumePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SetAlwaysRunPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.TeleportProgressPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SystemKickUserPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectDuplicatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupAccountSummaryReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.MeanCollisionAlertPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.TestMessagePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.CrossedRegionPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GodUpdateRegionInfoPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RezRestoreToWorldPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AgentUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AtomicPassObjectPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.VelocityInterpolateOnPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AgentThrottlePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.MapBlockRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.TeleportCancelPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupRoleMembersRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.CloseCircuitPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.InitiateDownloadPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RequestInventoryAssetPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.MultipleObjectUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelDividePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.TransferInventoryAckPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.FeatureDisabledPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.LogParcelChangesPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RpcChannelRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.MoveInventoryFolderPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ChildAgentPositionUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AvatarGroupsReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AgentAlertMessagePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.CompletePingCheckPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RezObjectPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DirGroupsReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.CreateInventoryItemPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RegionPresenceRequestByRegionIDPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.UserReportInternalPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupAccountDetailsRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupRoleUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.UpdateMuteListEntryPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ScriptMailRegistrationPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.LogFailedMoneyTransactionPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.InviteGroupRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GenericMessagePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.EdgeDataPacketPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SetCPURatioPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelObjectOwnersRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.CopyInventoryItemPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectGroupPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupActiveProposalItemReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelReclaimPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelPropertiesRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelPropertiesRequestByIDPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AgentSitPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ImagePacketPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupProposalBallotPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ScriptRunningReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelBuyPassPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AvatarPropertiesRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SaveAssetIntoInventoryPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.UseCachedMuteListPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.HealthMessagePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RoutedMoneyBalanceReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ActivateGesturesPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.LeaveGroupRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ImageDataPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectOwnerPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AgentHeightWidthPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.MapItemReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelSelectObjectsPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.NameValuePairPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DeactivateGesturesPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RegionInfoPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelDwellReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.LandStatRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectFlagUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectPermissionsPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelSetOtherCleanTimePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelInfoRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.MoneyBalanceRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GrantUserRightsPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SimulatorSetMapPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ChangeUserRightsPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.FindAgentPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DeRezObjectPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.CheckParcelSalesPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AvatarPickerRequestBackendPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.TerminateFriendshipPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupProfileRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.InternalScriptMailPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelAccessListUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ImageNotInDatabasePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.InventoryAssetResponsePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ReplyTaskInventoryPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.TransferPacketPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.UUIDGroupNameRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectDeGrabPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.LogDwellTimePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AvatarNotesReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelReturnObjectsPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RezObjectFromNotecardPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RegionHandleRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ClassifiedGodDeletePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RequestTaskInventoryPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ScriptResetPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupAccountTransactionsReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RequestParcelTransferPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.KillChildAgentsPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AvatarPicksReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectExtraParamsPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RemoveAttachmentPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelGodMarkAsContentPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AvatarPropertiesRequestBackendPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupRoleChangesPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectLinkPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ErrorPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectGrabUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.EventGodDeletePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ScriptDataReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SimWideDeletesPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupRoleDataRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ChildAgentUnknownPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AbortXferPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RequestImagePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AvatarInterestsReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GetScriptRunningPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.UUIDNameRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ViewerEffectPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SendXferPacketPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AttachedSoundPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.LogoutReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RequestPayPricePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.VelocityInterpolateOffPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupAccountSummaryRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.CancelAuctionPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RequestXferPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupRoleDataReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GodlikeMessagePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DeclineFriendshipPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RemoveInventoryFolderPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelClaimPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AvatarTextureUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.PlacesReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.EconomyDataRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RequestRegionInfoPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DirClassifiedQueryBackendPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RezSingleAttachmentFromInvPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RevokePermissionsPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DirPlacesQueryBackendPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelAccessListRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ClassifiedInfoUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AgentAnimationPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.NetTestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.PlacesQueryPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectExportSelectedPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectUpdateCompressedPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.NearestLandingRegionReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RemoveParcelPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.CoarseLocationUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.EmailMessageReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.TransferInventoryPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ClassifiedInfoReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectDeletePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AssetUploadCompletePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DataHomeLocationRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.InviteGroupResponsePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.MapBlockReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ImprovedInstantMessagePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RedoPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.MoveTaskInventoryPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectSpinStopPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SimulatorShutdownRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.TeleportLureRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.UpdateTaskInventoryPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelGodForceOwnerPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SimulatorPresentAtLocationPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DenyTrustedCircuitPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ScriptTeleportRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SimulatorViewerTimeMessagePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SetFollowCamPropertiesPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RegionPresenceRequestByHandlePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelPropertiesPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ViewerFrozenMessagePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.PacketAckPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ChatFromSimulatorPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.EstateCovenantRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AvatarNotesUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RetrieveInstantMessagesPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SimulatorMapUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.LoadURLPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ConfirmAuctionStartPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelMediaUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ImprovedTerseObjectUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DeRezAckPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.CreateTrustedCircuitPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.TransferAbortPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.StateSavePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupVoteHistoryItemReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectPropertiesFamilyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DirFindQueryPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RegionPresenceResponsePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AgentFOVPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.LiveHelpGroupRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.UpdateInventoryFolderPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.FetchInventoryDescendentsPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RemoveNameValuePairPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.PickInfoReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelRenamePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RpcChannelReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SendPostcardPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RemoveTaskInventoryPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DirPlacesQueryPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.EstateOwnerMessagePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.MoneyBalanceReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.FormFriendshipPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.JoinGroupRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectBuyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.EnableSimulatorPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.StartAuctionPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.CheckParcelAuctionsPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ReportAutosaveCrashPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelAuctionsPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AgentWearablesRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectDuplicateOnRayPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SubscribeLoadPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AvatarPropertiesReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RebakeAvatarTexturesPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupTitlesRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RequestMultipleObjectsPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.PickDeletePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.StartGroupProposalPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AgentDropGroupPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.MapItemRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SimulatorReadyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.TransferInfoPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ForceScriptControlReleasePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AvatarAnimationPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.UserReportPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelSalesPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AddCircuitCodePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.InventoryDescendentsPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.CreateGroupRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.TeleportLocalPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.FreezeUserPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DirPopularQueryPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ClassifiedInfoRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.UserInfoReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.MapLayerRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelBuyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectDeselectPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AvatarClassifiedReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.UUIDNameReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.UpdateGroupInfoPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectSelectPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.LogTextMessagePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupMembersReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.EventLocationRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DirPlacesReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.EjectGroupMemberRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DirLandQueryBackendPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DirLandQueryPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectPositionPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AgentIsNowWearingPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.EventNotificationAddRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ScriptDialogPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AvatarPickerRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ChildAgentAlivePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SetSimStatusInDatabasePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.UpdateUserInfoPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupNoticesListReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DerezContainerPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.EventNotificationRemoveRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AvatarPropertiesUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ModifyLandPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.TeleportLandingStatusChangedPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.MoveInventoryItemPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.UndoLandPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DeclineCallingCardPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupProfileReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.UpdateCreateInventoryItemPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ScriptDialogReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupMembersRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AgentGroupDataUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.FetchInventoryPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.EventInfoRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SetStartLocationRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RegionHandshakePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.MuteListUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectSpinStartPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.UndoPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.UnsubscribeLoadPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ClearFollowCamPropertiesPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SimCrashedPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupAccountDetailsReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectSpinUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DirPeopleReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.PickInfoUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ClassifiedDeletePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AgentCachedTextureResponsePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DetachAttachmentIntoInvPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.TeleportLocationRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AgentQuitCopyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GodKickUserPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AttachedSoundGainChangePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupNoticeAddPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ViewerStartAuctionPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SetSimPresenceInDatabasePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ForceObjectSelectPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ChatPassPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.LayerDataPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.UseCircuitCodePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ViewerStatsPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.CopyInventoryFromNotecardPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RequestTrustedCircuitPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelDeedToGroupPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.NearestLandingRegionRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.EmailMessageRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ActivateGroupPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DirClassifiedQueryPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ChildAgentDyingPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.CreateGroupReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelAccessListReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.PickGodDeletePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.LogoutRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SetGroupAcceptNoticesPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.TeleportRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SetGroupContributionPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectScalePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AvatarPickerReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.LiveHelpGroupReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AgentDataUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupDataUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectNamePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelMediaCommandMessagePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AgentCachedTexturePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.CompleteAgentMovementPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.TelehubInfoPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectUpdateCachedPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelOverlayPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.CreateLandmarkForEventPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.LandStatReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectRotationPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelReleasePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.KickUserPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DisableSimulatorPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.MuteListRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.MapLayerReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelDisableObjectsPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RezMultipleAttachmentsFromInvPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ChangeInventoryItemFlagsPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.NearestLandingRegionUpdatedPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.MergeParcelPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ConfirmXferPacketPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectAddPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectGrabPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.CreateNewOutfitAttachmentsPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SetScriptRunningPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectCategoryPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RpcScriptRequestInboundPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.KillObjectPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AcceptCallingCardPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SimStatsPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.TeleportStartPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupNoticeRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.UpdateInventoryItemPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectDropPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SimStatusPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.TransferRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectDescriptionPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectSaleInfoPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SoundTriggerPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DirEventsReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RpcScriptReplyInboundPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.OfflineNotificationPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.JoinGroupReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelDwellRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectDetachPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.StartPingCheckPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupAccountTransactionsRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.UserInfoRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RequestObjectPropertiesFamilyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.MoneyTransferBackendPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DirClassifiedReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.SetStartLocationPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectAttachPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectImagePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.TeleportFinishPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.CompleteAuctionPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RegionIDAndHandleReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelObjectOwnersReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RezScriptPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.OfferCallingCardPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RemoveMuteListEntryPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.TeleportFailedPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AgentSetAppearancePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.CreateInventoryFolderPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.AcceptFriendshipPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupRoleMembersReplyPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.GroupNoticesListRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.EjectUserPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ObjectMaterialPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.OpenCircuitPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ChatFromViewerPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.TallyVotesPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ScriptQuestionPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.NeighborListPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.EconomyDataPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.RemoveInventoryItemPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.UpdateAttachmentPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.ParcelPropertiesUpdatePacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.MoneyTransferRequestPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.DataServerLogoutPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.packets.UpdateParcelPacket + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/parse_packet.txt b/docs/html/_sources/modules/parse_packet.txt new file mode 100644 index 0000000..1a0e75a --- /dev/null +++ b/docs/html/_sources/modules/parse_packet.txt @@ -0,0 +1,10 @@ +:mod:`parse_packet` +=================== + +.. automodule:: pyogp.lib.base.utilities.parse_packet + +.. autoclass:: pyogp.lib.base.utilities.parse_packet.parsingStats + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/permissions.txt b/docs/html/_sources/modules/permissions.txt new file mode 100644 index 0000000..af40f2f --- /dev/null +++ b/docs/html/_sources/modules/permissions.txt @@ -0,0 +1,20 @@ +:mod:`permissions` +================== + +.. automodule:: pyogp.lib.base.permissions + +.. autoclass:: pyogp.lib.base.permissions.PermissionsMask + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.permissions.PermissionsTarget + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.permissions.Permissions + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/region.txt b/docs/html/_sources/modules/region.txt new file mode 100644 index 0000000..4d32fa9 --- /dev/null +++ b/docs/html/_sources/modules/region.txt @@ -0,0 +1,15 @@ +:mod:`region` +============= + +.. automodule:: pyogp.lib.base.region + +.. autoclass:: pyogp.lib.base.region.Region + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.region.RegionSeedCapability + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/settings.txt b/docs/html/_sources/modules/settings.txt new file mode 100644 index 0000000..6126702 --- /dev/null +++ b/docs/html/_sources/modules/settings.txt @@ -0,0 +1,10 @@ +:mod:`settings` +=============== + +.. automodule:: pyogp.lib.base.settings + +.. autoclass:: pyogp.lib.base.settings.Settings + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/stdlib_client.txt b/docs/html/_sources/modules/stdlib_client.txt new file mode 100644 index 0000000..41eb795 --- /dev/null +++ b/docs/html/_sources/modules/stdlib_client.txt @@ -0,0 +1,15 @@ +:mod:`stdlib_client` +==================== + +.. automodule:: pyogp.lib.base.network.stdlib_client + +.. autoclass:: pyogp.lib.base.network.stdlib_client.StdLibClient + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.network.stdlib_client.EventletClient + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/template.txt b/docs/html/_sources/modules/template.txt new file mode 100644 index 0000000..979a692 --- /dev/null +++ b/docs/html/_sources/modules/template.txt @@ -0,0 +1,45 @@ +:mod:`template` +=============== + +.. automodule:: pyogp.lib.base.message.template + +.. autoclass:: pyogp.lib.base.message.template.MsgData + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.template.MsgBlockType + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.template.MessageTemplateVariable + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.template.MessageTemplateBlock + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.template.MsgType + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.template.MessageTemplate + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.template.MsgVariableData + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.template.MsgBlockData + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/template_dict.txt b/docs/html/_sources/modules/template_dict.txt new file mode 100644 index 0000000..ef8b8e1 --- /dev/null +++ b/docs/html/_sources/modules/template_dict.txt @@ -0,0 +1,35 @@ +:mod:`template_dict` +==================== + +.. automodule:: pyogp.lib.base.message.template_dict + +.. autoclass:: pyogp.lib.base.message.template_dict.MessageTemplateParser + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.template_dict.MsgFrequency + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.template_dict.EndianType + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.template_dict.MsgType + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.template_dict.TemplateDictionary + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.template_dict.DataPacker + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/template_parser.txt b/docs/html/_sources/modules/template_parser.txt new file mode 100644 index 0000000..09be99f --- /dev/null +++ b/docs/html/_sources/modules/template_parser.txt @@ -0,0 +1,40 @@ +:mod:`template_parser` +====================== + +.. automodule:: pyogp.lib.base.message.template_parser + +.. autoclass:: pyogp.lib.base.message.template_parser.MsgTrust + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.template_parser.MessageTemplateParser + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.template_parser.MsgDeprecation + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.template_parser.MsgBlockType + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.template_parser.MsgFrequency + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.template_parser.MsgType + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.template_parser.MsgEncoding + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/types.txt b/docs/html/_sources/modules/types.txt new file mode 100644 index 0000000..a6dd42a --- /dev/null +++ b/docs/html/_sources/modules/types.txt @@ -0,0 +1,50 @@ +:mod:`types` +============ + +.. automodule:: pyogp.lib.base.message.types + +.. autoclass:: pyogp.lib.base.message.types.PackFlags + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.types.MsgTrust + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.types.EndianType + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.types.MsgDeprecation + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.types.MsgBlockType + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.types.MsgFrequency + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.types.MsgType + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.types.PacketLayout + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.types.MsgEncoding + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/udpdeserializer.txt b/docs/html/_sources/modules/udpdeserializer.txt new file mode 100644 index 0000000..8a09bf5 --- /dev/null +++ b/docs/html/_sources/modules/udpdeserializer.txt @@ -0,0 +1,70 @@ +:mod:`udpdeserializer` +====================== + +.. automodule:: pyogp.lib.base.message.udpdeserializer + +.. autoclass:: pyogp.lib.base.message.udpdeserializer.PackFlags + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpdeserializer.UDPPacketDeserializer + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpdeserializer.DataUnpacker + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpdeserializer.MsgData + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpdeserializer.UDPPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpdeserializer.MsgBlockType + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpdeserializer.EndianType + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpdeserializer.MsgFrequency + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpdeserializer.PacketLayout + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpdeserializer.TemplateDictionary + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpdeserializer.MsgType + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpdeserializer.MsgVariableData + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpdeserializer.MsgBlockData + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/udpdispatcher.txt b/docs/html/_sources/modules/udpdispatcher.txt new file mode 100644 index 0000000..95521bb --- /dev/null +++ b/docs/html/_sources/modules/udpdispatcher.txt @@ -0,0 +1,75 @@ +:mod:`udpdispatcher` +==================== + +.. automodule:: pyogp.lib.base.message.udpdispatcher + +.. autoclass:: pyogp.lib.base.message.udpdispatcher.PackFlags + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpdispatcher.UDPPacketDeserializer + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpdispatcher.DataUnpacker + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpdispatcher.CircuitManager + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpdispatcher.UDPPacketSerializer + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpdispatcher.UDPPacket + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpdispatcher.MsgBlockType + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpdispatcher.EndianType + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpdispatcher.MsgFrequency + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpdispatcher.PacketLayout + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpdispatcher.MsgType + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpdispatcher.Message + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpdispatcher.UDPDispatcher + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpdispatcher.Block + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/modules/udpserializer.txt b/docs/html/_sources/modules/udpserializer.txt new file mode 100644 index 0000000..e111b4d --- /dev/null +++ b/docs/html/_sources/modules/udpserializer.txt @@ -0,0 +1,35 @@ +:mod:`udpserializer` +==================== + +.. automodule:: pyogp.lib.base.message.udpserializer + +.. autoclass:: pyogp.lib.base.message.udpserializer.UDPPacketSerializer + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpserializer.MsgBlockType + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpserializer.EndianType + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpserializer.MsgType + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpserializer.TemplateDictionary + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.message.udpserializer.DataPacker + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/unittest.txt b/docs/html/_sources/unittest.txt new file mode 100644 index 0000000..28509c9 --- /dev/null +++ b/docs/html/_sources/unittest.txt @@ -0,0 +1,40 @@ +Unit Tests +========== + +Pyogp unit testing ~ pyogp.lib.base contains internal tests that validate consistency of the library implementation. Using unittest and doctest, along with wsgi and mock objects, these tests simulate interaction with a grid where needed, or use predefined data where possible, to validate methods and such. + +Coverage is unfortunately sparse currently, though, enough examples exist and the api is generally stable enough that tests can reliably be created now. + +Running Unit Tests +------------------ + +To run unit tests: + +1. navigate to a buildout checkout's root folder + +2. run bin/client_unittest + + a. useful parameters: + + i. vv: enables printing of test names + ii. (module name): run tests contained in a specific file + iii. test-file-pattern=TEST_FILE_PATTERN: run modules where filename matches pattern + iv. list: list all known tests + +3. disable logging via setting ENABLE_LOGGING_IN_TESTS to False + +Adding Tests +------------ + +doctest: add a {class}.txt file to pyogp.lib.base.tests. +unittest: add a test_{class}.py file to pyogp.lib.base.tests. + +base.py ~ contains the wsgi handlers for certain mock objects (like MockXMLRPC, etc) + +Current Tests +------------- + +.. toctree:: + :glob: + + unittest/* \ No newline at end of file diff --git a/docs/html/_sources/unittest/agent.txt b/docs/html/_sources/unittest/agent.txt new file mode 100644 index 0000000..edbc135 --- /dev/null +++ b/docs/html/_sources/unittest/agent.txt @@ -0,0 +1,37 @@ +agent +===== + + +.. module:: pyogp.lib.base.tests.agent + +This is a doctest, the content here is verbatim from the source file at pyogp.lib.base.tests.agent.txt. + +Agent +~~~~~ + +The 'agent' login case +~~~~~~~~~~~~~~~~~~~~~~ + +First, initialize the agent + + >>> from pyogp.lib.base.agent import Agent + >>> client = Agent() + +For testing, we need to set up the loginhandler and the loginuri + + >>> loginuri = 'http://localhost:12345/login.cgi' + +Setup test: import of the mock network client handler + + >>> from pyogp.lib.base.tests.mock_xmlrpc import MockXMLRPC + >>> from pyogp.lib.base.tests.base import MockXMLRPCLogin + >>> loginhandler = MockXMLRPC(MockXMLRPCLogin(), loginuri) + +Now let's log it in + + >>> client.login('http://localhost:12345/login.cgi', 'firstname', 'lastname', 'password', start_location = 'start_location', handler = loginhandler, connect_region = False) + +Evaluate the login response + + >>> client.login_response + {'region_y': '256', 'region_x': '256', 'first_name': '"first"', 'secure_session_id': '00000000-0000-0000-0000-000000000000', 'sim_ip': '127.0.0.1', 'agent_access': 'M', 'circuit_code': '600000000', 'look_at': '[r0.9963859999999999939,r-0.084939700000000006863,r0]', 'session_id': '00000000-0000-0000-0000-000000000000', 'udp_blacklist': 'EnableSimulator,TeleportFinish,CrossedRegion', 'seed_capability': 'https://somesim:12043/cap/00000000-0000-0000-0000-000000000000', 'agent_id': '00000000-0000-0000-0000-000000000000', 'last_name': 'last', 'inventory_host': 'someinvhost', 'start_location': 'last', 'sim_port': '13001', 'message': 'message', 'login': 'true', 'seconds_since_epoch': '1234567890'} \ No newline at end of file diff --git a/docs/html/_sources/unittest/base.txt b/docs/html/_sources/unittest/base.txt new file mode 100644 index 0000000..a26a334 --- /dev/null +++ b/docs/html/_sources/unittest/base.txt @@ -0,0 +1,25 @@ +:mod:`base` +=========== + +.. automodule:: pyogp.lib.base.tests.base + +.. autoclass:: pyogp.lib.base.tests.base.MockAgentDomainLogin + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.tests.base.StdLibClient + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.tests.base.MockAgentDomain + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.tests.base.MockXMLRPCLogin + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/unittest/basics.txt b/docs/html/_sources/unittest/basics.txt new file mode 100644 index 0000000..b0a8d54 --- /dev/null +++ b/docs/html/_sources/unittest/basics.txt @@ -0,0 +1,61 @@ +basics +====== + + +.. module:: pyogp.lib.base.network.tests.basics + +This is a doctest, the content here is verbatim from the source file at pyogp.lib.base.network.tests.basics.txt. + +Networking Basics +~~~~~~~~~~~~~~~~~ + +The networking layer is basically a replaceable REST client. It is defined as a utility +providing methods such as GET, POST etc. + +Let's retrieve the standard utility (this is overridden here in this test to use a mockup network library): + +>>> from pyogp.lib.base.exc import HTTPError +>>> from pyogp.lib.base.tests.mockup_client import MockupClient +>>> from pyogp.lib.base.tests.base import StdLibClient +>>> client = MockupClient(StdLibClient()) + +Now we can use it. Let's post something to our test server: + +>>> response = client.GET('http://localhost:12345/network/get') +>>> response.body +'Hello, World' + +Let's try a 404: + +>>> client.GET('http://localhost:12345/foobar') +Traceback (most recent call last): +... +HTTPError: 404 Not Found + +The error object also has some more information in it: + +>>> try: +... client.GET('http://localhost:12345/foobar') +... except HTTPError, error: +... pass + +Let's check what's available + +>>> error.code +404 +>>> error.msg +'Not Found' +>>> error.fp.read() +'resource not found.' + + +POSTing something +~~~~~~~~~~~~~~~~~ + +>>> response = client.POST('http://localhost:12345/network/post','test me') +>>> response.body +'returned: test me' + + + + diff --git a/docs/html/_sources/unittest/caps.txt b/docs/html/_sources/unittest/caps.txt new file mode 100644 index 0000000..1da8645 --- /dev/null +++ b/docs/html/_sources/unittest/caps.txt @@ -0,0 +1,132 @@ +caps +==== + + +.. module:: pyogp.lib.base.tests.caps + +This is a doctest, the content here is verbatim from the source file at pyogp.lib.base.tests.caps.txt. + +The Capabilities component +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The Capabilities component basically gives us two objects: a Capability +and a SeedCapability. + +We can instantiate a SeedCapability like this: + + >>> from pyogp.lib.base.tests.mockup_client import MockupClient + >>> from pyogp.lib.base.caps import SeedCapability, Capability + >>> from pyogp.lib.base.tests.base import MockAgentDomain + >>> client = MockupClient(MockAgentDomain()) + >>> seed = SeedCapability('seed', 'http://127.0.0.1:12345/seed_cap', client) + +We assume that we got the seed capability URL itself from login or some other service. + +We can now ask this SeedCapability object for new capabilities: + + >>> caps = seed.get(['some_capability', 'some_other']) + +The result is a dictionary object: + + >>> len(caps.keys()) + 2 + +whose contents are: + + >>> caps['some_capability'] + + >>> caps['some_other'] + + +Let's store the some_capability cap in a variable: + + >>> some_cap = caps['some_capability'] + +The capability now can be simply called with a payload and returns some data itself. + +First we call it: + + >>> data = some_cap.POST({'a':'b'}) + +And now we can check the data: + + >>> data['something'] + 'else' + >>> data['some'] + 12345 + +This data here is provided by the mockup server for testing. + +Internals +~~~~~~~~~ + +Each capability stores it's name and public URL which it is instantiated with. +We can access these like this: + + >>> some_cap.name + 'some_capability' + + >>> some_cap.public_url + 'http://localhost:12345/cap/some_capability' + +As we can see, it's not a secret URL in this mockup case but in production it will be. + +We can of course also just instantiate some capability directly: + + >>> cap = Capability("cap", "http://localhost:12345/cap/some_capability", client) + +and retrieve it via GET: + + >>> cap.GET() + {'some': 12345, 'something': 'else'} + + +or post something to it (the demo will simply update the base dict): + + >>> cap.POST({'Tao':'Takashi'}) + {'Tao': 'Takashi', 'some': 12345, 'something': 'else'} + + +Testing errors +~~~~~~~~~~~~~~ + +Now we can test what happens to our code when the server returns a wrong content type. +In this case it should not find a deserializer and say so:: + + >>> seed = SeedCapability('seed', 'http://127.0.0.1:12345/seed_cap_wrong_content_type', client) + >>> cap = seed.get(['some_capability']) + Traceback (most recent call last): + ... + DeserializerNotFound: deserialization for 'text/foobar' not supported + +Try the same for GET: + + >>> cap = Capability('test','http://127.0.0.1:12345/cap_wrong_content_type', client) + >>> cap.GET() + Traceback (most recent call last): + ... + DeserializerNotFound: deserialization for 'text/foobar' not supported + + + +Now we test if network errors are handled correctly:: + + >>> cap = Capability('test','http://127.0.0.1:12345/cap/error', client) + >>> cap.POST({'test':'testing'}) + Traceback (most recent call last): + ... + ResourceError: Error using 'POST' on resource 'http://127.0.0.1:12345/cap/error': Internal Server Error (500) + + +And some 404: + + >>> cap = Capability('test','http://127.0.0.1:12345/cap/unkown', client) + >>> cap.POST({'test':'testing'}) + Traceback (most recent call last): + ... + ResourceNotFound: http://127.0.0.1:12345/cap/unkown + + + + + diff --git a/docs/html/_sources/unittest/config.txt b/docs/html/_sources/unittest/config.txt new file mode 100644 index 0000000..5823f40 --- /dev/null +++ b/docs/html/_sources/unittest/config.txt @@ -0,0 +1,5 @@ +:mod:`config` +============= + +.. automodule:: pyogp.lib.base.tests.config + diff --git a/docs/html/_sources/unittest/login.txt b/docs/html/_sources/unittest/login.txt new file mode 100644 index 0000000..fcbd6e5 --- /dev/null +++ b/docs/html/_sources/unittest/login.txt @@ -0,0 +1,105 @@ +login +===== + + +.. module:: pyogp.lib.base.tests.login + +This is a doctest, the content here is verbatim from the source file at pyogp.lib.base.tests.login.txt. + +Login +~~~~~ + +First the 'legacy' login case +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +First, initialize login and the loginuri + + >>> from pyogp.lib.base.login import Login + >>> login = Login() + >>> loginuri = 'http://localhost:12345/login.cgi' + +Setup test: import of the mock network client handler + + >>> from pyogp.lib.base.tests.mock_xmlrpc import MockXMLRPC + >>> from pyogp.lib.base.tests.base import MockXMLRPCLogin + >>> loginhandler = MockXMLRPC(MockXMLRPCLogin(), loginuri) + +Now, set up the login parameters: + + >>> from pyogp.lib.base.login import LegacyLoginParams + >>> login_params = LegacyLoginParams('first', 'last', 'secret') + +Now, login to the legacy login endpoint (using the mock test object as the endpoint). +The login function returns the response as a dict. + + >>> login.login(loginuri, login_params, 'start_location', handler = loginhandler) + {'region_y': '256', 'region_x': '256', 'first_name': '"first"', 'secure_session_id': '00000000-0000-0000-0000-000000000000', 'sim_ip': '127.0.0.1', 'agent_access': 'M', 'circuit_code': '600000000', 'look_at': '[r0.9963859999999999939,r-0.084939700000000006863,r0]', 'session_id': '00000000-0000-0000-0000-000000000000', 'udp_blacklist': 'EnableSimulator,TeleportFinish,CrossedRegion', 'seed_capability': 'https://somesim:12043/cap/00000000-0000-0000-0000-000000000000', 'agent_id': '00000000-0000-0000-0000-000000000000', 'last_name': 'last', 'inventory_host': 'someinvhost', 'start_location': 'last', 'sim_port': '13001', 'message': 'message', 'login': 'true', 'seconds_since_epoch': '1234567890'} + +Evaluate the login response stored in the login class + + >>> login.response['login'] + 'true' + + >>> login.response['seed_capability'] + 'https://somesim:12043/cap/00000000-0000-0000-0000-000000000000' + +Next, LegacyLoginParams +~~~~~~~~~~~~~~~~~~~~~~~ + +This is easy, just test it + + >>> from pyogp.lib.base.login import LegacyLoginParams + >>> login_params = LegacyLoginParams('first', 'last', 'pass') + >>> login_params = login_params.serialize() + + >>> login_params + {'passwd': 'pass', 'last': 'last', 'first': 'first'} + +Now, how about testing the 'ogp' case +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +First, initialize login and the loginuri + + >>> from pyogp.lib.base.login import Login + >>> login = Login() + >>> loginuri = 'http://localhost:12345/auth.cgi' + +Setup test: import of the mock network client handler + + >>> from pyogp.lib.base.network.tests.mockup_client import MockupClient + >>> from pyogp.lib.base.tests.base import MockAgentDomainLogin + >>> loginhandler = MockupClient(MockAgentDomainLogin()) + +Now, set up the login parameters: + + >>> from pyogp.lib.base.login import OGPLoginParams + >>> login_params = OGPLoginParams('first', 'last', 'secret') + +Now, login to the ogp login endpoint aka agent domain (using the mock test object as the endpoint). +The login function returns the response as a dict. + + >>> login.login(loginuri, login_params, 'start_location', handler = loginhandler) + {'agent_seed_capability': 'http://127.0.0.1:12345/seed_cap', 'authenticated': True} + +Evaluate the login response stored in the login class + + >>> login.response['authenticated'] + True + + >>> login.response['agent_seed_capability'] + 'http://127.0.0.1:12345/seed_cap' + +Next, OGPLoginParams +~~~~~~~~~~~~~~~~~~~~ + +This is easy, just test it + + >>> from pyogp.lib.base.login import OGPLoginParams + >>> login_params = OGPLoginParams('first', 'last', 'pass') + + >>> login_params.content_type + 'application/llsd+xml' + + >>> login_params = login_params.serialize() + >>> login_params + 'lastnamelastpasswordpassfirstnamefirst' diff --git a/docs/html/_sources/unittest/mock_xmlrpc.txt b/docs/html/_sources/unittest/mock_xmlrpc.txt new file mode 100644 index 0000000..464d12d --- /dev/null +++ b/docs/html/_sources/unittest/mock_xmlrpc.txt @@ -0,0 +1,10 @@ +:mod:`mock_xmlrpc` +================== + +.. automodule:: pyogp.lib.base.tests.mock_xmlrpc + +.. autoclass:: pyogp.lib.base.tests.mock_xmlrpc.MockXMLRPC + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/unittest/mockup_client.txt b/docs/html/_sources/unittest/mockup_client.txt new file mode 100644 index 0000000..d89c44e --- /dev/null +++ b/docs/html/_sources/unittest/mockup_client.txt @@ -0,0 +1,10 @@ +:mod:`mockup_client` +==================== + +.. automodule:: pyogp.lib.base.tests.mockup_client + +.. autoclass:: pyogp.lib.base.tests.mockup_client.MockupClient + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/unittest/mockup_net.txt b/docs/html/_sources/unittest/mockup_net.txt new file mode 100644 index 0000000..7e0e1e4 --- /dev/null +++ b/docs/html/_sources/unittest/mockup_net.txt @@ -0,0 +1,15 @@ +:mod:`mockup_net` +================= + +.. automodule:: pyogp.lib.base.tests.mockup_net + +.. autoclass:: pyogp.lib.base.tests.mockup_net.MockupUDPClient + :members: + :undoc-members: + :inherited-members: + +.. autoclass:: pyogp.lib.base.tests.mockup_net.MockupUDPServer + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/unittest/my_test_packetdata.txt b/docs/html/_sources/unittest/my_test_packetdata.txt new file mode 100644 index 0000000..7d1ee0d --- /dev/null +++ b/docs/html/_sources/unittest/my_test_packetdata.txt @@ -0,0 +1,10 @@ +:mod:`my_test_packetdata` +========================= + +.. automodule:: pyogp.lib.base.message.tests.my_test_packetdata + +.. autoclass:: pyogp.lib.base.message.tests.my_test_packetdata.TestPacketDecode + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/unittest/network_test.txt b/docs/html/_sources/unittest/network_test.txt new file mode 100644 index 0000000..25fe517 --- /dev/null +++ b/docs/html/_sources/unittest/network_test.txt @@ -0,0 +1,25 @@ +network_test +============ + + +.. module:: pyogp.lib.base.network.tests.network_test + +This is a doctest, the content here is verbatim from the source file at pyogp.lib.base.network.tests.network_test.txt. + +""" +Contributors can be viewed at: +http://svn.secondlife.com/svn/linden/projects/2008/pyogp/CONTRIBUTORS.txt + +$LicenseInfo:firstyear=2008&license=apachev2$ + +Copyright 2009, Linden Research, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"). +You may obtain a copy of the License at: + http://www.apache.org/licenses/LICENSE-2.0 +or in + http://svn.secondlife.com/svn/linden/projects/2008/pyogp/LICENSE.txt + +$/LicenseInfo$ +""" + diff --git a/docs/html/_sources/unittest/packet_handler.txt b/docs/html/_sources/unittest/packet_handler.txt new file mode 100644 index 0000000..3bb78ae --- /dev/null +++ b/docs/html/_sources/unittest/packet_handler.txt @@ -0,0 +1,34 @@ +packet_handler +============== + + +.. module:: pyogp.lib.base.tests.packet_handler + +This is a doctest, the content here is verbatim from the source file at pyogp.lib.base.tests.packet_handler.txt. + +PacketHandler +~~~~~~~~~~~~~ + +The basic packet handling event/callbackcase +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +First, initialize the packet handler + >>> from pyogp.lib.base.message.packethandler import PacketHandler + >>> packet_handler = PacketHandler() + +How about a mock callback handler + >>> def callback(packet): print packet + + >>> onStartPingCheck_received = packet_handler._register("StartPingCheck") + >>> onStartPingCheck_received.subscribe(callback) + +Stage a packet + >>> from pyogp.lib.base.message.packets import StartPingCheckPacket + >>> packet = StartPingCheckPacket() + +Fire the event, it returns a packet +Unpossible to include this in the test, the memory ref keeps changing +But, you get the idea... + event_data = packet_handler._handle(packet) + + diff --git a/docs/html/_sources/unittest/packet_test.txt b/docs/html/_sources/unittest/packet_test.txt new file mode 100644 index 0000000..efbcf3a --- /dev/null +++ b/docs/html/_sources/unittest/packet_test.txt @@ -0,0 +1,10 @@ +:mod:`packet_test` +================== + +.. automodule:: pyogp.lib.base.message.tests.packet_test + +.. autoclass:: pyogp.lib.base.message.tests.packet_test.PacketTest + :members: + :undoc-members: + :inherited-members: + diff --git a/docs/html/_sources/unittest/region.txt b/docs/html/_sources/unittest/region.txt new file mode 100644 index 0000000..e032ec8 --- /dev/null +++ b/docs/html/_sources/unittest/region.txt @@ -0,0 +1,20 @@ +region +====== + + +.. module:: pyogp.lib.base.tests.region + +This is a doctest, the content here is verbatim from the source file at pyogp.lib.base.tests.region.txt. + +Region +~~~~~~ + +The 'region' object creation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +First, initialize the region + + >>> from pyogp.lib.base.region import Region + >>> region = Region() + +Not complete... \ No newline at end of file diff --git a/docs/html/_sources/unittest/testDocTests.txt b/docs/html/_sources/unittest/testDocTests.txt new file mode 100644 index 0000000..184bcc2 --- /dev/null +++ b/docs/html/_sources/unittest/testDocTests.txt @@ -0,0 +1,5 @@ +:mod:`testDocTests` +=================== + +.. automodule:: pyogp.lib.base.tests.testDocTests + diff --git a/docs/html/_sources/unittest/test_agent.txt b/docs/html/_sources/unittest/test_agent.txt new file mode 100644 index 0000000..358b153 --- /dev/null +++ b/docs/html/_sources/unittest/test_agent.txt @@ -0,0 +1,9 @@ +:mod:`test_agent` +================= + +.. automodule:: pyogp.lib.base.tests.test_agent + +.. autoclass:: pyogp.lib.base.tests.test_agent.TestAgent + :members: + :undoc-members: + diff --git a/docs/html/_sources/unittest/test_circuits.txt b/docs/html/_sources/unittest/test_circuits.txt new file mode 100644 index 0000000..d0040d1 --- /dev/null +++ b/docs/html/_sources/unittest/test_circuits.txt @@ -0,0 +1,17 @@ +:mod:`test_circuits` +==================== + +.. automodule:: pyogp.lib.base.message.tests.test_circuits + +.. autoclass:: pyogp.lib.base.message.tests.test_circuits.TestCircuitManager + :members: + :undoc-members: + +.. autoclass:: pyogp.lib.base.message.tests.test_circuits.TestHost + :members: + :undoc-members: + +.. autoclass:: pyogp.lib.base.message.tests.test_circuits.TestCircuit + :members: + :undoc-members: + diff --git a/docs/html/_sources/unittest/test_datatypes.txt b/docs/html/_sources/unittest/test_datatypes.txt new file mode 100644 index 0000000..a38bad5 --- /dev/null +++ b/docs/html/_sources/unittest/test_datatypes.txt @@ -0,0 +1,9 @@ +:mod:`test_datatypes` +===================== + +.. automodule:: pyogp.lib.base.tests.test_datatypes + +.. autoclass:: pyogp.lib.base.tests.test_datatypes.TestDatatypes + :members: + :undoc-members: + diff --git a/docs/html/_sources/unittest/test_event_queue.txt b/docs/html/_sources/unittest/test_event_queue.txt new file mode 100644 index 0000000..e147852 --- /dev/null +++ b/docs/html/_sources/unittest/test_event_queue.txt @@ -0,0 +1,9 @@ +:mod:`test_event_queue` +======================= + +.. automodule:: pyogp.lib.base.tests.test_event_queue + +.. autoclass:: pyogp.lib.base.tests.test_event_queue.TestEventQueue + :members: + :undoc-members: + diff --git a/docs/html/_sources/unittest/test_event_system.txt b/docs/html/_sources/unittest/test_event_system.txt new file mode 100644 index 0000000..1cb3f19 --- /dev/null +++ b/docs/html/_sources/unittest/test_event_system.txt @@ -0,0 +1,13 @@ +:mod:`test_event_system` +======================== + +.. automodule:: pyogp.lib.base.tests.test_event_system + +.. autoclass:: pyogp.lib.base.tests.test_event_system.TestEvents + :members: + :undoc-members: + +.. autoclass:: pyogp.lib.base.tests.test_event_system.MockEvent + :members: + :undoc-members: + diff --git a/docs/html/_sources/unittest/test_events.txt b/docs/html/_sources/unittest/test_events.txt new file mode 100644 index 0000000..d2ce855 --- /dev/null +++ b/docs/html/_sources/unittest/test_events.txt @@ -0,0 +1,9 @@ +:mod:`test_events` +================== + +.. automodule:: pyogp.lib.base.tests.test_events + +.. autoclass:: pyogp.lib.base.tests.test_events.TestEvents + :members: + :undoc-members: + diff --git a/docs/html/_sources/unittest/test_helpers.txt b/docs/html/_sources/unittest/test_helpers.txt new file mode 100644 index 0000000..54322e6 --- /dev/null +++ b/docs/html/_sources/unittest/test_helpers.txt @@ -0,0 +1,9 @@ +:mod:`test_helpers` +=================== + +.. automodule:: pyogp.lib.base.tests.test_helpers + +.. autoclass:: pyogp.lib.base.tests.test_helpers.TestHelpers + :members: + :undoc-members: + diff --git a/docs/html/_sources/unittest/test_inventory.txt b/docs/html/_sources/unittest/test_inventory.txt new file mode 100644 index 0000000..0278333 --- /dev/null +++ b/docs/html/_sources/unittest/test_inventory.txt @@ -0,0 +1,9 @@ +:mod:`test_inventory` +===================== + +.. automodule:: pyogp.lib.base.tests.test_inventory + +.. autoclass:: pyogp.lib.base.tests.test_inventory.TestInventory + :members: + :undoc-members: + diff --git a/docs/html/_sources/unittest/test_legacy_login.txt b/docs/html/_sources/unittest/test_legacy_login.txt new file mode 100644 index 0000000..92a7689 --- /dev/null +++ b/docs/html/_sources/unittest/test_legacy_login.txt @@ -0,0 +1,9 @@ +:mod:`test_legacy_login` +======================== + +.. automodule:: pyogp.lib.base.tests.test_legacy_login + +.. autoclass:: pyogp.lib.base.tests.test_legacy_login.TestLegacyLogin + :members: + :undoc-members: + diff --git a/docs/html/_sources/unittest/test_llsd_builder.txt b/docs/html/_sources/unittest/test_llsd_builder.txt new file mode 100644 index 0000000..3287cbe --- /dev/null +++ b/docs/html/_sources/unittest/test_llsd_builder.txt @@ -0,0 +1,9 @@ +:mod:`test_llsd_builder` +======================== + +.. automodule:: pyogp.lib.base.message.tests.test_llsd_builder + +.. autoclass:: pyogp.lib.base.message.tests.test_llsd_builder.TestLLSDBuilder + :members: + :undoc-members: + diff --git a/docs/html/_sources/unittest/test_message_wrapper.txt b/docs/html/_sources/unittest/test_message_wrapper.txt new file mode 100644 index 0000000..ddeb1e7 --- /dev/null +++ b/docs/html/_sources/unittest/test_message_wrapper.txt @@ -0,0 +1,9 @@ +:mod:`test_message_wrapper` +=========================== + +.. automodule:: pyogp.lib.base.message.tests.test_message_wrapper + +.. autoclass:: pyogp.lib.base.message.tests.test_message_wrapper.TestMessage + :members: + :undoc-members: + diff --git a/docs/html/_sources/unittest/test_objects.txt b/docs/html/_sources/unittest/test_objects.txt new file mode 100644 index 0000000..ab3ce11 --- /dev/null +++ b/docs/html/_sources/unittest/test_objects.txt @@ -0,0 +1,9 @@ +:mod:`test_objects` +=================== + +.. automodule:: pyogp.lib.base.tests.test_objects + +.. autoclass:: pyogp.lib.base.tests.test_objects.TestObjects + :members: + :undoc-members: + diff --git a/docs/html/_sources/unittest/test_ogp_login.txt b/docs/html/_sources/unittest/test_ogp_login.txt new file mode 100644 index 0000000..d9f1757 --- /dev/null +++ b/docs/html/_sources/unittest/test_ogp_login.txt @@ -0,0 +1,9 @@ +:mod:`test_ogp_login` +===================== + +.. automodule:: pyogp.lib.base.tests.test_ogp_login + +.. autoclass:: pyogp.lib.base.tests.test_ogp_login.TestOGPLogin + :members: + :undoc-members: + diff --git a/docs/html/_sources/unittest/test_packetdata.txt b/docs/html/_sources/unittest/test_packetdata.txt new file mode 100644 index 0000000..c63cbdd --- /dev/null +++ b/docs/html/_sources/unittest/test_packetdata.txt @@ -0,0 +1,9 @@ +:mod:`test_packetdata` +====================== + +.. automodule:: pyogp.lib.base.message.tests.test_packetdata + +.. autoclass:: pyogp.lib.base.message.tests.test_packetdata.TestPacketDecode + :members: + :undoc-members: + diff --git a/docs/html/_sources/unittest/test_region.txt b/docs/html/_sources/unittest/test_region.txt new file mode 100644 index 0000000..e78f4c1 --- /dev/null +++ b/docs/html/_sources/unittest/test_region.txt @@ -0,0 +1,9 @@ +:mod:`test_region` +================== + +.. automodule:: pyogp.lib.base.tests.test_region + +.. autoclass:: pyogp.lib.base.tests.test_region.TestRegion + :members: + :undoc-members: + diff --git a/docs/html/_sources/unittest/test_template_parser.txt b/docs/html/_sources/unittest/test_template_parser.txt new file mode 100644 index 0000000..4448308 --- /dev/null +++ b/docs/html/_sources/unittest/test_template_parser.txt @@ -0,0 +1,13 @@ +:mod:`test_template_parser` +=========================== + +.. automodule:: pyogp.lib.base.message.tests.test_template_parser + +.. autoclass:: pyogp.lib.base.message.tests.test_template_parser.TestTemplates + :members: + :undoc-members: + +.. autoclass:: pyogp.lib.base.message.tests.test_template_parser.TestDictionary + :members: + :undoc-members: + diff --git a/docs/html/_sources/unittest/test_udp_deserializer.txt b/docs/html/_sources/unittest/test_udp_deserializer.txt new file mode 100644 index 0000000..3a452db --- /dev/null +++ b/docs/html/_sources/unittest/test_udp_deserializer.txt @@ -0,0 +1,9 @@ +:mod:`test_udp_deserializer` +============================ + +.. automodule:: pyogp.lib.base.message.tests.test_udp_deserializer + +.. autoclass:: pyogp.lib.base.message.tests.test_udp_deserializer.TestDeserializer + :members: + :undoc-members: + diff --git a/docs/html/_sources/unittest/test_udp_serializer.txt b/docs/html/_sources/unittest/test_udp_serializer.txt new file mode 100644 index 0000000..64c0b0f --- /dev/null +++ b/docs/html/_sources/unittest/test_udp_serializer.txt @@ -0,0 +1,9 @@ +:mod:`test_udp_serializer` +========================== + +.. automodule:: pyogp.lib.base.message.tests.test_udp_serializer + +.. autoclass:: pyogp.lib.base.message.tests.test_udp_serializer.TestSerializer + :members: + :undoc-members: + diff --git a/docs/html/_sources/unittest/test_udpconnection.txt b/docs/html/_sources/unittest/test_udpconnection.txt new file mode 100644 index 0000000..f860c8f --- /dev/null +++ b/docs/html/_sources/unittest/test_udpconnection.txt @@ -0,0 +1,9 @@ +:mod:`test_udpconnection` +========================= + +.. automodule:: pyogp.lib.base.message.tests.test_udpconnection + +.. autoclass:: pyogp.lib.base.message.tests.test_udpconnection.TestUDPConnection + :members: + :undoc-members: + diff --git a/docs/html/_static/basic.css b/docs/html/_static/basic.css new file mode 100644 index 0000000..ed737d3 --- /dev/null +++ b/docs/html/_static/basic.css @@ -0,0 +1,414 @@ +/** + * Sphinx stylesheet -- basic theme + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 230px; +} + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +img { + border: 0; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable dl, table.indextable dd { + margin-top: 0; + margin-bottom: 0; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +/* -- general body styles --------------------------------------------------- */ + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.field-list ul { + padding-left: 1em; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 0; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.field-list td, table.field-list th { + border: 0 !important; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +/* -- other body styles ----------------------------------------------------- */ + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, .highlight { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.refcount { + color: #060; +} + +.optional { + font-size: 1.3em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +tt.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +tt.descclassname { + background-color: transparent; +} + +tt.xref, a tt { + background-color: transparent; + font-weight: bold; +} + +h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { + background-color: transparent; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} diff --git a/docs/html/_static/contents.png b/docs/html/_static/contents.png new file mode 100644 index 0000000..7fb8215 Binary files /dev/null and b/docs/html/_static/contents.png differ diff --git a/docs/html/_static/doctools.js b/docs/html/_static/doctools.js new file mode 100644 index 0000000..9447678 --- /dev/null +++ b/docs/html/_static/doctools.js @@ -0,0 +1,232 @@ +/// XXX: make it cross browser + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger + */ +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", + "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {} +} + +/** + * small helper function to urldecode strings + */ +jQuery.urldecode = function(x) { + return decodeURIComponent(x).replace(/\+/g, ' '); +} + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s == 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +} + +/** + * small function to check if an array contains + * a given item. + */ +jQuery.contains = function(arr, item) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] == item) + return true; + } + return false; +} + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node) { + if (node.nodeType == 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && !jQuery.className.has(node.parentNode, className)) { + var span = document.createElement("span"); + span.className = className; + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this) + }); + } + } + return this.each(function() { + highlight(this); + }); +} + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initModIndex(); + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can savely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated == 'undefined') + return string; + return (typeof translated == 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated == 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlight'); + }); + }, 10); + $('') + .appendTo($('.sidebar .this-page-menu')); + } + }, + + /** + * init the modindex toggle buttons + */ + initModIndex : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + console.log($('tr.cg-' + idnum).toggle()); + if (src.substr(-9) == 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_MODINDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('.sidebar .this-page-menu li.highlight-link').fadeOut(300); + $('span.highlight').removeClass('highlight'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this == '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); diff --git a/docs/html/_static/file.png b/docs/html/_static/file.png new file mode 100644 index 0000000..d18082e Binary files /dev/null and b/docs/html/_static/file.png differ diff --git a/docs/html/_static/jquery.js b/docs/html/_static/jquery.js new file mode 100644 index 0000000..82b98e1 --- /dev/null +++ b/docs/html/_static/jquery.js @@ -0,0 +1,32 @@ +/* + * jQuery 1.2.6 - New Wave Javascript + * + * Copyright (c) 2008 John Resig (jquery.com) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $ + * $Rev: 5685 $ + */ +(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else +return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else +return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else +selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else +this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else +return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else +jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else +jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("",""]||!tags.indexOf("",""]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!tags.indexOf("",""]||(!tags.indexOf("",""]||!tags.indexOf("",""]||jQuery.browser.msie&&[1,"div
","
"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf(""&&tags.indexOf("=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else +ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&¬xml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&¬xml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&¬xml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else +while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return im[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else +for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("
").append(res.responseText.replace(//g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else +xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else +jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else +for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else +s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else +e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;ithis.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})(); \ No newline at end of file diff --git a/docs/html/_static/minus.png b/docs/html/_static/minus.png new file mode 100644 index 0000000..da1c562 Binary files /dev/null and b/docs/html/_static/minus.png differ diff --git a/docs/html/_static/navigation.png b/docs/html/_static/navigation.png new file mode 100644 index 0000000..1081dc1 Binary files /dev/null and b/docs/html/_static/navigation.png differ diff --git a/docs/html/_static/plus.png b/docs/html/_static/plus.png new file mode 100644 index 0000000..b3cb374 Binary files /dev/null and b/docs/html/_static/plus.png differ diff --git a/docs/html/_static/pygments.css b/docs/html/_static/pygments.css new file mode 100644 index 0000000..1f2d2b6 --- /dev/null +++ b/docs/html/_static/pygments.css @@ -0,0 +1,61 @@ +.hll { background-color: #ffffcc } +.c { color: #408090; font-style: italic } /* Comment */ +.err { border: 1px solid #FF0000 } /* Error */ +.k { color: #007020; font-weight: bold } /* Keyword */ +.o { color: #666666 } /* Operator */ +.cm { color: #408090; font-style: italic } /* Comment.Multiline */ +.cp { color: #007020 } /* Comment.Preproc */ +.c1 { color: #408090; font-style: italic } /* Comment.Single */ +.cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ +.gd { color: #A00000 } /* Generic.Deleted */ +.ge { font-style: italic } /* Generic.Emph */ +.gr { color: #FF0000 } /* Generic.Error */ +.gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.gi { color: #00A000 } /* Generic.Inserted */ +.go { color: #303030 } /* Generic.Output */ +.gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +.gs { font-weight: bold } /* Generic.Strong */ +.gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.gt { color: #0040D0 } /* Generic.Traceback */ +.kc { color: #007020; font-weight: bold } /* Keyword.Constant */ +.kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ +.kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ +.kp { color: #007020 } /* Keyword.Pseudo */ +.kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ +.kt { color: #902000 } /* Keyword.Type */ +.m { color: #208050 } /* Literal.Number */ +.s { color: #4070a0 } /* Literal.String */ +.na { color: #4070a0 } /* Name.Attribute */ +.nb { color: #007020 } /* Name.Builtin */ +.nc { color: #0e84b5; font-weight: bold } /* Name.Class */ +.no { color: #60add5 } /* Name.Constant */ +.nd { color: #555555; font-weight: bold } /* Name.Decorator */ +.ni { color: #d55537; font-weight: bold } /* Name.Entity */ +.ne { color: #007020 } /* Name.Exception */ +.nf { color: #06287e } /* Name.Function */ +.nl { color: #002070; font-weight: bold } /* Name.Label */ +.nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +.nt { color: #062873; font-weight: bold } /* Name.Tag */ +.nv { color: #bb60d5 } /* Name.Variable */ +.ow { color: #007020; font-weight: bold } /* Operator.Word */ +.w { color: #bbbbbb } /* Text.Whitespace */ +.mf { color: #208050 } /* Literal.Number.Float */ +.mh { color: #208050 } /* Literal.Number.Hex */ +.mi { color: #208050 } /* Literal.Number.Integer */ +.mo { color: #208050 } /* Literal.Number.Oct */ +.sb { color: #4070a0 } /* Literal.String.Backtick */ +.sc { color: #4070a0 } /* Literal.String.Char */ +.sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ +.s2 { color: #4070a0 } /* Literal.String.Double */ +.se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ +.sh { color: #4070a0 } /* Literal.String.Heredoc */ +.si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ +.sx { color: #c65d09 } /* Literal.String.Other */ +.sr { color: #235388 } /* Literal.String.Regex */ +.s1 { color: #4070a0 } /* Literal.String.Single */ +.ss { color: #517918 } /* Literal.String.Symbol */ +.bp { color: #007020 } /* Name.Builtin.Pseudo */ +.vc { color: #bb60d5 } /* Name.Variable.Class */ +.vg { color: #bb60d5 } /* Name.Variable.Global */ +.vi { color: #bb60d5 } /* Name.Variable.Instance */ +.il { color: #208050 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/docs/html/_static/searchtools.js b/docs/html/_static/searchtools.js new file mode 100644 index 0000000..a243b15 --- /dev/null +++ b/docs/html/_static/searchtools.js @@ -0,0 +1,467 @@ +/** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words, hlwords is the list of normal, unstemmed + * words. the first one is used to find the occurance, the + * latter for highlighting it. + */ + +jQuery.makeSearchSummary = function(text, keywords, hlwords) { + var textLower = text.toLowerCase(); + var start = 0; + $.each(keywords, function() { + var i = textLower.indexOf(this.toLowerCase()); + if (i > -1) + start = i; + }); + start = Math.max(start - 120, 0); + var excerpt = ((start > 0) ? '...' : '') + + $.trim(text.substr(start, 240)) + + ((start + 240 - text.length) ? '...' : ''); + var rv = $('
').text(excerpt); + $.each(hlwords, function() { + rv = rv.highlightText(this, 'highlight'); + }); + return rv; +} + +/** + * Porter Stemmer + */ +var PorterStemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + + +/** + * Search Module + */ +var Search = { + + _index : null, + _queued_query : null, + _pulse_status : -1, + + init : function() { + var params = $.getQueryParameters(); + if (params.q) { + var query = params.q[0]; + $('input[name="q"]')[0].value = query; + this.performSearch(query); + } + }, + + /** + * Sets the index + */ + setIndex : function(index) { + var q; + this._index = index; + if ((q = this._queued_query) !== null) { + this._queued_query = null; + Search.query(q); + } + }, + + hasIndex : function() { + return this._index !== null; + }, + + deferQuery : function(query) { + this._queued_query = query; + }, + + stopPulse : function() { + this._pulse_status = 0; + }, + + startPulse : function() { + if (this._pulse_status >= 0) + return; + function pulse() { + Search._pulse_status = (Search._pulse_status + 1) % 4; + var dotString = ''; + for (var i = 0; i < Search._pulse_status; i++) + dotString += '.'; + Search.dots.text(dotString); + if (Search._pulse_status > -1) + window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something + */ + performSearch : function(query) { + // create the required interface elements + this.out = $('#search-results'); + this.title = $('

' + _('Searching') + '

').appendTo(this.out); + this.dots = $('').appendTo(this.title); + this.status = $('

').appendTo(this.out); + this.output = $('