python3-warlock-1.3.3-1.oe1 >  A a7EW^^f]Rŕe=bLLUQ=Zw f )O[C #o91<[^wQN}FP9]5S^r -`ZgªzC`sQaLUA `mA;Ea>8Z,ZBp/7C bfC4=qa8$px8 RѶ˻2pрuʋnRA qwX4jߑ$Sfe2e895499a089432f7aa813fbb0b28dbb7d77ef257436c7ad065e55a41682a76cf9c5061c5adaf2bb797174abbf50affd3516fa3a7EW^^f~!JgН߾+!oh⫏E}L-Հ{[ lrH){\o+ ' ]_h EK8m>k_,P>ЏKz[MsZv A5rxqe%>#c`!-#2tMM /4yr@r^`ނrauxEDvA6gWIEëyJi,Rr>\:K<fkb3I:FT(>p??d  W  - 8 M Y |       $  p  $T   (89::FSGHIX,Y<\X]^bcde$f'l)tDuvwDxyz,<@FCpython3-warlock1.3.31.oe1Python object model built on JSON schema and JSON patch. [![PyPI](https://img.shields.io/pypi/v/warlock.svg)][warlock] [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/warlock.svg)][warlock] [![PyPI - Downloads](https://img.shields.io/pypi/dw/warlock.svg)][pypistats] [![Build Status](https://travis-ci.org/bcwaldon/warlock.svg?branch=master)][ci-builds] [![Coverage Status](https://coveralls.io/repos/github/bcwaldon/warlock/badge.svg?branch=master)][coveralls] Warlock is [available on PyPI][warlock]: ```shell pip install warlock ``` 1) Create your schema ```python >>> schema = { 'name': 'Country', 'properties': { 'name': {'type': 'string'}, 'abbreviation': {'type': 'string'}, 'population': {'type': 'integer'}, }, 'additionalProperties': False, } ``` 2) Create a model ```python >>> import warlock >>> Country = warlock.model_factory(schema) ``` 3) Create an object using your model ```python >>> sweden = Country(name='Sweden', abbreviation='SE') ``` 4) Let the object validate itself ```python >>> sweden.name = 5 Traceback (most recent call last): File "", line 1, in File "warlock/core.py", line 53, in __setattr__ raise InvalidOperation(msg) warlock.core.InvalidOperation: Unable to set 'name' to '5' >>> sweden.overlord = 'Bears' Traceback (most recent call last): File "", line 1, in File "warlock/core.py", line 53, in __setattr__ raise InvalidOperation(msg) warlock.core.InvalidOperation: Unable to set 'overlord' to 'Bears' ``` 5) Generate a [JSON Patch document](http://tools.ietf.org/html/draft-ietf-appsawg-json-patch) to track changes ```python >>> sweden.population=9453000 >>> sweden.patch '[{"path": "/population", "value": 9453000, "op": "add"}]' ``` [warlock]: https://pypi.org/project/warlock/ [pip]: https://pip.pypa.io/en/stable/ [ci-builds]: https://travis-ci.org/bcwaldon/warlock [coveralls]: https://coveralls.io/github/bcwaldon/warlock?branch=master [pypistats]: https://pypistats.org/packages/warlocka7Cobs-worker1640081563-aarch64-0002FopenEuler:20.03:LTS:SP3:Epol / standard_aarch64http://openeuler.orgApache-2.0http://openeuler.orgUnspecifiedhttp://github.com/bcwaldon/warlocklinuxnoarchu*""eezAA큤a7Da7Da7Da7Da7Da7Da7D\ᱮa7Ea7Ea7Ea7Ea7Ea7Ea7Ea7E\H\ᱮ\He74f8bc407edf830febac2a2a825f6bbc9c2a03ec5a080a31490da9a59f25391460277c6cacfc2f6d5e857645e622dcce49d87bb73d920a1a99b0c8aa013752c01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546bf162f55770ae154de0f32071a5d72f105f644cb55df144921abf7323bdba10269ce0a0ce5542e6eacac474249264fd4f97a9c92011faae4644487e1cf112f8beffc723433270ac4af9dfe7c8099cbd02d5dca533f8f768a42f079b5d213bcb7dd2195376e3da6fe5f0ddca69e60a706f647a8045808cfa6d9e1347196c45c205d2195376e3da6fe5f0ddca69e60a706f647a8045808cfa6d9e1347196c45c205fb5a8f7de401597ab23ba1a9e6fa496d6fe7568fb976d253ad5374423931d859fb5a8f7de401597ab23ba1a9e6fa496d6fe7568fb976d253ad5374423931d859913213b24ee3b73329e8b24c84db23db9e386f05215219b5d4a1ac74a1a28d14913213b24ee3b73329e8b24c84db23db9e386f05215219b5d4a1ac74a1a28d14fb065637bf010dd3b0ad5987aab54d67e2a69bc2a6d6945ee41248b0c84ff869fb065637bf010dd3b0ad5987aab54d67e2a69bc2a6d6945ee41248b0c84ff869c0606c7569d963ba09c0d42ef782c7d7f09e704332bfca7a8cc9b0b58650b5a2985738d8e17bf56e54afcc0c5218592031a282e18bbae7d68968ff939f4f159305b8f4d9e2f68a526465da78f2522d492a8108c536d824a43d34bce9d397b9c6rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython-warlock-1.3.3-1.oe1.src.rpmpython-warlockpython3-warlockpython3.7dist(warlock)python3dist(warlock)@@ @@ @@     python(abi)python3.7dist(jsonpatch)python3.7dist(jsonpatch)python3.7dist(jsonschema)python3.7dist(jsonschema)python3.7dist(six)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.70.1020.743.0.4-14.6.0-14.0.4-14.0-15.2-14.15.1_@Python_Bot - Package Spec generatedobs-worker1640081563-aarch64-0002 1640707907 1.3.3-1.oe11.3.31.3.3warlockwarlock-1.3.3-py3.7.egg-infoPKG-INFOSOURCES.txtdependency_links.txtrequires.txttop_level.txt__init__.py__init__.cpython-37.opt-1.pyc__init__.cpython-37.pyccore.cpython-37.opt-1.pyccore.cpython-37.pycexceptions.cpython-37.opt-1.pycexceptions.cpython-37.pycmodel.cpython-37.opt-1.pycmodel.cpython-37.pyccore.pyexceptions.pymodel.py/usr/lib/python3.7/site-packages//usr/lib/python3.7/site-packages/warlock-1.3.3-py3.7.egg-info//usr/lib/python3.7/site-packages/warlock//usr/lib/python3.7/site-packages/warlock/__pycache__/-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/generic-hardened-cc1 -fasynchronous-unwind-tables -fstack-clash-protectionobs://private/openEuler:20.03:LTS:SP3:Epol/standard_aarch64/b0b58d3acf5ff9f5f2b90d6cfc944ae8-python-warlockcpioxz2noarch-openEuler-linux-gnudirectoryUTF-8 Unicode textASCII textPython script, ASCII text executablepython 3.7 byte-compiled PPRRRRRRRRRRRRRRRRRR|y=oߥ.utf-8609733aae00e99f33314f6aa407dce344a8ae94aa82f9d716372a2bbef8405b2?7zXZ !#,T'] b2u jӫ`(y-7ft,j19*/Q09F3? 1DZRiP =.BKqA܌*ÆCw 28n\@dlݴ,N /i઻3٥'҇[ xt; Ҕ&(a':7mB*iPӛƣ l5^&sr?Q@A׺&ģ\}9t˷VYo$B"snI.T`ur{X\Gdxmkwsgo f!T4NM%W^ZMa#Vԭ&Su]Oad y3w [;cӠ4C9oнyF~ohU'G>ol1*b"J3{OCMN4 W zE/2\|{*Dʎ%_CjLS&vv[Ӛ ,mݫkFwH_3R" m2%sZe᪘q*HS$B1a i܂֜T ]ok3G2,k7&)Hү@v%Pb1+9^"4C{f38b,A#}דy5*&E;uWXpbXx:}rGg ( nՃBƿxt+^[*JnjNIK!YEOzv\uvFGC i)׍IaH|0m@ ;-5O|^,+ K'7r!SaY1m#Kk,C} H_ޡ̚ yd]A[hi&бb0@;ldX6f]R=:c?vԕ[zw !sYj^‰ _6@›"K2>q6s/Q*a[\0RO:u!yǺ%RMr>GZcEpxFkr\959q9I6M,M\4(z>YfXXEdž,7Hu=޺[>ݟmP KB%FAK429Mg j ݲp䟍Hx"D/z(& Ytآ>-t$n43/Dq6{:0D\~%]LBM@//۾R?rWp?sGm̀0e[nX,+#Ca\ڦLD*~(hOBáʡq~@ݾmy Lo/W=QLѭ*}IWax6tL%H/Hs޴5zL@xW^O+r"T5*e& 7DG @ۄœKٞPQ%[omبΜ| `J(2X ^Wmp3|Li.j S**ƛ(_FR@|=Ɠ4S_"7l$!tߏT{p2/X؂7`oS`րc?E'1:2 ]O4W#5n'^_0J1 & 6(C 4`=Ia# l>Wv9BNWnPܹuP"RK~0((Pi-UI0s`: YYJ )TlA7q@ne{YMho!/lr8كq-H52d| )+sz~?(SVR8tmrMkh+oĸ #p2 CIW3)1{њ'.xxA :,Ɯڪ5R(Un׺*vI_x\Dg [gI:Kl^|w/nx7ƕAAr@nLU۟*UZ*.^tyT*dMD~_b ,f>-oPr=Ԡb:U˂34cmp:qHBWPGĀc4GW]$*+[wVw47IGot#YuuQ*[tvHfNxTT>I̱(IZU ofyU#+$8RGc?fxoXcQo'ۦMpG=]WEY vH)T#ySXt<]B-> XZkttrg@ˈ[~e?zlXxE\j~ Lu&;ih>G;擏sιr`o[h2 ϙ7KhPa>IZ@4\ G.}wG CM z\Bd 'J%)D}é,Q6Ӥ Jr  ZY~ ߁%MO &eJ@Ŏ k(ɨD$(o <>Mkp]_ǡOۈY2[qwb=>n7ITAd]_Wl %a@$VK):Kz3ϸs"(nU~C8o2ܨ_ H!=[mW>f̌ SzωGAY2n&l]TG `E_X~ r6n.qɨ9mrׄ;k^oB<#%闕[eڽ|*UsQBp GL[qwfdk#mL6˸'ME8mmR¬3 syi)JVNF8*&cSF:yH&*{jznP8e@'ގk Eě4`wNJd[K^;)/Ӄ?LCe:3ap+Ü~ A4`QBE 3 <$ Qp Ȇ%sa6%l̀Z[?!jQƎp/#Ж!s}C :8o=HX}d<5`.M6-V5^L#~5,ARk&ՈXkPpV!뽅!ӷv261|8Ai^IL7,JmGtbu$ьd##,fƆ/gєfØ}jM ޸s7(1T5[b*!"F)}MxeQн`yqNvڳ_((kGõǃ||HA e]nVrgWŰD::QóIވg+f|,#z u_kcPEIGX dHl :sXX$ %2Hu13kaTK tR硝t&D/t!2]YgV%j>OTpr#b:(9./ biC{L({3I5Bo[V!}[#=XY5ovkaxqi8<եt$VvapՌޅCU@Y-_U;i+oԶ YZ