flagon-distill 0.1.0
An analytics framework for front-end UserALE data, enabling modeling, sequence analysis, and customization in Python.
License: Apache-2.0
Requires Python: >=3.8,<4.0

.. ..

	<!---
    Licensed to the Apache Software Foundation (ASF) under one or more
	contributor license agreements.  See the NOTICE file distributed with
	this work for additional information regarding copyright ownership.
	The ASF licenses this file to You under the Apache License, Version 2.0
	(the "License"); you may not use this file except in compliance with
	the License.  You may obtain a copy of the License at

	  http://www.apache.org/licenses/LICENSE-2.0

	Unless required by applicable law or agreed to in writing, software
	distributed under the License is distributed on an "AS IS" BASIS,
	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
	See the License for the specific language governing permissions and
	limitations under the License. 
	--->


Apache Flagon Distill
=====================

.. image:: https://readthedocs.org/projects/incubator-flagon-distill/badge/?version=distill_toolkit_refactor
	:target: https://incubator-flagon-distill.readthedocs.io/en/distill_toolkit_refactor/?badge=stable
	:alt: Documentation Status

This project is a work in progress, prior to an official Apache Software Foundation release. Check back soon for important updates.

Please see our `readthedocs.org pages <https://incubator-flagon-distill.readthedocs.io/en/distill_toolkit_refactor/>`_ for documentation.

A contribution guide has been provided `here <http://flagon.incubator.apache.org/docs/contributing/>`_.

Installation
------------

To install and set up the Python project, Distill uses `Poetry <https://python-poetry.org/>`_, a dependency and package management tool. Poetry simplifies the management of project dependencies and virtual environments, ensuring consistent and reproducible builds.

Prerequisites
~~~~~~~~~~~~~

Before you begin, make sure you have the following prerequisites installed on your system:

- Python (>= 3.8)
- Poetry (>= 1.0)

You can check your Python version by running:

.. code-block:: bash

    python --version

This will return the version of Python installed on your system. If you do not have Python installed, you can download it from the `official website <https://www.python.org/downloads/>`_. However, we recommend using a Python version manager such as `pyenv`. You can refer to this guide for setting it up: `pyenv guide <https://realpython.com/intro-to-pyenv/>`_.

You can install Poetry a number of ways (see the `Poetry docs <https://python-poetry.org/docs/>`_ for all methods). We recommend installing one of the following two ways:

**Official Installer**:

*Linux, macOS, Windows (WSL)*

.. code-block:: bash

    curl -sSL https://install.python-poetry.org | python3 -

*Windows (Powershell)*

.. code-block:: bash

    (Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -

**pipx**:

.. code-block:: bash

    pipx install poetry

The above two methods should minimize the chances of dependency conflicts with your system Python (global) installation. Some users have reported issues with Poetry using an incorrect Python environment instead of the project's local virtual environment when using regular pip method. If you run into issues, please refer to the official Poetry docs or Github for more in-depth installation instructions.


Installation Steps
~~~~~~~~~~~~~~~~~~

Follow these steps to set up and install the project:

1. Clone the repository:

    .. code-block:: bash

        git clone https://github.com/apache/flagon-distill.git


2. Navigate to the project directory:

    .. code-block:: bash

        cd flagon-distill

3. Use Poetry to install project dependencies and create a virtual environment:

    .. code-block:: bash

        poetry install
   
   This command reads the ``pyproject.toml`` file and installs all required packages into a dedicated virtual environment.

4. Activate the virtual environment:

    .. code-block:: bash

        poetry shell
   
   You are now inside the project's virtual environment, which isolates the project's dependencies from your system-wide Python packages.

5. Run the tests:
   
   You can now run the tests to make sure everything installed properly. For example:

    .. code-block:: bash

        make test
   
   Remember that you need to activate the virtual environment (step 4) each time you work on the project.

Updating Dependencies
~~~~~~~~~~~~~~~~~~~~~

To update project dependencies, you can use the following command:

.. code-block:: bash

   poetry update

This command updates the ``pyproject.toml`` file with the latest compatible versions of the packages.

Uninstalling
~~~~~~~~~~~~

To uninstall the project and its dependencies, simply deactivate the virtual environment (if activated) by typing:

.. code-block:: bash

   exit

This will exit the virtual environment. You can then safely delete the project directory.

By following these installation steps, you can easily set up and manage the Python project using Poetry. Enjoy coding!