semvec/pypi-packages huggingface dataset:
wraptext 1.0.1
Improved text wrapping and filling.
License: MIT
Requires Python: >=3.7
Keywords: ansi, text, textwrap, unicode

# wraptext: [textwrap][] Improved.

This package is a drop-in replacement for the [textwrap][] module in Python's standard library. Unlike
[textwrap][], `wraptext` correctly handles zero-width and full-wide Unicode characters as well as ANSI
escape sequences. These improvements enhance the usage of [textwrap][] when used in console
applications.

[textwrap]: https://docs.python.org/3/library/textwrap.html
ExcelPlugin 0.1.8
Плагин для гибкой настройки Excel документов.
License: MIT
Requires Python: >=3.10
Keywords: excel, ExcelPlugin, pandas, openpyxl, spreadsheet

# ExcelPlugin

![Python Version](https://img.shields.io/badge/python-3.12%2B-blue)
![License](https://img.shields.io/pypi/l/ExcelPlugin)
![PyPI Version](https://img.shields.io/pypi/v/ExcelPlugin)

## Features

- 🎨 Advanced cell styling (fonts, borders, alignment)
- 📊 Seamless pandas DataFrames integration
- 🔄 Excel template processing
- 📈 Batch operations support
- 🖥️ CLI interface for quick operations

## Installation

```bash
pip install ExcelPlugin
```

## Quick Start

```python
from ExcelPlugin import MultiExcel

# Создаем объекты DataFrame
df_2 = pd.DataFrame()
df_1 = pd.DataFrame()

multi = MultiExcel() # Создаем объект MultiExcel

# Добавляем страницы 
multi.add_sheet(df, 'data_1')  # Добавляем страницу 'data_1' и DataFrame
multi.add_sheet(df, 'data_1')  

#
header_rows = [
    [((1, 3), 'Titile1'), ((4, 10), 'Titile2')],
    [((1, 4), 'Titile1'), ((5, 7), 'Titile2'), ((8, 10), 'Title3')],
]

# Создаем шапку Excel документа
multi['data_1'].add_header()  # Обязательно нужно вызвать метод add_header() для создания заголовков.
# Если передать в add_header() аргументы -> получим многоуровневый заголовки
multi['data_2'].add_header(header_rows)

# Форматируем столбцы 
multi['data_1'].set_money_column(MONEY_COLUMN: Union[List[str], None]=None)  
multi['data_1'].set_percent_column(PERCENT_COLUMN: Union[List[str], None]=None)  
multi['data_1'].set_date_column(DATE_COLUMN: Union[List[str], None]=None) 

# Переименование страниц Excel
multi.rename_sheet(old_name='data_1', new_name='new_data_1') 

# Изменение порядка листов
multi = multi[['data_2', 'data1']]

# Сохранение
multi.save(filename=fr"{filename_email}" + ".xlsx", filepath=filepath)  # Сохраняем файл

```

## CLI Usage

```bash
# Apply template styles
excel-plugin apply-styles --input data.xlsx --template styles.json --output styled.xlsx

# Convert CSV to styled Excel
excel-plugin csv2xlsx data.csv --output report.xlsx
```

## Documentation

Full documentation available at [GitHub Wiki](https://github.com/yourusername/ExcelPlugin/wiki)

## Contributing

Pull requests are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
langchain-discord-shikenso 1.1.1
An integration package connecting Discord and LangChain
License: MIT
Requires Python: <4.0,>=3.9

# langchain-discord

This package provides Discord tools and a toolkit for use with LangChain. It includes:

- **`DiscordReadMessages`**: Read messages from a given Discord channel.
- **`DiscordSendMessage`**: Send messages to a given Discord channel.
- **`DiscordToolkit`**: A convenient toolkit that bundles these tools.

---

## Installation

```bash
pip install -U langchain-discord
```

---

## Environment Variable

Export your bot token so the tools can authenticate with the Discord API:

```bash
export DISCORD_BOT_TOKEN="your-discord-bot-token"
```

If this environment variable is not set, the tools will raise a `ValueError` when instantiated.

---

## Usage

### Direct Tool Usage

```python
from langchain_discord.tools.discord_read_messages import DiscordReadMessages
from langchain_discord.tools.discord_send_messages import DiscordSendMessage

# Create instances of each tool
read_tool = DiscordReadMessages()
send_tool = DiscordSendMessage()

# Read the last 5 messages from channel 1234567890
read_result = read_tool({"channel_id": "1234567890", "limit": 5})
print(read_result)

# Send a message to the same channel
send_result = send_tool({"channel_id": "1234567890", "message": "Hello from Python!"})
print(send_result)
```

### Using the Toolkit

You can also use `DiscordToolkit` to automatically gather both tools:

```python
from langchain_discord.toolkits import DiscordToolkit

toolkit = DiscordToolkit()
tools = toolkit.get_tools()

# tools[0] should be DiscordReadMessages, tools[1] is DiscordSendMessage
read_tool = tools[0]
send_tool = tools[1]

# Example usage
print(read_tool({"channel_id": "1234567890", "limit": 5}))
print(send_tool({"channel_id": "1234567890", "message": "Hello from toolkit!"}))
```

---

## Tests

If you have a tests folder (e.g. `tests/unit_tests/`), you can run them (assuming Pytest) with:

```bash
pytest --maxfail=1 --disable-warnings -q
```

Make sure your `DISCORD_BOT_TOKEN` is set or your tests are mocked so they don’t require a real token.

---

## License

[MIT License](./LICENSE)

---

## Further Documentation

- For more details, see the docstrings in:
  - [`discord_read_messages.py`](./langchain_discord/tools/discord_read_messages.py)
  - [`discord_send_messages.py`](./langchain_discord/tools/discord_send_messages.py)
  - [`toolkits.py`](./langchain_discord/toolkits.py) for `DiscordToolkit`

- Official Discord Developer Docs: <https://discord.com/developers/docs/intro>
- [LangChain GitHub](https://github.com/hwchase17/langchain) for general LangChain usage and tooling.