semvec/pypi-packages huggingface dataset:
camerge 0.0.3
Merge multiple ical/ics calendars to one.
Requires Python: >=3.7, <4
Keywords: calendar calendaring ical icalendar merge calendar-merge anonymization

# Camerge

[![PyPi version](https://badgen.net/pypi/v/camerge/)](https://pypi.python.org/pypi/camerge)
[![PyPI license](https://img.shields.io/pypi/l/camerge.svg)](https://pypi.python.org/pypi/camerge/)
[![PyPI pyversions](https://img.shields.io/pypi/pyversions/camerge.svg)](https://pypi.python.org/pypi/camerge/)

A simple library for merging multiple calendars into one.
It also allows anonymization of the events, so nobody will be able to see the summary of the event.

What this solves:
You have multiple calendars, and you want to share availability in `ical` format with some other people.
This tool takes your private calendars (in `ical` format), merges them, optionally anonymize them and creates new `ical`
calendar with the correct availability data.

This project is a minimal library but can be very easily used as an API for example:

```python
import datetime
from fastapi import FastAPI, Response
from camerge import merge_calendars

app = FastAPI()


@app.get("/")
async def calendar():
    """
    This method generates ical data for any calendar app.
    """
    ical = merge_calendars(
        calendar_name='My Availability',
        calendar_domain='my.calendar.example.com',
        calendar_data=[
            # take this google ical stream and anonymize events (no event names shown)
            ("https://calendar.google.com/calendar/ical/me@me.com/private-x/basic.ics", True),
            # take this event stream and do not anonymize event summary
            ("https://p30-caldav.icloud.com/published/2/xxx", False),
        ],
        # take event availability from these email addresses, these should be your own
        # email addresses associated with the calendar accounts
        known_emails=[
            'me@example.com', 'otherme@example.com'
        ],
        # do not include events that are older than this
        skip_events_before=datetime.date(2021, 1, 1)
    )
    return Response(content=ical, media_type='text/calendar')

```

## Dependencies

This project is based on [icalendar](https://github.com/collective/icalendar).
pytest-cldf 0.3.0
Easy quality control for CLDF datasets using pytest

# pytest-cldf

[![PyPI](https://img.shields.io/pypi/v/pytest-cldf.svg)](https://pypi.org/project/pytest-cldf)


This pytest plugin can be used to run validation of CLDF datsets via the pytest
test runner. In particular, this allows hooking up continuous validation with
CI services like travis-ci easily.


## Continuous validation via Travis-CI

To make sure a dataset - curated in a git repository on GitHub - is continuously,
i.e. after each commit, validated, you have to
- hook up the repository with Travis-CI
- add a Travis configuration file `.travis.yml` with the following content:
```yaml
language: python
python: "3.6"
cache: pip
before_cache: rm -f $HOME/.cache/pip/log/debug.log
install: pip install pytest-cldf
script: pytest --cldf-metadata=cldf/cldf-metadata.json test.py
```

- add the python file implementing the tests `test.py`:
```python
def test_valid(cldf_dataset, cldf_logger):
    assert cldf_dataset.validate(log=cldf_logger)
```


## Extended validation

TODO