Migrating from older versions#
First of all, thank you for being a long time user of organize
!
I tried to keep the amount of breaking changes small but could not avoid them completely. Feel free to pin organize whatever version you need, but then you're missing the party.
Please open a issue on Github if you need help migrating your config file!
Migrating from v2 to v3#
Locations#
In organize v3 remote filesystems are no longer supported. You have to remove all
filesystem
parameters from your config and cannot longer use pyfilesystem URLs
your location
.
Placeholders#
- Use
{now()}
instead of{now}
. - Use
{utcnow()}
instead of{utcnow}
. - The placeholders
{fs}
and{fs_path}
are no longer available.
Command line interface#
The command line interface changed quite a bit! Update any scripts using the CLI to the new options:
organize check --debug
becomesorganize debug
organize reveal
becomesorganize show --reveal
organize reveal --path
becomesorganize show --path
organize schema
is not longer supported.- The already deprecated
--config-file
option is now removed.
That's it. If you encounter any other bugs or problems during the migration, please reach out!
Migrating from v1 to v2#
Folders#
Folders have become Locations in organize v2.
folders
must be renamed tolocations
in your config.- REMOVED: The glob syntax (
/Docs/**/*.png
). See Location options. - REMOVED: The exclamation mark exclude syntax (
! ~/Desktop/exclude
). See Location options. - All keys (filter names, action names, option names) now must be lowercase.
Placeholders#
organize v2 uses the Jinja template engine. You may need to change some of your placeholders.
{basedir}
is no longer available.- You have to replace undocumented placeholders like this:
"{created.year}-{created.month:02}-{created.day:02}"
With this:
"{created.strftime('%Y-%m-%d')}"
If you need to left pad other numbers you can now use the following syntax:
"{'%02d' % your_variable}"
# or
"{ '{:02}'.format(your_variable) }"
Filters#
filename
is renamed toname
.filesize
is renamed tosize
.created
no longer accepts a timezone and uses the local timezone by default.lastmodified
no longer accepts a timezone and uses the local timezone by default.extension
lower
andupper
are now functions and must be called like this:"{extension.upper()}"
and"{extension.lower()}"
.
Actions#
The copy, move and rename actions got a whole lot more powerful. You now have several conflict options and can specify exactly how a file should be renamed in case of a conflict.
This means you might need to change your config to use the new parameters.
copy
arguments changed to support conflict resolution options.move
arguments changed to support conflict resolution options.rename
arguments changed to support conflict resolution options.
Example:
rules:
- folders: ~/Desktop
filters:
- extension: pdf
actions:
- move:
dest: ~/Documents/PDFs/
overwrite: false
counter_seperator: "-"
becomes (organize v2):
rules:
- locations: ~/Desktop
filters:
- extension: pdf
actions:
- move:
dest: ~/Documents/PDFs/
on_conflict: rename_new
rename_template: "{name}-{counter}{extension}"
If you used move
, copy
or rename
without arguments, nothing changes for you.
Settings#
The system_files
setting has been removed. In order to include system files in your
search, overwrite the default system_exclude_files
with an empty list:
rules:
- locations:
- path: ~/Desktop/
system_exclude_files: []
system_exclude_dirs: []
filters:
- name: .DS_Store
actions:
- trash
That's it. Again, feel free to open a issue if you have trouble migrating your config.