lsseq 4.1.0__tar.gz → 4.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  3-Clause BSD License
2
2
 
3
- Copyright (c) 2008-2025, James Philip Rowell,
3
+ Copyright (c) 2008-2026, James Philip Rowell,
4
4
  Alpha Eleven Incorporated
5
5
  www.alpha-eleven.com
6
6
  All rights reserved.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lsseq
3
- Version: 4.1.0
3
+ Version: 4.3.0
4
4
  Summary: ls-like command for image-sequences
5
5
  Home-page: https://github.com/jrowellfx/lsseq
6
6
  Author: James Philip Rowell
@@ -84,7 +84,7 @@ however it can print sequences in a variety of formats useful for `nuke`,
84
84
  bbb.97-103@@@.jpg
85
85
  $ rv `lsseq -f rv`
86
86
  <rv launches with sequence bbb>
87
- $ rv -f nuke
87
+ $ lsseq -f nuke
88
88
  bbb.%03d.jpg 97-103
89
89
  $ lsseq -f glob
90
90
  bbb.[0-9][0-9][0-9].jpg
@@ -95,7 +95,7 @@ however it can print sequences in a variety of formats useful for `nuke`,
95
95
  python3 -m pip install lsseq --upgrade
96
96
  ```
97
97
 
98
- There is additional installation-information below in an
98
+ There is additional installation-information in an
99
99
  [addendum](https://github.com/jrowellfx/lsseq#addendum---more-on-installing-command-line-tools)
100
100
  below with a helpful technique for installing `lsseq` system-wide.
101
101
 
@@ -326,6 +326,213 @@ EXIT_LSSEQ_PADDING_WARNING = 8 # warning - two images with same name, same fram
326
326
  EXIT_CD_PERMISSION_WARNING = 16 # warning - recursive descent blocked - no execute permission on dir
327
327
  ```
328
328
 
329
+ ## `lsseq --help`
330
+ A full listing of all the command-line options follows, as displayed when running `lsseq --help`.
331
+
332
+ ```
333
+ usage: lsseq [-h | --help] [OPTION]... [FILE]...
334
+
335
+ List directory contents like /bin/ls (see LS(1)) except condense
336
+ image sequences to one entry each. Filenames that are part of image
337
+ sequences are assumed to be of the form:
338
+
339
+ <descriptiveName>.<frameNum>.<imgExtension>
340
+
341
+ where <imgExtension> is drawn from a default list of image extensions
342
+ (displayed with option --img-ext) or alternatively from the environment
343
+ variable LSSEQ_IMAGE_EXTENSION which should contain a colon separated
344
+ list of image file extensions.
345
+
346
+ lsseq first lists all non-image-sequence files followed by the
347
+ list of image sequences as such:
348
+
349
+ $ lsseq
350
+ [output of /bin/ls minus image sequences]
351
+ [list of images sequences]
352
+
353
+ positional arguments:
354
+ FILE file names
355
+
356
+ miscellaneous options:
357
+ --help, -h show this help message and exit
358
+ --version show program's version number and exit
359
+ --silent, --quiet suppress error and warning messages.
360
+ -- end of options, all subsequent arguments are
361
+ positional arguments.
362
+
363
+ sequence interpretation:
364
+ --split-sequence prints sequences with missing frames as separate
365
+ sequences as if there are multiple sequences with the
366
+ same name, but with different frame ranges. Note: this
367
+ option only affects the printing of a sequence, not in
368
+ how sequence times are calculated. In other words,
369
+ sorting by time might not produce the results you
370
+ would expect when splitting sequences with this
371
+ option.
372
+ --no-split-sequence consider frames with the same name as all being part
373
+ of the same sequence. [default]
374
+ --strict-num-separator, -s
375
+ strictly enforce the use of '.' (dot) as a separator
376
+ between the descriptiveName and frameNumber when
377
+ looking to interpret filenames as image sequences.
378
+ i.e., <descriptiveName>.<frameNum>.<imgExtension>
379
+ (also see --loose-num-separator) [default]
380
+ --loose-num-separator, -l
381
+ allow the use of '_' (underscore), in addition to '.'
382
+ (dot) as a separator between the descriptiveName and
383
+ frameNumber when looking to interpret filenames as
384
+ image sequences. i.e.,
385
+ <descriptiveName>_<frameNum>.<imgExtension> (also see
386
+ --strict-num-separator)
387
+
388
+ display of error frames:
389
+ --show-missing, -m show list of missing frames as 'm:[<list>]' [default]
390
+ --skip-missing, -M do not show list of missing frames.
391
+ --show-zero, -z show list of zero length images as 'z:[<list>]'
392
+ [default]
393
+ --skip-zero, -Z do not show list of zero length images.
394
+ --show-bad-frames, -b
395
+ lists potentially bad frames based on the minimum size
396
+ of a good frame (see --good-frame-min-size). Reported
397
+ as 'b:[<list>]'
398
+ --skip-bad-frames, -B
399
+ do not show list of potentially bad frames. [default]
400
+ --good-frame-min-size BYTES
401
+ any frame size less than BYTES is a bad frame. Short
402
+ forms for byte sizes are accepted as in '1K' (i.e.,
403
+ 1024) or '1.5K' for example. [default: 512]
404
+ --show-bad-padding report badly padded frame numbers which occurs when a
405
+ number is padded but shouldn't be, or isn't padded but
406
+ it should be. Reported as 'p:[<list>]' [default]
407
+ --skip-bad-padding do not show list of badly padded frames.
408
+ --combine-lists, -c combine the lists of zero, missing and bad frames into
409
+ one list. Reported as 'e:[<list>]'
410
+ --no-combine-lists don't combine the error lists [default].
411
+ --no-error-lists, -n Skip printing ALL error lists. Note: Setting --show-
412
+ bad-padding (for example) AFTER this option on the
413
+ command line has the effect of ONLY showing the bad-
414
+ padding error list
415
+
416
+ sequence-category filters:
417
+ --img-ext, -i print list of image, cache and movie file extensions
418
+ and exit.
419
+ --list-all-files list all sequences plus regular /bin/ls output.
420
+ [default]
421
+ --only-sequences, -o omit any regular /bin/ls output, only list sequences.
422
+ --only-images, -O strictly list only image sequences (i.e., no movies or
423
+ caches).
424
+ --not-images omit image files from being considered as sequences.
425
+ Image files will be listed with regular /bin/ls output
426
+ unless --only-sequences has been specified on the
427
+ command line.
428
+ --only-movies strictly list only movies (i.e., no images or caches).
429
+ --not-movies omit movies from being considered as sequences. movie
430
+ files will be listed with regular /bin/ls output
431
+ unless --only-sequences has been specified on the
432
+ command line.
433
+ --only-caches strictly list only cache sequences (i.e., no images or
434
+ movies).
435
+ --not-caches omit caches from being considered as sequences. cache
436
+ files will be listed with regular /bin/ls output
437
+ unless --only-sequences has been specified on the
438
+ command line.
439
+
440
+ sequence display-modifiers:
441
+ --format FORMAT, -f FORMAT
442
+ list image sequences in various formats. The choices
443
+ are 'native' (default), 'nuke', 'rv', 'shake', 'glob',
444
+ 'mplay', and 'houdini'. Note that glob prints correct
445
+ results only if the frame numbers are padded. Further
446
+ note that reporting of missing/zero/bad/etc. frames
447
+ (e.g. --show-missing) only happens with 'native'
448
+ format.
449
+ --prepend-path-abs, -p
450
+ prepend the absolute path name to the image name. This
451
+ option implies the option --only-sequences and also
452
+ suppresses printing directory name headers when
453
+ listing directory contents.
454
+ --prepend-path-rel, -P
455
+ prepend the relative path name to the image name. This
456
+ option implies the option --only-sequences and will
457
+ also suppress printing directory name headers when
458
+ listing directory contents.
459
+ --extremes, -e only list the first and last frame of an image or
460
+ cache-sequence on a separate line each. This option
461
+ implies --prepend-path-abs (unless --prepend-path-rel
462
+ is explicitly specified) as well as --only-sequences
463
+ and --not-movies.
464
+
465
+ sequence sorting and display:
466
+ --recursive, -R list subdirectories recursively.
467
+ --reverse, -r reverse order while sorting.
468
+ --sort-by-time, -t sort by modification time, the default comparison time
469
+ is between the most recently modified (newest) frames
470
+ in each sequence. (see --time) (see LS(1))
471
+ --time FRAME_AGE which frame in the sequence to use to compare times
472
+ between sequences when sorting by time. The possible
473
+ values for 'FRAME_AGE' are 'oldest', 'median' and
474
+ 'newest'. [default: 'newest']
475
+ --global-sort-by-time, -G
476
+ when using either --prepend-path-abs or --prepend-
477
+ path-rel then this option will sort ALL sequences by
478
+ time compared to each other, as opposed to only
479
+ sorting sequences by time within their common
480
+ directory. If the above conditions are NOT met, then
481
+ this option is simply ignored.
482
+ --only-show TENSE [CC]YYMMDD[-hh[mm[ss]]]
483
+ where TENSE is either 'before' or 'since'; only list
484
+ sequences up to (and including) or after (and
485
+ including) the time specified. The --time argument
486
+ specifies which frame to use for the cutoff
487
+ comparison. The optional CC (century) defaults to the
488
+ current century. The optional '-hh' (hours), 'mm'
489
+ (minutes) or 'ss' (seconds) default to zero if not
490
+ specified.
491
+
492
+ symbolic-link handling:
493
+ Control for whether or not to follow symbolic links to
494
+ the final target of files and/or directories. Regardless,
495
+ lsseq shall always write the name of the link itself and
496
+ not the file referenced by the link.
497
+
498
+ --dereference-command-line, -H
499
+ only follow symbolic links of files and directories
500
+ listed on the command line. [default]
501
+ --dereference, -L follow all symbolic links to the final target of files
502
+ and directories.
503
+ --no-dereference do not follow any symbolic links.
504
+ --dereference-command-line-symlink-to-dir
505
+ only follow each command line symbolic link that
506
+ points to a directory, (i.e. do not follow links to
507
+ files).
508
+ --dereference-symlink-to-dir
509
+ only follow all symbolic links that point to
510
+ directories, (i.e. do not follow links to files).
511
+ --no-dereference-dir do not follow any symbolic links to directories.
512
+ --dereference-command-line-symlink-to-file
513
+ only follow each command line symbolic link that
514
+ points to a regular file, (i.e. do not follow links to
515
+ directories).
516
+ --dereference-symlink-to-file
517
+ only follow all symbolic links that point to regular
518
+ files, (i.e. do not follow links to directories).
519
+ --no-dereference-file
520
+ do not follow any symbolic links to regular files.
521
+
522
+ LS(1) control for non-sequences:
523
+ --single, -1 list one non-sequence entry per line (see LS(1))
524
+ --all, -a do not ignore entries starting with '.' while omitting
525
+ implied '.' and '..' directories (see LS(1) --almost-
526
+ all)
527
+ --by-columns, -C list non-sequence entries by columns (see LS(1))
528
+ --by-rows, -x list non-sequence entries by lines instead of by
529
+ columns (see LS(1))
530
+ --directory, -d list directory entries instead of contents, and do not
531
+ follow symbolic links (see LS(1))
532
+ --classify, -F append indicator (one of */=>@|) to entries, and do
533
+ not follow symbolic links. (see LS(1))
534
+ ```
535
+
329
536
  ## Addendum - more on installing command-line tools
330
537
 
331
538
  Here's the process that I've followed to install `lsseq`, as well as my other
@@ -352,7 +559,7 @@ so that they are accessible to all users. This works on both MacOS and Linux.
352
559
  # ln -s /usr/local/venv/bin/fixseqpadding /usr/local/bin/fixseqpadding
353
560
  # exit
354
561
  $ lsseq --version
355
- 4.1.0
562
+ 4.3.0
356
563
  ```
357
564
 
358
565
  At this point any user should be able to run any of the commands linked in the example above.
@@ -55,7 +55,7 @@ however it can print sequences in a variety of formats useful for `nuke`,
55
55
  bbb.97-103@@@.jpg
56
56
  $ rv `lsseq -f rv`
57
57
  <rv launches with sequence bbb>
58
- $ rv -f nuke
58
+ $ lsseq -f nuke
59
59
  bbb.%03d.jpg 97-103
60
60
  $ lsseq -f glob
61
61
  bbb.[0-9][0-9][0-9].jpg
@@ -66,7 +66,7 @@ however it can print sequences in a variety of formats useful for `nuke`,
66
66
  python3 -m pip install lsseq --upgrade
67
67
  ```
68
68
 
69
- There is additional installation-information below in an
69
+ There is additional installation-information in an
70
70
  [addendum](https://github.com/jrowellfx/lsseq#addendum---more-on-installing-command-line-tools)
71
71
  below with a helpful technique for installing `lsseq` system-wide.
72
72
 
@@ -297,6 +297,213 @@ EXIT_LSSEQ_PADDING_WARNING = 8 # warning - two images with same name, same fram
297
297
  EXIT_CD_PERMISSION_WARNING = 16 # warning - recursive descent blocked - no execute permission on dir
298
298
  ```
299
299
 
300
+ ## `lsseq --help`
301
+ A full listing of all the command-line options follows, as displayed when running `lsseq --help`.
302
+
303
+ ```
304
+ usage: lsseq [-h | --help] [OPTION]... [FILE]...
305
+
306
+ List directory contents like /bin/ls (see LS(1)) except condense
307
+ image sequences to one entry each. Filenames that are part of image
308
+ sequences are assumed to be of the form:
309
+
310
+ <descriptiveName>.<frameNum>.<imgExtension>
311
+
312
+ where <imgExtension> is drawn from a default list of image extensions
313
+ (displayed with option --img-ext) or alternatively from the environment
314
+ variable LSSEQ_IMAGE_EXTENSION which should contain a colon separated
315
+ list of image file extensions.
316
+
317
+ lsseq first lists all non-image-sequence files followed by the
318
+ list of image sequences as such:
319
+
320
+ $ lsseq
321
+ [output of /bin/ls minus image sequences]
322
+ [list of images sequences]
323
+
324
+ positional arguments:
325
+ FILE file names
326
+
327
+ miscellaneous options:
328
+ --help, -h show this help message and exit
329
+ --version show program's version number and exit
330
+ --silent, --quiet suppress error and warning messages.
331
+ -- end of options, all subsequent arguments are
332
+ positional arguments.
333
+
334
+ sequence interpretation:
335
+ --split-sequence prints sequences with missing frames as separate
336
+ sequences as if there are multiple sequences with the
337
+ same name, but with different frame ranges. Note: this
338
+ option only affects the printing of a sequence, not in
339
+ how sequence times are calculated. In other words,
340
+ sorting by time might not produce the results you
341
+ would expect when splitting sequences with this
342
+ option.
343
+ --no-split-sequence consider frames with the same name as all being part
344
+ of the same sequence. [default]
345
+ --strict-num-separator, -s
346
+ strictly enforce the use of '.' (dot) as a separator
347
+ between the descriptiveName and frameNumber when
348
+ looking to interpret filenames as image sequences.
349
+ i.e., <descriptiveName>.<frameNum>.<imgExtension>
350
+ (also see --loose-num-separator) [default]
351
+ --loose-num-separator, -l
352
+ allow the use of '_' (underscore), in addition to '.'
353
+ (dot) as a separator between the descriptiveName and
354
+ frameNumber when looking to interpret filenames as
355
+ image sequences. i.e.,
356
+ <descriptiveName>_<frameNum>.<imgExtension> (also see
357
+ --strict-num-separator)
358
+
359
+ display of error frames:
360
+ --show-missing, -m show list of missing frames as 'm:[<list>]' [default]
361
+ --skip-missing, -M do not show list of missing frames.
362
+ --show-zero, -z show list of zero length images as 'z:[<list>]'
363
+ [default]
364
+ --skip-zero, -Z do not show list of zero length images.
365
+ --show-bad-frames, -b
366
+ lists potentially bad frames based on the minimum size
367
+ of a good frame (see --good-frame-min-size). Reported
368
+ as 'b:[<list>]'
369
+ --skip-bad-frames, -B
370
+ do not show list of potentially bad frames. [default]
371
+ --good-frame-min-size BYTES
372
+ any frame size less than BYTES is a bad frame. Short
373
+ forms for byte sizes are accepted as in '1K' (i.e.,
374
+ 1024) or '1.5K' for example. [default: 512]
375
+ --show-bad-padding report badly padded frame numbers which occurs when a
376
+ number is padded but shouldn't be, or isn't padded but
377
+ it should be. Reported as 'p:[<list>]' [default]
378
+ --skip-bad-padding do not show list of badly padded frames.
379
+ --combine-lists, -c combine the lists of zero, missing and bad frames into
380
+ one list. Reported as 'e:[<list>]'
381
+ --no-combine-lists don't combine the error lists [default].
382
+ --no-error-lists, -n Skip printing ALL error lists. Note: Setting --show-
383
+ bad-padding (for example) AFTER this option on the
384
+ command line has the effect of ONLY showing the bad-
385
+ padding error list
386
+
387
+ sequence-category filters:
388
+ --img-ext, -i print list of image, cache and movie file extensions
389
+ and exit.
390
+ --list-all-files list all sequences plus regular /bin/ls output.
391
+ [default]
392
+ --only-sequences, -o omit any regular /bin/ls output, only list sequences.
393
+ --only-images, -O strictly list only image sequences (i.e., no movies or
394
+ caches).
395
+ --not-images omit image files from being considered as sequences.
396
+ Image files will be listed with regular /bin/ls output
397
+ unless --only-sequences has been specified on the
398
+ command line.
399
+ --only-movies strictly list only movies (i.e., no images or caches).
400
+ --not-movies omit movies from being considered as sequences. movie
401
+ files will be listed with regular /bin/ls output
402
+ unless --only-sequences has been specified on the
403
+ command line.
404
+ --only-caches strictly list only cache sequences (i.e., no images or
405
+ movies).
406
+ --not-caches omit caches from being considered as sequences. cache
407
+ files will be listed with regular /bin/ls output
408
+ unless --only-sequences has been specified on the
409
+ command line.
410
+
411
+ sequence display-modifiers:
412
+ --format FORMAT, -f FORMAT
413
+ list image sequences in various formats. The choices
414
+ are 'native' (default), 'nuke', 'rv', 'shake', 'glob',
415
+ 'mplay', and 'houdini'. Note that glob prints correct
416
+ results only if the frame numbers are padded. Further
417
+ note that reporting of missing/zero/bad/etc. frames
418
+ (e.g. --show-missing) only happens with 'native'
419
+ format.
420
+ --prepend-path-abs, -p
421
+ prepend the absolute path name to the image name. This
422
+ option implies the option --only-sequences and also
423
+ suppresses printing directory name headers when
424
+ listing directory contents.
425
+ --prepend-path-rel, -P
426
+ prepend the relative path name to the image name. This
427
+ option implies the option --only-sequences and will
428
+ also suppress printing directory name headers when
429
+ listing directory contents.
430
+ --extremes, -e only list the first and last frame of an image or
431
+ cache-sequence on a separate line each. This option
432
+ implies --prepend-path-abs (unless --prepend-path-rel
433
+ is explicitly specified) as well as --only-sequences
434
+ and --not-movies.
435
+
436
+ sequence sorting and display:
437
+ --recursive, -R list subdirectories recursively.
438
+ --reverse, -r reverse order while sorting.
439
+ --sort-by-time, -t sort by modification time, the default comparison time
440
+ is between the most recently modified (newest) frames
441
+ in each sequence. (see --time) (see LS(1))
442
+ --time FRAME_AGE which frame in the sequence to use to compare times
443
+ between sequences when sorting by time. The possible
444
+ values for 'FRAME_AGE' are 'oldest', 'median' and
445
+ 'newest'. [default: 'newest']
446
+ --global-sort-by-time, -G
447
+ when using either --prepend-path-abs or --prepend-
448
+ path-rel then this option will sort ALL sequences by
449
+ time compared to each other, as opposed to only
450
+ sorting sequences by time within their common
451
+ directory. If the above conditions are NOT met, then
452
+ this option is simply ignored.
453
+ --only-show TENSE [CC]YYMMDD[-hh[mm[ss]]]
454
+ where TENSE is either 'before' or 'since'; only list
455
+ sequences up to (and including) or after (and
456
+ including) the time specified. The --time argument
457
+ specifies which frame to use for the cutoff
458
+ comparison. The optional CC (century) defaults to the
459
+ current century. The optional '-hh' (hours), 'mm'
460
+ (minutes) or 'ss' (seconds) default to zero if not
461
+ specified.
462
+
463
+ symbolic-link handling:
464
+ Control for whether or not to follow symbolic links to
465
+ the final target of files and/or directories. Regardless,
466
+ lsseq shall always write the name of the link itself and
467
+ not the file referenced by the link.
468
+
469
+ --dereference-command-line, -H
470
+ only follow symbolic links of files and directories
471
+ listed on the command line. [default]
472
+ --dereference, -L follow all symbolic links to the final target of files
473
+ and directories.
474
+ --no-dereference do not follow any symbolic links.
475
+ --dereference-command-line-symlink-to-dir
476
+ only follow each command line symbolic link that
477
+ points to a directory, (i.e. do not follow links to
478
+ files).
479
+ --dereference-symlink-to-dir
480
+ only follow all symbolic links that point to
481
+ directories, (i.e. do not follow links to files).
482
+ --no-dereference-dir do not follow any symbolic links to directories.
483
+ --dereference-command-line-symlink-to-file
484
+ only follow each command line symbolic link that
485
+ points to a regular file, (i.e. do not follow links to
486
+ directories).
487
+ --dereference-symlink-to-file
488
+ only follow all symbolic links that point to regular
489
+ files, (i.e. do not follow links to directories).
490
+ --no-dereference-file
491
+ do not follow any symbolic links to regular files.
492
+
493
+ LS(1) control for non-sequences:
494
+ --single, -1 list one non-sequence entry per line (see LS(1))
495
+ --all, -a do not ignore entries starting with '.' while omitting
496
+ implied '.' and '..' directories (see LS(1) --almost-
497
+ all)
498
+ --by-columns, -C list non-sequence entries by columns (see LS(1))
499
+ --by-rows, -x list non-sequence entries by lines instead of by
500
+ columns (see LS(1))
501
+ --directory, -d list directory entries instead of contents, and do not
502
+ follow symbolic links (see LS(1))
503
+ --classify, -F append indicator (one of */=>@|) to entries, and do
504
+ not follow symbolic links. (see LS(1))
505
+ ```
506
+
300
507
  ## Addendum - more on installing command-line tools
301
508
 
302
509
  Here's the process that I've followed to install `lsseq`, as well as my other
@@ -323,7 +530,7 @@ so that they are accessible to all users. This works on both MacOS and Linux.
323
530
  # ln -s /usr/local/venv/bin/fixseqpadding /usr/local/bin/fixseqpadding
324
531
  # exit
325
532
  $ lsseq --version
326
- 4.1.0
533
+ 4.3.0
327
534
  ```
328
535
 
329
536
  At this point any user should be able to run any of the commands linked in the example above.