semvec/pypi-packages huggingface dataset:
notion-sdk-ldraney 0.2.3
Python SDK for the Notion API v2025-09-03
License: MIT
Requires Python: >=3.10
Keywords: notion, api, sdk, python

[![PyPI](https://img.shields.io/pypi/v/notion-sdk-ldraney)](https://pypi.org/project/notion-sdk-ldraney/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)

# notion-sdk

Python SDK for the Notion API. Thin wrapper with 1:1 endpoint mapping, proven with pytest integration tests.

## Why

The official Notion MCP integration silently drops `properties` on database creation/update. This SDK correctly uses `initial_data_source.properties` and is validated against the live API.

## Install

```bash
pip install notion-sdk-ldraney
```

## Usage

```python
from notion_sdk import NotionClient

client = NotionClient(api_key="secret_...")

# Create a database with properties that actually work
db = client.create_database(
    parent={"type": "page_id", "page_id": "..."},
    title=[{"text": {"content": "My DB"}}],
    initial_data_source={
        "properties": {
            "Name": {"type": "title", "title": {}},
            "Status": {"type": "select", "select": {
                "options": [{"name": "Done", "color": "green"}]
            }}
        }
    }
)
```

## API Coverage

- **Search**: search
- **Pages**: create (with template support), get, update (with erase_content), archive, move
- **Databases**: create (with properties!), get, update, query, archive
- **Data Sources**: get, update, query, list templates
- **Blocks**: get, get children, append children, update, delete
- **Users**: list, get self
- **Comments**: create, list

## Testing

```bash
# Set your Notion API key
export NOTION_API_KEY=secret_...

# Run integration tests
pytest tests/ -v
```
lupin-logger 0.4.0
LupinDental logger
License: MIT
Requires Python: >=3.11

# Lupin Logger

A custom logging system for LupinDental with colored console output and structured JSON logging.

## Features

- **Colored console output** with visual formatting based on log level
- **Structured JSON logs** saved to `.lupinlog.jsonl` files
- **Custom attributes** with automatic type-based coloring
- **Custom NOTICE level** (between INFO and WARNING)
- **Automatic organization** of logs by date
- **Full traceability** with timestamp, application, origin, and location

## Installation from PYPI

```bash
pip install lupin_logger
```

## Deployment on PYPI

- Add the version to pyproject.toml

```python
version = "0.1.0"
```

- Go to [GitLab Tags](https://gitlab.com/lupindental/arsene/rd-utilities/lupin_logger/-/tags)

  - Click on **New tag**
  - Select the **main** branch if it is a final tag and click on **Create tag**.
  - Select the **current branch** if it is a test or development tag.

## Quick Start

```python
from lupin_logger import get_logger

# Create a logger
logger = get_logger(name="my_module", app="my_application")

# Basic logs
logger.info("Application started")
logger.debug("Debug information")
logger.warning("Warning!")
logger.error("An error occurred")
logger.critical("Critical error")

# Custom NOTICE level
logger.notice("Important operation succeeded")
```

## Logging with Attributes

Attributes allow you to add structured data to your logs:

```python
# Simple attributes
logger.info("File processed", {"filename": "data.csv", "rows": 1500})

# With different types (automatic coloring)
logger.info("Process completed", {
    "duration": 3.14,        # float → yellow
    "success": True,          # bool → white
    "files_count": 42,        # int → yellow
    "output_path": Path("/tmp/out")  # Path → cyan
})

# Exception logging
try:
    result = 1 / 0
except Exception:
    logger.exception("Division by zero", {"operation": "calculate"})
```

## Log Levels

| Level    | Usage                                      | Console Color |
|----------|--------------------------------------------|--------------:|
| DEBUG    | Detailed debugging information             | Blue          |
| INFO     | General information                        | White         |
| NOTICE   | Important successful events                | Green         |
| WARNING  | Warnings                                   | Yellow        |
| ERROR    | Non-critical errors                        | Red           |
| CRITICAL | Critical errors requiring attention        | Magenta       |

## Log Directory Configuration

By default, logs are saved to:
- **Linux/macOS**: `~/LupinDentalData/logs/`
- **Windows**: `C:/Users/<USERNAME>/LupinDentalData/logs/`

### Custom Directory

```python
logger = get_logger(
    name="my_module",
    app="my_app",
    log_directory="/custom/path/logs"
)
```

## Development

### Requirements

- Python >= 3.11

### Development Installation

```bash
git clone https://gitlab.com/lupindental/arsene/rd-utilities/lupin_logger.git
cd lupin_logger
pip install -e .
```

## License

MIT - LupinDental