{"comment":{"created_at":"2011-10-11T16:13:23Z","body":"[springmeyer] and #205","updated_at":"2011-10-11T16:13:23Z","url":"https://api.github.com/repos/artemp/mapnik/issues/comments/2366389","id":2366389,"user":{"avatar_url":"https://secure.gravatar.com/avatar/941f68386168a8a6b60f2529a7830af7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/artemp","id":59056,"login":"artemp"}},"action":"created","issue":{"number":345,"created_at":"2011-10-11T16:13:22Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"Pickling support will be a major advancement for Mapnik as it will allow for:\r\n\r\n1) maps (or sub objects) to be serialized in binary form, which will be potentially 1000's of times faster to load than xml and\r\n\r\n2) allow for bundling of map objects along with other pickled info (think rendering directives, auxillary styles, serialized data - geojson) and\r\n\r\n3) will allow for serialization of Map state as well as the basic styles and layers and\r\n\r\n4) will be easy to marshall into pickle-based datastores (think custom django fields or couchdb) and\r\n\r\n5) will have potentially lots of other uses\r\n\r\nI've added pickling support to a few of the main container objects exposed in the Python bindings. But many more objects need pickling support added.\r\n\r\nCopy and Deepcopy are supported in boost via the same support needed for pickling.\r\nhttp://www.boost.org/doc/libs/1_39_0/libs/python/doc/v2/pickle.html\r\n\r\nWe need to discuss how to accomplish this (fairly) extensive task to complete full pickle/deepcopy support of Mapnik objects in python, and this ticket will track status (and super-cede other pickle-related tickets).\r\n\r\nList of boost python cpp files that need pickle/copy support added or extended:\r\n\r\n * source:trunk/bindings/python/mapnik_polygon_pattern_symbolizer.cpp [1155]\r\n * source:trunk/bindings/python/mapnik_polygon_symbolizer.cpp [1157]\r\n * source:trunk/bindings/python/mapnik_rule.cpp [1342] [1344]\r\n * source:trunk/bindings/python/__init__.py [1342] NEEDS REVIEW\r\n * source:trunk/bindings/python/mapnik_symbolizer.cpp [1342] [1344] NEEDS REVIEW\r\n * source:trunk/bindings/python/mapnik_shield_symbolizer.cpp [1158]\r\n * source:trunk/bindings/python/mapnik_datasource.cpp\r\n * source:trunk/bindings/python/mapnik_style.cpp [921] [1149]\r\n * source:trunk/bindings/python/mapnik_parameters.cpp [1162] NEEDS REVIEW\r\n * source:trunk/bindings/python/mapnik_projection.cpp [1159]\r\n * source:trunk/bindings/python/mapnik_line_pattern_symbolizer.cpp [1155]\r\n * source:trunk/bindings/python/mapnik_text_symbolizer.cpp [1164] [1298] [1314]\r\n * source:trunk/bindings/python/mapnik_proj_transform.cpp [1163]\r\n * source:trunk/bindings/python/mapnik_view_transform.cpp [1163]\r\n * source:trunk/bindings/python/mapnik_line_symbolizer.cpp [1160]\r\n * source:trunk/bindings/python/mapnik_coord.cpp [1147]\r\n * source:trunk/bindings/python/mapnik_stroke.cpp [1161] [1164]\r\n * source:trunk/bindings/python/mapnik_point_symbolizer.cpp [1295]\r\n * source:trunk/bindings/python/mapnik_raster_symbolizer.cpp [1154]\r\n * source:trunk/bindings/python/mapnik_query.cpp [1156]","comments":2,"title":"Deepcopy and Pickle support for Boost Python objects","updated_at":"2011-10-11T16:13:23Z","url":"https://api.github.com/repos/artemp/mapnik/issues/345","id":1877512,"assignee":null,"milestone":{"number":2,"created_at":"2011-10-11T15:50:19Z","due_on":null,"title":"Future","creator":{"avatar_url":"https://secure.gravatar.com/avatar/941f68386168a8a6b60f2529a7830af7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/artemp","id":59056,"login":"artemp"},"url":"https://api.github.com/repos/artemp/mapnik/milestones/2","open_issues":47,"closed_issues":1,"description":"Tickets without a proper milestone: either because they are unsorted and unreviewed or because developers do not see capacity to work on them before a planned release.\r\n\r\nThis group should be periodically reviewed and plucked by developers to be included in other milestones if feasible to work on.","state":"open"},"closed_at":null,"user":{"avatar_url":"https://secure.gravatar.com/avatar/941f68386168a8a6b60f2529a7830af7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/artemp","id":59056,"login":"artemp"},"html_url":"https://github.com/artemp/mapnik/issues/345","labels":[{"name":"Core_Library","url":"https://api.github.com/repos/artemp/mapnik/labels/Core_Library","color":"FFFFFF"}],"state":"open"},"legacy":{"issue_id":1877512,"comment_id":2366389}}