semvec/pypi-packages huggingface dataset:
arcade_notion 0.1.1
Notion integration to search, create, update, and delete databases/pages.
Requires Python: <4.0,>=3.10

# Arcade Notion

An Arcade AI toolkit designed to interact with Notion, enabling users to find and create pages and databases.

## Features

- **Page & Database Discovery**: Easily find pages and databases by their titles and get their IDs for follow-up operations
- **Content Creation**: Generate new pages and databases with AI-assisted content population
- **Secure OAuth Integration**: Built-in secure authentication flow with Notion's OAuth 2.0

## Roadmap

- [ ] Update existing pages and databases
- [ ] Delete pages and databases

## Prerequisites

Before getting started, ensure you have:

- A Notion account with administrative access
- Permission to create and manage integrations
- Access to target pages/databases

## Configuration

### 1. Create a Notion Integration

1. Follow the [Create a Public Integration](https://developers.notion.com/docs/authorization#public-integration-auth-flow-set-up) guide
2. Set the redirect URI to: `https://cloud.arcade-ai.com/api/v1/oauth/callback`
3. Save your client ID and secret

### 2. Environment Setup

Add these variables to your `arcade.env`:

```env
NOTION_CLIENT_ID=your_client_id
NOTION_CLIENT_SECRET=your_client_secret
```

### 3. OAuth Configuration

Add this configuration to your Arcade engine setup:

```yaml
auth:
  providers:
    - id: notion
      enabled: true
      type: oauth2
      description: "Notion OAuth 2.0 provider"
      client_id: ${env:NOTION_CLIENT_ID}
      client_secret: ${env:NOTION_CLIENT_SECRET}
      oauth2:
        authorize_request:
          endpoint: "https://api.notion.com/v1/oauth/authorize"
          params:
            response_type: "code"
            client_id: "{{client_id}}"
            redirect_uri: "{{redirect_uri}}"
            owner: "user"
        token_request:
          endpoint: "https://api.notion.com/v1/oauth/token"
          params:
            grant_type: "authorization_code"
            redirect_uri: "{{redirect_uri}}"
          auth_method: "client_secret_basic"
```

## Usage Examples

### Finding Resources

```plaintext
# Find a database
"Get me the database ID for 'Project Tracker'"

# Locate a specific page
"What's the ID of the page called 'Meeting Notes'?"
```

### Creating Content

```plaintext
# Create a new project page
"Create a new page titled 'Mobile App Redesign' in the 'Project Ideas' database and populate it with ideas generated from our recent discussion"


# Create meeting notes
"Create a new page titled 'Client Discussion' within the 'Meeting Notes' database, including all the notes from today's meeting"
```
HOGBEN 3.1.1
Holistic Optimization for Generating Better Experimental Neutrons - a package for optimzing neutron experiments using the Fisher information
Requires Python: >=3.10

[![DOI](https://zenodo.org/badge/366323997.svg)](https://zenodo.org/badge/latestdoi/366323997)

# HOGBEN
**H**olistic **O**ptimization for **G**aining **B**etter **E**vidence from **N**eutrons

## About the Project
**For the original repositories that this work is based on, see [fisher-information](https://github.com/James-Durant/fisher-information) and [experimental-design](https://github.com/James-Durant/experimental-design)**.

Using the Fisher information (FI), the design of neutron reflectometry experiments can be optimised, leading to greater confidence in parameters of interest and better use of experimental time. This package contains modules and data for optimising the design of a wide range of reflectometry experiments.

Please refer to the [notebooks](https://github.com/jfkcooper/HOGBEN/tree/main/notebooks) for an introduction on how to use the code.


This repository is named after Lancelot Hogben, whose relentless opposition of eugenics (and vocal criticism of Ronald Fisher's views on it) we applaud.

### Citation
Please cite the following [article](https://arxiv.org/abs/2108.05605) if you intend on including elements of this work in your own publications:
> Durant, J. H., Wilkins, L. and Cooper, J. F. K. Optimising experimental design in neutron reflectometry. arXiv:2108.05605 (2021).

Or with BibTeX as:
```
@misc{Durant2021,
   title         = {Optimising experimental design in neutron reflectometry}, 
   author        = {Durant, J. H. and Wilkins, L. and Cooper, J. F. K.},
   year          = {2021},
   eprint        = {2108.05605},
   archivePrefix = {arXiv},
   primaryClass  = {physics.data-an}
}
```

## Contact
Jos Cooper - jos.cooper@ess.eu \
Sjoerd Stendahl - sjoerd.stendahl@physics.uu.se \
James Durant - james.durant@warwick.ac.uk \
Lucas Wilkins - lucas.wilkins@stfc.ac.uk

## Acknowledgements
We thank Luke Clifton for his assistance and expertise in fitting the lipid monolayer and lipid bilayer data sets.

## License
Distributed under the BSD 3-Clause License. See [license](/LICENSE) for more information.
matrix-bot-lib 0.1.8
Super early lib for interacting with Matrix
Requires Python: <4.0,>=3.10

# matrix-bot-lib

Requires python >= 3.10

## TODO

* e2e crypto
* Better models and validation
  -> Refactor EventMetadata and EventMessage
  -> Better (more loose?) signature for EventData

## How to use

```python3
import os
from getpass import getpass
from shlex import join as cmd_join
from matrix_bot_lib import MatrixBot

async def main() -> None:
    BOT_USER = "@dtuhax-bot:xn--sb-lka.org"
    BOT_PASS = getpass(f'Password for {BOT_USER}: ')

    bot = MatrixBot(BOT_USER)
    await bot.login(BOT_PASS)

    @bot.on_message
    async def recv_msg(room_id: str, content: dict, metadata: dict):
        match content:
            case {'body': msg_txt, 'msgtype': 'm.text'}:
                print(f'Message: {msg_txt}')

    @bot.on_reaction
    async def recv_react(room_id: str, content: dict, metadata: dict):
        """ MSC2677 """
        match content:
            case {'m.relates_to': {'rel_type': 'm.annotation', 'key': emoji}}:
                print(f'Reaction: {emoji}')  # e.g. '🚪'

    await bot.run(full_sync=False)

if __name__ == '__main__':
    import asyncio
    asyncio.run(main())
```