Metadata-Version: 2.4
Name: niraj-mcs
Version: 1.0.0
Summary: A numbered collection of five mobile communication Python programs.
Author: NirajDevPC
Keywords: mobile-communication,path-loss,pn-sequence,frequency-reuse
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: Topic :: Education
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Provides-Extra: plots
Requires-Dist: numpy>=1.23; extra == "plots"
Requires-Dist: matplotlib>=3.6; extra == "plots"

# niraj-mcs

Five mobile communication Python programs, available by serial number. Every stored program has its comments and blank lines removed; Python indentation and calculations are preserved.

## Install

```sh
pip install niraj-mcs
```

## Use

```python
import niraj_mcs as mcs

mcs.list()
mcs.get(1, "Redmi")
```

`list()` prints this numbered catalog:

| Serial number | Program |
| --- | --- |
| 1 | Two ray |
| 2 | PN |
| 3 | Frequency reuse |
| 4 | Interference & System Capacity (Worst Case Scenario) |
| 5 | Interference & System Capacity (Average Case Scenario) |

`get(x, password)` prints the complete Python source for serial number `x`. Both functions return `None`. The password must be exactly `"Redmi"` (case-sensitive). The parameter is named `password` because `pass` is a reserved Python keyword.

An incorrect password raises `PermissionError`. A serial number outside 1–5 raises `ValueError`; a non-integer serial number (including a boolean) raises `TypeError`.

The password is a convenience check on `get()`. This is a public package: its source files can be read without the password.

## Run a printed program

The library itself needs only Python 3.9 or later. To execute the printed programs and show their plots, install the optional scientific dependencies:

```sh
pip install "niraj-mcs[plots]"
```

Save a selected program to a file, then execute it:

```python
from contextlib import redirect_stdout
import niraj_mcs as mcs

with open("two_ray.py", "w", encoding="utf-8") as output:
    with redirect_stdout(output):
        mcs.get(1, "Redmi")
```

```sh
python two_ray.py
```

The library prints source code; it does not execute the selected program automatically.

## Development

```sh
python -m pip install build twine numpy matplotlib
python -m pip install -e .
python -m unittest discover -s tests -v
python -m build
python -m twine check --strict dist/*
```
