mapdata 3.0.0__tar.gz → 3.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mapdata-3.0.0/mapdata.egg-info → mapdata-3.1.0}/PKG-INFO +1 -1
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/mapdata.py +87 -25
- {mapdata-3.0.0 → mapdata-3.1.0/mapdata.egg-info}/PKG-INFO +1 -1
- {mapdata-3.0.0 → mapdata-3.1.0}/setup.py +1 -1
- {mapdata-3.0.0 → mapdata-3.1.0}/LICENSE.txt +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/MANIFEST.in +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/README.md +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/configfile/mapdata.conf +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/0.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/1.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/2.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/3.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/4.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/5.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/6.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/7.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/8.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/9.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/A.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/B.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/C.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/D.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/E.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/F.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/G.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/H.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/I.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/J.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/K.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/L.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/M.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/N.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/O.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/P.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/Q.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/R.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/S.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/T.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/U.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/V.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/W.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/X.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/Y.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/Z.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/airplane.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/anchor.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/ball.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/ball_small.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/bar.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/bars.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/binoculars.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/bird.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/block.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/block_small.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/bookmark.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/box_stack.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/camera.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/cancel.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/car.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/car2.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/center8.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/check.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/check_circle.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/checkbox.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/checkerboard.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/chevrons.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/circle.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/circle_bar.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/circle_plus.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/circle_stipple.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/circle_triangle.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/circle_wedge.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/circle_x.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/clock.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/columns.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/contract.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/cross.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/darkeye.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/decrease.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/deposition.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/diag_ll.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/diag_lr.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/diag_ul.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/diag_ur.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/dialog.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/diamond.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/donkey.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/dot.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/down.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/drop.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/elephant.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/expand.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/eye.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/fire.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/fish.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/flag.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/flag2.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/four_arrows.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/graph.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/hand.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/hash.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/heart.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/hidden.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/hourglass.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/house.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/increase.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/info.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/leaf.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/left.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/lightbulb.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/lightning.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/lightning2.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/location_ptr.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/mine.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/nested_boxes.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/pennant.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/pennant2.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/people.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/person.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/person2.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/person3.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/phone.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/photo.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/picnic.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/plus.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/point_down.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/point_left.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/point_right.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/point_up.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/pointer_ne.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/pointer_nw.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/pointer_se.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/pointer_sw.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/puzzle.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/q1.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/q1_notch.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/q2.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/q2_notch.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/q3.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/q3_notch.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/q4.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/q4_notch.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/qmark_circle.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/qmark_circle2.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/raincloud.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/right.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/rocket.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/rocket2.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/rose.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/rows.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/scales.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/search.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/search2.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/skull.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/square.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/star.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/stipple.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/stop.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/surprise_circle.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/swamp.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/target.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/target2.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/ten.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/trash.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/tree.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/tree2.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/tree3.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/triangle.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/triangle_open.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/triangle_sm.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/up.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/vapor.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/warning.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/wave.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/wave2.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/wave3.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/weather.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/wedge.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/wedge_sm.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/wedges_3.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/well.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/whale.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/whale2.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/wheelchair.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/zigzags.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/16x16/zigzags2.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/20x20/ball20.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/20x20/block20.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/20x20/circle20.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/20x20/q1_20.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/20x20/q2_20.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/20x20/q3_20.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/20x20/q4_20.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/20x20/square20.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/24x24/ball24.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/24x24/block24.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/24x24/circle24.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/24x24/square24.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/28x28/ball28.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/28x28/block28.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/28x28/circle28.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata/symbols/28x28/square28.xbm +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata.egg-info/SOURCES.txt +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata.egg-info/dependency_links.txt +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata.egg-info/requires.txt +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/mapdata.egg-info/top_level.txt +0 -0
- {mapdata-3.0.0 → mapdata-3.1.0}/setup.cfg +0 -0
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
#
|
|
25
25
|
# ==================================================================
|
|
26
26
|
|
|
27
|
-
version = "3.
|
|
28
|
-
vdate = "2024-02-
|
|
27
|
+
version = "3.1.0"
|
|
28
|
+
vdate = "2024-02-18"
|
|
29
29
|
|
|
30
30
|
copyright = "2023-2024"
|
|
31
31
|
|
|
@@ -6519,7 +6519,7 @@ class ContTableDialog(object):
|
|
|
6519
6519
|
prompt_frame = tk.Frame(self.dlg, borderwidth=5)
|
|
6520
6520
|
prompt_frame.grid(row=0, column=0, sticky=tk.N+tk.EW, pady=(3,3))
|
|
6521
6521
|
prompt_frame.columnconfigure(0, weight=1)
|
|
6522
|
-
msg_lbl = ttk.Label(prompt_frame, width=
|
|
6522
|
+
msg_lbl = ttk.Label(prompt_frame, width=200, text="Select row and column variables. Conventionally, the row represents the explanatory or treatment variable and the column represents the response, condition, or effect variable. For each, the range of positive responses must be specified.")
|
|
6523
6523
|
msg_lbl.grid(row=0, column=0, sticky=tk.W, padx=(6,6), pady=(3,3))
|
|
6524
6524
|
def wrap_msg(event):
|
|
6525
6525
|
msg_lbl.configure(wraplength=event.width - 5)
|
|
@@ -6568,15 +6568,16 @@ class ContTableDialog(object):
|
|
|
6568
6568
|
self.autoupdate_ck.grid(row=0, column=1, sticky=tk.W, padx=(6,3), pady=(3,3))
|
|
6569
6569
|
|
|
6570
6570
|
# Row and column variables
|
|
6571
|
+
num_validator = self.dlg.register(self.validate_num_entry)
|
|
6571
6572
|
ttk.Label(rowvar_frame, text="Row variable (R)").grid(row=0, column=0, sticky=tk.W, padx=(6,3), pady=(3,1))
|
|
6572
6573
|
ttk.Label(colvar_frame, text="Column variable (C)").grid(row=0, column=0, sticky=tk.W, padx=(6,3), pady=(3,1))
|
|
6573
6574
|
self.row_var = tk.StringVar(rowvar_frame)
|
|
6574
6575
|
self.row_sel = ttk.Combobox(rowvar_frame, state="readonly", textvariable=self.row_var, values=self.selectable_columns, width=24)
|
|
6575
|
-
self.row_sel.grid(row=1, column=0, columnspan=
|
|
6576
|
+
self.row_sel.grid(row=1, column=0, columnspan=3, sticky=tk.N+tk.EW, padx=(3,3), pady=(3,3))
|
|
6576
6577
|
self.row_sel.bind("<<ComboboxSelected>>", self.ck_rowvar)
|
|
6577
6578
|
self.col_var = tk.StringVar(colvar_frame)
|
|
6578
6579
|
self.col_sel = ttk.Combobox(colvar_frame, state="readonly", textvariable=self.col_var, values=self.selectable_columns, width=24)
|
|
6579
|
-
self.col_sel.grid(row=1, column=0, columnspan=
|
|
6580
|
+
self.col_sel.grid(row=1, column=0, columnspan=3, sticky=tk.N+tk.EW, padx=(3,3), pady=(3,3))
|
|
6580
6581
|
self.col_sel.bind("<<ComboboxSelected>>", self.ck_colvar)
|
|
6581
6582
|
|
|
6582
6583
|
self.row_thresh_lbl = ttk.Label(rowvar_frame, text="Threshold for\npositive response")
|
|
@@ -6588,19 +6589,25 @@ class ContTableDialog(object):
|
|
|
6588
6589
|
# or a selected list of categorical values specified in a Listbox widget. The Entry widget is
|
|
6589
6590
|
# initially displayed, but disabled. The 'ck_rowvar' and 'ck_colvar' methods hide and re-grid
|
|
6590
6591
|
# these widgets as necessary.
|
|
6592
|
+
gt_lt_list = ['>', '<']
|
|
6591
6593
|
self.row_thresh_var = tk.DoubleVar(rowvar_frame, 0.0)
|
|
6592
6594
|
self.row_thresh_listvar = tk.Variable(rowvar_frame)
|
|
6593
|
-
|
|
6594
|
-
self.
|
|
6595
|
+
self.row_thresh_gtlt_var = tk.StringVar(rowvar_frame, '>')
|
|
6596
|
+
self.row_thresh_gtlt = ttk.Combobox(rowvar_frame, width=2, state="disabled", textvariable=self.row_thresh_gtlt_var, values=gt_lt_list)
|
|
6597
|
+
self.row_thresh_gtlt.bind("<<ComboboxSelected>>", self.q_recalc)
|
|
6598
|
+
self.row_thresh_gtlt.grid(row=2, column=1, sticky=tk.N+tk.E, padx=(3,0), pady=(3,3))
|
|
6599
|
+
self.row_thresh_entry = ttk.Entry(rowvar_frame, width=6, textvariable=self.row_thresh_var, state="disabled", validate='key', validatecommand=(num_validator, '%P'))
|
|
6595
6600
|
self.row_thresh_entry.bind("<KeyRelease>", self.ck_row_thresh_num)
|
|
6596
|
-
self.row_thresh_entry.grid(row=2, column=
|
|
6597
|
-
self.row_thresh_entry["state"] = tk.DISABLED
|
|
6601
|
+
self.row_thresh_entry.grid(row=2, column=2, sticky=tk.N+tk.EW, padx=(3,3), pady=(3,3))
|
|
6598
6602
|
self.col_thresh_var = tk.DoubleVar(colvar_frame, 0.0)
|
|
6603
|
+
self.col_thresh_gtlt_var = tk.StringVar(colvar_frame, '>')
|
|
6604
|
+
self.col_thresh_gtlt = ttk.Combobox(colvar_frame, width=2, state="disabled", textvariable=self.col_thresh_gtlt_var, values=gt_lt_list)
|
|
6605
|
+
self.col_thresh_gtlt.bind("<<ComboboxSelected>>", self.q_recalc)
|
|
6606
|
+
self.col_thresh_gtlt.grid(row=2, column=1, sticky=tk.N+tk.E, padx=(3,0), pady=(3,3))
|
|
6599
6607
|
self.col_thresh_listvar = tk.Variable(colvar_frame)
|
|
6600
|
-
self.col_thresh_entry = ttk.Entry(colvar_frame, width=6, textvariable=self.col_thresh_var)
|
|
6608
|
+
self.col_thresh_entry = ttk.Entry(colvar_frame, width=6, textvariable=self.col_thresh_var, state="disabled", validate='key', validatecommand=(num_validator, '%P'))
|
|
6601
6609
|
self.col_thresh_entry.bind("<KeyRelease>", self.ck_col_thresh_num)
|
|
6602
|
-
self.col_thresh_entry.grid(row=2, column=
|
|
6603
|
-
self.col_thresh_entry["state"] = tk.DISABLED
|
|
6610
|
+
self.col_thresh_entry.grid(row=2, column=2, sticky=tk.N+tk.EW, padx=(3,3), pady=(3,3))
|
|
6604
6611
|
self.row_thresh_list = tk.Listbox(rowvar_frame, listvariable=self.row_thresh_listvar, selectmode=tk.MULTIPLE, width=24, height=24)
|
|
6605
6612
|
self.row_thresh_list.configure(exportselection=False)
|
|
6606
6613
|
self.row_thresh_list.bind("<<ListboxSelect>>", self.ck_row_thresh_list)
|
|
@@ -6619,7 +6626,7 @@ class ContTableDialog(object):
|
|
|
6619
6626
|
self.out_tbl_frm = tk.Frame(output_panes, borderwidth=3, relief=tk.RIDGE)
|
|
6620
6627
|
self.out_tbl_frm.grid(row=0, column=0, sticky=tk.NSEW)
|
|
6621
6628
|
self.out_tbl_frm.rowconfigure(0, weight=1)
|
|
6622
|
-
self.out_tbl_frm.columnconfigure(0, weight=1, minsize=
|
|
6629
|
+
self.out_tbl_frm.columnconfigure(0, weight=1, minsize=400)
|
|
6623
6630
|
output_panes.add(self.out_tbl_frm, weight=1)
|
|
6624
6631
|
|
|
6625
6632
|
self.out_plt_frm = tk.Frame(output_panes, borderwidth=3, relief=tk.RIDGE)
|
|
@@ -6658,6 +6665,9 @@ class ContTableDialog(object):
|
|
|
6658
6665
|
def do_help(self, *args):
|
|
6659
6666
|
webbrowser.open("https://mapdata.readthedocs.io/en/latest/dialogs.html#contingency-table-dialog", new=2, autoraise=True)
|
|
6660
6667
|
|
|
6668
|
+
def validate_num_entry(self, potential_new_value):
|
|
6669
|
+
return not (potential_new_value is None or len(str(potential_new_value)) == 0)
|
|
6670
|
+
|
|
6661
6671
|
def clear_output(self):
|
|
6662
6672
|
for ctl in self.out_tbl_frm.winfo_children():
|
|
6663
6673
|
ctl.destroy()
|
|
@@ -6687,6 +6697,7 @@ class ContTableDialog(object):
|
|
|
6687
6697
|
if rowvar in self.categ_columns:
|
|
6688
6698
|
self.row_thresh_lbl["text"] = "Select categories for\npositive response"
|
|
6689
6699
|
self.row_thresh_entry.grid_forget()
|
|
6700
|
+
self.row_thresh_gtlt.grid_forget()
|
|
6690
6701
|
self.row_thresh_list.grid(row=3, column=0, sticky=tk.N+tk.EW, padx=(3,0), pady=(3,3))
|
|
6691
6702
|
self.rsb.grid(row=3, column=1, sticky=tk.NS, pady=(3,3))
|
|
6692
6703
|
# Populate the list box
|
|
@@ -6699,7 +6710,9 @@ class ContTableDialog(object):
|
|
|
6699
6710
|
self.row_thresh_lbl["text"] = "Threshold for\npositive response"
|
|
6700
6711
|
self.row_thresh_list.grid_forget()
|
|
6701
6712
|
self.rsb.grid_forget()
|
|
6702
|
-
self.
|
|
6713
|
+
self.row_thresh_gtlt.grid(row=2, column=1, sticky=tk.N+tk.E, padx=(3,0), pady=(3,3))
|
|
6714
|
+
self.row_thresh_entry.grid(row=2, column=2, sticky=tk.N+tk.EW, padx=(3,3), pady=(3,3))
|
|
6715
|
+
self.row_thresh_gtlt["state"] = "readonly"
|
|
6703
6716
|
self.row_thresh_entry["state"] = tk.NORMAL
|
|
6704
6717
|
self.q_recalc()
|
|
6705
6718
|
|
|
@@ -6709,6 +6722,7 @@ class ContTableDialog(object):
|
|
|
6709
6722
|
if colvar in self.categ_columns:
|
|
6710
6723
|
self.col_thresh_lbl["text"] = "Select categories for\npositive response"
|
|
6711
6724
|
self.col_thresh_entry.grid_forget()
|
|
6725
|
+
self.col_thresh_gtlt.grid_forget()
|
|
6712
6726
|
self.col_thresh_list.grid(row=3, column=0, sticky=tk.N+tk.EW, padx=(3,0), pady=(3,3))
|
|
6713
6727
|
self.csb.grid(row=3, column=1, sticky=tk.NS, pady=(3,3))
|
|
6714
6728
|
# Populate the list box
|
|
@@ -6721,7 +6735,9 @@ class ContTableDialog(object):
|
|
|
6721
6735
|
self.col_thresh_lbl["text"] = "Threshold for\npositive response"
|
|
6722
6736
|
self.col_thresh_list.grid_forget()
|
|
6723
6737
|
self.csb.grid_forget()
|
|
6724
|
-
self.
|
|
6738
|
+
self.row_thresh_gtlt.grid(row=2, column=1, sticky=tk.N+tk.E, padx=(3,0), pady=(3,3))
|
|
6739
|
+
self.col_thresh_entry.grid(row=2, column=2, sticky=tk.N+tk.EW, padx=(3,3), pady=(3,3))
|
|
6740
|
+
self.col_thresh_gtlt["state"] = "readonly"
|
|
6725
6741
|
self.col_thresh_entry["state"] = tk.NORMAL
|
|
6726
6742
|
self.q_recalc()
|
|
6727
6743
|
|
|
@@ -6737,7 +6753,7 @@ class ContTableDialog(object):
|
|
|
6737
6753
|
def ck_row_thresh_list(self, event=None):
|
|
6738
6754
|
self.q_recalc()
|
|
6739
6755
|
|
|
6740
|
-
def q_recalc(self):
|
|
6756
|
+
def q_recalc(self, event=None):
|
|
6741
6757
|
# Recalculation can be done if both row and column variables are specifiied and have
|
|
6742
6758
|
# thresholds selected.
|
|
6743
6759
|
can_recalc = 0
|
|
@@ -6778,7 +6794,13 @@ class ContTableDialog(object):
|
|
|
6778
6794
|
rowvals = ",".join(squotelist(rowthreshvals))
|
|
6779
6795
|
row_sql = f"{rv} in ({rowvals})"
|
|
6780
6796
|
else:
|
|
6781
|
-
|
|
6797
|
+
rtv = self.row_thresh_var.get()
|
|
6798
|
+
if type(rtv) not in (int, float):
|
|
6799
|
+
rtv = 0
|
|
6800
|
+
if self.row_thresh_gtlt_var.get() == '>':
|
|
6801
|
+
row_sql = f"{rv} > {rtv}"
|
|
6802
|
+
else:
|
|
6803
|
+
row_sql = f"{rv} < {rtv}"
|
|
6782
6804
|
if cv in self.categ_columns:
|
|
6783
6805
|
list_items = self.col_thresh_listvar.get()
|
|
6784
6806
|
curr_selections = self.col_thresh_list.curselection()
|
|
@@ -6786,7 +6808,13 @@ class ContTableDialog(object):
|
|
|
6786
6808
|
colvals = ",".join(squotelist(colthreshvals))
|
|
6787
6809
|
col_sql = f"{cv} in ({colvals})"
|
|
6788
6810
|
else:
|
|
6789
|
-
|
|
6811
|
+
ctv = self.col_thresh_var.get()
|
|
6812
|
+
if type(ctv) not in (int, float):
|
|
6813
|
+
ctv = 0
|
|
6814
|
+
if self.col_thresh_gtlt_var.get() == '>':
|
|
6815
|
+
col_sql = f"{cv} > {ctv}"
|
|
6816
|
+
else:
|
|
6817
|
+
col_sql = f"{cv} < {ctv}"
|
|
6790
6818
|
if self.sel_only_var.get() == '1':
|
|
6791
6819
|
tv_ids = ",".join(self.parent.tbl.selection())
|
|
6792
6820
|
sel_sql = f"and treeviewid in ({tv_ids})"
|
|
@@ -6851,6 +6879,25 @@ class ContTableDialog(object):
|
|
|
6851
6879
|
be = spstats.boschloo_exact(dt)
|
|
6852
6880
|
self.statdata.append(["Boschloo exact test statistic", fp_display(be.statistic)])
|
|
6853
6881
|
self.statdata.append(["Boschloo exact test p value", fp_display(be.pvalue)])
|
|
6882
|
+
if ct_data[0][1] != 0 and not (ct_data[0][0] == 0 and ct_data[1][0] == 0):
|
|
6883
|
+
self.statdata.append(["Risk ratio", fp_display((ct_data[0][0] * (ct_data[0][1] + ct_data[1][1])) / \
|
|
6884
|
+
(ct_data[0][1] * (ct_data[0][0] + ct_data[1][0])))])
|
|
6885
|
+
if ct_data[0][1] != 0 and ct_data[1][0] != 0:
|
|
6886
|
+
oddsr = ((ct_data[0][0] * ct_data[1][1]) / (ct_data[0][1]) * ct_data[1][0])
|
|
6887
|
+
self.statdata.append(["Odds ratio", fp_display(oddsr)])
|
|
6888
|
+
if oddsr != 0.0:
|
|
6889
|
+
log_or = math.log(oddsr)
|
|
6890
|
+
self.statdata.append(["Log odds ratio", fp_display(log_or)])
|
|
6891
|
+
se_logor = math.sqrt(1/ct_data[0][0] + 1/ct_data[0][1] + 1/ct_data[1][0] + 1/ct_data[1][1])
|
|
6892
|
+
self.statdata.append(["SE of log odds ratio", fp_display(se_logor)])
|
|
6893
|
+
halfint = 1.96 * se_logor
|
|
6894
|
+
self.statdata.append(["95% CI for log odds ratio", fp_display(log_or - halfint) + " - " + fp_display(log_or + halfint)])
|
|
6895
|
+
self.statdata.append(["Yule's association (Q)", fp_display((oddsr - 1)/(oddsr + 1))])
|
|
6896
|
+
self.statdata.append(["Yule's colligation (Y)", fp_display((math.sqrt(oddsr) - 1)/(math.sqrt(oddsr) + 1))])
|
|
6897
|
+
n = ct_data[2][2]
|
|
6898
|
+
phi = (((ct_data[0][0]/n) * (ct_data[1][1]/n)) - ((ct_data[0][1]/n) * (ct_data[1][0]/n))) / \
|
|
6899
|
+
math.sqrt((ct_data[0][2]/n) * (ct_data[1][2]/n) * (ct_data[2][0]/n) * (ct_data[2][1]/n))
|
|
6900
|
+
self.statdata.append(["Yule's phi", fp_display(phi)])
|
|
6854
6901
|
if ct_data[2][2] != 0:
|
|
6855
6902
|
self.statdata.append(["P(R)", fp_display(ct_data[0][2]/ct_data[2][2])])
|
|
6856
6903
|
if ct_data[2][0] != 0:
|
|
@@ -6954,7 +7001,7 @@ class ROCCurveDialog(object):
|
|
|
6954
7001
|
ttk.Label(condition_frame, text="Condition variable").grid(row=0, column=0, sticky=tk.W, padx=(6,3), pady=(3,1))
|
|
6955
7002
|
self.cond_var = tk.StringVar(condition_frame)
|
|
6956
7003
|
self.cond_sel = ttk.Combobox(condition_frame, state="readonly", textvariable=self.cond_var, values=self.condition_columns, width=24)
|
|
6957
|
-
self.cond_sel.grid(row=1, column=0, columnspan=
|
|
7004
|
+
self.cond_sel.grid(row=1, column=0, columnspan=3, sticky=tk.N+tk.EW, padx=(3,3), pady=(3,3))
|
|
6958
7005
|
self.cond_sel.bind("<<ComboboxSelected>>", self.ck_condvar)
|
|
6959
7006
|
|
|
6960
7007
|
self.cond_thresh_lbl = ttk.Label(condition_frame, text="Threshold for\npositive response")
|
|
@@ -6964,11 +7011,17 @@ class ROCCurveDialog(object):
|
|
|
6964
7011
|
# or a selected list of categorical values specified in a Listbox widget. The Entry widget is
|
|
6965
7012
|
# initially displayed, but disabled. The 'ck_rowvar' and 'ck_colvar' methods hide and re-grid
|
|
6966
7013
|
# these widgets as necessary.
|
|
7014
|
+
gt_lt_list = ['>', '<']
|
|
7015
|
+
num_validator = self.dlg.register(self.validate_num_entry)
|
|
6967
7016
|
self.cond_thresh_var = tk.DoubleVar(condition_frame, 0.0)
|
|
6968
7017
|
self.cond_thresh_listvar = tk.Variable(condition_frame)
|
|
6969
|
-
self.
|
|
7018
|
+
self.cond_thresh_gtlt_var = tk.StringVar(condition_frame, '>')
|
|
7019
|
+
self.cond_thresh_gtlt = ttk.Combobox(condition_frame, width=2, state="disabled", textvariable=self.cond_thresh_gtlt_var, values=gt_lt_list)
|
|
7020
|
+
self.cond_thresh_gtlt.bind("<<ComboboxSelected>>", self.q_recalc)
|
|
7021
|
+
self.cond_thresh_gtlt.grid(row=2, column=1, sticky=tk.N+tk.E, padx=(3,0), pady=(3,3))
|
|
7022
|
+
self.cond_thresh_entry = ttk.Entry(condition_frame, width=6, textvariable=self.cond_thresh_var, validate='key', validatecommand=(num_validator, '%P'))
|
|
6970
7023
|
self.cond_thresh_entry.bind("<KeyRelease>", self.ck_cond_thresh_num)
|
|
6971
|
-
self.cond_thresh_entry.grid(row=2, column=
|
|
7024
|
+
self.cond_thresh_entry.grid(row=2, column=2, sticky=tk.N+tk.EW, padx=(3,3), pady=(3,3))
|
|
6972
7025
|
self.cond_thresh_entry["state"] = tk.DISABLED
|
|
6973
7026
|
self.cond_thresh_list = tk.Listbox(condition_frame, listvariable=self.cond_thresh_listvar, selectmode=tk.MULTIPLE, width=24, height=15)
|
|
6974
7027
|
self.cond_thresh_list.configure(exportselection=False)
|
|
@@ -7015,7 +7068,7 @@ class ROCCurveDialog(object):
|
|
|
7015
7068
|
# Populate stat_frame
|
|
7016
7069
|
ttk.Label(stat_frame, text="Prediction threshold").grid(row=0, column=0, sticky=tk.W, padx=(3,3), pady=(3,3))
|
|
7017
7070
|
self.pred_thresh_var = tk.DoubleVar(stat_frame, 0.0)
|
|
7018
|
-
self.pred_thresh_entry = ttk.Entry(stat_frame, width=6, textvariable=self.pred_thresh_var)
|
|
7071
|
+
self.pred_thresh_entry = ttk.Entry(stat_frame, width=6, textvariable=self.pred_thresh_var, validate='key', validatecommand=(num_validator, '%P'))
|
|
7019
7072
|
self.pred_thresh_entry.bind("<KeyRelease>", self.ck_pred_thresh_num)
|
|
7020
7073
|
self.pred_thresh_entry.grid(row=1, column=0, sticky=tk.N+tk.W, padx=(3,3), pady=(3,3))
|
|
7021
7074
|
|
|
@@ -7050,6 +7103,9 @@ class ROCCurveDialog(object):
|
|
|
7050
7103
|
def do_help(self, *args):
|
|
7051
7104
|
webbrowser.open("https://mapdata.readthedocs.io/en/latest/dialogs.html#receiver-operating-characteristics-dialog", new=2, autoraise=True)
|
|
7052
7105
|
|
|
7106
|
+
def validate_num_entry(self, potential_new_value):
|
|
7107
|
+
return not (potential_new_value is None or len(str(potential_new_value)) == 0)
|
|
7108
|
+
|
|
7053
7109
|
def clear_output(self):
|
|
7054
7110
|
for ctl in self.out_tbl_frm.winfo_children():
|
|
7055
7111
|
ctl.destroy()
|
|
@@ -7070,6 +7126,7 @@ class ROCCurveDialog(object):
|
|
|
7070
7126
|
if condvar in self.categ_columns:
|
|
7071
7127
|
self.cond_thresh_lbl["text"] = "Select categories for\npositive response"
|
|
7072
7128
|
self.cond_thresh_entry.grid_forget()
|
|
7129
|
+
self.cond_thresh_gtlt.grid_forget()
|
|
7073
7130
|
self.cond_thresh_list.grid(row=3, column=0, sticky=tk.N+tk.EW, padx=(3,0), pady=(3,3))
|
|
7074
7131
|
self.condsb.grid(row=3, column=1, sticky=tk.NS, pady=(3,3))
|
|
7075
7132
|
# Populate the list box
|
|
@@ -7082,7 +7139,9 @@ class ROCCurveDialog(object):
|
|
|
7082
7139
|
self.cond_thresh_lbl["text"] = "Threshold for\npositive response"
|
|
7083
7140
|
self.cond_thresh_list.grid_forget()
|
|
7084
7141
|
self.condsb.grid_forget()
|
|
7085
|
-
self.
|
|
7142
|
+
self.cond_thresh_gtlt.grid(row=2, column=1, sticky=tk.NE, padx=(3,0), pady=(3,3))
|
|
7143
|
+
self.cond_thresh_entry.grid(row=2, column=2, sticky=tk.N+tk.EW, padx=(3,3), pady=(3,3))
|
|
7144
|
+
self.cond_thresh_gtlt["state"] = "readonly"
|
|
7086
7145
|
self.cond_thresh_entry["state"] = tk.NORMAL
|
|
7087
7146
|
self.q_recalc()
|
|
7088
7147
|
|
|
@@ -7099,7 +7158,7 @@ class ROCCurveDialog(object):
|
|
|
7099
7158
|
def ck_cond_thresh_list(self, event=None):
|
|
7100
7159
|
self.q_recalc()
|
|
7101
7160
|
|
|
7102
|
-
def q_recalc(self):
|
|
7161
|
+
def q_recalc(self, event=None):
|
|
7103
7162
|
# Recalculation can be done if the condition variable and positive values have been
|
|
7104
7163
|
# specified, and a prediction variable specified. The prediction threshold is always
|
|
7105
7164
|
# specified, defaulting to zero, so does not affect whether recalculation can be done.
|
|
@@ -7153,7 +7212,10 @@ class ROCCurveDialog(object):
|
|
|
7153
7212
|
positives = [clean_data[0][i] in condthreshvals for i in range(len(clean_data[0]))]
|
|
7154
7213
|
else:
|
|
7155
7214
|
threshval = self.cond_thresh_var.get()
|
|
7156
|
-
|
|
7215
|
+
if self.cond_thresh_gtlt_var.get() == '>':
|
|
7216
|
+
positives = [clean_data[0][i] > threshval for i in range(len(clean_data[0]))]
|
|
7217
|
+
else:
|
|
7218
|
+
positives = [clean_data[0][i] < threshval for i in range(len(clean_data[0]))]
|
|
7157
7219
|
clean_data.append(positives)
|
|
7158
7220
|
self.dataset = sort_columns(clean_data)
|
|
7159
7221
|
self.data_labels = [self.cond_var.get(), self.pred_var.get(), "Positive"]
|
|
@@ -9,7 +9,7 @@ symbol_files = glob.glob("mapdata/symbols/16x16/*.xbm") + glob.glob("mapdata/sym
|
|
|
9
9
|
glob.glob("mapdata/symbols/24x24/*.xbm") + glob.glob("mapdata/symbols/28x28/*.xbm")
|
|
10
10
|
|
|
11
11
|
setuptools.setup(name='mapdata',
|
|
12
|
-
version='3.
|
|
12
|
+
version='3.1.0',
|
|
13
13
|
description="An interactive map and table explorer for geographic coordinates in a spreadsheet, CSV file, or database",
|
|
14
14
|
author='Dreas Nielsen',
|
|
15
15
|
author_email='cortice@tutanota.com',
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|