Files
edx-platform/scripts/structures_pruning
edX requirements bot 93a3853a27 chore: Upgrade Python requirements (#36421)
* chore: Upgrade Python requirements
* fix: pin xmlsec to 1.3.14 version
* fix: pin social-auth-core version
* docs: add the issue to unpin constraints

---------

Co-authored-by: Usama Sadiq <usama7274@gmail.com>
2025-03-21 15:27:46 +05:00
..

Structures Pruning Scripts
==========================

`This <https://github.com/openedx/edx-platform/tree/master/scripts/structures_pruning>`_ directory contains mongo db structures pruning script that is migrated from the 
`tubular <https://github.com/openedx/tubular>`_ repository.


This script could be called from any automation/CD framework.

How to run the scripts
======================

Download the Scripts
--------------------

To download the scripts, you can perform a partial clone of the edx-platform repository to obtain only the required scripts. The following steps demonstrate how to achieve this. Alternatively, you may choose other utilities or libraries for the partial clone.

.. code-block:: bash

    repo_url=git@github.com:openedx/edx-platform.git
    branch=master
    directory=scripts/structures_pruning

    git clone --branch $branch --single-branch --depth=1 --filter=tree:0 $repo_url
    cd edx-platform
    git sparse-checkout init --cone
    git sparse-checkout set $directory

Create Python Virtual Environment
---------------------------------

Create a Python virtual environment using Python 3.11:

.. code-block:: bash

    python3.11 -m venv ../venv
    source ../venv/bin/activate

Install Pip Packages
--------------------

Install the required pip packages using the provided requirements file:

.. code-block:: bash

    pip install -r scripts/structures_pruning/requirements/base.txt


Execute Script
--------------

You can simply execute Python scripts with python command

.. code-block:: bash

    python scripts/structures_pruning/structures.py prune plan_file.json

Feel free to customize these steps according to your specific environment and requirements.

Run Test Cases
==============

Before running test cases, install the testing requirements:

.. code-block:: bash

    pip install -r scripts/structures_pruning/requirements/testing.txt

Run the test cases using pytest:

.. code-block:: bash

    pytest scripts/structures_pruning