All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Python Versioning.
- 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 forEventLog.only
method - Add
QuerySet.select
method as alias forQuerySet.only_fields
method - Get rid of printing the connection string in exception messages due to security reasons
- Make
1
and0
as valid input for boolean values - Add
events where_or
criteria as an alias forevents 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
- 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)
- 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
- Drop the python
3.5
,3.6
,3.7
support
- Make a device data tables interface. Including making queries, changing and deleting records
- Add command-line interface
- Add alarm cancel function
- Add a device IP change function using a network broadcast method
- Add event type
206: Device start
- Add python 3.9 support
- Use Jekyll and pdoc3 instead of portray for documentation
- Upload github-pages to a separate branch
- Change docstrings format to Google style
- Fix empty relays list in
Door
objects with index inDoorsList
> 0 - Fix
spring_daylight_time_mode1
andfall_daylight_time_mode1
parameters value format - Print one event by line and remove items collapsing in
EventLog
string representation - Fix "no value" values handling in some paremeters
- Fix
search_devices
raises error when no devices found - Rename
pyzkaccess.py
tomain.py
andctypes.py
toctypes_.py
in order to avoid possible import issues - Change type of warning to
ImportWarning
when non-Windows platform is used
- Remove documentation html contents from repo
- Add codecov
- Add CI/CD
- Improve documentation and serve it on GitHub pages
- Add many tests
- Add
ZKSDKError
exception with PULL SDK and WINSOCK text error description - Implement device and door parameters read/write with datatype control
- Add some enums
- Make event
poll()
method - Implement connecting by
ZKDevice
object - Add device search method
- Implement
DocDict
andDocValue
classes in order to annotate SDK integer values - Add restart device method
- Add fluent interface for events, readers, relays, aux inputs, doors with indexing support
- Improve project description in
setup.py
- Add
ctypes
wrapper module to be able to import the project modules on Linux - Raise
ZKSDKError
instead ofRuntimeError
on SDK function failure - BREAKING CHANGE. Keep number fields in
Event
as integers - Make
EVENT_TYPES
as dict with annotateble values - BREAKING CHANGE. ZKAccess connstr constructor parameter now must be keyword parameter and be
str
type instead ofbytes
- Split project to several files
- BREAKING CHANGE. Split up
ZKAccess
class ontoZKSDK
(implementation) andZKAccess
(interface). Movezk*
methods toZKSDK
- BREAKING CHANGE. Convert
ControlOperation
,RelayGroup
,VERIFY_MODES
to pythonEnum
- BREAKING CHANGE. Remove
enable_relay*
andread_events
methods
- Implement reading events
- Implement switching relays
- Make enums related to SDK functions
- Write SDK installation info