From 924c4b3df362135a7cdb031461319dc0db6b56b6 Mon Sep 17 00:00:00 2001 From: Vincent Poulailleau Date: Mon, 30 Mar 2020 12:38:45 +0200 Subject: [PATCH 01/83] improve formatting of last chapter use list instead of quote --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index c5253fc..ed1b987 100644 --- a/README.md +++ b/README.md @@ -294,7 +294,7 @@ Simplifies creation of data classes from dictionaries. Converting from dict to d # Interesting Tidbits -> Using --prompt to name your virtualenv for easy identification later on is something I use widely now. [https://pythonbytes.fm/episodes/show/168/race-your-donkey-car-with-python](https://pythonbytes.fm/episodes/show/168/race-your-donkey-car-with-python) -> [Python Graph Gallery](https://python-graph-gallery.com/) is an amazing resource for examples of already made data visualisations. -> [Type hints for busy programmers](https://inventwithpython.com/blog/2019/11/24/type-hints-for-busy-python-programmers/) is a great resource for understanding what type hints are and why you should use them. -> [https://pythonbytes.fm/episodes/show/160/your-json-shall-be-streamed](https://pythonbytes.fm/episodes/show/160/your-json-shall-be-streamed) +* Using --prompt to name your virtualenv for easy identification later on is something I use widely now. [https://pythonbytes.fm/episodes/show/168/race-your-donkey-car-with-python](https://pythonbytes.fm/episodes/show/168/race-your-donkey-car-with-python) +* [Python Graph Gallery](https://python-graph-gallery.com/) is an amazing resource for examples of already made data visualisations. +* [Type hints for busy programmers](https://inventwithpython.com/blog/2019/11/24/type-hints-for-busy-python-programmers/) is a great resource for understanding what type hints are and why you should use them. +* [https://pythonbytes.fm/episodes/show/160/your-json-shall-be-streamed](https://pythonbytes.fm/episodes/show/160/your-json-shall-be-streamed) From 01f05f9d1f2e79b6ccd07d50aaeb70a5883b46b3 Mon Sep 17 00:00:00 2001 From: Andrew Schonfeld Date: Mon, 30 Mar 2020 08:29:58 -0400 Subject: [PATCH 02/83] added D-Tale --- README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/README.md b/README.md index c5253fc..5efd1ce 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,7 @@ Short package description - [Anvil](#anvil) - [Vue.py](#vuepy) - [Data Science](#data-science) + - [D-Tale](#d-tale) - [Great Expectations](#great-expectations) - [PDF Plumber](#pdf-plumber) - [PyJanitor](#pyjanitor) @@ -101,6 +102,23 @@ Live example at: [https://stefanhoelzl.github.io/vue.py/examples/todo_mvc/](http # Data Science +## [D-Tale](https://github.com/man-group/dtale) + +*[https://pythonbytes.fm/episodes/show/169/jupyter-notebooks-natively-on-your-ipad](https://pythonbytes.fm/episodes/show/169/jupyter-notebooks-natively-on-your-ipad)* + +`D-Tale` is a Flask/React client for visualizing pandas data structures. [Live Demo](http://andrewschonfeld.pythonanywhere.com/) + +![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/tiled/Tiled_screenshots.png) + +Why the Deets? +* Integrates easily into any python console or jupyter notebook +* Works with Google Colab & Kaggle +* Quickly explore large dataframes with our grid using sorting, filtering & show/hide/move columns +* Browse column information & statistics with "Describe" +* View correlation matrices +* Quick histograms, value counts & category breakdowns using "Column Analysis" +* Easy chart builder built on top of plotly/dash (export your charts to take them on the go as well :smile:) + ## [Great Expectations](https://great-expectations.readthedocs.io/en/latest/) *[https://pythonbytes.fm/episodes/show/115/dataclass-csv-reader-and-nina-drops-by](https://pythonbytes.fm/episodes/show/115/dataclass-csv-reader-and-nina-drops-by)* From 6da909949875ab81a67e6b614de9ba756ff3346c Mon Sep 17 00:00:00 2001 From: PySimpleGUI Date: Mon, 30 Mar 2020 12:48:15 -0400 Subject: [PATCH 03/83] Addition of PySimpleGUI to list of GUI packages --- README.md | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ed1b987..f214f5f 100644 --- a/README.md +++ b/README.md @@ -220,7 +220,7 @@ Using `SQLAlchemy` with Spatial Databases. `Typer`, build great CLIs. Easy to code. Based on `Python` type hints. -# Guided User Interfaces (GUIs) +# Graphical User Interfaces (GUIs) ## [Gooey](https://github.com/chriskiehl/Gooey) @@ -239,6 +239,29 @@ I have also done a tutorial blog post on Gooey as well at: [https://jackmckew.de ![Eel Demo](https://raw.githubusercontent.com/samuelhwilliams/Eel/master/examples/04%20-%20file_access/Screenshot.png) +## [PySimpleGUI](https://github.com/PySimpleGUI/PySimpleGUI) + +*[https://pythonbytes.fm/episodes/show/90/a-django-async-roadmap](https://pythonbytes.fm/episodes/show/90/a-django-async-roadmap)* + +*[https://pythonbytes.fm/episodes/show/104/api-evolution-the-right-way](https://pythonbytes.fm/episodes/show/104/api-evolution-the-right-way)* + +PySimpleGUI enables anyone with a week of PySimpleGUI education or more to develop an entirely custom desktop GUI application. The underlying GUI frameworks supported include tkinter, Qt, WxPython and Remi. PySimpleGUI code can be run on any of these underlying frameworks with little or often no modification to the source code. + +Unlike other simplified GUI pacakges, PySimpleGUI has a rich palette of widgets that are not dumbed down and can be assembled into any configuration desired, resulting in applications that look and operate as if written directly in tkinter, Qt, etc. Simple defines the ease of writing the programs, not the class of problems that are capable of being solved. 100's of demo programs are provided to give programmers a jump start on integrating with other packages such as OpenCV, Matplotlib. There are over 500 GitHub projects currently using PySimpleGUI. + +A couple recent projects include: + +A series of Rainmeter-style "Desktop Widgets": https://github.com/PySimpleGUI/PySimpleGUI-Widgets + +![PSG CPU Cores Scrolling](https://user-images.githubusercontent.com/46163555/72114378-52830400-3311-11ea-8584-32bde5c265db.gif) + + +A photo and video colorizer: https://github.com/PySimpleGUI/PySimpleGUI-Photo-Colorizer + + +![SNAG-0628](https://user-images.githubusercontent.com/46163555/71523943-4327a380-2899-11ea-95b7-a2892f611109.jpg) + + ## [QUICK](https://github.com/szsdk/quick) *[https://pythonbytes.fm/episodes/show/166/misunderstanding-software-clocks-and-time](https://pythonbytes.fm/episodes/show/166/misunderstanding-software-clocks-and-time)* From e14fd0a93f277fe97707af7f7e0657d9e5da29c8 Mon Sep 17 00:00:00 2001 From: Andrew Schonfeld Date: Mon, 30 Mar 2020 23:22:38 -0400 Subject: [PATCH 04/83] updated D-Tale image to be a link to github --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4fc4d8d..394a060 100644 --- a/README.md +++ b/README.md @@ -108,7 +108,7 @@ Live example at: [https://stefanhoelzl.github.io/vue.py/examples/todo_mvc/](http `D-Tale` is a Flask/React client for visualizing pandas data structures. [Live Demo](http://andrewschonfeld.pythonanywhere.com/) -![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/tiled/Tiled_screenshots.png) +[![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/tiled/Tiled_screenshots.png)](https://github.com/man-group/dtale) Why the Deets? * Integrates easily into any python console or jupyter notebook From abe23485c9b9c1475d76a27744d8ff9fc0fe7cb4 Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Tue, 31 Mar 2020 14:36:27 +1100 Subject: [PATCH 05/83] Include spell check Github Action --- .github/workflows/main.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..97a7e71 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,27 @@ +# This is a basic workflow to help you get started with Actions + +name: CI + +# Controls when the action will run. Triggers the workflow on push or pull request +# events but only for the master branch +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + + # Runs a single command using the runners shell + - name: Spellcheck Action + uses: rojopolis/spellcheck-github-actions@0.2.0 From 8bd46f22aece2ef04cb3ed50a12d85a78766416c Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Tue, 31 Mar 2020 14:38:43 +1100 Subject: [PATCH 06/83] Remove spellcheck action --- .github/workflows/main.yml | 27 --------------------------- 1 file changed, 27 deletions(-) delete mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index 97a7e71..0000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,27 +0,0 @@ -# This is a basic workflow to help you get started with Actions - -name: CI - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] - -# A workflow run is made up of one or more jobs that can run sequentially or in parallel -jobs: - # This workflow contains a single job called "build" - build: - # The type of runner that the job will run on - runs-on: ubuntu-latest - - # Steps represent a sequence of tasks that will be executed as part of the job - steps: - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v2 - - # Runs a single command using the runners shell - - name: Spellcheck Action - uses: rojopolis/spellcheck-github-actions@0.2.0 From 01fb9fa4e851a8b5f693d9356626a4d286adc226 Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Wed, 1 Apr 2020 13:42:02 +1100 Subject: [PATCH 07/83] Create Spelling Action --- .github/workflows/main.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..4d5ed2f --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,27 @@ +# This is a basic workflow to help you get started with Actions + +name: CI + +# Controls when the action will run. Triggers the workflow on push or pull request +# events but only for the master branch +on: + push: + branches: [ spelling-action ] + pull_request: + branches: [ spelling-action ] + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + + # Runs a single command using the runners shell + - name: Check Spelling (JS, Vue, HTML, Markdown, Text) + uses: UnicornGlobal/spellcheck-github-actions@0.4.0 From 41b54279f69b5b2038b681fd3003d734110d2fe0 Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Wed, 1 Apr 2020 13:42:29 +1100 Subject: [PATCH 08/83] Run on master --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4d5ed2f..fba56d1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -6,9 +6,9 @@ name: CI # events but only for the master branch on: push: - branches: [ spelling-action ] + branches: [ master ] pull_request: - branches: [ spelling-action ] + branches: [ master ] # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: From 474d6bd39092e1bbf88d07f001b25f91c73cf7ef Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Wed, 1 Apr 2020 13:44:19 +1100 Subject: [PATCH 09/83] Convert to single action --- .github/workflows/check_spelling.yml | 19 +++++++++++++++++++ .github/workflows/main.yml | 27 --------------------------- 2 files changed, 19 insertions(+), 27 deletions(-) create mode 100644 .github/workflows/check_spelling.yml delete mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/check_spelling.yml b/.github/workflows/check_spelling.yml new file mode 100644 index 0000000..5bdaa01 --- /dev/null +++ b/.github/workflows/check_spelling.yml @@ -0,0 +1,19 @@ +# .github/workflows/check_spelling.yml +name: Check Spelling +on: + pull_request: + paths: + - '**.js' + - '**.vue' + - '**.txt' + - '**.html' + - '**.md' +jobs: + spelling: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + ref: ${{ github.head_ref }} + - name: Check Spelling + uses: UnicornGlobal/spellcheck-github-actions@master diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index fba56d1..0000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,27 +0,0 @@ -# This is a basic workflow to help you get started with Actions - -name: CI - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] - -# A workflow run is made up of one or more jobs that can run sequentially or in parallel -jobs: - # This workflow contains a single job called "build" - build: - # The type of runner that the job will run on - runs-on: ubuntu-latest - - # Steps represent a sequence of tasks that will be executed as part of the job - steps: - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v2 - - # Runs a single command using the runners shell - - name: Check Spelling (JS, Vue, HTML, Markdown, Text) - uses: UnicornGlobal/spellcheck-github-actions@0.4.0 From c781a9142f4075b6e435f13dcf3d6a4265850a09 Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Wed, 1 Apr 2020 13:45:48 +1100 Subject: [PATCH 10/83] Update to on pushes & pull requests --- .github/workflows/check_spelling.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/check_spelling.yml b/.github/workflows/check_spelling.yml index 5bdaa01..23f1b56 100644 --- a/.github/workflows/check_spelling.yml +++ b/.github/workflows/check_spelling.yml @@ -1,6 +1,8 @@ # .github/workflows/check_spelling.yml name: Check Spelling on: + push: + branches: [ master ] pull_request: paths: - '**.js' From f333f92b9bea5ed413bc10fa8849f96cdb39b5a3 Mon Sep 17 00:00:00 2001 From: Fizban Date: Wed, 1 Apr 2020 14:05:12 +1100 Subject: [PATCH 11/83] Update spelling & consistent formatting --- .gitignore | 1 + README.md | 49 ++++++++++++++++++++++++------------------------- 2 files changed, 25 insertions(+), 25 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c6f9a44 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.vscode/settings.json diff --git a/README.md b/README.md index 394a060..8198954 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Short package description - [Pandas Vet](#pandas-vet) - [NB2XLS](#nb2xls) - [pylightxl](#pylightxl) -- [Data Visualisation](#data-visualisation) +- [Data Visualization](#data-visualization) - [Pylustrator](#pylustrator) - [Chartify](#chartify) - [Machine Learning](#machine-learning) @@ -50,13 +50,14 @@ Short package description - [Python Fire](#python-fire) - [Clize](#clize) - [Typer](#typer) -- [Guided User Interfaces (GUIs)](#guided-user-interfaces-guis) +- [Graphical User Interfaces (GUIs)](#graphical-user-interfaces-guis) - [Gooey](#gooey) - [Eel GUI](#eel-gui) + - [PySimpleGUI](#pysimplegui) - [QUICK](#quick) - [Python Development](#python-development) - [Attrs](#attrs) - - [PyOxidiser](#pyoxidiser) + - [PyOxidizer](#pyoxidizer) - [Python Date Utils](#python-date-utils) - [Pycel](#pycel) - [PyDantic](#pydantic) @@ -108,16 +109,17 @@ Live example at: [https://stefanhoelzl.github.io/vue.py/examples/todo_mvc/](http `D-Tale` is a Flask/React client for visualizing pandas data structures. [Live Demo](http://andrewschonfeld.pythonanywhere.com/) -[![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/tiled/Tiled_screenshots.png)](https://github.com/man-group/dtale) +[![D-Tale Screenshots](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/tiled/Tiled_screenshots.png)](https://github.com/man-group/dtale) Why the Deets? -* Integrates easily into any python console or jupyter notebook -* Works with Google Colab & Kaggle -* Quickly explore large dataframes with our grid using sorting, filtering & show/hide/move columns -* Browse column information & statistics with "Describe" -* View correlation matrices -* Quick histograms, value counts & category breakdowns using "Column Analysis" -* Easy chart builder built on top of plotly/dash (export your charts to take them on the go as well :smile:) + +- Integrates easily into any python console or jupyter notebook +- Works with Google Colab & Kaggle +- Quickly explore large dataframes with our grid using sorting, filtering & show/hide/move columns +- Browse column information & statistics with "Describe" +- View correlation matrices +- Quick histograms, value counts & category breakdowns using "Column Analysis" +- Easy chart builder built on top of plotly/dash (export your charts to take them on the go as well :smile:) ## [Great Expectations](https://great-expectations.readthedocs.io/en/latest/) @@ -158,14 +160,14 @@ A light weight, zero dependency (only standard libs used), to the point (no bell ![Example Code](https://github.com/PydPiper/pylightxl/blob/master/doc/source/_static/readme_demo.gif) Why pylightxl over pandas/openpyxl + - (compatibility +1, small lib +1) pylightxl has no external dependencies (only uses python built-in standard libs). (compatibility +1) pylightxl was written to be compatible for python 2.7-3+ under one single pylightxl version. It does not impose rules on users to switch versions. - (small lib +1) pylightxl was written to simply read/write, thereby making the library small without any bells or whistles which makes it easy to compile with PyInstaller and other packagers - (user friendly +1) pylightxl was written to be as pythonic and easy to use as possible. Core developers actively survey Stack Overflow questions on working with excel files to tailor the API for most common problems. - (see xlrd before pylightxl) Note that the xlrd library is very similar in values to pylightxl, but with much more functionality! Please take a look at xlrd to see if it is a good fit for your project. So why pick pylightxl over xlrd that has much more to offer? Currently, xlrd does not have any active developers. Pylightxl is a new library aimed to help solve current excel data issues (as surveyed by Stack Overflow), please submit your suggestions to help improve this library together. - -# Data Visualisation +# Data Visualization ## [Pylustrator](https://pylustrator.readthedocs.io/en/latest/) @@ -263,23 +265,20 @@ I have also done a tutorial blog post on Gooey as well at: [https://jackmckew.de *[https://pythonbytes.fm/episodes/show/104/api-evolution-the-right-way](https://pythonbytes.fm/episodes/show/104/api-evolution-the-right-way)* -PySimpleGUI enables anyone with a week of PySimpleGUI education or more to develop an entirely custom desktop GUI application. The underlying GUI frameworks supported include tkinter, Qt, WxPython and Remi. PySimpleGUI code can be run on any of these underlying frameworks with little or often no modification to the source code. +PySimpleGUI enables anyone with a week of PySimpleGUI education or more to develop an entirely custom desktop GUI application. The underlying GUI frameworks supported include tkinter, Qt, WxPython and Remi. PySimpleGUI code can be run on any of these underlying frameworks with little or often no modification to the source code. -Unlike other simplified GUI pacakges, PySimpleGUI has a rich palette of widgets that are not dumbed down and can be assembled into any configuration desired, resulting in applications that look and operate as if written directly in tkinter, Qt, etc. Simple defines the ease of writing the programs, not the class of problems that are capable of being solved. 100's of demo programs are provided to give programmers a jump start on integrating with other packages such as OpenCV, Matplotlib. There are over 500 GitHub projects currently using PySimpleGUI. +Unlike other simplified GUI packages, PySimpleGUI has a rich palette of widgets that are not dumbed down and can be assembled into any configuration desired, resulting in applications that look and operate as if written directly in tkinter, Qt, etc. Simple defines the ease of writing the programs, not the class of problems that are capable of being solved. 100's of demo programs are provided to give programmers a jump start on integrating with other packages such as OpenCV, Matplotlib. There are over 500 GitHub projects currently using PySimpleGUI. A couple recent projects include: -A series of Rainmeter-style "Desktop Widgets": https://github.com/PySimpleGUI/PySimpleGUI-Widgets +A series of Rainmeter-style "Desktop Widgets": ![PSG CPU Cores Scrolling](https://user-images.githubusercontent.com/46163555/72114378-52830400-3311-11ea-8584-32bde5c265db.gif) - -A photo and video colorizer: https://github.com/PySimpleGUI/PySimpleGUI-Photo-Colorizer - +A photo and video colorizer: ![SNAG-0628](https://user-images.githubusercontent.com/46163555/71523943-4327a380-2899-11ea-95b7-a2892f611109.jpg) - ## [QUICK](https://github.com/szsdk/quick) *[https://pythonbytes.fm/episodes/show/166/misunderstanding-software-clocks-and-time](https://pythonbytes.fm/episodes/show/166/misunderstanding-software-clocks-and-time)* @@ -294,7 +293,7 @@ A real quick GUI generator for `click`. Inspired by `Gooey`, the GUI generator f *[https://pythonbytes.fm/episodes/show/11/django-2.0-is-dropping-python-2-entirely-pipenv-for-profile-functionality-and-pythonic-home-automation](https://pythonbytes.fm/episodes/show/11/django-2.0-is-dropping-python-2-entirely-pipenv-for-profile-functionality-and-pythonic-home-automation)* `Python` Classes Without Boilerplate -## [PyOxidiser](https://github.com/indygreg/PyOxidizer) +## [PyOxidizer](https://github.com/indygreg/PyOxidizer) *[https://pythonbytes.fm/episodes/show/114/what-should-be-in-the-python-standard-library](https://pythonbytes.fm/episodes/show/114/what-should-be-in-the-python-standard-library)* `PyOxidizer` is a utility for producing binaries that embed `Python`. The over-arching goal of `PyOxidizer` is to make complex packaging and distribution problems simple so application maintainers can focus on building applications instead of toiling with build systems and packaging tools. @@ -335,7 +334,7 @@ Simplifies creation of data classes from dictionaries. Converting from dict to d # Interesting Tidbits -* Using --prompt to name your virtualenv for easy identification later on is something I use widely now. [https://pythonbytes.fm/episodes/show/168/race-your-donkey-car-with-python](https://pythonbytes.fm/episodes/show/168/race-your-donkey-car-with-python) -* [Python Graph Gallery](https://python-graph-gallery.com/) is an amazing resource for examples of already made data visualisations. -* [Type hints for busy programmers](https://inventwithpython.com/blog/2019/11/24/type-hints-for-busy-python-programmers/) is a great resource for understanding what type hints are and why you should use them. -* [https://pythonbytes.fm/episodes/show/160/your-json-shall-be-streamed](https://pythonbytes.fm/episodes/show/160/your-json-shall-be-streamed) +- Using --prompt to name your virtualenv for easy identification later on is something I use widely now. [https://pythonbytes.fm/episodes/show/168/race-your-donkey-car-with-python](https://pythonbytes.fm/episodes/show/168/race-your-donkey-car-with-python) +- [Python Graph Gallery](https://python-graph-gallery.com/) is an amazing resource for examples of already made data visualizations. +- [Type hints for busy programmers](https://inventwithpython.com/blog/2019/11/24/type-hints-for-busy-python-programmers/) is a great resource for understanding what type hints are and why you should use them. +- [https://pythonbytes.fm/episodes/show/160/your-json-shall-be-streamed](https://pythonbytes.fm/episodes/show/160/your-json-shall-be-streamed) From 750bdc4e9d578ae2b5f6adc33d7516e5de9ab626 Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Wed, 1 Apr 2020 14:10:04 +1100 Subject: [PATCH 12/83] Add wordlist for spelling CI --- wordlist.txt | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 wordlist.txt diff --git a/wordlist.txt b/wordlist.txt new file mode 100644 index 0000000..0a4d8f6 --- /dev/null +++ b/wordlist.txt @@ -0,0 +1,42 @@ +argparse +chartify +clis +clize +colab +dacite +dantic +dataclass +dataframes +dateutil +deets +geoalchemy +guis +kaggle +keras +matplotlib +nbconvert +Okken +openpyxl +plotly +pycel +pydantic +pyjanitor +pylightxl +pylustrator +pyoxidizer +pysimplegui +pythonic +pytorch +rainmeter +remi +scikit +subfigures +thinc +tkinter +typer +virtualenv +vuepy +Wooey +wordpress +xlrd +yellowbrick From 78558007a4059832c2dbb4bea92985c68e232654 Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Wed, 1 Apr 2020 14:13:45 +1100 Subject: [PATCH 13/83] Only run on markdown --- .github/workflows/check_spelling.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/check_spelling.yml b/.github/workflows/check_spelling.yml index 23f1b56..c515239 100644 --- a/.github/workflows/check_spelling.yml +++ b/.github/workflows/check_spelling.yml @@ -5,10 +5,6 @@ on: branches: [ master ] pull_request: paths: - - '**.js' - - '**.vue' - - '**.txt' - - '**.html' - '**.md' jobs: spelling: From ee263f5281aae0020f3f769043de0b9e9dc31f2b Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Wed, 1 Apr 2020 14:18:52 +1100 Subject: [PATCH 14/83] Rename check_spelling.yml to spellcheck.yml --- .github/workflows/{check_spelling.yml => spellcheck.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{check_spelling.yml => spellcheck.yml} (100%) diff --git a/.github/workflows/check_spelling.yml b/.github/workflows/spellcheck.yml similarity index 100% rename from .github/workflows/check_spelling.yml rename to .github/workflows/spellcheck.yml From c80706e9bfcb61d2aa9fbad49d992c1958736fbe Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Wed, 1 Apr 2020 14:20:19 +1100 Subject: [PATCH 15/83] Create spellcheck.yml --- spellcheck.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 spellcheck.yml diff --git a/spellcheck.yml b/spellcheck.yml new file mode 100644 index 0000000..f2e8269 --- /dev/null +++ b/spellcheck.yml @@ -0,0 +1,24 @@ +- name: Markdown + expect_match: false + apsell: + mode: en + dictionary: + wordlists: + - wordlist.txt + output: wordlist.dic + encoding: utf-8 + pipeline: + - pyspelling.filters.markdown: + markdown_extensions: + - markdown.extensions.extra: + - pyspelling.filters.html: + comments: true + attributes: + - title + - alt + ignores: + - ':matches(code, pre)' + - 'code' + - 'pre' + sources: + - '**/*.md' From 40d46c51eefeacb1998ebe0c6ff01f485cd36541 Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Wed, 1 Apr 2020 14:22:16 +1100 Subject: [PATCH 16/83] Rename spellcheck.yml to spellcheck.yaml --- spellcheck.yml => spellcheck.yaml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename spellcheck.yml => spellcheck.yaml (100%) diff --git a/spellcheck.yml b/spellcheck.yaml similarity index 100% rename from spellcheck.yml rename to spellcheck.yaml From edb01c793a2bfc6a20a5fa8d57e4840740402ba1 Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Wed, 1 Apr 2020 14:24:44 +1100 Subject: [PATCH 17/83] Update spellcheck.yaml --- spellcheck.yaml | 85 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/spellcheck.yaml b/spellcheck.yaml index f2e8269..0d49c01 100644 --- a/spellcheck.yaml +++ b/spellcheck.yaml @@ -1,3 +1,75 @@ +# spellcheck.yaml +matrix: +- name: JavaScript + sources: + - '**/*.js' + expect_match: false + aspell: + lang: en + dictionary: + wordlists: + - wordlist.txt + output: wordlist.dic + encoding: utf-8 + pipeline: + - pyspelling.filters.javascript: + jsdocs: true + line_comments: true + block_comments: true + group_comments: false + decode_escapes: true + strings: false +- name: Vue + sources: + - '**/*.vue' + expect_match: false + aspell: + lang: en + dictionary: + wordlists: + - wordlist.txt + output: wordlist.dic + encoding: utf-8 + pipeline: + - pyspelling.filters.javascript: + jsdocs: true + line_comments: true + block_comments: true + group_comments: false + decode_escapes: true + strings: false + - pyspelling.filters.html: + comments: true + attributes: + - title + - alt + ignores: + - ':matches(code, pre)' + - 'code' + - 'pre' + - pyspelling.filters.stylesheets: + group_comments: true +- name: HTML + sources: + - '**/*.html' + expect_match: false + apsell: + mode: en + dictionary: + wordlists: + - wordlist.txt + output: wordlist.dic + encoding: utf-8 + pipeline: + - pyspelling.filters.html: + comments: true + attributes: + - title + - alt + ignores: + - ':matches(code, pre)' + - 'code' + - 'pre' - name: Markdown expect_match: false apsell: @@ -22,3 +94,16 @@ - 'pre' sources: - '**/*.md' +- name: Text + sources: + - '**/*.txt|!wordlist.txt' + ignores: + expect_match: false + dictionary: + wordlists: + - wordlist.txt + output: wordlist.dic + encoding: utf-8 + pipeline: + - pyspelling.filters.text: + convert_encoding: utf-8 From 3b17b134ca64919308ec3fc44ddf346c98d7d28f Mon Sep 17 00:00:00 2001 From: Fizban Date: Wed, 1 Apr 2020 14:36:04 +1100 Subject: [PATCH 18/83] Update wordlist --- README.md | 2 +- wordlist.txt | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8198954..627bd88 100644 --- a/README.md +++ b/README.md @@ -328,7 +328,7 @@ Simplifies creation of data classes from dictionaries. Converting from dict to d *[https://pythonbytes.fm/episodes/show/116/so-you-want-python-in-a-3d-graphics-engine](https://pythonbytes.fm/episodes/show/116/so-you-want-python-in-a-3d-graphics-engine)* -`Panda3D` is an open-source, completely free-to-use engine for realtime 3D games, visualizations, simulations, experiments +`Panda3D` is an open-source, completely free-to-use engine for real time 3D games, visualizations, simulations, experiments [![Panda3D Example](https://img.youtube.com/vi/MYlBW0f4HhA/0.jpg)](https://www.youtube.com/watch?v=MYlBW0f4HhA "Panda3D Example") diff --git a/wordlist.txt b/wordlist.txt index 0a4d8f6..ea804cd 100644 --- a/wordlist.txt +++ b/wordlist.txt @@ -1,42 +1,106 @@ +apis argparse +async +Attrs +bader +cetera chartify clis +CLIs clize +CMS colab +Colorizer +cpu +cpython +csv dacite +dan dantic dataclass dataframes +datetime dateutil deets +dev +django +dumbed +et +fm geoalchemy +GeoAlchemy +github guis +GUIs +herokuapp +html +https +hyperparameter +ideonate +io +ipad +jackmckew +JS +json +jupyter kaggle keras +KristianHolsheimer +libs matplotlib +mvc +natively +nb nbconvert +nina Okken +OpenAI openpyxl +pipenv plotly +PSG +py pycel pydantic +PyDantic pyjanitor +PyJanitor pylightxl pylustrator pyoxidizer +PyOxidizer pysimplegui +PySimpleGUI +pythonbytes pythonic +pythonically pytorch rainmeter remi +roadmap scikit +simon +stefanhoelzl subfigures thinc tkinter +toc +todo typer +UIs +Utils +uwsgi virtualenv +vue +Vue vuepy Wooey +wooey wordpress +WxPython xlrd +XLS +XLS +xls +xlsx yellowbrick From 0879aaca3f1d1c8b3d1b709dc3b8c3b6ab4ab0da Mon Sep 17 00:00:00 2001 From: Fizban Date: Wed, 1 Apr 2020 14:38:54 +1100 Subject: [PATCH 19/83] Update wordlist to pass CI --- wordlist.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/wordlist.txt b/wordlist.txt index ea804cd..8efc038 100644 --- a/wordlist.txt +++ b/wordlist.txt @@ -1,3 +1,4 @@ +api apis argparse async @@ -5,12 +6,14 @@ Attrs bader cetera chartify +cli clis CLIs clize CMS colab Colorizer +colorizer cpu cpython csv @@ -55,6 +58,7 @@ nbconvert nina Okken OpenAI +OpenCV openpyxl pipenv plotly @@ -63,6 +67,8 @@ py pycel pydantic PyDantic +PyInstaller +pyinstaller pyjanitor PyJanitor pylightxl From eaf287af7b3762d2934666bc285ff74691472bcc Mon Sep 17 00:00:00 2001 From: Andrew Schonfeld Date: Fri, 3 Apr 2020 16:48:11 -0400 Subject: [PATCH 20/83] updated link to the D-Tale demo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 627bd88..02c64e6 100644 --- a/README.md +++ b/README.md @@ -107,7 +107,7 @@ Live example at: [https://stefanhoelzl.github.io/vue.py/examples/todo_mvc/](http *[https://pythonbytes.fm/episodes/show/169/jupyter-notebooks-natively-on-your-ipad](https://pythonbytes.fm/episodes/show/169/jupyter-notebooks-natively-on-your-ipad)* -`D-Tale` is a Flask/React client for visualizing pandas data structures. [Live Demo](http://andrewschonfeld.pythonanywhere.com/) +`D-Tale` is a Flask/React client for visualizing pandas data structures. [Live Demo](http://alphatechadmin.pythonanywhere.com/) [![D-Tale Screenshots](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/tiled/Tiled_screenshots.png)](https://github.com/man-group/dtale) From b959ee46ed138439c88728190c5b6da212256ee8 Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Sat, 4 Apr 2020 09:13:54 +1100 Subject: [PATCH 21/83] Update GH Action for spell check Run on either push or pull request, no differing --- .github/workflows/spellcheck.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index c515239..c09f42a 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -1,11 +1,6 @@ # .github/workflows/check_spelling.yml name: Check Spelling -on: - push: - branches: [ master ] - pull_request: - paths: - - '**.md' +on: [push, pull_request] jobs: spelling: runs-on: ubuntu-latest From fe7ec5a2e9bdd430070870b3a99853515cbd2791 Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Sat, 4 Apr 2020 10:06:14 +1100 Subject: [PATCH 22/83] Create link_checker.yml Add link checker yaml to verify links on a monthly basis --- .github/workflows/link_checker.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .github/workflows/link_checker.yml diff --git a/.github/workflows/link_checker.yml b/.github/workflows/link_checker.yml new file mode 100644 index 0000000..0a25b66 --- /dev/null +++ b/.github/workflows/link_checker.yml @@ -0,0 +1,20 @@ +name: Check markdown links +on: + schedule: + - cron: '0 0 1 * *' +jobs: + linkChecker: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Link Checker + uses: peter-evans/link-checker@v1 + with: + args: -v -r * + - name: Create Issue From File + uses: peter-evans/create-issue-from-file@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + title: Link Checker Report + content-filepath: ./link-checker/out.md + labels: report, automated issue From a19fc5e232b7607f30c38cc8e07af1068bec4b6b Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Sat, 4 Apr 2020 10:07:07 +1100 Subject: [PATCH 23/83] Rename link_checker.yml to schedule_link_checker.yml --- .github/workflows/{link_checker.yml => schedule_link_checker.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{link_checker.yml => schedule_link_checker.yml} (100%) diff --git a/.github/workflows/link_checker.yml b/.github/workflows/schedule_link_checker.yml similarity index 100% rename from .github/workflows/link_checker.yml rename to .github/workflows/schedule_link_checker.yml From e32eaa17e29464f9f66097a85e13fcc794967161 Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Sat, 4 Apr 2020 10:07:45 +1100 Subject: [PATCH 24/83] Create push_link_checker.yml --- .github/workflows/push_link_checker.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .github/workflows/push_link_checker.yml diff --git a/.github/workflows/push_link_checker.yml b/.github/workflows/push_link_checker.yml new file mode 100644 index 0000000..f98e7c0 --- /dev/null +++ b/.github/workflows/push_link_checker.yml @@ -0,0 +1,14 @@ +name: Link checker (runs on push) +on: push +jobs: + linkChecker: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Link Checker + id: lc + uses: peter-evans/link-checker@v1 + with: + args: -v -r * + - name: Fail if there were link errors + run: exit ${{ steps.lc.outputs.exit_code }} From b6d357d8baea417660a8964f97d3794eca821a9b Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Sat, 4 Apr 2020 10:11:21 +1100 Subject: [PATCH 25/83] Update wooey image to link from original blog post --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 02c64e6..a0f77ae 100644 --- a/README.md +++ b/README.md @@ -82,7 +82,7 @@ A `Django` app that creates automatic web UIs for `Python` scripts. Live example at: [https://wooey.herokuapp.com/](https://wooey.herokuapp.com/) -![Wooey Example]({static img/wooey-example.png}) +![Wooey Example](https://jackmckew.dev/img/wooey-example.png) ## [Anvil](https://anvil.works/) From cab3553e5061b0d163615b5628a7024ecbd73529 Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Sat, 4 Apr 2020 10:39:28 +1100 Subject: [PATCH 26/83] Run spellcheck only on push Since forked repositories don't have certain permissions, GH actions is unable to fetch, thus failing the CI, since this will further run when merged, deemed acceptable --- .github/workflows/spellcheck.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index c09f42a..575ee23 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -1,6 +1,6 @@ # .github/workflows/check_spelling.yml name: Check Spelling -on: [push, pull_request] +on: push jobs: spelling: runs-on: ubuntu-latest From aec44eaae3b31f2e6265df261e58f6e3f8ea8a99 Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Sun, 5 Apr 2020 10:58:45 +1000 Subject: [PATCH 27/83] Change to GH action to generator TOC --- README.md | 49 ++----------------------------------------------- 1 file changed, 2 insertions(+), 47 deletions(-) diff --git a/README.md b/README.md index a0f77ae..432cc5b 100644 --- a/README.md +++ b/README.md @@ -18,53 +18,8 @@ Each package is listed in the following format: Short package description ![IMAGE IF APPLICABLE] ``` - -# Table Of Contents - -- [awesome-python-bytes](#awesome-python-bytes) -- [Format](#format) -- [Web Development](#web-development) - - [Wagtail](#wagtail) - - [Wooey](#wooey) - - [Anvil](#anvil) - - [Vue.py](#vuepy) -- [Data Science](#data-science) - - [D-Tale](#d-tale) - - [Great Expectations](#great-expectations) - - [PDF Plumber](#pdf-plumber) - - [PyJanitor](#pyjanitor) - - [Pandas Vet](#pandas-vet) - - [NB2XLS](#nb2xls) - - [pylightxl](#pylightxl) -- [Data Visualization](#data-visualization) - - [Pylustrator](#pylustrator) - - [Chartify](#chartify) -- [Machine Learning](#machine-learning) - - [PyTorch](#pytorch) - - [Yellow Brick](#yellow-brick) - - [Thinc](#thinc) - - [Keras Gym](#keras-gym) -- [Databases](#databases) - - [GeoAlchemy](#geoalchemy) -- [Command Line Interfaces (CLIs)](#command-line-interfaces-clis) - - [Python Fire](#python-fire) - - [Clize](#clize) - - [Typer](#typer) -- [Graphical User Interfaces (GUIs)](#graphical-user-interfaces-guis) - - [Gooey](#gooey) - - [Eel GUI](#eel-gui) - - [PySimpleGUI](#pysimplegui) - - [QUICK](#quick) -- [Python Development](#python-development) - - [Attrs](#attrs) - - [PyOxidizer](#pyoxidizer) - - [Python Date Utils](#python-date-utils) - - [Pycel](#pycel) - - [PyDantic](#pydantic) - - [Dacite](#dacite) -- [Game Development](#game-development) - - [Panda3D](#panda3d) -- [Interesting Tidbits](#interesting-tidbits) + + # Web Development From 647f44b7a1ef1c68975bd5e8fd5bd5a94971b52f Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Sun, 5 Apr 2020 10:59:16 +1000 Subject: [PATCH 28/83] Create toc.yml --- .github/workflows/toc.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .github/workflows/toc.yml diff --git a/.github/workflows/toc.yml b/.github/workflows/toc.yml new file mode 100644 index 0000000..fb8c89c --- /dev/null +++ b/.github/workflows/toc.yml @@ -0,0 +1,8 @@ +on: push +name: TOC Generator +jobs: + generateTOC: + name: TOC Generator + runs-on: ubuntu-latest + steps: + - uses: technote-space/toc-generator@v2 From 4ecaebd9a22d3633f9bcd8180354d143b0623608 Mon Sep 17 00:00:00 2001 From: JackMcKew Date: Sun, 5 Apr 2020 00:59:27 +0000 Subject: [PATCH 29/83] docs: update TOC --- README.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 48 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 432cc5b..a20caa8 100644 --- a/README.md +++ b/README.md @@ -18,8 +18,54 @@ Each package is listed in the following format: Short package description ![IMAGE IF APPLICABLE] ``` - - + + +**Table of Contents** + +- [Web Development](#web-development) + - [Wagtail](#wagtail) + - [Wooey](#wooey) + - [Anvil](#anvil) + - [Vue.py](#vuepy) +- [Data Science](#data-science) + - [D-Tale](#d-tale) + - [Great Expectations](#great-expectations) + - [PDF Plumber](#pdf-plumber) + - [PyJanitor](#pyjanitor) + - [Pandas Vet](#pandas-vet) + - [NB2XLS](#nb2xls) + - [pylightxl](#pylightxl) +- [Data Visualization](#data-visualization) + - [Pylustrator](#pylustrator) + - [Chartify](#chartify) +- [Machine Learning](#machine-learning) + - [PyTorch](#pytorch) + - [Yellow Brick](#yellow-brick) + - [Thinc](#thinc) + - [Keras Gym](#keras-gym) +- [Databases](#databases) + - [GeoAlchemy](#geoalchemy) +- [Command Line Interfaces (CLIs)](#command-line-interfaces-clis) + - [Python Fire](#python-fire) + - [Clize](#clize) + - [Typer](#typer) +- [Graphical User Interfaces (GUIs)](#graphical-user-interfaces-guis) + - [Gooey](#gooey) + - [Eel GUI](#eel-gui) + - [PySimpleGUI](#pysimplegui) + - [QUICK](#quick) +- [Python Development](#python-development) + - [Attrs](#attrs) + - [PyOxidizer](#pyoxidizer) + - [Python Date Utils](#python-date-utils) + - [Pycel](#pycel) + - [PyDantic](#pydantic) + - [Dacite](#dacite) +- [Game Development](#game-development) + - [Panda3D](#panda3d) +- [Interesting Tidbits](#interesting-tidbits) + + # Web Development From b51f556a69eebfb223c3be1e41bb81ea4975829d Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Sun, 5 Apr 2020 11:03:52 +1000 Subject: [PATCH 30/83] Include doctoc (from TOC gen GH action) --- wordlist.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/wordlist.txt b/wordlist.txt index 8efc038..3ec7c04 100644 --- a/wordlist.txt +++ b/wordlist.txt @@ -27,6 +27,7 @@ dateutil deets dev django +doctoc dumbed et fm From 1e0cdc6d1f7b92705403fe15f614d7ee2c8d6c83 Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Thu, 9 Apr 2020 10:34:56 +1000 Subject: [PATCH 31/83] Include wemake-python-styleguide Added from comment on Twitter by https://twitter.com/elixir_lang_mos https://twitter.com/Jac_McQ/status/1238203826290577409 --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index a20caa8..4f7412f 100644 --- a/README.md +++ b/README.md @@ -323,6 +323,12 @@ Data validation and settings management using python type annotations. Simplifies creation of data classes from dictionaries. Converting from dict to dataclass is trivial for trivial cases: `x = MyClass(**data_as_dict)`. +## [wemake-python-styleguide](https://github.com/wemake-services/wemake-python-styleguide) + +*[https://pythonbytes.fm/episodes/show/155/guido-van-rossum-retires](https://pythonbytes.fm/episodes/show/155/guido-van-rossum-retires)* + +The strictest and most opinionated python linter ever. wemake-python-styleguide is actually a flake8 plugin with some other plugins as dependencies. + # Game Development ## [Panda3D](https://www.panda3d.org/) From 2b59e94fb16cc3a374b0f6e1ba5f05dbf3e2d8b0 Mon Sep 17 00:00:00 2001 From: JackMcKew Date: Thu, 9 Apr 2020 00:35:17 +0000 Subject: [PATCH 32/83] docs: update TOC --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4f7412f..849bf13 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,7 @@ Short package description - [Pycel](#pycel) - [PyDantic](#pydantic) - [Dacite](#dacite) + - [wemake-python-styleguide](#wemake-python-styleguide) - [Game Development](#game-development) - [Panda3D](#panda3d) - [Interesting Tidbits](#interesting-tidbits) From 4810e38316c6d5af28b7a103ecc73d824f73654e Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Thu, 9 Apr 2020 10:41:10 +1000 Subject: [PATCH 33/83] Newline after link & remove keras-gym --- README.md | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 849bf13..1b14cdc 100644 --- a/README.md +++ b/README.md @@ -73,6 +73,7 @@ Short package description ## [Wagtail](https://wagtail.io/) *[https://pythonbytes.fm/episodes/show/70/have-you-seen-my-log-it-s-cute](https://pythonbytes.fm/episodes/show/70/have-you-seen-my-log-it-s-cute)* + `Wagtail` is a content management system (CMS) (like Wordpress), written in `Python`, based off `Django`. [Gallery of sites made with `wagtail`](https://madewithwagtail.org/) @@ -80,6 +81,7 @@ Short package description ## [Wooey](https://github.com/wooey/Wooey) *[https://pythonbytes.fm/episodes/show/62/wooey-and-gooey-are-simple-python-guis](https://pythonbytes.fm/episodes/show/62/wooey-and-gooey-are-simple-python-guis)* + A `Django` app that creates automatic web UIs for `Python` scripts. Live example at: [https://wooey.herokuapp.com/](https://wooey.herokuapp.com/) @@ -95,6 +97,7 @@ Full stack web apps with nothing but `Python`. ## Vue.py *[https://pythonbytes.fm/episodes/show/140/becoming-a-10x-developer-sorta](https://pythonbytes.fm/episodes/show/140/becoming-a-10x-developer-sorta)* + use `Vue.js` with pure `Python` `vue.py` provides `Python` bindings for `Vue.js`. It uses `brython` to run `Python` in the browser. @@ -126,6 +129,7 @@ Why the Deets? ## [Great Expectations](https://great-expectations.readthedocs.io/en/latest/) *[https://pythonbytes.fm/episodes/show/115/dataclass-csv-reader-and-nina-drops-by](https://pythonbytes.fm/episodes/show/115/dataclass-csv-reader-and-nina-drops-by)* + `Great Expectations` is a leading tool for validating, documenting, and profiling, your data to maintain quality and improve communication between teams. ## [PDF Plumber](https://github.com/jsvine/pdfplumber) @@ -151,7 +155,9 @@ Plumb a PDF for detailed information about each char, rectangle, line, et cetera ## [NB2XLS](https://github.com/ideonate/nb2xls) *[https://github.com/ideonate/nb2xls](https://github.com/ideonate/nb2xls)* + Convert `Jupyter` notebooks to Excel Spreadsheets (xlsx), through a new 'Download As' option or via `nbconvert` on the command line. + ![NB2XLS Preview](https://raw.githubusercontent.com/ideonate/nb2xls/master/screenshots/Jupyter2Excel.png) ## [pylightxl](https://github.com/PydPiper/pylightxl) @@ -159,6 +165,7 @@ Convert `Jupyter` notebooks to Excel Spreadsheets (xlsx), through a new 'Downloa *[https://pythonbytes.fm/episodes/show/165/ranges-as-dictionary-keys-oh-my](https://pythonbytes.fm/episodes/show/165/ranges-as-dictionary-keys-oh-my)* A light weight, zero dependency (only standard libs used), to the point (no bells and whistles) Microsoft Excel reader/writer python 2.7-3+ library. + ![Example Code](https://github.com/PydPiper/pylightxl/blob/master/doc/source/_static/readme_demo.gif) Why pylightxl over pandas/openpyxl @@ -192,31 +199,30 @@ Why pylightxl over pandas/openpyxl ## [PyTorch](https://github.com/pytorch/pytorch) *[https://pythonbytes.fm/episodes/show/80/dan-bader-drops-by-and-we-found-30-new-python-projects](https://pythonbytes.fm/episodes/show/80/dan-bader-drops-by-and-we-found-30-new-python-projects)* + Tensors and Dynamic neural networks in `Python` with strong GPU acceleration ## [Yellow Brick](https://www.scikit-yb.org/en/latest/) *[https://pythonbytes.fm/episodes/show/74/contributing-to-open-source-effectively](https://pythonbytes.fm/episodes/show/74/contributing-to-open-source-effectively)* + `Yellowbrick` extends the `Scikit-Learn` API to make model selection and hyperparameter tuning easier. Under the hood, it’s using `Matplotlib`. + ![Yellow Brick Preview](https://www.scikit-yb.org/en/latest/_images/banner.png) ## [Thinc](https://thinc.ai/) *[https://pythonbytes.fm/episodes/show/167/cheating-at-kaggle-and-uwsgi-in-prod](https://pythonbytes.fm/episodes/show/167/cheating-at-kaggle-and-uwsgi-in-prod)* + A refreshing functional take on deep learning, compatible with your favorite libraries. From the makers of `spaCy`, `Prodigy` & `FastAPI` -## [Keras Gym](https://github.com/KristianHolsheimer/keras-gym) - -*[https://github.com/KristianHolsheimer/keras-gym](https://github.com/KristianHolsheimer/keras-gym)* -Plug-n-play reinforcement learning with OpenAI Gym and `Keras` -![Keras Gym GIF](https://raw.githubusercontent.com/KristianHolsheimer/keras-gym/master/doc/_static/img/cartpole.gif) - # Databases ## [GeoAlchemy](https://geoalchemy-2.readthedocs.io/en/latest/) *[https://pythonbytes.fm/episodes/show/77/you-don-t-have-to-be-a-workaholic-to-win](https://pythonbytes.fm/episodes/show/77/you-don-t-have-to-be-a-workaholic-to-win)* + Using `SQLAlchemy` with Spatial Databases. `GeoAlchemy 2` provides extensions to `SQLAlchemy` for working with spatial databases. @@ -228,7 +234,8 @@ Using `SQLAlchemy` with Spatial Databases. ## [Python Fire](https://github.com/google/python-fire) *[https://pythonbytes.fm/episodes/show/17/google-s-python-is-on-fire-and-simon-says-you-have-cpu-load-pythonically](https://pythonbytes.fm/episodes/show/17/google-s-python-is-on-fire-and-simon-says-you-have-cpu-load-pythonically)* -``Python`Fire` is a library for automatically generating command line interfaces (CLIs) from absolutely any `Python` object. + +`Python Fire` is a library for automatically generating command line interfaces (CLIs) from absolutely any `Python` object. ## [Clize](https://clize.readthedocs.io/en/stable/) @@ -293,11 +300,13 @@ A real quick GUI generator for `click`. Inspired by `Gooey`, the GUI generator f ## [Attrs](https://github.com/python-attrs/attrs) *[https://pythonbytes.fm/episodes/show/11/django-2.0-is-dropping-python-2-entirely-pipenv-for-profile-functionality-and-pythonic-home-automation](https://pythonbytes.fm/episodes/show/11/django-2.0-is-dropping-python-2-entirely-pipenv-for-profile-functionality-and-pythonic-home-automation)* + `Python` Classes Without Boilerplate ## [PyOxidizer](https://github.com/indygreg/PyOxidizer) *[https://pythonbytes.fm/episodes/show/114/what-should-be-in-the-python-standard-library](https://pythonbytes.fm/episodes/show/114/what-should-be-in-the-python-standard-library)* + `PyOxidizer` is a utility for producing binaries that embed `Python`. The over-arching goal of `PyOxidizer` is to make complex packaging and distribution problems simple so application maintainers can focus on building applications instead of toiling with build systems and packaging tools. ## [Python Date Utils](https://dateutil.readthedocs.io/en/stable/) From 21a52379850ae1d73438b4e7b092085e508c8572 Mon Sep 17 00:00:00 2001 From: JackMcKew Date: Thu, 9 Apr 2020 00:41:24 +0000 Subject: [PATCH 34/83] docs: update TOC --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 1b14cdc..aefd183 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,6 @@ Short package description - [PyTorch](#pytorch) - [Yellow Brick](#yellow-brick) - [Thinc](#thinc) - - [Keras Gym](#keras-gym) - [Databases](#databases) - [GeoAlchemy](#geoalchemy) - [Command Line Interfaces (CLIs)](#command-line-interfaces-clis) From 3eab9b1d8eb6ee0b7fcbd211c8ee76374072d851 Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Thu, 9 Apr 2020 10:42:21 +1000 Subject: [PATCH 35/83] Newline after link for Eel & Quick --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index aefd183..e592b91 100644 --- a/README.md +++ b/README.md @@ -263,6 +263,7 @@ I have also done a tutorial blog post on Gooey as well at: [https://jackmckew.de ## [Eel GUI](https://github.com/samuelhwilliams/Eel) *[https://pythonbytes.fm/episodes/show/61/on-being-a-senior-engineer](https://pythonbytes.fm/episodes/show/61/on-being-a-senior-engineer)* + `Eel` is a little `Python` library for making simple Electron-like offline HTML/JS GUI apps, with full access to `Python` capabilities and libraries. ![Eel Demo](https://raw.githubusercontent.com/samuelhwilliams/Eel/master/examples/04%20-%20file_access/Screenshot.png) @@ -290,6 +291,7 @@ A photo and video colorizer: Date: Thu, 9 Apr 2020 10:50:48 +1000 Subject: [PATCH 36/83] Add links to images for ease of use --- README.md | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index e592b91..b127a0d 100644 --- a/README.md +++ b/README.md @@ -14,9 +14,12 @@ Each package is listed in the following format: ``` markdown [Package Name](link/to/package) + *Link to show notes where mentioned* + Short package description -![IMAGE IF APPLICABLE] + +[![IMAGE IF APPLICABLE]](link/to/package) ``` @@ -85,7 +88,7 @@ A `Django` app that creates automatic web UIs for `Python` scripts. Live example at: [https://wooey.herokuapp.com/](https://wooey.herokuapp.com/) -![Wooey Example](https://jackmckew.dev/img/wooey-example.png) +[![Wooey Example](https://jackmckew.dev/img/wooey-example.png)](https://github.com/wooey/Wooey) ## [Anvil](https://anvil.works/) @@ -93,7 +96,7 @@ Live example at: [https://wooey.herokuapp.com/](https://wooey.herokuapp.com/) Full stack web apps with nothing but `Python`. -## Vue.py +## [Vue.py](https://github.com/stefanhoelzl/vue.py) *[https://pythonbytes.fm/episodes/show/140/becoming-a-10x-developer-sorta](https://pythonbytes.fm/episodes/show/140/becoming-a-10x-developer-sorta)* @@ -103,7 +106,7 @@ use `Vue.js` with pure `Python` Live example at: [https://stefanhoelzl.github.io/vue.py/examples/todo_mvc/](https://stefanhoelzl.github.io/vue.py/examples/todo_mvc/) -![Vue.py Example](https://raw.githubusercontent.com/stefanhoelzl/vue.py/gh-pages/examples/todo_mvc/screenshot.png) +[![Vue.py Example](https://raw.githubusercontent.com/stefanhoelzl/vue.py/gh-pages/examples/todo_mvc/screenshot.png)](https://github.com/stefanhoelzl/vue.py) # Data Science @@ -137,7 +140,7 @@ Why the Deets? Plumb a PDF for detailed information about each char, rectangle, line, et cetera — and easily extract text and tables. -![PDF Plumb Example](https://raw.githubusercontent.com/jsvine/pdfplumber/master/examples/screenshots/visual-debugging-in-jupyter.png) +[![PDF Plumb Example](https://raw.githubusercontent.com/jsvine/pdfplumber/master/examples/screenshots/visual-debugging-in-jupyter.png)](https://github.com/jsvine/pdfplumber) ## [PyJanitor](https://pyjanitor.readthedocs.io/) @@ -157,7 +160,7 @@ Plumb a PDF for detailed information about each char, rectangle, line, et cetera Convert `Jupyter` notebooks to Excel Spreadsheets (xlsx), through a new 'Download As' option or via `nbconvert` on the command line. -![NB2XLS Preview](https://raw.githubusercontent.com/ideonate/nb2xls/master/screenshots/Jupyter2Excel.png) +[![NB2XLS Preview](https://raw.githubusercontent.com/ideonate/nb2xls/master/screenshots/Jupyter2Excel.png)](https://github.com/ideonate/nb2xls) ## [pylightxl](https://github.com/PydPiper/pylightxl) @@ -165,7 +168,7 @@ Convert `Jupyter` notebooks to Excel Spreadsheets (xlsx), through a new 'Downloa A light weight, zero dependency (only standard libs used), to the point (no bells and whistles) Microsoft Excel reader/writer python 2.7-3+ library. -![Example Code](https://github.com/PydPiper/pylightxl/blob/master/doc/source/_static/readme_demo.gif) +[![Example Code](https://github.com/PydPiper/pylightxl/blob/master/doc/source/_static/readme_demo.gif)](https://github.com/PydPiper/pylightxl) Why pylightxl over pandas/openpyxl @@ -191,7 +194,7 @@ Why pylightxl over pandas/openpyxl `Chartify` is a `Python` library that makes it easy for data scientists to create charts. -![Chartify Example](https://raw.githubusercontent.com/spotify/chartify/master/docs/_static/chartify1.png) +[![Chartify Example](https://raw.githubusercontent.com/spotify/chartify/master/docs/_static/chartify1.png)](https://github.com/spotify/chartify) # Machine Learning @@ -207,7 +210,7 @@ Tensors and Dynamic neural networks in `Python` with strong GPU acceleration `Yellowbrick` extends the `Scikit-Learn` API to make model selection and hyperparameter tuning easier. Under the hood, it’s using `Matplotlib`. -![Yellow Brick Preview](https://www.scikit-yb.org/en/latest/_images/banner.png) +[![Yellow Brick Preview](https://www.scikit-yb.org/en/latest/_images/banner.png)](https://www.scikit-yb.org/en/latest/) ## [Thinc](https://thinc.ai/) @@ -258,7 +261,7 @@ I personally love `Gooey` and have it installed in almost every project lately. I have also done a tutorial blog post on Gooey as well at: [https://jackmckew.dev/making-executable-guis-with-python-gooey-pyinstaller.html](https://jackmckew.dev/making-executable-guis-with-python-gooey-pyinstaller.html#making-executable-guis-with-python-gooey-pyinstaller) -![Gooey Example](https://raw.githubusercontent.com/chriskiehl/GooeyImages/images/readme-images/1-0-3-title-card.png) +[![Gooey Example](https://raw.githubusercontent.com/chriskiehl/GooeyImages/images/readme-images/1-0-3-title-card.png)](https://github.com/chriskiehl/Gooey) ## [Eel GUI](https://github.com/samuelhwilliams/Eel) @@ -266,7 +269,7 @@ I have also done a tutorial blog post on Gooey as well at: [https://jackmckew.de `Eel` is a little `Python` library for making simple Electron-like offline HTML/JS GUI apps, with full access to `Python` capabilities and libraries. -![Eel Demo](https://raw.githubusercontent.com/samuelhwilliams/Eel/master/examples/04%20-%20file_access/Screenshot.png) +[![Eel Demo](https://raw.githubusercontent.com/samuelhwilliams/Eel/master/examples/04%20-%20file_access/Screenshot.png)](https://github.com/samuelhwilliams/Eel) ## [PySimpleGUI](https://github.com/PySimpleGUI/PySimpleGUI) @@ -282,11 +285,11 @@ A couple recent projects include: A series of Rainmeter-style "Desktop Widgets": -![PSG CPU Cores Scrolling](https://user-images.githubusercontent.com/46163555/72114378-52830400-3311-11ea-8584-32bde5c265db.gif) +[![PSG CPU Cores Scrolling](https://user-images.githubusercontent.com/46163555/72114378-52830400-3311-11ea-8584-32bde5c265db.gif)](https://github.com/PySimpleGUI/PySimpleGUI-Widgets) A photo and video colorizer: -![SNAG-0628](https://user-images.githubusercontent.com/46163555/71523943-4327a380-2899-11ea-95b7-a2892f611109.jpg) +[![SNAG-0628](https://user-images.githubusercontent.com/46163555/71523943-4327a380-2899-11ea-95b7-a2892f611109.jpg)](https://github.com/PySimpleGUI/PySimpleGUI-Photo-Colorizer) ## [QUICK](https://github.com/szsdk/quick) @@ -294,7 +297,7 @@ A photo and video colorizer: Date: Thu, 9 Apr 2020 10:54:41 +1000 Subject: [PATCH 37/83] Update wordlist Incllude styleguide, wemake, guido, rossum & linter to excluded words --- wordlist.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/wordlist.txt b/wordlist.txt index 3ec7c04..96da07a 100644 --- a/wordlist.txt +++ b/wordlist.txt @@ -34,6 +34,7 @@ fm geoalchemy GeoAlchemy github +guido guis GUIs herokuapp @@ -51,6 +52,7 @@ kaggle keras KristianHolsheimer libs +linter matplotlib mvc natively @@ -85,9 +87,11 @@ pytorch rainmeter remi roadmap +rossum scikit simon stefanhoelzl +styleguide subfigures thinc tkinter @@ -101,6 +105,7 @@ virtualenv vue Vue vuepy +wemake Wooey wooey wordpress From 4e664232650493621b6f7370407349dedb667f71 Mon Sep 17 00:00:00 2001 From: Nick Muoh Date: Fri, 10 Apr 2020 21:16:44 -0400 Subject: [PATCH 38/83] Added the rich python package to the CLI section --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index b127a0d..005f093 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,7 @@ Short package description - [Python Fire](#python-fire) - [Clize](#clize) - [Typer](#typer) + - [Rich](#rich) - [Graphical User Interfaces (GUIs)](#graphical-user-interfaces-guis) - [Gooey](#gooey) - [Eel GUI](#eel-gui) @@ -251,6 +252,14 @@ Using `SQLAlchemy` with Spatial Databases. `Typer`, build great CLIs. Easy to code. Based on `Python` type hints. +## [Rich](https://github.com/willmcgugan/rich) + +*[https://pythonbytes.fm/episodes/show/176/how-python-implements-super-long-integers](https://pythonbytes.fm/episodes/show/176/how-python-implements-super-long-integers)* + +Rich is a Python library for rich text and beautiful formatting in the terminal. + +[![Rich Example](https://github.com/willmcgugan/rich/raw/master/imgs/features.png)](https://github.com/willmcgugan/rich) + # Graphical User Interfaces (GUIs) ## [Gooey](https://github.com/chriskiehl/Gooey) From 5c784946860cb16ecf028bc273babce41542cb0d Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Wed, 15 Apr 2020 12:07:15 +1000 Subject: [PATCH 39/83] Create chatops.yaml --- .github/workflows/chatops.yaml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 .github/workflows/chatops.yaml diff --git a/.github/workflows/chatops.yaml b/.github/workflows/chatops.yaml new file mode 100644 index 0000000..609e3a3 --- /dev/null +++ b/.github/workflows/chatops.yaml @@ -0,0 +1,32 @@ +name: Demo +on: [issue_comment] + +jobs: + label-pr: + runs-on: ubuntu-latest + steps: + - name: listen for PR Comments + uses: machine-learning-apps/actions-chatops@master + with: + APP_PEM: ${{ secrets.APP_PEM }} + APP_ID: ${{ secrets.APP_ID }} + TRIGGER_PHRASE: "/test-trigger-comment" + INDICATOR_LABEL: "test-label" + env: # you must supply GITHUB_TOKEN + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + id: prcomm + # This step clones the branch of the PR associated with the triggering phrase, but only if it is triggered. + - name: clone branch of PR + if: steps.prcomm.outputs.BOOL_TRIGGERED == 'true' + uses: actions/checkout@master + with: + ref: ${{ steps.prcomm.outputs.SHA }} + + # This step is a toy example that illustrates how you can use outputs from the pr-command action + - name: print variables + if: steps.prcomm.outputs.BOOL_TRIGGERED == 'true' + run: echo "${USERNAME} made a triggering comment on PR# ${PR_NUMBER} for ${BRANCH_NAME}" + env: + BRANCH_NAME: ${{ steps.prcomm.outputs.BRANCH_NAME }} + PR_NUMBER: ${{ steps.prcomm.outputs.PULL_REQUEST_NUMBER }} + USERNAME: ${{ steps.prcomm.outputs.COMMENTER_USERNAME }} From 20cc88e9bc8cb265b6d03eabeafaa11f0fb4fc58 Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Wed, 15 Apr 2020 12:16:03 +1000 Subject: [PATCH 40/83] Update chatops.yaml --- .github/workflows/chatops.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/chatops.yaml b/.github/workflows/chatops.yaml index 609e3a3..55da873 100644 --- a/.github/workflows/chatops.yaml +++ b/.github/workflows/chatops.yaml @@ -13,7 +13,7 @@ jobs: TRIGGER_PHRASE: "/test-trigger-comment" INDICATOR_LABEL: "test-label" env: # you must supply GITHUB_TOKEN - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.manual_github_token }} id: prcomm # This step clones the branch of the PR associated with the triggering phrase, but only if it is triggered. - name: clone branch of PR From dda0cc41a3fd353ec948ab099c0d00c687c5ae5c Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Wed, 15 Apr 2020 12:17:36 +1000 Subject: [PATCH 41/83] Meta list reference in episode 176 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 005f093..50d45ee 100644 --- a/README.md +++ b/README.md @@ -368,3 +368,4 @@ The strictest and most opinionated python linter ever. wemake-python-styleguide - [Python Graph Gallery](https://python-graph-gallery.com/) is an amazing resource for examples of already made data visualizations. - [Type hints for busy programmers](https://inventwithpython.com/blog/2019/11/24/type-hints-for-busy-python-programmers/) is a great resource for understanding what type hints are and why you should use them. - [https://pythonbytes.fm/episodes/show/160/your-json-shall-be-streamed](https://pythonbytes.fm/episodes/show/160/your-json-shall-be-streamed) +- This list was mentioned in Episode #176 From b9f3b80ee2fdcba8526d24f37df4bf1a468d34aa Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Wed, 15 Apr 2020 12:22:12 +1000 Subject: [PATCH 42/83] Remove indicator label --- .github/workflows/chatops.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/chatops.yaml b/.github/workflows/chatops.yaml index 55da873..8bac927 100644 --- a/.github/workflows/chatops.yaml +++ b/.github/workflows/chatops.yaml @@ -11,7 +11,6 @@ jobs: APP_PEM: ${{ secrets.APP_PEM }} APP_ID: ${{ secrets.APP_ID }} TRIGGER_PHRASE: "/test-trigger-comment" - INDICATOR_LABEL: "test-label" env: # you must supply GITHUB_TOKEN GITHUB_TOKEN: ${{ secrets.manual_github_token }} id: prcomm From 2153aad3e28478308c3b8068b02665a9993fa2cd Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Wed, 15 Apr 2020 12:27:14 +1000 Subject: [PATCH 43/83] Include checks on PR comments --- .github/workflows/chatops.yaml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/.github/workflows/chatops.yaml b/.github/workflows/chatops.yaml index 8bac927..0726e76 100644 --- a/.github/workflows/chatops.yaml +++ b/.github/workflows/chatops.yaml @@ -1,4 +1,4 @@ -name: Demo +name: Trigger Checks on Fork on: [issue_comment] jobs: @@ -10,7 +10,7 @@ jobs: with: APP_PEM: ${{ secrets.APP_PEM }} APP_ID: ${{ secrets.APP_ID }} - TRIGGER_PHRASE: "/test-trigger-comment" + TRIGGER_PHRASE: "/check-pr" env: # you must supply GITHUB_TOKEN GITHUB_TOKEN: ${{ secrets.manual_github_token }} id: prcomm @@ -29,3 +29,14 @@ jobs: BRANCH_NAME: ${{ steps.prcomm.outputs.BRANCH_NAME }} PR_NUMBER: ${{ steps.prcomm.outputs.PULL_REQUEST_NUMBER }} USERNAME: ${{ steps.prcomm.outputs.COMMENTER_USERNAME }} + + - name: Check Spelling + uses: UnicornGlobal/spellcheck-github-actions@master + + - name: Link Checker + id: lc + uses: peter-evans/link-checker@v1 + with: + args: -v -r * + - name: Fail if there were link errors + run: exit ${{ steps.lc.outputs.exit_code }} From 64e4045ad4d9da8b0db269ceb5b59b3d20c45184 Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Wed, 15 Apr 2020 13:42:18 +1000 Subject: [PATCH 44/83] Comment on PR --- .github/workflows/chatops.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/.github/workflows/chatops.yaml b/.github/workflows/chatops.yaml index 0726e76..c2c1c5c 100644 --- a/.github/workflows/chatops.yaml +++ b/.github/workflows/chatops.yaml @@ -40,3 +40,21 @@ jobs: args: -v -r * - name: Fail if there were link errors run: exit ${{ steps.lc.outputs.exit_code }} + + - name: Comment PR passed + if: success() + uses: unsplash/comment-on-pr@master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + msg: "All checks passed!" + check_for_duplicate_msg: false # OPTIONAL + + - name: Comment PR failed + if: failure() + uses: unsplash/comment-on-pr@master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + msg: "Some checks failed, check GitHub Actions" + check_for_duplicate_msg: false # OPTIONAL From 1190e8b61e034040a502b85df30b1b787d1ad1e5 Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Wed, 15 Apr 2020 13:47:28 +1000 Subject: [PATCH 45/83] Change to manual_github_token --- .github/workflows/chatops.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/chatops.yaml b/.github/workflows/chatops.yaml index c2c1c5c..6989efa 100644 --- a/.github/workflows/chatops.yaml +++ b/.github/workflows/chatops.yaml @@ -45,7 +45,7 @@ jobs: if: success() uses: unsplash/comment-on-pr@master env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.manual_github_token }} with: msg: "All checks passed!" check_for_duplicate_msg: false # OPTIONAL @@ -54,7 +54,7 @@ jobs: if: failure() uses: unsplash/comment-on-pr@master env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.manual_github_token }} with: msg: "Some checks failed, check GitHub Actions" check_for_duplicate_msg: false # OPTIONAL From e1255ca4791726336daa3bac79403bdd361b2d7f Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Wed, 15 Apr 2020 14:11:34 +1000 Subject: [PATCH 46/83] Move to shell script Using https://github.com/fastai/fastpages/blob/master/_action_files/pr_comment.sh --- .github/workflows/chatops.yaml | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/.github/workflows/chatops.yaml b/.github/workflows/chatops.yaml index 6989efa..4bb6670 100644 --- a/.github/workflows/chatops.yaml +++ b/.github/workflows/chatops.yaml @@ -41,20 +41,18 @@ jobs: - name: Fail if there were link errors run: exit ${{ steps.lc.outputs.exit_code }} - - name: Comment PR passed + - name: make comment on PR if checks pass if: success() - uses: unsplash/comment-on-pr@master + run: | + ./_action_files/pr_comment.sh "All checks passed!" env: GITHUB_TOKEN: ${{ secrets.manual_github_token }} - with: - msg: "All checks passed!" - check_for_duplicate_msg: false # OPTIONAL - - - name: Comment PR failed + ISSUE_NUMBER: ${{ github.event.issue.number }} + + - name: make comment on PR if checks fail if: failure() - uses: unsplash/comment-on-pr@master + run: | + ./_action_files/pr_comment.sh "Some checks failed, check Github Actions" env: GITHUB_TOKEN: ${{ secrets.manual_github_token }} - with: - msg: "Some checks failed, check GitHub Actions" - check_for_duplicate_msg: false # OPTIONAL + ISSUE_NUMBER: ${{ github.event.issue.number }} From 738fd5eb84a1f61fc95cb1177ac894d850f4af7f Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Wed, 15 Apr 2020 14:12:23 +1000 Subject: [PATCH 47/83] Create pr_comment.sh Source: https://github.com/fastai/fastpages/blob/master/_action_files/pr_comment.sh --- action_files/pr_comment.sh | 40 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 action_files/pr_comment.sh diff --git a/action_files/pr_comment.sh b/action_files/pr_comment.sh new file mode 100644 index 0000000..6d8a83a --- /dev/null +++ b/action_files/pr_comment.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# Make a comment on a PR. +# Usage: +# > pr_comment.sh <> + +set -e + +# This is populated by our secret from the Workflow file. +if [[ -z "${GITHUB_TOKEN}" ]]; then + echo "Set the GITHUB_TOKEN env variable." + exit 1 +fi + +if [[ -z "${ISSUE_NUMBER}" ]]; then + echo "Set the ISSUE_NUMBER env variable." + exit 1 +fi + +if [ -z "$1" ] + then + echo "No MESSAGE argument supplied. Usage: issue_comment.sh " + exit 1 +fi + +MESSAGE=$1 + +## Set Vars +URI=https://api.github.com +API_VERSION=v3 +API_HEADER="Accept: application/vnd.github.${API_VERSION}+json" +AUTH_HEADER="Authorization: token ${GITHUB_TOKEN}" + +# Create a comment with APIv3 # POST /repos/:owner/:repo/issues/:issue_number/comments +curl -XPOST -sSL \ + -d "{\"body\": \"$MESSAGE\"}" \ + -H "${AUTH_HEADER}" \ + -H "${API_HEADER}" \ + "${URI}/repos/${GITHUB_REPOSITORY}/issues/${ISSUE_NUMBER}/comments" +s From e48e1223a129b576d9d1edfaa2223aa77cc7ebcc Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Wed, 15 Apr 2020 14:15:57 +1000 Subject: [PATCH 48/83] Remove underscores --- .github/workflows/chatops.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/chatops.yaml b/.github/workflows/chatops.yaml index 4bb6670..d91e79a 100644 --- a/.github/workflows/chatops.yaml +++ b/.github/workflows/chatops.yaml @@ -44,7 +44,7 @@ jobs: - name: make comment on PR if checks pass if: success() run: | - ./_action_files/pr_comment.sh "All checks passed!" + ./action_files/pr_comment.sh "All checks passed!" env: GITHUB_TOKEN: ${{ secrets.manual_github_token }} ISSUE_NUMBER: ${{ github.event.issue.number }} @@ -52,7 +52,7 @@ jobs: - name: make comment on PR if checks fail if: failure() run: | - ./_action_files/pr_comment.sh "Some checks failed, check Github Actions" + ./action_files/pr_comment.sh "Some checks failed, check Github Actions" env: GITHUB_TOKEN: ${{ secrets.manual_github_token }} ISSUE_NUMBER: ${{ github.event.issue.number }} From 3226347f183984c066193cca5227147cd92a933a Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Wed, 15 Apr 2020 14:25:27 +1000 Subject: [PATCH 49/83] Change to githubscript --- .github/workflows/chatops.yaml | 36 ++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/.github/workflows/chatops.yaml b/.github/workflows/chatops.yaml index d91e79a..bad7a4d 100644 --- a/.github/workflows/chatops.yaml +++ b/.github/workflows/chatops.yaml @@ -41,18 +41,28 @@ jobs: - name: Fail if there were link errors run: exit ${{ steps.lc.outputs.exit_code }} - - name: make comment on PR if checks pass + - name: Comment on PR if checks pass if: success() - run: | - ./action_files/pr_comment.sh "All checks passed!" - env: - GITHUB_TOKEN: ${{ secrets.manual_github_token }} - ISSUE_NUMBER: ${{ github.event.issue.number }} - - - name: make comment on PR if checks fail + uses: actions/github-script@0.9.0 + with: + github-token: ${{secrets.manual_github_token}} + script: | + github.issues.createComment({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + body: '👋 All checks passed!' + }) + + - name: Comment on PR if checks fail if: failure() - run: | - ./action_files/pr_comment.sh "Some checks failed, check Github Actions" - env: - GITHUB_TOKEN: ${{ secrets.manual_github_token }} - ISSUE_NUMBER: ${{ github.event.issue.number }} + uses: actions/github-script@0.9.0 + with: + github-token: ${{secrets.manual_github_token}} + script: | + github.issues.createComment({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + body: 'Some checks failled :(, check Github Actions for more details.' + }) From c90bbe822385ec7d83c7d6a7e93fe8a5a8ee6fcd Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Wed, 15 Apr 2020 14:28:46 +1000 Subject: [PATCH 50/83] Delete pr_comment.sh --- action_files/pr_comment.sh | 40 -------------------------------------- 1 file changed, 40 deletions(-) delete mode 100644 action_files/pr_comment.sh diff --git a/action_files/pr_comment.sh b/action_files/pr_comment.sh deleted file mode 100644 index 6d8a83a..0000000 --- a/action_files/pr_comment.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh - -# Make a comment on a PR. -# Usage: -# > pr_comment.sh <> - -set -e - -# This is populated by our secret from the Workflow file. -if [[ -z "${GITHUB_TOKEN}" ]]; then - echo "Set the GITHUB_TOKEN env variable." - exit 1 -fi - -if [[ -z "${ISSUE_NUMBER}" ]]; then - echo "Set the ISSUE_NUMBER env variable." - exit 1 -fi - -if [ -z "$1" ] - then - echo "No MESSAGE argument supplied. Usage: issue_comment.sh " - exit 1 -fi - -MESSAGE=$1 - -## Set Vars -URI=https://api.github.com -API_VERSION=v3 -API_HEADER="Accept: application/vnd.github.${API_VERSION}+json" -AUTH_HEADER="Authorization: token ${GITHUB_TOKEN}" - -# Create a comment with APIv3 # POST /repos/:owner/:repo/issues/:issue_number/comments -curl -XPOST -sSL \ - -d "{\"body\": \"$MESSAGE\"}" \ - -H "${AUTH_HEADER}" \ - -H "${API_HEADER}" \ - "${URI}/repos/${GITHUB_REPOSITORY}/issues/${ISSUE_NUMBER}/comments" -s From 38f35d729a08f5e10acb5456b40daa46c5c1e226 Mon Sep 17 00:00:00 2001 From: Jack McKew Date: Fri, 17 Apr 2020 11:24:37 +1000 Subject: [PATCH 51/83] Update to only run rest of action if triggered --- .github/workflows/chatops.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/chatops.yaml b/.github/workflows/chatops.yaml index bad7a4d..243cdd2 100644 --- a/.github/workflows/chatops.yaml +++ b/.github/workflows/chatops.yaml @@ -31,9 +31,11 @@ jobs: USERNAME: ${{ steps.prcomm.outputs.COMMENTER_USERNAME }} - name: Check Spelling + if: steps.prcomm.outputs.BOOL_TRIGGERED == 'true' uses: UnicornGlobal/spellcheck-github-actions@master - name: Link Checker + if: steps.prcomm.outputs.BOOL_TRIGGERED == 'true' id: lc uses: peter-evans/link-checker@v1 with: @@ -42,7 +44,7 @@ jobs: run: exit ${{ steps.lc.outputs.exit_code }} - name: Comment on PR if checks pass - if: success() + if: success() && steps.prcomm.outputs.BOOL_TRIGGERED == 'true' uses: actions/github-script@0.9.0 with: github-token: ${{secrets.manual_github_token}} @@ -55,7 +57,7 @@ jobs: }) - name: Comment on PR if checks fail - if: failure() + if: failure() && steps.prcomm.outputs.BOOL_TRIGGERED == 'true' uses: actions/github-script@0.9.0 with: github-token: ${{secrets.manual_github_token}} From 2b78c567905920972201e8013450d97293a1bde6 Mon Sep 17 00:00:00 2001 From: Fizban Date: Thu, 23 Apr 2020 20:54:58 +1000 Subject: [PATCH 52/83] Add PandasBokeh #Ep176 --- README.md | 17 +++++++++++++++++ wordlist.txt | 2 ++ 2 files changed, 19 insertions(+) diff --git a/README.md b/README.md index 50d45ee..e5e7a04 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,8 @@ Short package description **Table of Contents** +- [awesome-python-bytes](#awesome-python-bytes) +- [Format](#format) - [Web Development](#web-development) - [Wagtail](#wagtail) - [Wooey](#wooey) @@ -41,6 +43,7 @@ Short package description - [Data Visualization](#data-visualization) - [Pylustrator](#pylustrator) - [Chartify](#chartify) + - [PandasBokeh](#pandasbokeh) - [Machine Learning](#machine-learning) - [PyTorch](#pytorch) - [Yellow Brick](#yellow-brick) @@ -197,6 +200,20 @@ Why pylightxl over pandas/openpyxl [![Chartify Example](https://raw.githubusercontent.com/spotify/chartify/master/docs/_static/chartify1.png)](https://github.com/spotify/chartify) +## [PandasBokeh](https://github.com/PatrikHlobil/Pandas-Bokeh) + +** + +Pandas-Bokeh provides a Bokeh plotting backend for Pandas, GeoPandas and Pyspark DataFrames, similar to the already existing Visualization feature of Pandas. Importing the library adds a complementary plotting method `plot_bokeh()` on DataFrames and Series. + +With Pandas-Bokeh, creating stunning, interactive, HTML-based visualization is as easy as calling: + +``` python +df.plot_bokeh() +``` + +[![PandasBokeh Example](https://raw.githubusercontent.com/PatrikHlobil/Pandas-Bokeh/master/docs/Images/Startimage.gif)](https://github.com/PatrikHlobil/Pandas-Bokeh) + # Machine Learning ## [PyTorch](https://github.com/pytorch/pytorch) diff --git a/wordlist.txt b/wordlist.txt index 96da07a..373985b 100644 --- a/wordlist.txt +++ b/wordlist.txt @@ -4,6 +4,7 @@ argparse async Attrs bader +Bokeh cetera chartify cli @@ -80,6 +81,7 @@ pyoxidizer PyOxidizer pysimplegui PySimpleGUI +Pyspark pythonbytes pythonic pythonically From f1f20ee82f75a8ef85b93b62bd2cfa5df518563e Mon Sep 17 00:00:00 2001 From: Fizban Date: Thu, 23 Apr 2020 20:58:23 +1000 Subject: [PATCH 53/83] Add NBDev Ep178 --- README.md | 19 +++++++++++++++++++ wordlist.txt | 1 + 2 files changed, 20 insertions(+) diff --git a/README.md b/README.md index e5e7a04..dbb3343 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,7 @@ Short package description - [PyDantic](#pydantic) - [Dacite](#dacite) - [wemake-python-styleguide](#wemake-python-styleguide) + - [NBDev](#nbdev) - [Game Development](#game-development) - [Panda3D](#panda3d) - [Interesting Tidbits](#interesting-tidbits) @@ -369,6 +370,24 @@ Simplifies creation of data classes from dictionaries. Converting from dict to d The strictest and most opinionated python linter ever. wemake-python-styleguide is actually a flake8 plugin with some other plugins as dependencies. +## [NBDev](https://github.com/fastai/nbdev) + +** + +`nbdev` is a library that allows you to fully develop a library in Jupyter Notebooks, putting all your code, tests and documentation in one place. That is: you now have a true literate programming environment, as envisioned by Donald Knuth back in 1983! + +Using the interactive environment, you can easily debug and refactor your code. Add #export flags to the cells that define the functions you want to include in your python modules. Here, for instance, is how combined_cos is defined and documented in the `fastai` library: + +[![NBDev Example](https://raw.githubusercontent.com/fastai/nbdev/master/nbs/images/export_example.png)](https://github.com/fastai/nbdev) + +- Creates Python packages out of a notebook +- Creates documentation from the notebook +- Solves the git perma-conflict issues with git pre-commit hooks +- Use #export to declare a cell should become a function in the package +- Manages the boilerplate issues for creating Python packages (setup.py, etc) +- Makes testing possible inside notebooks +- Navigate and edit your code in a standard text editor or IDE, and sync any changes automatically back into your notebooks (reverse basically) + # Game Development ## [Panda3D](https://www.panda3d.org/) diff --git a/wordlist.txt b/wordlist.txt index 373985b..233f339 100644 --- a/wordlist.txt +++ b/wordlist.txt @@ -59,6 +59,7 @@ mvc natively nb nbconvert +nbdev nina Okken OpenAI From 7ed1818ef4f89d527a5ec2f9656b5d9f656f717c Mon Sep 17 00:00:00 2001 From: JackMcKew Date: Thu, 23 Apr 2020 10:58:53 +0000 Subject: [PATCH 54/83] docs: update TOC --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index dbb3343..d3ec695 100644 --- a/README.md +++ b/README.md @@ -25,8 +25,6 @@ Short package description **Table of Contents** -- [awesome-python-bytes](#awesome-python-bytes) -- [Format](#format) - [Web Development](#web-development) - [Wagtail](#wagtail) - [Wooey](#wooey) From 0526350a11698af35f72ec52c0dfefd7e59138c3 Mon Sep 17 00:00:00 2001 From: Fizban Date: Thu, 23 Apr 2020 21:01:46 +1000 Subject: [PATCH 55/83] Add excluded words --- wordlist.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/wordlist.txt b/wordlist.txt index 233f339..bba1e02 100644 --- a/wordlist.txt +++ b/wordlist.txt @@ -3,6 +3,7 @@ apis argparse async Attrs +backend bader Bokeh cetera @@ -23,6 +24,7 @@ dan dantic dataclass dataframes +Dataframes datetime dateutil deets @@ -34,6 +36,7 @@ et fm geoalchemy GeoAlchemy +GeoPandas github guido guis @@ -60,14 +63,18 @@ natively nb nbconvert nbdev +NBDev nina Okken OpenAI OpenCV openpyxl +PandasBokeh +perma pipenv plotly PSG +pre py pycel pydantic @@ -80,6 +87,7 @@ pylightxl pylustrator pyoxidizer PyOxidizer +pypi pysimplegui PySimpleGUI Pyspark From 29a87fd1a0d4edb4fd50d99d9d3386178e9693f5 Mon Sep 17 00:00:00 2001 From: Fizban Date: Thu, 23 Apr 2020 21:04:38 +1000 Subject: [PATCH 56/83] Dataframes spelling --- wordlist.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wordlist.txt b/wordlist.txt index bba1e02..bc7e438 100644 --- a/wordlist.txt +++ b/wordlist.txt @@ -24,7 +24,7 @@ dan dantic dataclass dataframes -Dataframes +DataFrames datetime dateutil deets From 2621684cd1b47a1bf6de6113ee4221cec6fe2189 Mon Sep 17 00:00:00 2001 From: Fizban Date: Sat, 2 May 2020 12:15:05 +1000 Subject: [PATCH 57/83] Add hypothesis, property based testing --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index d3ec695..f6ebd66 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,8 @@ Short package description **Table of Contents** +- [awesome-python-bytes](#awesome-python-bytes) +- [Format](#format) - [Web Development](#web-development) - [Wagtail](#wagtail) - [Wooey](#wooey) @@ -67,6 +69,7 @@ Short package description - [Dacite](#dacite) - [wemake-python-styleguide](#wemake-python-styleguide) - [NBDev](#nbdev) + - [Hypothesis](#hypothesis) - [Game Development](#game-development) - [Panda3D](#panda3d) - [Interesting Tidbits](#interesting-tidbits) @@ -386,6 +389,14 @@ Using the interactive environment, you can easily debug and refactor your code. - Makes testing possible inside notebooks - Navigate and edit your code in a standard text editor or IDE, and sync any changes automatically back into your notebooks (reverse basically) +## [Hypothesis](https://hypothesis.readthedocs.io/en/latest/) + +** + +Hypothesis is a Python library for creating unit tests which are simpler to write and more powerful when run, finding edge cases in your code you wouldn’t have thought to look for. It is stable, powerful and easy to add to any existing test suite. + +It works by letting you write tests that assert that something should be true for every case, not just the ones you happen to think of. + # Game Development ## [Panda3D](https://www.panda3d.org/) From b5bb8a823c48a32ce219d2fa30b6d8307edad1ba Mon Sep 17 00:00:00 2001 From: Fizban Date: Sat, 2 May 2020 12:18:27 +1000 Subject: [PATCH 58/83] Add missingno --- README.md | 9 +++++++++ wordlist.txt | 1 + 2 files changed, 10 insertions(+) diff --git a/README.md b/README.md index f6ebd66..831e51e 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,7 @@ Short package description - [Pylustrator](#pylustrator) - [Chartify](#chartify) - [PandasBokeh](#pandasbokeh) + - [Missingno](#missingno) - [Machine Learning](#machine-learning) - [PyTorch](#pytorch) - [Yellow Brick](#yellow-brick) @@ -216,6 +217,14 @@ df.plot_bokeh() [![PandasBokeh Example](https://raw.githubusercontent.com/PatrikHlobil/Pandas-Bokeh/master/docs/Images/Startimage.gif)](https://github.com/PatrikHlobil/Pandas-Bokeh) +## [Missingno](https://github.com/ResidentMario/missingno) + +** + +Messy datasets? Missing values? `missingno` provides a small toolset of flexible and easy-to-use missing data visualizations and utilities that allows you to get a quick visual summary of the completeness (or lack thereof) of your dataset. Just pip install `missingno` to get started. + +[![Missingno Example](https://camo.githubusercontent.com/d59ba9e511fd42dd078b8c8829d3de3f6a7e1585/68747470733a2f2f692e696d6775722e636f6d2f675775584b45722e706e67)](https://github.com/ResidentMario/missingno) + # Machine Learning ## [PyTorch](https://github.com/pytorch/pytorch) diff --git a/wordlist.txt b/wordlist.txt index bc7e438..b08b208 100644 --- a/wordlist.txt +++ b/wordlist.txt @@ -58,6 +58,7 @@ KristianHolsheimer libs linter matplotlib +missingno mvc natively nb From c634d02fbe27f57391b317edf461fc455b092f6e Mon Sep 17 00:00:00 2001 From: JackMcKew Date: Sat, 2 May 2020 02:18:56 +0000 Subject: [PATCH 59/83] docs: update TOC --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 831e51e..cfb64c3 100644 --- a/README.md +++ b/README.md @@ -25,8 +25,6 @@ Short package description **Table of Contents** -- [awesome-python-bytes](#awesome-python-bytes) -- [Format](#format) - [Web Development](#web-development) - [Wagtail](#wagtail) - [Wooey](#wooey) From 883711d6dbc4888954c9986da00f82080bfec371 Mon Sep 17 00:00:00 2001 From: Fizban Date: Sat, 2 May 2020 13:08:48 +1000 Subject: [PATCH 60/83] Spelling dataset vs data set --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cfb64c3..7aabfeb 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,8 @@ Short package description **Table of Contents** +- [awesome-python-bytes](#awesome-python-bytes) +- [Format](#format) - [Web Development](#web-development) - [Wagtail](#wagtail) - [Wooey](#wooey) @@ -219,7 +221,7 @@ df.plot_bokeh() ** -Messy datasets? Missing values? `missingno` provides a small toolset of flexible and easy-to-use missing data visualizations and utilities that allows you to get a quick visual summary of the completeness (or lack thereof) of your dataset. Just pip install `missingno` to get started. +Messy data sets? Missing values? `missingno` provides a small tool set of flexible and easy-to-use missing data visualizations and utilities that allows you to get a quick visual summary of the completeness (or lack thereof) of your data set. Just pip install `missingno` to get started. [![Missingno Example](https://camo.githubusercontent.com/d59ba9e511fd42dd078b8c8829d3de3f6a7e1585/68747470733a2f2f692e696d6775722e636f6d2f675775584b45722e706e67)](https://github.com/ResidentMario/missingno) From f19d9ddf6b948a8619981c64e4c55f2274de903b Mon Sep 17 00:00:00 2001 From: JackMcKew Date: Sat, 2 May 2020 03:09:12 +0000 Subject: [PATCH 61/83] docs: update TOC --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 7aabfeb..7ae0d26 100644 --- a/README.md +++ b/README.md @@ -25,8 +25,6 @@ Short package description **Table of Contents** -- [awesome-python-bytes](#awesome-python-bytes) -- [Format](#format) - [Web Development](#web-development) - [Wagtail](#wagtail) - [Wooey](#wooey) From 2b1fc5d142c9907d2a1878eb5c24a7183ba08eb6 Mon Sep 17 00:00:00 2001 From: Fizban Date: Mon, 11 May 2020 20:47:34 +1000 Subject: [PATCH 62/83] Add Safer EP#180 --- README.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/README.md b/README.md index 7ae0d26..97d6025 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,8 @@ Short package description **Table of Contents** +- [awesome-python-bytes](#awesome-python-bytes) +- [Format](#format) - [Web Development](#web-development) - [Wagtail](#wagtail) - [Wooey](#wooey) @@ -69,6 +71,7 @@ Short package description - [wemake-python-styleguide](#wemake-python-styleguide) - [NBDev](#nbdev) - [Hypothesis](#hypothesis) + - [Safer](#safer) - [Game Development](#game-development) - [Panda3D](#panda3d) - [Interesting Tidbits](#interesting-tidbits) @@ -404,6 +407,26 @@ Hypothesis is a Python library for creating unit tests which are simpler to writ It works by letting you write tests that assert that something should be true for every case, not just the ones you happen to think of. +## [Safer](https://github.com/rec/safer) + +** + +safer: a safer file opener + +No more partial writes or corruption! For file streams, sockets or any callable. + +``` python +# dangerous +with open(filename, 'w') as fp: + json.dump(data, fp) + # If an exception is raised, the file is empty or partly written + +# safer +with safer.open(filename, 'w') as fp: + json.dump(data, fp) + # If an exception is raised, the file is unchanged. +``` + # Game Development ## [Panda3D](https://www.panda3d.org/) From 121a9b7e42d228356506785f9c85cbdb09e4118f Mon Sep 17 00:00:00 2001 From: Fizban Date: Mon, 11 May 2020 20:48:31 +1000 Subject: [PATCH 63/83] Add codespell Ep#180 --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 97d6025..c9ce098 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,7 @@ Short package description - [NBDev](#nbdev) - [Hypothesis](#hypothesis) - [Safer](#safer) + - [Codespell](#codespell) - [Game Development](#game-development) - [Panda3D](#panda3d) - [Interesting Tidbits](#interesting-tidbits) @@ -427,6 +428,12 @@ with safer.open(filename, 'w') as fp: # If an exception is raised, the file is unchanged. ``` +## [Codespell](https://github.com/codespell-project/codespell) + +** + +Fix common misspellings in text files. It's designed primarily for checking misspelled words in source code, but it can be used with other files as well. + # Game Development ## [Panda3D](https://www.panda3d.org/) From 0ae81a2c224e90fc76518f49716a8e997736d7e8 Mon Sep 17 00:00:00 2001 From: Fizban Date: Mon, 11 May 2020 20:49:10 +1000 Subject: [PATCH 64/83] Codespell to wordlist --- wordlist.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/wordlist.txt b/wordlist.txt index b08b208..9440b45 100644 --- a/wordlist.txt +++ b/wordlist.txt @@ -13,6 +13,7 @@ clis CLIs clize CMS +codespell colab Colorizer colorizer From 3fe95e84e64c34509137146d8df2567c49e553f0 Mon Sep 17 00:00:00 2001 From: JackMcKew Date: Mon, 11 May 2020 10:49:39 +0000 Subject: [PATCH 65/83] docs: update TOC --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index c9ce098..723c111 100644 --- a/README.md +++ b/README.md @@ -25,8 +25,6 @@ Short package description **Table of Contents** -- [awesome-python-bytes](#awesome-python-bytes) -- [Format](#format) - [Web Development](#web-development) - [Wagtail](#wagtail) - [Wooey](#wooey) From f2da699c60a9e1aae66df54dd604363dab7403ce Mon Sep 17 00:00:00 2001 From: Fizban Date: Mon, 11 May 2020 21:01:46 +1000 Subject: [PATCH 66/83] Update wordlist --- wordlist.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/wordlist.txt b/wordlist.txt index 9440b45..965f861 100644 --- a/wordlist.txt +++ b/wordlist.txt @@ -110,6 +110,7 @@ thinc tkinter toc todo +transactional typer UIs Utils From f5b856f337c4b29c89fc70aca0ea7030bf3cea4c Mon Sep 17 00:00:00 2001 From: Fizban Date: Wed, 20 May 2020 15:25:48 +1000 Subject: [PATCH 67/83] Include interrogate ep #181 --- .github/workflows/toc.yml | 2 +- README.md | 19 +++++++ spellcheck.yaml | 109 -------------------------------------- 3 files changed, 20 insertions(+), 110 deletions(-) delete mode 100644 spellcheck.yaml diff --git a/.github/workflows/toc.yml b/.github/workflows/toc.yml index fb8c89c..5558da0 100644 --- a/.github/workflows/toc.yml +++ b/.github/workflows/toc.yml @@ -5,4 +5,4 @@ jobs: name: TOC Generator runs-on: ubuntu-latest steps: - - uses: technote-space/toc-generator@v2 + - uses: technote-space/toc-generator@v2 \ No newline at end of file diff --git a/README.md b/README.md index 723c111..1ff7325 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,8 @@ Short package description **Table of Contents** +- [awesome-python-bytes](#awesome-python-bytes) +- [Format](#format) - [Web Development](#web-development) - [Wagtail](#wagtail) - [Wooey](#wooey) @@ -71,6 +73,7 @@ Short package description - [Hypothesis](#hypothesis) - [Safer](#safer) - [Codespell](#codespell) + - [Interrogate](#interrogate) - [Game Development](#game-development) - [Panda3D](#panda3d) - [Interesting Tidbits](#interesting-tidbits) @@ -432,6 +435,22 @@ with safer.open(filename, 'w') as fp: Fix common misspellings in text files. It's designed primarily for checking misspelled words in source code, but it can be used with other files as well. +## [Interrogate](https://pypi.org/project/interrogate/) + +** + +`interrogate` checks your code base for missing docstrings. + +Documentation should be as important as code itself. And it should live within code. Python standardized docstrings, allowing for developers to navigate libraries as simply as calling `help()` on objects, and with powerful tools like Sphinx, pydoc, and Docutils to automatically generate HTML, LaTeX, PDFs, etc. + +Enter: `interrogate`. + +`interrogate` will tell you which methods, functions, classes, and modules have docstrings, and which do not. Use interrogate to: + +- Get an understanding of how well your code is documented; +- Add it to CI/CD checks to enforce documentation on newly-added code; +- Assess a new code base for (one aspect of) code quality and maintainability. + # Game Development ## [Panda3D](https://www.panda3d.org/) diff --git a/spellcheck.yaml b/spellcheck.yaml deleted file mode 100644 index 0d49c01..0000000 --- a/spellcheck.yaml +++ /dev/null @@ -1,109 +0,0 @@ -# spellcheck.yaml -matrix: -- name: JavaScript - sources: - - '**/*.js' - expect_match: false - aspell: - lang: en - dictionary: - wordlists: - - wordlist.txt - output: wordlist.dic - encoding: utf-8 - pipeline: - - pyspelling.filters.javascript: - jsdocs: true - line_comments: true - block_comments: true - group_comments: false - decode_escapes: true - strings: false -- name: Vue - sources: - - '**/*.vue' - expect_match: false - aspell: - lang: en - dictionary: - wordlists: - - wordlist.txt - output: wordlist.dic - encoding: utf-8 - pipeline: - - pyspelling.filters.javascript: - jsdocs: true - line_comments: true - block_comments: true - group_comments: false - decode_escapes: true - strings: false - - pyspelling.filters.html: - comments: true - attributes: - - title - - alt - ignores: - - ':matches(code, pre)' - - 'code' - - 'pre' - - pyspelling.filters.stylesheets: - group_comments: true -- name: HTML - sources: - - '**/*.html' - expect_match: false - apsell: - mode: en - dictionary: - wordlists: - - wordlist.txt - output: wordlist.dic - encoding: utf-8 - pipeline: - - pyspelling.filters.html: - comments: true - attributes: - - title - - alt - ignores: - - ':matches(code, pre)' - - 'code' - - 'pre' -- name: Markdown - expect_match: false - apsell: - mode: en - dictionary: - wordlists: - - wordlist.txt - output: wordlist.dic - encoding: utf-8 - pipeline: - - pyspelling.filters.markdown: - markdown_extensions: - - markdown.extensions.extra: - - pyspelling.filters.html: - comments: true - attributes: - - title - - alt - ignores: - - ':matches(code, pre)' - - 'code' - - 'pre' - sources: - - '**/*.md' -- name: Text - sources: - - '**/*.txt|!wordlist.txt' - ignores: - expect_match: false - dictionary: - wordlists: - - wordlist.txt - output: wordlist.dic - encoding: utf-8 - pipeline: - - pyspelling.filters.text: - convert_encoding: utf-8 From 986fb2eae36d93a4378b2f783ba545b05ccf3e72 Mon Sep 17 00:00:00 2001 From: Fizban Date: Wed, 20 May 2020 15:30:55 +1000 Subject: [PATCH 68/83] Add Streamlit ep #181 --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 1ff7325..64f8e60 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,7 @@ Short package description - [Pandas Vet](#pandas-vet) - [NB2XLS](#nb2xls) - [pylightxl](#pylightxl) + - [Streamlit](#streamlit) - [Data Visualization](#data-visualization) - [Pylustrator](#pylustrator) - [Chartify](#chartify) @@ -188,6 +189,16 @@ Why pylightxl over pandas/openpyxl - (user friendly +1) pylightxl was written to be as pythonic and easy to use as possible. Core developers actively survey Stack Overflow questions on working with excel files to tailor the API for most common problems. - (see xlrd before pylightxl) Note that the xlrd library is very similar in values to pylightxl, but with much more functionality! Please take a look at xlrd to see if it is a good fit for your project. So why pick pylightxl over xlrd that has much more to offer? Currently, xlrd does not have any active developers. Pylightxl is a new library aimed to help solve current excel data issues (as surveyed by Stack Overflow), please submit your suggestions to help improve this library together. +## [Streamlit](https://www.streamlit.io/) + +** + +The fastest way to build data apps. + +Streamlit’s open-source app framework is the easiest way for data scientists and machine learning engineers to create beautiful, performant apps in only a few hours! All in pure Python. All for free. + +[![Streamlit Demo](https://camo.githubusercontent.com/5ae1dcfd188be26bbb0648fb62e9d6d593dbb6f5/68747470733a2f2f617773312e646973636f757273652d63646e2e636f6d2f7374616e6461726431302f75706c6f6164732f73747265616d6c69742f6f726967696e616c2f31582f323932653938356637663735656637626566386332376235383939663731663736636435373765302e676966)](https://www.streamlit.io/) + # Data Visualization ## [Pylustrator](https://pylustrator.readthedocs.io/en/latest/) From 3cd8a8abbd9787ff5d80562ae3532c0e0fea0408 Mon Sep 17 00:00:00 2001 From: Fizban Date: Wed, 20 May 2020 15:33:24 +1000 Subject: [PATCH 69/83] Add holoviz ep #181 --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 64f8e60..22a51a5 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,7 @@ Short package description - [Chartify](#chartify) - [PandasBokeh](#pandasbokeh) - [Missingno](#missingno) + - [HoloViz](#holoviz) - [Machine Learning](#machine-learning) - [PyTorch](#pytorch) - [Yellow Brick](#yellow-brick) @@ -239,6 +240,14 @@ Messy data sets? Missing values? `missingno` provides a small tool set of flexib [![Missingno Example](https://camo.githubusercontent.com/d59ba9e511fd42dd078b8c8829d3de3f6a7e1585/68747470733a2f2f692e696d6775722e636f6d2f675775584b45722e706e67)](https://github.com/ResidentMario/missingno) +## [HoloViz](https://holoviz.org/) + +** + +HoloViz is a coordinated effort to make browser-based data visualization in Python easier to use, easier to learn, and more powerful. + +[![Holoviz Example](https://holoviz.org/assets/earthquakes.png)](https://holoviz.org/tutorial/index.html) + # Machine Learning ## [PyTorch](https://github.com/pytorch/pytorch) From fd0b43132c511e83869ad5f1a7d113c5407a82a5 Mon Sep 17 00:00:00 2001 From: Fizban Date: Wed, 20 May 2020 15:35:08 +1000 Subject: [PATCH 70/83] Add alive-progress ep #181 --- README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/README.md b/README.md index 22a51a5..bcae27b 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,7 @@ Short package description - [Safer](#safer) - [Codespell](#codespell) - [Interrogate](#interrogate) + - [Alive-Progress](#alive-progress) - [Game Development](#game-development) - [Panda3D](#panda3d) - [Interesting Tidbits](#interesting-tidbits) @@ -471,6 +472,23 @@ Enter: `interrogate`. - Add it to CI/CD checks to enforce documentation on newly-added code; - Assess a new code base for (one aspect of) code quality and maintainability. +## [Alive-Progress](https://github.com/rsalmei/alive-progress) + +** + +A new kind of Progress Bar, with real-time throughput, eta and very cool animations! + +``` python +from alive_progress import alive_bar +items = range(1000) # retrieve your set of items +with alive_bar(len(items)) as bar: # declare your expected total + for item in items: # iterate as usual + # process each item + bar() # call after consuming one item +``` + +[![Alive-Progress Example](https://raw.githubusercontent.com/rsalmei/alive-progress/master/img/alive-demo.gif)](https://github.com/rsalmei/alive-progress) + # Game Development ## [Panda3D](https://www.panda3d.org/) From 13ad0f84c3e8245b1626280f2132be2a1a3c36a0 Mon Sep 17 00:00:00 2001 From: Fizban Date: Wed, 20 May 2020 15:40:44 +1000 Subject: [PATCH 71/83] Add awesome panel #ep 181 --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index bcae27b..cfedb6a 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,7 @@ Short package description - [PandasBokeh](#pandasbokeh) - [Missingno](#missingno) - [HoloViz](#holoviz) + - [Awesome Panel](#awesome-panel) - [Machine Learning](#machine-learning) - [PyTorch](#pytorch) - [Yellow Brick](#yellow-brick) @@ -249,6 +250,16 @@ HoloViz is a coordinated effort to make browser-based data visualization in Pyth [![Holoviz Example](https://holoviz.org/assets/earthquakes.png)](https://holoviz.org/tutorial/index.html) +## [Awesome Panel](https://awesome-panel.org/app) + +** + +Panel is announced as a high-level app and dashboarding solution for Python. I think the terms powerful and full of features should be added to that. + +The purpose of the Awesome Panel Project is to share knowledge on how Awesome Panel is and can become. + +[![Awesome Panel Example](https://raw.githubusercontent.com/MarcSkovMadsen/awesome-panel/master/assets/images/awesome-panel-full-branded.gif)](https://awesome-panel.org/app) + # Machine Learning ## [PyTorch](https://github.com/pytorch/pytorch) From 4271355af0df539371a1d7c68cef56a232dd7f76 Mon Sep 17 00:00:00 2001 From: JackMcKew Date: Wed, 20 May 2020 05:42:08 +0000 Subject: [PATCH 72/83] docs: update TOC --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index cfedb6a..49a0748 100644 --- a/README.md +++ b/README.md @@ -25,8 +25,6 @@ Short package description **Table of Contents** -- [awesome-python-bytes](#awesome-python-bytes) -- [Format](#format) - [Web Development](#web-development) - [Wagtail](#wagtail) - [Wooey](#wooey) From 7eb81e2a7f67e035fcd9d3d834ea5c9e4fce0fa2 Mon Sep 17 00:00:00 2001 From: Fizban Date: Wed, 20 May 2020 15:50:20 +1000 Subject: [PATCH 73/83] Add new words to wordlist --- wordlist.txt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/wordlist.txt b/wordlist.txt index 965f861..bd9778e 100644 --- a/wordlist.txt +++ b/wordlist.txt @@ -23,6 +23,7 @@ csv dacite dan dantic +dashboarding dataclass dataframes DataFrames @@ -31,7 +32,9 @@ dateutil deets dev django +docstrings doctoc +Docutils dumbed et fm @@ -43,6 +46,7 @@ guido guis GUIs herokuapp +HoloViz html https hyperparameter @@ -56,6 +60,7 @@ jupyter kaggle keras KristianHolsheimer +LaTeX libs linter matplotlib @@ -73,6 +78,8 @@ OpenCV openpyxl PandasBokeh perma +performant +PDFs pipenv plotly PSG @@ -81,6 +88,7 @@ py pycel pydantic PyDantic +pydoc PyInstaller pyinstaller pyjanitor @@ -104,6 +112,7 @@ rossum scikit simon stefanhoelzl +Streamlit styleguide subfigures thinc From ae22b5982037109b4ef1dc7c1ccaf37204d3efc1 Mon Sep 17 00:00:00 2001 From: Fizban Date: Wed, 20 May 2020 15:53:51 +1000 Subject: [PATCH 74/83] Add extra variation of words --- wordlist.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/wordlist.txt b/wordlist.txt index bd9778e..73dfbee 100644 --- a/wordlist.txt +++ b/wordlist.txt @@ -47,6 +47,7 @@ guis GUIs herokuapp HoloViz +Holoviz html https hyperparameter @@ -113,6 +114,7 @@ scikit simon stefanhoelzl Streamlit +Streamlit's styleguide subfigures thinc From 53e774b0aa478fe2995084448ebc2301214f565f Mon Sep 17 00:00:00 2001 From: Fizban Date: Mon, 1 Jun 2020 20:29:40 +1000 Subject: [PATCH 75/83] Update awesome panel link --- README.md | 4 +++- act/actions-checkout@v2 | 1 + act/peter-evans-link-checker@v1 | 1 + act/technote-space-toc-generator@v2 | 1 + 4 files changed, 6 insertions(+), 1 deletion(-) create mode 160000 act/actions-checkout@v2 create mode 160000 act/peter-evans-link-checker@v1 create mode 160000 act/technote-space-toc-generator@v2 diff --git a/README.md b/README.md index 49a0748..2858f66 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,8 @@ Short package description **Table of Contents** +- [awesome-python-bytes](#awesome-python-bytes) +- [Format](#format) - [Web Development](#web-development) - [Wagtail](#wagtail) - [Wooey](#wooey) @@ -248,7 +250,7 @@ HoloViz is a coordinated effort to make browser-based data visualization in Pyth [![Holoviz Example](https://holoviz.org/assets/earthquakes.png)](https://holoviz.org/tutorial/index.html) -## [Awesome Panel](https://awesome-panel.org/app) +## [Awesome Panel](https://awesome-panel.org) ** diff --git a/act/actions-checkout@v2 b/act/actions-checkout@v2 new file mode 160000 index 0000000..86f86b3 --- /dev/null +++ b/act/actions-checkout@v2 @@ -0,0 +1 @@ +Subproject commit 86f86b36ef15e6570752e7175f451a512eac206b diff --git a/act/peter-evans-link-checker@v1 b/act/peter-evans-link-checker@v1 new file mode 160000 index 0000000..41c9724 --- /dev/null +++ b/act/peter-evans-link-checker@v1 @@ -0,0 +1 @@ +Subproject commit 41c97244bb50a4a1b273d60abf5b5862b09f0c2d diff --git a/act/technote-space-toc-generator@v2 b/act/technote-space-toc-generator@v2 new file mode 160000 index 0000000..512f5a5 --- /dev/null +++ b/act/technote-space-toc-generator@v2 @@ -0,0 +1 @@ +Subproject commit 512f5a5375f21a37306730ab44d29e58079c54f4 From a612c9bbe20cbd16ea793717735ab2732379e60a Mon Sep 17 00:00:00 2001 From: Fizban Date: Mon, 1 Jun 2020 20:31:11 +1000 Subject: [PATCH 76/83] Remove act folder? --- .gitignore | 1 + act/actions-checkout@v2 | 1 - act/peter-evans-link-checker@v1 | 1 - act/technote-space-toc-generator@v2 | 1 - 4 files changed, 1 insertion(+), 3 deletions(-) delete mode 160000 act/actions-checkout@v2 delete mode 160000 act/peter-evans-link-checker@v1 delete mode 160000 act/technote-space-toc-generator@v2 diff --git a/.gitignore b/.gitignore index c6f9a44..dff74d7 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .vscode/settings.json +act/ \ No newline at end of file diff --git a/act/actions-checkout@v2 b/act/actions-checkout@v2 deleted file mode 160000 index 86f86b3..0000000 --- a/act/actions-checkout@v2 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 86f86b36ef15e6570752e7175f451a512eac206b diff --git a/act/peter-evans-link-checker@v1 b/act/peter-evans-link-checker@v1 deleted file mode 160000 index 41c9724..0000000 --- a/act/peter-evans-link-checker@v1 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 41c97244bb50a4a1b273d60abf5b5862b09f0c2d diff --git a/act/technote-space-toc-generator@v2 b/act/technote-space-toc-generator@v2 deleted file mode 160000 index 512f5a5..0000000 --- a/act/technote-space-toc-generator@v2 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 512f5a5375f21a37306730ab44d29e58079c54f4 From fa6a898111fb486c0151b94f34ebdd5d9794247a Mon Sep 17 00:00:00 2001 From: Fizban Date: Mon, 1 Jun 2020 20:33:36 +1000 Subject: [PATCH 77/83] Add fastpages --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index 2858f66..606684d 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ Short package description - [Wooey](#wooey) - [Anvil](#anvil) - [Vue.py](#vuepy) + - [fastpages](#fastpages) - [Data Science](#data-science) - [D-Tale](#d-tale) - [Great Expectations](#great-expectations) @@ -122,6 +123,19 @@ Live example at: [https://stefanhoelzl.github.io/vue.py/examples/todo_mvc/](http [![Vue.py Example](https://raw.githubusercontent.com/stefanhoelzl/vue.py/gh-pages/examples/todo_mvc/screenshot.png)](https://github.com/stefanhoelzl/vue.py) +## [fastpages](https://github.com/fastai/fastpages) + +** + +An easy to use blogging platform, with enhanced support for Jupyter Notebooks. + +- Uses GH actions to Jekyll blog posts on GitHub Pages. +- Create posts with code, output of code, formatted text, directory from Jupyter Notebooks. +- Altair interactive visualizations +- Collapsible code cells that can be open or closed by default. + +![fastpages](https://raw.githubusercontent.com/fastai/fastpages/master/images/diagram.png) + # Data Science ## [D-Tale](https://github.com/man-group/dtale) From 9392e089ede0265ebcc91070900defb590048368 Mon Sep 17 00:00:00 2001 From: Fizban Date: Mon, 1 Jun 2020 20:36:44 +1000 Subject: [PATCH 78/83] Add beekeeper studio --- README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/README.md b/README.md index 606684d..a24b2af 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,7 @@ Short package description - [Thinc](#thinc) - [Databases](#databases) - [GeoAlchemy](#geoalchemy) + - [BeeKeeper Studio Open Source SQL Editor and Database Manager](#beekeeper-studio-open-source-sql-editor-and-database-manager) - [Command Line Interfaces (CLIs)](#command-line-interfaces-clis) - [Python Fire](#python-fire) - [Clize](#clize) @@ -309,6 +310,23 @@ Using `SQLAlchemy` with Spatial Databases. `GeoAlchemy 2` focuses on `PostGIS`. `PostGIS 1.5` and `PostGIS 2` are supported. +## [BeeKeeper Studio Open Source SQL Editor and Database Manager](https://www.beekeeperstudio.io/) + + +Use Beekeeper Studio to query and manage your relational databases, like MySQL, Postgres, SQLite, and SQL Server. Runs on all the things (Windows, Linux, macOS). + +Features: + +- Autocomplete SQL query editor with syntax highlighting +- Tabbed interface, so you can multitask +- Sort and filter table data to find just what you need +- Sensible keyboard-shortcuts +- Save queries for later +- Query run-history, so you can find that one query you got working 3 days ago +- Default dark theme + +![Beekeeper Studio](https://www.beekeeperstudio.io/assets/img/screenshots/view-7148ba26031849312697bf45ee9d81a1feb58c182080edf420c0b513495441b9.jpg) + # Command Line Interfaces (CLIs) ## [Python Fire](https://github.com/google/python-fire) From 4c4b8353a473145e0d766377c1fdee979f0a6499 Mon Sep 17 00:00:00 2001 From: Fizban Date: Mon, 1 Jun 2020 20:37:56 +1000 Subject: [PATCH 79/83] Add mimesis --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index a24b2af..e69e5a9 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,7 @@ Short package description - [NB2XLS](#nb2xls) - [pylightxl](#pylightxl) - [Streamlit](#streamlit) + - [Mimesis](#mimesis) - [Data Visualization](#data-visualization) - [Pylustrator](#pylustrator) - [Chartify](#chartify) @@ -217,6 +218,12 @@ Streamlit’s open-source app framework is the easiest way for data scientists a [![Streamlit Demo](https://camo.githubusercontent.com/5ae1dcfd188be26bbb0648fb62e9d6d593dbb6f5/68747470733a2f2f617773312e646973636f757273652d63646e2e636f6d2f7374616e6461726431302f75706c6f6164732f73747265616d6c69742f6f726967696e616c2f31582f323932653938356637663735656637626566386332376235383939663731663736636435373765302e676966)](https://www.streamlit.io/) +## [Mimesis](https://mimesis.name/) + +Mimesis is fast and extremely easy to use Python package, which helps generate big volumes of fake data for a variety of purposes in a variety of languages. + +The fake data can be particularly useful during software development and testing. For example, it could be used to populate a testing database, create beautiful JSON and XML files, anonymize data taken from a production service and etc. + # Data Visualization ## [Pylustrator](https://pylustrator.readthedocs.io/en/latest/) From 0a118b4e3df1f90c557ab37e08476e001b154490 Mon Sep 17 00:00:00 2001 From: Fizban Date: Mon, 1 Jun 2020 21:19:39 +1000 Subject: [PATCH 80/83] Update link checker version --- .github/workflows/push_link_checker.yml | 2 +- .github/workflows/schedule_link_checker.yml | 2 +- .gitignore | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/push_link_checker.yml b/.github/workflows/push_link_checker.yml index f98e7c0..9182383 100644 --- a/.github/workflows/push_link_checker.yml +++ b/.github/workflows/push_link_checker.yml @@ -7,7 +7,7 @@ jobs: - uses: actions/checkout@v2 - name: Link Checker id: lc - uses: peter-evans/link-checker@v1 + uses: peter-evans/link-checker@v1.2.2 with: args: -v -r * - name: Fail if there were link errors diff --git a/.github/workflows/schedule_link_checker.yml b/.github/workflows/schedule_link_checker.yml index 0a25b66..38ca9f5 100644 --- a/.github/workflows/schedule_link_checker.yml +++ b/.github/workflows/schedule_link_checker.yml @@ -8,7 +8,7 @@ jobs: steps: - uses: actions/checkout@v2 - name: Link Checker - uses: peter-evans/link-checker@v1 + uses: peter-evans/link-checker@v1.2.2 with: args: -v -r * - name: Create Issue From File diff --git a/.gitignore b/.gitignore index dff74d7..6937180 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -.vscode/settings.json -act/ \ No newline at end of file +.vscode/settings.json \ No newline at end of file From b1277999cd426b83287e006123125ca2f471d7fb Mon Sep 17 00:00:00 2001 From: JackMcKew Date: Mon, 1 Jun 2020 11:21:03 +0000 Subject: [PATCH 81/83] docs: update TOC --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index e69e5a9..db3c14e 100644 --- a/README.md +++ b/README.md @@ -25,8 +25,6 @@ Short package description **Table of Contents** -- [awesome-python-bytes](#awesome-python-bytes) -- [Format](#format) - [Web Development](#web-development) - [Wagtail](#wagtail) - [Wooey](#wooey) From f9e007d0bfba2de3bfe45c28af5d629c9d152c4f Mon Sep 17 00:00:00 2001 From: Fizban Date: Mon, 1 Jun 2020 21:22:44 +1000 Subject: [PATCH 82/83] Remove broken link to awesome panel --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e69e5a9..c6efeef 100644 --- a/README.md +++ b/README.md @@ -280,7 +280,7 @@ Panel is announced as a high-level app and dashboarding solution for Python. I t The purpose of the Awesome Panel Project is to share knowledge on how Awesome Panel is and can become. -[![Awesome Panel Example](https://raw.githubusercontent.com/MarcSkovMadsen/awesome-panel/master/assets/images/awesome-panel-full-branded.gif)](https://awesome-panel.org/app) +[![Awesome Panel Example](https://raw.githubusercontent.com/MarcSkovMadsen/awesome-panel/master/assets/images/awesome-panel-full-branded.gif)](https://awesome-panel.org) # Machine Learning From a4c4fe712f64b8f29af95236cfa07f3082bdcce8 Mon Sep 17 00:00:00 2001 From: Fizban Date: Mon, 1 Jun 2020 21:25:27 +1000 Subject: [PATCH 83/83] Update wordlist --- README.md | 4 ++-- wordlist.txt | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c6efeef..d90c598 100644 --- a/README.md +++ b/README.md @@ -131,7 +131,7 @@ Live example at: [https://stefanhoelzl.github.io/vue.py/examples/todo_mvc/](http An easy to use blogging platform, with enhanced support for Jupyter Notebooks. -- Uses GH actions to Jekyll blog posts on GitHub Pages. +- Uses GitHub actions to Jekyll blog posts on GitHub Pages. - Create posts with code, output of code, formatted text, directory from Jupyter Notebooks. - Altair interactive visualizations - Collapsible code cells that can be open or closed by default. @@ -324,7 +324,7 @@ Use Beekeeper Studio to query and manage your relational databases, like MySQL, Features: -- Autocomplete SQL query editor with syntax highlighting +- Auto complete SQL query editor with syntax highlighting - Tabbed interface, so you can multitask - Sort and filter table data to find just what you need - Sensible keyboard-shortcuts diff --git a/wordlist.txt b/wordlist.txt index 73dfbee..f0c5802 100644 --- a/wordlist.txt +++ b/wordlist.txt @@ -1,3 +1,4 @@ +anonymize api apis argparse @@ -5,6 +6,7 @@ async Attrs backend bader +BeeKeeper Bokeh cetera chartify @@ -37,11 +39,13 @@ doctoc Docutils dumbed et +fastpages fm geoalchemy GeoAlchemy GeoPandas github +GitHub guido guis GUIs @@ -64,8 +68,10 @@ KristianHolsheimer LaTeX libs linter +macOS matplotlib missingno +Mimesis mvc natively nb @@ -83,6 +89,7 @@ performant PDFs pipenv plotly +Postgres PSG pre py