€cdocutils.nodes document q)q}q(U nametypesq}q(Xpycsw migration guideqNXmigration-guideqˆXpycsw 1.x to 2.0 migrationqNuUsubstitution_defsq }q Uparse_messagesq ]q Ucurrent_sourceq NU decorationqNUautofootnote_startqKUnameidsq}q(hUpycsw-migration-guideqhUmigration-guideqhUpycsw-1-x-to-2-0-migrationquUchildrenq]q(cdocutils.nodes target q)q}q(U rawsourceqX.. _migration-guide:UparentqhUsourceqX)/tmp/pycsw-2.0.2/docs/migration-guide.rstqUtagnameqUtargetqU attributesq }q!(Uidsq"]Ubackrefsq#]Udupnamesq$]Uclassesq%]Unamesq&]Urefidq'huUlineq(KUdocumentq)hh]ubcdocutils.nodes section q*)q+}q,(hUhhhhUexpect_referenced_by_nameq-}q.hhshUsectionq/h }q0(h$]h%]h#]h"]q1(hheh&]q2(hheuh(Kh)hUexpect_referenced_by_idq3}q4hhsh]q5(cdocutils.nodes title q6)q7}q8(hXpycsw Migration Guideq9hh+hhhUtitleq:h }q;(h$]h%]h#]h"]h&]uh(Kh)hh]q…q?}q@(hh9hh7ubaubcdocutils.nodes paragraph qA)qB}qC(hXjThis page provides migration support across pycsw versions over time to help with pycsw change management.qDhh+hhhU paragraphqEh }qF(h$]h%]h#]h"]h&]uh(Kh)hh]qGh=XjThis page provides migration support across pycsw versions over time to help with pycsw change management.qH…qI}qJ(hhDhhBubaubh*)qK}qL(hUhh+hhhh/h }qM(h$]h%]h#]h"]qNhah&]qOhauh(K h)hh]qP(h6)qQ}qR(hXpycsw 1.x to 2.0 MigrationqShhKhhhh:h }qT(h$]h%]h#]h"]h&]uh(K h)hh]qUh=Xpycsw 1.x to 2.0 MigrationqV…qW}qX(hhShhQubaubcdocutils.nodes bullet_list qY)qZ}q[(hUhhKhhhU bullet_listq\h }q](Ubulletq^X-h"]h#]h$]h%]h&]uh(K h)hh]q_(cdocutils.nodes list_item q`)qa}qb(hX3the default CSW version is now 3.0.0. CSW clients need to explicitly specify ``version=2.0.2`` for CSW 2 behaviour. Also, pycsw administrators can use a WSGI wrapper to the pycsw API to force ``version=2.0.2`` on init of ``pycsw.server.Csw`` from the server. See :ref:`csw-support` for more information. hhZhhhU list_itemqch }qd(h$]h%]h#]h"]h&]uh(Nh)hh]qehA)qf}qg(hX2the default CSW version is now 3.0.0. CSW clients need to explicitly specify ``version=2.0.2`` for CSW 2 behaviour. Also, pycsw administrators can use a WSGI wrapper to the pycsw API to force ``version=2.0.2`` on init of ``pycsw.server.Csw`` from the server. See :ref:`csw-support` for more information.hhahhhhEh }qh(h$]h%]h#]h"]h&]uh(K h]qi(h=XNthe default CSW version is now 3.0.0. CSW clients need to explicitly specify qj…qk}ql(hXNthe default CSW version is now 3.0.0. CSW clients need to explicitly specify hhfubcdocutils.nodes literal qm)qn}qo(hX``version=2.0.2``h }qp(h$]h%]h#]h"]h&]uhhfh]qqh=X version=2.0.2qr…qs}qt(hUhhnubahUliteralquubh=Xc for CSW 2 behaviour. Also, pycsw administrators can use a WSGI wrapper to the pycsw API to force qv…qw}qx(hXc for CSW 2 behaviour. Also, pycsw administrators can use a WSGI wrapper to the pycsw API to force hhfubhm)qy}qz(hX``version=2.0.2``h }q{(h$]h%]h#]h"]h&]uhhfh]q|h=X version=2.0.2q}…q~}q(hUhhyubahhuubh=X on init of q€…q}q‚(hX on init of hhfubhm)qƒ}q„(hX``pycsw.server.Csw``h }q…(h$]h%]h#]h"]h&]uhhfh]q†h=Xpycsw.server.Cswq‡…qˆ}q‰(hUhhƒubahhuubh=X from the server. See qŠ…q‹}qŒ(hX from the server. See hhfubcsphinx.addnodes pending_xref q)qŽ}q(hX:ref:`csw-support`qhhfhhhU pending_xrefq‘h }q’(UreftypeXrefUrefwarnq“ˆU reftargetq”X csw-supportU refdomainXstdq•h"]h#]U refexplicit‰h$]h%]h&]Urefdocq–Xmigration-guideq—uh(K h]q˜cdocutils.nodes inline q™)qš}q›(hhh }qœ(h$]h%]q(Uxrefqžh•Xstd-refqŸeh#]h"]h&]uhhŽh]q h=X csw-supportq¡…q¢}q£(hUhhšubahUinlineq¤ubaubh=X for more information.q¥…q¦}q§(hX for more information.hhfubeubaubh`)q¨}q©(hXÑ``pycsw.server.Csw.dispatch_wsgi()`` previously returned the response content as a string. 2.0.0 introduces a compatability break to additionally return the HTTP status code along with the response as a list hhZhhhhch }qª(h$]h%]h#]h"]h&]uh(Nh)hh]q«hA)q¬}q­(hXÐ``pycsw.server.Csw.dispatch_wsgi()`` previously returned the response content as a string. 2.0.0 introduces a compatability break to additionally return the HTTP status code along with the response as a listhh¨hhhhEh }q®(h$]h%]h#]h"]h&]uh(Kh]q¯(hm)q°}q±(hX$``pycsw.server.Csw.dispatch_wsgi()``h }q²(h$]h%]h#]h"]h&]uhh¬h]q³h=X pycsw.server.Csw.dispatch_wsgi()q´…qµ}q¶(hUhh°ubahhuubh=X¬ previously returned the response content as a string. 2.0.0 introduces a compatability break to additionally return the HTTP status code along with the response as a listq·…q¸}q¹(hX¬ previously returned the response content as a string. 2.0.0 introduces a compatability break to additionally return the HTTP status code along with the response as a listhh¬ubeubaubeubcdocutils.nodes literal_block qº)q»}q¼(hXfrom pycsw.server import Csw my_csw = Csw(my_dict) # add: env=some_environ_dict, version='2.0.2' if preferred # using pycsw 1.x response = my_csw.dispatch_wsgi() # using pycsw 2.0 http_status_code, response = my_csw.dispatch_wsgi() # covering either pycsw version content = csw.dispatch_wsgi() # pycsw 2.0 has an API break: # pycsw < 2.0: content = xml_response # pycsw >= 2.0: content = [http_status_code, content] # deal with the API break if isinstance(content, list): # pycsw 2.0+ http_response_code, response = contenthhKhhhU literal_blockq½h }q¾(Ulinenosq¿‰UlanguageqÀXpythonU xml:spaceqÁUpreserveqÂh"]h#]h$]Uhighlight_argsqÃ}h%]h&]uh(Kh)hh]qÄh=Xfrom pycsw.server import Csw my_csw = Csw(my_dict) # add: env=some_environ_dict, version='2.0.2' if preferred # using pycsw 1.x response = my_csw.dispatch_wsgi() # using pycsw 2.0 http_status_code, response = my_csw.dispatch_wsgi() # covering either pycsw version content = csw.dispatch_wsgi() # pycsw 2.0 has an API break: # pycsw < 2.0: content = xml_response # pycsw >= 2.0: content = [http_status_code, content] # deal with the API break if isinstance(content, list): # pycsw 2.0+ http_response_code, response = contentqÅ…qÆ}qÇ(hUhh»ubaubhA)qÈ}qÉ(hX$See :ref:`api` for more information.qÊhhKhhhhEh }qË(h$]h%]h#]h"]h&]uh(K*h)hh]qÌ(h=XSee qÍ…qÎ}qÏ(hXSee hhÈubh)qÐ}qÑ(hX :ref:`api`qÒhhÈhhhh‘h }qÓ(UreftypeXrefh“ˆh”XapiU refdomainXstdqÔh"]h#]U refexplicit‰h$]h%]h&]h–h—uh(K*h]qÕh™)qÖ}q×(hhÒh }qØ(h$]h%]qÙ(hžhÔXstd-refqÚeh#]h"]h&]uhhÐh]qÛh=XapiqÜ…qÝ}qÞ(hUhhÖubahh¤ubaubh=X for more information.qß…qà}qá(hX for more information.hhÈubeubeubeubehUU transformerqâNU footnote_refsqã}qäUrefnamesqå}qæUsymbol_footnotesqç]qèUautofootnote_refsqé]qêUsymbol_footnote_refsqë]qìU citationsqí]qîh)hU current_lineqïNUtransform_messagesqð]qñcdocutils.nodes system_message qò)qó}qô(hUh }qõ(h$]UlevelKh"]h#]Usourcehh%]h&]UlineKUtypeUINFOqöuh]q÷hA)qø}qù(hUh }qú(h$]h%]h#]h"]h&]uhhóh]qûh=X5Hyperlink target "migration-guide" is not referenced.qü…qý}qþ(hUhhøubahhEubahUsystem_messageqÿubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values r or }r (Ufootnote_backlinksr KUrecord_dependenciesr NU rfc_base_urlrUhttps://tools.ietf.org/html/rU tracebackrˆUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh:NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetr‰Uoutput_encoding_error_handlerr Ustrictr!U sectnum_xformr"KUdump_transformsr#NU docinfo_xformr$KUwarning_streamr%NUpep_file_url_templater&Upep-%04dr'Uexit_status_levelr(KUconfigr)NUstrict_visitorr*NUcloak_email_addressesr+ˆUtrim_footnote_reference_spacer,‰Uenvr-NUdump_pseudo_xmlr.NUexpose_internalsr/NUsectsubtitle_xformr0‰U source_linkr1NUrfc_referencesr2NUoutput_encodingr3Uutf-8r4U source_urlr5NUinput_encodingr6U utf-8-sigr7U_disable_configr8NU id_prefixr9UU tab_widthr:KUerror_encodingr;UUTF-8r<U_sourcer=hUgettext_compactr>ˆU generatorr?NUdump_internalsr@NU smart_quotesrA‰U pep_base_urlrBU https://www.python.org/dev/peps/rCUsyntax_highlightrDUlongrEUinput_encoding_error_handlerrFj!Uauto_id_prefixrGUidrHUdoctitle_xformrI‰Ustrip_elements_with_classesrJNU _config_filesrK]Ufile_insertion_enabledrLˆU raw_enabledrMKU dump_settingsrNNubUsymbol_footnote_startrOKUidsrP}rQ(hhKhh+hh+uUsubstitution_namesrR}rShh)h }rT(h$]h"]h#]Usourcehh%]h&]uU footnotesrU]rVUrefidsrW}rXh]rYhasub.