Metadata-Version: 2.4
Name: m3-data-import
Version: 3.0.0
Summary: Пакет импорта данных - UI
Author-email: БАРС Груп <dev@bars-open.ru>
Project-URL: Homepage, https://stash.bars-open.ru/projects/EDUBASE/repos/m3-data-import/browse
Project-URL: Repository, https://stash.bars-open.ru/scm/edubase/m3-data-import.git
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Framework :: Django :: 3.1
Classifier: Framework :: Django :: 3.2
Classifier: Framework :: Django :: 4.0
Classifier: Framework :: Django :: 4.1
Classifier: Framework :: Django :: 4.2
Classifier: Intended Audience :: Developers
Classifier: Environment :: Web Environment
Classifier: Natural Language :: Russian
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: data-import<3,>=2.4
Requires-Dist: m3-core<2.3,>=2.2.32
Requires-Dist: m3-ui<3,>=2.6.0
Requires-Dist: m3-objectpack<2.7,>=2.6.0
Requires-Dist: Django<5.0,>=3.1
Provides-Extra: dev
Requires-Dist: isort==5.12.0; extra == "dev"
Requires-Dist: ruff==0.12.1; extra == "dev"
Requires-Dist: flake8<7,>=4.0.1; extra == "dev"
Requires-Dist: pytest<8,>=3.2.5; extra == "dev"
Requires-Dist: pytest-cov<5; extra == "dev"
Provides-Extra: docs
Requires-Dist: sphinx<7.5,>=7; extra == "docs"
Requires-Dist: sphinx-autodoc-typehints<2.5,>=2; extra == "docs"
Requires-Dist: myst-parser<3.2,>=3; extra == "docs"
Requires-Dist: sphinx_design<0.7,>=0.6; extra == "docs"
Dynamic: license-file

=======================
Подсистема импорта - UI
=======================

Интерфейсная часть подсистемы импорта

Установка пакета
================

``pip install m3-data-import``

Подключение
===========


1. Определение пака
*******************
Пак определяет класс конфигурации и дополнительные параметры импорта

**Пример:**

.. code-block:: python

    from m3_data_import.actions import ImportPack as Pack

    class ImportPack(Pack):

        title = u'Импорт учреждений'
        config_cls = ImportConfig

        def get_parser_params(self):
            params = super(ImportPack, self).get_parser_params()
            params['skip_sheets'] = ('Справочник', )
            return params

    from .dataimport import ImportPack

    def register_actions():
      """Регистрация пака в контроллере."""

      action_controller.packs.extend([
          ImportPack()
      ])


Описание класса конфигурации см. в пакете data-import

2. Массовый импорт
******************

Массовый импорт - загрузка множества файлов данных, запакованных в архив. Подсистема определяет соответствие файла и конфигурации, порядок загрузки. Для активации массового импорта необходимо:

- Подключить пак массового импорта

  .. code-block:: python

    from m3_data_import.actions.bulk import BulkImportPack
    action_controller.packs.extend((
        BulkImportPack(),
    ))

- Зарегистрировать имеющиеся конфигурации в реестре конфигураций:

  .. code-block:: python

    from unit.dataimport import UnitConfig
    from group.dataimport import GroupConfig

    data_import.configuration.registry = Registry(
      (UnitConfig, GroupConfig)
    )

  **Порядок классов в кортеже определяет приоритет загрузки!**

Тесты
=====

Запуск тестов осуществляется через `tox <https://tox.readthedocs.io/en/latest/>`_
