semvec/pypi-packages huggingface dataset:
notionit 0.1.3
A Python package for Notion API: Markdown to Notion uploader with full-featured support powered by Mistune.
Requires Python: >=3.10

# NotionIt

![PyPI](https://img.shields.io/pypi/v/notionit?label=pypi%20package)
![PyPI - Downloads](https://img.shields.io/pypi/dm/notionit)

**Markdown to Notion uploader** with full-featured support powered by Mistune.

> Upload rich, formatted Markdown files—including equations, code, tables, and attachments—directly to Notion with ease.

---

## ✨ Features

* ✅ **Full Markdown Support** via [Mistune](https://mistune.readthedocs.io/)
* 📤 **Upload to Notion** using official API
* 📎 **File & Image Attachment Support**
* 🔗 **Skips invalid links like anchors**
* 📐 **LaTeX Math Block Rendering**
* 🧩 **Plugin-based Parsing** (supports strikethrough, footnotes, task lists, etc.)
* 📄 **Table-to-Block Conversion**
* 🧠 **Smart Title Conflict Handling** (`timestamp`, `counter`, `ask`, `skip`)
* 🛠️ **Debug Mode for Development**

---

## 🚀 Quick Start

```bash
pip install notionit
```

Then run:

```bash
notionit upload path/to/file.md --token YOUR_NOTION_TOKEN --parent-page-id YOUR_PAGE_ID
```

You'll see an animated progress bar showing upload percentage and remaining time.

Or use the convenience function in Python:

```python
from notionit import quick_upload

quick_upload(
    file_path="example.md",
    token="secret_abc123",
    parent_page_id="notion_page_id",
)
```

---

## 🧩 Plugin Support

Default enabled plugins:

* `strikethrough`
* `mark`
* `insert`
* `subscript`
* `superscript`
* `footnotes`
* `table`
* `task_lists`
* `def_list`
* `abbr`
* `ruby`
* `math` (via `notionit.math_plugin.notion_math` for single-line $$ and list support)

Customize them via `--plugins` or programmatically.

---

## 🛡️ Environment Variables

Optionally configure via environment variables:

| Variable                | Description                                     |
| ----------------------- | ----------------------------------------------- |
| `NOTION_TOKEN`          | Notion integration token                        |
| `NOTION_PARENT_PAGE_ID` | Parent page ID                                  |
| `NOTION_BASE_URL`       | API base (default: `https://api.notion.com/v1`) |
| `NOTION_API_VERSION`    | API version (default: `2022-06-28`)             |
| `NOTION_PARSER_PLUGINS` | Comma-separated plugin list                     |

---

## 📦 CLI Options

Run `notionit --help` for full options:

```bash
notionit upload example.md \
  --page-title "My Notes" \
  --duplicate-strategy timestamp \
  --debug
```

During uploads, the CLI reports progress with a spinner and estimated remaining time.

---

## 🧠 Use Case Ideas

* Publish lecture notes with math equations
* Upload tech blogs with code snippets
* Back up documentation in Notion
* Convert Markdown meeting notes into Notion pages

---

## 📃 License

MIT
opinum-api-connector 1.2.7
Package to interact with the Opinum API
Requires Python: >=3.6

This package simplifies the Opinum API calls.

No magic. You need to follow the [Opinum Swagger Documentation](https://api.opinum.com) for correct formatting of your requests

Be aware that this is a new package, certainly missing a lot of features. Feel free to contribute.

NEW in 1.2.7: added optional operation ID to push_data call

You first need to create an instance of the ApiConnector class with following parameters:

> _environment_
> > a dictionary of environment variables
> >
> > if `None`, ApiConnector uses your environment variables (_os.environ_)
> >
> > Mandatory environment variables are:
> >
> > * _OPINUM_USERNAME_: the Datahub user. <br>
> > TAKE CARE: if this user has access to multiple tenants and if you do not specify a tenant id,
> > ApiConnector will use the last tenant used.
> > * _OPINUM_PASSWORD_: the password for the user
> > * _OPINUM_CLIENT_ID_: the client id for accessing the API
> > * _OPINUM_SECRET_ the corresponding secret
> > 
> > Optional environment variables are:
> >
> > * _OPINUM_API_URL_: another API URL than the Europe SaaS one (https://api.opinum.com)
> > * _OPINUM_AUTH_URL_: another authentication URL than the Europe SaaS one (https://identity.opinum.com)
> > * _DEFAULT_PUSH_URL_: another push URL than the Europe SaaS one (https://push.opinum.com)
> > * _OPINUM_SCOPE_: the scope of you session (default: "_datahub-api_")<br>
> > if you want to push data, the scope should be "_datahub-api push-data_"

> _account_id_
> > one of the tenant ids available for the Datahub user (default: `None`)

> _retries_when_connection_failure_
> > number of extra attempts when no 200 or 204 return code (default: 0, maximum: 5)

Once you have your ApiConnector instance, you may use the class methods

* get
* post
* patch
* put
* delete
* send_file_to_storage

All keyword arguments will be converted to path parameters in the API call with one important exception,
the _data_ keyword referring to the body of your call.

There are two other class methods for data pushing because we have another API for this

* push_data
* push_dataframe_data

There is a little bit of magic with the method multi_thread_request_on_path that splits a list of parameters
Allowing to make parallel calls.
helix-mockserver-client 2.0.7
mockserver_client
Requires Python: >=3.12

# mockserver_client
It has docker based image: ``jamesdbloom/mockserver:mockserver-5.13.*``

As pip dependency could be found here: https://pypi.org/project/helix-mockserver-client/

In your ``requirements.txt`` or ```PipFile```  add ```helix-mockserver-client>=*.*.*```

Basic usage:

```python
import json
from mockserver_client.mockserver_client import (
    MockServerFriendlyClient,
    mock_request,
    mock_response,
    times,
)
 mock_server = MockServerFriendlyClient('http://127.0.0.1:1080')
 mock_server.expect(mock_request(
            path="/" + 'item',
            method="POST",
            body={
                "json": {
                    "client_id": "unitypoint_bwell",
                    "client_secret": "fake_client_secret",
                    "grant_type": "client_credentials",
                }
            },
        ),
            mock_response(
                body=json.dumps(
                    {
                        "token_type": "bearer",
                        "access_token": "fake access_token",
                        "expires_in": 54000,
                    }
                )
            ),
            timing=times(1),
        )
```
How to pull the image with Docker:
```docker pull jamesdbloom/mockserver:mockserver-5.13.2```

How to start the server locally with Docker:
```docker run -dp 1080:1080 jamesdbloom/mockserver:mockserver-5.13.2 -logLevel DEBUG -serverPort 1080```
openpyutils 0.0.1
open source of python utils.
Requires Python: >=3.8

# OpenPyUtils
Open Python Utils.

## Usage:

# logger
This is local colorful log printer. It prints colorful message for different log level.

## Usage:
```python
from openpyutils import logger

logger.info("This is a info message")
logger.suc("This is a successful message")
logger.warn("This is a warning message")
logger.err("This is a error message")
logger.fatal("This is a fatal error message")
```