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 Semantic Versioning.
- Effortless now has a new home at https://bboonstra.dev/effortless!
- Database versioning is now synced with the project version
- Databases on old versions will now automatically migrate to the version of Effortless
- New configuration applications will now fail to apply if their required fields or max_size do not match the current database
- You can now use search() to filter for a single value
- Keyed encryption has been implemented and is now required for encrypted databases
- Pass in a key (password) into EffortlessDB() or use encrypt() to set the key
- This will automatically configure the DB to be encrypted
- To access the DB in the future, all EffortlessDB object must use that encryption key
- You can automatically change the key for the database file with set_encryption_key
- Use decrypt() to remove encryption
- Implemented automatic migration for databases on versions less than current
- EffortlessConfig now takes keyword parameters instead of a dictionary
- Use from_dict if you need the old functionality
- Added Unix timestamp support to between_dates() conditions
- Date conditions are now timezone-aware (UTC)
- Fixed some typing issues
- Added technical per-object documentation pages
- Updated themes and visuals
- Added a changelog page that reflects CHANGELOG.md
- Added the remove and erase methods to delete entries that pass conditions
- Added the update and batch methods to update entries that pass conditions
- Fixed an issue where a Field would not exist if the field's value was None
- Migrated to use 'Entry' rather than 'Item' for clarity
- Multiple entries are now returned in a list format rather than a dict format
- Added a favicon to the documentation
- Migrated to use 'Entry' rather than 'Item' for clarity
- Fleshed out the Home, Quickstart, and Usages
- Detailed per-method documentation & search coming soon!
- 1.2.0 is not compatible with databases from 1.1.1 or below. We hope that this is the last minor update that is not backwards-compatible; expect an auto-migrate feature to come soon.
- Introduced new
passes
method for custom filtering functions - Added
is_type
method for type checking in queries - Implements a blocking
finish_backup
method to databases to complete a backup before proceeding
- Introduced new
filter
method to replace the previoussearch
functionality - Added
Query
andField
classes for more powerful and flexible querying - Implemented a comprehensive set of query methods:
equals
,contains
,startswith
,endswith
greater_than
,less_than
matches_regex
,between_dates
,fuzzy_match
- Introduced support for lambdas in Queries to give granular filtering power
- Expanded test suite with extensive coverage for new features
- Replaced
search
method withfilter
for more intuitive querying - Updated documentation to reflect new querying capabilities
- Removed
search
method in favor offilter
- Fully-fledged configuration support has been implemented
- Make an
EffortlessConfig
andconfigure
your DB with it - Configurations like readonly, max_size, and required can be set to restrict your database
- Encryption, compression, and backups can be set to secure your database (partially implemented)
- Make an
- More configuration has been automated (less effort for you!)
.effortless
format has moved to header/content instead of numerical
- Effortless database objects have been renamed to EffortlessDBs
- 1.0.0 is not compatible with any previous versions of Effortless.
- Futureproofing for database configuration implementation
- Support for filename and directory modification for Effortless files
- Basic database manipulation functions:
get_all()
,search()
, andadd()
wipe()
function to clear the database while keeping the file- Automatic database file creation if the specified db doesn't exist
- Support for searching through list values in the
search()
method - Comprehensive testing suite for all functions and documentation
- Simplified usage via
from effortless import db
- Updated README.md to reflect new features and capabilities