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

Merge Feature/v3 into main #254

Merged
merged 134 commits into from
Nov 27, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
134 commits
Select commit Hold shift + click to select a range
f7db07e
Add .gitignore.
EvieePy Jul 14, 2023
bae62cb
Remove Spotify Ext and Example (Need to be rewritten)
EvieePy Jul 14, 2023
fa68514
Initial 3.0 commit.
EvieePy Jul 14, 2023
175a54a
Remove filters. (Needs to be rewritten)
EvieePy Jul 14, 2023
b411f33
Update pyproject.
EvieePy Jul 14, 2023
333c34c
Add AutoPlayMode enum.
EvieePy Jul 25, 2023
b6f0dfb
Add/Change various exceptions.
EvieePy Jul 25, 2023
723d0ba
Added fetch_tracks to Pool. Various Node changes.
EvieePy Jul 25, 2023
04e5912
Fix typing issues in payloads.py
EvieePy Jul 25, 2023
bcb61cc
Add PlayableUnion
EvieePy Jul 25, 2023
0587805
Various changes to Player.
EvieePy Jul 25, 2023
9bcda6b
Fix typing on Queue. (This still needs to be reworked slightly)
EvieePy Jul 25, 2023
ceac60d
Added UpdateSessionRequest TypedDict
EvieePy Jul 25, 2023
af14f16
Added pluginInfo to Payload TypedDicts
EvieePy Jul 25, 2023
c76380f
Various changes to tracks.py
EvieePy Jul 25, 2023
ad5ab72
Remove player current track in websocket TrackEnd
EvieePy Jul 25, 2023
dd64e13
Black/isort and added __init__ imports.
EvieePy Jul 25, 2023
1b26c15
Remove double super calls
EvieePy Jul 25, 2023
81dc909
Add cast to payloads. Remove redundant assignment.
EvieePy Jul 28, 2023
7db4a5c
Use star imports.
EvieePy Aug 5, 2023
41e1a9b
Change repr in queues.
EvieePy Aug 5, 2023
4514ebb
Documentation and dunder methods in Playlist/Playable.
EvieePy Aug 5, 2023
8fb5a04
Small fixes, docs and run lints.
EvieePy Aug 5, 2023
e0ea935
Return Playlist without list container.
EvieePy Aug 5, 2023
007d725
Typing fix to websocket.py
EvieePy Aug 27, 2023
31b65d6
Add PlaylistInfo
EvieePy Aug 27, 2023
08fdea4
Remove redundant imports, small cleanup.
EvieePy Aug 27, 2023
c3da7aa
`endTime` is optional.
EvieePy Sep 13, 2023
8e849a6
Start of the changes to the Queues.
EvieePy Sep 13, 2023
be1206c
Add pyright strict to pyproject.toml
EvieePy Sep 13, 2023
6bf0a25
Add original to Start/End events.
EvieePy Sep 13, 2023
51f6ab4
Various changes/additions to player.
EvieePy Sep 13, 2023
68a5ce0
Run black.
EvieePy Sep 13, 2023
4737639
Return NotImplemented rather than raise.
EvieePy Sep 13, 2023
c7952fb
Remove playable.py
EvieePy Sep 13, 2023
4d71573
Add LFU cache.
EvieePy Sep 13, 2023
9d98e19
Add request caching options and bump version.
EvieePy Sep 13, 2023
7860052
Add extra check in toggle_cache.
EvieePy Sep 13, 2023
37309f2
Fix toggle_cache
EvieePy Sep 13, 2023
e0a6f97
Remove unused f-strings and else
chillymosh Sep 13, 2023
a474bb2
Add NodeException
EvieePy Sep 14, 2023
28b0397
Changes to some Node connection/disconnect logic.
EvieePy Sep 14, 2023
943d1e8
Websocket 404/>=500 error handling and cleanups.
EvieePy Sep 14, 2023
3745127
Run black.
EvieePy Sep 14, 2023
6d12813
Bump version - 3.0.0b3
EvieePy Sep 14, 2023
ae04c67
Check if loop is not running
EvieePy Sep 14, 2023
ac42441
Fix logic error in get_node...Woops
EvieePy Sep 29, 2023
1a64385
Bump version
EvieePy Sep 29, 2023
b31d628
Add initial AutoPlay code.
EvieePy Oct 6, 2023
0505e03
Add recommended property to Playable.
EvieePy Oct 6, 2023
750b114
Queue can add list of Playable. Add contains dunder to Queue.
EvieePy Oct 6, 2023
c9253e1
dd closing logic to Node/Pool. Change cache logic.
EvieePy Oct 6, 2023
97a8e51
Bump version (Beta)
EvieePy Oct 6, 2023
6810046
Add YouTubeMusic recommendations and queue history.
EvieePy Oct 9, 2023
b4eadad
Add iter dunder to queue.
EvieePy Oct 9, 2023
8d76aab
Add simple example (examples/simple.py)
EvieePy Oct 9, 2023
72a65a5
Bump version (Beta)
EvieePy Oct 9, 2023
a4d9393
Add examples folder to pyright ignore.
EvieePy Oct 9, 2023
b59ed99
Optimise AutoPlay bias. Add add_history kwarg. Small bug fix in AutoPlay
EvieePy Oct 9, 2023
1704b9d
Bump version (Beta)
EvieePy Oct 9, 2023
db1ffd3
Load balancing of Lavalink Nodes
chillymosh Oct 11, 2023
77cca6b
slicing optimisations
chillymosh Oct 11, 2023
cc5f025
Prevent duplicate track playing on autoplay
chillymosh Oct 11, 2023
88a8595
refactor _do_recommendation
chillymosh Oct 11, 2023
2a86f4b
Version bump
chillymosh Oct 11, 2023
449f51c
Update Playable __eq__ and pop
chillymosh Oct 12, 2023
3819f5f
version bump
chillymosh Oct 12, 2023
c9c3e20
Add position and ping to player.
EvieePy Oct 15, 2023
b4146f4
Run black
EvieePy Oct 15, 2023
16992f8
Bump version (Beta)
EvieePy Oct 15, 2023
423bb0d
Add send method. Add resume_timeout. Fix update session method. (Node)
EvieePy Oct 17, 2023
2fda5c0
Add NodeReadyEventPayload
EvieePy Oct 17, 2023
ea46e21
Add documentation to Player.
EvieePy Oct 17, 2023
52b1cc2
Add an async delete to Queue.
EvieePy Oct 17, 2023
6c54fbb
Use new payload to dispatch node ready events.
EvieePy Oct 17, 2023
4880c11
Bump version (Beta)
EvieePy Oct 17, 2023
4a2c853
Update example simple.py
EvieePy Oct 18, 2023
0ed2d74
Add documentation for wavelink 3 (Beta)
EvieePy Oct 18, 2023
303c955
Remove system packages .readthedocs.yml
EvieePy Oct 18, 2023
c250bfc
Add shuffle and clear to Queue
chillymosh Oct 18, 2023
8618ff3
Version bump
chillymosh Oct 18, 2023
f3cdf76
Fixed typos in the docs (#243)
itzayush69 Oct 18, 2023
93a4c24
Basic fault handler in AutoPlay.
EvieePy Oct 19, 2023
20ed989
Merge remote-tracking branch 'origin/feature/v3' into feature/v3
EvieePy Oct 19, 2023
a545bc5
Bump version (Beta)
EvieePy Oct 19, 2023
9808898
Fix some Playlis docs
EvieePy Nov 5, 2023
7bae9cf
Add QueueMode for queue looping.
EvieePy Nov 5, 2023
f6d1e32
Exclude venv from pyright.
EvieePy Nov 5, 2023
5a61dc2
Add .vscode/ to .gitignore.
EvieePy Nov 5, 2023
d2d0740
Bump version (Beta)
EvieePy Nov 5, 2023
fa1cc91
Update version 3 readme.
EvieePy Nov 5, 2023
06c7bf9
Update README.rst
EvieePy Nov 5, 2023
cbf6cfb
Add async_timeout to requirements.txt
EvieePy Nov 5, 2023
4c12ddc
Bump version for Pre-Release.
EvieePy Nov 5, 2023
1615d1d
Add start of migrating guide.
EvieePy Nov 5, 2023
ad0905e
Remove extra backticks
chillymosh Nov 5, 2023
f56d7a7
Remove another extra backtick
chillymosh Nov 5, 2023
4b1e43f
Fix/v3 missing py.typed file (#245)
Sachaa-Thanasius Nov 8, 2023
eca4e42
Run black and isort.
EvieePy Nov 8, 2023
d42cb14
Add missing return
EvieePy Nov 8, 2023
d4f5ada
Fix pyright ignore statements in websocket.
EvieePy Nov 8, 2023
f7354e9
Add Filters implementation.
EvieePy Nov 8, 2023
bc62064
Run black and isort.
EvieePy Nov 8, 2023
fc8f7f3
Update docs for filters.
EvieePy Nov 8, 2023
db661a7
Bump version (Beta)
EvieePy Nov 8, 2023
ac6f428
Add a filters example to simple.py
EvieePy Nov 8, 2023
664e1e7
Add GitHub actions
EvieePy Nov 8, 2023
480a777
Add status to NodeException.
EvieePy Nov 8, 2023
169a00f
Raise NodeExcpetion in fatal requests.
EvieePy Nov 8, 2023
3069cab
Ensure we only update node when it's ready.
EvieePy Nov 8, 2023
57584f7
Run black and isort.
EvieePy Nov 8, 2023
96d003c
Fix homepage docs
EvieePy Nov 8, 2023
0698616
Bump version (Release Candidate)
EvieePy Nov 8, 2023
05dc4be
Remove voice protocol special member docs.
EvieePy Nov 8, 2023
7cf73a0
Some queue fixes.
EvieePy Nov 8, 2023
3ca0816
Add certain attrs back to history
EvieePy Nov 10, 2023
5830f9b
Fix LFU cache.
EvieePy Nov 18, 2023
7f4bcac
Bump Version (RC2)
EvieePy Nov 18, 2023
5510660
Use YTM as the default search
EvieePy Nov 19, 2023
17154de
Add types to pyproject
EvieePy Nov 19, 2023
94ea73e
Clean up some typing syntax (#247)
Sachaa-Thanasius Nov 26, 2023
1656be1
Add move_to to player.
EvieePy Nov 27, 2023
cfba47f
Run black
EvieePy Nov 27, 2023
b60b53d
Change documentation
EvieePy Nov 27, 2023
8d69d9d
Update README
EvieePy Nov 27, 2023
3f6350c
Bump version (Release)
EvieePy Nov 27, 2023
417ce47
Fix typo in README
EvieePy Nov 27, 2023
1d973b4
Run black
EvieePy Nov 27, 2023
38af704
Fix conflicts with branch merge.
EvieePy Nov 27, 2023
ec0c5e8
One new weird pyright error?
EvieePy Nov 27, 2023
5f64fd8
Run isort
EvieePy Nov 27, 2023
7e948f5
Add self_deaf/mute to move_to
EvieePy Nov 27, 2023
d37f3b3
Remove unnecessary f-string
EvieePy Nov 27, 2023
fa23957
Publish to PyPi workflow
EvieePy Nov 27, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions .github/workflows/build_and_publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Publish to PyPi @ Release

on:
release:
types: [published]

jobs:
build:
name: Build distribution
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.x"
- name: Install pypa/build
run: >-
python3 -m
pip install
build
--user
- name: Build source and wheels
run: python3 -m build
- name: Store the distribution packages
uses: actions/upload-artifact@v3
with:
name: python-package-distributions
path: dist/

publish-to-pypi:
name: Upload to PyPi
needs:
- build
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/p/Wavelink
permissions:
id-token: write

steps:
- name: Download all the dists
uses: actions/download-artifact@v3
with:
name: python-package-distributions
path: dist/
- name: Publish distribution to PyPi
uses: pypa/gh-action-pypi-publish@release/v1
55 changes: 55 additions & 0 deletions .github/workflows/coverage_and_lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Type Coverage and Linting

on:
push:
branches:
- main
pull_request:
branches:
- main
types: [opened, reopened, synchronize]

jobs:
check:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.11", "3.x"]

name: "Type Coverage and Linting @ ${{ matrix.python-version }}"
steps:
- name: "Checkout Repository"
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: "Setup Python @ ${{ matrix.python-version }}"
id: setup-python
uses: actions/setup-python@v4
with:
python-version: "${{ matrix.python-version }}"
cache: "pip"

- name: "Install Python deps @ ${{ matrix.python-version }}"
id: install-deps
run: |
pip install -U -r requirements.txt
- name: "Run Pyright @ ${{ matrix.python-version }}"
uses: jakebailey/pyright-action@v1
with:
no-comments: ${{ matrix.python-version != '3.x' }}
warnings: false

- name: Lint
if: ${{ always() && steps.install-deps.outcome == 'success' }}
uses: github/super-linter/slim@v4
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DEFAULT_BRANCH: main
VALIDATE_ALL_CODEBASE: false
VALIDATE_PYTHON_BLACK: true
VALIDATE_PYTHON_ISORT: true
LINTER_RULES_PATH: /
PYTHON_ISORT_CONFIG_FILE: pyproject.toml
PYTHON_BLACK_CONFIG_FILE: pyproject.toml
162 changes: 162 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,162 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock

# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/#use-with-ide
.pdm.toml

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/

.vscode/
3 changes: 1 addition & 2 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,4 @@ python:
- requirements: requirements.txt
- requirements: docs/requirements.txt
- method: pip
path: .
system_packages: true
path: .
Loading