From 8b642e96b0a641a6adb0d4a73389eb62bb0ee74e Mon Sep 17 00:00:00 2001 From: szeka9 Date: Sat, 11 Apr 2026 23:18:20 +0200 Subject: [PATCH 1/3] Improvde README and documentation Move parts from README to a development guide. Include installation steps in the README. Update documentation about the demo app to be more transparent about event loop handling. --- README.md | 119 +++++++++++++++++++-------------------- assets/www/examples.html | 20 +++---- docs/development.md | 74 ++++++++++++++++++++++++ docs/img/home_page.png | Bin 0 -> 35978 bytes 4 files changed, 142 insertions(+), 71 deletions(-) create mode 100644 docs/development.md create mode 100644 docs/img/home_page.png diff --git a/README.md b/README.md index 3acb293..aef49b6 100644 --- a/README.md +++ b/README.md @@ -13,76 +13,73 @@ A lightweight HTTP server library for MicroPython designed for constrained embed - Query parameter parsing with percent encoding support - TLS support -# Prerequisites - -## Setup virtual environment -```bash -python3 -m venv venv -source venv/bin/activate -python3 -m pip install -r requirements.txt -``` - -## Create pyrobusta.env in the project root (optional) - -```bash -# pyrobusta.env -wifi_ssid="" -wifi_password="" -tls="true" -socket_max_con=2 -http_mem_cap=0.05 -... +# Installation + +Use the mip package manager to install PyRobusta on your MicroPython-installed device.\ +The bare minimum requirement is 40KB of free heap, however, it is recommended to select\ +boards with more SRAM for usability and stability. The ESP32-C3 is a recommended entry-level\ +board leaving a user-friendly amount of memory after installing PyRobusta. + +If required, use the below script to connect to a Wi-Fi station in advance. +```python +from network import WLAN, STA_IF +from time import sleep + +ssid = "" +password = "" + +sta_if = WLAN(STA_IF) +sta_if.active(True) +sta_if.connect(ssid, password) + +timeout = 30 +while timeout > 0: + if sta_if.isconnected(): + ip = sta_if.ifconfig()[0] + print(f"connected, IP={ip}") + break + sleep(1) + timeout -= 1 + +if sta_if.isconnected(): + print(sta_if.ifconfig()[0]) +else: + print("connection failed") ``` -pyrobusta.env contains runtime configuration, deployed to the device. This allows the user to override default behavior and configure optional settings. -- rules such as ```make run-unix``` or ```make run-device``` also rely on pyrobusta.env, allowing the user to experiment with different settings -- pyrobusta.env is ignored when running functional tests (```make test-unix```, ```make test-device```) +Install and start PyRobusta by following the below steps. For more advanced usage,\ +check the included documentation reachable from the home page served by your device. -Check [configuration.md](https://github.com/szeka9/PyRobusta/blob/main/docs/configuration.md) for all configuration options. +```python +# Download latest version of PyRobusta +import mip +mip.install("github:szeka9/PyRobusta") +# Install assets +from pyrobusta.utils.assets import install_www +install_www() -# Build and run example application +# Start the server +import asyncio +from pyrobusta.server.http_server import HttpServer -## Run on unix port +async def main(): + server = HttpServer() + asyncio.create_task(server.start_socket_server()) + while True: + await asyncio.sleep(1) -```bash -make toolchain # Setup mpy-cross and micropython -make build # Cross-compile, create build artifacts -make stage-example # Create runtime directory for unix port -make run-unix # Run example application on the unix port of micropython +asyncio.run(main()) ``` +Open a browser and type your device's IP in the address bar. You should be greeted\ +by the default home page. -## Deploy to a device - -```bash -make toolchain # Setup mpy-cross and micropython -make build # Cross-compile, create build artifacts -make deploy # Upload build artifacts to device using mpremote -make tls-cert # Optional: generate self-signed certificate for the device -make deploy-cert # Optional: upload generated certificate to the device -make deploy-example # Deploy the selected example app using mpremote -make run-device # Optional: Reset the device and connect through REPL -``` -```deploy-example``` and ```run-device``` uses the DEVICE argument -set to ```u0``` (/dev/ttyUSB0) by default, passed to mpremote. +![image info](./docs/img/home_page.png) -Override the DEVICE argument to select a different device, e.g. -```make DEVICE=a0 run-device``` for /dev/ttyACM0. Check mpremote --help -for additional shortcuts. +For fine-tuning heap usage, check the [dimensioning guide](./docs/dimensioning/http_dimensioning.md)\ +and [configuration settings](./docs/configuration.md). -## Redeploy +# Development -When changing the source code, run the below rule for redeploying to the device. - -```bash -make redeploy # Will run the following rules: clean build clean-device deploy -``` - -## Unit tests, pylint, functional tests - -```bash -make static-checkers # Run static checkers (Pylint, black formatter) -make unit-test # Run unit tests -make test-unix # Run functional tests on the unix port -make test-device # Run functional tests on a device -``` +Check the provided development guide to create and deploy custom builds\ +to your device: [development guide](./docs/development.md) diff --git a/assets/www/examples.html b/assets/www/examples.html index bce9539..97bb01f 100644 --- a/assets/www/examples.html +++ b/assets/www/examples.html @@ -55,10 +55,10 @@

Server configuration

# /pyrobusta.env socket_max_con=2 # max number of socket connections, reduce it to lower memory usage -http_multipart="false" # turn on/off multipart parser, increases memory usage when turned on -http_mem_cap="0.05" # memory cap (% × 0.01) of usable heap for stream buffers +http_multipart=False # turn on/off multipart parser, increases memory usage when turned on +http_mem_cap=0.05 # memory cap (% × 0.01) of usable heap for stream buffers http_served_paths="/www /lib/pyrobusta" # space delimited list of filesystem paths allowed to be served -tls="false" # key.der and cert.der needs to be installed at / when set to true +tls=False # key.der and cert.der needs to be installed at / when set to true

@@ -72,7 +72,7 @@

Simple Server Application

import asyncio from gc import mem_free, mem_alloc -from pyrobusta.server import http_server +from pyrobusta.server.http_server import HttpServer from pyrobusta.protocol.http import HttpEngine from pyrobusta.utils import logging @@ -94,14 +94,14 @@

Simple Server Application

return "text/plain", (f"Free memory [{value_format}]: {free}\n") +async def run_server(): + server = HttpServer() + asyncio.create_task(server.start_socket_server()) + while True: + await asyncio.sleep(1) def main(): - http_server.main() - try: - asyncio.get_event_loop().run_forever() - except Exception as e: - logging.warning(f"loop stopped: {e}") - asyncio.get_event_loop().close() + asyncio.run(run_server())

@@ -72,7 +72,7 @@

Simple Server Application

import asyncio from gc import mem_free, mem_alloc -from pyrobusta.server import http_server +from pyrobusta.server.http_server import HttpServer from pyrobusta.protocol.http import HttpEngine from pyrobusta.utils import logging @@ -94,16 +94,18 @@

Simple Server Application

return "text/plain", (f"Free memory [{value_format}]: {free}\n") +async def run_server(): + server = HttpServer() + asyncio.create_task(server.start_socket_server()) + while True: + await asyncio.sleep(1) def main(): - http_server.main() - try: - asyncio.get_event_loop().run_forever() - except Exception as e: - logging.warning(f"loop stopped: {e}") - asyncio.get_event_loop().close() + asyncio.run(run_server()) -

Use curl to test your application.

\ No newline at end of file diff --git a/dist/pyrobusta/assets/www/index.html b/dist/pyrobusta/assets/www/index.html index 2f49452..f5d4cf2 100644 --- a/dist/pyrobusta/assets/www/index.html +++ b/dist/pyrobusta/assets/www/index.html @@ -48,7 +48,7 @@

Available Resources

diff --git a/dist/pyrobusta/bindings/http_connection.mpy b/dist/pyrobusta/bindings/http_connection.mpy new file mode 100644 index 0000000000000000000000000000000000000000..0b1a36ab12432033bb84ed48c4372ee08a979847 GIT binary patch literal 2075 zcmZuw!BX2+6n(O>F~%`M7QzLGxHbd}91~pQrfF$GmWT}@AlrnY2@yhmfF?rnNHQ6k zWX2FC(`mcuru+VZ4ao-t+D*4zWzjI%bf&A$q(9L2Y#@-u4x!?w$kV(2cu?Etolj0WsT@b*pTccH%uaptGo(ps%Ys1bqc) zZb6f)Sldm+{w$PB(43b|3o$$CQZ^0SPz)`Bc>=#?tfS&};H}uIW`PjKJJ&VpmtYf} zk;*3AlF+C&1e9b#WlKU-QD{NE)Ck>XMF;&7I-6hfD;CM||wTcOW59$aO0%JKH;px!sWDcKn***^4sRJpy*YhL*3?q?)KTFR)o{u4RFEQ8!dGv{<2SUb*y~^%Rnj>`^g2RL z#<{dhwxHM*YGGPX>_%~G$j!J>>>=Ao?~t>%J>+3Lp*E&15 zWB(xSSfV^BP!Ez~J=po89;9B@g8@-_=J|1gq{pj~mHr4T)`Fc}u|{{L!2@w)iE`Eg zOp3r^EkFjk#W%laBBHWKzMb#~$E(A!(Xm<}K!215uc%Cw;_E4*7U)Sir5Wb1M)%hD z_tE3KgkvGyz~EvyJCp`XqVmJWUtIk1cy%-p9cCkuhqJL^c4nZ+4zZ)P02Sy%2Yn?C z{&`i;+(o_VFe*(GOEo&!q*hh3-8K4SGEyg_BH3RH45Xi9&WF>*MamJlddx3k&h+4a z>J};CnAeYTsD`95qbNa59i#}FC5O_)JEYUOCgM@dxjaoQV>-S2hydlIhpAN5LC4Y4 zJAA?KrwHXI@-4@AjaO%qY-V5v4HSvQ5^RK(uCcjcHg}z!8BMc8Beg(hL&(>eTPPIY z@ar}Da$_Jg=RHj58X|;K66bk{N_I*-*JWg4S9FSc2v+D?T-TrUVNDvOl&n7`ksJ!N_Q!*V3;lcQV`sWggIYN6u? zO_eZX-0+;z7fas@-S8PdzmLquPuJ)q(is~NStj=9L^3&kt7^uF*yz>k@&0gZFdAXm z{6KUoOnyRTk^cgz*SuCool=A}6GkpP@yk9xwS<1$ELLW$>1nQy`@4El6?Of=KdIju yJHl$F)8Ll_`qLL_;@6i*RtewTczND_=TR<+_m{c#(+Q()I(~wgKJnDWN&f{fI9ufa literal 0 HcmV?d00001 diff --git a/dist/pyrobusta/bindings/socket_http.mpy b/dist/pyrobusta/bindings/socket_http.mpy deleted file mode 100644 index 6ee7b49a327f43412615dbf66ec72436c79f4db4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2088 zcmZva-%}b_6vr<=B}i~x)(ufq0+_IfSP7!FO^XYtXf&>nIJC9vx?FW9%fjp~q&9U1 zt&?`zKK8l)L1#ddKOnJv>1&_z&}8z`nZ9+>f1vj+Voch7*g1Rmp6~gd&pFF>Fudeg z)Kqc2x~EpQYML&LZ%Il?Qg*a)ts>rsI=`#y)mU{8^tc6WPZ6aGAT$}mDqq%sTdc@3 z6m?+T5y22!+unxiTuqjmOI#k)3w%1k)EkL0J)m1^&khL@Qs#?)2$UqD`1a7&qgOYcEv!+Y3)~SY7 zLD0>^wld9ERaoaypE?92uR^iTBYP;+pi(lzA%0t~X}jnj@~0rLjw*!r0kK@T%ja{S zWP$5}D(O%KhdF0S6(j{yP_$YZ0=rsMK!`{0b_KpHh`YF4n@%me1eL zW>@*;JaD#+9Q1fmIibYs6~h7{3ROXr^gZCvq%R@xRTO-V;PTsuE;x8d8P~V=bf^KM z1jPy-85q)~GOW~e)C{sz(m;4Eo4&^va?9B}cME(zo4&J>$pdepeXY%rLgHt60LR;c zB-d03Tu?!>5I6-*lqBFR!L8a3IAE}unj+NEHDOCe!$RMpEI~!*p)q#%13^`=oxnLm zepgURGGgWy<%)*Y$0KXm{3^dNyOOz`U3){MAH&7Ed|iSMz`?#ttdz@=4#p-)p4a4x zuJJtRKJ>US0i;Nr&yYAD;o;=L-obkAaNLWBcwYSQmeXqM>a2pT`{FLxF1=X>6rW4k zU2CY0-{@?{4{V;;#YxThKYh5r0qouF)%P3IvG?SZx*$s>|E^(C1GXzD>)oZ8@ju)L zPP5HEC&@5(2iUq;JWd=9bObs(=s)9!Q@-(eDbuF^dh~WQIxRQ20W)oG5SEB(!0fZo zmSTgjqS)rM($?Z3VMlS7&raJ>>_G7)pM!Rw*hzE~u83vevd>97ecg1o&qce?xf|W- z@wsVtu@DCY(d$T9Xo3?>N3w$9TofL34c@k!ELB%KM+@{(N3>v`PrQcqgmK2ALP;#G>EQ;lFaesiqp>7%YB!BaBZ zAm>^M6G?cy2@Ah;?OD@vmFjODALEnPG4tJ|sfdpTlHhZ0x5y6SOkWZdk>K>tDS9x~ zh-`)e0cM@ynqE&Xz}{_AL+#6?1&ItNOgORWAw7QX#qa5BT$8$X_TQQS#SKpUq52ma z4Wt@VvEV2Z2;5%@k1|Um1t!8wG(D6jh+b4E3I2K7O5Z~|)Clr`ZBcYvry(wQo78pU zMvDk@1cQo3l8><6XN!e(((D<1nOVmMsOWzZ*U9;p8Raw=!oM+;ZDPrjYZQ2_S1ii9FT76J#s2&rY6wWYkV+woG^($hF`I%p;Uv5Gr<6Q!Z9Ym z49|`+xltxJ#w<-FnaFt4<1v^#PtT)}dy!dbQURkM)F#V`3-jDFwr*TOT(Lbrs*4*i zqZ##KAZeE6&+Yv$Y_Rx~X`Qsc%oL6OjRq|jo8rWEvb%#P{th1e)78nniQ!n^%|-OS zI?crqhy(&*qb5$;AUZfNzs+(FhZ~ zJ`oN1!#9EfhRKfv>wY3hE~3TtOg+z(TgY3&WNdF|Cyq07Mf9*M2AApf60(Er-;J}h zp#6``errB?iebK=1ize6Gmn#|U!NeVoA~U5Cl`0@Eg2X0*#^7Q=`q+vO`M4)&lczH GUjGFS(N~)Q diff --git a/dist/pyrobusta/con/wifi.mpy b/dist/pyrobusta/con/wifi.mpy deleted file mode 100644 index 5e823148b5e6ffee28d85005cee32f548dd81600..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 615 zcmYL@TW-@(5QfKY++3QAdwMXSM#4&^I#i*7C<;;}9-2hZNTq5M5Lh53#y+u*aP7#) zB?<`1srtqqSVNk!fI?XWD_{YvfRkJMHuKLn^Ucduc%Von=9|U-(Dy!^vcM>so?9Hy z9^LH^A(LPZA$^Di^n^g{&B5LwB-^j{I?d;hc1bYs{EvWb5_I@hkJ@nWG@uUKU36*3 zvu*0ykeJ1QsY?TDIP^0CG<9?sqZXtGhVM?Xq+tg169I)Xe!(SXKrDz+x97p=p-g+r zvx^}pQ?p@NK4A=sQfhXxZ!pIHvOv09RZl24xVGAEHyg#<$^EKoI6g6~p?V`yn@7*S zd<6+rZ?nQO+_(v;=c+w}I{dTq_c9W?>OrgEoU5TM?g*PJSy2)7P>#sbj<~s+jVO_< zq)7Ui9OctkHmXE<9p`l-8&~3b36!;xpx|Ru{FZ(r(3;N~g@AYN)r=D4eBXjXt YOittQQCHLQ^B=CpGx`2_t~8I$|MfMeAOHXW diff --git a/dist/pyrobusta/con/__init__.py b/dist/pyrobusta/connectivity/__init__.py similarity index 100% rename from dist/pyrobusta/con/__init__.py rename to dist/pyrobusta/connectivity/__init__.py diff --git a/dist/pyrobusta/connectivity/wifi.mpy b/dist/pyrobusta/connectivity/wifi.mpy new file mode 100644 index 0000000000000000000000000000000000000000..d89dfb263a3418bb63d234c69e5ae8e9084b4d28 GIT binary patch literal 645 zcmYL@?QYU=6vj^r9p$}t-G4JQv0-Lq1cxpJ4bcz01lMFT1{!Sk0ct7aAG?;codk_Z zS@e_l;59Jj1x)8fcm-a7S6~@s`*d=i^E~JIy;_3@o57lGsrk{wGT)uqj*?eR!_ZU* zf56TpKgI*RH<~~)V(XeV0@}f+8ql4?asy)R*X6EMhlHUyW7B#M+)#76UVMOuz*mnN z^=?P1OWk%`s=>p%y;*LzJ4dY=Y@In+xA*)+LN|v)Yz!fCBLjyG>|jO5A2mpf70X!M zV#SlL+=B1 zza%KSr78W1aQj%0nlC81y&4*Fg)1zK0#z#?9-Uk%lC(y>R zN`A|{eH?e=J@MsEt|E%!)5<|QEoPpiccdH}V(9{L<&AKG_&KXpFRBeT$|YE|4gZRS z+*H{hOBIM;b1vEP_BqECp(cBld!B{h*g3ae1ousmSh!p2oa1H}MNAE^$Lfr-oM3)ShW?s195`iGGzGfHN9ZnCkv9z;20~TV^ zA;yx2qXRUz$QTUCMJ>s_5t*&puj^=IN5-srXgzXNG;)3QNA!^qMw*k6fjHq=cZ1ubM) z4s}ZHK-=_BFJD`vEXS~jLs|RjMCh6bP4~+@-bE_ububWowGE9fl{5{)8xXw&qQ9YT z^ayqUADH^wasP#^E>RtNhN(FK#xzJEh;tmPYk(X2o0^NCi_JxU=cX#Wfg9O-Eknci z>B(ULE>)BLg1l*4Tk_s(z$I&PFfS7;_?BvCvvTM}e`hUd^@##_{1qyeX35qZ1RDZO$m_&;AMvoy)1v^Wk(dW z{GlEb@~-Tme(6&qmCjF1m)wFUidFDjdC^qRJNf$wGnL8D%wBa%Zgg^ee!5V6HCLGS z(y2S^!d!t7B`=+{G%scjtITngrSy}fwciE* z>!@+}vv}#K%A9;gZ}~6v>}dX)d%Go5%bBbHcZ-~J^U@>YDCIYOF?JRqynrUD|5(b3 zd3UWfxn7*lm!AB~MECtSI!iHdj=P-kf%HuRaPADeI`veT``J*xu4L%SWg46dRt~GI QpIlMCmY8R&%rgc30_@Z&NB{r; literal 0 HcmV?d00001 diff --git a/dist/pyrobusta/transport/socket.mpy b/dist/pyrobusta/transport/socket.mpy deleted file mode 100644 index 3389bfcb4debd7f29af9bceabf5b01adfe6552ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 770 zcmYk1VNcUQ7{~8Ax{W!u(v?zSj>;B5qAp=j&5Q|ImZ$_1E27y8>`HqZ4W*sEn`0p+ z-9%&jG-dDwhK7D^K}>>1@w-*fl7nCNBV=??C= z9w}qjI7H-erw_6j9rqo>asfvy;}B~{7$k{xgh0l2+ilBfgH)GTHU`2@6sqYMfn=Ao zo`Pb&jfjShDOakM-F2*pE%!5@a(~Ib4uio_i#p zd;zRjl_Mc}%&=Ui8V&MQ8F`-T$-M*1M$rTMup z&H^br3M7t?t%E?CR*i4RzpvmTUy$!F`f{^bSuU17JuEKstdQg9ick=O+>`>Z71$U@ z&g;88Bg_Q3tiYcs@LXX&ss~rK?VCn;8`WQ22;xYAR~N>2=}%3VE%=pYWpU;G^D&sY z1%63koG`0^MtDjJpoqrS(g(iyx2|2jnxT=q)Fl>0&J-q;QPs;8xVHuO-q25}#y>^} B*0TTr diff --git a/dist/pyrobusta/utils/config.mpy b/dist/pyrobusta/utils/config.mpy index 671b920e949a5418cd555dc1380938016848620d..f10be667b67e877bc0cf31868ba41be77cd3e79c 100644 GIT binary patch literal 1145 zcmZ9JT~iuo6vv-uML|TftlP&V(nwhaBNPxf#I#MvWp|ZT3=7Lkm}zDqD=ISx44{s^ z=No*Y?0Q&8}@YD%JW{pyC%N~UXeuSjVmz7Z4Us#w z)C2CWsVi7b$5MjG7%JC)AipZJj0k*JNaB+jo|8o;6_vou|G2y;#CQqx#!7K^g-^+= z%tP6b0lceC#iaM&ip7m>_zWKdj!wU~9K-P(xOrK#3>)PERsou%^V)sudbwI?0^8*U zwzOF-TNvse{%~b~v9bd!eL??h|45)*dVF<%VC^$Q+6?cS;k`~8GQ&ADoVQ|T7&OD# z=Z+t74(9W&?G0yaaxG7Nc*+9xosDg%wgdaIGdiN;*bE%+b6^O|EstdFAHU<4av^}Q zW%x+LO-8TZVM3-HK7ejf08OaKsi9AF0@;J8JZEtylO&A z=q^>`@{^C<}frI>O?WQ10}bsmq>!yz@3cT#?L z(Bqm8ObcEQ?Qy!}!gMzJGbH9(_y~TD*5T3*@O4{W`5ylAg2Zuq7?L)e2tze()T3d* zMk3S;1Ce3)EB?_-HQj+E3WJN^UJ*16j4e9hRr*aNN!%fPG}QmrF5aAUVdkaQ(~sg~ z#^6!>dKkVX22W0D?ClBRJLet}KJvy%7-oOh|5494;gsGf3h6mWuwF}4RXmb?MxQ>>!j~we! z)AiJB(=$vrt67abV?Sdb!RU0ua_XvS{Guzi>K#DhKsRmOabfr{m&s>xz_g4#LvdZB z2Jzdf>FN;Oa+*3sJktfnwDuKKKh#Z#8jU>*nDcTF^W}hWj;_{}vwnc}hGx}_#y$jM zFg7?62Z}&&g}MpU0#HftuOG4dy7$%2-Y^Z<)2zDvBP7==8|C8m=2k&@xU#XiR(=4N z#PWmNYpcq=azR>=VCFm&3tPSai(i0P5KAlIZw4#FU*_=ZsysxGoL?oQHx7Xw=`U)l zuG_Ml8qkRY&$E?!)AS5mbv&Sl&wyT6G}VUaKrVBI9_uq#cMkPh|9~#g<;h3ND`JGBHIWW9i9>)MSQ^ zPx92;V}}1A{lxI>cgF(S`8W8~elM+^F#H?;5$S;Mw($kYri@|U5&%1ZxJIwt5 zl32Nec4h5Z=_WsQxxHGw#V^g1q)Zm))19#DJ5ge0#1b=_hsws}Oex-L(h<;UFFn;u Xm$hAn@A@CN<^QDnecxBh8P+}nYHjpa diff --git a/package.json b/package.json index ad11182..e0b9b0f 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,22 @@ { - "version": "v0.4.0", + "version": "v0.5.0", "urls": [ [ - "pyrobusta/transport/socket.mpy", - "github:szeka9/PyRobusta/dist/pyrobusta/transport/socket.mpy" + "pyrobusta/connectivity/wifi.mpy", + "github:szeka9/PyRobusta/dist/pyrobusta/connectivity/wifi.mpy" + ], + [ + "pyrobusta/connectivity/__init__.py", + "github:szeka9/PyRobusta/dist/pyrobusta/connectivity/__init__.py" ], [ "pyrobusta/transport/__init__.py", "github:szeka9/PyRobusta/dist/pyrobusta/transport/__init__.py" ], + [ + "pyrobusta/transport/connection.mpy", + "github:szeka9/PyRobusta/dist/pyrobusta/transport/connection.mpy" + ], [ "pyrobusta/assets/www/index.html", "github:szeka9/PyRobusta/dist/pyrobusta/assets/www/index.html" @@ -66,21 +74,13 @@ "github:szeka9/PyRobusta/dist/pyrobusta/__init__.py" ], [ - "pyrobusta/bindings/socket_http.mpy", - "github:szeka9/PyRobusta/dist/pyrobusta/bindings/socket_http.mpy" + "pyrobusta/bindings/http_connection.mpy", + "github:szeka9/PyRobusta/dist/pyrobusta/bindings/http_connection.mpy" ], [ "pyrobusta/bindings/__init__.py", "github:szeka9/PyRobusta/dist/pyrobusta/bindings/__init__.py" ], - [ - "pyrobusta/con/wifi.mpy", - "github:szeka9/PyRobusta/dist/pyrobusta/con/wifi.mpy" - ], - [ - "pyrobusta/con/__init__.py", - "github:szeka9/PyRobusta/dist/pyrobusta/con/__init__.py" - ], [ "pyrobusta/server/__init__.py", "github:szeka9/PyRobusta/dist/pyrobusta/server/__init__.py" diff --git a/src/pyrobusta/utils/config.py b/src/pyrobusta/utils/config.py index 4632640..c7e88c3 100644 --- a/src/pyrobusta/utils/config.py +++ b/src/pyrobusta/utils/config.py @@ -14,7 +14,7 @@ def const(n): # pylint: disable=C0116 from .helpers import normalize_path -PYROBUSTA_VERSION = "v0.4.0" +PYROBUSTA_VERSION = "v0.5.0" CONFIG_LOCATION = "pyrobusta.env" # -------------------------------------------