semvec/pypi-packages huggingface dataset:
ipyezannotation 0.2.5
Easy, simple to customize, pythonic data annotation framework.
Requires Python: >=3.8,<4.0

# Easy Annotation

**ipyezannotation** - Easy, simple to customize, pythonic data annotation framework.

# Disclaimer

This project is in early development stage, so don't blame me if it opens-up a black hole in your HDD 😄, 
other than that **IT WORKS!** 🥳

Docs & examples coming soon.

# Dependencies

This project currently supports `python>=3.8`. In future version of this project (possibly `ipyezannotation>=1.0.0`) 
only later python versions will be supported starting from 3.9 or 3.10.

# Installation

There are two options to install this project:

- Download and install from PyPI by simply running: `pip install ipyezannotation` & you're done!
- Alternatively, install from source using Poetry. This project uses `poetry>=1.3` to manage dependencies.

# Examples

## Images selection annotation

Annotation using `ImageSelectAnnotator`.

Define data to annotate with `ImageSelectAnnotator`:

```python
source_groups = [
    ["./surprized-pikachu.png"] * 16,
    ["./surprized-pikachu.png"] * 7,
    ["./surprized-pikachu.png"] * 8,
    ["./surprized-pikachu.png"] * 4,
]
```

Convert input data to `Sample`'s:

```python
from ipyezannotation.studio import Sample, SampleStatus

samples = [
    Sample(
        status=SampleStatus.PENDING,
        data=image_paths,
        annotation=None
    )
    for image_paths in source_groups
]
```

Initialize database of your liking and synchronize it with your new input samples:

```python
from ipyezannotation.studio.storage.sqlite import SQLiteDatabase

db = SQLiteDatabase("sqlite:///:memory:")
synced_samples = db.sync(samples)
```

Configure & create annotation `Studio` to label your samples:

```python
from ipyezannotation.studio import Studio
from ipyezannotation.annotators import ImageSelectAnnotator

Studio(
    annotator=ImageSelectAnnotator(n_columns=8),
    database=db
)
```

![](./examples/image-select-annotation/output.png)

# Inspiration

Love letter to the following projects coming soon ❤️

- `ipyannotations`
- `superintendent`
- `label-studio`
comot-update-berita-terpopuler-detik 0.3
A package to scrape the latest most popular news on detik.com
Requires Python: >=3.6

# detik-most-popular-news
This package will get the latest most popular news on detik.com.

## How it works?
This package will scrape from [detik.com](https://www.detik.com/).
This package will use beautifulsoup4 and requests library to produce output in the form of JSON that is ready
to be used in web or mobile apps.
docfilter 0.1.0
The Python package docfilter is used to detect and remove inappropriate information from text.
Requires Python: >=3.6

# Python Package: Filter
The Python package `filter` is used to detect and remove inappropriate information from text.

# Installation
```
pip install filter
```

# Features
1. `Regular expression filtering` This method is used to find and filter out specific string patterns, such as personal information like phone numbers or email addresses, or words and phrases related to profanity.
2. `Dictionary-based filtering` This method is used to filter out words that match with profanity or personal information already listed in a pre-built dictionary. While this method is quick to apply, it has the disadvantage of needing to be updated with new profanity or personal information.
3. `Machine learning-based filtering` This method uses a machine learning model to identify sentences related to profanity or personal information. While this method is more accurate than others, it requires a lot of time and resources to train the model.
4. `Special character removal` This method is used to remove special characters from strings that may contain personal information, such as phone numbers or email addresses. While this method is quick to apply, it may be difficult to handle exceptional cases.

One or a combination of the above methods can be used to implement an appropriate filtering method depending on the requirements of the application, and it should be validated in terms of performance and security.
ap-topical 0.3.1
A simple, lightweight event pipeline in Python.

# Topical

A simple, lightweight event pipeline in Python.

## Installation

```bash
pip install ap-topical
```

## Usage

```python
import logging, asyncio
import ap.topical
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

@ap.topical.event('start')
async def start_handler(payload):
    """Do stuff here"""

    await ap.topical.publish('end', payload)


@ap.topical.event('start')
async def start_auditor(payload):
    logger.info('auditing start event')

@ap.topical.event('end')
async def end_handler(payload):
    """Do stuff here"""


async main():
    await ap.topical.publish('start', {})

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

```

## Events

Events are strings (or other hashable objects) that are published via `ap.topical.publish()`. These are used as both a topic and a specific event.

## Subscribing Callbacks to Events

You can subscribe a callback to a given event using `ap.topical.subscribe` as in the following example:

```python
async def my_event_handler(payload):
    ...

ap.topical.subscribe('my-event', my_event_handler)
```

Additionally, you can use the handy `@ap.topical.event()` decorator to do this for you automatically:
```python
@ap.topical.event('my-event')
async def my_event_handler(payload):
    ...
```

## Publishing Events

Events can be published by providing an event and a payload to pass between event handlers.

```python
await ap.topical.publish('my-event', {})
```

## Multiple Handlers

A given event can have any number of handlers (limited by available compute resources). These will all trigger asynchronously.

```python
@ap.topical.event('start')
async def start_handler(payload):
    ...

@ap.topical.event('start')
async def start_auditor(payload):
    ...

await ap.topical.publish('start', {})
```

This allows you to create robust graphs of event handlers.


## Future Plans

* add unsubscribe functionality
* add wildcard event support
* add default event payload support
* add payload validation via msgspec