semvec/pypi-packages huggingface dataset:
airflow-secret-loader 1.1.0
Fetch AWS secrets as dictionary using optional Azure Identity role assumption
Requires Python: >=3.6


# airflow-secret-loader

h secrets from AWS Secrets Manager (with optional Azure Managed Identity support) and return them as a dictionary.

This is designed for use in **Astronomer (Astro)** or any Airflow deployment where credentials to fetch secrets are provided via environment variables.

---

## 📦 Installation

Install from PyPI:

```bash
pip install airflow-secret-loader
```

Or from GitHub:

```bash
pip install git+https://github.com/rajeshkbathula/airflow-secret-loader.git
```

---

## ⚙️ Required Environment Variables

| Variable                  | Description                                          |
|---------------------------|------------------------------------------------------|
| `SECRET_ROLE_ARN`         | The IAM Role ARN to assume                           |
| `SECRET_ID`               | The AWS Secrets Manager Secret ID or ARN            |
| `USE_AZURE_IDENTITY`      | Set to `true` to use Azure Managed Identity (optional) |
| `MANAGED_IDENTITY_CLIENT_ID` | Azure identity client ID (required if using Azure) |
| `AZURE_APPLICATION_ID`    | Azure App ID scope to get token (default: api://AzureADTokenExchange) |

Your secret in AWS should be stored in **JSON format**, e.g.:

```json
{
  "snowflake_user": "astro_user",
  "snowflake_key": "ABC123",
  "dbt_env": "prod"
}
```

---

## 🚀 Usage in DAG
In your DAG Python file:

`version <= 0.1.2`


```python
from airflow_secret_loader import load_env_from_aws_secret

# Load secrets as AIRFLOW_VAR_* env vars
load_env_from_aws_secret()

from airflow.models import Variable

# Now you can use them like any Airflow Variable
snowflake_user = Variable.get("snowflake_user")
dbt_env = Variable.get("dbt_env")
```

`version >= 0.2.0`



```python
import airflow_secret_loader  # automatically triggers the secret loading

from airflow.models import Variable

sf_user = Variable.get("snowflake_user")  # works immediately
```

`version >= 1.1.0`

```python
from airflow_secret_loader import get_aws_secrets

secrets = get_aws_secrets()

print(secrets["snowflake_user"])  # Access values from the secret dict
```

No need to store these variables in the Airflow metadata database — they'll be picked from environment variables prefixed with `AIRFLOW_VAR_`.

---

## ✅ Benefits

- Works seamlessly with Airflow's native `Variable.get()` logic
- Avoids hardcoding secrets in code or Airflow UI
- Great for Astro or ephemeral environments
- IAM role assumption ensures secure access control

---

## 🛠️ Dev & Build

```bash
# Build the package
make build

# Publish to PyPI (after setting up ~/.pypirc or using a token)
make publish
```

---

## 🔗 Links

- 📘 [Airflow Variables Docs](https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/variables.html)
- 🔐 [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
- 🤖 [Astronomer Astro Docs](https://docs.astronomer.io/)

---

## 👨‍💻 Author

Created by [@rajeshkbathula](https://github.com/rajeshkbathula)

---
student-management-lt 0.0.8
A desktop PyQt6 GUI app for managing university student data with an SQL database backend.

# What is this project
[![Core tests](https://github.com/ltuala/student_management/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/ltuala/student_management/actions/workflows/test.yml)  
A desktop PyQt6 GUI app for managing university student data with an SQL database backend.
![Student Management System](src/student_management/resources/icons/17.png)
## How to run
1. cd to `src/student_management` folder:
```
cd src/student_management
```
2. Run the following command:
```
python main.py
```
ntac 0.1.1
Add your description here
Requires Python: >=3.10

# NTAC  <img src="assets//logo.png" align="right" height="100" />

<div style="margin-top: 30px;"></div>

<br>

This is a Python implementation of the Neuronal typing algorithm described in

[Gregory Schwartzman, Ben Jourdan, David García-Soriano, Arie Matsliah. Connectivity Is All You Need: Inferring Neuronal Types with NTAC. bioRxiv. 2025](https://www.biorxiv.org/cgi/content/short/2025.06.11.659184v1)

## Neuronal Type Assignment from Connectivity

NTAC (Neuronal Type Assignment from Connectivity) groups neurons into cell types based solely on synaptic connectivity. It comes in two variants:

- **Seeded (semi-supervised):** Requires a small fraction of neurons with known labels.  
- **Unseeded (unsupervised):** Requires no labels.

## Installation:

Install NTAC with:
`pip install ntac`


Install cudatoolkit with conda for optional speed for unseeded:
`conda install -c conda-forge cudatoolkit`



## Qickstart with NTAC:
```python
import numpy as np
import scipy.sparse as sp
from ntac import Ntac, sbm, GraphData

# Generate an adjacency matrix and labels from an SBM graph 
A, labels = sbm(n=1000, k=4)



#NTAC requires a CSR array and labels as a string array
A_csr = sp.csr_array(A)
labels = np.array([str(l) for l in labels])
# NTAC can take in as input a CSR matrix and labels, 
# but it is easier to use the GraphData class for test_train split and metrics
data = GraphData(A_csr, labels=labels)

############################################
#Seeded NTAC
#use only 10% for training
train_indices, test_indices = data.test_train_split(train_size=0.1)
labels[test_indices] = "?" # "?" indicates a nodes is unlabeled
#Initialize NTAC with the data and labels
nt = Ntac(data=data, labels=labels)
# nt = Ntac(data=A_csr, labels=labels) # if you want to use CSR matrix directly
for i in range(5):
    print(f"Step {i}")
    nt.step()
    partition = nt.get_partition()
    #partition = nt.get_topk_partition(5) # if we want to get the top 5 labels for each node
    metrics = data.get_metrics(partition, test_indices, data.labels)
    print(f"Accuracy: {metrics['acc']:.3f}") #can also get ARI, weighted F1, and topk accuracy (if using get_topk_partition)

############################################
#Unseed NTAC example
print("Unseeded NTAC")
#This will ignore the labels, even when provided
nt.solve_unseeded(max_k = 4)
nt.map_partition_to_gt_labels(data.labels) #Use the Hungarian algorithm to map the partition to the ground truth labels
partition = nt.get_partition() #unseeded does not support topk partition
metrics = data.get_metrics(partition, range(data.n), data.labels)
print(f"Accuracy: {metrics['acc']:.3f} ARI: {metrics['ari']:.3f}", f"Weighted F1: {metrics['f1']:.3f}")
```

## Documentation & Examples using the Flywire dataset:

[Link to Docs and further examples](https://benjourdan.github.io/ntac/)
pefetch 0.0.2
Fetch Project Euler problems from the command line
Requires Python: >=3.8
Keywords: cli, projecteuler, utility

Project Euler Fetch (*pefetch*)
===============================

A CLI utility for accessing [Project Euler](https://projecteuler.net) problems
from your terminal. Currently, in development, trying to somehow render LATEX,
with no dependencies!

## Installation

```
pip install pefetch
```

## Usage

```
usage: pefetch [-h] [--link] problem_number

Project Euler Problem Fetcher

positional arguments:
  problem_number  problem number, type r for random

options:
  -h, --help      show this help message and exit
  --link, -l      print link to problem
```

As an example, problem 1:

```
$ pefetch 1
Multiples of 3 or 5
Problem 1

If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
Find the sum of all the multiples of 3 or 5 below 1000.

```

![](example.png)

## Contributing

There are a lot of issues, performance (~1 second due to the 2 requests), rendering,
colors in non-dark terminals, images etc.
Feel free to contribute if you feel like it.
statifreg 0.1.1
A library for fitting regression and gmm models in stratified subsamples with continuity constraints, quantile and lasso.
Requires Python: >=3.7

# **<u> Stratified linear regression mixture models </u>** <br>

## Main classes

- `Joint2Regressor`: Stratified multiple regression with continuity constraints for two (or K) groups.
- `JointKRegressor`: Stratified regression across K groups, with joint constraints, lasso and quantile.
- `Joint2GMMRegressor`: EM algorithm for stratified Gaussian mixture regression with constraints.
- `JointUtils`: Utilities for group splitting, closest point to median finding, etc.

## Key Features

- Joint multi-group regression with continuity or custom constraints at the join point.
- Supports quantile regression, penalized regression (lasso, ridge, elasticnet), and stratified GMM.
- Stratified multivariate piecewise regression, not directly available in scikit-learn or statsmodels.

Note : This package is provided “as is” for reproducing results, even if not all features are fully <br> 
implemented or tested. For the moment the lasso and ridge includes the $beta_0$, hence the eventual <br> 
intercept may be removed (centering $y_\ell$). The code development had involved the use of modern <br> 
tools, for code refactoring into classes, writing of the docstring, and help for code cleaning and <br>
debugging, robustfying the data entry types, etc.

## Installation

`pip install stratifreg`

## Usage

`import stratifreg`

`from stratifreg import two_groups`


## References

- Priam, R. (2025). Family of linear regression mixture models stratified along the outcome. <br>
Open Archive: [hal-04179813v3](https://hal.science/hal-04179813v3)
htmlihunter 1.5.1
Advanced HTML Injection & XSS Scanner tool
Requires Python: >=3.7

HTMLiHunter - Advanced HTML Injection Scanner
=============================================

HTMLiHunter is an automated tool to detect HTML Injection vulnerabilities 
in web applications. It supports scanning GET and POST parameters, DOM 
reflection detection with Selenium, and custom payload injection.

---

## 🚀 Features

- 🔍 Scans for **HTML Injection** and **Reflected XSS** vulnerabilities
- 🌐 Supports **GET** and **POST** parameter testing
- 🧠 Uses **Selenium + headless Chrome** for DOM-based reflection detection
- 🧾 Automatically parses and injects into **HTML forms**
- 🧨 Supports **custom payload lists**
- 💾 Outputs results to `htmli_report.json`
- 🌈 **Color-coded** output for readability
- 🔁 Built-in retry logic for unstable networks

---

Installation:
-------------
1. Ensure Python 3.7+ is installed.
2. Install dependencies with:

   pip3 install -r requirements.txt --break-system-packages (If you using Debian)

3. Download ChromeDriver from:
   https://chromedriver.chromium.org/
   and add it to your system PATH.

Usage:
------
Scan a Single URL:

    python exploit.py "https://example.com/search?query=test"

Scan Multiple URLs from File:

    python exploit.py -l urls.txt

Use Custom Payloads:

    python exploit.py -l urls.txt --payloads payloads.txt

Display Help:

    python exploit.py -h



Output:
-------
- Prints scan progress and vulnerabilities found
- Saves report to `htmli_report.json`

Terminal output will indicate:

✅ Successes and findings in green

🔵 Debug messages in blue

⚠️ Warnings or network issues in yellow

❌ DOM injection findings in red


Demo Video
🎬 [Watch the HTMLiHunter Demo on YouTube](https://youtu.be/vZzh86E6XA0)


License:
--------
MIT License (see LICENSE file or https://opensource.org/licenses/MIT)

Legal Disclaimer:
-----------
Use responsibly.

HTMLiHunter is intended for educational and authorized penetration testing only.
Scanning systems without explicit written permission is illegal and unethical.
You are solely responsible for how you use this tool.

--------
Developed by Avik Das
Email: developeravikdas@gmail.com

Happy hunting! 🐛🔍