voussoir
8584dc5e7f
Improve handling of compressed streams.
2024-03-31 19:03:37 -07:00
voussoir
ed3e91b5fa
Add method read_generator.
2024-03-07 19:11:45 -08:00
voussoir
25fd738a35
Add methods keys, items, values.
2024-03-07 19:10:40 -08:00
voussoir
24f74e9ee4
Add "raise from" on keyerror.
2024-03-07 19:10:18 -08:00
voussoir
e24e89a04b
Add Extension.__len__.
2024-01-21 09:35:34 -08:00
voussoir
5a3e521e9a
Remove default_msec_format which wasn't doing anything.
2024-01-21 09:35:16 -08:00
voussoir
acaabb7d61
Add readlines_generator.
2023-12-31 14:16:06 -08:00
voussoir
5a76734072
Warn if file in directory disappears during copy, but don't crash.
2023-12-03 21:07:12 -08:00
voussoir
21a9e39e52
Use hms_letters format for commandline output.
2023-12-03 21:06:44 -08:00
voussoir
16d0c0dee3
Replace CRLF with LF in stdout, stderr, because stdin reads double LF.
2023-09-13 19:32:34 -07:00
voussoir
75b75a1d55
Show command name in header of help text.
2023-09-04 13:26:07 -07:00
voussoir
013e79cd6b
Add timestamps to log lines.
2023-08-20 16:07:31 -07:00
voussoir
81d5621785
Add missing parameter verify_ssl to the head request.
2023-08-12 15:43:28 -07:00
voussoir
5a06d78a65
Add call to super init.
2023-07-22 17:17:06 -07:00
voussoir
eb4e381022
Check object_cache is None before pulling row id.
2023-07-22 17:16:56 -07:00
voussoir
6fe7e5e5a6
Add function convert_to_srgb.
2023-06-24 23:59:12 -07:00
voussoir
e0e12c0184
Flip guard clause.
2023-06-24 23:58:56 -07:00
voussoir
bb846a3c97
Use randomized uris for memory databases.
2023-02-25 14:14:21 -08:00
voussoir
04817df227
Log when cached_endpoint decorator is used.
2023-02-25 14:11:07 -08:00
voussoir
78636207ab
Treat blank config files as empty dict.
2023-02-25 14:10:49 -08:00
voussoir
65d0f6f4d1
Attempt to lock source file before attempting to open dest.
2022-12-23 19:53:10 -08:00
voussoir
1a19d608c6
Use portalocker to lock files that are being copied by spinal.
2022-11-20 13:31:02 -08:00
voussoir
1b2117089d
Add timetools.fromtimestamp, fromtimestamp_local.
2022-11-20 13:31:02 -08:00
voussoir
8185da9add
Fix typo mibibyte -> mebibyte.
...
You guys were supposed to let me know!! How did I not notice this?
2022-11-20 13:30:57 -08:00
voussoir
3ddaa83edd
Add --count option.
2022-11-12 12:42:01 -08:00
voussoir
355c02cf7e
Add argument transaction_mode to begin.
2022-11-12 12:38:50 -08:00
voussoir
953ebe4951
Add imagetools.save_to_bytes.
2022-11-12 12:38:08 -08:00
voussoir
5695450289
Add a little obvious defense against filepaths in theme request.
2022-11-11 16:20:34 -08:00
voussoir
c6873fdcab
Reduce long line.
2022-11-11 15:56:49 -08:00
voussoir
ea7f7d5843
Use voussoirkit.progressbars in spinal.
2022-11-11 15:56:49 -08:00
voussoir
b10c5d698d
Make the helper tostring functions private. Alias Bar1_comma.
2022-11-11 11:44:21 -08:00
voussoir
1b7b506e20
Add flasktools.atom_response.
2022-11-11 11:38:29 -08:00
voussoir
a06f51c49c
Add timetools.py.
...
I realize this is kind of stupid, but it means I never have to think
about the correct incantation again, and all my projects will
be on the same page with regards to correct utc timestamp.
2022-11-07 18:00:41 -08:00
voussoir
73e8b48003
Add dotdict._to_dict.
2022-11-07 17:57:40 -08:00
voussoir
7618c46226
Add dotdict delattr.
2022-11-07 17:57:19 -08:00
voussoir
c838a9758a
Improve hms code reuse.
2022-11-07 17:56:08 -08:00
voussoir
a5f982300e
Add example of traceback.format_exception.
2022-11-07 17:55:40 -08:00
voussoir
628f18e0db
Log when closing sql connections.
2022-11-07 17:55:25 -08:00
voussoir
405900cbf4
In progressbars.normalize, return DoNothing instead of None.
...
So caller doesn't need to do none checks as much.
2022-11-07 17:54:55 -08:00
voussoir
b4ec72fb53
Use execute_read for explain query plan.
2022-09-07 18:05:01 -07:00
voussoir
7374ffe283
Add pathclass.natural_sorter.
2022-08-21 13:58:44 -07:00
voussoir
2996283344
If given glob pattern is an existing path, just return that.
2022-08-21 13:57:19 -07:00
voussoir
6b26a4bd93
Add method explain which shows explain query plan.
2022-08-21 13:54:44 -07:00
voussoir
1fe6de793c
Update worms to match sqlhelpers.
2022-08-13 07:24:31 -07:00
voussoir
54fa46c4f9
Use named column inserts, but remove require_all parameter.
...
I am yet again bumping into the limits of extract_table_column_map
as it does not use a real parser and does not recognize generated
columns, which causes issues when I use that column list to enforce
an insert.
It probably would be better to move even farther away from extracting
columns and just asking the database instead.
Anyway we get slightly improved ergonomics of insert_filler at the cost
of not being able to enforce all columns within this function.
2022-08-13 07:23:53 -07:00
voussoir
353cba7dfd
Use exifread for paths, pil for existing image objects.
...
Instead of using pil all the time.
2022-08-03 18:43:17 -07:00
voussoir
720a2bebcf
Officially prefer int for IDs.
...
For a while I was attracted to string IDs because of the notion
that "if you're not going to perform arithmetic, it shouldn't be
an int". But ints make way better use of the allotted bits and
I'm loving getrandbits for urandom ID generation.
2022-07-17 19:48:17 -07:00
voussoir
cbef38ba7f
Add new transaction locking and cleaner atomicity in worms.
...
This change has really made it easier to reason about database
transactions in my projects. When you use 'with db.transaction'
you know for sure that either the db will commit or rollback at
the end and you won't leave in a dirty state. And it will lock
out all other writers so nothing gets messed up.
Previously I was conflating atomicity of each function with
committing of the entire transaction, and that was causing me
grief. I think this is closer to correct.
2022-07-17 19:48:17 -07:00
voussoir
abfaf27cee
Add exifread function.
2022-07-17 19:48:17 -07:00
voussoir
3dd270bb4a
Add method exists.
2022-07-17 19:48:16 -07:00