From a80626a5f605b5afbfedac344140c16eeae5adce Mon Sep 17 00:00:00 2001 From: Joseph Banks Date: Sat, 6 Jul 2019 23:37:34 +0100 Subject: Implement new YAML resource system --- .../resources/books/automate_the_boring_stuff.yaml | 16 +++++ .../apps/home/resources/books/byte_of_python.yaml | 17 +++++ .../apps/home/resources/books/category_info.yaml | 2 + .../home/resources/books/effective_python.yaml | 14 ++++ .../resources/books/flask_web_development.yaml | 14 ++++ .../apps/home/resources/books/fluent_python.yaml | 14 ++++ .../apps/home/resources/books/mission_python.yaml | 13 ++++ .../apps/home/resources/books/python_cookbook.yaml | 14 ++++ .../apps/home/resources/books/python_tricks.yaml | 12 ++++ .../home/resources/books/two_scoops_of_django.yaml | 14 ++++ .../apps/home/resources/communities/adafruit.yaml | 14 ++++ .../home/resources/communities/category_info.yaml | 2 + .../communities/functional_programming.yaml | 10 +++ .../apps/home/resources/communities/pallets.yaml | 10 +++ .../apps/home/resources/communities/rlbot.yaml | 11 +++ .../apps/home/resources/communities/subreddit.yaml | 8 +++ pydis_site/apps/home/resources/editors/atom.yaml | 12 ++++ .../apps/home/resources/editors/category_info.yaml | 2 + .../apps/home/resources/editors/mu_editor.yaml | 12 ++++ .../apps/home/resources/editors/sublime_text.yaml | 9 +++ .../home/resources/editors/visual_studio_code.yaml | 11 +++ .../apps/home/resources/ides/category_info.yaml | 2 + pydis_site/apps/home/resources/ides/pycharm.yaml | 10 +++ pydis_site/apps/home/resources/ides/spyder.yaml | 12 ++++ pydis_site/apps/home/resources/ides/thonny.yaml | 12 ++++ .../automate_the_boring_stuff.yaml | 11 +++ .../interactive_learning_tools/category_info.yaml | 3 + .../interactive_learning_tools/code_combat.yaml | 13 ++++ .../interactive_learning_tools/exercism.yaml | 14 ++++ .../learn_to_program.yaml | 13 ++++ .../interactive_learning_tools/mit_python.yaml | 10 +++ .../programming_for_everybody.yaml | 10 +++ .../interactive_learning_tools/python_morsels.yaml | 15 ++++ .../apps/home/resources/misc/category_info.yaml | 2 + .../home/resources/misc/good_first_issue_tag.yaml | 10 +++ .../home/resources/misc/python_cheat_sheet.yaml | 9 +++ .../home/resources/podcasts/category_info.yaml | 2 + .../resources/podcasts/podcast_dunder_init.yaml | 9 +++ .../apps/home/resources/podcasts/python_bytes.yaml | 9 +++ .../home/resources/podcasts/talk_python_to_me.yaml | 9 +++ .../home/resources/tutorials/category_info.yaml | 3 + .../home/resources/tutorials/corey_schafer.yaml | 7 ++ .../tutorials/get_started_with_flask.yaml | 9 +++ .../tutorials/getting_started_with_python.yaml | 12 ++++ .../tutorials/hitchhikers_guide_to_python.yaml | 10 +++ .../apps/home/resources/tutorials/sentdex.yaml | 8 +++ .../resources/tutorials/simple_guide_to_git.yaml | 8 +++ pydis_site/utils/resources.py | 79 ++++++++++++++++++++++ 48 files changed, 542 insertions(+) create mode 100644 pydis_site/apps/home/resources/books/automate_the_boring_stuff.yaml create mode 100644 pydis_site/apps/home/resources/books/byte_of_python.yaml create mode 100644 pydis_site/apps/home/resources/books/category_info.yaml create mode 100644 pydis_site/apps/home/resources/books/effective_python.yaml create mode 100644 pydis_site/apps/home/resources/books/flask_web_development.yaml create mode 100644 pydis_site/apps/home/resources/books/fluent_python.yaml create mode 100644 pydis_site/apps/home/resources/books/mission_python.yaml create mode 100644 pydis_site/apps/home/resources/books/python_cookbook.yaml create mode 100644 pydis_site/apps/home/resources/books/python_tricks.yaml create mode 100644 pydis_site/apps/home/resources/books/two_scoops_of_django.yaml create mode 100644 pydis_site/apps/home/resources/communities/adafruit.yaml create mode 100644 pydis_site/apps/home/resources/communities/category_info.yaml create mode 100644 pydis_site/apps/home/resources/communities/functional_programming.yaml create mode 100644 pydis_site/apps/home/resources/communities/pallets.yaml create mode 100644 pydis_site/apps/home/resources/communities/rlbot.yaml create mode 100644 pydis_site/apps/home/resources/communities/subreddit.yaml create mode 100644 pydis_site/apps/home/resources/editors/atom.yaml create mode 100644 pydis_site/apps/home/resources/editors/category_info.yaml create mode 100644 pydis_site/apps/home/resources/editors/mu_editor.yaml create mode 100644 pydis_site/apps/home/resources/editors/sublime_text.yaml create mode 100644 pydis_site/apps/home/resources/editors/visual_studio_code.yaml create mode 100644 pydis_site/apps/home/resources/ides/category_info.yaml create mode 100644 pydis_site/apps/home/resources/ides/pycharm.yaml create mode 100644 pydis_site/apps/home/resources/ides/spyder.yaml create mode 100644 pydis_site/apps/home/resources/ides/thonny.yaml create mode 100644 pydis_site/apps/home/resources/interactive_learning_tools/automate_the_boring_stuff.yaml create mode 100644 pydis_site/apps/home/resources/interactive_learning_tools/category_info.yaml create mode 100644 pydis_site/apps/home/resources/interactive_learning_tools/code_combat.yaml create mode 100644 pydis_site/apps/home/resources/interactive_learning_tools/exercism.yaml create mode 100644 pydis_site/apps/home/resources/interactive_learning_tools/learn_to_program.yaml create mode 100644 pydis_site/apps/home/resources/interactive_learning_tools/mit_python.yaml create mode 100644 pydis_site/apps/home/resources/interactive_learning_tools/programming_for_everybody.yaml create mode 100644 pydis_site/apps/home/resources/interactive_learning_tools/python_morsels.yaml create mode 100644 pydis_site/apps/home/resources/misc/category_info.yaml create mode 100644 pydis_site/apps/home/resources/misc/good_first_issue_tag.yaml create mode 100644 pydis_site/apps/home/resources/misc/python_cheat_sheet.yaml create mode 100644 pydis_site/apps/home/resources/podcasts/category_info.yaml create mode 100644 pydis_site/apps/home/resources/podcasts/podcast_dunder_init.yaml create mode 100644 pydis_site/apps/home/resources/podcasts/python_bytes.yaml create mode 100644 pydis_site/apps/home/resources/podcasts/talk_python_to_me.yaml create mode 100644 pydis_site/apps/home/resources/tutorials/category_info.yaml create mode 100644 pydis_site/apps/home/resources/tutorials/corey_schafer.yaml create mode 100644 pydis_site/apps/home/resources/tutorials/get_started_with_flask.yaml create mode 100644 pydis_site/apps/home/resources/tutorials/getting_started_with_python.yaml create mode 100644 pydis_site/apps/home/resources/tutorials/hitchhikers_guide_to_python.yaml create mode 100644 pydis_site/apps/home/resources/tutorials/sentdex.yaml create mode 100644 pydis_site/apps/home/resources/tutorials/simple_guide_to_git.yaml create mode 100644 pydis_site/utils/resources.py (limited to 'pydis_site') diff --git a/pydis_site/apps/home/resources/books/automate_the_boring_stuff.yaml b/pydis_site/apps/home/resources/books/automate_the_boring_stuff.yaml new file mode 100644 index 00000000..3a9045a5 --- /dev/null +++ b/pydis_site/apps/home/resources/books/automate_the_boring_stuff.yaml @@ -0,0 +1,16 @@ +description: One of the best books out there for Python beginners. This book will + teach you the basics of Python, while also teaching invaluable automation tools + and techniques for solving common problems. You'll learn how to go about scraping + the web, manipulating files and automating keyboard and mouse input. Ideal for an + office worker who wants to make himself more useful. +name: Automate the Boring Stuff with Python +payment: optional +payment_description: A free e-book is available on the website, but you can buy it + on Amazon if you want to support the author. +urls: +- icon: regular/link + title: E-book + url: https://automatetheboringstuff.com/ +- icon: branding/amazon + title: Amazon + url: https://www.amazon.com/Automate-Boring-Stuff-Python-Programming/dp/1593275994/ diff --git a/pydis_site/apps/home/resources/books/byte_of_python.yaml b/pydis_site/apps/home/resources/books/byte_of_python.yaml new file mode 100644 index 00000000..f3eca902 --- /dev/null +++ b/pydis_site/apps/home/resources/books/byte_of_python.yaml @@ -0,0 +1,17 @@ +description: A free book on programming using the Python language. It serves as a + tutorial or guide to the Python language for a beginner audience. If all you know + about computers is how to save text files, then this is the book for you. +name: A Byte of Python +payment: optional +payment_description: A free e-book is available online, a paper version can be bought + from lulu.com. +urls: +- icon: regular/link + title: E-book + url: https://python.swaroopch.com/ +- icon: regular/book + title: Buy the book + url: http://www.lulu.com/shop/swaroop-c-h/a-byte-of-python/paperback/product-21142968.html +- icon: regular/tablet-alt + title: Kindle edition + url: https://www.amazon.com/Byte-Python-Swaroop-C-H-ebook/dp/B00FJ7S2JU/ diff --git a/pydis_site/apps/home/resources/books/category_info.yaml b/pydis_site/apps/home/resources/books/category_info.yaml new file mode 100644 index 00000000..e3b89ad3 --- /dev/null +++ b/pydis_site/apps/home/resources/books/category_info.yaml @@ -0,0 +1,2 @@ +description: The best books for learning Python or Python Frameworks +name: Books diff --git a/pydis_site/apps/home/resources/books/effective_python.yaml b/pydis_site/apps/home/resources/books/effective_python.yaml new file mode 100644 index 00000000..ab782704 --- /dev/null +++ b/pydis_site/apps/home/resources/books/effective_python.yaml @@ -0,0 +1,14 @@ +description: A book that gives 59 best practices for writing excellent Python. Great + for intermediates. +name: Effective Python +payment: paid +urls: +- icon: regular/link + title: Website + url: https://effectivepython.com/ +- icon: branding/amazon + title: Amazon + url: https://www.amazon.com/Effective-Python-Specific-Software-Development/dp/0134034287 +- icon: branding/github + title: GitHub + url: https://github.com/bslatkin/effectivepython diff --git a/pydis_site/apps/home/resources/books/flask_web_development.yaml b/pydis_site/apps/home/resources/books/flask_web_development.yaml new file mode 100644 index 00000000..613e0e50 --- /dev/null +++ b/pydis_site/apps/home/resources/books/flask_web_development.yaml @@ -0,0 +1,14 @@ +description: A comprehensive Flask walkthrough that has you building a complete social + blogging application from scratch. +name: Flask Web Development +payment: paid +urls: +- icon: regular/link + title: Website + url: http://shop.oreilly.com/product/0636920031116.do +- icon: branding/amazon + title: Amazon + url: https://www.amazon.com/Flask-Web-Development-Developing-Applications/dp/1449372627 +- icon: branding/github + title: GitHub + url: https://github.com/miguelgrinberg/flasky diff --git a/pydis_site/apps/home/resources/books/fluent_python.yaml b/pydis_site/apps/home/resources/books/fluent_python.yaml new file mode 100644 index 00000000..ebfd5f91 --- /dev/null +++ b/pydis_site/apps/home/resources/books/fluent_python.yaml @@ -0,0 +1,14 @@ +description: A veritable tome of intermediate and advanced Python information. A must-read + for any Python professional. +name: Fluent Python +payment: paid +urls: +- icon: regular/link + title: Website + url: https://www.oreilly.com/library/view/fluent-python/9781491946237/ +- icon: branding/amazon + title: Amazon + url: https://www.amazon.com/Fluent-Python-Concise-Effective-Programming/dp/1491946008 +- icon: branding/github + title: GitHub + url: https://github.com/fluentpython diff --git a/pydis_site/apps/home/resources/books/mission_python.yaml b/pydis_site/apps/home/resources/books/mission_python.yaml new file mode 100644 index 00000000..8cd91979 --- /dev/null +++ b/pydis_site/apps/home/resources/books/mission_python.yaml @@ -0,0 +1,13 @@ +description: Learn programming and Python while building a complete and awesome space-themed + game using cutting-edge Python 3.6 and Pygame Zero. Extensive use of code examples, + images, and walk-throughs make this a pleasure to both read and follow along. Excellent + book for beginners. +name: Mission Python +payment: paid +urls: +- icon: regular/link + title: Website + url: https://www.sean.co.uk/books/mission-python/index.shtm +- icon: branding/amazon + title: Amazon + url: https://www.amazon.com/Mission-Python-Code-Space-Adventure/dp/1593278578 diff --git a/pydis_site/apps/home/resources/books/python_cookbook.yaml b/pydis_site/apps/home/resources/books/python_cookbook.yaml new file mode 100644 index 00000000..9fab8e48 --- /dev/null +++ b/pydis_site/apps/home/resources/books/python_cookbook.yaml @@ -0,0 +1,14 @@ +description: Complete with 'recipes' for various Python topics, including moving from + Python 2 to Python 3.3 +name: Python Cookbook +payment: paid +urls: +- icon: regular/link + title: Website + url: http://shop.oreilly.com/product/0636920027072.do +- icon: branding/amazon + title: Amazon + url: https://www.amazon.com/Python-Cookbook-Third-David-Beazley/dp/1449340377 +- icon: branding/github + title: GitHub + url: https://github.com/dabeaz/python-cookbook diff --git a/pydis_site/apps/home/resources/books/python_tricks.yaml b/pydis_site/apps/home/resources/books/python_tricks.yaml new file mode 100644 index 00000000..0638058c --- /dev/null +++ b/pydis_site/apps/home/resources/books/python_tricks.yaml @@ -0,0 +1,12 @@ +description: Full of useful Python tips, tricks and features. Get this if you have + a good grasp of the basics and want to take your Python skills to the next level, + or are a experienced programmer looking to add to your toolbelt. +name: Python Tricks +payment: paid +urls: +- icon: regular/link + title: Website + url: https://realpython.com/products/python-tricks-book/ +- icon: branding/amazon + title: Amazon + url: https://www.amazon.com/Python-Tricks-Buffet-Awesome-Features/dp/1775093301 diff --git a/pydis_site/apps/home/resources/books/two_scoops_of_django.yaml b/pydis_site/apps/home/resources/books/two_scoops_of_django.yaml new file mode 100644 index 00000000..85cfa0fc --- /dev/null +++ b/pydis_site/apps/home/resources/books/two_scoops_of_django.yaml @@ -0,0 +1,14 @@ +description: This book is chock-full of material that will help you with your Django + projects. +name: Two Scoops of Django +payment: paid +urls: +- icon: regular/link + title: Website + url: https://twoscoopspress.com/products/two-scoops-of-django-1-11 +- icon: branding/amazon + title: Amazon + url: https://www.amazon.com/Two-Scoops-Django-Best-Practices/dp/0981467342 +- icon: branding/github + title: GitHub + url: https://github.com/twoscoops/two-scoops-of-django-2.0-code-examples diff --git a/pydis_site/apps/home/resources/communities/adafruit.yaml b/pydis_site/apps/home/resources/communities/adafruit.yaml new file mode 100644 index 00000000..193f7364 --- /dev/null +++ b/pydis_site/apps/home/resources/communities/adafruit.yaml @@ -0,0 +1,14 @@ +description: 'Adafruit is an open-source electronics manufacturer that makes all the + components you need to start your own Python-powered hardware projects. + + + Their official community host regular show-and-tells, provide help with your projects, + and the Adafruit devs do all the CircuitPython development right out in the open. + Join the Maker Revolution today!' +name: 'Discord: Adafruit' +payment: free +payment_description: null +urls: +- icon: branding/discord + title: Adafruit Discord + url: https://discord.gg/adafruit diff --git a/pydis_site/apps/home/resources/communities/category_info.yaml b/pydis_site/apps/home/resources/communities/category_info.yaml new file mode 100644 index 00000000..eccb8b80 --- /dev/null +++ b/pydis_site/apps/home/resources/communities/category_info.yaml @@ -0,0 +1,2 @@ +description: Partnered communities that share part of our mission +name: Communities diff --git a/pydis_site/apps/home/resources/communities/functional_programming.yaml b/pydis_site/apps/home/resources/communities/functional_programming.yaml new file mode 100644 index 00000000..ab99f264 --- /dev/null +++ b/pydis_site/apps/home/resources/communities/functional_programming.yaml @@ -0,0 +1,10 @@ +description: Functional Programming is a server for discussing functional languages + like Haskell, Idris, Elixir and Lisp as well as related academic fields such as + type theory, category theory, proof assistants, and more! +name: 'Discord: Functional Programming' +payment: free +payment_description: null +urls: +- icon: branding/discord + title: Functional Programming Discord + url: https://discord.gg/kWJYurV diff --git a/pydis_site/apps/home/resources/communities/pallets.yaml b/pydis_site/apps/home/resources/communities/pallets.yaml new file mode 100644 index 00000000..e5a18983 --- /dev/null +++ b/pydis_site/apps/home/resources/communities/pallets.yaml @@ -0,0 +1,10 @@ +description: The Pallets Projects develop Python libraries such as the Flask web framework, + the Jinja templating library, and the Click command line toolkit. Join to discuss + and get help from the Pallets community. +name: 'Discord: The Pallets Project' +payment: free +payment_description: null +urls: +- icon: branding/discord + title: The Pallets Project Discord + url: https://discord.gg/t6rrQZH diff --git a/pydis_site/apps/home/resources/communities/rlbot.yaml b/pydis_site/apps/home/resources/communities/rlbot.yaml new file mode 100644 index 00000000..c62e0260 --- /dev/null +++ b/pydis_site/apps/home/resources/communities/rlbot.yaml @@ -0,0 +1,11 @@ +description: RLBot is a community of programmers making awesome Rocket League bots. + They've created a framework that you can use to write bots in a number of languages + (including Python), and they host regular tournaments where botmakers can pit their + creations against each other. +name: 'Discord: RLBot' +payment: free +payment_description: null +urls: +- icon: branding/discord + title: RLBot Discord + url: https://discord.gg/4JJdJKb diff --git a/pydis_site/apps/home/resources/communities/subreddit.yaml b/pydis_site/apps/home/resources/communities/subreddit.yaml new file mode 100644 index 00000000..217a84ac --- /dev/null +++ b/pydis_site/apps/home/resources/communities/subreddit.yaml @@ -0,0 +1,8 @@ +description: News about the Python programming language, and language-related discussion +name: 'Subreddit: r/Python' +payment: free +payment_description: null +urls: +- icon: branding/reddit-alien + title: r/Python on Reddit + url: https://www.reddit.com/r/Python/ diff --git a/pydis_site/apps/home/resources/editors/atom.yaml b/pydis_site/apps/home/resources/editors/atom.yaml new file mode 100644 index 00000000..f05e45a3 --- /dev/null +++ b/pydis_site/apps/home/resources/editors/atom.yaml @@ -0,0 +1,12 @@ +description: A free Electron-based editor, a "hackable text editor for the 21st century", maintained + by the GitHub team. +name: Atom +payment: free +payment_description: null +urls: +- icon: regular/link + title: Website + url: https://atom.io/ +- icon: branding/github + title: GitHub + url: https://github.com/atom/atom diff --git a/pydis_site/apps/home/resources/editors/category_info.yaml b/pydis_site/apps/home/resources/editors/category_info.yaml new file mode 100644 index 00000000..f8dc1413 --- /dev/null +++ b/pydis_site/apps/home/resources/editors/category_info.yaml @@ -0,0 +1,2 @@ +description: Lightweight code editors supporting Python +name: Editors diff --git a/pydis_site/apps/home/resources/editors/mu_editor.yaml b/pydis_site/apps/home/resources/editors/mu_editor.yaml new file mode 100644 index 00000000..cb44d750 --- /dev/null +++ b/pydis_site/apps/home/resources/editors/mu_editor.yaml @@ -0,0 +1,12 @@ +description: An editor aimed at beginners for the purpose of learning how to code + without the distractions more advanced editors sometimes cause. +name: Mu-Editor +payment: free +payment_description: null +urls: +- icon: regular/link + title: Website + url: https://codewith.mu/en/ +- icon: branding/github + title: GitHub + url: https://github.com/mu-editor/mu/ diff --git a/pydis_site/apps/home/resources/editors/sublime_text.yaml b/pydis_site/apps/home/resources/editors/sublime_text.yaml new file mode 100644 index 00000000..97952d35 --- /dev/null +++ b/pydis_site/apps/home/resources/editors/sublime_text.yaml @@ -0,0 +1,9 @@ +description: A powerful Python-backed editor with great community support and a wealth + of extensions. +name: Sublime Text +payment: optional +payment_description: Nagware; will ask you to buy the full version after every X saves +urls: +- icon: regular/link + title: Website + url: https://www.sublimetext.com/ diff --git a/pydis_site/apps/home/resources/editors/visual_studio_code.yaml b/pydis_site/apps/home/resources/editors/visual_studio_code.yaml new file mode 100644 index 00000000..4e1f946f --- /dev/null +++ b/pydis_site/apps/home/resources/editors/visual_studio_code.yaml @@ -0,0 +1,11 @@ +description: A fully-featured editor based on Electron, extendable with plugins. +name: Visual Studio Code +payment: free +payment_description: null +urls: +- icon: regular/link + title: Website + url: https://code.visualstudio.com/ +- icon: branding/github + title: GitHub + url: https://github.com/Microsoft/vscode diff --git a/pydis_site/apps/home/resources/ides/category_info.yaml b/pydis_site/apps/home/resources/ides/category_info.yaml new file mode 100644 index 00000000..d331c95d --- /dev/null +++ b/pydis_site/apps/home/resources/ides/category_info.yaml @@ -0,0 +1,2 @@ +description: Fully-integrated development environments for serious Python work +name: IDEs diff --git a/pydis_site/apps/home/resources/ides/pycharm.yaml b/pydis_site/apps/home/resources/ides/pycharm.yaml new file mode 100644 index 00000000..4624cb41 --- /dev/null +++ b/pydis_site/apps/home/resources/ides/pycharm.yaml @@ -0,0 +1,10 @@ +description: The very best Python IDE, with a wealth of advanced features and convenience + functions. +name: PyCharm +payment: optional +payment_description: There's a free Community Edition and a paid-for Professional + Edition with more features available +urls: +- icon: regular/link + title: Website + url: https://www.jetbrains.com/pycharm/ diff --git a/pydis_site/apps/home/resources/ides/spyder.yaml b/pydis_site/apps/home/resources/ides/spyder.yaml new file mode 100644 index 00000000..146b3549 --- /dev/null +++ b/pydis_site/apps/home/resources/ides/spyder.yaml @@ -0,0 +1,12 @@ +description: The Scientific PYthon Development EnviRonment. Simpler and lighter than + PyCharm, but still packs a punch. +name: Spyder +payment: free +payment_description: null +urls: +- icon: regular/link + title: Website + url: https://www.spyder-ide.org/ +- icon: branding/github + title: GitHub + url: https://github.com/spyder-ide/spyder diff --git a/pydis_site/apps/home/resources/ides/thonny.yaml b/pydis_site/apps/home/resources/ides/thonny.yaml new file mode 100644 index 00000000..d660094b --- /dev/null +++ b/pydis_site/apps/home/resources/ides/thonny.yaml @@ -0,0 +1,12 @@ +description: A Python IDE specifially aimed at learning programming. Has a lot of + helpful features to help you understand your code. +name: Thonny +payment: free +payment_description: null +urls: +- icon: regular/link + title: Website + url: https://thonny.org/ +- icon: branding/github + title: GitHub + url: https://github.com/thonny/thonny/ diff --git a/pydis_site/apps/home/resources/interactive_learning_tools/automate_the_boring_stuff.yaml b/pydis_site/apps/home/resources/interactive_learning_tools/automate_the_boring_stuff.yaml new file mode 100644 index 00000000..02d76b3b --- /dev/null +++ b/pydis_site/apps/home/resources/interactive_learning_tools/automate_the_boring_stuff.yaml @@ -0,0 +1,11 @@ +description: The interactive course version of Al Sweigart's excellent book for beginners, + taught by the author himself. This link has a discounted version of the course which + will always cost 10 dollars. Thanks, Al! +name: Automate the Boring Stuff with Python +payment: paid +payment_description: Paid course with a certificate of completion. Some sample videos + are available for free. +urls: +- icon: regular/graduation-cap + title: Udemy Course + url: https://www.udemy.com/automate/?couponCode=FOR_LIKE_10_BUCKS diff --git a/pydis_site/apps/home/resources/interactive_learning_tools/category_info.yaml b/pydis_site/apps/home/resources/interactive_learning_tools/category_info.yaml new file mode 100644 index 00000000..08501627 --- /dev/null +++ b/pydis_site/apps/home/resources/interactive_learning_tools/category_info.yaml @@ -0,0 +1,3 @@ +description: Learn Python with interactive content like courses, games and programming + challenges. +name: Interactive Learning Tools diff --git a/pydis_site/apps/home/resources/interactive_learning_tools/code_combat.yaml b/pydis_site/apps/home/resources/interactive_learning_tools/code_combat.yaml new file mode 100644 index 00000000..39c25f0d --- /dev/null +++ b/pydis_site/apps/home/resources/interactive_learning_tools/code_combat.yaml @@ -0,0 +1,13 @@ +description: Learn Python while gaming - an open-source project with thousands of + contributors, which teaches you Python through a deep, top-down RPG. +name: Code Combat +payment: optional +payment_description: A wealth of free content is available, but you can also pay for + more +urls: +- icon: regular/link + title: Website + url: https://codecombat.com/ +- icon: branding/github + title: GitHub + url: https://github.com/codecombat/codecombat diff --git a/pydis_site/apps/home/resources/interactive_learning_tools/exercism.yaml b/pydis_site/apps/home/resources/interactive_learning_tools/exercism.yaml new file mode 100644 index 00000000..3adb4138 --- /dev/null +++ b/pydis_site/apps/home/resources/interactive_learning_tools/exercism.yaml @@ -0,0 +1,14 @@ +description: Level up your programming skills with more than 2600 exercises across + 47 programming languages, Python included. The website provides a mentored mode, + where you can get your code reviewed for each solution you submit. The mentors will + give you insightful advice to make you a better programmer. +name: exercism.io +payment: free +payment_description: null +urls: +- icon: regular/link + title: Website + url: https://exercism.io/ +- icon: branding/github + title: GitHub + url: https://github.com/exercism/python diff --git a/pydis_site/apps/home/resources/interactive_learning_tools/learn_to_program.yaml b/pydis_site/apps/home/resources/interactive_learning_tools/learn_to_program.yaml new file mode 100644 index 00000000..265f1644 --- /dev/null +++ b/pydis_site/apps/home/resources/interactive_learning_tools/learn_to_program.yaml @@ -0,0 +1,13 @@ +description: A 2-part course that teaches Python. Primarily intended for high school + students and first-year university students who want to learn programming. +name: 'University of Toronto: Learn to Program' +payment: optional +payment_description: You can pay to enroll for a graded certificate, or choose to + audit for free. +urls: +- icon: regular/graduation-cap + title: 'Part 1: The Fundamentals' + url: https://www.coursera.org/learn/learn-to-program +- icon: regular/graduation-cap + title: 'Part 2: Crafting Quality Code' + url: https://www.coursera.org/learn/program-code diff --git a/pydis_site/apps/home/resources/interactive_learning_tools/mit_python.yaml b/pydis_site/apps/home/resources/interactive_learning_tools/mit_python.yaml new file mode 100644 index 00000000..464b8d4a --- /dev/null +++ b/pydis_site/apps/home/resources/interactive_learning_tools/mit_python.yaml @@ -0,0 +1,10 @@ +description: This MITx offering teaches computer science with Python. It covers computational + thinking, algorithms, data structures and the Python programming language itself. +name: 'MIT: Introduction to Computer Science and Programming Using Python' +payment: optional +payment_description: You can pay to enroll for a graded certificate, or choose to + take the full course for free. +urls: +- icon: regular/graduation-cap + title: edX Course + url: https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-11 diff --git a/pydis_site/apps/home/resources/interactive_learning_tools/programming_for_everybody.yaml b/pydis_site/apps/home/resources/interactive_learning_tools/programming_for_everybody.yaml new file mode 100644 index 00000000..a6d7abe1 --- /dev/null +++ b/pydis_site/apps/home/resources/interactive_learning_tools/programming_for_everybody.yaml @@ -0,0 +1,10 @@ +description: A 5-part specialization course that teaches Python from scratch. The + course has no pre-requisites and avoids all but the simplest mathematics. +name: 'University of Michigan: Programming for Everybody' +payment: optional +payment_description: You can pay to enroll for a graded certificate and a capstone + project, or choose to audit for free. +urls: +- icon: regular/graduation-cap + title: Python for Everyone Specialization + url: https://www.coursera.org/learn/python diff --git a/pydis_site/apps/home/resources/interactive_learning_tools/python_morsels.yaml b/pydis_site/apps/home/resources/interactive_learning_tools/python_morsels.yaml new file mode 100644 index 00000000..f883f8b7 --- /dev/null +++ b/pydis_site/apps/home/resources/interactive_learning_tools/python_morsels.yaml @@ -0,0 +1,15 @@ +description: 'Learn to write more idiomatic Python code with deliberate practice! + + + Sign up for this service and receive one short Python exercise every week. After + you attempt to work through the exercise, you''ll receive a number of solutions + to the exercise with explanations of each one. Each exercise will include automated + tests and some may include bonuses for a little more of a challenge!' +name: Python Morsels +payment: paid +payment_description: Paid service with monthly and annual plans. A 4 week free trial + is available without needing to enter payment information. +urls: +- icon: regular/link + title: Website + url: https://www.pythonmorsels.com/ diff --git a/pydis_site/apps/home/resources/misc/category_info.yaml b/pydis_site/apps/home/resources/misc/category_info.yaml new file mode 100644 index 00000000..4fdc4bf7 --- /dev/null +++ b/pydis_site/apps/home/resources/misc/category_info.yaml @@ -0,0 +1,2 @@ +description: Resources which do not fit into the other categories +name: Miscellaneous diff --git a/pydis_site/apps/home/resources/misc/good_first_issue_tag.yaml b/pydis_site/apps/home/resources/misc/good_first_issue_tag.yaml new file mode 100644 index 00000000..35d7a8a4 --- /dev/null +++ b/pydis_site/apps/home/resources/misc/good_first_issue_tag.yaml @@ -0,0 +1,10 @@ +description: Searching for opportunities to contribute to a Python project? GitHub + repository maintainers often mark issues appropriate for novice users with the 'Good + First Issue' tag. These issues can be explored directly on GitHub. +name: GitHub's 'Good First Issue' Tag +payment: free +payment_description: null +urls: +- icon: branding/github + title: GitHub + url: https://github.com/search?utf8=%E2%9C%93&q=label%3A%22good+first+issue%22+language%3APython+state%3Aopen&type=Issues&ref=advsearch&l=Python&l= diff --git a/pydis_site/apps/home/resources/misc/python_cheat_sheet.yaml b/pydis_site/apps/home/resources/misc/python_cheat_sheet.yaml new file mode 100644 index 00000000..8c82a5a9 --- /dev/null +++ b/pydis_site/apps/home/resources/misc/python_cheat_sheet.yaml @@ -0,0 +1,9 @@ +description: A Python 3 cheat sheet with useful information and tips, as well as common + pitfalls for beginners. This is a PDF. +name: Python Cheat Sheet +payment: free +payment_description: null +urls: +- icon: regular/link + title: Website + url: https://perso.limsi.fr/pointal/_media/python:cours:mementopython3-english.pdf diff --git a/pydis_site/apps/home/resources/podcasts/category_info.yaml b/pydis_site/apps/home/resources/podcasts/category_info.yaml new file mode 100644 index 00000000..a0f9025c --- /dev/null +++ b/pydis_site/apps/home/resources/podcasts/category_info.yaml @@ -0,0 +1,2 @@ +description: Notable podcasts about the Python ecosystem +name: Podcasts diff --git a/pydis_site/apps/home/resources/podcasts/podcast_dunder_init.yaml b/pydis_site/apps/home/resources/podcasts/podcast_dunder_init.yaml new file mode 100644 index 00000000..8f0cac8b --- /dev/null +++ b/pydis_site/apps/home/resources/podcasts/podcast_dunder_init.yaml @@ -0,0 +1,9 @@ +description: The podcast about Python and the people who make it great. Weekly long-form + interviews with the creators of notable Python packages. +name: Podcast.__init__ +payment: free +payment_description: null +urls: +- icon: regular/link + title: Website + url: https://www.podcastinit.com/ diff --git a/pydis_site/apps/home/resources/podcasts/python_bytes.yaml b/pydis_site/apps/home/resources/podcasts/python_bytes.yaml new file mode 100644 index 00000000..a3368d23 --- /dev/null +++ b/pydis_site/apps/home/resources/podcasts/python_bytes.yaml @@ -0,0 +1,9 @@ +description: A byte-sized podcast where Michael Kennedy and Brian Okken work through + this week's notable Python headlines. +name: Python Bytes +payment: free +payment_description: null +urls: +- icon: regular/link + title: Website + url: https://pythonbytes.fm/ diff --git a/pydis_site/apps/home/resources/podcasts/talk_python_to_me.yaml b/pydis_site/apps/home/resources/podcasts/talk_python_to_me.yaml new file mode 100644 index 00000000..5ed101c4 --- /dev/null +++ b/pydis_site/apps/home/resources/podcasts/talk_python_to_me.yaml @@ -0,0 +1,9 @@ +description: The essential weekly Python podcast. Michael Kennedy and a prominent + name within the Python community dive into a topic that relates to their experience. +name: Talk Python To Me +payment: free +payment_description: null +urls: +- icon: regular/link + title: Website + url: https://talkpython.fm/ diff --git a/pydis_site/apps/home/resources/tutorials/category_info.yaml b/pydis_site/apps/home/resources/tutorials/category_info.yaml new file mode 100644 index 00000000..a9adc106 --- /dev/null +++ b/pydis_site/apps/home/resources/tutorials/category_info.yaml @@ -0,0 +1,3 @@ +description: Tutorials and references for those that are just getting started with + python +name: Tutorials diff --git a/pydis_site/apps/home/resources/tutorials/corey_schafer.yaml b/pydis_site/apps/home/resources/tutorials/corey_schafer.yaml new file mode 100644 index 00000000..9fff4bbf --- /dev/null +++ b/pydis_site/apps/home/resources/tutorials/corey_schafer.yaml @@ -0,0 +1,7 @@ +description: An in-depth look at the Python programming language, from one of + YouTube's most popular Python tutors. +payment: free +urls: + - icon: branding/youtube, + title: YouTube, + url: https://www.youtube.com/playlist?list=PL-osiE80TeTt2d9bfVyTiXJA-UTHn6WwU diff --git a/pydis_site/apps/home/resources/tutorials/get_started_with_flask.yaml b/pydis_site/apps/home/resources/tutorials/get_started_with_flask.yaml new file mode 100644 index 00000000..11dd2a4d --- /dev/null +++ b/pydis_site/apps/home/resources/tutorials/get_started_with_flask.yaml @@ -0,0 +1,9 @@ +description: A fully featured mega-tutorial for learning how to create web applications + with the Flask framework. +name: Get Started with Flask Web Development +payment: free +payment_description: null +urls: +- icon: regular/link + title: Website + url: https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world diff --git a/pydis_site/apps/home/resources/tutorials/getting_started_with_python.yaml b/pydis_site/apps/home/resources/tutorials/getting_started_with_python.yaml new file mode 100644 index 00000000..777f2fe3 --- /dev/null +++ b/pydis_site/apps/home/resources/tutorials/getting_started_with_python.yaml @@ -0,0 +1,12 @@ +description: The list of resources for programmers and non-programmers from Python's + official beginners' guide +name: Getting Started with Python +payment: free +payment_description: null +urls: +- icon: regular/link + title: Beginners Guide for Non-Programmers + url: https://wiki.python.org/moin/BeginnersGuide/NonProgrammers +- icon: regular/link + title: Beginners Guide for Programmers + url: https://wiki.python.org/moin/BeginnersGuide/Programmers diff --git a/pydis_site/apps/home/resources/tutorials/hitchhikers_guide_to_python.yaml b/pydis_site/apps/home/resources/tutorials/hitchhikers_guide_to_python.yaml new file mode 100644 index 00000000..38eebb56 --- /dev/null +++ b/pydis_site/apps/home/resources/tutorials/hitchhikers_guide_to_python.yaml @@ -0,0 +1,10 @@ +description: This opinionated guide exists to provide both novice and expert Python + developers a best practice handbook to the installation, configuration, and usage + of Python on a daily basis. +name: The Hitchhiker's Guide to Python +payment: free +payment_description: null +urls: +- icon: regular/link + title: Website + url: https://python-guide.org/ diff --git a/pydis_site/apps/home/resources/tutorials/sentdex.yaml b/pydis_site/apps/home/resources/tutorials/sentdex.yaml new file mode 100644 index 00000000..cae2695b --- /dev/null +++ b/pydis_site/apps/home/resources/tutorials/sentdex.yaml @@ -0,0 +1,8 @@ +description: A Python basics tutorial based around Python 3.7. +name: Python Tutorials by Sentdex on YouTube +payment: free +payment_description: null +urls: +- icon: branding/youtube + title: YouTube + url: https://www.youtube.com/playlist?list=PLQVvvaa0QuDeAams7fkdcwOGBpGdHpXln diff --git a/pydis_site/apps/home/resources/tutorials/simple_guide_to_git.yaml b/pydis_site/apps/home/resources/tutorials/simple_guide_to_git.yaml new file mode 100644 index 00000000..acf76efe --- /dev/null +++ b/pydis_site/apps/home/resources/tutorials/simple_guide_to_git.yaml @@ -0,0 +1,8 @@ +description: A simple, no-nonsense guide to the basics of using Git. +name: A Simple Guide to Git +payment: free +payment_description: null +urls: +- icon: regular/link + title: Website + url: http://rogerdudler.github.io/git-guide/ diff --git a/pydis_site/utils/resources.py b/pydis_site/utils/resources.py new file mode 100644 index 00000000..1053bbc5 --- /dev/null +++ b/pydis_site/utils/resources.py @@ -0,0 +1,79 @@ +from __future__ import annotations + +import yaml +import typing +import glob +from dataclasses import dataclass + + +@dataclass +class URL: + icon: str + title: str + url: str + + +class Resource: + description: str + name: str + payment: str + payment_description: typing.Optional[str] + urls: typing.List[URL] + + def __repr__(self): + return f"" + + @classmethod + def construct_from_yaml(cls, yaml_data: str) -> Resource: + resource = cls() + + loaded = yaml.safe_load(yaml_data) + + resource.__dict__.update(loaded) + + resource.__dict__["urls"] = [] + + for url in loaded["urls"]: + resource.__dict__["urls"].append(URL(**url)) + + return resource + + +class Category: + resources: typing.List[Resource] + name: str + description: str + + def __repr__(self): + return f"" + + @classmethod + def construct_from_directory(cls, directory: str) -> Category: + category = cls() + + with open(f"{directory}/category_info.yaml") as category_info: + category_data = yaml.safe_load(category_info) + + category.__dict__.update(category_data) + + category.resources = [] + + for resource in glob.glob(f"{directory}/*.yaml"): + if resource == f"{directory}/category_info.yaml": + continue + + with open(resource) as res_file: + category.resources.append( + Resource.construct_from_yaml(res_file) + ) + + return category + + +def load_categories(order: typing.List[str]) -> typing.List[Category]: + categories = [] + for cat in order: + direc = "pydis_site/apps/home/resources/" + cat + categories.append(Category.construct_from_directory(direc)) + + return categories -- cgit v1.2.3