semvec/pypi-packages huggingface dataset:
sdlc-databricks 0.1.0
A library to generate SDLC artifacts using Gemini AI and push to GitHub from Databricks
License: MIT
Requires Python: >=3.7
Keywords: sdlc, databricks, gemini, pyspark, ai

# sdlc-databricks

A Python package to automate the generation of SDLC documents (FRD, TRD) using Gemini AI, parse PDFs via PyMuPDF, generate PySpark code, and push it all to GitHub.
django-bulk-lifecycle 0.1.50
Salesforce-style lifecycle hooks for Django bulk operations
License: MIT
Requires Python: <4.0,>=3.11
Keywords: django, bulk, lifecycle, hooks


# django-bulk-lifecycle

⚡ Salesforce-style lifecycle hooks for Django bulk operations.

`django-bulk-lifecycle` brings a declarative, trigger-like experience to Django's `bulk_create`, `bulk_update`, and `bulk_delete` — including support for `BEFORE_` and `AFTER_` hooks, conditions, batching, and transactional safety.

## ✨ Features

- Declarative hook system: `@hook(AFTER_UPDATE, condition=...)`
- BEFORE/AFTER hooks for create, update, delete
- Salesforce-style semantics with full batch support
- Lifecycle-aware manager that wraps Django’s `bulk_` operations
- Hook chaining, trigger deduplication, and atomicity
- Class-based hook handlers with DI support

## 🚀 Quickstart

```bash
pip install django-bulk-lifecycle
```

### Define Your Model

```python
from django.db import models
from django_bulk_lifecycle.manager import BulkLifecycleManager

class Account(models.Model):
    balance = models.DecimalField(max_digits=10, decimal_places=2)
    objects = BulkLifecycleManager()
```

### Create a Trigger Handler

```python
from django_bulk_lifecycle import hook, AFTER_UPDATE, TriggerHandler
from django_bulk_lifecycle.conditions import WhenFieldHasChanged
from .models import Account

class AccountTriggerHandler(TriggerHandler):
    @hook(AFTER_UPDATE, model=Account, condition=WhenFieldHasChanged("balance"))
    def log_balance_change(self, new_objs):
        print("Accounts updated:", [a.pk for a in new_objs])
```

## 🛠 Supported Lifecycle Events

- `BEFORE_CREATE`, `AFTER_CREATE`
- `BEFORE_UPDATE`, `AFTER_UPDATE`
- `BEFORE_DELETE`, `AFTER_DELETE`

## 🧠 Why?

Django’s `bulk_` methods bypass signals and `save()`. This package fills that gap with:

- Triggers that behave consistently across creates/updates/deletes
- Scalable performance via chunking (default 200)
- Support for `@hook` decorators and centralized trigger classes

## 📦 Usage in Views / Commands

```python
# Calls AFTER_UPDATE hooks automatically
Account.objects.bulk_update(accounts, ['balance'])

# Triggers BEFORE_CREATE and AFTER_CREATE
Account.objects.bulk_create(accounts)
```

## 🧩 Integration with Queryable Properties

You can extend from `BulkLifecycleManager` to support formula fields or property querying.

```python
class MyManager(BulkLifecycleManager, QueryablePropertiesManager):
    pass
```

## 📝 License

MIT © 2024 Augend / Konrad Beck
pycamp-cli 1.0.1
a command-line tool to fetch a random bandcamp album from a chosen genre — instantly.
License: MIT
Requires Python: >=3.7

# pycamp

a command-line tool to fetch a random bandcamp album from a chosen genre — instantly.

## features

- open random bandcamp albums by tag/genre
- two modes:
  - `quick`: quick, no album details, just opens it
  - `full`: fetch album details (title, artist, date, tags) before prompting to open
- works with any genre tag on bandcamp
- supports short flags for fast access (`-q`, `-f`)

## installation

```bash
pip install pycamp-cli
```

## usage

```bash
pycamp <genre> [ --quick | -q | --full | -f ]
```

### Examples

```bash
pycamp hardcore
pycamp ambient --full
pycamp blackened crust -q
```

if no flag is provided, `--quick` is the default.

## flags

| flag         | mode description                        |
|--------------|------------------------------------------|
| `--quick` or `-q` | quick mode — skips detail fetch, just opens    |
| `--full` or `-f`  | full mode — shows album info before prompting  |

## notes

- uses playwright under the hood. on first run, you may need to install browser dependencies:

```bash
playwright install
```

- make sure `node` and a recent python (3.7+) are installed.

## tip

use specific genres like:

- `trip hop`
- `blackened crust`
- `powerviolence`
- `spiritual jazz`
- `grindcore`

they map directly to bandcamp tag pages.

## license

MIT © jasper binetti-makin