Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Iteration 'stable beta 1' #13

Merged
merged 26 commits into from
Mar 3, 2022
Merged

Iteration 'stable beta 1' #13

merged 26 commits into from
Mar 3, 2022

Conversation

hotenov
Copy link
Owner

@hotenov hotenov commented Mar 3, 2022

New docs for v3

Also updated:   • markupsafe (2.0.1 -> 2.1.0)   • docutils (0.16 -> 0.17.1)   • filelock (3.5.1 -> 3.6.0)
Were installed:  • zipp (3.7.0)   • importlib-metadata (4.11.1)
Also were updated:  • sphinx (4.3.2 -> 4.4.0)
Add two meta tags on index page
… updated test with assigning date as datetime
@hotenov hotenov merged commit c595eeb into pre-release Mar 3, 2022
hotenov added a commit that referenced this pull request Mar 3, 2022
* chore: 💥 A new version from scratch with Hypermodern Python project template

With cookiecutter project template v2021.6.16
Delete old LICENSE and README.md files
Add my label setting for GitHub
Add my ignore file for Python projects
Remove supporting of Python 3.6 from template

Completely new code (without any compatibility with previous script versions)

* ci: 🔧 Add excluded files for pre-commit

Previous versions of scripts

* style: 🎨 Apply pre-commit changes for 3 files in .github folder

* chore: Update sponsor links in FUNDING.yml

* ci: Temporary disable 'safety' job until 'coverage' update to 6.0b1

* ci: Add 'pre-release' workflow for new 'pre-release' branch

to see dev progress without affecting 'main' branch and release page

* chore: 🔥 Remove old dist files (compiled for v2.0.5)

* chore: 🙈 Return ignoring 'dist' folder after deleting old files (#5)

Testing pre-release branch for incoming PR

* Add alpha 'parser' module (archive page) (#6)

* chore: 🙈 Return ignoring 'dist' folder after deleting old files

* chore: Add blank files for future code structure

* chore: ➕ Add requests, beautifulsoup4, lxml for parsing HTML

2.26.0 for requests
4.9.3 for beautifulsoup4
4.6.3 for lxml

* chore: ➕ Add 'requests-file' to dev deps for future unit-tests

* chore: ➕ Add requests-mock 1.9.3 to dev dependencies

* feat(parser): ✨ Add function to parse archive page

Decople separate modules: config, parser, downloader from lep module

* test(parser): ✅ Add test for checking mocked response of archive page

Add test file with presaved archive HTML page

* chore: Add test HTML files for several episodes

to mock them in tests

* refactor(parser): 🚧 Update two functions for parsing all links and getting text link by href

* chore: 🔧 Add mapping dict for 4 links and their text

* test: 🚧 Add PoC test for mocking several episode pages

* chore: 🔧 Update mypy settings in pyproject.toml

- Decrease 'fail_under' downto 85 (during active develpment stage)
- Use new syntax (section) for ignoring imports in mypy for several packages

* chore: 🔧 Rename Tuple with irrelevant links

* chore: ♻️ Improve typings and function names

Add raised exceptions (try/except) for function to get text of HTML

* test(parser): ✅ Add several general tests for parsing functions

* ci: 🔧 Add installing of 'requests_mock' into 'tests' Nox session

* ci: 🔧 Exclude HTML files from 'pre-commit' hooks

* style: 🎨 Commit changes which were modified by 'pre-commit' hooks

* style: 🎨 Fix flake8 errors

* chore: ➕ Add flake8 plugins to dev deps

flake8-black (0.2.3)
flake8-import-order (0.18.1)

* chore: 🔧 Change flake8 config: max-line-length = 120 and ignore long lines (B950)

* ci: 🔧 Add installation of 'requests_mock' into 'typeguard' Nox session

* chore: ➖ Remove unused 'requests-file' from dev-deps

* Add writing and updating JSON database (#7)

New changes from #6:

* fix(parser): Make links texts safe for windows path

* test(parser): ✅ Update test with getting link text by href

* chore: ➕ Add 'rope' package in dev deps for refactoring in VS Code

* feat(parser): ✨ Parse episode page (date and episode number)

Add LepEpisode class (with a couple of basic attrs)
Add parsing functions for episode date and number
Add replacing of invalid path characters for link title
Add and update unit-tests to demonstrate that episode parsing (isolated) works

* refactor(parser): ♻️ Add returning of URL final location during getting response

Return error text instead of raising exceptions

* test(parser): ✅ Add tests to check final location after redirects

Update tests for differend exceptions during getting response

* feat(parser): ✨ Add index generating for post URL

(for quick search / reference in the future)

* test(parser): ✅ Add two tests to check index generation

* feat: Add 'admin_note' attribute to LepEpisode class

* feat(parser): Add logic for bad response of parsing page

* test(parser): ✅ Update tests taking into account response status for parsing page

Add test to check return value (None) for non-episode link
Black formatting changes

* style(parser): 🏷️ Fix 'mypy' and 'pre-commit' errors

* feat(parser): ✨ Add 'parsing_utc' attribute for LepEpisode class

Add storing parsing datetime in each episode

* test(parser): ✅ Update test to check parsing all links from list

Add non-episode HTML and link to check when parsed episode is empty
Return 'fail_under' = 100 in pyroject.toml

* feat(parser): ✨ Add function to parsing links to episode audio (parts)

Add attributes 'post_type' and 'audios' for LepEpisode class

* test(parser): ✅ Add minimum sufficient tests (to satisfy Coverage)

* refactor(parser): ♻️ Unify parsing part of archive page (tag <article> only)

Rename soup objects

* style: 🎨 Fix 'pre-commit' errors for imports order

* refactor: ♻️ Change default value for 'audios' attribute to None

because 'flake8-bugbear' error B006 was raised

* perf(parser): ⚡ Change algorithm to extract episode links and their texts

Remove mapping dict i.e. there are no duplicates now

* test(parser): ✅ Update tests according to new archive parsing algorythm

Remove tests for two deleted functions

* test(parser): ✅ Add two tests to check parsing mp3 links for certain cases

Exclude links to separate short audio
No dupplicates for 'audio' word in the URL

* style: ✏️ Fix wrong writing of 'non-episode' word

* feat(parser): ✨ Add function for descending sorting of parsed episodes

Change returned type of episodes list to List[LepEpisode]

* test(parser): ✅ Add test to check episodes sorting

Modify existing tests to follow changes for returned type of parsing function

* fix(parser): 🐛 Change secondary key sorting to 'index'

becuase could be episodes with the same date but without episode number
Update unit-test

* chore: 🔧 Add JSON_DB_URL configuration parameter

* feat: 🏷️ Add 'LepJsonEncoder' class for json dump operations

* feat(parser): ✨ Add rough implementation of 'main' method with parsing actions (including writing JSON file)

* test(parser): ✅ Add tests for writing and updating JSON database

Add JSON (pretty) fixture with test database

* style: 🎨 Fix imports by pre-commit

Add json files to exclude types in '.pre-commit-config.yaml'

* Add 'downloader' module (alpha) (#8)

* refactor: ♻️ Move json object_hook into 'lep' module for unified importing in other modules

Update imports in parser and test_parser modules

* refactor: ♻️ Add new module 'data_getter' and move two functions here

update imports for test_parser.py

* refactor: ♻️ Little changes in function argument order and types hintings

change to empty list for return result after errors

* feat(downloader): ✨ Add several downloader functions

 select_all_audio_episodes
 get_audios_data
 bind_name_and_file_url
 detect_existing_files

* test(downloader): ✅ Add dirty tests for the first downloder functions

* refactor(downloader): ♻️ Handle None for list of episode audios

generalize type of audios_data list (object)

* test(downloader): ✅ Add test to check list of audios against None (null in JSON notation)

* style(parser): 🎨 Fix imports order by pre-commit

* style(downloader): 🎨 Add typing aliases for long 'downloder' types

correct typing inports (import specific class)

* chore: ➕ Add to dev 'yapf' (0.31.0) for quick code formatting in VS Code

also was updated: xdoctest (0.15.9 -> 0.15.10)

* chore: 🔧 Add 'isort' configuration section in 'pyproject.toml'

* feat(downloader): ✨ Add basic functionality to download files

* test(downloader): ✅ Add ugly tests with mocked audio files

Add two test mp3 files (for mocking purpose)
Delete comments block from older tests

* style(parser): 🎨 Apply 'pre-commit' changes

* style(downloader): 📄 Add MIT License Boilerplate to downloder module and its test module.

* style(downloader): 🎨 Delete empty line after license

* Refactor parser and downloader tests (#9)

* test(parser): ♻️ Add fixtures for returning mock paths and text of mocked archive HTML page

* test(parser): ✅ Update parser tests with using fixture 'archive_page_mock' instead of module function

* test(parser): ✅ Update tests with new fixtures for parsing single page

Move mapping URL - HTML dictionary into conftest.py

* chore: 🔧 Add LOCAL_JSON_DB constant in config.py

Add license boilerplate
Format map dict with long lines

* test(parser): ✅ Add fixtures for mocking JSON db and update tests with them

* test(parser): ✅ Add fixture with requests.Session and update parser tests with it

* style(parser): 🎨 Format code with max line length = 80 (ignore in test data and long URLs)

Add license boilerplate

* chore: ⬆️ Update typeguard (2.12.1 -> 2.13.0)

* test: Move package's imports to fixtures defenitions (to fix typeguard imort error)

* test(parser): ♻️ Add fixtures with parsing mocked results

* test(parser): ✅ Update parsing archive tests with new fixtures

* test(parser): ♻️ Add fixture with temp direcory for pytest session

Update tests with temp file in 'test_parser.py'

* test(downloader): ♻️ Update tests with built-in 'tmp_path' fixture

* test(downloader): ♻️ Add fixtures to mock mp3 files and update tests with them

Add ignoring tag for URL lines exceeding the limit =80

* test(downloader): ♻️ Add fixtures to mock different extractions drom JSON db

Update tests with new fixtures, refactor imports

* test(parser): ✅ Add test to check skipping non-episode URL during parsing

* Add alpha CLI (with 'lazy' commands) (#10)

* chore: ⬆️ Update click (8.0.1 -> 8.0.3)

* chore: ➕ Add single-source (0.2.0)

* refactor(console): 🩹 Add __version__ definition in __init__.py (to extract it from 'pyproject.toml')

Pass version for main() click command

* chore: Bump version to 3.0.0a1

* test(console): ✅ Add test to check --version option

* feat(console): 🚧 Add stubs for cli click group and click commands (download and parse)

* test(console): ♻️ Add 'runner' fixture for invoking CLI in tests

* test(console): ✅ Add two simple tests to check running CLI without arguments and with --version option

Remove the now unnecessary module 'test_main.py'

* refactor(console): ♻️ Change cli() to support 'lazy' commands from plugin folder

* test(console): ♻️ Add fixture to get CLI runner result passing only parameters for it

* test(console): ✅ Add tests to check --help otion and running with unknown command

Replace 'runner' fixture with new 'run_cli_with_args'

* refactor: ♻️ Change type detection for plain text in db_episodes (to satisfy mypy)

Add MIT license boilerplate
Format code with line length limit = 80

* refactor(parser): ♻️ Add final print message when JSON db is empty

Format 'do_parsing_actions' function with line length limit = 80

* feat(console): 🚧 Call parsing method for 'parse' command withot options

* test(console): ✅ Add tests with basic negative scenarios for 'parse' CLI command

* test(downloader): 🚧 Add stub test to satisfy coverage

* docs: 📝 Replace deleted main function with cli.cli()

* Add 'download' command (functionality) with basic options (#11)

* refactor: ♻️ Change serialization of LepEpisode object to manual dictionary (replace __dict__ attribute)

* style: 🎨 Add license boilerplate, change typing imports, format docstring to line limit =80

* refactor: ♻️ Move DEFAULT_JSON_NAME to config.py, change type (to Set) for irrelevant links

* refactor(parser): 🚧 Add drafts of new classes: Lep, Archive, LepParser, SoupParser

* test(parser): ✅ Update tests checking index with new 'archive' object

* refactor: 🏗️ Add LepEpisodeList class, class variables for Archive class, rename attr to 'parsed_at'

* refactor: 🥅 Add module with custom exceptions

* refactor(parser): 🏗️ Add new classes ArchiveParser and EpisodeParser, re-write all functions using OOP approach

* refactor: ♻️ Change function returning type to new LepEpisodeList class

* test(parser): ✅ Update tests with new classes

* test: ✅ Update renamed field 'parsed_at' in fixture JSON file and test_downloader module

* test(console): Skip one test until feature implementation

* test: ✅ Update fixtures using new classes

* chore: ⬆️ Update typeguard (2.13.0 -> 2.13.3)

I was hoping this would solve the problem with reversed dict (but it's only for Python 3.7.0)

* ci: 👷 Exclude Python 3.7 from python_versions list

Due to errors with Reversible type for Python 3.7.0

* refactor(parser): ♻️ Remove redundant IF block checking that only duplicated links on page

* test(parser): ✅ Add test to check that script does not fail when only duplicated links on archive page

* refactor(parser): ♻️ Move up 'pre-parsing' step and change its logic for ArchiveParser class

* test(parser): ✅ Update tests with 'pre-parsing' action

* test(parser): ✅ Add test to check raising NotImplementedError for methods in subclasses of LepParser class

* test(parser): ✅ Add tests to check invalid date in URL

* refactor(parser): 🏗️ Change 'date' attr type to datetime for LepEpisode class

  Support conversion date from string and from datetime offset-naive value
  Add __lt__ and __eq__ methods to implement native sort

* test(parser): ✅ Update tests and one fixture to use (check) episode date as datetime

* fix(downloader): 💩 Change retrieving of short date for audio filename

* refactor(parser): ♻️ Add coputed property 'post_title' for LepEpisode class (to use as safe filname during dowloading)

  Keep origin post title in '_origin_post_title' attr

* test(parser): ✅ Add test to check replacing of invalid path characters in post title attr

* fix(parser): 🐛 Fix sorting by two attributes (date, index) by updating condition in __lt__ method of LepEpisode class

* test(parser): ✅ Add test to check comparison operators (<, ==) and update tests checking sorting (based on these operators)

* test: ✅ Add test to check __repr__ method for LepEpisode object and change a little repr itself

* test: ✅ Add test to check passing episode date directly as 'datetime' type

* refactor: 🏗️ Update Lep class to have one plae for storing global session object

  Move two methods 'get_web_document' and 'extract_only_valid_episodes' into Lep class (as class methods)

* test: ✅ Update tests with regard to Lep class modifications

* refactor(parser): ♻️ Remove redundant list comprehension

* refactor: ♻️ Create class method 'get_db_episodes' to share for other modules

  Add method 'filter_by_type' for LepEpisodeList class
  Add class variables 'json_body' and 'db_episodes' in :ep class

* refactor: 🥅 Add new custom exceptions DataBaseUnavailable and NoEpisodesInDataBase

* refactor(parser): ♻️ Use new exception NoEpisodesInDataBase and store db episodes in Lep's class variable

* refactor(downloader): 💩 Attempt to implement OOP for downloader module

  Add class Downloader with shared dictonaries
  Add function to constract bunch of links for downloading

* test(downloader): ✅ Update tests and fixtures due to modifications in downloader module

* refactor(parser): ♻️ Remove redundant IF block (because will be exception earlier in this case)

* refactor(console): 🥅 Add handling custom exceptions for 'parse' command

* test: ✅ Update tests where new custom exceptions are raised now

* refactor(downloader): ♻️ Add field '_short_date' for LepEpisode which is set during JSON decoding

* refactor: 🏗️ Replace 'audios' list with 'files' dictionary. Update JSON decoding hook.

* fix(parser): 🐛 Fix missed url assigning for 'successfully' parsed episode. Update assigning audios into files dict

* test: 🤡 Add updated JSON mock file (without duplicates and 'files' dict)

* test: ✅ Update all tests with improved JSON structure

* chore: 🔧 Bump version to 3.0.0a2

  No duplicates in archive links, updated JSON structure with 'files' dictionary, safe post names

* refactor(downloader): 🏗️ Add two dataclasses LepFile and Audio; Add functions for gathering audio files from episodes list

* test(downloader): ✅ Update tests with new dataclasses and gathering function for audio files

* test(downloader): ✅ Add test to check collecting auxiliary audio links

* fix(downloader): 🐛 Fix a bug with setting 2nd and 3rd links for audio files

  Move fields 'secondary_url' and 'tertiary_url' to base dataclass (to fix 'mypy' errors)

* refactor(downloader): ♻️ Move getting DB episodes into separate method, Update downloading function for LepFile list

* refactor: Add new EmptyDownloadsBunch exception

* test(downloader): ✅ Update tests with operating LepFile objects

 Add checks for two exceptions NoEpisodesInDataBase and EmptyDownloadsBunch
 Test of using already parsed DB episodes.

* style(console): 🎨 Fix length limit >80 chars

* style: 🚨 Fix BLK100 errors after 'pre-commit' scanning

* refactor(downloader): ♻️ Update function for detecting existing files in target folder. Change type for shared list 'existed'

* test(downloader): ✅ Update test with checking files separating out from existing files

* refactor(downloader): ♻️ Change algorithm for downloading auxiliary links to files

* refactor(downloader): ♻️ Change type of two shared class variables 'downloaded' and 'not_found' to list of LepFile objects

* test(downloader): ✅ Update tests to initialize empty lists instead of dictionaries

* feat(downloader): ✨ Add function to populate default secondary url (to reduce the size of JSON database file)

  Add unit test to check auto populating of secondary url
  Add config constant DOWNLOADS_BASE_URL

* feat(downloader): ✨ Add PagePDF dataclass and 'page_pdf' dictionary key to strore links to page PDF

* test(downloader): ✅ Update tests with new 'page_pdf' file and update mocked JSON database file

* chore: Bump version to 3.0.0a3

 New 'page_pdf' file

* feat(parser): ✨ Add parsing HTML title (not storing in JSON)

* test(parser): ✅ Add test to check parsing of HTML page title

* refactor(downloader): ♻️ Add LepFileList class and change a liitle 'gather_all_files' function

* test(downloader): ✅ Update tests with new LepFileList class and its instance method 'filter_by_type'

* style: ⚰️ Clean code (remove old commented lines)

* feat: ✨ Add two LepEpisodeList filter methods (by episode number and by date)

* fix(downloader): 🐛 Fix appending 'not_found' file after trying all auxiliary links

  Remove print from OSError exception during downloading file

* feat(console): ✨ Implement 'download' command with basic options

* test: ✅ Add autouse fixture for clearing all shared lists

* test(console): ✅ Add tests for basic options

* chore: ➕ Add 'pytest-mock' (3.6.1) into dev dependencies

  Update 'noxfile.py' to install 'pytest-mock'

* test(console): ✅ Add two tests to check validations for '--dest' option (when PermissionError and OSError occurs)

* refactor(console): ♻️ Extract MyCLI class and decorator with common options into separate module 'cli_shared.py'

* refactor(console): ♻️ Make running script without mentioning 'download' commad explicitly (passing options into it)

  Add 'common_options' decorator to cli() command group and 'download' command

* test(console): ✅ Update imports of 'cli' module in tests (do inner import)

  Add one test to check passing of options to 'download' command

* chore: ⬆️ Upgrade version of 'typeguard' to '2.13.3'

* feat(console): ✨ Add function to pause script execution until 'Enter' key will be pressed

* test(console): ✅ Add tests to check pressing 'Enter' at the end and interrupting execution in 'quiet' mode (for two negative scenario)

* style(console): 🚨 Fix 'pre-commit' error with D202 No blank lines allowed after function docstring

* chore: Bump version to 3.0.0a4

  Add 'download' CLI command with basic options

* refactor: ♻️ Make 'page_pdf' key optional in 'files' dictionary of LepEpisode object

* chore: 🤡 Update mocked JSON database (without optional 'page_pdf' now)

* feat(downloader): ✨ Add gathering new type of files 'ATrack' (audio track for video episodes)

* test(downloader): ✅ Add tests to check gathering single-part audio track and multi-part audio track

* refactor(console): ♻️ Add ATrack type to default filter for files (now Audio + ATrack)

* refactor(parser): 🚧 Start to refactor 'parser' module

* refactor(parser): ♻️ Make Archive class responsible for parsing actions

* refactor: ♻️ Fix attribute 'session' for Lep and Archive classes / instances

* refactor: ♻️ Chnage 'downloader' structure, Move some functions to 'LepDL' class

  Remove class varibales lists

* refactor(downloader): ♻️ Add method 'detach_existed_files' to simplify function invocation

* ci: 💚 Remove sessions in Python 3.7 (due to 'mypy' fails)

* Iteration 'alpha 5' (#12)

* feat(console): ✨ Add option '--with-html' to save HTMLs duuring parsing

  Add function for saving text to HTML file
  Add global variables to control saving HTMLs

* refactor(downloader): ⚰️ Remove duplicated module variable (it has been moved to 'lep.py')

* fix(parser): 🐛 Fix converting to lowercase for URL (only %-escaped characters in it)

* fix(downloader): 🐛 Fix wrong filtering for confused interval of dates or episode numbers (swap start and end values)

* feat: ✨ Add three parsing mode (raw, fetch, pull) controlling with choice option '--mode' for 'parse' command

* feat(console): ✨ Add option '--dest' for 'parse' to specify folder for JSON parsing result file

* test(downloader): ♻️ Redefine 'run_cli_with_args' with more unified invocation of inner function

* chore: ➕ Add 'loguru' (0.6.0)

* refactor(console): ♻️ Update __main__.py with more pythonic way of main() function call

* feat: 💩 Add logging and begin to replace print messages via custom logger

* refactor: ♻️ Replace all print() statements with custom message method

  Update tests (and move) to cli tests modules to check console messages

* refactor(parser): 🔊 Add log messages for NotEpisodeURLError and LepEpisodeNotFound (during parsing)

  Add one test for checking 'Non-episode URL' record in the log file

* refactor: 🔊 Improve logging implementation (via new class LepLog and passing its instance for each running)

Add several tests for logfile messages

* refactor(console): ♻️ Replace function 'update_wrapper' with concise 'wraps' decorator

* feat(parser): ✨ Add option '--db-url / -db' for specifying custom JSON database URL

* refactor(downloader): ♻️ Remove re-using database episodes after parse command (commands will be executed separately)

* refactor(console): ♻️ Replace all click.echo() statements with 'loguru' custom prints

Add handling of base Exception for parsing action

* refactor(parser): ♻️ Add two attributes: 'with_html' and 'html_path' for Archive class (to avoid changing of global variables)

* refactor(parser): ♻️ Move 'write_text_to_html' to Archive instance method

Add writing log messages when 'writing' exceptions arise

* style(parser): 🔊 Add log(print) message about successfully parsed episode

* refactor(parser): ♻️ Add storing parsed episodes in click's ctx.obj (to use in internal commands)

* chore: 🙈 Add two internal click commands

* chore: 🔧 Ignore files with internal commands for 'mypy' and 'pre-commit' tools

* chore(parser): 🤡 Add compact JSON dump (minified) and update JSON mocked database file

* chore(console): 🚸 Add second (short) script name 'lep-dl'

* chore(parser): 🤡 Populate 'updated_at' date during parsing (equal 'parsed_at') and update JSON mocked database

* feat(downloader): ✨ Add comprehensive print message for provided episode interval

  Fixing #3

* style(downloader): 🚨 Fix black formatting to satisfy 'pre-commit'

* ci: 👷 Add support for Python 3.10 and refresh GA to latest (basic) updates in 'hypermodern-pytho' cookiecutter template

* chore: ⬆️ Upgrade all dev dependencies and up Python version to 3.8

* fix(parser): 🐛 Change (and move) IF block when checking length of episode updates (to fix new 'mypy' warning "Statement is unreachable")

Also add one more case to downloader unit test checking print for the last episode

* refactor: 🚨 Correct exceptions naming (with suffix Error, to fix new flake8 warning N818)

* test: 💩 Exclude two lines of code from meticulous coverage in Python 3.10

* refactor(console): 🚨 Fix Exception Chaining (flake8 B904)

* ci: 👷 Enable 'safety' Nox session again (it passes with latest Python (3.10) and upgraded dependencies)

* test(downloader): ✅ Fix concurrency issue during parallel tests running

* chore: Bump version to 3.0.0a5

* ci: 💚 Quote number of Python versions

* ci: 💚 Comment one test (not a crossplatform check)

* Iteration 'stable beta 1 - new docs' (#13)

* chore: ➕ Add 'furo' (2022.2.14) RTD theme and remove 'sphinx-rtd-theme'

Also updated:   • markupsafe (2.0.1 -> 2.1.0)   • docutils (0.16 -> 0.17.1)   • filelock (3.5.1 -> 3.6.0)

* build: 👷 Integrate Furo them into Nox sessions and update docs build config

* chore: ⬆️ Upgrade python to ^3.8.0

Were installed:  • zipp (3.7.0)   • importlib-metadata (4.11.1)
Also were updated:  • sphinx (4.3.2 -> 4.4.0)

* docs: 📝 Update boilerplate README

* docs: 📝 Add manpage (renamed usage) and update generated help output (only for download command)

* docs: 📝 Add 'Usage Examples' page

* docs: 📝 Add Motivation page

Add two meta tags on index page

* build: 📝 Update reference.rst bu adding auto generated description for 4 main modules

* docs: 📝 Update Readme using anonymous reference ('double underscores') for licenses links

* docs: 📝 Add detailed docstrings for 'lep.py'

* test(console): ✅ Update two test to fix concurrency issues during paralell tests execution

* docs(downloader): 📝 Add docstrings for 'downloader.py'

* docs(parser): 📝 Add docstrings for 'parser.py'

* docs: 📝 Add docstrings for 'exceptions.py'

* docs: 📝 Fix two little mistakes in lep's docstrings

* style: 🚨 Fix linter errors by 'pre-commit' session

* chore: 🔧 Update .flake8 config to set max-line-length = 80

* docs(console): 📝 Update metavar values for path options and '--episode' option

* docs: 📝 Update links to Example Usage and Man Page, Add link to RTD website only for GitHub

* chore: 🔧 Update config constants with production URLs

* fix: 🐛 Correct 'short_date' property for LepEpisode (must be original date, not after conversion to UTC)

* docs: 📝 Add LEP YouTube link on Readme and update required time and storage for download all episodes

* fix: 🐛 Fix wrong short date again (episode datetime is not converted to UTC now)

* test: ✅ Add tests to check date filter for date close to midnight and updated test with assigning date as datetime

* chore: Bump to 3.0.0b1

* test(console): ✅ Update version checking (just "3.")

* docs: 📝 Remove "raw" directive from README to be rendered on PyPI
@hotenov hotenov deleted the new-docs-for-v3 branch March 19, 2022 06:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant