diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index b2c2f00..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,10 +0,0 @@ -# Changelog -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [1.0.0] - 2020-03-07 -### Added - -- Initial version diff --git a/CHANGELOG.rst b/CHANGELOG.rst new file mode 100644 index 0000000..6a26b77 --- /dev/null +++ b/CHANGELOG.rst @@ -0,0 +1,21 @@ +Changelog +========== + +All notable changes to this project will be documented in this file. + +This format is based on `Keep a Changelog`_ + +.. _Keep a Changelog: https://keepachangelog.com/en/1.0.0/ + +and this project adheres to `Semantic Versioning`_ + +.. _Semantic Versioning: https://semver.org/spec/v2.0.0.html + + +[1.0.0] - 2020-03-07 +------------------------ + +Added +###### + +- Initial version diff --git a/README.rst b/README.rst index 1c6e18b..9d45835 100644 --- a/README.rst +++ b/README.rst @@ -1,19 +1,128 @@ -musicbrainzapi -=============== +============= +Introduction +============= -.. image:: https://img.shields.io/readthedocs/panaetius?style=for-the-badge :target: https://panaetius.readthedocs.io/en/latest/?badge=latest - :alt: Documentation Status +.. image:: https://img.shields.io/readthedocs/panaetius?style=for-the-badge +.. image:: https://img.shields.io/github/v/tag/dtomlinson91/musicbrainzapi-cv-airelogic?style=for-the-badge +.. image:: https://img.shields.io/github/commit-activity/m/dtomlinson91/musicbrainzapi-cv-airelogic?style=for-the-badge +.. image:: https://img.shields.io/github/issues/dtomlinson91/musicbrainzapi-cv-airelogic?style=for-the-badge +.. image:: https://img.shields.io/github/license/dtomlinson91/musicbrainzapi-cv-airelogic?style=for-the-badge +.. image:: https://img.shields.io/github/languages/code-size/dtomlinson91/musicbrainzapi-cv-airelogic?style=for-the-badge +.. image:: https://img.shields.io/github/languages/top/dtomlinson91/musicbrainzapi-cv-airelogic?style=for-the-badge +.. image:: https://img.shields.io/requires/github/dtomlinson91/musicbrainzapi-cv-airelogic?style=for-the-badge -.. image:: https://img.shields.io/github/v/tag/dtomlinson91/musicbrainzapi-cv-airelogic?style=for-the-badge :alt: GitHub tag (latest by date) +Summary +======== -.. image:: https://img.shields.io/github/commit-activity/m/dtomlinson91/musicbrainzapi-cv-airelogic?style=for-the-badge :alt: GitHub commit activity +Musicbrainzapi is a Python module with a CLI that allows you to search for an artist and receive summary statistics on lyrics across all albums + tracks. -.. image:: https://img.shields.io/github/issues/dtomlinson91/musicbrainzapi-cv-airelogic?style=for-the-badge :alt: GitHub issues +In addition to basic statistics the module further allows you to save details of an artist. You can save album information, the lyrics themselves and track lists. -.. image:: https://img.shields.io/github/license/dtomlinson91/musicbrainzapi-cv-airelogic?style=for-the-badge :alt: GitHubtbc +The module (currently) provides a simple CLI with some underlying assumptions: -.. image:: https://img.shields.io/github/languages/code-size/dtomlinson91/musicbrainzapi-cv-airelogic?style=for-the-badge :alt: GitHub code size in bytes +- We are interested in albums only - no singles. +- We are interested in any album where the artist is listed as a primary artist on a release. This could include compilations or joint albums with other artists. +- Where an album has been released multiple times, in different regions, we take the album with the longest track list. -.. image:: https://img.shields.io/github/languages/top/dtomlinson91/musicbrainzapi-cv-airelogic?style=for-the-badge :alt: GitHub top language +These assumptions are not configurable in the current version - but this functionality could be added to the module if needed. -.. image:: https://img.shields.io/requires/github/dtomlinson91/musicbrainzapi-cv-airelogic?style=for-the-badge :alt: Requires.io +Further information, and a brief summary of decisions taken and current caveats can be found in the documentation which is linked below. + +Documentation +============= + +The documentation for the module can be found at https://musicbrainzapi-cv-airelogic.readthedocs.io/en/latest/ + +Installation +============ + +You will need ``python>=3.7``. Installation to a python virtual environment is recommended. + +PIP +--- + +Download the latest release ``.whl`` file from the `releases`_ page + +.. _releases: https://github.com/dtomlinson91/musicbrainzapi-cv-airelogic/releases + +In a virtual environment run: + +.. code-block:: bash + + pip install -U musicbrainzapi.whl + +Replacing ``musicbrainzapi.whl`` with the filename you downloaded. + +setup.py +-------- + +Clone the repo: + +.. code-block:: bash + + git clone https://github.com/dtomlinson91/musicbrainzapi-cv-airelogic.git + +In the root of the repo in a virtual environment run: + +.. code-block:: bash + + python ./setup.py install + +Docker +------ + +.. note:: Using Docker will mean you cannot view a wordcloud, as the default behaviour is to show the plot interactively which the container cannot do. + +If you don't have ``python>=3.7`` installed, or would rather use Docker, you can build a Docker image and run the module using Docker. + +Clone the repo: + +.. code-block:: bash + + git clone https://github.com/dtomlinson91/musicbrainzapi-cv-airelogic.git + +In the root of the repo build the Docker image: + +.. code-block:: bash + + docker build . -t musicbrainzapi + +No entrypoint is provided in the ``Dockerfile`` - you will have to specify the command at runtime and run the container in interactive mode: + +Using Docker run +^^^^^^^^^^^^^^^^ + +.. code-block:: bash + + docker run --rm -it --volume=$(pwd):/outputs \ + musicbrainzapi:latest musicbrainzapi --path /outputs \ + lyrics -a "Savage Garden" -c gb --show-summary all --save-output + + +Usage +===== + +Once installed you can access the command running: + +.. code-block:: bash + + musicbrainzapi + +To see all options available you can run: + +.. code-block:: bash + + musicbrainzapi --help + +In the current release there is one command available ``lyrics``: + +.. code-block:: bash + + musicbrainzapi lyrics --help + +License information +=================== + +Released under the `MIT License`_ + +.. _MIT License: https://github.com/dtomlinson91/musicbrainzapi-cv-airelogic/blob/master/LICENSE diff --git a/docs/source/CLI.rst b/docs/source/CLI.rst new file mode 100644 index 0000000..dee9064 --- /dev/null +++ b/docs/source/CLI.rst @@ -0,0 +1,48 @@ +*** +CLI +*** + +As the CLI is provided by `Click`_ , you can pass the ``--help`` option to the base command, or any subcommands, to see information on usage and all available options. + +.. _Click: https://click.palletsprojects.com/en/7.x/ + +Full options of the CLI are provided on this page. + +.. important:: The ``--path`` option should be provided to the base command. This is so the path provided can be used in all subcommands. + + +Quickstart +========== + +If you want to see everything the module offers run the following: + +.. code-block:: bash + + musicbrainzapi --path . lyrics -a "savage garden" -c gb --show-summary all --wordcloud --save-output + +This will search for all tracks across all albums for the artist Savage Garden. + +``--show-summary all`` will show descriptive statistics for both albums and years for this artist. + +``--wordcloud`` will generate a wordcloud showing the most popular words across all lyrics. + +``--save-output`` will save the module's output to disk as ``.json`` files. + +Outputs +======= + +The following files will be saved to disk + +- all_albums_lyrics_sum.json - Total number of words in a track for each album. +- year_statistics.json - Descriptive statistics by year. +- album_statistics.json - Descriptive statistics by album +- all_albums_with_tracks.json - Track titles for each album. +- all_albums_with_lyrics.json - Lyrics for each track for each album. +- all_albums_lyrics_count.json - Shows a frequency count of each word in every track. + +CLI Documentation +================= + +.. click:: musicbrainzapi.cli.cli:cli + :prog: musicbrainzapi + :show-nested: diff --git a/docs/source/_static/custom.css b/docs/source/_static/custom.css index d4be59d..d968758 100644 --- a/docs/source/_static/custom.css +++ b/docs/source/_static/custom.css @@ -1,87 +1,5 @@ @import url("css/theme.css"); -.modname { - font-size: 0.8em; - opacity: 0.4; -} -.modname::before { - content: '- '; -} -.title { - font-weight: bold; - font-size: 1.2em; - background-color: #eee; - display: block; - padding: 1px 5px; - border-left: 2px solid #ddd; -} - -/*colour of the text in the toc*/ -.wy-menu-vertical header, .wy-menu-vertical p.caption{ - color: #b26d46;; -} - -/*colour of the top left header*/ -.wy-side-nav-search{ - background-color: #31465a; -} - -/*colours of the class definitions*/ -.rst-content dl:not(.docutils) dt{ - background: #e2d7d1; - color: #0b2852; - border-top: solid 3px #31465a; -} - -/*colour of the link in the class defintions*/ -.rst-content .viewcode-link, .rst-content .viewcode-back{ - color: #4b674a; -} - -/*colour of the function definitions*/ -.rst-content dl:not(.docutils) dl dt{ - border-left: solid 3px #31465a; - background: #e2d7d1; - color: #0b2852; -} - -/*colour of the link in the function definitions*/ -.rst-content .viewcode-link, .rst-content .viewcode-back{ - color: #4b674a; -} - -/*edit the width of the body*/ -.wy-nav-content{ - max-width: 1200px; -} - -/*code example blocks*/ -.rst-content pre.literal-block, .rst-content div[class^="highlight"] pre, .rst-content .linenodiv pre{ - background: #b4bec8; - color: black; - /*border-style: solid;*/ - /*border-width: thin;*/ -} - -/*colour of inline code blocks using ``*/ -.rst-content tt.literal, .rst-content tt.literal, .rst-content code.literal{ - color: #b26d46; -} - -/* Change code blocks font and bump up font size slightly (normally 12px)*/ -.rst-content pre.literal-block, .rst-content div[class^="highlight"] pre, .rst-content .linenodiv pre { - font-family: 'Inconsolata', monospace !important; - font-size: 14px !important; - white-space: pre-wrap; -} - -/* Change code descriptions and literal blocks (inline code via ``) to match the normal font size being used in the sphinx_RTD_theme text (normally 14px)*/ -.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) tt.descclassname,.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) code.descname,.rst-content dl:not(.docutils) tt.descclassname,.rst-content dl:not(.docutils) code.descclassname, code.docutils { - font-family: 'Inconsolata', monospace !important; - font-size: 14px !important; -} - -/*variables text*/ -dl.class > dd > table.docutils.field-list tbody tr.field-odd.field th.field-name::before{ - content: '(Class Attributes) '; +.highlight { + background: white !important } diff --git a/docs/source/changelog.rst b/docs/source/changelog.rst index f1bb7a6..09929fe 100644 --- a/docs/source/changelog.rst +++ b/docs/source/changelog.rst @@ -1,20 +1 @@ -Changelog -========== - -All notable changes to this project will be documented in this file. - -The format is based on `Keep a Changelog`_ - -.. _https://keepachangelog.com/en/1.0.0/ - -and this project adheres to `Semantic Versioning`_ - -.. _https://semver.org/spec/v2.0.0.html - -[1.0.0] - 2020-03-07 ------------------------- - -Added -###### - -- Initial version +.. include:: ../../CHANGELOG.rst diff --git a/docs/source/conf.py b/docs/source/conf.py index c5992ac..06e73fa 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -39,6 +39,8 @@ extensions = [ 'sphinx.ext.napoleon', 'sphinx.ext.todo', 'sphinx_click.ext', + 'sphinx.ext.intersphinx', + 'sphinx.ext.autosectionlabel' ] # -- Napoleon Settings ----------------------------------------------------- @@ -60,7 +62,7 @@ autodoc_member_order = 'bysource' templates_path = ['_templates'] # The master toctree document. -master_doc = 'introduction' +master_doc = 'index' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. @@ -82,11 +84,12 @@ html_theme = "sphinx_rtd_theme" html_theme = "sphinx_rtd_theme" html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] html_static_path = ['_static'] -# html_context = {'css_files': ['_static/custom.css']} +html_context = {'css_files': ['_static/custom.css']} html_theme_options = { 'collapse_navigation': True, 'display_version': True, 'prev_next_buttons_location': 'both', + 'navigation_depth': -1, #'navigation_depth': 3, } diff --git a/docs/source/index.rst b/docs/source/index.rst index 86fd692..566e559 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -1,4 +1,29 @@ +***************** Table of Contents -================= +***************** -.. include:: toc.rst +.. toctree:: + :maxdepth: 2 + :caption: Contents + + introduction + CLI + changelog + +.. toctree:: + :caption: API + :maxdepth: 2 + + modules/modules + +.. toctree:: + :caption: Table of Contents + + self + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/source/introduction.rst b/docs/source/introduction.rst index 0e2138c..a6210d3 100644 --- a/docs/source/introduction.rst +++ b/docs/source/introduction.rst @@ -1,3 +1 @@ -Introduction -============= - +.. include:: ../../README.rst diff --git a/docs/source/modules/modules.rst b/docs/source/modules/modules.rst new file mode 100644 index 0000000..4c2e61f --- /dev/null +++ b/docs/source/modules/modules.rst @@ -0,0 +1,7 @@ +musicbrainzapi +-------------- + +.. toctree:: + :maxdepth: 3 + + musicbrainzapi diff --git a/docs/source/modules/musicbrainzapi.api.authenticate.rst b/docs/source/modules/musicbrainzapi.api.authenticate.rst deleted file mode 100644 index 805ba56..0000000 --- a/docs/source/modules/musicbrainzapi.api.authenticate.rst +++ /dev/null @@ -1,10 +0,0 @@ - .. include:: ../global.rst - -musicbrainzapi.api.authenticate :modname:`musicbrainzapi.api.authenticate module` ------------------------------------------------------------------------------------------- - -.. automodule:: musicbrainzapi.api.authenticate - :members: - :undoc-members: - :show-inheritance: - :private-members: diff --git a/docs/source/modules/musicbrainzapi.api.lyrics.builder.rst b/docs/source/modules/musicbrainzapi.api.lyrics.builder.rst deleted file mode 100644 index 38d5e4b..0000000 --- a/docs/source/modules/musicbrainzapi.api.lyrics.builder.rst +++ /dev/null @@ -1,10 +0,0 @@ - .. include:: ../global.rst - -musicbrainzapi.api.lyrics.builder :modname:`musicbrainzapi.api.lyrics.builder` -------------------------------------------------------------------------------- - -.. automodule:: musicbrainzapi.api.lyrics.builder - :members: - :undoc-members: - :show-inheritance: - :private-members: diff --git a/docs/source/modules/musicbrainzapi.api.lyrics.concrete_builder.rst b/docs/source/modules/musicbrainzapi.api.lyrics.concrete_builder.rst deleted file mode 100644 index 4acc336..0000000 --- a/docs/source/modules/musicbrainzapi.api.lyrics.concrete_builder.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. include:: ../global.rst - -musicbrainzapi.api.lyrics.concrete_builder :modname:`musicbrainzapi.api.lyrics.concrete_builder` -------------------------------------------------------------------------------------------------- - -.. automodule:: musicbrainzapi.api.lyrics.concrete_builder - :members: - :undoc-members: - :show-inheritance: - :private-members: diff --git a/docs/source/modules/musicbrainzapi.api.lyrics.director.rst b/docs/source/modules/musicbrainzapi.api.lyrics.director.rst deleted file mode 100644 index bdce62d..0000000 --- a/docs/source/modules/musicbrainzapi.api.lyrics.director.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. include:: ../global.rst - -musicbrainzapi.api.lyrics.director :modname:`musicbrainzapi.api.lyrics.director` ----------------------------------------------------------------------------------- - -.. automodule:: musicbrainzapi.api.lyrics.director - :members: - :undoc-members: - :show-inheritance: - :private-members: diff --git a/docs/source/modules/musicbrainzapi.api.lyrics.rst b/docs/source/modules/musicbrainzapi.api.lyrics.rst index 71a8c01..1c1f4ad 100644 --- a/docs/source/modules/musicbrainzapi.api.lyrics.rst +++ b/docs/source/modules/musicbrainzapi.api.lyrics.rst @@ -1,16 +1,38 @@ -.. include:: ../global.rst - -musicbrainzapi.api.lyrics :modname:`musicbrainzapi.api.lyrics` --------------------------------------------------------------------------- +musicbrainzapi.api.lyrics package +================================= .. automodule:: musicbrainzapi.api.lyrics - :members: - :undoc-members: - :show-inheritance: - :private-members: + :members: + :undoc-members: + :show-inheritance: + :private-members: -.. toctree:: +Submodules +---------- - musicbrainzapi.api.lyrics.builder - musicbrainzapi.api.lyrics.concrete_builder - musicbrainzapi.api.lyrics.director +musicbrainzapi.api.lyrics.builder module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: musicbrainzapi.api.lyrics.builder + :members: + :undoc-members: + :show-inheritance: + :private-members: + +musicbrainzapi.api.lyrics.concrete_builder module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: musicbrainzapi.api.lyrics.concrete_builder + :members: + :undoc-members: + :show-inheritance: + :private-members: + +musicbrainzapi.api.lyrics.director module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: musicbrainzapi.api.lyrics.director + :members: + :undoc-members: + :show-inheritance: + :private-members: diff --git a/docs/source/modules/musicbrainzapi.api.rst b/docs/source/modules/musicbrainzapi.api.rst index c3d3ebe..9df8cfe 100644 --- a/docs/source/modules/musicbrainzapi.api.rst +++ b/docs/source/modules/musicbrainzapi.api.rst @@ -1,19 +1,28 @@ -.. include:: ../global.rst - -musicbrainzapi.api :modname:`musicbrainzapi.api` --------------------------------------------------------------------------- +musicbrainzapi.api package +=========================== .. automodule:: musicbrainzapi.api - :members: - :undoc-members: - :show-inheritance: - :private-members: + :members: + :undoc-members: + :show-inheritance: + :private-members: +Subpackages +----------- .. toctree:: + :maxdepth: 1 - musicbrainzapi.api.lyrics + musicbrainzapi.api.lyrics -.. toctree:: +Submodules +---------- - musicbrainzapi.api.authenticate +musicbrainzapi.api.authenticate module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: musicbrainzapi.api.authenticate + :members: + :undoc-members: + :show-inheritance: + :private-members: diff --git a/docs/source/modules/musicbrainzapi.cli.cli.rst b/docs/source/modules/musicbrainzapi.cli.cli.rst deleted file mode 100644 index 9b6e813..0000000 --- a/docs/source/modules/musicbrainzapi.cli.cli.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. include:: ../global.rst - -musicbrainzapi.cli.cli :modname:`musicbrainzapi.cli.cli` --------------------------------------------------------------------------- - -.. automodule:: musicbrainzapi.cli.cli - :members: - :undoc-members: - :show-inheritance: - :private-members: diff --git a/docs/source/modules/musicbrainzapi.cli.commands.cmd_lyrics.rst b/docs/source/modules/musicbrainzapi.cli.commands.cmd_lyrics.rst deleted file mode 100644 index 86946a1..0000000 --- a/docs/source/modules/musicbrainzapi.cli.commands.cmd_lyrics.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. include:: ../global.rst - -musicbrainzapi.cli.commands.cmd_lyrics :modname:`musicbrainzapi.cli.commands.cmd_lyrics` ------------------------------------------------------------------------------------------- - -.. automodule:: musicbrainzapi.cli.commands.cmd_lyrics - :members: - :undoc-members: - :show-inheritance: - :private-members: - -lyrics subcommand. Use with... - -.. click:: musicbrainzapi.cli.cli:cli - :prog: musicbrainzapi - :show-nested: diff --git a/docs/source/modules/musicbrainzapi.cli.commands.rst b/docs/source/modules/musicbrainzapi.cli.commands.rst deleted file mode 100644 index 5dce26c..0000000 --- a/docs/source/modules/musicbrainzapi.cli.commands.rst +++ /dev/null @@ -1,14 +0,0 @@ -.. include:: ../global.rst - -musicbrainzapi.cli.commands :modname:`musicbrainzapi.cli.commands` --------------------------------------------------------------------------- - -.. automodule:: musicbrainzapi.cli.commands - :members: - :undoc-members: - :show-inheritance: - :private-members: - -.. toctree:: - - musicbrainzapi.cli.commands.cmd_lyrics diff --git a/docs/source/modules/musicbrainzapi.cli.rst b/docs/source/modules/musicbrainzapi.cli.rst deleted file mode 100644 index c3f2276..0000000 --- a/docs/source/modules/musicbrainzapi.cli.rst +++ /dev/null @@ -1,18 +0,0 @@ -.. include:: ../global.rst - -musicbrainzapi.cli :modname:`musicbrainzapi.cli` --------------------------------------------------------------------------- - -.. automodule:: musicbrainzapi.cli - :members: - :undoc-members: - :show-inheritance: - :private-members: - -.. toctree:: - - musicbrainzapi.cli.commands - -.. toctree:: - - musicbrainzapi.cli.cli diff --git a/docs/source/modules/musicbrainzapi.rst b/docs/source/modules/musicbrainzapi.rst index 3148c84..109766f 100644 --- a/docs/source/modules/musicbrainzapi.rst +++ b/docs/source/modules/musicbrainzapi.rst @@ -1,7 +1,5 @@ -.. include:: ../global.rst - -musicbrainzapi :modname:`musicbrainzapi` ------------------------------------------ +musicbrainzapi +=============== .. automodule:: musicbrainzapi :members: @@ -9,4 +7,13 @@ musicbrainzapi :modname:`musicbrainzapi` :show-inheritance: :private-members: -Main module text + +Subpackages +----------- + +.. toctree:: + :maxdepth: 1 + + musicbrainzapi.api + musicbrainzapi.wordcloud + diff --git a/docs/source/modules/musicbrainzapi.wordcloud.resources.rst b/docs/source/modules/musicbrainzapi.wordcloud.resources.rst deleted file mode 100644 index 8a64ee0..0000000 --- a/docs/source/modules/musicbrainzapi.wordcloud.resources.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. include:: ../global.rst - -musicbrainzapi.wordcloud.resources :modname:`musicbrainzapi.wordcloud.resources` ---------------------------------------------------------------------------------- - -.. automodule:: musicbrainzapi.wordcloud.resources - :members: - :undoc-members: - :show-inheritance: - :private-members: diff --git a/docs/source/modules/musicbrainzapi.wordcloud.rst b/docs/source/modules/musicbrainzapi.wordcloud.rst index 9c42b3d..00d077a 100644 --- a/docs/source/modules/musicbrainzapi.wordcloud.rst +++ b/docs/source/modules/musicbrainzapi.wordcloud.rst @@ -1,14 +1,9 @@ -.. include:: ../global.rst - -musicbrainzapi.wordcloud :modname:`musicbrainzapi.wordcloud` --------------------------------------------------------------------------- +******************************** +musicbrainzapi.wordcloud package +******************************** .. automodule:: musicbrainzapi.wordcloud - :members: - :undoc-members: - :show-inheritance: - :private-members: - -.. toctree:: - - musicbrainzapi.wordcloud.resources + :members: + :undoc-members: + :show-inheritance: + :private-members: diff --git a/docs/source/toc.rst b/docs/source/toc.rst deleted file mode 100644 index e4796b1..0000000 --- a/docs/source/toc.rst +++ /dev/null @@ -1,23 +0,0 @@ -.. toctree:: - :maxdepth: 1 - :caption: Overview - :titlesonly: - - introduction - changelog - -.. toctree:: - :maxdepth: 4 - :caption: Modules - :titlesonly: - - modules/musicbrainzapi.rst - -.. toctree:: - :maxdepth: 4 - :caption: Submodules - :titlesonly: - - modules/musicbrainzapi.api.rst - modules/musicbrainzapi.cli.rst - modules/musicbrainzapi.wordcloud.rst diff --git a/src/musicbrainzapi/api/lyrics/director.py b/src/musicbrainzapi/api/lyrics/director.py index b44698b..d80da30 100644 --- a/src/musicbrainzapi/api/lyrics/director.py +++ b/src/musicbrainzapi/api/lyrics/director.py @@ -9,12 +9,27 @@ from musicbrainzapi.api.lyrics import Lyrics class LyricsClickDirector: - """Director for Lyrics builder. - """ + """Director for Lyrics builder.""" def __init__(self) -> None: self._builder = None + @staticmethod + def _get_product(builder_inst: LyricsBuilder) -> Lyrics: + """Returns the constructed Lyrics object + + Parameters + ---------- + builder_inst : LyricsBuilder + Builder class for Lyrics object + + Returns + ------- + Lyrics + Lyrics object + """ + return builder_inst._product + @property def builder(self) -> LyricsBuilder: return self._builder @@ -156,19 +171,3 @@ class LyricsClickDirector: self.builder._product.show_summary() self.builder._product.show_summary_statistics(group_by='year') return self - - @staticmethod - def _get_product(builder_inst: LyricsBuilder) -> Lyrics: - """Returns the constructed Lyrics object - - Parameters - ---------- - builder_inst : LyricsBuilder - Builder class for Lyrics object - - Returns - ------- - Lyrics - Lyrics object - """ - return builder_inst._product diff --git a/src/musicbrainzapi/cli/cli.py b/src/musicbrainzapi/cli/cli.py index 2ebe25f..43c2d9f 100644 --- a/src/musicbrainzapi/cli/cli.py +++ b/src/musicbrainzapi/cli/cli.py @@ -42,7 +42,7 @@ class ComplexCLI(click.MultiCommand): type=click.Path( exists=True, file_okay=False, resolve_path=True, writable=True ), - help='Path to save results.', + help='Local path to save any output files.', default=os.getcwd() ) # @click.option('-v', '--verbose', is_flag=True, help='Enables verbose mode.') @@ -53,7 +53,7 @@ class ComplexCLI(click.MultiCommand): ) @pass_environment def cli(ctx, path): - """A complex command line interface.""" + """Base command for the musicbrainzapi program.""" # ctx.verbose = verbose if path is not None: click.echo(f'Path set to {os.path.expanduser(path)}') diff --git a/src/musicbrainzapi/cli/commands/cmd_lyrics.py b/src/musicbrainzapi/cli/commands/cmd_lyrics.py index 850f80c..cffe828 100644 --- a/src/musicbrainzapi/cli/commands/cmd_lyrics.py +++ b/src/musicbrainzapi/cli/commands/cmd_lyrics.py @@ -24,7 +24,7 @@ from musicbrainzapi.api.lyrics.director import LyricsClickDirector @click.option( '--wordcloud', required=False, - help='Generate a wordcloud from lyrics.', + help='Generates a wordcloud from lyrics.', is_flag=True, default=False, ) @@ -41,7 +41,7 @@ from musicbrainzapi.api.lyrics.director import LyricsClickDirector required=False, multiple=False, type=str, - help='ISO A-2 Country code (https://en.wikipedia.org/wiki/ISO_3166-1_alpha' + help='Filter artist by country. This is optional but can narrow down a search if many artists share the same or similar names. Country must be a ISO A-2 Country code (https://en.wikipedia.org/wiki/ISO_3166-1_alpha' '-2) Example: GB', ) @click.option( @@ -63,7 +63,7 @@ def lyrics( wordcloud: bool, save_output: bool, ) -> None: - """Search for lyrics statistics of an Artist/Group. + """Search for lyrics statistics of an Artist/Group. Optionally save the results to disk, and show a wordcloud. Descriptive statistics can be shown in addition to the final average. """ director = LyricsClickDirector() builder = LyricsBuilder()