Commit Graph

29302 Commits

Author SHA1 Message Date
Georg Bøe e768b9ebb3 Return correct errno 2022-10-13 21:00:51 +02:00
Dan Halbert de7a9c38fc Merge remote-tracking branch 'adafruit/main' into add-os-utime-function 2022-10-13 14:15:13 -04:00
Dan Halbert 1569c7ed33
Merge pull request #7045 from jepler/smaller-microcontroller-temperature-samd
samd: Size-optimize the temperature code with an 0.5 to 2.0 degree relative additional error
2022-10-13 14:02:51 -04:00
Dan Halbert dce4c9d713
Merge pull request #7046 from jepler/traceback-mod-improvements
Traceback module improvements
2022-10-13 12:38:56 -04:00
Dan Halbert 8825e7f241
Merge pull request #6397 from jepler/extra-memset
Some flash size optimizations related to string0.c (implementation of str/mem functions)
2022-10-13 12:34:59 -04:00
Dan Halbert ead03cd96f add caveat in documentation 2022-10-13 11:47:10 -04:00
Jeff Epler febc7a8514
format_traceback: Return list, as documented, and compatible with CPython 2022-10-13 09:38:43 -05:00
Jeff Epler 9ecb905061
Test new-style exception printing 2022-10-13 09:38:43 -05:00
Jeff Epler 448eb1b70b
Document the 3.10-style calling pattern 2022-10-13 09:38:42 -05:00
Jeff Epler 47759294e0
code changes for supporting 1-arg print_exception 2022-10-13 09:38:42 -05:00
Jeff Epler fc991c262c
traceback: share more code between format & print exception 2022-10-13 09:38:42 -05:00
Jeff Epler c6bbb0e4f6
test format_exception too 2022-10-13 09:38:41 -05:00
Dan Halbert 7e4b2a09eb
Merge pull request #7000 from MicroDev1/storage-extend
Add Storage Extension Support
2022-10-13 10:05:55 -04:00
Jonny Bergdahl 92864467c0
Translated using Weblate (Swedish)
Currently translated at 100.0% (999 of 999 strings)

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/sv/
2022-10-13 08:43:22 +02:00
Wellington Terumi Uemura 40d77b6738
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (999 of 999 strings)

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/pt_BR/
2022-10-13 08:43:22 +02:00
Ettore Atalan cf875c04b7
Translated using Weblate (German)
Currently translated at 99.2% (992 of 999 strings)

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/de/
2022-10-13 08:43:21 +02:00
microDev 728fea4ca4
add storage extension python api 2022-10-13 09:53:33 +05:30
Dan Halbert 2ebb45d53f
Merge pull request #7043 from jepler/picow-socket-bugfixes
Pico W: a number of socketpool and ssl bugfixes
2022-10-12 19:13:00 -04:00
Dan Halbert 8acef79f00
Merge pull request #7044 from jepler/fix-deprecated-set-actions
Use non-deprecated way to set build outputs
2022-10-12 19:10:07 -04:00
Dan Halbert 9540aed6a7
Merge pull request #6883 from makermelissa/main
Prevent folder from trying to move inside itself
2022-10-12 19:09:29 -04:00
Jeff Epler f7d39ceae4
comment on the revised algorithm 2022-10-12 16:25:09 -05:00
Jeff Epler a943167d69
samd: Reduce a further 48 bytes for non-full builds
Another reduction of -48 bytes can be had if the fine calculation
step is skipped. The worst difference compared to the old reference
code with my calibration values in the 0° to 60° was 2°C,
and the difference at 25°C is 1°C.

The final size decrease for non-full builds like Trinket M0 is 268
bytes.
2022-10-12 15:53:44 -05:00
Dan Halbert 6ee45dde57 f_rename return value; add a test for rename dir inside itself 2022-10-12 16:52:22 -04:00
Jeff Epler b251e78ac5
samd: size-optimize microcontroller temp calc
Perform most arithmetic with scaled integer values.
For my calibration values
```
const uint32_t NVMCTRL_TEMP_LOG[]={0xfc05511e, 0xcc7ac0f7};
```
the maximum difference between the old and new calculation is 0.50°C.
The difference is smallest (0.13°) at 25.87°C in the old scale.

This reduces mcu_processor_get_temperature from 568 bytes to 348 bytes
(-220 bytes)
2022-10-12 15:44:14 -05:00
Jeff Epler a31ad57225
Use non-deprecated way to set build outputs
see https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
2022-10-12 13:45:30 -05:00
Jeff Epler e3688b4342
Merge pull request #7041 from dhalbert/serial-first-write-delay
delay first serial write to allow host setup time
2022-10-12 11:42:57 -05:00
Jeff Epler 874ddd67bf
Pico W: ssl: factor out do_handshake 2022-10-12 11:38:30 -05:00
Jeff Epler 1641a7c002
Pico W: ssl: Correctly handle errors in send/recv
The prefixed versions raise Python exceptions, the un-prefixed return
negative error values. We don't want to raise an exception from here,
it leaves the SSL stack in an undefined state.
2022-10-12 11:38:30 -05:00
Jeff Epler 7c849fdadb
Pico W: ssl: Raise MemoryError for allocation errors 2022-10-12 11:38:29 -05:00
Jeff Epler b1f7940297
Pico W: Correctly treat empty cadata= as disabling host checking 2022-10-12 11:38:29 -05:00
Jeff Epler ca9523b814
Pico w: socket: Correctly return negative error code from recv_into 2022-10-12 11:38:29 -05:00
Jeff Epler 62cbd3bcd8
Pico w: socket: correctly track sockets generated by accept() 2022-10-12 11:38:26 -05:00
Dan Halbert 12085496f0 Merge remote-tracking branch 'adafruit/main' into HEAD 2022-10-12 12:05:46 -04:00
MicroDev ab22d5a8cd
Merge pull request #7024 from flom84/stm-include-headers-fixes
Remove redundant header files in STM port
2022-10-12 10:22:29 +05:30
Dan Halbert 844cd17f03 delay first serial write by 50ms 2022-10-11 23:02:14 -04:00
Dan Halbert 822e806f03
Merge pull request #7031 from BPI-STEAM/CircuitPython-main-bpi-picow-dev
Add BananaPi BPI-PicoW-S3 .
2022-10-11 22:53:37 -04:00
Wind-stormger 376df8ec7e Add BananaPi BPI-PicoW-S3 .
Adds support for the BananaPi BPI-PicoW-S3 Boards.
Based on esp32s3 chip.
With one WS2812 LED, one monochrome LED, one ceramic antenna.
Support double-reset to tinyUF2.
2022-10-12 09:11:25 +08:00
MicroDev fed884738c
Merge pull request #7039 from dhalbert/fix-yd-rp2040-pr
Fix YD-RP2040 files
2022-10-12 00:24:37 +05:30
Dan Halbert e19abef57e forgot to add these! 2022-10-11 13:12:43 -04:00
Dan Halbert 2793d4b41a
Merge pull request #6410 from fabaff/yd-rp2040
Add support for VCC-GND Studio YD-RP2040
2022-10-11 13:01:50 -04:00
Dan Halbert 851f8a188d Merge remote-tracking branch 'adafruit/main' into HEAD 2022-10-11 12:21:59 -04:00
Dan Halbert ab4e04879d
Merge pull request #7036 from MicroDev1/ci
CI: Update to newer actions
2022-10-11 07:49:09 -04:00
Dan Halbert 71fc8b039c
Merge pull request #7035 from weblate/weblate-circuitpython-main
Translations update from Hosted Weblate
2022-10-11 07:46:30 -04:00
microDev e5139e2040
update to newer actions 2022-10-11 10:45:22 +05:30
Hosted Weblate 8bffdb430e
Merge remote-tracking branch 'origin/main' 2022-10-11 06:56:13 +02:00
MicroDev ebe49db909
Merge pull request #7029 from jepler/client-certificate
Add support for SSL client certificate (load_cert_chain) and self-signed certificate (load_verify_locations)
2022-10-11 10:26:06 +05:30
Dan Halbert 4cd370ecf8 Merge remote-tracking branch 'adafruit/main' into add-os-utime-function 2022-10-10 17:51:59 -04:00
Jeff Epler 0c8b261ec9
picow: Add support of self-signed certificates.
## Testing self-signed certificates and `load_verify_locations`

Obtain the badssl "self-signed" certificate in the correct form:

```sh
openssl s_client -servername self-signed.badssl.com -connect untrusted-root.badssl.com:443 < /dev/null | openssl x509 > self-signed.pem
```

Copy it and the script to CIRCUITPY:
```python
import os
import wifi
import socketpool
import ssl
import adafruit_requests

TEXT_URL = "https://self-signed.badssl.com/"
if not wifi.radio.ipv4_address:
    wifi.radio.connect(os.getenv('WIFI_SSID'), os.getenv('WIFI_PASSWORD'))

pool = socketpool.SocketPool(wifi.radio)
context = ssl.create_default_context()
requests = adafruit_requests.Session(pool, context)

print(f"Fetching from {TEXT_URL} without certificate (should fail)")
try:
    response = requests.get(TEXT_URL)
except Exception as e:
    print(f"Failed: {e}")
else:
    print(f"{response.status_code=}, should have failed with exception")

print("Loading server certificate")
with open("/self-signed.pem", "rb") as certfile:
    context.load_verify_locations(cadata=certfile.read())
requests = adafruit_requests.Session(pool, context)

print(f"Fetching from {TEXT_URL} with certificate (should succeed)")
try:
    response = requests.get(TEXT_URL)
except Exception as e:
    print(f"Unexpected exception: {e}")
else:
    print(f"{response.status_code=}, should be 200 OK")
```
2022-10-10 15:53:56 -05:00
Jeff Epler c98174eea5
Add support for SSL client certificate (load_cert_chain)
Tested with badssl.com:

 1. Get client certificates from https://badssl.com/download/
 2. Convert public portion with `openssl x509 -in badssl.com-client.pem -out CIRCUITPY/cert.pem`
 3. Convert private portion with `openssl rsa -in badssl.com-client.pem -out CIRCUITPY/privkey.pem` and the password `badssl.com`
 4. Put wifi settings in CIRCUITPY/.env
 5. Run the below Python script:

```py
import os
import wifi
import socketpool
import ssl
import adafruit_requests

TEXT_URL = "https://client.badssl.com/"
wifi.radio.connect(os.getenv('WIFI_SSID'), os.getenv('WIFI_PASSWORD'))

pool = socketpool.SocketPool(wifi.radio)
context = ssl.create_default_context()
requests = adafruit_requests.Session(pool, context)

print(f"Fetching from {TEXT_URL} without certificate (should fail)")
response = requests.get(TEXT_URL)
print(f"{response.status_code=}, should be 400 Bad Request")
input("hit enter to continue\r")

print("Loading client certificate")
context.load_cert_chain("/cert.pem", "privkey.pem")
requests = adafruit_requests.Session(pool, context)

print(f"Fetching from {TEXT_URL} with certificate (should succeed)")
response = requests.get(TEXT_URL)
print(f"{response.status_code=}, should be 200 OK")
```
2022-10-10 15:10:53 -05:00
Hosted Weblate 2ad5c11ca9
Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: CircuitPython/main
Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/
2022-10-10 21:13:35 +02:00