2025-05-27 12:21:22 +02:00
# Changelog
2025-05-26 17:44:34 +02:00
2025-07-06 22:40:43 +02:00
## 0.4.0
2025-07-22 02:28:44 +02:00
+ `pydantic` is now a hard dependency
+ `ConfigProperty` has now been generalized: check out `classtools.ValueProperty`
+ **BREAKING** : Changed the behavior of `makelist()` : **different behavior when used with callables** .
* When applied as a decorator on callable, it converts its return type to a list.
* Pass `wrap=False` to treat callables as simple objects, restoring the 0.3 behavior.
+ New module `lex` to make tokenization more affordable — with functions `symbol_table()` and `lex()`
+ Add `dorks` module and `flask.harden()` . `dorks` contains common endpoints which may be target by hackers
2025-07-19 11:31:01 +02:00
+ Add `sqlalchemy.bool_column()` : make making flags painless
2025-07-19 23:09:16 +02:00
+ Introduce `rb64encode()` and `rb64decode()` to deal with issues about Base64 and padding
2025-07-22 02:28:44 +02:00
* `b64encode()` and `b64decode()` pad to the right
* `rb64encode()` and `rb64decode()` pad to the left, then strip leading `'A'` in output
2025-07-19 23:09:16 +02:00
+ Added `addattr()` , `PrefixIdentifier()` , `mod_floor()` , `mod_ceil()`
2025-07-22 02:28:44 +02:00
+ First version to have unit tests! (Coverage is not yet complete)
2025-07-19 23:09:16 +02:00
2025-08-23 14:54:58 +02:00
## 0.3.8
- Fixed return types for `.sqlalchemy` module.
- `sqlalchemy.parent_children()` now takes a `lazy` parameter. Backported from 0.5.0.
2025-07-19 23:09:16 +02:00
## 0.3.7
- Fixed a bug in `b64decode()` padding handling which made the function inconsistent and non injective. Now, leading `'A'` is NEVER stripped.
2025-07-06 22:40:43 +02:00
2025-07-09 17:15:42 +02:00
## 0.3.6
2025-07-11 09:58:08 +02:00
- Fixed `ConfigValue` behavior with multiple sources. It used to iterate through all the sources, possibly overwriting; now, iteration stops at first non-missing value
2025-07-09 17:15:42 +02:00
## 0.3.5
2025-07-11 09:58:08 +02:00
- Fixed cb32 handling. Now leading zeros in SIQ's are stripped, and `.from_cb32()` was implemented
2025-07-09 17:15:42 +02:00
2025-07-06 22:40:43 +02:00
## 0.3.4
- Bug fixes in `.flask_restx` regarding error handling
- Fixed a bug in `.configparse` dealing with unset values from multiple sources
2025-06-18 10:17:00 +02:00
## 0.3.3
- Fixed leftovers in `snowflake` module from unchecked code copying — i.e. `SnowflakeGen.generate_one()` used to require an unused typ= parameter
2025-06-18 16:30:02 +02:00
- Fixed a bug in `id_column()` that made it fail to provide a working generator — again, this won't be backported
2025-06-18 10:17:00 +02:00
2025-06-18 10:04:04 +02:00
## 0.3.2
2025-06-18 09:59:58 +02:00
- Fixed bugs in Snowflake generation and serialization of negative values
2025-06-01 10:51:32 +02:00
## 0.3.0
2025-06-17 20:13:40 +02:00
- Fixed `cb32encode()` and `b32lencode()` doing wrong padding — **UNSOLVED in 0.2.x** which is out of support, effective immediately
- **Changed behavior** of `kwargs_prefix()` which now removes keys from original mapping by default
2025-06-11 14:38:22 +02:00
- Add SQLAlchemy auth loaders i.e. `sqlalchemy.require_auth_base()` , `flask_sqlalchemy` .
What auth loaders do is loading user token and signature into app
2025-06-18 08:40:37 +02:00
- `sqlalchemy` : add `parent_children()` and `create_session()`
2025-06-11 14:38:22 +02:00
- Implement `UserSigner()`
2025-06-01 10:51:32 +02:00
- Improve JSON handling in `flask_restx`
2025-06-11 14:38:22 +02:00
- Add base2048 (i.e. [BIP-39 ](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki )) codec
2025-06-18 08:40:37 +02:00
- Add `split_bits()` , `join_bits()` , `ltuple()` , `rtuple()` , `ssv_list()` , `additem()`
2025-06-11 14:38:22 +02:00
- Add `markdown` extensions
2025-06-17 20:13:40 +02:00
- Add Snowflake manipulation utilities
2025-06-01 10:51:32 +02:00
2025-05-27 16:04:09 +02:00
## 0.2.3
- Bug fixes in `classtools` and `sqlalchemy`
2025-05-27 12:21:22 +02:00
## 0.2.1
2025-05-26 17:44:34 +02:00
2025-05-27 12:21:22 +02:00
- Add `codecs.jsonencode`
2025-05-26 17:44:34 +02:00
## 0.2.0
- Add `i18n` , `itertools`
- Add `toml` as a hard dependency
- Add support for Python dicts as `ConfigSource`
2025-05-27 01:29:52 +02:00
- Implement ULID -> SIQ migrator (with flaws)
2025-05-26 17:44:34 +02:00
- First release on pip under name `sakuragasaki46-suou`
- Improve sqlalchemy support