Commit Graph

25 Commits

Author SHA1 Message Date
Samantha Baldwin
d1ed80d62a argparse & logging (#92)
* introduce logcommand.Lager, Whipper(); use argparse for whipper image commands, stub logging

* update Lager docstring to mention config.Config()

* make incorrect subcommand and --version work on toplevel command

* migrate accurip show, expand Lager, do not attempt to return from Lager.__init__.

* migrate offset find, add Lager.error

* correct offset find drive symlink handling

* migrate drive

* change Lager.__init__(prog) to arg from kwarg

* but actually

* remove Whipper.usage

* add and use Lager.device_option() context manager

* help I married an axe murderer

* use unified options namespace for entire command tree

* migrate whipper cd without comprehensive config loading

* switch to logging module

- use logging instead of flog for non-extern modules
- use WHIPPER_DEBUG and WHIPPER_LOGFILE env variables

* convert self.log calls to logger.debug

* convert self.error calls to logger.error

* remove log.Loggable, use logger not logging

* Logging conversion continues

- Convert log.* calls to logger.*
- Remove morituri.common.log imports

* remove morituri.common.log from tests

* remove extern/flog, bare minimum Debug conversion

* update README for logging changes

* update soxi to use logging

* refactor Lager for more declarative subcommands

* Refactor Lager.device_option:

- inline into __init__
- throw IOError instead of Exception for missing drives
- remove CommandError checking in rip/main

* rename rip to whipper in rip.main

* convert rip.debug commands

* Rename logcommand.Lager to command.BaseCommand

- remove command.CommandError occurrences
- remove python-command external module

* remove submodules from README, update rclog formatter

* update minor ambiguity in readme for command invocation

* update version number to match setup.py

* remove gitmodules

* update version number in tests as well (boo)

* convert logger.error to logger.critical

* Change morituri.rip to morituri.command

- mv common.command to command.basecommand
- move TEMPLATES used only by rip.cd out of rip.common
- update entry point for command to command.main

* update basecommand documentation

* go pyflaking: import fixing

* replace self.stdout with sys.stdout

* remove BaseCommand.config, alphabetise imports

* convert self.stdXXX leftovers

* convert last getRootCommand to config.Config

* convert last getExceptionMessage's to str

* change musicbrainz useragent to whipper
2016-12-20 23:11:30 +01:00
Thomas Vander Stichele
f052896505 change debug message 2013-02-26 23:12:16 +01:00
Thomas Vander Stichele
88443aa5ec audioparsers still doesn't support seek properly for flac 2013-01-20 17:57:03 +01:00
Thomas Vander Stichele
0a0aadfc30 * morituri/test/test_common_gstreamer.py (added):
* morituri/common/gstreamer.py:
	* morituri/test/Makefile.am:
	  add functions to get versions of gstreamer, gst-python,
	  and element factory plugins.
2012-12-02 21:56:19 +00:00
Thomas Vander Stichele
a3fe7ba7e7 pep8 fixes 2012-11-10 21:57:06 +00:00
Thomas Vander Stichele
d2672cfa6a * morituri/common/gstreamer.py:
flacparse is busted in gst-plugins-good 0.10.30 too.
2011-09-04 14:17:47 +00:00
Thomas Vander Stichele
55c4bddfcf * morituri/common/Makefile.am:
* morituri/common/checksum.py:
	* morituri/common/gstreamer.py:
	* morituri/extern/Makefile.am:
	* morituri/extern/task/gstreamer.py:
	* morituri/common/gstreamer.py (added):
	  Extract function to remove audio parsers.
	  Fix up dist.
2011-08-05 19:04:53 +00:00
Thomas Vander Stichele
798a209195 * morituri/extern/task (added):
* morituri/extern/task/taskgtk.py (added):
	* morituri/extern/task/gstreamer.py (added):
	* morituri/extern/task/task.py (added):
	* morituri/common/taskgtk.py (deleted):
	* morituri/common/gstreamer.py (deleted):
	* morituri/common/task.py (deleted):
	  Move task-related modules into an extern directory so other
	  projects can use them.
	* morituri/common/checksum.py:
	* morituri/common/encode.py:
	* morituri/image/image.py:
	* morituri/program/cdparanoia.py:
	* morituri/program/cdrdao.py:
	* morituri/rip/cd.py:
	* morituri/rip/debug.py:
	* morituri/rip/image.py:
	* morituri/rip/main.py:
	* morituri/rip/offset.py:
	* morituri/test/test_common_checksum.py:
	* morituri/test/test_common_encode.py:
	* morituri/test/test_image_image.py:
	  Adapt.  Tests work.
2011-08-05 18:50:51 +00:00
Thomas Vander Stichele
2a48caa0b8 * morituri/common/gstreamer.py:
Actually remove it if it's good and old.
2011-05-29 15:37:41 +00:00
Thomas Vander Stichele
111dec9b3d * morituri/common/gstreamer.py:
In -bad the plugin is called audioparsersbad.
2011-05-27 10:38:49 +00:00
Thomas Vander Stichele
5b11648941 * morituri/common/gstreamer.py:
Add debugging about audioparsers removal.
2011-05-25 13:26:54 +00:00
Thomas Vander Stichele
ef56a14dc0 * morituri/common/gstreamer.py:
Also remove audioparsers if it's in bad.
2011-05-25 08:26:23 +00:00
Thomas Vander Stichele
2aed8a046f * morituri/common/gstreamer.py:
Remove parsers for current git trunk of good too.
2011-05-24 18:46:55 +00:00
Thomas Vander Stichele
eee7505519 * morituri/common/checksum.py:
* morituri/common/gstreamer.py:
	  Remove audioparsers plugin if it has the known bug.
	  Fixes #64.
2011-05-24 16:03:02 +00:00
Thomas Vander Stichele
4c81edf912 * morituri/common/task.py:
Show us when we stop twice.
	* morituri/common/gstreamer.py:
	  Stop on Exceptions.
2011-05-24 15:16:39 +00:00
Thomas Vander Stichele
8bc5eff73c * morituri/common/task.py:
add task argument to TaskRunner.schedule so we can get exceptions.
	  Add .schedule method to Task to pass self.
	* morituri/common/checksum.py:
	* morituri/common/encode.py:
	* morituri/common/gstreamer.py:
	* morituri/program/cdparanoia.py:
	* morituri/program/cdrdao.py:
	  Adapt.
2011-05-24 12:51:40 +00:00
Thomas Vander Stichele
8771d439dc * morituri/common/gstreamer.py:
Add a cvar to stop going to playing.
	* morituri/image/image.py:
	  Convert AudioLengthTask to GstPipelineTask.
	* morituri/test/test_image_image.py:
	  Adapt to new typefind error we run in.
2011-05-24 10:27:06 +00:00
Thomas Vander Stichele
9e70e24516 add a repr to show GError 2011-05-23 18:24:08 +00:00
Thomas Vander Stichele
c314dcb597 * morituri/common/gstreamer.py:
Stop task when we get an exception.
	  Don't make pipeline go to PLAYING if we got an exception
	  before doing so.
2011-05-23 18:08:25 +00:00
Thomas Vander Stichele
ce71bfb5c2 * morituri/common/checksum.py:
* morituri/common/encode.py:
	* morituri/common/gstreamer.py:
	  Move play to base class of GstPipelineTask.
2011-05-23 18:02:48 +00:00
Thomas Vander Stichele
3482288750 * morituri/common/gstreamer.py:
Add a stop method and a stopped overridable handler.
	* morituri/common/checksum.py:
	* morituri/common/encode.py:
	  Adapt to using stopped.
2011-05-23 15:26:19 +00:00
Thomas Vander Stichele
1ce46272a9 * morituri/test/test_common_encode.py:
Generate an actual file by spawning gst-launch; otherwise
	  with proper error handling we get an error from wavparse that
	  there is not enough data to typefind.
	* morituri/common/gstreamer.py:
	  Move the gst import to start() and set it as a class attribute.
	  Document methods.
	* morituri/common/encode.py:
	  Convert EncodeTask to a GstPipelineTask.
2011-05-23 14:57:16 +00:00
Thomas Vander Stichele
1c6ec82df9 add comment 2011-05-22 15:18:06 +00:00
Thomas Vander Stichele
965043dbf5 * morituri/common/gstreamer.py:
Remove unused imports.
	* morituri/image/image.py:
	  Remove halfbaked code.
2011-05-22 11:14:46 +00:00
Thomas Vander Stichele
6c2f3cc378 * morituri/common/checksum.py:
* morituri/image/image.py:
	* morituri/test/test_common_checksum.py:
	* morituri/common/gstreamer.py (added):
	  Factor out GstException and GstPipelineTask.
2011-05-21 17:01:19 +00:00