Skip to content

Releases: Nedelis/sl3aio

Improved & Documented | v1.3.0-rc1

Choose a tag to compare

@Nedelis Nedelis released this 20 Feb 11:37

🔮 Improved the interfaces and created detailed documentation.

sl3aio has become even easier to use thanks to its flexible structure and detailed documentation.

📝 What's new

  • The execution system has been completely changed.
  • Replaced the pk_table logic with more convenient and functional EasyTable and EasySelector classes.
  • Created the complete documentation for the library and posted it on readthedocs.io.
  • Removed unnecessary _utils and _logging modules.

⚡ Optimizations

  • Modification operations (update, delete) on SolidTable class has become faster due to the optimized selection of affected records.
  • The MemoryTable class has become true async.
  • Removed the memory-demanding MemoizedTable class. It will probably be added back in later versions.

🩹 Fixes

  • Fixing imports for typing (it turns out that some types should have been imported from collections.abc to specify the type).
  • TableColumn class now can be instantiated via sql definition with TableColumnValueGenerator.

💬 Comment

Apologize for the insufficiently detailed description of the release, however, 7 months have passed since the last release and it is quite difficult to remember what exactly has changed.

👀 Full Changelog

Revised & Expanded | v1.2.0-rc1

Choose a tag to compare

@Nedelis Nedelis released this 29 Jul 16:04

🚀 Revised interaction with sqlite and expanded functionality

Now sl3aio has become more self-sufficient and performs validation before adding records to databases, which speeds up the performance.

📝 What's new

  • TableColumn now instantiates without sql. To instantiate it via sql use from_sql method.
  • Added TableColumnValueGenerator that allows to generate columns' values via python functions. Also can be saved and loaded from database (only after registering it using TableColumnValueGenerator.register method)
  • Parsable classes now can be created only by using sl3aio.dataparser.parsable decorator. Classes still have to implement fromdict and asdict methods.

⚡ Optimizations

  • MemoizedTable have become faster to insert due to ignoring existing values (if ignore_on_repeat flag is True).
  • Creating TableRecord instances and subclasses is now faster due to transition from NamedTuple to own tuple implementaion.

🩹 Fixes

  • Parsers created from Parsable dataclasses are no longer duplicates.
  • Leading and trailing quotes ("'`) are now ignored when loading default values from database.
  • Typing fixes in the dataparsers, pktable and table modules.
  • Name's shadowing fixes.

👀 Full Changelog

Bunch of stuff | Version 1.1.0-a1

Choose a tag to compare

@Nedelis Nedelis released this 10 Jul 20:00

Optimized, fixed and with new features!

Fixes:

  1. Selecting from SolidTable and MemoizedTable instances now working with None values in records
  2. Creating builtin SQLTable child-classes by method from_database now parse default column values (before default values was always read as strings)
  3. PrimaryKeyTable table field now typed better
  4. Logging now works properly

Optimizations:

  1. Now table.SQLTable has special method _execute_where(record, query, parameters, conn_kwargs) which automatically adds WHERE clause to the end of the provided query to select specified record. It allows to select records only by their primary key or unique value if they have one of them.
  2. Removed some cycles.

New features:

  1. Parser class that saves all data parsers and allows to use them later in code. Automatically registers adapters and converters via sl3 functions on instantiating.
  2. Parsable class that allows registrate parser via inheriting from it. Child classes must have @classmethod fromdict and asdict methods. Also they may declare aliases in classvar aliases

First Release | Version 1.0.0

Choose a tag to compare

@Nedelis Nedelis released this 01 Jul 19:39

This is the first release of the sl3io!

Full Changelog: https://github.com/Nedelis/sl3aio/commits/v1.0.0