- Major changes:
- Add realtime UDP protocol including unit tests
- Add several missing rest calls in ControlInterface
- Unit test all methods in ControlInterface
- Other bugfixes and improvements:
- Provide a short guide how to install packages from PyPI
- Provide python_requires in setup.py
- Add project URLs to metadata
- Corrected import of security, and removed some old comments
- Make encrypt_wifi_password work also with python3
- More flexible parameters to set_mqtt_config
- Enable options in set_network_mode_ap and _station
- Enable relative values in set_brightness
- Make firmware_update compatible with Generation II
- Fix error in python setup.py install (fix #82)
- Use generic Exception in discover module
- On Python 2.7 ignore VCR deprecation warning
- On Python 2.7 ignore cryptography deprecation warning
- Fix dependencies for python 2.7
- Don't debug log reapped devices
- Time format as hardcoded value instead of locale specific
- Raise an exception with a error message firmware update failed
- Get MAC address from gestalt API call
- Always UTF-8 decode response from JOINED event in discovery
- Log instead of print in discovery interface and return on unknown event
- If hw_address wasn't possible to resolve don't use None as a peer
- Configure all loggers used by CLI with cli_log.basic_config()
- Make response assertions less strict
- Reformat setup py so tox tests pass
- Documentation updates:
- Update example in README to use reflect change in API
- Add Gitter badge
- Update of xled and xled-docs should be done hand in hand
- Remove Enhancement section from Contributing as there is no such thing
- Write down support for OS, devices, python and guide to CLI
- Rewrite README file
- Fix documentation for set_led_movie_config
- Changes in CI/CD:
- Run linters as GitHub action
- Use generic python3 in black pre-commit config
- Configure pytest to collect tests only from tests/
- Use GitHub action for PyPI publish
- Update URL for CI from Travis to GitHub actions
- One more place to update supported python versions
- Make Travis environment python again
- Remove non-deploy section from travis.yml
- Fix typo in travis.yml dep install
- Ignore Flake8 error on Sphinx configuration file
- Run pytest directly from Tox
- Add bug report template for GitHub issues and reference it
- Switch to token authentication for deployment to pypi through Travis
- Changes in dependencies and python versions:
- Add 3.10 to supported Python versions
- Update coverage from 4.4.2 to 5.5
- Update pip from 20.2.3 to 21.1
- Update travis.yaml: remove python 3.5 and add 3.8 and 3.9
- Add 3.9 to supported Python versions
- Drop Python 3.5 support
- Drop compatibility code for Python version 3.4
- Add Python 3.8 as a supported language
- Update pip from 19.0.3 to 20.2.3
- Update sphinx from 1.6.5 to 3.0.4
- Make tests with tox pass again so release can be automatically deployed:
- Add Black reformatter to tox linter envs
- Tox config: new linters env to run Flake8
- Tox config update: Flake8 against tests/ and setup.py as well
- Make xled.compat pass Flake8 for F821 undefined names
- Refactor beacon processing of seen/new peer into separate methods
- Reformat test_control test with black
- Make tox install test-only requires
- Use conditional deployment to pypi with travis only from master
- Drop support for python 3.4
- Explicitly specify Linux as only operating system
- Automatically refresh token if expired
- Add brightness management
- Check response is OK before trying to decode JSON from body
- Use id instead of name in discovery
- Device class representing the device
- Get network status in control interface
- Use response from alive device to check if we reached discover timeout
- Provide generator xdiscover() to return all or specific devices
- Support timeout for discovery
- When agent stops stop ping task and processing responses
- Provide close() for UDPClient and use it on DiscoveryInterface.stop()
- Do not continue receiving more data if UDP recv timeouts
- Other bugfixes and improvements:
- Fix assertions
- Expose HighControlInterface on package level
- If ApplicationError is raised, store value of response attribute
- Allow disable/enable of brightness without value change
- Update wheel from 0.30.0 to 0.33.1
- Update pip from 9.0.1 to 19.0.3
- Add python 3.6 and 3.7 to Travis config
- CLI to update firmware
- Example of library call and CLI usage
- Option to select device by hostname in CLI and ping in discovery
- New HighControlInterface() to aggregate and abstract low-level calls
- CLI and HighControlInterface way to set static single color
- Other bugfixes and improvements:
- Fix typo in CLI error message
- Print message before discovery on CLI
- Refactor: join consecutive strings on same line
- Print better message after device has been discovered over CLI
- Regenerate documentation index of a package
- Fix typo in control.set_mode() documentation
- Return named tuple in discover.discover()
- Use discovery and named tuple in example of library use
- Do not assert return value in ControlInterface.set_led_movie_full()
- Return ApplicationResponse for ControlInterface.set_led_movie_config()
- Return ApplicationResponse for control.ControlInterface.led_reset()
- Remove unneeded debug message from DiscoveryInterface.__init__()
- Support Python 3.6 and 3.7 including tests and documentation
- Python 3 support with pyzmq >= 17.0 and Tornado 5
- Remove redundant udplib
- Other Python 3 compatibility:
- In Python 3+ import Mapping from collections.abc
- Python 3 compatible encoding of discovered IP and HW address and name
- Make xled.security.xor_strings() compatible with Python 2 and 3
- Treat PING_MESSAGE as bytes to simplify handling Python 2 and 3
- Other bugfixes and improvements:
- Remove mention of PyPy from docs as it wasn't ever tested on it
- Improve robustness with sending messages from agent to interface
- Escape display of binary challenge in debug log of xled.auth
- Ignore (usually own) PING_MESSAGE on network when handling responses
- Update changelog for version 0.3.0
- Update description in setup.py to refer to CLI
- Fix JSON payload sent to server for firmware update.
- CLI interface
- Discovery interface - currently works only on Python 2
- Add support for API led/movie/full and corresponding CLI upload-movie
- New Authentication mechanism - use session
- Rename authentication module from long challenge_response_auth to auth
- Change interface of ApplicationResponse to collections.Mapping
- Python files reformatted with Black
- Other bugfixes and improvements:
- Really show ApplicationResponse status in repr() when available
- Catch JSONDecodeError in Python 3.5+ in ApplicationResponse
- New shortcut method ok() of ApplicationResponse
- Make ApplicationResponse's attribute status_code @property
- Improve error reporting during parsing of ApplicationResponse
- If repr() of ApplicationResponse is called parse response first
- Check status of underlying requests' Response if requested
- Accept requests' response as attribute to class ApplicationResponse
- Move generate_challenge to security module
- Unit tests for control interface
- Run unit tests on supported python versions with tox and Travis
- Configuration for pre-commit-hooks
- Initial pyup configuration
- Don't run Tox on Travis on Python 3.3
- Update coverage
- Add missing MANIFEST.in
- Configure Travis for automatic deployment to PyPI
- First Python control interface.
- Low level control interface.