Added
- Add pre-commit, code linters and apply them to codebase
- Use taskfile.dev for automation
- Build the portable Windows executable with PyInstaller
- Add missing type annotations
- Add `EventLog.where_or` method as alias for `EventLog.only` method
- Add `QuerySet.select` method as alias for `QuerySet.only_fields` method
- Get rid of printing the connection string in exception messages due to security reasons
CLI
- Make `1` and `0` as valid input for boolean values
- Add `events where_or` criteria as an alias for `events only`
- New subcommand `setup` that:
- Checks the Windows (or wine) and Python versions
- Asks where to install the PULL SDK from (if it has not installed): download from ZKTeco website, from local zip
file or local directory
- `connect` subcommand now able to accept the connection options (including full connection string) from environment
variables. Useful for passing the connection password securely.
- Fix mocking the SDK on non-windows platforms, showing incompatibility error (11)
- Add IP and MAC addresses validation
Changed
- Update dependencies
- Move from Travis CI to GitHub Actions
- Move to Poetry for dependency management
- Get rid of tox in favor of Poetry
- Update documentation: fix grammar, typos and formatting; add more examples
- Update docstrings: fix grammar, typos; add more examples
- Skip extra keys in device string instead of raising ValueError, which SearchDevices SDK function may return (8)
CLI
- Fix parsing the boolean values in command line arguments
- Fix exception on applying the `select` subcommand if a single object (relay, aux input, etc.) is already selected
- Fix empty output on `events` subcommand
- Update help messages: fix grammar, typos; add more examples
- Show `--help` contents of subcommands without connecting to the device
Removed
- Drop the python `3.5`, `3.6`, `3.7` support