Skip to main content

Homework done

Project description

📘 Homework: Build & Publish a Python Weather App

🎯 Objective

In this assignment, you will take a simple Python weather application and turn it into a real-world, installable Python package that others can use.

By the end, you will:

  • Work with virtual environments using UV
  • Use environment variables securely
  • Package Python projects (.whl)
  • Publish to PyPI
  • Share your project with others

🧩 Starter Code

  • main.py

📝 Tasks

  • ✅ 1. Create a Virtual Environment (Using UV) and Activate it.
  • 🔑 2. Get API Key & Use .env
  • 🏗️ 3. Structure Your Project Properly
  • 📦 4. Build Your Package (.whl)
  • 🚀 5. Publish to PyPI
  • 🌍 6. Install Your Package
    • pip install your-project-name
    • from weather_app import OpenWeatherMap
  • 🧑‍💻 7. Push to GitHub
  • 👥 8. Share With Others

🏗️ Structure Your Project Properly

weather-app/
│
├── src/
│   └── weather_app/
│       ├── __init__.py
│       └── client.py
│
├── .env
|-- main.py
├── pyproject.toml
├── README.md
└── .gitignore

🧠 Grading Criteria

Criteria Points
Virtual environment setup 10
API key + .env usage 15
Project structure 15
Package build (.whl) 20
PyPI deployment 20
GitHub repo 10
Sharing/testing 10
Total 100

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

weatherme-0.1.1.tar.gz (2.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

weatherme-0.1.1-py3-none-any.whl (3.7 kB view details)

Uploaded Python 3

File details

Details for the file weatherme-0.1.1.tar.gz.

File metadata

  • Download URL: weatherme-0.1.1.tar.gz
  • Upload date:
  • Size: 2.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for weatherme-0.1.1.tar.gz
Algorithm Hash digest
SHA256 2290d94d0c0023c1ce69806a1d3cbe6969bd4cad2c37a2e27f882958f9d7d2f2
MD5 5ba3c5685edc7880b40cb5db5949966d
BLAKE2b-256 c6745ef2c8dc62c9bd4b101687c3bd14c1ae89acf3b883de84c97362e4fd6d0b

See more details on using hashes here.

File details

Details for the file weatherme-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: weatherme-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 3.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for weatherme-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ff13fbaafe910403837ab560863cd01b1879d226fcf387a11aa0e50f83cc1218
MD5 52350ab1ee8abcc01d51f802cdf9d469
BLAKE2b-256 8823d0b44db5ff6937c11ff5c959d2d11942780ab56bdba29bb9df1a41008113

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page