.. SPDX-FileCopyrightText: 2025 icalendar-anonymizer contributors
.. SPDX-License-Identifier: AGPL-3.0-or-later
============
Installation
============
This guide covers installation for end users. For development setup, see :doc:`contributing`.
Requirements
============
- Python 3.11, 3.12, or 3.13
Basic Installation
==================
Install the core package:
.. code-block:: shell
python -m pip install icalendar-anonymizer
This installs only the Python library with its core dependency, ``icalendar``.
.. tip::
Using ``python -m pip`` ensures you install to the correct Python interpreter.
See `Why you should use python -m pip `_ for details.
Optional Features
=================
This section describes how to install optional features of ``icalendar-anonymizer``, including a command-line interface (CLI) and web service support.
Command-Line Interface
----------------------
Install the CLI with the following command.
.. code-block:: shell
python -m pip install icalendar-anonymizer[cli]
This installs the :program:`icalendar-anonymize` and :program:`ican` commands. See :doc:`usage/cli` for usage details.
Web Service
-----------
Install the web service with the following command.
.. code-block:: shell
python -m pip install icalendar-anonymizer[web]
This installs FastAPI, uvicorn, and dependencies for the REST API server. See :doc:`usage/web-service` for usage details.
All Features
------------
Install all the foregoing optional features with the following command.
.. code-block:: shell
python -m pip install icalendar-anonymizer[all]
Docker
======
Pull and run the Docker image:
.. code-block:: shell
docker pull sashankbhamidi/icalendar-anonymizer
docker run -p 8000:8000 sashankbhamidi/icalendar-anonymizer
The web service will be available at http://localhost:8000. See :doc:`usage/self-hosting` for configuration options.
Verifying Installation
======================
Check the installation:
.. code-block:: python
import icalendar_anonymizer
print(icalendar_anonymizer.__version__)
Or check the installed version:
.. code-block:: shell
python -m pip show icalendar-anonymizer
Upgrading
=========
Upgrade to the latest version:
.. code-block:: shell
python -m pip install --upgrade icalendar-anonymizer
Uninstalling
============
Remove the package:
.. code-block:: shell
python -m pip uninstall icalendar-anonymizer
Troubleshooting
===============
This section describes how to troubleshoot issues with installation.
Import Error
------------
If you get an ``ImportError`` when importing ``icalendar_anonymizer``, then try the following steps.
#. Verify that the package is installed.
.. code-block:: shell
pip list | grep icalendar
#. Check that you're using a supported version of Python.
.. code-block:: shell
python --version
#. Ensure that you're in the correct virtual environment.
Dependency Conflicts
--------------------
``icalendar-anonymizer`` requires a compatible version of ``icalendar``.
If you encounter dependency conflicts with ``icalendar``, then perform the following steps.
#. Check that your installed version of ``icalendar`` is supported by ``icalendar-anonymizer``.
.. code-block:: shell
pip show icalendar
#. Upgrade ``icalendar``, if needed.
.. code-block:: shell
python -m pip install --upgrade icalendar
Getting Help
============
If you encounter installation issues:
- Check the `Issue Tracker `_ for existing issues.
- If there isn't an existing issue, then open a new one.