Commit graph

207 commits

Author SHA1 Message Date
2a9b2cd095 Add methods PDB.get_thing_count for all thing types. 2020-09-11 23:51:57 -07:00
cfb48a8d11 Add disclaimer about yield order to get_things_by_id. 2020-09-11 22:13:30 -07:00
0cdd8c0d71 Add detailed doctstring to digest_directory. 2020-09-11 15:49:02 -07:00
4a3236babe Update digest_directory to handle plural albums at every step. 2020-09-11 15:48:37 -07:00
1cc70616a5 Replace get_album_by_path with get_albums_by_path generator. 2020-09-11 15:15:12 -07:00
7705848714 Let new_album take multiple associated directories. 2020-09-11 15:02:33 -07:00
a79e14e120 Let search_kwargs[orderby] give back None instead of empty list. 2020-09-09 12:20:49 -07:00
fa8bbf92f9 Remove call to logging.basicconfig, let the frontend do it. 2020-08-12 12:23:51 -07:00
b21e6a1206 Show data directory in DatabaseOutOfDate message, not db file. 2020-07-01 16:19:54 -07:00
363d0bac67 Move THING_CLASSES and thing-related methods to new mixin.
I realized there's no need to have that on the global scope when
it is only used for the thing-methods.
2020-04-15 16:33:16 -07:00
5dffe52830 Start _cached_sql_tables as None, and in the SQL mixin. 2020-04-15 16:31:47 -07:00
35895856e6 Use .clear() instead of reassigning to empty lists.
I cannot remember if there is a reason I chose to use empty lists.
If there is, I'll rediscover it and write a comment. Until then, it
makes sense to use clear as an explicit clearing of the list.
2020-04-15 16:31:09 -07:00
43a665fd91 Replace more %s with fstrings. 2020-04-15 16:29:56 -07:00
930960e22a Move this config prep code into voussoirkit as configlayers. 2020-04-03 17:09:01 -07:00
9c96522cfc Remove thing_map table, just use thing_map class.table. 2020-04-03 15:20:09 -07:00
545ea62818 Add some docstrings and comments near get_cached_instance. 2020-04-03 12:33:19 -07:00
dd3d40de53 Experimental: Allow search results to include albums.
I've been thinking about this for a while but couldn't think of
the perfect way to implement it. I still haven't, so instead I'm
just starting with something and we'll see how to improve later.
At any rate, I can update the rest of the system to expect Albums
coming out of search so that if I ever have a better algorithm
everything else will already be ready for it.
For this first experiment, just any photos that are part of an album
will send that album out as a result. It doesn't even respect the
limit parameter, it's really just to see how it feels to use.
2020-04-02 22:36:40 -07:00
e94e35c98c Add option to natural_sort filenames before digesting. 2020-04-02 21:57:54 -07:00
374763f990 Reduce log level of savepoints to 5.
So far I am satisfied with how they are working, and they clutter
the output so much I can't read anything else.
For reference, logging.DEBUG is 10.
2020-04-02 21:56:41 -07:00
6529aedde6 Add docstring to PDB.__init__. 2020-03-06 09:43:16 -08:00
961ece0081 digest_directory excludes extend defaults instead of overriding them.
With this change, there is currently no way to specify that I actually
want to include thumbs.db etc, but I think the likelikhood of wanting
to extend the defaults greatly exceeds wanting to overrid them.
2020-02-27 14:17:30 -08:00
9d620b4b97 Remove unused imports & other small things. 2020-02-20 22:44:56 -08:00
854fa4db51 Rename PDB.register_user -> new_user.
I was treating User a little bit special here, but I prefer to
have the more consistent terminology.
2020-02-20 00:18:40 -08:00
1fc2ed09f5 Remove commit argument from ALL methods. @transaction does it. 2020-02-19 23:56:09 -08:00
0a984117c5 Add rollback queue, like commit queue. 2020-02-19 23:46:30 -08:00
8c797024e0 Remove calls to pdb.commit(). Let @transaction do it. 2020-02-19 22:58:21 -08:00
04f3f6f297 Remove commit=False from all method calls, it's default now. 2020-02-19 22:20:21 -08:00
3a9d7fc2dc Set default commit=False for ALL methods.
I'm working on tightening up some of the transaction code. In the
past it was default commit=True because I would launch the repl, do
something, and quit, so it was nice to have auto commit. But really
it makes more sense to have it default False and be explicit when
to commit.
2020-02-19 20:08:24 -08:00
108ba8bd95 Add PDB.release_savepoint. 2020-02-19 17:00:08 -08:00
bcd13b9ae4 Make the commit queue task popping a little more clear. 2020-02-19 16:26:23 -08:00
e7c90faf79 PhotoDB.rollback without savepoint should roll all, like real sql.
In sqlite3, rollback without a savepoint undoes the entire pending
transaction stack, whereas I was just popping the last save.
This change makes it match real sqlite. Also the only current call
for rollback is in the @transaction decorator which is already
explicit.
2020-02-19 16:26:02 -08:00
1375d9fb26 Fix new_photo, data[extension] to use new pathclass.Extension. 2020-02-19 15:11:52 -08:00
d6d7521bce Assert table exists for any sql op involving argument tables.
At the moment, all of these functions are safe because they're
called with hardcoded tables determined by other code, not user input.
But while I was working in this area I felt it would be good to add
a safety check just in case.
2020-02-04 18:15:14 -08:00
64f9eb5f2b Replace some % formatting with fstrings. 2020-02-04 18:12:41 -08:00
2ffe3940e6 Update OutOfDate message to show actual argument. 2020-01-28 10:52:19 -08:00
947d05a4fa Revert 488d793, reinstate PhotoDB.normalize_tagname.
In that commit, I missed three more calls in objects.py and
now I'm deciding that 5x copy-paste is not worth it.
2019-06-15 16:49:52 -07:00
bdff14ecf2 Identify a logic error without actually fixing it.
😎
2019-04-26 23:14:14 -07:00
cc6e7a8b16 Improve line consistency across the PhotoDB.new_* methods.
By clarifying why some lines are above / below the generate_id
call and putting similar code in similar order to each other.
2019-04-26 23:12:55 -07:00
a9865d8546 Replace PhotoDB.normalize_tagname with real call to Tag.norm_name.
I originally did this because I didn't want to accidentally call
Tag.normalize_name and forget to pass the valid parameters. However,
having this single method be on PhotoDB while the other norms are
part of their proper class has been an eyesore.
So since there are only a few calls to this I'm just inlining them
and trusting to not forget if I add more in the future.
2019-04-26 23:06:41 -07:00
d24f93809b Add message parameter to commit instead of logging separately.
The upside is that we can get rid of some redundancy and reduce
the friction of adding more commit messages.
The downside of this is that the log statement always reports from
commit, instead of the function calling commit. But with unique
messages this shouldn't be too much trouble and should be worth it.
2019-04-01 23:29:01 -07:00
68a567d266 Perform is None check before detailed type checks. 2019-04-01 23:17:35 -07:00
ad140e485e Two small docstring improvements. 2019-03-16 13:09:02 -07:00
d66dc53215 Require voussoirkit 0.0.28 for sqlhelpers.listify.
Instead of defining that within etiquette.
2019-01-01 18:08:47 -08:00
c6c6158062 Save this assignment until it's needed. 2018-12-21 23:44:50 -08:00
7674610b88 Somewhat simplify a few conditions in photodb init. 2018-11-24 22:25:25 -08:00
1eb5a6f465 Rename DatabaseOutOfDate's parameter 'current' -> 'existing'. 2018-11-24 22:06:16 -08:00
dbdd509cd2 Rearrange imports so voussoirkit is right after lib imports.
Added a styleguide.md file to refer back to.
Since voussoirkit is a library it feels better to have it below
the rest of the library and above the local project imports.
2018-11-04 19:27:20 -08:00
4d1575719b Bump voussoirkit requirement to 0.0.24 for pathclass exceptions. 2018-09-23 14:54:11 -07:00
670bc8b375 Allow setting searchhidden during new_photo. 2018-09-21 21:31:57 -07:00
53c86c30a1 Improve clarity of the recursive_dict_ helper functions & usage. 2018-08-11 18:19:55 -07:00