Metadata-Version: 2.4
Name: pooja-student-utility-toolkit
Version: 1.0.0
Summary: A beginner-friendly toolkit for student marks, grades, CGPA, and pass/fail calculations.
Author-email: Pooja Rohtala <replace-with-your-email@example.com>
License: MIT
Project-URL: Repository, https://pypi.org/
Keywords: student,marks,grades,cgpa,education,beginner
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Education
Classifier: Topic :: Education
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# Student Utility Toolkit

**Python Assignment Project**  
**Student:** Pooja Rohtala  
**Roll Number:** 2432766

A beginner-friendly Python package to calculate percentages, assign grades, check pass/fail status, and calculate the average CGPA.

## Features

- Calculate percentage from marks
- Check pass/fail status using a chosen pass mark
- Assign a grade from percentage
- Calculate average CGPA from semester CGPAs
- Beginner-friendly functions with input validation

## Installation

After the package is published on PyPI:

```bash
python -m pip install pooja-student-utility-toolkit
```

## Quick start

```python
from student_utility_toolkit import percentage, pass_fail, grade, average_cgpa

print(percentage(425, 500))          # 85.0
print(pass_fail(42, pass_mark=40))   # Pass
print(grade(85))                     # A
print(average_cgpa([7.12, 7.80, 8.19, 7.86]))  # 7.7425
```

## Functions

- `percentage(obtained, total)` — returns the percentage.
- `pass_fail(marks, pass_mark=40)` — returns `"Pass"` or `"Fail"`.
- `grade(percent)` — returns a grade label.
- `average_cgpa(values)` — returns the arithmetic mean of semester CGPAs.

## Grade scale used

| Percentage | Grade |
|---|---|
| 90–100 | A+ |
| 80–89.99 | A |
| 70–79.99 | B |
| 60–69.99 | C |
| 50–59.99 | D |
| Below 50 | F |

This is a sample scale for the assignment. Replace it with your institution's official grading scale if needed.

## Build locally

Run these commands from the folder containing `pyproject.toml`:

```bash
python -m pip install --upgrade build twine
python -m build
python -m twine check dist/*
```

The built files will appear in the `dist/` folder.

## Publish to official PyPI

1. Create/sign in to an account at https://pypi.org/.
2. Enable two-factor authentication and create a **project-scoped API token** after your first upload (or use an account-scoped token for the first upload).
3. Check that the package name is available. PyPI package names must be unique.
4. Upload the `dist/` files:

```bash
python -m pip install --upgrade twine
python -m twine upload dist/*
```

When prompted, enter `__token__` as the username and paste the API token as the password. The password/token input may show no characters while typing; this is normal. Never share the token or commit it to your files.

**Important:** Publishing to official PyPI makes the package page and released files publicly accessible. PyPI is not a private package host. If you want to keep the assignment private, do not upload it to PyPI; keep it on your computer or submit the ZIP/file to your teacher. TestPyPI is for testing publication, not for keeping a package private.

## Student details

- Name: Pooja Rohtala
- Roll number: 2432766

## License

MIT License. See `LICENSE`.
