semvec/pypi-packages huggingface dataset:
expand-and-setitem 0.1.0a0
A small utility function that expands a deque as needed and sets an item at the specified index, filling new positions with a user-specified value.
Requires Python: >=2

# `expand-and-setitem`

A small utility function that expands a deque as needed and sets an item at the specified index, filling new positions with a user-specified value.

## Features

- Assign to any index (positive or negative) on a deque, even if it's out of range.
- Automatically expands and fills new slots as needed.

## Usage

```python
from collections import deque
from expand_and_setitem import expand_and_setitem

d = deque([1, 2, 3])

expand_and_setitem(
    deque=d,
    index=5,
    value=99,
    fillvalue=0
)
print(d)  # deque([1, 2, 3, 0, 0, 99])

expand_and_setitem(
    deque=d,
    index=-8,
    value=42,
    fillvalue=None
)
print(d)  # deque([42, None, 1, 2, 3, 0, 0, 99])
```

## Installation


```bash
pip install expand-and-setitem
```

## Why?

The standard Python deque doesn't allow setting values out of range. This utility removes the need to manually expand the deque before assignment.

## License

MIT License
gaiaunlimited 0.3.2
Tools for manipulating Gaia selection functions.
Requires Python: >=3.9
Keywords: astronomy, Gaia, selection function, scanning law

# gaiaunlimited

[![pypi status](https://img.shields.io/pypi/v/gaiaunlimited.svg)](https://pypi.org/project/gaiaunlimited/)
[![Documentation Status](https://readthedocs.org/projects/gaiaunlimited/badge/?version=latest)](https://gaiaunlimited.readthedocs.io/en/latest/?badge=latest)

gaiaunlimited is a package for querying and constructing selection functions for the Gaia survey. It is developed by the GaiaUnlimited collaboration.

The documentation for gaiaunlimited is hosted on [Read the docs](https://gaiaunlimited.readthedocs.io/en/latest).

*The [GaiaUnlimited](https://gaia-unlimited.org/) project is funded by the European Union’s Horizon 2020 research and innovation program under grant agreement No 101004110.*

## Features

- Query Gaia scanning laws for when a given sky position is scanned.
- Query Gaia survey selection functions for the probabilities that sources of given properties are included in the Gaia catalog.
- Query ready-made Gaia DR3 subsample selection functions for
	- the astrometry sample
	- the RVS sample
    - other subsets of the Gaia catalog

## Acknowledgements

This work is part of the GaiaUnlimited project funded by the European Union’s
Horizon 2020 research and innovation program under grant agreement No 101004110.

## Team members

### Main contributors

Tristan Cantat-Gaudin (MPIA Heidelberg), 
Alfred Castro-Ginard (Leiden), 
Evgeny Kurbatov (IoA Cambridge), 
Shourya Khanna (INAF-Torino), 
Semyeong Oh (IoA Cambridge),

### Members

Anthony Brown (Leiden, PI), 
Vasily Belokurov (IoA Cambridge), 
Andy Casey (Monash), 
Alex Wallace (Monash), 
Ron Drimmel (INAF-Torino), 
Alessandro Spgna (INAF-Torino), 
Richard Smart (INAF-Torino), 
Eloisa Poggio (INAF-Torino), 
Morgan Fouesneau (MPIA Heidelberg), 
David Hogg (NYU/ Flatiron/ MPIA Heidelberg), 
Adrian Price-Whelan (Flatiron), 
Hans-Walter Rix (MPIA Heidelberg), 
Elena Sellentin (Leiden), 
Douglas Boubert (Oxford), 
Andy Everall (IoA Cambridge),
secretside 0.2.0
Shift git commit timestamps out of work hours so your side project stays secret
Requires Python: >=3.11

# secretside

Shift git commit timestamps out of work hours so your side project stays secret.

If you committed at 10:47 on a Wednesday, secretside moves it to 17:47 (or later). It also catches identity leaks — commits made with your real name or work email when you meant to use a pseudonym.

## Install

```bash
pip install secretside
```

Or with [uv](https://docs.astral.sh/uv/):

```bash
uv tool install secretside
```

<small>Note: `libgit2` 1.9 headers are required.</small>

## Quick start

```bash
secretside init
secretside clean --dry-run
secretside check # quick validate for use in a git hook
```

## Commands

**`secretside init [repo] [--country XX] [--force]`** — Generate `secretside.toml` with jittered defaults so every project's config looks slightly different.

**`secretside clean [repo] [--dry-run]`** — Preview and apply timestamp shifts. Only touches your most recent contiguous commits. With `local_only = true` in your config (the default), only unpushed commits are considered/modified.

**`secretside inspect [repo]`** — Show commit time distribution and list all work-hour commits.

**`secretside check [repo]`** — Validate that no commits fall in work hours and no banned identities appear. Designed for CI or pre-push hooks.

## Config

`secretside init` creates a `secretside.toml` in your repo:

```toml
holidays = "CA"
work_days = "mon-fri"
work_hours = "08:47..17:52"
night_hours = "23:12..05:44"
local_only = true
banned = [
    # ["Your Real Name", "real@email.com"],
    # ["Your Real Name", "work@company.com"],
]
pto = [
    # "2025-02-07",
    # "2025-12-24..2025-12-31",
]
```

| Key | Description |
|-----|-------------|
| `holidays` | Country code for public holidays (`"CA"`, `"US"`, `"GB"`, etc.) |
| `work_days` | Which days are work days (`"mon-fri"`, `"mon-thu"`, `"mon-wed,fri"`) |
| `work_hours` | Commits in this range on work days get shifted past `work_end` |
| `night_hours` | Shifted commits avoid landing here (organic night commits are left alone) |
| `local_only` | Only shift commits that haven't been pushed to any remote |
| `banned` | Name/email pairs to flag in `check` — keep your real identity out of the repo |
| `pto` | Dates (or `start..end` ranges) to treat as days off |

## How it works

- Only the **contiguous tail** of your commits is touched — other people's commits are never modified
- **Weekend, holiday, and PTO commits** are left alone — already safe - unless they need shifting due to overflow from a work day
- **Organic night commits** (you actually coded at 1am) stay put
- **Chronological order** is always preserved, with original time gaps maintained where possible
- History rewriting uses [git-filter-repo](https://github.com/newren/git-filter-repo) under the hood

## Development

Requires Python 3.11+ and [uv](https://docs.astral.sh/uv/).

```bash
uv sync
bin/test
uv run secretside <command>
```
datablender 0.0.18
Tools for data.



# Data blender
Data utils is a python package for data utilities.
## Develop
### Install
* Install anaconda
```conda create --name dev```
```conda install pip```
```pip install --user -e .[dev]```


### Publish package
```
python -m build
```
```
python -m twine upload dist/*
```




# Install the package locally
```pip install -r requirements.txt --user```

on the VM 
"C:/Program Files/INRO/Emme/Emme 4/Emme-23.00.01.23/Python37/python.exe" -m pip install -r requirements.txt --user
writeadoc 0.16.0
Focus on your content and let WriteADoc take care of the rest
Requires Python: >=3.12

# <img src="https://raw.githubusercontent.com/jpsca/writeadoc/refs/heads/main/docs/logo.png" align="middle" />

Focus on your content and let WriteADoc take care of the rest


## Main features

* **Simple yet powerful formatting**: Write in Markdown, plus enjoy powerful features like callbacks, flexible code blocks, and _much more_.
* **Built-in full-text search**: Automatically generates a full-text search index for you. No third-party service required.
* **Multi-language & multi-version capable**: Easily manage documentation for multiple versions and languages, right out of the box. No plugins or complicated setup needed.
* **Works on all devices and with light/dark modes**: WriteADoc automatically adapts to perfectly fit the available screen, no matter the type or size of the viewing device and whether you're an early bird or a night owl.
* **Always yours**: A static site means you can host it anywhere. You own your content and your site. No need to trust your product knowledge to third-party platforms.


## Documentation

[Read the WriteADoc docs][docs] (they’re built with WriteADoc!)


## License

MIT

Copyright (c) 2025–present Juan-Pablo Scaletti and [contributors][contributors]

[docs]: https://writeadoc.scaletti.dev/
[contributors]: https://github.com/jpsca/writeadoc/graphs/contributors
[issues]: https://github.com/jpsca/writeadoc/issues
uiwiz 0.3.0
UiWiz is a framework to develop web applications
Requires Python: >=3.10



# UiWizard

UiWizard is a python-based ui-framework for the web. It was inspired by the great framework [NiceGui](https://github.com/zauberzeug/nicegui). Why create this project that is very similar to NiceGui?
- The first reason was that NiceGui requires websockets to work and when experimenting with the framework it caused some issues on my hosting platform.
- Learning. I wanted to figure out how to do something simillar but without using websockets
  - I wanted to try out HTMX
- Limited control over the underlaying tech stack but mainly just learning

Example and docs
[UI-Wizard](https://ui-wizard.com/)

## Features

- Tailwind and DaisyUI for the graphics and responsive layout
- Webbased
- Quite a lot of standard elements, input fields, dropdown, foot, header, tabs...
- HTMX for interactivity
- Hopefully great defaults!

## Usage

Install the library

```
pip install uiwiz
```

Create a main.py file

```python
import uvicorn

from uiwiz import ui, UiwizApp

app = UiwizApp()


@app.page("/")
async def home_page():
    ui.label("Hello world")


if __name__ == "__main__":
    uvicorn.run(app)
```

Run it

```bash
python main.py
```

## General info

HTMX works with input fields in HTML and forms. To make it a bit easier to work with the form submit event does not send the data in the normal form format but uses the HTMX extension to convert it to json. This means that endpoints using UiWizard can use pydantic models as the input and have the benefit of validation.


## Tests

```bash
uv run coverage run -m pytest .
```

```bash
uv run coverage html
```

## Custom development server

A custom server has been developed to improve reload speed. Uvicorn has a builtin feature to reload the application
this however requires a full process to be restarted, which on some operation systems might take >2s to complete.
The custom server can reload only the nesscary part of the application in milliseconds.
Instead of a process it uses a thread to achive the same result.
One should know that it does not run the life-cycle start/stop. This will require a full reload of the application. It 
reloads the endpoints on every request.

Example
```python
from uiwiz import ui, UiwizApp, server

app = UiwizApp()


@app.page("/")
async def home_page():
    ui.label("Hello world")


if __name__ == "__main__":
    server.run("main:app")
```