1.0.16 • Published 7 months ago

@pareto-engineering/label-studio-mono v1.0.16

Weekly downloads
-
License
MIT
Repository
-
Last release
7 months ago

Label Studio

Label Studio is a complex, NX-managed project divided into three main components:

Main App (apps/labelstudio)

This is the primary application that consolidates all frontend framework elements. It's the hub for integrating and managing the different libraries and functionalities of Label Studio.

Library - Label Studio Frontend (libs/editor)

Label Studio Frontend, developed with React and mobx-state-tree, is a robust frontend library tailored for data annotation. It's designed for seamless integration into your applications, providing a rich set of features for data handling and visualization. Customization and extensibility are core aspects, allowing for tailored annotation experiences.

Library - Datamanager (libs/datamanager)

Datamanager is an advanced tool specifically for data exploration within Label Studio. Key features include:

Installation Instructions

1 - Dependencies Installation:

  • Execute yarn install --frozen-lockfile to install all necessary dependencies.

2 - Environment Configuration (Optional for HMR):

  • If you want to enable Hot Module Replacement (HMR), create an .env file in the root Label Studio directory.
  • Add the following configuration:
    • FRONTEND_HMR=true: Enables Hot Module Replacement in Django.

Optional configurations (defaults should work for most setups):

If using Docker Compose with HMR:

  • Update the env_file: .env directive in docker-compose.override.yml under the app service.
  • Rerun the app or docker compose service from the project root for changes to take effect.

To start the development server with HMR:

  • From the web directory: Run yarn dev
  • Or from the project root: Run make frontend-dev

Custom Configuration for DataManager:

  • If you need to customize the configuration specifically for DataManager, follow these steps:
    • Duplicate the .env.example file located in the DataManager directory and rename the copy to .env.
    • Make your desired changes in this new .env file. The key configurations to consider are:
      • NX_API_GATEWAY: Set this to your API root. For example, http://localhost:8080/api/dm.
      • LS_ACCESS_TOKEN: This is the access token for Label Studio, which can be obtained from your Label Studio account page.
  • This process allows you to have a customized configuration for DataManager, separate from the default settings in the .env.local files.

Usage Instructions

Key Development and Build Commands

  • Label Studio App:
    • yarn ls:dev: Build the main Label Studio app with Hot Module Reload for development.
    • yarn ls:watch: Build the main Label Studio app continuously for development.
    • yarn ls:e2e: Run end-to-end tests for the Label Studio app.
    • yarn ls:unit: Run unit tests for the Label Studio app.
  • Label Studio Frontend (Editor):
    • yarn lsf:watch: Continuously build the frontend editor.
    • yarn lsf:serve: Run the frontend editor standalone.
    • yarn lsf:e2e: Run end-to-end tests for the frontend editor.
    • yarn lsf:integration: Run integration tests for the frontend editor.
    • yarn lsf:unit: Run unit tests for the frontend editor.
  • Datamanager
    • yarn dm:watch: Continuously build Datamanager.
    • yarn dm:unit: Run unit tests for Datamanager.
  • General
    • yarn build: Build all apps and libraries in the project.
    • yarn ui:serve: Serve the Storybook instance for the shared UI library.
    • yarn test:e2e: Run end-to-end tests for all apps and libraries.
    • yarn test:integration: Run integration tests for all apps and libraries.
    • yarn test:unit: Run unit tests for all apps and libraries.
    • yarn lint: Run biome linter across all files with autofix.
    • yarn lint-scss: Run stylelint linter across all scss files with autofix.

Git Hooks

This project uses python pre-commit hooks to ensure code quality. To install the hooks, run make configure-hooks in the project root directory. This will install the hooks and run them on every pre-push to ensure pull requests will be aligned with linting for both python and javascript/typescript code.

If for any reason you need to format or lint using the same pre-commit hooks directly, you can run make fmt or make fmt-check respectively from the project root directory.

Ecosystem

ProjectDescription
label-studioServer part, distributed as a pip package
label-studio-frontendFrontend part, written in JavaScript and React, can be embedded into your application
label-studio-converterEncode labels into the format of your favorite machine learning library
label-studio-transformersTransformers library connected and configured for use with label studio
datamanagerData exploration tool for Label Studio

License

This software is licensed under the Apache 2.0 LICENSE © HumanSignal. 2020