semvec/pypi-packages huggingface dataset:
nlpprepkit 1.2.3
Text Preprocessing Library
Requires Python: >=3.11

# nlpprepkit

`nlpprepkit` is a Python library for text preprocessing, designed to simplify and accelerate the preparation of text data for natural language processing (NLP) tasks.

## Features

- **Text Cleaning**: Remove extra whitespace, special characters, emojis, HTML tags, URLs, numbers, and social tags.
- **Contraction Expansion**: Expand common English contractions (e.g., "don't" → "do not").
- **Unicode Normalization**: Normalize text to ASCII representation.
- **Pipeline Support**: Create customizable pipelines for sequential text processing.
- **Profiling**: Measure the execution time of each step in the pipeline.
- **Caching**: Avoid redundant processing with built-in caching.
- **Parallel Processing**: Process large text datasets efficiently.

## Installation

Install the library using pip:

```bash
pip install nlpprepkit
```

Or install from source:

```bash
git clone https://github.com/vnniciusg/nlpprepkit.git
cd nlpprepkit
pip install -e .
```

## Quick Start

### Using the Pipeline

```python
from nlpprepkit.pipeline import Pipeline

# Define a custom processing step
def lowercase(text):
    return text.lower()

# Create a pipeline and add the step
pipeline = Pipeline()
pipeline.add_step(lowercase)

# Process text
result = pipeline.process("This is a TEST.")
print(result)  # Output: "this is a test."
```

### Text Cleaning Functions

```python
from nlpprepkit.functions import remove_extra_whitespace, remove_special_characters

text = "This   is   a   test!!!"
cleaned_text = remove_extra_whitespace(text)
print(cleaned_text)  # Output: "This is a test!!!"

cleaned_text = remove_special_characters(cleaned_text)
print(cleaned_text)  # Output: "This is a test"
```

### Expanding Contractions

```python
from nlpprepkit.functions import expand_contractions

text = "I'm going to the store."
expanded_text = expand_contractions(text)
print(expanded_text)  # Output: "I am going to the store."
```

## Running Tests

To run the tests, use `pytest`:

```bash
pytest
```

## Contributing

Contributions are welcome! Feel free to submit a pull request or open an issue on GitHub.

## License

This project is licensed under the [MIT License](LICENSE).
telebot-plugins 0.1.4
A simple plugin system for pyTelegramBotAPI (telebot)
Requires Python: >=3.6

# TeleBot Plugins

A simple plugin system for pyTelegramBotAPI (telebot) that allows you to organize your bot's functionality into separate plugin files without having to redefine the bot instance in each file.

## Features

- Load plugins from a specified directory
- Support for both synchronous and asynchronous telebot
- Handle relative paths properly
- Automatically register the bot instance globally
- Support for webhook and polling modes

## Installation

```bash
pip install telebot-plugins
```

## Usage

### Basic Example

```python
from telebot import TeleBot
from telebot_plugins import TelebotWithPlugins

# Create a bot instance
API_TOKEN = "YOUR_BOT_TOKEN"
bot = TeleBot(API_TOKEN)

# Initialize TelebotWithPlugins
plugins = TelebotWithPlugins(
    bot=bot,
    plugins="plugins",  # plugins folder name
    exclude=["disabled_plugin.py"]  # files to exclude (optional)
)

if __name__ == '__main__':
    # Start the bot
    bot.polling()
```

### Example Plugin File (plugins/example.py)

```python
from telebot import bot  # The bot is automatically available

@bot.message_handler(commands=['start'])
def send_welcome(message):
    bot.reply_to(message, "Hello! This is a plugin example.")
```

### Async Bot Example

```python
from telebot.async_telebot import AsyncTeleBot
from telebot_plugins import TelebotWithPlugins
import asyncio

# Create an async bot instance
API_TOKEN = "YOUR_BOT_TOKEN"
bot = AsyncTeleBot(API_TOKEN)

# Initialize TelebotWithPlugins
plugins = TelebotWithPlugins(
    bot=bot,
    plugins="plugins"
)

if __name__ == '__main__':
    # Start the async bot
    asyncio.run(bot.polling())
```
XtendR 0.3.3.1
A modular plugin system for Python.
Requires Python: >=3.11

# XtendR

A very basic Python 3.12 friendly plugin system based on the K.I.S.S principle.

I was in need of a new plugin system, which should meet these requirements:  
:heavy_plus_sign: Simple to use  
:heavy_plus_sign: Work well with Python 3.12  
:heavy_plus_sign: Maintainable - Don't expect to see new releases every month. __If it ain't broken, don't fix it!!!__

I previously used yapsy, but it doesn't meet the requirements anymore.  
:x: No longer simple, and simple to use (Simplicity in use has been sacrificed for more complexity. It has become bloated)  
:x: Not workink with Python 3.12  
:x: No longer maintained (Hasn't been maintained for a few years)

I didn't find anything that suited my needs, so I decided to make my own plugin system.  
It simply contains 2 classes, one for the plugin system and one abstraction base class for the plugins themselves.

At the moment only 4 functions are available:

- Attach - including call to pre-load data in plugin.
- Run
- Stop
- Detach

Attach and Detach are used for registrering/unregistrering a module on the system.
The Run and Stop functions are mandatory in the plugin modules.

The system expects a folder called 'plugins', placed at the root, along side your main python file.
Each plugin should be placed in subfolders, named as the plugin, inside the 'plugins' folder.

The example.py along with the plugins/example_plugin/example_plugin.py and plugins/example_plugin/example_plugin.json shows the workings of this plugin system.
emmett55 1.2.0
The micro web framework for inventors
Requires Python: >=3.9
Keywords: asyncio, web

# Emmett55

Emmett55 is a Python micro web framework designed with simplicity in mind.

```python
from emmett55 import App, request, response
from emmett55.tools import service, requires

app = App(__name__)

def is_authenticated():
    return request.headers.get("api-key") == "foobar"
    
def not_authorized():
    response.status = 401
    return {"error": "not authorized"}

@app.route("/", methods='get')
@requires(is_authenticated, otherwise=not_authorized)
@service.json
async def index():
    return {"message": "hello world"}
```

## Compared with Emmett

Emmett55 is based on [Emmett](https://emmett.sh) and shares the following features with it:

- [application and modules](https://emmett.sh/docs/latest/app_and_modules)
- [routing](https://emmett.sh/docs/latest/routing)
- [request](https://emmett.sh/docs/latest/request)/[response](https://emmett.sh/docs/latest/response)/[session](https://emmett.sh/docs/latest/sessions)/[websocket](https://emmett.sh/docs/latest/websocket) helpers
- the [pipeline](https://emmett.sh/docs/latest/pipeline)
- [services](https://emmett.sh/docs/latest/services) (JSON only)
- [caching](https://emmett.sh/docs/latest/caching) (except for disk cache)
- [HTML](https://emmett.sh/docs/latest/html) code generation
- [extensions](https://emmett.sh/docs/latest/extensions)
- [testing client](https://emmett.sh/docs/latest/testing)
- CLI (with the `emmett55` command)

Consequentially, Emmett55 doesn't include:

- the [ORM](https://emmett.sh/docs/latest/orm)
- the [authentication system](https://emmett.sh/docs/latest/auth)
- the [templating system](https://emmett.sh/docs/latest/templates)
- the [internationalization system](https://emmett.sh/docs/latest/languages)
- [validations](https://emmett.sh/docs/latest/validations)
- [forms](https://emmett.sh/docs/latest/forms) utilities
- XML services
- disk caching
- the [mailer](https://emmett.sh/docs/latest/mailer)
- the [debugger](https://emmett.sh/docs/latest/debug_and_logging#debugger)

Typical use-cases for picking Emmett55 over Emmett are:

- the lack of need of the upper-mentioned missing features
- the desire to use different libraries in place of the Emmett components, like SQLAlchemy or Jinja

## Documentation

While we're still in the process of developing Emmett55 documentation, the [Emmett one](https://emmett.sh/docs) can be examined – with the caviat to replace `emmett` with `emmett55` when mentioned and keep in mind the upper-mentioned list of non-included features.

## License

Emmett55 is released under the BSD License.