Skip to content

Latest commit

 

History

History
148 lines (104 loc) · 7.86 KB

2023-08-30-python-package.md

File metadata and controls

148 lines (104 loc) · 7.86 KB

DIY Python package

  • Goal: Get started learning some basic software engineering concepts. By the end of the week, you will have successfully developed a Python package while incorporating essential best practices. These practices include executing unit tests, running a linter, and ensuring proper documentation to enhance the overall functionality and maintainability of your package.
  • Dates: from 30th August to 4th September.
  • Where: #project-of-the-week in DataTalks.Club (get in slack here: https://datatalks.club/slack.html)

For more information about the "Project of the Week" initiative at DataTalks.Club, see README.md.

If you want to receive reminders about this event, sign up here

Technologies

  • Python
  • Pytest
  • black
  • flake8

Note: this is a suggested list of technologies, you can chose alternatives instead

Plan

This is a proposed plan only, you don’t have to follow it day-by-day.

Day 1 (30 August, Wednesday)

  • Come up with a project idea by selecting any existing code that already includes functions (see Suggestions below).
  • Read the tutorial Packaging Python Projects to become familiar with the fundamental components of a Python package.
  • Create a GitHub repository for your Python package.
  • Share your progress in Slack and on social media.

Suggestions

Found good materials? Create a PR with links!

Day 2 (31 August, Thursday)

  • Create a virtual environment for developing your Python package
  • Create the initial project structure as suggested in the tutorial Packaging Python Projects.
  • (Optional) Create a Docker image for running your package
  • Push your changes to GitHub.
  • Share your progress in Slack and on social media.

Suggested materials

Found good materials? Create a PR with links!

Day 3 (1 September, Friday)

  • Add functions to your package.
    • Feel free to utilize functions you've previously developed or those sourced from platforms like Kaggle or GitHub (please attribute appropriately if using code from others).
    • If you require an example of basic functions, you may refer to Python 101 – How to Create a Python Package for guidance.
  • (Optional) Add tests for the functions you’ve included.
  • Push your changes to GitHub.
  • Share your progress in Slack and on social media.

Suggested materials

Found good materials? Create a PR with links!

Day 4 (2 September, Saturday)

  • Add docstrings to all of the functions.
  • Use a formatter such as black to format your code.
  • Use a linter to validate that your code complies with PEP-8.
  • Push your changes to GitHub.
  • Share your progress in Slack and on social media.

Suggested materials

Found good materials? Create a PR with links!

Day 5 (3 September, Sunday)

  • Create a README for your package. Give examples of how to use the package.
  • Push your changes to GitHub.
  • Share your progress in Slack and on social media.

Suggested materials

Found good materials? Create a PR with links!

Day 6 (4 September, Monday)

Suggested materials

Found good materials? Create a PR with links!

Day 7 (5 September, Tuesday)

Found good materials? Create a PR with links!

Projects

List of projects from our participants:

(We will put the projects here after the event finishes)