From 6bee1fb352ed4b61fe50eea9f1b133ed5c4ad32e Mon Sep 17 00:00:00 2001 From: Janis M Date: Wed, 23 Mar 2022 15:07:19 +0100 Subject: [PATCH] merged shops and amenities to places --- __pycache__/managers.cpython-310.pyc | Bin 1203 -> 1594 bytes __pycache__/objects.cpython-310.pyc | Bin 1805 -> 1801 bytes __pycache__/osm.cpython-310.pyc | Bin 3252 -> 5777 bytes __pycache__/publicTransport.cpython-310.pyc | Bin 1681 -> 1583 bytes main.py | 12 +- managers.py | 26 +++- objects/__pycache__/amenities.cpython-310.pyc | Bin 0 -> 491 bytes .../__pycache__/baseObjects.cpython-310.pyc | Bin 0 -> 1933 bytes .../__pycache__/metaObjects.cpython-310.pyc | Bin 0 -> 1379 bytes objects.py => objects/baseObjects.py | 15 +- objects/metaObjects.py | 44 ++++++ osm.py | 136 ++++++++++++++++-- 12 files changed, 199 insertions(+), 34 deletions(-) create mode 100644 objects/__pycache__/amenities.cpython-310.pyc create mode 100644 objects/__pycache__/baseObjects.cpython-310.pyc create mode 100644 objects/__pycache__/metaObjects.cpython-310.pyc rename objects.py => objects/baseObjects.py (76%) create mode 100644 objects/metaObjects.py diff --git a/__pycache__/managers.cpython-310.pyc b/__pycache__/managers.cpython-310.pyc index ac619741518a37a8e96b40073f6daf21c91ac664..8a3dabe14f2860c85caf53d09b5ee62f24b0e8f9 100644 GIT binary patch delta 693 zcmdnYxr>J{pO=@50SM|et&P)PWl}=%6VTfW)VNc-z(rhW5!3>&Qw|D|_ z5|dLWF7{Wjbhe5KElw>ej`2#&%PfxZ&r5YF$}CHbaY-%CF3B&LEX8QRCJI)**`HB@ zQ5$4OF^J$`zXCVHp1tiiLYME*nvKX=$T^M3{YME=8vzTfavzdy7 zYM2%Pc?%gC84B5In1UIKK>9RUidcbEkqC$Y1x1l4Lp@lS4JLAntthp)G^eD98zchu zJR$`6fj$7cw%Dl>gFS1W3I!h>)A?$fC#x TPBFkV!@)hs7NL_#B~R delta 283 zcmdnRvze1GpO=@50SMTntdiC+P2|gEl$lr~%N5L^$##o7I3vGc;ue1mM`x>;(Bjmh z;ux>Qyv*Vlm(=3ylKg@gpZw&+oZyng5`}=ul8pSk$;yldtRf&?n>*V9h=jG*M0D`VlR!M1W8~J1y6)c>sVnT~ki;82s67w>PWBl_{U5YZxQe#|F zi?d7e3nm9KDl_s-E@MpM2Wc&40TLVxJWNGQljpFgZ02T?W@Hqatj_EtEC7@d1me$7 zC5%M^ASILMFh^;F#EXQ0#4WbG{FGGBlp0Z0maGFStfhJ4FGE_5(CMIg9r%_AqgU+fP^MH)D)0_42S@mAqQf~g9wGm z2N{J~xq(d8$=$4u+$tbJMG&C{cIQAm> ivyjk(8>0*eFi=jG*M00K?{tE5vb8~J1yH5{C+VnT~ki;82s67w>PV_Z^;vrF;|Vtn$G z6LW$~5=#^UDoZl*^Co*SDl;-o&SOmCWdxe=nFUC2Fz_&LzRT#y$jC8Sp4o|C5GckD z#6Z4KPA;OrAP$CVa`siyv16Um{Xdn$yx-~C^K1> zMUPQrvJZc|GxDKPmQYnTSyid(GZiIq^d7O8@CsR0RuOMTch8C55j lu~|r{fF!|w)&{ctfJ&G^B7&2Tu~~64@Uijn@UaVV0RX?}O633m diff --git a/__pycache__/osm.cpython-310.pyc b/__pycache__/osm.cpython-310.pyc index f7ea589f67ff93b3d05ac08e1cee610e19f9fb7d..c42c4b98eb8e064a70d5ebd0847c807684a296b1 100644 GIT binary patch literal 5777 zcmd5=O>Er873M#=yWG`Ul9SkR5@qw#sA%o}Bn{w5b_}~sTsU%z#4*A;SWrt!qIZ{E z4Y_ibSfK@!-cq2K9t+rq0L`K8A?UHkqP^shLoWn+Y0&~k(PJ+H3iNxAq`0dnL4o$r zUGQGn>S8>FbU_8l_2hvb>CH*kCYs*;&kJWu#>oS9dnFmZcHkFK8mDFCnHh_Au;k|TSPqj<8Xye~Ow zKDwiMx@Q3Ep6OXQ8(z(;<7|2j&&JvEnqCX%nzw)%wlnqSn{V`}v=OILR7R z!tFCK@3|8$)KMs%wGpigyB9{Ti2a*K{a~@Q*dJ^;jc(QXN0L~=Y!6?&dhyP!*cb7g z@48_S-?=A-?`?;{UjRQxe@i;!IjV*Oj2LmK?mnYlg#RNgD^J_-r{q_K;NSdJ zH14jQ=u_oD_KdzJzCYKC$-Vqws?PLmu}^T%##H@G&$WC$bT{0yTJ*d>*9$%T`bH+# z5A`*A#;J1QQhJt{ztW4w18*gal9f$=B?$4165mVBwF}hllAtv`)Yd?O)L6TK)1~yx zZFh3=WvixWpnaytqd|~l^`7wE#HV30eIx>K&2UE}KlCzn;D=c)uSa*Qx>)232SMn^ zPL0OC!9@#0aw*fOj@gu(Wn3Um!L)I(FxaxDXtJePvL!2W8$_{X8%U8`C=+#nQAfwD zuP!S;(*Bk%5t)vWdM*fwg~Ti7R0rXhNC$YL#G;?d?^^q+Cr{Nqltn8+>AvED37&ce zT=KvaPd_6a$opDRXPi(69(iV8iNB7s)mOwzQ*foL?vlR-|2ocf_^+^EV}Aqw>+sv~ zzrlW;{Z069!QX=a9rhdSUx43*zYV|7ev|#DfQO7N#*4sX#x=%E!268rjF*9b%(%h$ zH1JOt+l(Ip{u$#Y<41vi&bY<+G2jmwFEBm>{7c4d#%FV{ww2089xpD55|u%?g0Oj@fpU?0RM~eS;o)y z6+CH!J&&{JIrg;Ja}FK_QTO}?LN0N)R}R(wdgmdBlibO}O5I!Uqzk?Ly>juMzZnM! zUPwhDZI(5oohYOTqEp%`y~AiT82FiypVLO^-*Vr}RG8{|f9M8-Oy^VDuG;nd%_!=p z_0qG~PfwL)C;?_I++j7rpZh!V+}m-J z78c4T2IGafZzE zWWGe^1v0B-z6|47TX=`k(mTpt->DrfwPO}b?3l&UItm&Y`BFMoxrB~YE}dhQOXk#$ zmdeq2iJW@1G>*sNDPe*>-KJs3!^QkT!+--al+A;PluU zH>1xN^*>{pm8icPl#(vO|4z`w1r~)|$Vu2=W}FK+gk4-_oC`Mz{A-MJ!G^$#n~Zaz zCZWI0I2URNz34K|g_;C^n{h7G5PT6bCZQ%#YHx_Aai^j~<{2{2k|A*t&%vZ^7g_Jc zooF2U;dr=-cx$i+siW^FX`KP5f@zJ*y&##S&Dfk{ z)QdXvgu2GG&bh|rsS;nFHukmMWq62`uTSYHJw(f!KswhGDQ^K8yUU)<5FNc zneNcX{$YZR$xbxNv=G>7M#w-RgI(}S#HqFxdMl|e{H^tlcofg!Pz${E4pLcq)Z#pu zO4H8~q&!ei*16iOgwZjA_)U!Bn3TL;_u@=T@D>u^LOaJU#(bTIbWCDA_LM|d-cuf< zVJ44`GqI5i81G6yK##l!)HF?|KglXFkr-(!l;whEu>Jw6GUEHJUisIDCIm;in@|#vvpcgXPt1JUewi2 zs56SX`U!PrQP()3&H~4(` zJwaUFHL(p>ruAv#Kx3AgB})-SB)uOYViBue`+-8E!b_R<$Axz>_cEiGHpDlv_~J1# zFO!+q=EK?^cF;i-u6GU_NialOrlZwHab-R7pE*!4#)$j(CF10-1|2b7a@CExYb9ZyowR@OC~i$42?Ba%POKmQzC> z<4$e`oan8QSK$jNH3nmsK3GylR)PiJEC~`UsPJ4J)vdV(h3%4lnc}~grT8aD6#t-j?En81&qEQS$dW%x-P#w@dM-4kwQ2pp+HVx$ zfnehBXmNOaTJ%#&_3RjSQP)0U{N`ME*wZG$qebC@@IW}p($wZa`2Bn!z)Ks=PYdtz zOn96w!h=Nmr0_`f0fh!mF5*DELe195tdpTHhvG7s|1cuxbDOZqa757SI*$kv$vh$! zX5~MZ{X8W29dIKG^OwO5H*xsWS{WrxYFmW~!zxbrVhR-gFqcP4SVc;vAj4UrIk4f+ zAoyk~{Q*b(HJHyv3dP7HpBF6;(^eHN8<^O}YMs8k(aW;i&FbCmF!II&D%;&Ic3OkH zMx3TO&CkGP(kV?DpiCKiLtxd*mk#_U6quL z3JSg&=S>hQK8WChqEEgFiZ8zSy5c7gzkpAkvymE9++}{8nX_~G|L1IT>`iaVNhae2 zo?7pL%kPuTRE~}}M+dUUh{;Ut9x=7MtQ0Z%EGg(sd#lc8=bh!|i$1!y`EehPCRCa} z(uE7d>LneU>x8v_OimvtpLZ?kmXBBMnp-|j)^byTIE}2o3Ho}1DN1ANlQu!qO6Mb4+*F1zFzNs# z)geB=F9uNr+B7ux4d5ziFq1YkXxyhq$;Ii0ZZcoLLF9x-e0`0Yn)+;H9%eYz)hnZW zH0no8vB2aWKibe%1oUFi+YddyBFuO=^@PvXU=cNx$!>c>DOnMo<};uB+Fh+7d~%IL zT42T`=vgr!>T9I`cEHiMfZNq2Yn4yh=HRL>tt(Ucf-VJ|R(2!$5U4_;7loKiW4swq zirS88&6sY$z522xM=;S32($&O9_Tl!i`T7yx-D~SFi{b&}Vl9?FS}Uny#i!&z>4@&Bdw8@966}M+pHpS?K0daF+QRxM{1V@myU< zkI-l8R=P6!%qMHYr=dGMbRk`o19;wzfFHbOPUR&YLvB$6ol_SEF&si{MGON#`EOIO zHe>=3+M{E%36VsM0t(4Cqx75A`iv?2)!WX)+qUB;1we`2^#1Th=3x97G$m6MKLimET!nf$s30ki+|pa+(#sGQNK zE_G#lLkqsOUw#p)u2>MN*)@DNgInVt7w#Y0Cvkq8uj_>;qmaN;yLfYg2r6PCFM1L^ mVWwD!mZFXt+BmQ~?Eh+Gb7fRj!7>cHnr=r~y zx*JFR_HN{R!B*%6gP~CE{!OH{{vdT2lc9_mvv769DAVD}EcUgDhfl$J($EtNk4apt zf*6rwa!i}#YwbH7(PJoQ*HDWvGP!{xO1QaCPAqOgnuR^Lcq9*xzIg-J=_HzIfN$-b zTMFZ*b790q%RAhaI!?{57^H<$FG$3>p>WOAjJ?CGAY)X;FDHz!XZc@_Ls!s1kftRTQ{o*9hmOhQFgXMa+!m z!D#p*2kfR_E}2?@plMOZUM!=qwR1nyLdGP+DbylDXHaYTP}d#vsW7x#4q)G7hNYVY zwk-878h!@5DcsX5xb+;kJDeW~XzQc{n>q`wF7?6&6vv7BBMMtN0R zlKR7?*%WQ%3hh-6+W)?LjWS*tq1O|PrDeu?5l;dfR~S1?_=dnZCUGON>nn?-rz literal 1681 zcma)+OK;Oa5P)}W$9B@RO<%kZy?_*{1i=X*gj!k^gxXM%aIu0c$7|Y6{YZBmP@*6q z(Ld84!x_m}PMmw=#EjiEX=&qbw6n9GN50vyH=3O-5g5OIK5wrV2>Feh$)Un#9j2^- zV1!Yh1k|Dwb;VZ#)lvh^(kOXDn98(c!n7ZXRbYh%sp@|qhE!>yzHjVSl|-vY%u5WE zO=sUlbnQ}}lHA`-3tiW{G7ns3JSanupC0GqM!^*IlY?jTz zT4eJ8P)Q!__1Zpno5BfYHxluN>v~f1Hurhlckv%b19hC6FeRSJkPe9rWkMcW$08yb zU=h;uKPQ?EyAvXc;Q06L=8M)x=?U3-=Y(9gwmf+lN8Q#=%;_44A?c6~-6Egn zztJJ>z_A`GVhJ>rDX2j|)do4zmXvc9_Yb~0eame3q%EPE=JtsubV!xVgjoZ3 zxQr9^(Ca6KFOJ{yP84CFU5%an^k6c9XPL}%`MM`Zr|)|vJUm59nJ!bED&I9aSeshs zr3BZOE6R`+N=OXha34!3#=;5CY7nzv6$>b^brXaYF5xW+#)xxhUj{LFoC9_-E|*NK zK+?pJ@M7>NY;IrAw2(6Ka14b!8B{GFYBDgN>NcddNGw(;nufvs@4gN`4-ZwzQI!Ak& zgZ6)Hy;{O6BXk1Kwv&==2NCP}sF!W~sOR{ZMa)U#h%Pp$Q;p56%pFPy}P+8xi0rNFC4U}WlaRqn)mnX$gYYfIw2 KQYIC;sQd$8YmyZJ diff --git a/main.py b/main.py index 8412795..055b7ab 100644 --- a/main.py +++ b/main.py @@ -1,5 +1,5 @@ OFFLINE = True -from managers import ShopManager +from managers import PlaceManager from osm import OSM from publicTransport import PublicTransportAccessibility import requests @@ -46,7 +46,7 @@ else: osm = OSM(r.text) pta = PublicTransportAccessibility(osm) -shopManager = ShopManager(osm) +placeManager = PlaceManager(osm) print("\n--- Public Transport Accessibility ---") print("Bus: " + str(pta.isBusAccessible())) @@ -56,11 +56,9 @@ print("Subway: " + str(pta.isSubwayAccessible())) print("Train: " + str(pta.isTrainAccessible())) print("Monorail: " + str(pta.isMonorailAccessible())) -print("\n--- 10 Most present shop types ---") +print("\n--- 20 Most present places types ---") counter = 0 -for s in shopManager.getCountsOfTypes(): - if counter <= 10: +for s in placeManager.getCountsOfTypes(): + if counter <= 20: print(s['type'] + " : " + str(s['count']) + " times") counter = counter + 1 - - diff --git a/managers.py b/managers.py index 6a8931c..170acfa 100644 --- a/managers.py +++ b/managers.py @@ -1,6 +1,6 @@ from operator import itemgetter -class ShopManager: +class PlaceManager: def __init__(self, _osm): self.osm = _osm @@ -13,9 +13,25 @@ class ShopManager: return True return False - if self.osm.shopList: - for shop in self.osm.shopList: - if not isInDict(shop.type): - countDict.append({'type': shop.type, 'count': sum(a.type == shop.type for a in self.osm.shopList)}) + if self.osm.placeList: + for place in self.osm.placeList: + if not isInDict(place.type): + countDict.append({'type': place.type, 'count': sum(a.type == place.type for a in self.osm.placeList)}) return sorted(countDict, key=itemgetter('count'), reverse=True) + + def getPlacesByType(self, type): + result = [] + for a in self.osm.placeList: + if a.type == type: + result.append(a) + + return result + + def getPlacesByName(self, name): + result = [] + for a in self.osm.placeList: + if a.name == name: + result.append(a) + + return result \ No newline at end of file diff --git a/objects/__pycache__/amenities.cpython-310.pyc b/objects/__pycache__/amenities.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..eae9fdaa216d9da2999bd526248b6f58f6350490 GIT binary patch literal 491 zcmY*W%}N6?5S}F4AJ-P7i0{x#A3#M~TM$L+LA)%1u-!yh-R{<8D{R?Y`!c>#uD*pQ zXSNpV!1pDSnQt=56#ae(XtlUnXa?|2&anw}#t1h+x&sZG?GRfYf#%OJ6bYXHGmhRE z;m(l^L`*}(HPd_tko>Cv{INL|;Db{HEJ0hBm#j!vO;pl_9&|}TXe7IkavgvV_ RB))sSzvPCrjy`n|`~oK~ZfpPm literal 0 HcmV?d00001 diff --git a/objects/__pycache__/baseObjects.cpython-310.pyc b/objects/__pycache__/baseObjects.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9d08c78efa82e24150167c7a47a4225fa172593a GIT binary patch literal 1933 zcma)6TaVl{6i#C2GU?1vm5apvQb2^u!ZRSWs4GD$G(~DFq-Z278=EC`HW}>9qFK#b z`)Bqq`IR?bSG@4Vcbv&g3N2kn{&bGxb8LU#v75;x_0ayh`PK2Cq38WU&ag2!hv?=G z;5$!x(tnKpD9FhRB!kD``S7?5;f3%5c#(|Z#qb!sM2_H%;BlGW^RjCt@;%XZE4_kY z<>kKg@&Gw$4L@hnM^tFT9~VWbW@S8xB|AXBg>F6qZ2XNUyiEY~Hw+kTIFM~ZAm2p5 zPg3xAeHHm)0~ZcAf%yIv~G>*7?|xR6pSV{BYDbz79J9XCr=SM|yF%}Sdrw%n-2 z&v_!Y(RnCbcqk|ym`%GS(}3#0CK_Q7&(6CtX)YK0&<%@`2*{g?XZQ%BoD zKPh9g+3bQ-6zx_Bn+kE-$kl@Eu@JwlibeNFPms&)bO4lJ`+yO;;ef=O`flVux{@-7 z=$9`6cDnj9cQo$Rw)u}RVak{jl@|U7M zQAV|vtq{Uj&@LNk+OTD!k~tShK!^;9=u@O(pCc9fBwSFIP*9qGGfdRKh;FU}Qh)eO z{qqTtwv%+Gr|U44PvH!7 z!Hsj=1})p^!g^iyd`FrpLB9;JQFnVZ-FeF%sr~*mXw}-e2PahzV7S!((koR1U*iXg!*>BMyQVjTcTHSg*KbY6o zZP3^4p0i}nnd3^oN?Ux5;B|sG2;Kx_@t!zMbm(^o-X(aC;3k2qjeUU-bswU;cVk~= zpl^)xU4^>O5KV-2)RFgG>LR56zv|Moqwa!bg2t(S&tK^Fag|dZVE*S6=n90q8CIru(A_9kGMWyr>EB@49o07Zx_f57p(sO- O^)#7|rsHXRBmD=;*?YhM literal 0 HcmV?d00001 diff --git a/objects/__pycache__/metaObjects.cpython-310.pyc b/objects/__pycache__/metaObjects.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3b8b29200c1e280af6d9a2d3e4e7f1a3761a06c7 GIT binary patch literal 1379 zcmaKr&5jf|5Xar$-NWtz8$trg#|DYRTsUz8gh0Deq$nB=t4L96B+K3H*>$GJZfy4~ zgZdU81aaF}@-=V4g_LV%hslcImVc_UtNtz9Rce2KL}2{+!_(?RLdZYf*&Pu$FJPJ@ zz^|ksP4Eup-(l&!u!+EnzzdrAl#G)aqW&|s`FCNN6Nn>a*u6B)!IFr3mwP5Wyb+O^?tV}7Mu8b)h4?H|ynbXYy%Z#p1cuDk6@M0fNj-O2b zFkGAIZ%hg^eI@yc7E3-o;bv}CH~n4JtbHk2yL!v@R8@cR+M4NtTlQ*gKk8O4r&LH` zDfQ)G9s|-~`-NNU^V%1zQSkQGrpz8)$&HhVAD6NJgJcU%sT)x^Lesb2-lG&QuU+rx zBls_#Y6n02wE*C!i2*q|2yo^9d*MEWUG+i{6wo`@`{8BNz&n~rjok_1et3J^4^P1P zdOr-Q?}s4+rb7vRj7!ytS=p}TPD;Cmj%62hVt1+ z`(V_DU=;UJ8};j#egwaI0Mi@-(rZQFAA56$pC7xx$M(>_K+cY!FIA0C`4B9>X>veL g!XOL|K54%?8Hf0+=zJ;H< 0: wayLines.append(line) - def createShop(self, lines): - # TODO Make sure shops are not duplicates. - # TODO e.g. REWE(shop) is big enough to have some "Ways" of it's own and multiple nodes, which can cause duplicates. - - nodeIds = [] - type = "" - name = "" + def createContact(self, lines): + c = Contact() for line in lines: if '