Metadata-Version: 2.4
Name: jynxpylib
Version: 0.1.0
Summary: A professional Python package containing ML lab programs
Author: Rajath
License: MIT License
        
        Copyright (c) 2026 Rajath
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: Homepage, https://github.com/rajath/jynxpylib
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# jynxpylib

`jynxpylib` is a professional Python package that provides machine learning lab programs and utilities.

## Features

- **Executable Entry Point:** Run programs directly from your command line.
- **Importable Library:** Import code and data in your own Python projects.
- **Standard Layout:** Built with modern Python packaging practices (`src` layout, `pyproject.toml`).

---

## Installation

### From Source (Local Development)

You can build and install the package locally:

1. Clone or download this repository.
2. In the repository directory, build the distribution:
   ```bash
   pip install build
   python -m build
   ```
3. Install the generated wheel file using `pip`:
   ```bash
   pip install dist/*.whl
   ```

### Editable Mode (For Developers)

To install the package in editable mode so changes are updated instantly:
```bash
pip install -e .
```

---

## Usage

### 1. From the Terminal (Command Line Interface)

After installation, the package registers a console command `jynxpylib`. You can run it directly:

* **View all programs:**
  ```bash
  jynxpylib
  ```

* **View a specific program (e.g., lab1):**
  ```bash
  jynxpylib lab1
  ```

### 2. Imported as a Python Module

You can also import and use `jynxpylib` inside standard Python scripts:

```python
import jynxpylib

# Print the list of available lab program names
print(jynxpylib.programs.keys())

# Print the content of a specific lab program
jynxpylib.print_program("lab1")
```

---

## Package Maintenance & File Roles

Here is a breakdown of which files in the repository are manually maintained and which ones are auto-generated.

### Manually Maintained Files
These files form the source code and configuration. Do **NOT** delete them:
- **`src/`**: Contains the package source code.
  - `src/jynxpylib/main.py`: Contains the logic and actual code implementation.
  - `src/jynxpylib/__init__.py`: Public API endpoints.
- **`pyproject.toml`**: The main configuration file for building Python packages.
- **`setup.py`**: Minimal compatibility wrapper.
- **`MANIFEST.in`**: List of non-code files (like `LICENSE` or `README.md`) that should be packaged.
- **`README.md`**: User documentation (this file).
- **`LICENSE`**: MIT License file.

### Auto-Generated Directories & Files
These are created automatically when building or running Python scripts. They can be safely deleted/cleaned at any time:
- **`dist/`**: Created by `python -m build`. Contains the built packages (source `.tar.gz` and wheel `.whl`).
- **`build/`**: Temporary directory created by the build backend during compile/package steps.
- **`*.egg-info/`**: Contains metadata about the package generated by `setuptools` during build or editable install.
- **`__pycache__/`**: Created by Python when compiled bytecode (.pyc) files are generated for faster load times.

---

## Publishing to PyPI

To upload this package to PyPI, follow these steps:

1. Ensure the package is built:
   ```bash
   pip install build
   python -m build
   ```

2. Install `twine`:
   ```bash
   pip install twine
   ```

3. Upload the built packages to PyPI:
   ```bash
   twine upload dist/*
   ```
