Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

match cpython #30

Merged
merged 1 commit into from
Nov 13, 2024
Merged

match cpython #30

merged 1 commit into from
Nov 13, 2024

Conversation

FoamyGuy
Copy link
Contributor

Resolves: #28

@ladyada

Note this is a potentially breaking change, the behavior has been modified to return floats between 0.0 and 1.0 instead of ints between 0-255.

I searched in the library bundle and the learn guide repo and found no usages of this library. The closest things are examples that are meant to run on raspberry pi and thus have access to the CPython implementation.

We can bump the major release number if this gets merged.

@FoamyGuy
Copy link
Contributor Author

I tested this against the cpython version with this script:

import colorsys
import cp_colorsys

for first in range(10):
    for second in range(10):
        for third in range(10):
            #print(colorsys.hsv_to_rgb(first / 10, second / 10, third / 10))
            #print(cp_colorsys.hsv_to_rgb(first / 10, second / 10, third / 10))
            assert (colorsys.hsv_to_rgb(first / 10, second / 10, third / 10) ==
                    cp_colorsys.hsv_to_rgb(first / 10, second / 10, third / 10))

            #print(colorsys.hls_to_rgb(first / 10, second / 10, third / 10))
            #print(cp_colorsys.hls_to_rgb(first / 10, second / 10, third / 10))
            assert (colorsys.hls_to_rgb(first / 10, second / 10, third / 10) ==
                    cp_colorsys.hls_to_rgb(first / 10, second / 10, third / 10))

In order to test I had to rename this library one to cp_colorsys.py, I'm not sure if it's possible or how to work around the name collision to test under CPython without renaming it.

@FoamyGuy FoamyGuy merged commit dfbb69e into adafruit:main Nov 13, 2024
1 check passed
adafruit-adabot added a commit to adafruit/Adafruit_CircuitPython_Bundle that referenced this pull request Nov 14, 2024
Updating https://github.com/adafruit/Adafruit_CircuitPython_BNO055 to 5.4.15 from 5.4.14:
  > Merge pull request adafruit/Adafruit_CircuitPython_BNO055#127 from FoamyGuy/fix_accel_doc_unit

Updating https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground to 5.3.6 from 5.3.5:
  > Merge pull request adafruit/Adafruit_CircuitPython_CircuitPlayground#128 from FoamyGuy/fix_samples_typo

Updating https://github.com/adafruit/Adafruit_CircuitPython_CLUE to 3.2.0 from 3.1.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_CLUE#64 from FoamyGuy/iterable_touch

Updating https://github.com/adafruit/Adafruit_CircuitPython_Colorsys to 3.0.0 from 2.0.18:
  > Merge pull request adafruit/Adafruit_CircuitPython_Colorsys#30 from FoamyGuy/match_cpython

Updating https://github.com/adafruit/Adafruit_CircuitPython_CursorControl to 2.9.0 from 2.8.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_CursorControl#39 from FoamyGuy/allow_reuse_shiftregisterkeys

Updating https://github.com/adafruit/Adafruit_CircuitPython_Display_Button to 1.9.3 from 1.9.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_Display_Button#46 from FoamyGuy/fix_null_label_issue

Updating https://github.com/adafruit/Adafruit_CircuitPython_Bundle/circuitpython_library_list.md to NA from NA:
  > Added the following libraries: Adafruit_CircuitPython_Register, Adafruit_CircuitPython_BusDevice, Adafruit_CircuitPython_SimpleIO, Adafruit_CircuitPython_MCP9808, Adafruit_CircuitPython_Thermistor, Adafruit_CircuitPython_MPR121, Adafruit_CircuitPython_SI7021, Adafruit_CircuitPython_MAX31855, Adafruit_CircuitPython_BNO055, Adafruit_CircuitPython_LIS3DH, Adafruit_CircuitPython_HID, Adafruit_CircuitPython_PCA9685, Adafruit_CircuitPython_HT16K33, Adafruit_CircuitPython_RGB_Display, Adafruit_CircuitPython_NeoPixel, Adafruit_CircuitPython_SSD1306, Adafruit_CircuitPython_PCF8523, Adafruit_CircuitPython_IS31FL3731, Adafruit_CircuitPython_RTTTL, Adafruit_CircuitPython_Waveform, Adafruit_CircuitPython_DotStar, Adafruit_CircuitPython_CircuitPlayground, Adafruit_CircuitPython_SD, Adafruit_CircuitPython_DS3231, Adafruit_CircuitPython_MAX7219, Adafruit_CircuitPython_DHT, Adafruit_CircuitPython_CCS811, Adafruit_CircuitPython_BMP280, Adafruit_CircuitPython_BME280, Adafruit_CircuitPython_BME680, Adafruit_CircuitPython_TSL2561, Adafruit_CircuitPython_ADS1x15, Adafruit_CircuitPython_GPS, Adafruit_CircuitPython_VC0706, Adafruit_CircuitPython_CharLCD, Adafruit_CircuitPython_AMG88xx, Adafruit_CircuitPython_Seesaw, Adafruit_CircuitPython_Fingerprint, Adafruit_CircuitPython_MAX31865, Adafruit_CircuitPython_INA219, Adafruit_CircuitPython_DS1307, Adafruit_CircuitPython_IRRemote, Adafruit_CircuitPython_FXOS8700, Adafruit_CircuitPython_VCNL4010, Adafruit_CircuitPython_DRV2605, Adafruit_CircuitPython_TCS34725, Adafruit_CircuitPython_LSM9DS0, Adafruit_CircuitPython_LSM9DS1, Adafruit_CircuitPython_FXAS21002C, Adafruit_CircuitPython_VL53L0X, Adafruit_CircuitPython_APDS9960, Adafruit_CircuitPython_FeatherWing, Adafruit_CircuitPython_Motor, Adafruit_CircuitPython_AVRprog, Adafruit_CircuitPython_SGP30, Adafruit_CircuitPython_OneWire, Adafruit_CircuitPython_VL6180X, Adafruit_CircuitPython_DS2413, Adafruit_CircuitPython_RFM69, Adafruit_CircuitPython_VEML6070, Adafruit_CircuitPython_FancyLED, Adafruit_CircuitPython_TSL2591, Adafruit_CircuitPython_MCP4725, Adafruit_CircuitPython_MAX9744, Adafruit_CircuitPython_TLC59711, Adafruit_CircuitPython_TLC5947, Adafruit_CircuitPython_MMA8451, Adafruit_CircuitPython_SI5351, Adafruit_CircuitPython_SHT31D, Adafruit_CircuitPython_SI4713, Adafruit_CircuitPython_MPL3115A2, Adafruit_CircuitPython_DS18X20, Adafruit_CircuitPython_RFM9x, Adafruit_CircuitPython_AM2320, Adafruit_CircuitPython_MCP230xx, Adafruit_CircuitPython_Trellis, Adafruit_CircuitPython_WS2801, Adafruit_CircuitPython_FocalTouch, Adafruit_CircuitPython_AS726x, Adafruit_CircuitPython_STMPE610, Adafruit_CircuitPython_MatrixKeypad, Adafruit_CircuitPython_L3GD20, Adafruit_CircuitPython_Crickit, Adafruit_CircuitPython_Pixie, Adafruit_CircuitPython_EPD, Adafruit_CircuitPython_NeoTrellis, Adafruit_CircuitPython_TMP007, Adafruit_CircuitPython_TCA9548A, Adafruit_CircuitPython_MCP3xxx, Adafruit_CircuitPython_LED_Animation, Adafruit_CircuitPython_MLX90614, Adafruit_CircuitPython_PN532, Adafruit_CircuitPython_ImageLoad, Adafruit_CircuitPython_HCSR04, Adafruit_CircuitPython_MPRLS, Adafruit_CircuitPython_VEML6075, Adafruit_CircuitPython_miniQR, Adafruit_CircuitPython_HTU21D, Adafruit_CircuitPython_LIDARLite, Adafruit_CircuitPython_Slideshow, Adafruit_CircuitPython_CAP1188, Adafruit_CircuitPython_MAX31856, Adafruit_CircuitPython_ADXL34x, Adafruit_CircuitPython_TrellisM4, Adafruit_CircuitPython_TFmini, Adafruit_CircuitPython_VS1053, Adafruit_CircuitPython_FRAM, Adafruit_CircuitPython_MLX90393, Adafruit_CircuitPython_BluefruitSPI, Adafruit_CircuitPython_BMP3XX, Adafruit_CircuitPython_MPL115A2, Adafruit_CircuitPython_74HC595, Adafruit_CircuitPython_TMP006, Adafruit_CircuitPython_TinyLoRa, Adafruit_CircuitPython_MotorKit, Adafruit_CircuitPython_ESP_ATcontrol, Adafruit_CircuitPython_miniesptool, Adafruit_CircuitPython_framebuf, Adafruit_CircuitPython_SharpMemoryDisplay, Adafruit_CircuitPython_PCD8544, Adafruit_CircuitPython_US100, Adafruit_CircuitPython_ServoKit, Adafruit_CircuitPython_Debouncer, Adafruit_CircuitPython_ADT7410, Adafruit_CircuitPython_BoardTest, Adafruit_CircuitPython_BLE, Adafruit_CircuitPython_BluefruitConnect, Adafruit_CircuitPython_MIDI, Adafruit_CircuitPython_RA8875, Adafruit_CircuitPython_ESP32SPI, Adafruit_CircuitPython_Touchscreen, Adafruit_CircuitPython_Display_Text, Adafruit_CircuitPython_binascii, Adafruit_CircuitPython_Bitmap_Font, Adafruit_CircuitPython_PyPortal, Adafruit_CircuitPython_INA260, Adafruit_CircuitPython_Logging, Adafruit_CircuitPython_AdafruitIO, Adafruit_CircuitPython_TPA2016, Adafruit_CircuitPython_Display_Button, Adafruit_CircuitPython_Display_Shapes, Adafruit_CircuitPython_VEML7700, Adafruit_CircuitPython_DymoScale, Adafruit_CircuitPython_IterTools, Adafruit_CircuitPython_LIFX, Adafruit_CircuitPython_Hue, Adafruit_CircuitPython_LPS35HW, Adafruit_CircuitPython_ILI9341, Adafruit_CircuitPython_ST7735R, Adafruit_CircuitPython_ST7735, Adafruit_CircuitPython_HX8357, Adafruit_CircuitPython_SSD1351, Adafruit_CircuitPython_SSD1331, Adafruit_CircuitPython_ST7789, Adafruit_CircuitPython_AzureIoT, Adafruit_CircuitPython_BD3491FS, Adafruit_CircuitPython_DS3502, Adafruit_CircuitPython_RGBLED, Adafruit_CircuitPython_PYOA, Adafruit_CircuitPython_turtle, Adafruit_CircuitPython_VCNL4040, Adafruit_CircuitPython_CursorControl, Adafruit_CircuitPython_PyBadger, Adafruit_CircuitPython_MiniMQTT, Adafruit_CircuitPython_Nunchuk, Adafruit_CircuitPython_Requests, Adafruit_CircuitPython_DisplayIO_SSD1306, Adafruit_CircuitPython_SSD1322, Adafruit_CircuitPython_SSD1325, Adafruit_CircuitPython_SSD1327, Adafruit_CircuitPython_hashlib, Adafruit_CircuitPython_RSA, Adafruit_CircuitPython_NTP, Adafruit_CircuitPython_JWT, Adafruit_CircuitPython_GC_IOT_Core, Adafruit_CircuitPython_PCT2075, Adafruit_CircuitPython_TLV493D, Adafruit_CircuitPython_BitmapSaver, Adafruit_CircuitPython_IL91874, Adafruit_CircuitPython_IL0373, Adafruit_CircuitPython_IL0398, Adafruit_CircuitPython_SSD1608, Adafruit_CircuitPython_SSD1675, Adafruit_CircuitPython_MSA301, Adafruit_CircuitPython_ATECC, Adafruit_CircuitPython_AWS_IOT, Adafruit_CircuitPython_LSM303_Accel, Adafruit_CircuitPython_LSM303DLH_Mag, Adafruit_CircuitPython_MPU6050, Adafruit_CircuitPython_MCP9600, Adafruit_CircuitPython_Gizmo, Adafruit_CircuitPython_DisplayIO_SSD1305, Adafruit_CircuitPython_SSD1305, Adafruit_CircuitPython_RPLIDAR, Adafruit_CircuitPython_NeoPixel_SPI, Adafruit_CircuitPython_MLX90640, Adafruit_CircuitPython_LSM6DS, Adafruit_CircuitPython_MCP4728, Adafruit_CircuitPython_BLE_Apple_Notification_Center, Adafruit_CircuitPython_BLE_Magic_Light, Adafruit_CircuitPython_Display_Notification, Adafruit_CircuitPython_LIS2MDL, Adafruit_CircuitPython_LIS3MDL, Adafruit_CircuitPython_BLE_Apple_Media, Adafruit_CircuitPython_DPS310, Adafruit_CircuitPython_CLUE, Adafruit_CircuitPython_BLE_Heart_Rate, Adafruit_CircuitPython_BLE_Cycling_Speed_and_Cadence, Adafruit_CircuitPython_LPS2X, Adafruit_CircuitPython_BLE_Eddystone, Adafruit_CircuitPython_HTS221, Adafruit_CircuitPython_BLE_BroadcastNet, Adafruit_CircuitPython_Debug_I2C, Adafruit_CircuitPython_WSGI, Adafruit_CircuitPython_ProgressBar, Adafruit_CircuitPython_Wiznet5k, Adafruit_CircuitPython_RockBlock, Adafruit_CircuitPython_DS1841, Adafruit_CircuitPython_BLE_Radio, Adafruit_CircuitPython_BLE_iBBQ, Adafruit_CircuitPython_BLE_MIDI, Adafruit_CircuitPython_BitbangIO, Adafruit_CircuitPython_BLE_BerryMed_Pulse_Oximeter, Adafruit_CircuitPython_FONA, Adafruit_CircuitPython_LIS331, Adafruit_CircuitPython_BLE_Adafruit, Adafruit_CircuitPython_ICM20X, Adafruit_CircuitPython_PM25, Adafruit_CircuitPython_AHTx0, Adafruit_CircuitPython_SHTC3, Adafruit_CircuitPython_PCF8591, Adafruit_CircuitPython_BH1750, Adafruit_CircuitPython_AS7341, Adafruit_CircuitPython_MS8607, Adafruit_CircuitPython_MatrixPortal, Adafruit_CircuitPython_TC74, Adafruit_CircuitPython_Pixel_Framebuf, Adafruit_CircuitPython_BNO08X_RVC, Adafruit_CircuitPython_AirLift, Adafruit_CircuitPython_BNO08X, Adafruit_CircuitPython_DisplayIO_SH1107, Adafruit_CircuitPython_TLA202X, Adafruit_CircuitPython_LC709203F, Adafruit_CircuitPython_EMC2101, Adafruit_CircuitPython_MONSTERM4SK, Adafruit_CircuitPython_TMP117, Adafruit_CircuitPython_MagTag, Adafruit_CircuitPython_MLX90395, Adafruit_CircuitPython_FakeRequests, Adafruit_CircuitPython_PortalBase, Adafruit_CircuitPython_SCD30, Adafruit_CircuitPython_LTR390, Adafruit_CircuitPython_SGP40, Adafruit_CircuitPython_OAuth2, Adafruit_CircuitPython_SHT4x, Adafruit_CircuitPython_PIOASM, Adafruit_CircuitPython_AW9523, Adafruit_CircuitPython_datetime, Adafruit_CircuitPython_HTU31D, Adafruit_CircuitPython_SimpleMath, Adafruit_CircuitPython_MCP2515, Adafruit_CircuitPython_BLE_LYWSD03MMC, Adafruit_CircuitPython_SSD1681, Adafruit_CircuitPython_DisplayIO_Layout, Adafruit_CircuitPython_SSD1680, Adafruit_CircuitPython_FunHouse, Adafruit_CircuitPython_Colorsys, Adafruit_CircuitPython_OV7670, Adafruit_CircuitPython_Dash_Display, Adafruit_CircuitPython_Simple_Text_Display, Adafruit_CircuitPython_OV2640, Adafruit_CircuitPython_NeoKey, Adafruit_CircuitPython_DisplayIO_SH1106, Adafruit_CircuitPython_MacroPad, Adafruit_CircuitPython_Pixelbuf, Adafruit_CircuitPython_Ticks, Adafruit_CircuitPython_SCD4X, Adafruit_CircuitPython_IS31FL3741, Adafruit_CircuitPython_Ducky, Adafruit_CircuitPython_PCF8563, Adafruit_CircuitPython_ST7565, Adafruit_CircuitPython_UC8151D, Adafruit_CircuitPython_Radial_Controller, Adafruit_CircuitPython_OV5640, Adafruit_CircuitPython_VL53L1X, Adafruit_CircuitPython_asyncio, Adafruit_CircuitPython_24LC32, Adafruit_CircuitPython_ADXL37x, Adafruit_CircuitPython_ESP32S2TFT, Adafruit_CircuitPython_VL53L4CD, Adafruit_CircuitPython_TT21100, Adafruit_CircuitPython_HTTPServer, Adafruit_CircuitPython_TSC2007, Adafruit_CircuitPython_floppy, Adafruit_CircuitPython_PCF8574, Adafruit_CircuitPython_MMC56x3, Adafruit_CircuitPython_SI1145, Adafruit_CircuitPython_AGS02MA, Adafruit_CircuitPython_MAX1704x, Adafruit_CircuitPython_GUVX_I2C, Adafruit_CircuitPython_TCA8418, Adafruit_CircuitPython_LTR329_LTR303, Adafruit_CircuitPython_ENS160, Adafruit_CircuitPython_PCF8575, Adafruit_CircuitPython_BLE_Beacon, Adafruit_CircuitPython_BLE_File_Transfer, Adafruit_CircuitPython_Pastebin, Adafruit_CircuitPython_NeoPxl8, Adafruit_CircuitPython_DisplayIO_FlipClock, Adafruit_CircuitPython_PixelMap, Adafruit_CircuitPython_GFX, Adafruit_CircuitPython_SPD1656, Adafruit_CircuitPython_ACeP7In, Adafruit_CircuitPython_Wii_Classic, Adafruit_CircuitPython_wave, Adafruit_CircuitPython_EK79686, Adafruit_CircuitPython_USB_Host_Descriptors, Adafruit_CircuitPython_JSON_Stream, Adafruit_CircuitPython_AD569x, Adafruit_CircuitPython_TemplateEngine, Adafruit_CircuitPython_HUSB238, Adafruit_CircuitPython_PCA9554, Adafruit_CircuitPython_CST8XX, Adafruit_CircuitPython_VCNL4020, Adafruit_CircuitPython_Qualia, Adafruit_CircuitPython_ADS7830, Adafruit_CircuitPython_PyCamera, Adafruit_CircuitPython_FT5336, Adafruit_CircuitPython_MCP3421, Adafruit_CircuitPython_ConnectionManager, Adafruit_CircuitPython_ADG72x, Adafruit_CircuitPython_S35710, Adafruit_CircuitPython_CH9328, Adafruit_CircuitPython_HDC302x, Adafruit_CircuitPython_RFM, Adafruit_CircuitPython_Prompt_Toolkit, Adafruit_CircuitPython_HX711, Adafruit_CircuitPython_PIO_UART, Adafruit_CircuitPython_Anchored_TileGrid, Adafruit_CircuitPython_TM1814, Adafruit_CircuitPython_USB_Host_Mass_Storage, Adafruit_CircuitPython_USB_Host_MIDI, Adafruit_CircuitPython_INA3221, Adafruit_CircuitPython_VCNL4200, Adafruit_CircuitPython_WM8960

Updating https://github.com/adafruit/Adafruit_CircuitPython_Bundle/circuitpython_library_list.md to NA from NA:
  > Updated download stats for the libraries
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

The colorsys library does not follow cpython implementation
2 participants