Skip to content

Commit

Permalink
v4.0.2 (#82)
Browse files Browse the repository at this point in the history
* adjust verbosity and remove debug cruft

* fix tests for defualt recursion and clean up skip code

* move parse_date to Timestamp

* comment for picopt specific code

* move _should_record_timestamp to walk because it depends on settings.

* abstract out base settings method

* fix tests for new settings

* fully seperate timestamp_base, make abc methods lint friendly. rename _FN constants to _NAME

* move rc bases into a module for possible use elsewhere

* bump news

* update dat REAMDE

* remove manual disable cli args

* Squashed commit of the following:

commit ae129a38bb246d885212b81a924609d88727be6c
Author: AJ Slater <[email protected]>
Date:   Sat Feb 12 17:41:04 2022 -0800

    remove formats.programs file, move formats back into classes

commit 5e9c728ad63d0411a9a7bb6945e8fdcc38dcaa0b
Author: AJ Slater <[email protected]>
Date:   Sat Feb 12 17:40:01 2022 -0800

    lint

commit 31672265f574542d7db1b218b266f651631bb542
Author: AJ Slater <[email protected]>
Date:   Sat Feb 12 17:39:41 2022 -0800

    fix syntax for calling linters

commit e7798f6e4a9a865972aa8dd0db8cc3a46dd90668
Author: AJ Slater <[email protected]>
Date:   Fri Feb 11 19:46:22 2022 -0800

    reorg formats dir part 1"

commit e2403c98ea9507fae53b1ff7546e750616f9a26a
Author: AJ Slater <[email protected]>
Date:   Fri Feb 11 17:41:55 2022 -0800

    remove lie from argparse docs

commit 9f70ad224598b60bc2a9fcac36ce431a0271a618
Author: AJ Slater <[email protected]>
Date:   Fri Feb 11 17:40:36 2022 -0800

    remove nag behavior. make recursive default false again

commit 3df145d135f9911b54a5dd6780c44b55d1706e8f
Author: AJ Slater <[email protected]>
Date:   Fri Feb 11 16:21:22 2022 -0800

    test webp and webp_is_lossless

commit 8845d808224e9a0df3a748c7973d2b9c07840247
Author: AJ Slater <[email protected]>
Date:   Fri Feb 11 16:21:07 2022 -0800

    use is_lossless to choose cwebp params. fix webp LOSSLESS_FORMATS and CONVERTABLE_FORMATS

commit a286e548613cae76f1d3e0e377cc1b47d045719f
Author: AJ Slater <[email protected]>
Date:   Fri Feb 11 16:18:00 2022 -0800

    sort items in documentation

commit 061f745e79e4247636ebbaf337a8d9bcb255a05e
Author: AJ Slater <[email protected]>
Date:   Fri Feb 11 16:17:27 2022 -0800

    typing hints

commit 5b84a249ad1cd9c1ef69e9a8abc20106d05f83e1
Author: AJ Slater <[email protected]>
Date:   Fri Feb 11 16:17:08 2022 -0800

    lint

commit c88371ea09ef8407ee106cb3011db0132764ba79
Author: AJ Slater <[email protected]>
Date:   Fri Feb 11 16:16:34 2022 -0800

    move pillow enhancements to own module

commit 0a8ddb7392f7b12b6e3d7a366b36275e399e9b86
Author: AJ Slater <[email protected]>
Date:   Fri Feb 11 13:41:57 2022 -0800

    remove cruft

commit 90ac317d566602efa3325fe967d226192e5d121e
Author: AJ Slater <[email protected]>
Date:   Fri Feb 11 13:41:06 2022 -0800

    mark function private

commit 66b9d7e72817dbb917c56a2e35ef126ec72b4421
Author: AJ Slater <[email protected]>
Date:   Fri Feb 11 13:07:17 2022 -0800

    consolidate webp test functions, add png2webp

commit 9882fbb5d89d4f0cb75eaa24ecca1bdb628d9e14
Author: AJ Slater <[email protected]>
Date:   Fri Feb 11 01:12:51 2022 -0800

    remove cruft

commit 4d705feae0fc21e20f0ea6e65890da8a3f04a6bd
Author: AJ Slater <[email protected]>
Date:   Fri Feb 11 01:05:27 2022 -0800

    remove object inheritance

commit 884a0d311ef0c3531270c6ae9532b015d3d357e7
Author: AJ Slater <[email protected]>
Date:   Fri Feb 11 00:31:22 2022 -0800

    lint

commit f90445dd2a2d22b5871ff58733475041e5614cec
Author: AJ Slater <[email protected]>
Date:   Fri Feb 11 00:22:55 2022 -0800

    lint NEWS

commit 9312bf504948bd5e7b3d501487dcd5b97f10feb0
Author: AJ Slater <[email protected]>
Date:   Fri Feb 11 00:17:25 2022 -0800

    ignore TODO

commit d4f4342a26fdfb0e44a9970a76d36f082a00a66d
Author: AJ Slater <[email protected]>
Date:   Fri Feb 11 00:16:30 2022 -0800

    remove dev scripts

commit a44cf027a985fc0d46fb2311d24ea2fd12ee8dec
Author: AJ Slater <[email protected]>
Date:   Fri Feb 11 00:16:03 2022 -0800

    remove eslintcache from git

commit 8e8b7c8ebd260df4189b8d51dbd6ea6ea9f24dce
Author: AJ Slater <[email protected]>
Date:   Thu Feb 10 16:53:44 2022 -0800

    working webp tests. not all cases probably. lots of new linting

commit c92c42406f52b83572f7868ee6545d8b2a76d8fc
Author: AJ Slater <[email protected]>
Date:   Tue Oct 5 14:58:14 2021 -0700

    fix conversion to webp

commit a143f6e77f86566761aa99b7d6c345b8421c3b1a
Author: AJ Slater <[email protected]>
Date:   Tue Oct 5 14:40:12 2021 -0700

    fix -w option help

commit 276a56e1059593fb2ef61e4b9c09bdd86c6e5b7c
Author: AJ Slater <[email protected]>
Date:   Tue Oct 5 14:33:10 2021 -0700

    poetry update and lint

commit 5748643bae0d9738eaf59a6b36fae96766d7b199
Author: AJ Slater <[email protected]>
Date:   Tue Sep 21 20:52:14 2021 -0700

    animated webp sort of working.

commit 39687e3c5d22b64d39c1817d05a26b5ae0e21961
Author: AJ Slater <[email protected]>
Date:   Tue Sep 21 20:46:31 2021 -0700

    fix mypy config

commit 8efa91f867310ebbae774459c115245c83784774
Author: AJ Slater <[email protected]>
Date:   Tue Sep 21 15:22:21 2021 -0700

    webp support. no animated webp support yet.

commit f17a0ceac6e6883a7399d41cff713641e1834dcc
Author: AJ Slater <[email protected]>
Date:   Tue Sep 21 15:13:47 2021 -0700

    update deps

commit 18f1b312f42224501324e388ef5563e29f8f9428
Author: AJ Slater <[email protected]>
Date:   Tue Sep 21 15:08:38 2021 -0700

    add ini lint for setup.cfg

commit ef7d878419c6740b4d50ed63f7a6c9d2bf0d2ddb
Author: AJ Slater <[email protected]>
Date:   Tue Sep 21 15:07:56 2021 -0700

    modern ubuntu. hadolint

commit 37e23a11a9dd25c98628019a04dfc4984cdefe59
Author: AJ Slater <[email protected]>
Date:   Tue Sep 21 14:58:41 2021 -0700

    lint script updates

commit bc95342eba6258886fa03543ca9439e977d01366
Author: AJ Slater <[email protected]>
Date:   Tue Sep 21 14:58:14 2021 -0700

    sortignore script

* Squashed commit of the following:

commit fd1474e30f5a57b0cacbf61649c3fdef2ac7808a
Author: AJ Slater <[email protected]>
Date:   Mon Feb 28 22:15:33 2022 -0800

    add command line args file

commit e329c309ca5f514c9a65151aec4c8794fc1f49be
Author: AJ Slater <[email protected]>
Date:   Mon Feb 28 22:01:06 2022 -0800

    rename -N to -T

commit cc2d9dbf6bd504cb09aec34205a39c9e09a302fa
Author: AJ Slater <[email protected]>
Date:   Mon Feb 28 21:33:18 2022 -0800

    optimize_after to after

commit 9533993f8b1bb410525065e98379bf31d9dad33a
Author: AJ Slater <[email protected]>
Date:   Sat Feb 26 22:37:44 2022 -0800

    enable handlers with pil2 programs

commit c8afd8a0a3c87210580fa5e13138b461541a61e3
Author: AJ Slater <[email protected]>
Date:   Sat Feb 26 22:35:12 2022 -0800

    use PIL to optimize if no programs available

commit bf6b3428737ab3a7d3f075ac76fd1aa8e4d8c194
Author: AJ Slater <[email protected]>
Date:   Sat Feb 26 16:32:51 2022 -0800

    working containers, webp and conversions with integration tests

commit f64d0058cde23a1482c810140e78156616a7c811
Author: AJ Slater <[email protected]>
Date:   Fri Feb 25 21:59:39 2022 -0800

    fix bit depth offset

commit ac8dc54de35308b6243ac68c455227afa49e792a
Author: AJ Slater <[email protected]>
Date:   Fri Feb 25 14:15:42 2022 -0800

    fix png bit depth offset

commit 7eb3e4e168739e1806f95f4bb26d34e4273ade2f
Author: AJ Slater <[email protected]>
Date:   Fri Feb 25 14:08:24 2022 -0800

    re-optimize preo-optimzed jpg

commit cc5474faf4190f9096073d7a2c79bde7f207995d
Author: AJ Slater <[email protected]>
Date:   Sun Feb 20 20:00:31 2022 -0800

    move more things into unpack common lib

commit 6d789aa5dc79a429e0666792b3e830fca98d4c00
Author: AJ Slater <[email protected]>
Date:   Sun Feb 20 02:21:48 2022 -0800

    new test files

commit afca8965c15894bb8f68f195db93cbd9c5420589
Author: AJ Slater <[email protected]>
Date:   Mon Feb 14 18:02:31 2022 -0800

    extra commit

commit a10f9c35f89bd31bbde5d656818d528a4e9b9e5a
Author: AJ Slater <[email protected]>
Date:   Mon Feb 14 18:02:20 2022 -0800

    container structure fine

* move import to top

* webanimated, reform container error handling and available method

* update news

* extract is_lossless into a function

* remove cruft

* consolidate error handling for handlers

* refactor stats

* reuse FORMAT_STR

* simpler container dir name

* Squashed commit of the following:

commit e37d88a7834a65b729024110d0dea29eb88c2fd3
Author: AJ Slater <[email protected]>
Date:   Thu Mar 3 12:30:02 2022 -0800

    rename can_handle to identify_format

commit 825fb0e865667e602b58ef5e868a534b460828f1
Author: AJ Slater <[email protected]>
Date:   Thu Mar 3 12:22:16 2022 -0800

    simpler to use two handlers for gif

commit e73d19c3863f6e23e041903aec190f4c524d04ca
Author: AJ Slater <[email protected]>
Date:   Thu Mar 3 12:09:58 2022 -0800

    rename FORMAT & FORMAT_OBJ

commit f02ebd7db5f4ea3f1f062fa5ebb2bdb675321347
Author: AJ Slater <[email protected]>
Date:   Wed Mar 2 22:28:07 2022 -0800

    treat internal programs differently

commit 28a3b680430a507d54c370103f7e47a5cb2028f7
Author: AJ Slater <[email protected]>
Date:   Wed Mar 2 22:18:00 2022 -0800

    remove IMPLIES_RECURSE

commit 0d088430b4669a389def42e2ba193e51421bbfee
Author: AJ Slater <[email protected]>
Date:   Wed Mar 2 22:08:46 2022 -0800

    reorder class methods

commit d1e615c1a94f4b1baad73514f47e1cbd2f20b2e5
Author: AJ Slater <[email protected]>
Date:   Wed Mar 2 22:06:24 2022 -0800

    remove cruft

commit ac86a44d7a8240b5ca64fa6f920fb16d030652dc
Author: AJ Slater <[email protected]>
Date:   Wed Mar 2 22:05:01 2022 -0800

    remove cruft

commit ee726238d4d5f364f4d357aa42ac7626d264ad26
Author: AJ Slater <[email protected]>
Date:   Wed Mar 2 22:04:14 2022 -0800

    dynamic native formats

commit af4bf19721b8356dcd729a9b80634dbffe4c36c6
Author: AJ Slater <[email protected]>
Date:   Wed Mar 2 21:21:48 2022 -0800

    rename self.format to self.input_format

commit c7c0f44603b1b85b52aea8dc554ee823f056c8da
Author: AJ Slater <[email protected]>
Date:   Wed Mar 2 21:01:58 2022 -0800

    more dynamic suffix generation

* name factory factory

* remove cruft

* verify independantly of metadata read. store exif data

* exif support for handlers

* exif support for png, also use o5 for optimizing

* metadata preserve for webp. consolidate pil2webp function

* bump NEWS

* icc preservation

* pillow optimization for jpeg

* epub support

* Squashed commit of the following:

commit 547ec01fe5c1b0fc90f84964bdc0fe4a92bd166b
Author: AJ Slater <[email protected]>
Date:   Fri Mar 4 14:44:50 2022 -0800

    bump news

commit 0a1b689f3bab481c85bb48357190efe4bbd4dd32
Author: AJ Slater <[email protected]>
Date:   Fri Mar 4 14:44:31 2022 -0800

    tif support

commit ecb294fa37fa3c2de6e03de72d2dbb410e574447
Author: AJ Slater <[email protected]>
Date:   Fri Mar 4 12:07:16 2022 -0800

    fix container dir suffix dot

commit 361e1310b98f5db8441eb478158d38022922638e
Author: AJ Slater <[email protected]>
Date:   Fri Mar 4 12:06:51 2022 -0800

    remove debug print statement

* pil2jpeg is not lossless

* add to comment

* combine pil2 methods into a superclass method

* tweak comment

* reform some variable names

* more consistent method naming for containers

* Squashed commit of the following:

commit 5e0fb4776af2bbe59890a270bb13c27efb2fdd64
Author: AJ Slater <[email protected]>
Date:   Mon Mar 7 16:32:48 2022 -0800

    compact timestamps get routine

commit ed15c4506b994adc895a2718a5c62c9cb666b725
Author: AJ Slater <[email protected]>
Date:   Mon Mar 7 16:20:28 2022 -0800

    refactor timestamps

commit c6664e09a12b943b65587b4282c51f7ce4da3d6d
Author: AJ Slater <[email protected]>
Date:   Sat Mar 5 14:57:08 2022 -0800

    move comments

* Squashed commit of the following:

commit 3dd8e76ed71a13f0790b51cec8b9234f75694a2a
Author: AJ Slater <[email protected]>
Date:   Thu Mar 10 12:41:56 2022 -0800

    one queue per timestamps file. move walk-all_files into run

commit 8ba764d5bd95a10ec9510675c3d1c3d32284a310
Author: AJ Slater <[email protected]>
Date:   Thu Mar 10 12:21:34 2022 -0800

    move exception handling into walk_file. dump timestamp file after completing every directory

commit f8462df14cb51993e0f171514bc75356b983721a
Author: AJ Slater <[email protected]>
Date:   Thu Mar 10 12:03:32 2022 -0800

    handle item method

commit c9520ee1fcd79515191ada48b4e7ad85b2f6c991
Author: AJ Slater <[email protected]>
Date:   Thu Mar 10 11:33:26 2022 -0800

    restore passing timestamps down

commit 4ef23e005451e5582bd98c042cd1390dbca3f050
Author: AJ Slater <[email protected]>
Date:   Thu Mar 10 10:06:22 2022 -0800

    remove passing top_path around. change return types to asyncresult, dirresult, none

commit cc3f87463ecba21618ae1b5772f98db2a8933fa7
Author: AJ Slater <[email protected]>
Date:   Thu Mar 10 09:03:05 2022 -0800

    remove walk_after and move call unpack directly in handler

commit 1fb0caa7f76b7aac3f31d1449302d79ba9773bd7
Author: AJ Slater <[email protected]>
Date:   Wed Mar 9 15:32:16 2022 -0800

    queue system works for unblocking containers. timestamp refactor for non-dir submissions. needs some refactoring

* bump news

* change destroy_metadata config variable to keep_metadata

* Squashed commit of the following:

commit b772d0770c2772129106f6de66928c300d816cd6
Author: AJ Slater <[email protected]>
Date:   Thu Mar 10 21:45:47 2022 -0800

    convert-to is now a list. no more global implied recurse, but containers recurse

* Squashed commit of the following:

commit ee7db97aef3a1003c848ef0e883ea60bf86355be
Author: AJ Slater <[email protected]>
Date:   Fri Mar 11 16:52:34 2022 -0800

    config in timestamps

* Squashed commit of the following:

commit d8577ed56ad31d3d803e30379c3ca6877f56aa25
Author: AJ Slater <[email protected]>
Date:   Fri Mar 11 22:09:47 2022 -0800

    ignore globs

* Squashed commit of the following:

commit 15694ae4a52b695c321fac7e7ad732446589c407
Author: AJ Slater <[email protected]>
Date:   Tue Mar 22 22:34:39 2022 -0700

    remove dependency on timestamps. make timestamps off the default again

commit 95f7ab272e589fd0351ae2e3d620640f7909b614
Author: AJ Slater <[email protected]>
Date:   Tue Mar 22 20:34:07 2022 -0700

    all tests work

commit cb0be7d9ffc39a57cd07ff3498fa6ddb48f7eeb3
Author: AJ Slater <[email protected]>
Date:   Mon Mar 21 18:59:41 2022 -0700

    fix non-relative imports into timestamps. fix old timestamps import

commit ec1eb4562dc0279e979614a627ba7fe9a65ef8c6
Author: AJ Slater <[email protected]>
Date:   Mon Mar 21 16:55:30 2022 -0700

    pytest_config rename test

commit 1fbe451e821857c51a9b81f14f44eba5a3fd4460
Author: AJ Slater <[email protected]>
Date:   Mon Mar 21 16:54:41 2022 -0700

    dump a fake journal test reading

commit 12c0e0b49cae8c810445db4a8505b3743cd1a0e8
Author: AJ Slater <[email protected]>
Date:   Mon Mar 21 16:29:25 2022 -0700

    clean up journal on dump properly

commit e87844fa03c5f00f427ba8cbdd7c902e1fbac38c
Author: AJ Slater <[email protected]>
Date:   Mon Mar 21 15:20:28 2022 -0700

    more timestamps tests

commit 28e00ae88af93630c8c85c5edb437de06df9669d
Author: AJ Slater <[email protected]>
Date:   Mon Mar 21 13:36:17 2022 -0700

    passes simple timestamp tests

commit 9f18ebbe06d9c8f66826ffeeb4a2f9edff5d21a0
Author: AJ Slater <[email protected]>
Date:   Thu Mar 17 14:02:31 2022 -0700

    correctly typed wal stuff

* fix after param

* remove cruft

* fix directory task order, seperaate queue tasks into a file

* reorg walk initialization

* output showing conversions

* use python 3.9 typing

* fix quiet setting

* better after parsing

* list only to caps

* trap unlink exception

* handle directory results from bottom up. remove mypy

* poetry update

* poetry update

* don't store timestamps for things inside containers

* rename tasks

* Squashed commit of the following:

commit 74a4a17e6c870924fc97ce65e2dbab48881c7152
Author: AJ Slater <[email protected]>
Date:   Thu Mar 24 14:33:08 2022 -0700

    don't deflate images in archives. remove resort. move output to containerhandler.

commit 9a1f166eb1cb78a9ba17538a5a5b426494453066
Author: AJ Slater <[email protected]>
Date:   Thu Mar 24 14:13:15 2022 -0700

    lint

commit babe920eefe2bc896090d62f079e83816049e898
Author: AJ Slater <[email protected]>
Date:   Thu Mar 24 14:13:12 2022 -0700

    rename tasks

commit 36239c8399995a0ea4e9e2919a4bb7bdfc3c8688
Author: AJ Slater <[email protected]>
Date:   Thu Mar 24 14:08:29 2022 -0700

    inline unpack and repack

* remove old unit tests.

* lint

* fix up NEWS

* clean up old working directories as well as files

* make working filename even more unique

* fix TIFF not a default format getting turned on by convert_to

* package updates

* make queues private and close pools before writing timestamps

* use eslint_d in scripts, update pakcaegs

* version bump to 3.0, update packages

* bump docker python image in cirlcleci

* fix permissions on builder. use python3.10

* don't use sudo. fix speling

* copy necessary files for install

* add pyright

* test before lint

* add webp dependency

* update scripts packages and README

* tests pass on linux

* combine linux & darwin common tests

* move dirpath back into Timestamps"

* fix commands"
in compose

* change license

* use subprocess run

* cleaner cli calling

* lint

* change symlink option name

* use shutil.which() and check for executable bits, don't run programs

* colored output

* factory method for timestamps

* fix mozjpeg

* fix config keys for timestamps keys

* use timestamps factory. do timestamps ignore simpler

* namespace picopt config

* Squashed commit of the following:

commit 62cc6d4ce3016f545d74200da0a85aa397764200
Author: AJ Slater <[email protected]>
Date:   Mon May 2 21:15:15 2022 -0700

    cleaner format classes doesn't make duplicate trees

commit 1306e1321ac1d7de15359cd2d3987ea1271bd8a9
Author: AJ Slater <[email protected]>
Date:   Mon May 2 20:33:45 2022 -0700

    bump news

commit 73960e382b98e940084914d7683937604bb4f62a
Author: AJ Slater <[email protected]>
Date:   Mon May 2 20:32:34 2022 -0700

    hacky but working epub fix

* extra close for animated images

* cleanup setting formats. add TIFF format don't subtract it

* linux mozjpeg size

* newer mozjpeg

* document newer mozjpeg. update readme.

* use frozenset

* Squashed commit of the following:

commit dedcb80180b978b11c3c3e80b910ca094faead6c
Author: AJ Slater <[email protected]>
Date:   Wed May 4 14:27:12 2022 -0700

    pypi treestamps

commit 1f98040faa23e4ce9ddb89bd5b7871675dababdc
Author: AJ Slater <[email protected]>
Date:   Wed May 4 14:17:24 2022 -0700

    fix mounts for circleci

commit 783248363c0e320febe96cf061f48736bc75d470
Author: AJ Slater <[email protected]>
Date:   Wed May 4 14:17:15 2022 -0700

    use current images for circleci

commit 2486bf4a0bb11928d0bc64da85e3a6d21aa2743c
Author: AJ Slater <[email protected]>
Date:   Wed May 4 13:17:54 2022 -0700

    treestamps conversion

* bump news

* v3.0.1

* update treestamps

* trap repack exceptions

* v3.0.2

* v3.0.3

* v3.0.4

* better usage examples

* sorted dirs

* bump news and version

* test for existence of timestamp in timestamp tests

* don't record timestamps for items in containers

* repack message uses final path not working path

* don't look for old timestamps in ignore globs

* alphebetize config

* v3.0.5

* fix not skipping files. add skip logging

* maybe fix webp_animated detection

* update packages

* v3.1.2

* Squashed commit of the following:

commit 28e5f4a7d1215ae641c26f2b2b0b8d999d32df0c
Author: AJ Slater <[email protected]>
Date:   Wed May 18 13:00:19 2022 -0700

    fix deleting working file. add progress dots.

* lint typing

* bump version update packages

* remove print statement

* Fixed showing total at end. supress program output. change colors by operation

* better error reporting

* update packages and fix verbosity count

* Squashed commit of the following:

commit 212f653dd6b399e4db878a5a2ed6053452fde6df
Author: AJ Slater <[email protected]>
Date:   Wed May 25 14:05:59 2022 -0700

    3.2 apng

* remove print statements

* remove debug statements

* lint

* v3.2.2 & package updates

* color help. change bigger color to blue

* package updates

* install webp in Dockerfile

* move isort config to pyproject.toml

* update confuse. add eradicate

* ignore pypirc

* update packages

* update packages modernize linting

* clearer headers code for pillow extension

* refactor pillow extensions

* switch to shellharden

* fix identation in readme

* Squashed commit of the following:

commit 92daaf1e7ac0c8b0b537637929118cce8d47a82e
Author: AJ Slater <[email protected]>
Date:   Tue Nov 1 18:04:39 2022 -0700

    change linux test values

commit f96bde1a2640a9c89117ea2dd37be12dd88bf946
Author: AJ Slater <[email protected]>
Date:   Tue Nov 1 17:04:26 2022 -0700

    fix webp lossless detection

commit a08ba3af4ffa87a374ab527d38125b18e94bfe9a
Author: AJ Slater <[email protected]>
Date:   Tue Nov 1 16:20:33 2022 -0700

    lint

commit b31e8cd81ad9f2c3b591de02b402e0b32e99696d
Author: AJ Slater <[email protected]>
Date:   Tue Nov 1 16:20:26 2022 -0700

    lint

commit a48d1a24b5927e03777d27c6dc4592d7f517e32f
Author: AJ Slater <[email protected]>
Date:   Tue Nov 1 15:02:25 2022 -0700

    fix image header compare

commit 781d1e4ab93965e7cff138b749b533f12d7ca859
Author: AJ Slater <[email protected]>
Date:   Tue Nov 1 14:53:29 2022 -0700

    fix error reporting

* remove debug print

* change order of test and lint in ci. use python 3.11

* update packages

* fix toml replication

* detect case insensitive filessystems and be careful about replacing files on them

* bump version and news

* speling

* use ruff for linting

* update deps

* remove setup.cfg update deps

* update deps

* lint

* add typing info

* switch to makefile

* fix cleanup of temp dir when container fails

* fix version script for no frontend

* bump version

* fix stack trace on config error

* update deps

* update deps

* Squashed commit of the following:

commit 253cfbca14a5922d87cb21a3f85bec44294f22ee
Author: AJ Slater <[email protected]>
Date:   Tue May 9 18:54:56 2023 -0700

    fix build

commit 6c4f44c6478624a53ba4b3385f4e9a89c402d483
Author: AJ Slater <[email protected]>
Date:   Tue May 9 18:35:31 2023 -0700

    update deps

commit d18c0e69291fcc42d94feb4846399b2198d5fe6b
Author: AJ Slater <[email protected]>
Date:   Tue May 9 18:35:27 2023 -0700

    new treestamps new option to not check config on treestamps

commit 8c357ebd27ade334edc633ea839572bffaa4f8dd
Author: AJ Slater <[email protected]>
Date:   Mon May 8 16:29:23 2023 -0700

    use some dataclasses for walk and report

commit f9136d4176a2a57f967a2497c415a537afbc52a1
Author: AJ Slater <[email protected]>
Date:   Mon May 8 15:39:55 2023 -0700

    remove stray print

commit cb2561314b5a9e1717757679326e31adb58d9cdb
Author: AJ Slater <[email protected]>
Date:   Mon May 8 15:39:08 2023 -0700

    move computed config items into a computed namespace instead of prefixing with underscore

commit 106e06542a7b9238adb9a00c9a8f5453978617de
Author: AJ Slater <[email protected]>
Date:   Mon May 8 14:36:35 2023 -0700

    ignore some linting for tests

commit be5c645f304605c9dd441c57a4394360b0bf5524
Author: AJ Slater <[email protected]>
Date:   Mon May 8 14:34:02 2023 -0700

    lint timezeones with now

commit 2f6f7bd1d8c5004f6e2b84f39bd23739b4ffe2c0
Author: AJ Slater <[email protected]>
Date:   Mon May 8 14:25:12 2023 -0700

    cprint in walk.py. optimize report on bytes saved.

commit 5708e43ef07edd5843c583c733227c633f942121
Author: AJ Slater <[email protected]>
Date:   Mon May 8 14:15:22 2023 -0700

    use cprint for normal output so lint flags debug prints

commit 0e1efbb233e65e0ba7d312ec2e86241c10bb7e97
Author: AJ Slater <[email protected]>
Date:   Mon May 8 14:03:01 2023 -0700

    comment

commit cbc94d6a38eedcfdbe573dd37c4efb4976d61d74
Author: AJ Slater <[email protected]>
Date:   Mon May 8 14:02:38 2023 -0700

    refactor where skips happen, move dir skip into walk dir, file skips happend after handle dir

commit e545efc72fb3d376cbff7539e7e63164d6a2a252
Author: AJ Slater <[email protected]>
Date:   Mon May 8 13:51:29 2023 -0700

    fix variable name

commit 147dd25439c7bd5a0fc8177b93e2b38b7e5289d8
Author: AJ Slater <[email protected]>
Date:   Mon May 8 13:51:12 2023 -0700

    use consts for repeat values in test

commit 0bdc63629254beb6927627444ebde96fbad7bb9a
Author: AJ Slater <[email protected]>
Date:   Sun May 7 20:06:55 2023 -0700

    fix webp input_file_format name

commit 480b082e357b9c75f9cd2f14cebcad2214e55c52
Author: AJ Slater <[email protected]>
Date:   Sun May 7 20:06:15 2023 -0700

    trap unidentified image error. fix warning message

commit dae37e40784e307ae4a6c7a5b0609ce5b81ecf13
Author: AJ Slater <[email protected]>
Date:   Sun May 7 20:03:48 2023 -0700

    fix variable name

commit 49f7546d689134d51156c267758185792a433173
Author: AJ Slater <[email protected]>
Date:   Sun May 7 20:03:08 2023 -0700

    fix lingering format name for variables

commit 99e2b34c66954e7c689997dadcec4701effc62f3
Author: AJ Slater <[email protected]>
Date:   Sun May 7 20:02:29 2023 -0700

    allow make to do one test

commit cfc58f1a0eda5361e74ad5099792165c1eb2ea98
Author: AJ Slater <[email protected]>
Date:   Sat May 6 20:22:22 2023 -0700

    add missing init files

commit 3e82ba617536f874b5bcbee2004f93ad4142ffcc
Author: AJ Slater <[email protected]>
Date:   Sat May 6 18:31:38 2023 -0700

    first pass of lint

* fix build with bin path

* fix build

* fix pngout install script package location

* fix pngout install script again

* update dockerfile bases

* remove python 3.11ism

* use lunar for ubuntu

* update treestamps

* fix test for reading wal

* normalize wal writing to use ts_config as well

* update treestamps

* v3.3.3 uses new treestamps

* bump version

* Squashed commit of the following:

commit d3ba8df31fa61604450500e1f4ae0948dd1c779f
Author: AJ Slater <[email protected]>
Date:   Thu May 11 15:48:08 2023 -0700

    3.3.4 keep original path extension

* fix directory skipping

* update deps

* deflate64 and rarfile. cffi

* Squashed commit of the following:

commit 7af058987c6a36e1b523944af61d872c0b8a3b88
Author: AJ Slater <[email protected]>
Date:   Sun May 14 15:34:06 2023 -0700

    don't rar if no unrar

* remove unrar.cffi support

* update deps and lint

* improve cwebp params

* lint

* update deps

* Squashed commit of the following:

commit 70ec98237334b5ead1ac2bcb1df8d44acb27837a
Author: AJ Slater <[email protected]>
Date:   Mon Jan 15 20:59:45 2024 -0800

    webp: -m 6, -q 100 for both lossy and lossless

commit b31880a5c25d4792d4da45670e07b7d3d98f4842
Author: AJ Slater <[email protected]>
Date:   Mon Jan 15 19:57:58 2024 -0800

    update deps and lint

commit bcb77803b8875636093937f015fae8b4a7755370
Author: AJ Slater <[email protected]>
Date:   Wed Aug 16 18:33:28 2023 -0700

    update deps and lint

commit d0062cbee30504aeb83c8e4cfedf7fc053e7cb8c
Author: AJ Slater <[email protected]>
Date:   Mon Jul 10 13:40:10 2023 -0700

    use prettier plugins

commit b3aa384a5618a2b27d6e912efcb2c2cacceacc01
Author: AJ Slater <[email protected]>
Date:   Mon Jul 10 11:33:23 2023 -0700

    update deps and add more eslint plugins. add first step of converge option

* alphabetize macOS deps

* fix non zero exit code on success

* remove webp lossy optimizing. it wasn't

* mac tests pass. remove unfinished converge stuff. add near_lossless to webp

* update to mozjpeg 4.1.1 for testing

* use mantic manticore for testing

* fix linux test sizes

* fix more linux tests

* fix png to webp linux size

* fix webp size for linux

* penultimate linux webp size fix

* possibly final linux test fix

* version is actually 3.3.7

* remove cruft

* remove converge vestiges from config

* lint

* v4.0.0rc0 (#76)

* change --destroy-metadata to --strip-metadata. change running script name. bump version to 3.4.0

* move report totals from walk into Totals

* Squashed commit of the following:

commit f7c2bd6647380b65a0d74ba7fb533724c6c6c455
Author: AJ Slater <[email protected]>
Date:   Fri Jan 19 14:28:04 2024 -0800

    remove converge option

commit 3401da410565fdba7be7b6a8dee89dc43f061fbc
Author: AJ Slater <[email protected]>
Date:   Fri Jan 19 14:26:48 2024 -0800

    update docs for oxipng and more formats

commit d01d7128d9040b60d87086e4b35065c4c1714601
Author: AJ Slater <[email protected]>
Date:   Fri Jan 19 14:26:22 2024 -0800

    update deps

commit ceb7ece72b3861010f2c1e4a24e932d999274d7c
Author: AJ Slater <[email protected]>
Date:   Fri Jan 19 13:32:23 2024 -0800

    refactor config for lint and complexity

commit 7c8a9154a02c37e50c2ac0b417d8b18c17c85692
Author: AJ Slater <[email protected]>
Date:   Fri Jan 19 13:32:09 2024 -0800

    lint

commit c2248b95444aeb9b5f8913543f493dbc5f3f8afa
Author: AJ Slater <[email protected]>
Date:   Fri Jan 19 13:11:16 2024 -0800

    working many formats and oxipng

* lint

* python 3.10

* Squashed commit of the following:

commit ed0dc98a1d32beb8db47d4dc9570b6666f3f1541
Author: AJ Slater <[email protected]>
Date:   Fri Jan 19 16:52:01 2024 -0800

    support optmizing SVG with svgo

* add svgo install instructions. allow sh markdown highlighting

* use svgo if it's installed by npm

* fix timestamp test

* todos for variable name

* Fix convert from formats not activating.
Do not let npx auto-install
Quiet npx output.
Consolidate pil2png and pil2native
Use positive if in webp_animated
Even more aggressive webp presets.

* lint

* install svgo and oxipng for linux

* bump version to 4.0.0

* remove cruft

* add converge option for cwebp. replace gif2webp with pillow and cwebp. no converge/exhaustive tests yet.

* update deps

* test exaustive

* Big stages and config refactor. Allows mutliple programs in priority lists for stages. Simplifies on pil2native. removes external containerized webp_animated optimimzation for pil method (worse). Removes gif2webp for generic webp animated convertion.

* Squashed commit of the following:

commit 484c93d223dd2e7ffbb2b850876aba3ee05f8fc2
Merge: cb56ee3 0a2104e
Author: AJ Slater <[email protected]>
Date:   Wed Jan 24 21:21:34 2024 -0800

    Merge branch 'main' into develop

commit 0a2104ea299939c40f66d789b71963b4f6a6e4b3
Author: AJ Slater <[email protected]>
Date:   Wed Jan 24 21:21:23 2024 -0800

    picopt 3.3.8 (#72)

    * fix settings tests add coverage

    * fix settings coverage

    * expand stats coverage

    * timetstamp tests and individual file timestamp checking

    * better coverage for walk module

    * bump NEWS

    * types

    * remove relative imports

    * default recursion

    * default recursion

    * bump news

    * fix compacting timestamps

    * adjust verbosity and remove debug cruft

    * fix tests for defualt recursion and clean up skip code

    * move parse_date to Timestamp

    * comment for picopt specific code

    * move _should_record_timestamp to walk because it depends on settings.

    * abstract out base settings method

    * fix tests for new settings

    * fully seperate timestamp_base, make abc methods lint friendly. rename _FN constants to _NAME

    * move rc bases into a module for possible use elsewhere

    * bump news

    * update dat REAMDE

    * remove manual disable cli args

    * Squashed commit of the following:

    commit ae129a38bb246d885212b81a924609d88727be6c
    Author: AJ Slater <[email protected]>
    Date:   Sat Feb 12 17:41:04 2022 -0800

        remove formats.programs file, move formats back into classes

    commit 5e9c728ad63d0411a9a7bb6945e8fdcc38dcaa0b
    Author: AJ Slater <[email protected]>
    Date:   Sat Feb 12 17:40:01 2022 -0800

        lint

    commit 31672265f574542d7db1b218b266f651631bb542
    Author: AJ Slater <[email protected]>
    Date:   Sat Feb 12 17:39:41 2022 -0800

        fix syntax for calling linters

    commit e7798f6e4a9a865972aa8dd0db8cc3a46dd90668
    Author: AJ Slater <[email protected]>
    Date:   Fri Feb 11 19:46:22 2022 -0800

        reorg formats dir part 1"

    commit e2403c98ea9507fae53b1ff7546e750616f9a26a
    Author: AJ Slater <[email protected]>
    Date:   Fri Feb 11 17:41:55 2022 -0800

        remove lie from argparse docs

    commit 9f70ad224598b60bc2a9fcac36ce431a0271a618
    Author: AJ Slater <[email protected]>
    Date:   Fri Feb 11 17:40:36 2022 -0800

        remove nag behavior. make recursive default false again

    commit 3df145d135f9911b54a5dd6780c44b55d1706e8f
    Author: AJ Slater <[email protected]>
    Date:   Fri Feb 11 16:21:22 2022 -0800

        test webp and webp_is_lossless

    commit 8845d808224e9a0df3a748c7973d2b9c07840247
    Author: AJ Slater <[email protected]>
    Date:   Fri Feb 11 16:21:07 2022 -0800

        use is_lossless to choose cwebp params. fix webp LOSSLESS_FORMATS and CONVERTABLE_FORMATS

    commit a286e548613cae76f1d3e0e377cc1b47d045719f
    Author: AJ Slater <[email protected]>
    Date:   Fri Feb 11 16:18:00 2022 -0800

        sort items in documentation

    commit 061f745e79e4247636ebbaf337a8d9bcb255a05e
    Author: AJ Slater <[email protected]>
    Date:   Fri Feb 11 16:17:27 2022 -0800

        typing hints

    commit 5b84a249ad1cd9c1ef69e9a8abc20106d05f83e1
    Author: AJ Slater <[email protected]>
    Date:   Fri Feb 11 16:17:08 2022 -0800

        lint

    commit c88371ea09ef8407ee106cb3011db0132764ba79
    Author: AJ Slater <[email protected]>
    Date:   Fri Feb 11 16:16:34 2022 -0800

        move pillow enhancements to own module

    commit 0a8ddb7392f7b12b6e3d7a366b36275e399e9b86
    Author: AJ Slater <[email protected]>
    Date:   Fri Feb 11 13:41:57 2022 -0800

        remove cruft

    commit 90ac317d566602efa3325fe967d226192e5d121e
    Author: AJ Slater <[email protected]>
    Date:   Fri Feb 11 13:41:06 2022 -0800

        mark function private

    commit 66b9d7e72817dbb917c56a2e35ef126ec72b4421
    Author: AJ Slater <[email protected]>
    Date:   Fri Feb 11 13:07:17 2022 -0800

        consolidate webp test functions, add png2webp

    commit 9882fbb5d89d4f0cb75eaa24ecca1bdb628d9e14
    Author: AJ Slater <[email protected]>
    Date:   Fri Feb 11 01:12:51 2022 -0800

        remove cruft

    commit 4d705feae0fc21e20f0ea6e65890da8a3f04a6bd
    Author: AJ Slater <[email protected]>
    Date:   Fri Feb 11 01:05:27 2022 -0800

        remove object inheritance

    commit 884a0d311ef0c3531270c6ae9532b015d3d357e7
    Author: AJ Slater <[email protected]>
    Date:   Fri Feb 11 00:31:22 2022 -0800

        lint

    commit f90445dd2a2d22b5871ff58733475041e5614cec
    Author: AJ Slater <[email protected]>
    Date:   Fri Feb 11 00:22:55 2022 -0800

        lint NEWS

    commit 9312bf504948bd5e7b3d501487dcd5b97f10feb0
    Author: AJ Slater <[email protected]>
    Date:   Fri Feb 11 00:17:25 2022 -0800

        ignore TODO

    commit d4f4342a26fdfb0e44a9970a76d36f082a00a66d
    Author: AJ Slater <[email protected]>
    Date:   Fri Feb 11 00:16:30 2022 -0800

        remove dev scripts

    commit a44cf027a985fc0d46fb2311d24ea2fd12ee8dec
    Author: AJ Slater <[email protected]>
    Date:   Fri Feb 11 00:16:03 2022 -0800

        remove eslintcache from git

    commit 8e8b7c8ebd260df4189b8d51dbd6ea6ea9f24dce
    Author: AJ Slater <[email protected]>
    Date:   Thu Feb 10 16:53:44 2022 -0800

        working webp tests. not all cases probably. lots of new linting

    commit c92c42406f52b83572f7868ee6545d8b2a76d8fc
    Author: AJ Slater <[email protected]>
    Date:   Tue Oct 5 14:58:14 2021 -0700

        fix conversion to webp

    commit a143f6e77f86566761aa99b7d6c345b8421c3b1a
    Author: AJ Slater <[email protected]>
    Date:   Tue Oct 5 14:40:12 2021 -0700

        fix -w option help

    commit 276a56e1059593fb2ef61e4b9c09bdd86c6e5b7c
    Author: AJ Slater <[email protected]>
    Date:   Tue Oct 5 14:33:10 2021 -0700

        poetry update and lint

    commit 5748643bae0d9738eaf59a6b36fae96766d7b199
    Author: AJ Slater <[email protected]>
    Date:   Tue Sep 21 20:52:14 2021 -0700

        animated webp sort of working.

    commit 39687e3c5d22b64d39c1817d05a26b5ae0e21961
    Author: AJ Slater <[email protected]>
    Date:   Tue Sep 21 20:46:31 2021 -0700

        fix mypy config

    commit 8efa91f867310ebbae774459c115245c83784774
    Author: AJ Slater <[email protected]>
    Date:   Tue Sep 21 15:22:21 2021 -0700

        webp support. no animated webp support yet.

    commit f17a0ceac6e6883a7399d41cff713641e1834dcc
    Author: AJ Slater <[email protected]>
    Date:   Tue Sep 21 15:13:47 2021 -0700

        update deps

    commit 18f1b312f42224501324e388ef5563e29f8f9428
    Author: AJ Slater <[email protected]>
    Date:   Tue Sep 21 15:08:38 2021 -0700

        add ini lint for setup.cfg

    commit ef7d878419c6740b4d50ed63f7a6c9d2bf0d2ddb
    Author: AJ Slater <[email protected]>
    Date:   Tue Sep 21 15:07:56 2021 -0700

        modern ubuntu. hadolint

    commit 37e23a11a9dd25c98628019a04dfc4984cdefe59
    Author: AJ Slater <[email protected]>
    Date:   Tue Sep 21 14:58:41 2021 -0700

        lint script updates

    commit bc95342eba6258886fa03543ca9439e977d01366
    Author: AJ Slater <[email protected]>
    Date:   Tue Sep 21 14:58:14 2021 -0700

        sortignore script

    * Squashed commit of the following:

    commit fd1474e30f5a57b0cacbf61649c3fdef2ac7808a
    Author: AJ Slater <[email protected]>
    Date:   Mon Feb 28 22:15:33 2022 -0800

        add command line args file

    commit e329c309ca5f514c9a65151aec4c8794fc1f49be
    Author: AJ Slater <[email protected]>
    Date:   Mon Feb 28 22:01:06 2022 -0800

        rename -N to -T

    commit cc2d9dbf6bd504cb09aec34205a39c9e09a302fa
    Author: AJ Slater <[email protected]>
    Date:   Mon Feb 28 21:33:18 2022 -0800

        optimize_after to after

    commit 9533993f8b1bb410525065e98379bf31d9dad33a
    Author: AJ Slater <[email protected]>
    Date:   Sat Feb 26 22:37:44 2022 -0800

        enable handlers with pil2 programs

    commit c8afd8a0a3c87210580fa5e13138b461541a61e3
    Author: AJ Slater <[email protected]>
    Date:   Sat Feb 26 22:35:12 2022 -0800

        use PIL to optimize if no programs available

    commit bf6b3428737ab3a7d3f075ac76fd1aa8e4d8c194
    Author: AJ Slater <[email protected]>
    Date:   Sat Feb 26 16:32:51 2022 -0800

        working containers, webp and conversions with integration tests

    commit f64d0058cde23a1482c810140e78156616a7c811
    Author: AJ Slater <[email protected]>
    Date:   Fri Feb 25 21:59:39 2022 -0800

        fix bit depth offset

    commit ac8dc54de35308b6243ac68c455227afa49e792a
    Author: AJ Slater <[email protected]>
    Date:   Fri Feb 25 14:15:42 2022 -0800

        fix png bit depth offset

    commit 7eb3e4e168739e1806f95f4bb26d34e4273ade2f
    Author: AJ Slater <[email protected]>
    Date:   Fri Feb 25 14:08:24 2022 -0800

        re-optimize preo-optimzed jpg

    commit cc5474faf4190f9096073d7a2c79bde7f207995d
    Author: AJ Slater <[email protected]>
    Date:   Sun Feb 20 20:00:31 2022 -0800

        move more things into unpack common lib

    commit 6d789aa5dc79a429e0666792b3e830fca98d4c00
    Author: AJ Slater <[email protected]>
    Date:   Sun Feb 20 02:21:48 2022 -0800

        new test files

    commit afca8965c15894bb8f68f195db93cbd9c5420589
    Author: AJ Slater <[email protected]>
    Date:   Mon Feb 14 18:02:31 2022 -0800

        extra commit

    commit a10f9c35f89bd31bbde5d656818d528a4e9b9e5a
    Author: AJ Slater <[email protected]>
    Date:   Mon Feb 14 18:02:20 2022 -0800

        container structure fine

    * move import to top

    * webanimated, reform container error handling and available method

    * update news

    * extract is_lossless into a function

    * remove cruft

    * consolidate error handling for handlers

    * refactor stats

    * reuse FORMAT_STR

    * simpler container dir name

    * Squashed commit of the following:

    commit e37d88a7834a65b729024110d0dea29eb88c2fd3
    Author: AJ Slater <[email protected]>
    Date:   Thu Mar 3 12:30:02 2022 -0800

        rename can_handle to identify_format

    commit 825fb0e865667e602b58ef5e868a534b460828f1
    Author: AJ Slater <[email protected]>
    Date:   Thu Mar 3 12:22:16 2022 -0800

        simpler to use two handlers for gif

    commit e73d19c3863f6e23e041903aec190f4c524d04ca
    Author: AJ Slater <[email protected]>
    Date:   Thu Mar 3 12:09:58 2022 -0800

        rename FORMAT & FORMAT_OBJ

    commit f02ebd7db5f4ea3f1f062fa5ebb2bdb675321347
    Author: AJ Slater <[email protected]>
    Date:   Wed Mar 2 22:28:07 2022 -0800

        treat internal programs differently

    commit 28a3b680430a507d54c370103f7e47a5cb2028f7
    Author: AJ Slater <[email protected]>
    Date:   Wed Mar 2 22:18:00 2022 -0800

        remove IMPLIES_RECURSE

    commit 0d088430b4669a389def42e2ba193e51421bbfee
    Author: AJ Slater <[email protected]>
    Date:   Wed Mar 2 22:08:46 2022 -0800

        reorder class methods

    commit d1e615c1a94f4b1baad73514f47e1cbd2f20b2e5
    Author: AJ Slater <[email protected]>
    Date:   Wed Mar 2 22:06:24 2022 -0800

        remove cruft

    commit ac86a44d7a8240b5ca64fa6f920fb16d030652dc
    Author: AJ Slater <[email protected]>
    Date:   Wed Mar 2 22:05:01 2022 -0800

        remove cruft

    commit ee726238d4d5f364f4d357aa42ac7626d264ad26
    Author: AJ Slater <[email protected]>
    Date:   Wed Mar 2 22:04:14 2022 -0800

        dynamic native formats

    commit af4bf19721b8356dcd729a9b80634dbffe4c36c6
    Author: AJ Slater <[email protected]>
    Date:   Wed Mar 2 21:21:48 2022 -0800

        rename self.format to self.input_format

    commit c7c0f44603b1b85b52aea8dc554ee823f056c8da
    Author: AJ Slater <[email protected]>
    Date:   Wed Mar 2 21:01:58 2022 -0800

        more dynamic suffix generation

    * name factory factory

    * remove cruft

    * verify independantly of metadata read. store exif data

    * exif support for handlers

    * exif support for png, also use o5 for optimizing

    * metadata preserve for webp. consolidate pil2webp function

    * bump NEWS

    * icc preservation

    * pillow optimization for jpeg

    * epub support

    * Squashed commit of the following:

    commit 547ec01fe5c1b0fc90f84964bdc0fe4a92bd166b
    Author: AJ Slater <[email protected]>
    Date:   Fri Mar 4 14:44:50 2022 -0800

        bump news

    commit 0a1b689f3bab481c85bb48357190efe4bbd4dd32
    Author: AJ Slater <[email protected]>
    Date:   Fri Mar 4 14:44:31 2022 -0800

        tif support

    commit ecb294fa37fa3c2de6e03de72d2dbb410e574447
    Author: AJ Slater <[email protected]>
    Date:   Fri Mar 4 12:07:16 2022 -0800

        fix container dir suffix dot

    commit 361e1310b98f5db8441eb478158d38022922638e
    Author: AJ Slater <[email protected]>
    Date:   Fri Mar 4 12:06:51 2022 -0800

        remove debug print statement

    * pil2jpeg is not lossless

    * add to comment

    * combine pil2 methods into a superclass method

    * tweak comment

    * reform some variable names

    * more consistent method naming for containers

    * Squashed commit of the following:

    commit 5e0fb4776af2bbe59890a270bb13c27efb2fdd64
    Author: AJ Slater <[email protected]>
    Date:   Mon Mar 7 16:32:48 2022 -0800

        compact timestamps get routine

    commit ed15c4506b994adc895a2718a5c62c9cb666b725
    Author: AJ Slater <[email protected]>
    Date:   Mon Mar 7 16:20:28 2022 -0800

        refactor timestamps

    commit c6664e09a12b943b65587b4282c51f7ce4da3d6d
    Author: AJ Slater <[email protected]>
    Date:   Sat Mar 5 14:57:08 2022 -0800

        move comments

    * Squashed commit of the following:

    commit 3dd8e76ed71a13f0790b51cec8b9234f75694a2a
    Author: AJ Slater <[email protected]>
    Date:   Thu Mar 10 12:41:56 2022 -0800

        one queue per timestamps file. move walk-all_files into run

    commit 8ba764d5bd95a10ec9510675c3d1c3d32284a310
    Author: AJ Slater <[email protected]>
    Date:   Thu Mar 10 12:21:34 2022 -0800

        move exception handling into walk_file. dump timestamp file after completing every directory

    commit f8462df14cb51993e0f171514bc75356b983721a
    Author: AJ Slater <[email protected]>
    Date:   Thu Mar 10 12:03:32 2022 -0800

        handle item method

    commit c9520ee1fcd79515191ada48b4e7ad85b2f6c991
    Author: AJ Slater <[email protected]>
    Date:   Thu Mar 10 11:33:26 2022 -0800

        restore passing timestamps down

    commit 4ef23e005451e5582bd98c042cd1390dbca3f050
    Author: AJ Slater <[email protected]>
    Date:   Thu Mar 10 10:06:22 2022 -0800

        remove passing top_path around. change return types to asyncresult, dirresult, none

    commit cc3f87463ecba21618ae1b5772f98db2a8933fa7
    Author: AJ Slater <[email protected]>
    Date:   Thu Mar 10 09:03:05 2022 -0800

        remove walk_after and move call unpack directly in handler

    commit 1fb0caa7f76b7aac3f31d1449302d79ba9773bd7
    Author: AJ Slater <[email protected]>
    Date:   Wed Mar 9 15:32:16 2022 -0800

        queue system works for unblocking containers. timestamp refactor for non-dir submissions. needs some refactoring

    * bump news

    * change destroy_metadata config variable to keep_metadata

    * Squashed commit of the following:

    commit b772d0770c2772129106f6de66928c300d816cd6
    Author: AJ Slater <[email protected]>
    Date:   Thu Mar 10 21:45:47 2022 -0800

        convert-to is now a list. no more global implied recurse, but containers recurse

    * Squashed commit of the following:

    commit ee7db97aef3a1003c848ef0e883ea60bf86355be
    Author: AJ Slater <[email protected]>
    Date:   Fri Mar 11 16:52:34 2022 -0800

        config in timestamps

    * Squashed commit of the following:

    commit d8577ed56ad31d3d803e30379c3ca6877f56aa25
    Author: AJ Slater <[email protected]>
    Date:   Fri Mar 11 22:09:47 2022 -0800

        ignore globs

    * Squashed commit of the following:

    commit 15694ae4a52b695c321fac7e7ad732446589c407
    Author: AJ Slater <[email protected]>
    Date:   Tue Mar 22 22:34:39 2022 -0700

        remove dependency on timestamps. make timestamps off the default again

    commit 95f7ab272e589fd0351ae2e3d620640f7909b614
    Author: AJ Slater <[email protected]>
    Date:   Tue Mar 22 20:34:07 2022 -0700

        all tests work

    commit cb0be7d9ffc39a57cd07ff3498fa6ddb48f7eeb3
    Author: AJ Slater <[email protected]>
    Date:   Mon Mar 21 18:59:41 2022 -0700

        fix non-relative imports into timestamps. fix old timestamps import

    commit ec1eb4562dc0279e979614a627ba7fe9a65ef8c6
    Author: AJ Slater <[email protected]>
    Date:   Mon Mar 21 16:55:30 2022 -0700

        pytest_config rename test

    commit 1fbe451e821857c51a9b81f14f44eba5a3fd4460
    Author: AJ Slater <[email protected]>
    Date:   Mon Mar 21 16:54:41 2022 -0700

        dump a fake journal test reading

    commit 12c0e0b49cae8c810445db4a8505b3743cd1a0e8
    Author: AJ Slater <[email protected]>
    Date:   Mon Mar 21 16:29:25 2022 -0700

        clean up journal on dump properly

    commit e87844fa03c5f00f427ba8cbdd7c902e1fbac38c
    Author: AJ Slater <[email protected]>
    Date:   Mon Mar 21 15:20:28 2022 -0700

        more timestamps tests

    commit 28e00ae88af93630c8c85c5edb437de06df9669d
    Author: AJ Slater <[email protected]>
    Date:   Mon Mar 21 13:36:17 2022 -0700

        passes simple timestamp tests

    commit 9f18ebbe06d9c8f66826ffeeb4a2f9edff5d21a0
    Author: AJ Slater <[email protected]>
    Date:   Thu Mar 17 14:02:31 2022 -0700

        correctly typed wal stuff

    * fix after param

    * remove cruft

    * fix directory task order, seperaate queue tasks into a file

    * reorg walk initialization

    * output showing conversions

    * use python 3.9 typing

    * fix quiet setting

    * better after parsing

    * list only to caps

    * trap unlink exception

    * handle directory results from bottom up. remove mypy

    * poetry update

    * poetry update

    * don't store timestamps for things inside containers

    * rename tasks

    * Squashed commit of the following:

    commit 74a4a17e6c870924fc97ce65e2dbab48881c7152
    Author: AJ Slater <[email protected]>
    Date:   Thu Mar 24 14:33:08 2022 -0700

        don't deflate images in archives. remove resort. move output to containerhandler.

    commit 9a1f166eb1cb78a9ba17538a5a5b426494453066
    Author: AJ Slater <[email protected]>
    Date:   Thu Mar 24 14:13:15 2022 -0700

        lint

    commit babe920eefe2bc896090d62f079e83816049e898
    Author: AJ Slater <[email protected]>
    Date:   Thu Mar 24 14:13:12 2022 -0700

        rename tasks

    commit 36239c8399995a0ea4e9e2919a4bb7bdfc3c8688
    Author: AJ Slater <[email protected]>
    Date:   Thu Mar 24 14:08:29 2022 -0700

        inline unpack and repack

    * remove old unit tests.

    * lint

    * fix up NEWS

    * clean up old working directories as well as files

    * make working filename even more unique

    * fix TIFF not a default format getting turned on by convert_to

    * package updates

    * make queues private and close pools before writing timestamps

    * use eslint_d in scripts, update pakcaegs

    * version bump to 3.0, update packages

    * bump docker python image in cirlcleci

    * fix permissions on builder. use python3.10

    * don't use sudo. fix speling

    * copy necessary files for install

    * add pyright

    * test before lint

    * add webp dependency

    * update scripts packages and README

    * tests pass on linux

    * combine linux & darwin common tests

    * move dirpath back into Timestamps"

    * fix commands"
    in compose

    * change license

    * use subprocess run

    * cleaner cli calling

    * lint

    * change symlink option name

    * use shutil.which() and check for executable bits, don't run programs

    * colored output

    * factory method for timestamps

    * fix mozjpeg

    * fix config keys for timestamps keys

    * use timestamps factory. do timestamps ignore simpler

    * namespace picopt config

    * Squashed commit of the following:

    commit 62cc6d4ce3016f545d74200da0a85aa397764200
    Author: AJ Slater <[email protected]>
    Date:   Mon May 2 21:15:15 2022 -0700

        cleaner format classes doesn't make duplicate trees

    commit 1306e1321ac1d7de15359cd2d3987ea1271bd8a9
    Author: AJ Slater <[email protected]>
    Date:   Mon May 2 20:33:45 2022 -0700

        bump news

    commit 73960e382b98e940084914d7683937604bb4f62a
    Author: AJ Slater <[email protected]>
    Date:   Mon May 2 20:32:34 2022 -0700

        hacky but working epub fix

    * extra close for animated images

    * cleanup setting formats. add TIFF format don't subtract it

    * linux mozjpeg size

    * newer mozjpeg

    * document newer mozjpeg. update readme.

    * use frozenset

    * Squashed commit of the following:

    commit dedcb80180b978b11c3c3e80b910ca094faead6c
    Author: AJ Slater <[email protected]>
    Date:   Wed May 4 14:27:12 2022 -0700

        pypi treestamps

    commit 1f98040faa23e4ce9ddb89bd5b7871675dababdc
    Author: AJ Slater <[email protected]>
    Date:   Wed May 4 14:17:24 2022 -0700

        fix mounts for circleci

    commit 783248363c0e320febe96cf061f48736bc75d470
    Author: AJ Slater <[email protected]>
    Date:   Wed May 4 14:17:15 2022 -0700

        use current images for circleci

    commit 2486bf4a0bb11928d0bc64da85e3a6d21aa2743c
    Author: AJ Slater <[email protected]>
    Date:   Wed May 4 13:17:54 2022 -0700

        treestamps conversion

    * bump news

    * v3.0.1

    * update treestamps

    * trap repack exceptions

    * v3.0.2

    * v3.0.3

    * v3.0.4

    * better usage examples

    * sorted dirs

    * bump news and version

    * test for existence of timestamp in timestamp tests

    * don't record timestamps for items in containers

    * repack message uses final path not working path

    * don't look for old timestamps in ignore globs

    * alphebetize config

    * v3.0.5

    * fix not skipping files. add skip logging

    * maybe fix webp_animated detection

    * update packages

    * v3.1.2

    * Squashed commit of the following:

    commit 28e5f4a7d1215ae641c26f2b2b0b8d999d32df0c
    Author: AJ Slater <[email protected]>
    Date:   Wed May 18 13:00:19 2022 -0700

        fix deleting working file. add progress dots.

    * lint typing

    * bump version update packages

    * remove print statement

    * Fixed showing total at end. supress program output. change colors by operation

    * better error reporting

    * update packages and fix verbosity count

    * Squashed commit of the following:

    commit 212f653dd6b399e4db878a5a2ed6053452fde6df
    Author: AJ Slater <[email protected]>
    Date:   Wed May 25 14:05:59 2022 -0700

        3.2 apng

    * remove print statements

    * remove debug statements

    * lint

    * v3.2.2 & package updates

    * color help. change bigger color to blue

    * package updates

    * install webp in Dockerfile

    * move isort config to pyproject.toml

    * update confuse. add eradicate

    * ignore pypirc

    * update packages

    * update packages modernize linting

    * clearer headers code for pillow extension

    * refactor pillow extensions

    * switch to shellharden

    * fix identation in readme

    * Squashed commit of the following:

    commit 92daaf1e7ac0c8b0b537637929118cce8d47a82e
    Author: AJ Slater <[email protected]>
    Date:   Tue Nov 1 18:04:39 2022 -0700

        change linux test values

    commit f96bde1a2640a9c89117ea2dd37be12dd88bf946
    Author: AJ Slater <[email protected]>
    Date:   Tue Nov 1 17:04:26 2022 -0700

        fix webp lossless detection

    commit a08ba3af4ffa87a374ab527d38125b18e94bfe9a
    Author: AJ Slater <[email protected]>
    Date:   Tue Nov 1 16:20:33 2022 -0700

        lint

    commit b31e8cd81ad9f2c3b591de02b402e0b32e99696d
    Author: AJ Slater <[email protected]>
    Date:   Tue Nov 1 16:20:26 2022 -0700

        lint

    commit a48d1a24b5927e03777d27c6dc4592d7f517e32f
    Author: AJ Slater <[email protected]>
    Date:   Tue Nov 1 15:02:25 2022 -0700

        fix image header compare

    commit 781d1e4ab93965e7cff138b749b533f12d7ca859
    Author: AJ Slater <[email protected]>
    Date:   Tue Nov 1 14:53:29 2022 -0700

        fix error reporting

    * remove debug print

    * change order of test and lint in ci. use python 3.11

    * update packages

    * fix toml replication

    * detect case insensitive filessystems and be careful about replacing files on them

    * bump version and news

    * speling

    * use ruff for linting

    * update deps

    * remove setup.cfg update deps

    * update deps

    * lint

    * add typing info

    * switch to makefile

    * fix cleanup of temp dir when container fails

    * fix version script for no frontend

    * bump version

    * fix stack trace on config error

    * update deps

    * update deps

    * Squashed commit of the following:

    commit 253cfbca14a5922d87cb21a3f85bec44294f22ee
    Author: AJ Slater <[email protected]>
    Date:   Tue May 9 18:54:56 2023 -0700

        fix build

    commit 6c4f44c6478624a53ba4b3385f4e9a89c402d483
    Author: AJ Slater <[email protected]>
    Date:   Tue May 9 18:35:31 2023 -0700

        update deps

    commit d18c0e69291fcc42d94feb4846399b2198d5fe6b
    Author: AJ Slater <[email protected]>
    Date:   Tue May 9 18:35:27 2023 -0700

        new treestamps new option to not check config on treestamps

    commit 8c357ebd27ade334edc633ea839572bffaa4f8dd
    Author: AJ Slater <[email protected]>
    Date:   Mon May 8 16:29:23 2023 -0700

        use some dataclasses for walk and report

    commit f9136d4176a2a57f967a2497c415a537afbc52a1
    Author: AJ Slater <[email protected]>
    Date:   Mon May 8 15:39:55 2023 -0700

        remove stray print

    commit cb2561314b5a9e1717757679326e31adb58d9cdb
    Author: AJ Slater <[email protected]>
    Date:   Mon May 8 15:39:08 2023 -0700

        move computed config items into a computed namespace instead of prefixing with underscore

    commit 106e06542a7b9238adb9a00c9a8f5453978617de
    Author: AJ Slater <[email protected]>
    Date:   Mon May 8 14:36:35 2023 -0700

        ignore some linting for tests

    commit be5c645f304605c9dd441c57a4394360b0bf5524
    Author: AJ Slater <[email protected]>
    Date:   Mon May 8 14:34:02 2023 -0700

        lint timezeones with now

    commit 2f6f7bd1d8c5004f6e2b84f39bd23739b4ffe2c0
    Author: AJ Slater <[email protected]>
    Date:   Mon May 8 14:25:12 2023 -0700

        cprint in walk.py. optimize report on bytes saved.

    commit 5708e43ef07edd5843c583c733227c633f942121
    Author: AJ Slater <[email protected]>
    Date:   Mon May 8 14:15:22 2023 -0700

        use cprint for normal output so lint flags debug prints

    commit 0e1efbb233e65e0ba7d312ec2e86241c10bb7e97
    Author: AJ Slater <[email protected]>
    Date:   Mon May 8 14:03:01 2023 -0700

        comment

    commit cbc94d6a38eedcfdbe573dd37c4efb4976d61d74
    Author: AJ Slater <[email protected]>
    Date:   Mon May 8 14:02:38 2023 -0700

        refactor where skips happen, move dir skip into walk dir, file skips happend after handle dir

    commit e545efc72fb3d376cbff7539e7e63164d6a2a252
    Author: AJ Slater <[email protected]>
    Date:   Mon May 8 13:51:29 2023 -0700

        fix variable name

    commit 147dd25439c7bd5a0fc8177b93e2b38b7e5289d8
    Author: AJ Slater <[email protected]>
    Date:   Mon May 8 13:51:12 2023 -0700

        use consts for repeat values in test

    commit 0bdc63629254beb6927627444ebde96fbad7bb9a
    Author: AJ Slater <[email protected]>
    Date:   Sun May 7 20:06:55 2023 -0700

        fix webp input_file_format name

    commit 480b082e357b9c75f9cd2f14cebcad2214e55c52
    Author: AJ Slater <[email protected]>
    Date:   Sun May 7 20:06:15 2023 -0700

        trap unidentified image error. fix warning message

    commit dae37e40784e307ae4a6c7a5b0609ce5b81ecf13
    Author: AJ Slater <[email protected]>
    Date:   Sun May 7 20:03:48 2023 -0700

        fix variable name

    commit 49f7546d689134d51156c267758185792a433173
    Author: AJ Slater <[email protected]>
    Date:   Sun May 7 20:03:08 2023 -0700

        fix lingering format name for variables

    commit 99e2b34c66954e7c689997dadcec4701effc62f3
    Author: AJ Slater <[email protected]>
    Date:   Sun May 7 20:02:29 2023 -0700

        allow make to do one test

    commit cfc58f1a0eda5361e74ad5099792165c1eb2ea98
    Author: AJ Slater <[email protected]>
    Date:   Sat May 6 20:22:22 2023 -0700

        add missing init files

    commit 3e82ba617536f874b5bcbee2004f93ad4142ffcc
    Author: AJ Slater <[email protected]>
    Date:   Sat May 6 18:31:38 2023 -0700

        first pass of lint

    * fix build with bin path

    * fix build

    * fix pngout install script package location

    * fix pngout install script again

    * update dockerfile bases

    * remove python 3.11ism

    * use lunar for ubuntu

    * update treestamps

    * fix test for reading wal

    * normalize wal writing to use ts_config as well

    * update treestamps

    * v3.3.3 uses new treestamps

    * bump version

    * Squashed commit of the following:

    commit d3ba8df31fa61604450500e1f4ae0948dd1c779f
    Author: AJ Slater <[email protected]>
    Date:   Thu May 11 15:48:08 2023 -0700

        3.3.4 keep original path extension

    * fix directory skipping

    * update deps

    * deflate64 and rarfile. cffi

    * Squashed commit of the following:

    commit 7af058987c6a36e1b523944af61d872c0b8a3b88
    Author: AJ Slater <[email protected]>
    Date:   Sun May 14 15:34:06 2023 -0700

        don't rar if no unrar

    * remove unrar.cffi support

    * update deps and lint

    * improve cwebp params

    * lint

    * update deps

    * Squashed commit of the following:

    commit 70ec98237334b5ead1ac2bcb1df8d44acb27837a
    Author: AJ Slater <[email protected]>
    Date:   Mon Jan 15 20:59:45 2024 -0800

        webp: -m 6, -q 100 for both lossy and lossless

    commit b31880a5c25d4792d4da45670e07b7d3d98f4842
    Author: AJ Slater <[email protected]>
    Date:   Mon Jan 15 19:57:58 2024 -0800

        update deps and lint

    commit bcb77803b8875636093937f015fae8b4a7755370
    Author: AJ Slater <[email protected]>
    Date:   Wed Aug 16 18:33:28 2023 -0700

        update deps and lint

    commit d0062cbee30504aeb83c8e4cfedf7fc053e7cb8c
    Author: AJ Slater <[email protected]>
    Date:   Mon Jul 10 13:40:10 2023 -0700

        use prettier plugins

    commit b3aa384a5618a2b27d6e912efcb2c2cacceacc01
    Author: AJ Slater <[email protected]>
    Date:   Mon Jul 10 11:33:23 2023 -0700

        update deps and add more eslint plugins. add first step of converge option

    * alphabetize macOS deps

    * fix non zero exit code on success

    * remove webp lossy optimizing. it wasn't

    * mac tests pass. remove unfinished converge stuff. add near_lossless to webp

    * update to mozjpeg 4.1.1 for testing

    * use mantic manticore for testing

    * fix linux test sizes

    * fix more linux tests

    * fix png to webp linux size

    * fix webp size for linux

    * penultimate linux webp size fix

    * possibly final linux test fix

    * version is actually 3.3.7

    * remove cruft

    * remove converge vestiges from config

    * lint

commit cb56ee32665a1555d7075c70c15da95633802cc9
Author: AJ Slater <[email protected]>
Date:   Wed Jan 24 21:19:18 2024 -0800

    lint

commit e5751bebd2ddbfdfd7228595392d2ec219555870
Author: AJ Slater <[email protected]>
Date:   Wed Jan 24 21:18:50 2024 -0800

    remove converge vestiges from config

commit 23befb50dc6ec294368ecf901617cf1e9253b42b
Author: AJ Slater <[email protected]>
Date:   Wed Jan 24 21:18:42 2024 -0800

    remove cruft

commit 42eb827001a81e6c52b5272ed670bd44e8bade5b
Author: AJ Slater <[email protected]>
Date:   Wed Jan 24 21:18:28 2024 -0800

    version is actually 3.3.7

commit 13607e0e49ecbf5eaffae698403edc8bc5837587
Author: AJ Slater <[email protected]>
Date:   Wed Jan 24 21:10:31 2024 -0800

    possibly final linux test fix

commit f7c357be73a4fdf3fb0f65de179666903e7aa6cc
Author: AJ Slater <[email protected]>
Date:   Wed Jan 24 20:49:40 2024 -0800

    penultimate linux webp size fix

commit ea06037de39ab4cb8443b173d6688acd91a75ab6
Author: AJ Slater <[email protected]>
Date:   Wed Jan 24 20:13:20 2024 -0800

    fix webp size for linux

commit 9c9dc0281f655ccad3726ac81cc027d801321f3a
Author: AJ Slater <[email protected]>
Date:   Wed Jan 24 19:47:26 2024 -0800

    fix png to webp linux size

commit b208220a9d057e62b33c4a1389e5c96e5d35a680
Author: AJ Slater <[email protected]>
Date:   Wed Jan 24 19:42:35 2024 -0800

    fix more linux tests

commit 651d205f7e56cff8fe424a4619dfb20f58ae2823
Author: AJ Slater <[email protected]>
Date:   Wed Jan 24 19:35:14 2024 -0800

    fix linux test sizes

commit d2c4490a877e90b91360ea6971e27dd900eb2bfe
Author: AJ Slater <[email protected]>
Date:   Wed Jan 24 19:26:49 2024 -0800

    use mantic manticore for testing

commit 57c217b722b18e8fa67447adeecfd2a1cf21ca11
Author: AJ Slater <[email protected]>
Date:   Wed Jan 24 19:26:39 2024 -0800

    update to mozjpeg 4.1.1 for testing

commit 83bd34d3f6883cd5a42114ee5ac289fe41ba0bb9
Author: AJ Slater <[email protected]>
Date:   Wed Jan 24 19:21:37 2024 -0800

    mac tests pass. remove unfinished converge stuff. add near_lossless to webp

* make webp_animated a container again, but use PIL for demux and remux, remove BEST_ONLY cruft

* add animated png handler and generic animated image handler

* bump news

* update deps

* pngout docs

* fix phrasing in readme

* add warning to readme

…
  • Loading branch information
ajslater authored Jul 24, 2024
1 parent 92fcf97 commit 5339fa5
Show file tree
Hide file tree
Showing 47 changed files with 4,434 additions and 7,241 deletions.
13 changes: 0 additions & 13 deletions .eslintignore

This file was deleted.

4 changes: 4 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# 📰 Picopt News

## v4.0.2

- Fix windows mmap crash. Thanks @Fletcher.

## v4.0.1

- Reduce overzealous png optimization. Provide an option to do that.
Expand Down
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,14 +55,14 @@ conversion to PNG or WebP explicitly.
- Picopt can convert Animated GIF, TIFF, and FLI into Animated PNG or WebP
files.
- Picopt can convert Animated GIF, TIFF, FLI, and PNG into Animated WebP files.
- Picopt can convert MPO to JPEG by stripping secondary images if a primary
image exists. (Experimental)
- Picopt can convert MPO to JPEG by stripping secondary images (often thumbnails
created by cameras) if a primary image exists. (Experimental).
- Picopt can convert RAR files into Zipfiles and CBR files into CBZ files.

Because picopt supports so many lossless image formats, to avoid surprises if
you specify a conversion target, picopt will only convert GIF and PNG images to
the target by default. To convert another format, like BMP, to WEBP you must
specify that you want to read the BMP format _and_ that you want t:qo convert it
specify that you want to read the BMP format _and_ that you want to convert it
to WEBP:

<!-- eslint-skip -->
Expand Down Expand Up @@ -137,7 +137,8 @@ book archive optimization is not turned on by default to prevent surprises.

Picopt requires Python 3.10 or greater installed on whichever system you use.

Picopt is most effective with these binary dependencies installed. We must install these first
Picopt is most effective with these binary dependencies installed. We must
install these first

#### macOS

Expand Down
2 changes: 1 addition & 1 deletion bin/fix-lint-backend.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ bin/sortignore.sh
####################
###### Python ######
###################
poetry run ruff --fix .
poetry run ruff check --fix .
poetry run ruff format .
# poetry run djlint templates --profile=django --reformat

Expand Down
3 changes: 1 addition & 2 deletions bin/lint-backend.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@ set -euxo pipefail
####################
###### Python ######
####################
poetry run ruff .
poetry run ruff format --check .
poetry run ruff check .
poetry run pyright
poetry run vulture .
if [ "$(uname)" = "Darwin" ]; then
Expand Down
249 changes: 107 additions & 142 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,67 @@
import { FlatCompat } from "@eslint/eslintrc";
import js from "@eslint/js";
import arrayFunc from "eslint-plugin-array-func";
// import plugin broken for flag config
// https://github.com/import-js/eslint-plugin-import/issues/2556
//import importPlugin from "eslint-plugin-import";
import eslintConfigPrettier from "eslint-config-prettier";
import eslintPluginArrayFunc from "eslint-plugin-array-func";
import eslintPluginCompat from "eslint-plugin-compat";
import eslintPluginDepend from "eslint-plugin-depend";
import eslintPluginJsonc from "eslint-plugin-jsonc";
import eslintPluginMarkdown from "eslint-plugin-markdown";
import eslintPluginNoSecrets from "eslint-plugin-no-secrets";
// import eslintPluginNoUnsanitized from "eslint-plugin-no-unsanitized";
// https://github.com/mozilla/eslint-plugin-no-unsanitized/issues/241
// import eslintPluginNoUseExtendNative from "eslint-plugin-no-use-extend-native";
// Warnings break circleci build
import eslintPluginPrettier from "eslint-plugin-prettier";
import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended";
import pluginSecurity from "eslint-plugin-security";
import eslintPluginPromise from "eslint-plugin-promise";
import eslintPluginRegexp from "eslint-plugin-regexp";
import eslintPluginSecurity from "eslint-plugin-security";
import eslintPluginSimpleImportSort from "eslint-plugin-simple-import-sort";
import eslintPluginSonarjs from "eslint-plugin-sonarjs";
import eslintPluginToml from "eslint-plugin-toml";
import eslintPluginUnicorn from "eslint-plugin-unicorn";
import eslintPluginYml from "eslint-plugin-yml";
import globals from "globals";

const compat = new FlatCompat();
const FLAT_RECOMMENDED = "flat/recommended";

export default [
{
ignores: [
"!.circleci",
"**/__pycache__/",
"**/*min.css",
"**/*min.js",
"*~",
".git/",
".mypy_cache/",
".pytest_cache/",
".ruff_cache/",
".venv/",
"dist/",
"node_modules/",
"package-lock.json",
"poetry.lock",
"test-results/",
"typings/",
],
},
js.configs.recommended,
eslintPluginArrayFunc.configs.all,
eslintPluginCompat.configs[FLAT_RECOMMENDED],
eslintPluginDepend.configs[FLAT_RECOMMENDED],
...eslintPluginJsonc.configs["flat/recommended-with-jsonc"],
...eslintPluginMarkdown.configs.recommended,
// eslintPluginNoUseExtendNative.configs.recommended,
// eslintPluginNoUnsanitized.configs.recommended,
eslintPluginPrettierRecommended,
eslintPluginPromise.configs[FLAT_RECOMMENDED],
eslintPluginRegexp.configs[FLAT_RECOMMENDED],
eslintPluginSecurity.configs.recommended,
eslintPluginSonarjs.configs.recommended,
...eslintPluginToml.configs[FLAT_RECOMMENDED],
...eslintPluginYml.configs["flat/standard"],
...eslintPluginYml.configs["flat/prettier"],
eslintConfigPrettier, // Best if last
{
languageOptions: {
globals: {
Expand All @@ -22,156 +72,71 @@ export default [
reportUnusedDisableDirectives: "warn",
},
plugins: {
// import: importPlugin,
arrayFunc: eslintPluginArrayFunc,
jsonc: eslintPluginJsonc,
markdown: eslintPluginMarkdown,
"no-secrets": eslintPluginNoSecrets,
// "no-use-extend-native": eslintPluginNoUseExtendNative,
// "no-unsantized": eslintPluginNoUnsanitized,
prettier: eslintPluginPrettier,
promise: eslintPluginPromise,
security: eslintPluginSecurity,
"simple-import-sort": eslintPluginSimpleImportSort,
toml: eslintPluginToml,
unicorn: eslintPluginUnicorn,
yml: eslintPluginYml,
},
rules: {
"array-func/prefer-array-from": "off", // for modern browsers the spread operator, as preferred by unicorn, works fine.
// "import/no-unresolved": ["error", { ignore: ["^[@]"] } ],
"max-params": ["warn", 4],
"no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
"no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
"no-console": "warn",
"no-debugger": "warn",
"no-secrets/no-secrets": "error",
"prettier/prettier": "warn",
"security/detect-object-injection": "off",
"simple-import-sort/exports": "warn",
"simple-import-sort/imports": "warn",
"space-before-function-paren": "off",
"unicorn/prevent-abbreviations": "off",
"unicorn/filename-case": [
"error",
{ case: "kebabCase", ignore: [".*.md"] },
],
/*
...importPlugin.configs["recommended"].rules,
"import/no-unresolved": [
"error",
{
ignore: ["^[@]"],
},
{ case: "kebabCase", ignore: [".*.md", "config_default.yaml"] },
],
*/
"unicorn/prefer-node-protocol": "off",
"unicorn/prevent-abbreviations": "off",
"unicorn/switch-case-braces": ["warn", "avoid"],
},
/*
settings: {
"import/parsers": {
espree: [".js", ".cjs", ".mjs", ".jsx"],
"@typescript-eslint/parser": [".ts"],
},
"import/resolver": {
typescript: true,
node: true,
},
},
{
files: ["**/*.md"],
processor: "markdown/markdown",
rules: {
"prettier/prettier": ["warn", { parser: "markdown" }],
},
*/
},
js.configs.recommended,
arrayFunc.configs.all,
pluginSecurity.configs.recommended,
eslintPluginPrettierRecommended,
...compat.config({
ignorePatterns: [
"*~",
"**/__pycache__",
".git",
"!.circleci",
".mypy_cache",
".pytest_cache",
".ruff_cache",
".venv",
"dist",
"node_modules",
"package-lock.json",
"test-results",
"typings",
],
root: true,
env: {
node: true,
es2024: true,
{
files: ["**/*.md/*.js"], // Will match js code inside *.md files
rules: {
"no-undef": "off",
"no-unused-vars": "off",
},
parserOptions: {
ecmaFeatures: {
impliedStrict: true,
},
ecmaVersion: "latest",
},
{
files: ["**/*.md/*.sh"],
rules: {
"prettier/prettier": ["error", { parser: "sh" }],
},
plugins: [
"eslint-comments",
//"import",
"markdown",
"no-constructor-bind",
"no-secrets",
"no-unsanitized",
"no-use-extend-native",
"optimize-regex",
"promise",
"simple-import-sort",
"sonarjs",
"switch-case",
],
extends: [
// CODE QUALITY
"plugin:sonarjs/recommended",
// LANGS
"plugin:jsonc/recommended-with-jsonc",
"plugin:markdown/recommended",
"plugin:toml/recommended",
"plugin:yml/standard",
"plugin:yml/prettier",
// PRACTICES
"plugin:eslint-comments/recommended",
//"plugin:import/recommended",
"plugin:no-use-extend-native/recommended",
"plugin:optimize-regex/all",
"plugin:promise/recommended",
"plugin:switch-case/recommended",
// SECURITY
"plugin:no-unsanitized/DOM",
],
},
{
files: ["**/*.toml"],
rules: {
"eslint-comments/no-unused-disable": 1,
"no-constructor-bind/no-constructor-bind": "error",
"no-constructor-bind/no-constructor-state": "error",
"no-secrets/no-secrets": "error",
"simple-import-sort/exports": "warn",
"simple-import-sort/imports": "warn",
"switch-case/newline-between-switch-case": "off", // Malfunctioning
"prettier/prettier": ["error", { parser: "toml" }],
},
overrides: [
{
files: ["**/*.md"],
processor: "markdown/markdown",
rules: {
"prettier/prettier": ["error", { parser: "markdown" }],
},
},
{
files: ["**/*.md/*.js"], // Will match js code inside *.md files
rules: {
"no-unused-vars": "off",
"no-undef": "off",
},
},
{
files: ["**/*.md/*.sh"],
rules: {
"prettier/prettier": ["error", { parser: "sh" }],
},
},
{
files: ["*.yaml", "*.yml"],
//parser: "yaml-eslint-parser",
rules: {
"unicorn/filename-case": "off",
},
},
{
files: ["*.toml"],
//parser: "toml-eslint-parser",
rules: {
"prettier/prettier": ["error", { parser: "toml" }],
},
},
{
files: ["*.json", "*.json5", "*.jsonc"],
//parser: "jsonc-eslint-parser",
},
],
}),
},
{
files: ["docker-compose*.yaml"],
rules: {
"yml/no-empty-mapping-value": "off",
},
},
];
Loading

0 comments on commit 5339fa5

Please sign in to comment.