semvec/pypi-packages huggingface dataset:
surfgeo-sdk 1.0.1
Server-side AI bot tracking SDK for Python
Requires Python: >=3.8
Keywords: surfgeo, ai, bot, tracking, analytics

# surfgeo Python SDK

Track AI bot traffic on your Python servers with surfgeo.

[![PyPI version](https://badge.fury.io/py/surfgeo-sdk.svg)](https://badge.fury.io/py/surfgeo-sdk)
[![Python versions](https://img.shields.io/pypi/pyversions/surfgeo-sdk.svg)](https://pypi.org/project/surfgeo-sdk/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## Installation

```bash
pip install surfgeo-sdk
```

### Framework-Specific Installation

```bash
# Django
pip install surfgeo-sdk[django]

# Flask
pip install surfgeo-sdk[flask]

# FastAPI
pip install surfgeo-sdk[fastapi]
```

## Quick Start

### Django

```python
# settings.py
MIDDLEWARE = [
    # ... other middleware
    'surfgeo.middleware.django.surfgeoMiddleware',
]

surfgeo_CONFIG = {
    'script_key': 'sk_your_key_here'
}
```

### Flask

```python
from flask import Flask
from surfgeo import get_flask_extension

app = Flask(__name__)
surfgeo = get_flask_extension()
surfgeo = surfgeo(app, script_key='sk_your_key_here')
```

### FastAPI

```python
from fastapi import FastAPI
from surfgeo.middleware.fastapi import surfgeoMiddleware

app = FastAPI()
app.add_middleware(
    surfgeoMiddleware,
    script_key='sk_your_key_here'
)
```

## Configuration Options

| Option | Type | Required | Default | Description |
|--------|------|----------|---------|-------------|
| script_key | str | Yes | - | Your surfgeo script key |
| endpoint | str | No | Production | Custom tracking endpoint |
| timeout | float | No | 0.05 | Request timeout (seconds) |
| debug | bool | No | False | Enable debug logging |
| enabled | bool | No | True | Enable/disable tracking |

## Features

- ✅ Zero impact on app performance (non-blocking)
- ✅ Async and sync framework support
- ✅ Works with Django, Flask, FastAPI, and more
- ✅ Type hints and modern Python (3.8+)
- ✅ Comprehensive test coverage

## Documentation

- [API Reference](docs/API.md)
- [Examples](docs/EXAMPLES.md)
- [Troubleshooting](docs/TROUBLESHOOTING.md)

## License

MIT

## Support

- [GitHub Issues](https://github.com/thebisontech/surfgeo-python-aireferral-sdk/issues)
buoyant.config 1.0.0a2
A modular and typed yaml configuration system for python with easy secret support
Requires Python: >=3.12

A modular and typed yaml configuration system for python with easy secret support

## Install ##

`pip install buoyant.config`
or
`uv add buoyant.config`

## Example Usage ##

Define your configuration in a modular fashion:
```python
from typing import Annotated, Literal

from buoyant.config import ModularConfig

class ConfigBase(ModularConfig):
    CONFIG_PATH = "settings.test.yaml"
    CONFIG_PATH_FROM_ENV_VAR = "SETTINGS_PATH"


class LoggingConfig(ConfigBase):
    CONFIG_SECTION = "logging"
    level: Literal["info", "warning", "error"]


from buoyant.config.annotations.gsm import gsm_secret

class BackendConfig(ConfigBase):
    CONFIG_SECTION = "server"
    host: str
    api_key: Annotated[str, gsm_secret(project="buoyant-open-projects")]
```

Use it easily:
```python
config = BackendConfig.load()
config.host
```
emop-frame-protocol 0.4.14
EMOP Frame Protocol messages defined with kaitai
Requires Python: <4.0,>=3.12

# EMOP Frame Protocol

Emlite protocol (EMOP) messages are defined using the
[Kaitai](https://kaitai.io) struct language with reference to the Emlite
specifications:

- "SS0001 BM Interface Specification"
- "Base Meter Obis Commands v1.2"

This package contains python code generated from the kaitai files with the
kaitai struct compiler. It also includes wrappers around these, util functions
and unittests.

Use the wrappers to serialise and deserialise EMOP data.



## Build Locally

```sh
# setuptools build (without cibuildwheel):
python -m build

# cibuildwheel build (same as GitHub workflow):
cibuildwheel --platform linux
```

## Publish

Tag the project and push the tag.

Github actions will build and publish the project.
cheesegrader 1.3.7
A collection of grading/quercus tools for University of Toronto instructors.
Requires Python: >=3.10

Cheesegrader 🧀
============

Cheesegrader is a CLI tool to streamline grading workflows for Quercus (Canvas). Its main features are

Interacting with quercus programmatically: 
- `downloading` student lists and student submissions
- `uploading` grades, files, or both
- `deleting` comments for a given assignment (useful if you've messed up during uploading)

Convenient file utils:
- `sorting` files into folders (e.g., sorting assignment submissions by graders)
- `copying`: Copy and rename a file (e.g., creating a named copy of a rubric for every student in a course)
- `renaming`: Bulk replace part of a named file with another name (e.g., replacing quercus IDs with UTORID)

Following the prompts should be pretty straightforward, but you can press `h` at any time for help, and `q` or `ctrl+c` to quit.


## Table of contents<!-- omit from toc -->
- [Getting Started](#getting-started)
- [Authentication and tokens](#authentication-and-tokens)
- [Course and assignment IDs](#course-and-assignment-ids)
- [Todo](#todo)
- [Contact](#contact)


## Getting Started
1. `pip install cheesegrader`
2. run `cheesegrader` from the command line
3. Follow the prompts
   

## Authentication and tokens
To use the uploading and downloading scripts, you will need to generate and input an API access token. You can get this:
- By following the instructions [here](https://developerdocs.instructure.com/services/canvas/oauth2/file.oauth#manual-token-generation)... but they were out of date last time I checked.
- Logging in to canvas/quercus and then `account > settings > + New Access Token`
- Navigating to [https://q.utoronto.ca/profile/settings](https://q.utoronto.ca/profile/settings) and clicking `+ New Access Token`


## Course and assignment IDs
- Course and assignment IDs are visible in Quercus URLs:
  - https://q.utoronto.ca/courses/[COURSE_ID]/assignments/[ASSIGNMENT_ID]
- CSVs should have clean headers (no duplicates, no blanks) and UTF-8 encoding.


## Todo
- Implement group assignments
- Multithread uploads
- Write some more tests
- Implement "go back" functionality
- Add student emails to downloads
- Fix typing errors


## Contact
- Submit issues/bugs [here](https://github.com/jwardbond/cheesegrader/issues)
- I'm also happy to answer any questions if you send them to jesse.wardbond at mail.utoronto.ca
fracdiff-modern 1.0.0
Super-fast fractional differentiation.
Requires Python: >=3.10

# fracdiff-modern

**Super-fast fractional differentiation for NumPy, PyTorch, and Scikit-Learn.**

`fracdiff-modern` is a maintained, modernized fork of the original `fracdiff` library. 
It features:
* **Python 3.10 - 3.13+ Support.**
* **Modern Build System**: Fully compatible with `pyproject.toml` and `setuptools >= 77`.

## Installation

Install the base package with NumPy and SciPy:
```sh
pip install fracdiff-modern
```

To use `fracdiff-modern` with Scikit-Learn or PyTorch functionality, install the extras:
```sh
pip install fracdiff-modern[sklearn,torch]
```

## Contributing

Any contributions are more than welcome.

See [Issue](https://github.com/Reis-McMillan/fracdiff/issues) for proposed features.
Please take a look at [CONTRIBUTING.md](.github/CONTRIBUTING.md) before creating a pull request.

## Acknowledgements

This package is a modernization of the original `fracdiff` library by **Shota Imaki**. The core algorithms and logic are based on his work in fractional calculus for financial time series.

## License

BSD-3-Clause License. See [LICENSE](LICENSE) for the full text.

## References

- [Marcos Lopez de Prado, "Advances in Financial Machine Learning", Wiley, (2018).][prado]

[prado]: https://www.wiley.com/en-us/Advances+in+Financial+Machine+Learning-p-9781119482086