ConfigurationΒΆ

All mdedup options can be set with a configuration file, so recurring setups don’t have to be retyped on each run.

Values are resolved following the precedence chain: command line arguments, then environment variables, then the configuration file, then built-in defaults. A configuration file never overrides what you type on the command line.

The only parameter that cannot come from a configuration file is the list of mail sources: boxes to deduplicate are always provided on the command line, so a stale entry in a forgotten configuration file cannot silently point a bare mdedup call at real mail boxes.

File formats and keysΒΆ

TOML, YAML, JSON and INI files are supported. Keys are the option names in kebab-case, the spelling of the CLI flags: hash-body sets --hash-body. The snake_case spelling of the internal parameter ID (hash_body), as reported by --params and used by the MDEDUP_* environment variables, is accepted too.

Repeatable options are written as lists. The strategies key holds the ordered --strategy chain, and hash-headers the ordered --hash-header list.

# My default configuration file.

[mdedup]
verbosity = "DEBUG"
strategies = ["discard-older", "select-one"]
action = "delete-discarded"
hash-headers = ["Date", "From", "To", "Subject", "Message-ID"]
size-threshold = 1024

Unrecognized keys are rejected: a run aborts with an error naming the offending key, so a typo cannot silently turn into a different deduplication than the one you configured.

LocationΒΆ

The configuration file is searched in this order:

  1. The location passed to --config, which accepts a local path, a glob pattern, or a remote URL.

  2. A pyproject.toml holding a [tool.mdedup] section, looked up from the current directory upward to the nearest VCS root, following the discovery behavior of uv, ruff and mypy.

  3. The default configuration folder, whose location depends on the OS (see the click-extra documentation):

Platform

Folder

macOS

~/Library/Application Support/mdedup/

Unix

~/.config/mdedup/

Windows

C:\Users\<user>\AppData\Roaming\mdedup\

To ignore all configuration files for a run, pass --no-config.

Generate a templateΒΆ

The --export-config option renders the current configuration, defaults included, in the format of your choice (toml, yaml, json, …). Redirect it to a file to bootstrap your own:

$ mdedup --export-config toml
[mdedup]
# input-format =
force-unlock = false
hash-headers = ["Date", "From", "To", "Subject", "MIME-Version", "Content-Type", "Content-Disposition", "User-Agent", "X-Priority", "Message-ID"]
hash-body = "skip"
hash-only = false
cache = false
# cache-path =
strategies = []
time-source = "date-header"
# regexp =
size-threshold = 512
content-threshold = 768
show-diff = false
action = "copy-selected"
# export =
export-format = "mbox"
export-append = false
hardlink-differing = false
dry-run = false
time = false
accessible = false
color = "auto"
no-color = false
progress = true
theme = "dark"
table-format = "rounded-outline"
verbosity = "INFO"
verbose = 0
quiet = 0
tree = false
man = false
jobs = 1

Options without a value are commented out in the TOML export, as TOML has no null type. Combine the flag with other options or environment variables to capture them in the generated file: mdedup --strategy discard-older --export-config toml emits a configuration whose strategies chain is already filled in.

Validate a fileΒΆ

The --validate-config option checks a configuration file against the CLI’s parameters and exits, reporting every unrecognized key at once:

$ mdedup --validate-config ./mdedup.toml
Configuration file ./mdedup.toml is valid.

Environment variablesΒΆ

Every option also reads from an environment variable named after it, prefixed with MDEDUP_: MDEDUP_VERBOSITY, MDEDUP_HASH_BODY, MDEDUP_DRY_RUN, … Environment variables take precedence over the configuration file, but not over the command line.

TroubleshootingΒΆ

The --params option prints all CLI parameters with their value and provenance (COMMANDLINE, ENVIRONMENT, DEFAULT_MAP for configuration file values, or DEFAULT), configuration file included:

$ mdedup --table-format vertical --params
***************************[ 1. row ]***************************
ID                  | mdedup.accessible
Spec.               | --accessible
Class               | click_extra.accessibility.AccessibleOption
Param type          | click.types.BoolParamType
Python type         | bool
Hidden              | ✘
Exposed             | ✘
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_ACCESSIBLE
Default             | False
Is flag             | βœ“
Flag value          | True
Is bool flag        | βœ“
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | False
Source              | DEFAULT
***************************[ 2. row ]***************************
ID                  | mdedup.action
Spec.               | -a, --action [copy-selected|copy-discarded|move-selected|move-discarded|delete-selected|delete-discarded|hardlink-discarded]
Class               | click_extra.parameters.Option
Param type          | click_extra.types.EnumChoice
Python type         | str
Hidden              | ✘
Exposed             | βœ“
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_ACTION
Default             | 'copy-selected'
Is flag             | ✘
Flag value          | 
Is bool flag        | ✘
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | 'copy-selected'
Source              | DEFAULT
***************************[ 3. row ]***************************
ID                  | mdedup.cache
Spec.               | --cache / --no-cache
Class               | click_extra.parameters.Option
Param type          | click.types.BoolParamType
Python type         | bool
Hidden              | ✘
Exposed             | βœ“
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_CACHE
Default             | False
Is flag             | βœ“
Flag value          | True
Is bool flag        | βœ“
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | False
Source              | DEFAULT
***************************[ 4. row ]***************************
ID                  | mdedup.cache_path
Spec.               | --cache-path CACHE_DB_PATH
Class               | click_extra.parameters.Option
Param type          | click.types.Path
Python type         | str
Hidden              | ✘
Exposed             | βœ“
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_CACHE_PATH
Default             | None
Is flag             | ✘
Flag value          | 
Is bool flag        | ✘
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | None
Source              | DEFAULT
***************************[ 5. row ]***************************
ID                  | mdedup.color
Spec.               | --color [auto|always|never]
Class               | click_extra.color.ColorOption
Param type          | click_extra.color.ColorWhenChoice
Python type         | str
Hidden              | ✘
Exposed             | ✘
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_COLOR
Default             | 'auto'
Is flag             | ✘
Flag value          | 'always'
Is bool flag        | ✘
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | 'auto'
Source              | DEFAULT
***************************[ 6. row ]***************************
ID                  | mdedup.config
Spec.               | --config CONFIG_PATH
Class               | click_extra.config.option.ConfigOption
Param type          | click.types.UnprocessedParamType
Python type         | str
Hidden              | ✘
Exposed             | ✘
Allowed in conf?    | ✘
Env. vars.          | MDEDUP_CONFIG
Default             | '/home/runner/.config/mdedup/{*.toml,*.yaml,*.yml,*.json,*.ini,pyproject.toml}'
Is flag             | ✘
Flag value          | 
Is bool flag        | ✘
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | '/home/runner/.config/mdedup/{*.toml,*.yaml,*.yml,*.json,*.ini,pyproject.toml}'
Source              | DEFAULT
***************************[ 7. row ]***************************
ID                  | mdedup.config
Spec.               | --no-config
Class               | click_extra.config.option.NoConfigOption
Param type          | click.types.UnprocessedParamType
Python type         | str
Hidden              | ✘
Exposed             | ✘
Allowed in conf?    | ✘
Env. vars.          | MDEDUP_CONFIG
Default             | None
Is flag             | βœ“
Flag value          | Sentinel.NO_CONFIG
Is bool flag        | ✘
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | None
Source              | DEFAULT
***************************[ 8. row ]***************************
ID                  | mdedup.content_threshold
Spec.               | -C, --content-threshold BYTES
Class               | click_extra.parameters.Option
Param type          | click.types.IntRange
Python type         | int
Hidden              | ✘
Exposed             | βœ“
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_CONTENT_THRESHOLD
Default             | 768
Is flag             | ✘
Flag value          | 
Is bool flag        | ✘
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | 768
Source              | DEFAULT
***************************[ 9. row ]***************************
ID                  | mdedup.dry_run
Spec.               | -n, --dry-run
Class               | click_extra.parameters.Option
Param type          | click.types.BoolParamType
Python type         | bool
Hidden              | ✘
Exposed             | βœ“
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_DRY_RUN
Default             | False
Is flag             | βœ“
Flag value          | True
Is bool flag        | βœ“
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | False
Source              | DEFAULT
***************************[ 10. row ]***************************
ID                  | mdedup.export
Spec.               | -E, --export MAIL_BOX_PATH
Class               | click_extra.parameters.Option
Param type          | click.types.Path
Python type         | str
Hidden              | ✘
Exposed             | βœ“
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_EXPORT
Default             | None
Is flag             | ✘
Flag value          | 
Is bool flag        | ✘
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | None
Source              | DEFAULT
***************************[ 11. row ]***************************
ID                  | mdedup.export_append
Spec.               | --export-append
Class               | click_extra.parameters.Option
Param type          | click.types.BoolParamType
Python type         | bool
Hidden              | ✘
Exposed             | βœ“
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_EXPORT_APPEND
Default             | False
Is flag             | βœ“
Flag value          | True
Is bool flag        | βœ“
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | False
Source              | DEFAULT
***************************[ 12. row ]***************************
ID                  | mdedup.export_config
Spec.               | --export-config FORMAT
Class               | click_extra.config.option.ExportConfigOption
Param type          | click.types.Choice
Python type         | str
Hidden              | ✘
Exposed             | ✘
Allowed in conf?    | ✘
Env. vars.          | MDEDUP_EXPORT_CONFIG
Default             | None
Is flag             | ✘
Flag value          | 
Is bool flag        | ✘
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | None
Source              | DEFAULT
***************************[ 13. row ]***************************
ID                  | mdedup.export_format
Spec.               | -e, --export-format [maildir|mbox|mh|babyl|mmdf|eml]
Class               | click_extra.parameters.Option
Param type          | click_extra.types.EnumChoice
Python type         | str
Hidden              | ✘
Exposed             | βœ“
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_EXPORT_FORMAT
Default             | 'mbox'
Is flag             | ✘
Flag value          | 
Is bool flag        | ✘
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | 'mbox'
Source              | DEFAULT
***************************[ 14. row ]***************************
ID                  | mdedup.force_unlock
Spec.               | -u, --force-unlock
Class               | click_extra.parameters.Option
Param type          | click.types.BoolParamType
Python type         | bool
Hidden              | ✘
Exposed             | βœ“
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_FORCE_UNLOCK
Default             | False
Is flag             | βœ“
Flag value          | True
Is bool flag        | βœ“
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | False
Source              | DEFAULT
***************************[ 15. row ]***************************
ID                  | mdedup.hardlink_differing
Spec.               | --hardlink-differing
Class               | click_extra.parameters.Option
Param type          | click.types.BoolParamType
Python type         | bool
Hidden              | ✘
Exposed             | βœ“
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_HARDLINK_DIFFERING
Default             | False
Is flag             | βœ“
Flag value          | True
Is bool flag        | βœ“
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | False
Source              | DEFAULT
***************************[ 16. row ]***************************
ID                  | mdedup.hash_body
Spec.               | -b, --hash-body [skip|raw|normalized]
Class               | click_extra.parameters.Option
Param type          | click_extra.types.EnumChoice
Python type         | str
Hidden              | ✘
Exposed             | βœ“
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_HASH_BODY
Default             | 'skip'
Is flag             | ✘
Flag value          | 
Is bool flag        | ✘
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | 'skip'
Source              | DEFAULT
***************************[ 17. row ]***************************
ID                  | mdedup.hash_headers
Spec.               | -h, --hash-header Header-ID
Class               | click_extra.parameters.Option
Param type          | click.types.StringParamType
Python type         | list
Hidden              | ✘
Exposed             | βœ“
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_HASH_HEADERS
Default             | ('Date', 'From', 'To', 'Subject', 'MIME-Version', 'Content-Type', 'Content-Disposition', 'User-Agent', 'X-Priority', 'Message-ID')
Is flag             | ✘
Flag value          | 
Is bool flag        | ✘
Multiple            | βœ“
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | ('Date', 'From', 'To', 'Subject', 'MIME-Version', 'Content-Type', 'Content-Disposition', 'User-Agent', 'X-Priority', 'Message-ID')
Source              | DEFAULT
***************************[ 18. row ]***************************
ID                  | mdedup.hash_only
Spec.               | -H, --hash-only
Class               | click_extra.parameters.Option
Param type          | click.types.BoolParamType
Python type         | bool
Hidden              | ✘
Exposed             | βœ“
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_HASH_ONLY
Default             | False
Is flag             | βœ“
Flag value          | True
Is bool flag        | βœ“
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | False
Source              | DEFAULT
***************************[ 19. row ]***************************
ID                  | mdedup.help
Spec.               | --help
Class               | click.core.Option
Param type          | click.types.BoolParamType
Python type         | bool
Hidden              | ✘
Exposed             | ✘
Allowed in conf?    | ✘
Env. vars.          | MDEDUP_HELP
Default             | False
Is flag             | βœ“
Flag value          | True
Is bool flag        | βœ“
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | False
Source              | DEFAULT
***************************[ 20. row ]***************************
ID                  | mdedup.input_format
Spec.               | -i, --input-format [maildir|mbox|mh|babyl|mmdf|eml]
Class               | click_extra.parameters.Option
Param type          | click_extra.types.EnumChoice
Python type         | str
Hidden              | ✘
Exposed             | βœ“
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_INPUT_FORMAT
Default             | None
Is flag             | ✘
Flag value          | 
Is bool flag        | ✘
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | None
Source              | DEFAULT
***************************[ 21. row ]***************************
ID                  | mdedup.jobs
Spec.               | --jobs [auto|max|INTEGER]
Class               | click_extra.execution.JobsOption
Param type          | click_extra.execution.JobCount
Python type         | str
Hidden              | ✘
Exposed             | ✘
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_JOBS
Default             | 1
Is flag             | ✘
Flag value          | 
Is bool flag        | ✘
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | 1
Source              | DEFAULT
***************************[ 22. row ]***************************
ID                  | mdedup.mail_sources
Spec.               | 
Class               | click_extra.parameters.Argument
Param type          | click.types.Path
Python type         | list
Hidden              | 
Exposed             | βœ“
Allowed in conf?    | ✘
Env. vars.          | 
Default             | None
Is flag             | 
Flag value          | 
Is bool flag        | 
Multiple            | ✘
Nargs               | -1
Prompt              | 
Confirmation prompt | 
Value               | None
Source              | DEFAULT
***************************[ 23. row ]***************************
ID                  | mdedup.man
Spec.               | --man
Class               | click_extra.man_page.ManOption
Param type          | click.types.BoolParamType
Python type         | bool
Hidden              | ✘
Exposed             | ✘
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_MAN
Default             | False
Is flag             | βœ“
Flag value          | True
Is bool flag        | βœ“
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | False
Source              | DEFAULT
***************************[ 24. row ]***************************
ID                  | mdedup.no_color
Spec.               | --no-color
Class               | click_extra.color.NoColorOption
Param type          | click.types.BoolParamType
Python type         | bool
Hidden              | ✘
Exposed             | ✘
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_NO_COLOR
Default             | False
Is flag             | βœ“
Flag value          | True
Is bool flag        | βœ“
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | False
Source              | DEFAULT
***************************[ 25. row ]***************************
ID                  | mdedup.params
Spec.               | --params
Class               | click_extra.parameters.ShowParamsOption
Param type          | click.types.BoolParamType
Python type         | bool
Hidden              | ✘
Exposed             | ✘
Allowed in conf?    | ✘
Env. vars.          | MDEDUP_PARAMS
Default             | False
Is flag             | βœ“
Flag value          | True
Is bool flag        | βœ“
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | True
Source              | COMMANDLINE
***************************[ 26. row ]***************************
ID                  | mdedup.progress
Spec.               | --progress / --no-progress
Class               | click_extra.spinner.ProgressOption
Param type          | click.types.BoolParamType
Python type         | bool
Hidden              | ✘
Exposed             | ✘
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_PROGRESS
Default             | True
Is flag             | βœ“
Flag value          | True
Is bool flag        | βœ“
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | True
Source              | DEFAULT
***************************[ 27. row ]***************************
ID                  | mdedup.quiet
Spec.               | -q, --quiet
Class               | click_extra.logging.QuietOption
Param type          | click.types.IntRange
Python type         | int
Hidden              | ✘
Exposed             | ✘
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_QUIET
Default             | 0
Is flag             | ✘
Flag value          | 
Is bool flag        | ✘
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | 0
Source              | DEFAULT
***************************[ 28. row ]***************************
ID                  | mdedup.regexp
Spec.               | -r, --regexp REGEXP
Class               | click_extra.parameters.Option
Param type          | click.types.StringParamType
Python type         | str
Hidden              | ✘
Exposed             | βœ“
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_REGEXP
Default             | None
Is flag             | ✘
Flag value          | 
Is bool flag        | ✘
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | None
Source              | DEFAULT
***************************[ 29. row ]***************************
ID                  | mdedup.show_diff
Spec.               | -d, --show-diff
Class               | click_extra.parameters.Option
Param type          | click.types.BoolParamType
Python type         | bool
Hidden              | ✘
Exposed             | βœ“
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_SHOW_DIFF
Default             | False
Is flag             | βœ“
Flag value          | True
Is bool flag        | βœ“
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | False
Source              | DEFAULT
***************************[ 30. row ]***************************
ID                  | mdedup.size_threshold
Spec.               | -S, --size-threshold BYTES
Class               | click_extra.parameters.Option
Param type          | click.types.IntRange
Python type         | int
Hidden              | ✘
Exposed             | βœ“
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_SIZE_THRESHOLD
Default             | 512
Is flag             | ✘
Flag value          | 
Is bool flag        | ✘
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | 512
Source              | DEFAULT
***************************[ 31. row ]***************************
ID                  | mdedup.strategies
Spec.               | -s, --strategy [select-older|select-oldest|select-newer|select-newest|discard-newest|discard-newer|discard-oldest|discard-older|select-smaller|select-smallest|select-bigger|select-biggest|discard-biggest|discard-bigger|discard-smallest|discard-smaller|select-matching-path|select-non-matching-path|discard-non-matching-path|discard-matching-path|select-one|select-all-but-one|discard-all-but-one|discard-one]
Class               | click_extra.parameters.Option
Param type          | click_extra.types.EnumChoice
Python type         | list
Hidden              | ✘
Exposed             | βœ“
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_STRATEGIES
Default             | None
Is flag             | ✘
Flag value          | 
Is bool flag        | ✘
Multiple            | βœ“
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | None
Source              | DEFAULT
***************************[ 32. row ]***************************
ID                  | mdedup.table_format
Spec.               | --table-format [aligned|asciidoc|colon-grid|csv|csv-excel|csv-excel-tab|csv-unix|double-grid|double-outline|fancy-grid|fancy-outline|github|grid|heavy-grid|heavy-outline|hjson|html|jira|json|json5|jsonc|latex|latex-booktabs|latex-longtable|latex-raw|mediawiki|mixed-grid|mixed-outline|moinmoin|orgtbl|outline|pipe|plain|presto|pretty|psql|rounded-grid|rounded-outline|rst|simple|simple-grid|simple-outline|textile|toml|tsv|unsafehtml|vertical|xml|yaml|youtrack]
Class               | click_extra.table.TableFormatOption
Param type          | click_extra.types.EnumChoice
Python type         | str
Hidden              | ✘
Exposed             | ✘
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_TABLE_FORMAT
Default             | 'rounded-outline'
Is flag             | ✘
Flag value          | 
Is bool flag        | ✘
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | 'vertical'
Source              | COMMANDLINE
***************************[ 33. row ]***************************
ID                  | mdedup.theme
Spec.               | --theme [dark|dracula|light|manpage|monokai|nord|solarized_dark]
Class               | click_extra.theme.ThemeOption
Param type          | click_extra.theme.ThemeChoice
Python type         | str
Hidden              | ✘
Exposed             | ✘
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_THEME
Default             | 'dark'
Is flag             | ✘
Flag value          | 
Is bool flag        | ✘
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | 'dark'
Source              | DEFAULT
***************************[ 34. row ]***************************
ID                  | mdedup.time
Spec.               | --time / --no-time
Class               | click_extra.execution.TimerOption
Param type          | click.types.BoolParamType
Python type         | bool
Hidden              | ✘
Exposed             | ✘
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_TIME
Default             | False
Is flag             | βœ“
Flag value          | True
Is bool flag        | βœ“
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | False
Source              | DEFAULT
***************************[ 35. row ]***************************
ID                  | mdedup.time_source
Spec.               | -t, --time-source [date-header|ctime]
Class               | click_extra.parameters.Option
Param type          | click_extra.types.EnumChoice
Python type         | str
Hidden              | ✘
Exposed             | βœ“
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_TIME_SOURCE
Default             | 'date-header'
Is flag             | ✘
Flag value          | 
Is bool flag        | ✘
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | 'date-header'
Source              | DEFAULT
***************************[ 36. row ]***************************
ID                  | mdedup.tree
Spec.               | --tree
Class               | click_extra.tree.TreeOption
Param type          | click.types.BoolParamType
Python type         | bool
Hidden              | ✘
Exposed             | ✘
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_TREE
Default             | False
Is flag             | βœ“
Flag value          | True
Is bool flag        | βœ“
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | False
Source              | DEFAULT
***************************[ 37. row ]***************************
ID                  | mdedup.validate_config
Spec.               | --validate-config FILE
Class               | click_extra.config.option.ValidateConfigOption
Param type          | click.types.Path
Python type         | str
Hidden              | ✘
Exposed             | ✘
Allowed in conf?    | ✘
Env. vars.          | MDEDUP_VALIDATE_CONFIG
Default             | None
Is flag             | ✘
Flag value          | 
Is bool flag        | ✘
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | None
Source              | DEFAULT
***************************[ 38. row ]***************************
ID                  | mdedup.verbose
Spec.               | -v, --verbose
Class               | click_extra.logging.VerboseOption
Param type          | click.types.IntRange
Python type         | int
Hidden              | ✘
Exposed             | ✘
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_VERBOSE
Default             | 0
Is flag             | ✘
Flag value          | 
Is bool flag        | ✘
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | 0
Source              | DEFAULT
***************************[ 39. row ]***************************
ID                  | mdedup.verbosity
Spec.               | --verbosity LEVEL
Class               | click_extra.logging.VerbosityOption
Param type          | click_extra.types.EnumChoice
Python type         | str
Hidden              | ✘
Exposed             | ✘
Allowed in conf?    | βœ“
Env. vars.          | MDEDUP_VERBOSITY
Default             | 'INFO'
Is flag             | ✘
Flag value          | 
Is bool flag        | ✘
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | 'INFO'
Source              | DEFAULT_MAP
***************************[ 40. row ]***************************
ID                  | mdedup.version
Spec.               | --version
Class               | click_extra.version.VersionOption
Param type          | click.types.BoolParamType
Python type         | bool
Hidden              | ✘
Exposed             | ✘
Allowed in conf?    | ✘
Env. vars.          | MDEDUP_VERSION
Default             | False
Is flag             | βœ“
Flag value          | True
Is bool flag        | βœ“
Multiple            | ✘
Nargs               | 1
Prompt              | 
Confirmation prompt | ✘
Value               | False
Source              | DEFAULT