Commit graph

6572 commits

Author SHA1 Message Date
Diego Moreda
0293504a24 Update negation query syntax, prefix always first
* Update the negation query sintax so that the negation prefix ("-" or "¬") is
always the first part of a query, instead of after the ":" separator.
* Modify queryparse, so that the detection of the negation is done inside
parse_query_part() (using the modified PARSE_QUERY_PART_REGEX, and returning
the negation flag) instead of construct_query_part.
* Revert the prefixes dict on beets.library to the original dict (only one item,
with the RegexpQuery prefix).
2015-11-18 16:59:50 +01:00
Diego Moreda
dd8b80e320 Make NotQuery subclass Query, update tests
* Modify NotQuery so it subclasses Query instead of MutableCollectionQuery.
* Update instances where NotQuery objects are created on tests and queryparse,
as NotQuery expects a single Query as a parameter to the constructor instead of
a list of Queries.
2015-11-18 14:54:20 +01:00
Adrian Sampson
775a48eb28 --extra/-e is now --field/-f 2015-11-17 14:40:52 -08:00
Adrian Sampson
b33d25a0ad --extra option can use any field
Not just the built-in fields.
2015-11-17 14:39:40 -08:00
Adrian Sampson
f68dc4652a Fix a typo 2015-11-17 13:14:15 -08:00
Adrian Sampson
8e9d335a87 Tear down Item.write mock 2015-11-17 10:26:36 -08:00
Adrian Sampson
0d459752d9 Update edit plugin tests 2015-11-16 13:55:12 -08:00
Adrian Sampson
4db91c8bd2 Fix a too-long line 2015-11-16 13:03:50 -08:00
Adrian Sampson
f767f1c2a3 New confirmation prompt
We now ask for a trinary edit/apply/cancel confirmation *after* showing the
updates. This lets you decide whether you're done based on a "preview" of the
changes and keep editing if they don't look right.
2015-11-16 13:01:24 -08:00
Adrian Sampson
d87a747477 Condense edit plugin documentation
Also avoided adding some unused command-line options.
2015-11-16 12:43:59 -08:00
Diego Moreda
f2c8e9ff07 Add "not" query operator, initial draft
* Add support for user friendly "not" operator in queries without requiring to
use regular expressions, via adding NotQuery to beets.dbcore.query.
* Update the prefix list at library.parse_query_parts() and the query parsing
mechanisms in order to create a NotQuery when the prefix is found.
* Add two TestCases, NotQueryMatchTest as the negated version of MatchTest, and
the more generic NotQueryTest for testing the integration of the NotQuery with
the rest of the existing Query subclasses.
2015-11-16 21:36:42 +01:00
Adrian Sampson
c679e3f307 Merge branch 'editor' of github.com:sampsyo/beets into editor 2015-11-16 12:28:35 -08:00
Adrian Sampson
feabf1a6ef Offer a chance to fix YAML parse errors
An alternative to 749ef85638 by @jmwatte.
2015-11-16 12:27:32 -08:00
jmwatte
bb39cd509d cleaned up edit.rst 2015-11-16 10:37:38 -08:00
Adrian Sampson
52c2b3f479 Merge pull request #1727 from diego-plan9/editor
Editor: update extra fields test, save only dirty items
2015-11-16 10:32:45 -08:00
Diego Moreda
917628340e edit: save only items with changes
* Modify save_write() so only the items that do have pending changes (ie. dirty
items) are saved to the database.
2015-11-16 14:48:05 +01:00
Diego Moreda
e31680123b edit: update extra fields in yaml test
* Update test for extra fields in edited yaml, allowing the user to add fields
while editing. Rename the test to test_single_edit_add_field to reflect its
purpose more accurately.
2015-11-16 14:46:13 +01:00
Diego Moreda
2adf70209f edit: add test for extra fields on user yaml
* Add test_invalid_yaml_extra_field, testing the handling of user appended
fields (in particular, a non existing field) during the yaml editing.
2015-11-15 18:36:24 +01:00
Diego Moreda
5f2e5d73cc edit: update unit tests
* Update unit tests in order to reflect the changes on the last refactor of
edit.py (patch edit.edit instead of EditPlugin.get_editor, revise stdin strings
to match current version, remove TODO on docstrings from malformed and invalid
yaml tests).
2015-11-15 18:09:20 +01:00
Peter Kessen
ecbd337c47 Added file encoding definition to badfiles.py 2015-11-15 14:51:12 +01:00
Adrian Sampson
e39dede8b4 Merge pull request #1720 from Schweinepriester/master
Replace PIL with Pillow
2015-11-15 00:18:27 -08:00
Kai
61e992fd47 Replace PIL with Pillow 2015-11-15 04:25:42 +01:00
Adrian Sampson
cfba04bc9d Don't ask for confirmation if nothing changed 2015-11-14 14:58:53 -08:00
Adrian Sampson
80facbab6f More robust forbidden-change detection 2015-11-14 14:57:32 -08:00
Adrian Sampson
1c44969255 Simplify interfaces and add docs 2015-11-14 14:50:24 -08:00
Adrian Sampson
eb1bb132b1 Simplify metadata application 2015-11-14 14:48:10 -08:00
Adrian Sampson
58205e1bef Simplify data filtering 2015-11-14 14:33:04 -08:00
Adrian Sampson
029915814b Abort if nothing changed 2015-11-14 14:28:00 -08:00
Adrian Sampson
5096653483 Simpler serialization
Just use a dictionary instead of a list of tiny one-key dictionaries. Still
need to update the deserialization.
2015-11-14 14:23:57 -08:00
Adrian Sampson
9848b51008 Simplify field selection 2015-11-14 14:19:09 -08:00
Adrian Sampson
105cd73906 Start expunging opts carry-through
A dedicated command function takes care of the options and turns them into
normal variables.
2015-11-14 14:05:40 -08:00
Adrian Sampson
3c01c49a2c Less chatty interface
Removed three prompts:
1. The "really edit?" prompt. If you don't want to edit, you can just not make
   any changes.
2. The "done?" loop. This seems unnecessary; we'll confirm afterward anyway.
3. The YAML checker. This removal could indeed make things inconvenient, since
   your changes get thrown away if you make a YAML mistake. For the moment,
   simplicity is taking priority.
2015-11-14 13:53:25 -08:00
Adrian Sampson
ce31c2df23 Remove some dead code and hoist utility functions 2015-11-14 13:43:58 -08:00
Adrian Sampson
f27c486389 Remove separator and not_fields from docs
The `separator` option has already been removed. `not_fields` is an internal
detail and doesn't need to be documented (yet).
2015-11-14 13:39:30 -08:00
Adrian Sampson
de6813eab5 Remove vestigial editor config option
We now just use $EDITOR.
2015-11-14 13:38:41 -08:00
Adrian Sampson
b33a024549 Simplify write logic 2015-11-14 13:37:17 -08:00
Adrian Sampson
b593d01100 Use qualified names for ui utilities 2015-11-14 13:33:02 -08:00
Adrian Sampson
2d8350ef03 Use standard machinery for opening editor 2015-11-14 13:31:42 -08:00
Adrian Sampson
72b26235ad Merge branch 'master' into editor 2015-11-14 13:28:04 -08:00
Adrian Sampson
e3f7da5467 Update test for simpler interactive_open 2015-11-14 13:26:04 -08:00
Adrian Sampson
3a5dd47e3a Factor out shlex.split workaround 2015-11-14 13:23:51 -08:00
Adrian Sampson
d5b7ce64da Move EDITOR discovery to a util function 2015-11-14 13:23:51 -08:00
Adrian Sampson
e235cb7c42 Remove vestiges of diff_method option 2015-11-14 12:56:53 -08:00
Adrian Sampson
d7d609442e Remove diff_method option
Our built-in "diff"-like functionality is pretty good because it's aware of
beets' data structures and types. This makes it more legible, in my opinion,
than an ordinary textual diff. So for now, I'm making this the only option (in
the spirit of making the plugin as straightforward as humanly possible).
2015-11-14 12:53:45 -08:00
Adrian Sampson
71e1547291 Remove some communication through fields
This is the first of many changes to reduce the use of `self.x` where plain
parameter passing can make things more clear.
2015-11-14 12:50:53 -08:00
Adrian Sampson
54b61ee2d4 Merge pull request #1717 from jmwatte/editor
change opts.extra to type choice
2015-11-13 13:20:58 -08:00
Adrian Sampson
9c968456c1 Fix #1666: malformed binary data in SoundCheck 2015-11-13 12:21:36 -08:00
jmwatte
5eca75321e simplify by removing sum-option and renaming for clarity 2015-11-13 17:56:03 +01:00
jmwatte
024ab0159b remove webbrowser for opening default editor/browser 2015-11-13 15:03:27 +01:00
jmwatte
386578d69c change opts.extra to type choice 2015-11-13 11:24:19 +01:00