semvec/pypi-packages huggingface dataset:
jbs-polecat 1.0.0
Extract exam dates and deadlines from Cambridge Judge Business School learning platform and generate calendar files
Requires Python: >=3.10
Keywords: automation, calendar, cambridge, ics, jbs, moodle

# Polecat

A CLI tool that extracts exam dates, assignment deadlines, and quiz schedules from the Cambridge Judge Business School (JBS) learning platform and generates an `.ics` calendar file.

## Features

- Extracts dates from two sources:
  - **Key Dates table** (unit releases, live sessions, quiz opens/closes)
  - **Assignment pages** (submission deadlines)
- Filters to show only important deadlines by default
- Generates standard `.ics` files compatible with Google Calendar, Outlook, Apple Calendar
- Human-in-the-loop: you complete SSO login manually (no credentials stored)

## Requirements

- Python 3.10+
- A JBS learning platform account

## Installation

### Quick Install (Recommended)

```bash
pip install jbs-polecat
playwright install chromium
```

That's it! Now run `polecat` to start.

### Install from Source

For development or if you prefer to clone the repository:

```bash
git clone https://github.com/shoaib-akhter/polecat.git
cd polecat
pip install -e .
playwright install chromium
```

## Usage

```bash
polecat
```

### Steps

1. **Browser opens** - A Chromium browser window will open
2. **Login** - Complete SSO login manually in the browser
3. **Select term** - Use the dropdown to filter courses by term (e.g., "Lent")
4. **Press Enter** - Confirm in terminal once courses are visible
5. **Review dates** - Check the summary table in terminal
6. **Confirm** - Type `y` to proceed
7. **Filter options** - Choose what to include in calendar:
   - Assignment "Opens" dates (default: no)
   - Unit releases and live sessions (default: no)
8. **Done** - Calendar file saved as `JBS_Calendar_[Term]_[Year].ics`

### Example Output

```
Found 9 course(s):
  - MBA10 Strategy (2025/26)
  - MBA11 Marketing (2025/26)
  ...

Filtered: 30 event(s) will be saved to calendar

SUCCESS! Calendar file created:
  /path/to/JBS_Calendar_Lent_2026.ics
```

## What Gets Extracted

| Event Type | Included by Default |
|------------|---------------------|
| Assignment Due dates | Yes |
| Exam dates | Yes |
| Quiz Opens/Closes | Yes |
| Assignment Opens dates | No (opt-in) |
| Unit release dates | No (opt-in) |
| Live session dates | No (opt-in) |

## License

MIT
tinycompress 0.1.2
Library to handle sparse bytes within a virtual memory space
Requires Python: >=3.10

********
Overview
********

.. start-badges

.. list-table::
    :stub-columns: 1

    * - docs
      - |docs|
    * - tests
      - | |gh_actions|
        | |codecov|
    * - package
      - | |version| |wheel|
        | |supported-versions|
        | |supported-implementations|

.. |docs| image:: https://app.readthedocs.org/projects/tinycompress/badge/?style=flat
    :target: https://app.readthedocs.org/projects/tinycompress
    :alt: Documentation Status

.. |gh_actions| image:: https://github.com/TexZK/tinycompress/workflows/CI/badge.svg
    :alt: GitHub Actions Status
    :target: https://github.com/TexZK/tinycompress

.. |codecov| image:: https://codecov.io/gh/TexZK/tinycompress/branch/main/graphs/badge.svg?branch=main
    :alt: Coverage Status
    :target: https://app.codecov.io/github/TexZK/tinycompress

.. |version| image:: https://img.shields.io/pypi/v/tinycompress.svg
    :alt: PyPI Package latest release
    :target: https://pypi.org/project/tinycompress/

.. |wheel| image:: https://img.shields.io/pypi/wheel/tinycompress.svg
    :alt: PyPI Wheel
    :target: https://pypi.org/project/tinycompress/

.. |supported-versions| image:: https://img.shields.io/pypi/pyversions/tinycompress.svg
    :alt: Supported versions
    :target: https://pypi.org/project/tinycompress/

.. |supported-implementations| image:: https://img.shields.io/pypi/implementation/tinycompress.svg
    :alt: Supported implementations
    :target: https://pypi.org/project/tinycompress/

.. end-badges

A tiny library for tiny binary compression.

* Free software: BSD 2-Clause License


Overview
==========

TinyCompress is a lightweight Python library that provides efficient data
compression algorithms with a focus on simplicity and ease of use.

The library implements multiple compression methods:

* **LZSSW** (Lempel-Ziv-Storer-Szymanski via Words):
  An efficient variant of LZ77 compression algorithm that uses a sliding
  window approach for finding repeated data patterns.

* **RLEB** (Run-Length Encoding for Bytes):
  A specialized compression algorithm that combines run-length encoding with
  bit flags, particularly effective for data with repeated byte sequences.

Key features:

* Pure Python implementation for maximum portability
* Streaming interface for processing large files with minimal memory usage
* File handling utilities for direct compression/decompression of files
* Extensible base classes for implementing custom compression algorithms
* Comprehensive test suite with high code coverage
* BSD 2-Clause licensed for both commercial and open-source use


Documentation
=============

For the full documentation, please refer to:

https://tinycompress.readthedocs.io/en/latest/


Installation
============

From PyPI (might not be the latest version found on *github*):

.. code-block:: sh

    $ pip install tinycompress

From the source code root directory:

.. code-block:: sh

    $ pip install .


Development
===========

To run the all the tests:

.. code-block:: sh

    $ pip install tox
    $ tox
clacks-gnu-middleware 0.0.2
A FastAPI middleware to handle the GNU Headers (Memorial Headers) of the Clacks (Going Postal Terry Pratchett) for 'sending people home'.
Requires Python: >=3.9

# Clacks GNU middleware

Lightweight FastAPI/Starlette middleware that keeps the tradition alive by adding the `X-Clacks-Overhead` HTTP header. Incoming headers are preserved, defaults can be configured, and duplicates are removed case-insensitively.

## What it does
- Adds `X-Clacks-Overhead` to every response, prefixed with `GNU` and joined by commas.
- Merges incoming request names, your configured defaults, and any names already set on the response.
- Deduplicates names case-insensitively to avoid repeated entries.
- Simple configuration via a shared `clacks_config` object.

## Install
```bash
pip install clacks-gnu-middleware
```

For local development:
```bash
pip install -e .
pip install -r requirements.txt  # tooling & test extras
```

## Quick start (FastAPI)
```python
from fastapi import FastAPI
from clacks_gnu_middleware.clacks_middleware import clacks_middleware, clacks_config

app = FastAPI()

# Optional: customize defaults before registering the middleware
clacks_config.default_names.extend([
    "Ada Lovelace",
    "Alan Turing",
])

app.middleware("http")(clacks_middleware)

@app.get("/ping")
async def ping():
    return {"status": "ok"}

# Run with: uvicorn app.application:app --reload
```

## Header behavior
- Header name: `X-Clacks-Overhead`.
- Values are emitted as `GNU <name>`, joined with commas.
- Order: configured defaults → incoming header values → names already set on the response.
- Names are deduplicated (case-insensitive). Empty or non-`GNU` values are ignored.

## Testing
```bash
pytest
```

## Notes
- The middleware uses a module-level `clacks_config`; set defaults before registering the middleware to avoid runtime mutation.
- License: GPL-3.0 (see LICENSE).
cdef-pil-080126-2320 0.1.0
Parental income loss analysis pipeline.
Requires Python: >=3.9

# Parental Income Loss

## Stacked Event-Study Outputs
The stacked example writes results to:
- `output/stacked_event_study/stacked_results.csv`
- `output/stacked_event_study/stacked_results.parquet`

Each row contains:
- `sample`, `chapter`, `component` (event_time or horizon_*),
- `reference_year`, `target_year`, `event_time`,
- `att`, `se`, `conf_low`, `conf_high`,
- `n_pairs`, `n_treated`, `n_control`, `convergence`,
- `bucket_periods`, `horizon_start`, `horizon_end`, `horizon_label`, `bucket_weight`.

Bucket weighting defaults to treated-weighted (`n_treated`). Override with:
- `STACKED_BUCKET_WEIGHT=pairs`

## Quickstart: Custom Components
- Implement one or more of: `PopulationAssembler`, `CohortSelector`, `ExposureDetector`, `MatchingEngine`.
- Wire them into the pipeline with `CohortWorkflow::with_components`.
- Use `docs/component_contracts.md` to ensure required columns are present.

Example wiring:
```rust
let workflow = CohortWorkflow::with_components(builder, selector, matcher);
let outputs = workflow.run(sources, &detector, &registries, &plan, None)?;
```

## Stacked Event Study CLI
- Run the standalone stacked event-study on a parquet file:
  `cargo run -- --stacked-input path/to/stacked_inputs.parquet --did-outcome perindkialt13`
- Optional flags: `--stacked-samples`, `--stacked-chapter-col`, `--stacked-icd-col`,
  `--stacked-output-dir`, plus the existing `--stacked-*` config flags.

## Docs
- Component contracts: `docs/component_contracts.md`
- Custom component example: `crates/pil/examples/custom_components.rs`
- Custom selector example: `crates/pil/examples/custom_selector.rs`
- Custom matcher example: `crates/pil/examples/custom_matcher.rs`
- Custom detector example: `crates/pil/examples/custom_detector.rs`
whooshpad 0.1.2
A mobile-friendly remote control for MyWhoosh virtual cycling
Requires Python: >=3.10
Keywords: cycling, mywhoosh, remote, shifter, virtual

<p align="center">
  <img src="logo-gear.svg" alt="Whooshpad logo" width="128">
  <h1 tabindex="-1" class="heading-element" dir="auto" align="center">Whooshpad</h1>
</p>

[![Build](https://github.com/scorphus/whooshpad/actions/workflows/test.yml/badge.svg)](https://github.com/scorphus/whooshpad/actions/workflows/test.yml)
[![Coverage](https://codecov.io/gh/scorphus/whooshpad/branch/main/graph/badge.svg)](https://codecov.io/gh/scorphus/whooshpad)
[![PyPI](https://img.shields.io/pypi/v/whooshpad.svg)](https://pypi.org/project/whooshpad/)
[![Python](https://img.shields.io/pypi/pyversions/whooshpad.svg)](https://pypi.org/project/whooshpad/)
[![License](https://img.shields.io/pypi/l/whooshpad.svg)](https://github.com/scorphus/whooshpad/blob/main/LICENSE)

A mobile-friendly remote control for [MyWhoosh](https://www.mywhoosh.com/) virtual cycling.

Run Whooshpad on the computer where MyWhoosh is running, then open the web interface on your phone to control shifting, steering, emotes, and UI.

## Installation

```bash
pip install whooshpad
```

## Usage

1. Start Whooshpad on your computer:
   ```bash
   whooshpad
   ```

2. Open the displayed URL on your mobile (e.g., `http://192.168.1.100:8765`)

3. Use the buttons to control MyWhoosh!

## Controls

- **Shifting**: < (easier) / > (harder)
- **Steering**: Left / Right arrows
- **Emotes**: Peace, Wave, Fist bump, Dab, Elbow flick, Toast, Thumbs up
- **UI**: Toggle minimal UI / Hide all controls
- **Screenshot**: System screenshot (Cmd+Shift+3 on macOS, PrintScreen on Windows)

## Options

```bash
whooshpad --port 8080  # Use a different port
```

## macOS Note

On macOS, you may need to grant Accessibility permissions to your terminal or Python in System Preferences > Security & Privacy > Privacy > Accessibility.

## License

BSD-3-Clause