Skip to main content

TSNDep - Dependency Manager for TSN MQL5 Ecosystem. Manages dependencies recursively with hooks support

Project description

TSN Dependency Manager

A powerful CLI tool for managing TSN MQL5 Projects dependencies with recursive processing, hooks support, and automatic dependency resolution.


Main Features

Dependency Management

  • Declarative Configuration: Define dependencies in a simple JSON format
  • Recursive Processing: Automatically resolve nested dependencies
  • Duplicate Prevention: Skip already-processed repositories
  • Smart Updates: Clone new repos or pull existing ones

Hooks System

  • Pre/Post Hooks: Execute custom commands before and after operations
  • Conditional Execution: Run hooks only on success
  • Timeout Control: Prevent hanging commands with configurable timeouts
  • Error Handling: Skip failures or fail on errors

Advanced Queries

  • Dependency Tree: Visualize project structure with depth control
  • Export Analysis: Export flattened dependency list with metadata
  • Repository Validation: Check that all dependencies are properly cloned

Multi-Language Support

  • Language Detection: Identify required programming languages
  • Version Tracking: Record language versions per dependency
  • Structured Metadata: Store comments and branch information

Repository Structure

TSNDep/
├── tsndep/             # Source code (CLI, commands, utilities)
│   ├── Comands/        # Command modules (install, add, remove, update, list, check, export, init)
│   ├── Ops/            # Utilities (Git operations, hooks, JSON handling)
│   └── Variables/      # Env varialbes for hooks (class)

Installation

From PyPI (Recommended)

pip install tsndep

Then use globally:

tsndep --help

From Repository

git clone https://forge.mql5.io/nique_372/TSNDep
cd TSNDep
pip install -e .

Contact me

Contact me on MQL5 (user: nique_372) to be added as a collaborator with your MQL5 nickname (read-only access), which will make the repository automatically appear in your Shared Projects folder


Quick Start

1. Initialize Your Project

cd your-project
tsndep init

This creates a dependencies.json template with:

  • Empty repos array
  • MetaTrader 5 build requirement
  • Hook configuration (pre/post install/update)

2. Configure Dependencies

Edit dependencies.json and add your first dependency:

{
  "repos": [
    {
      "name": "my-core-lib",
      "url": "https://github.com/yourorg/my-core-lib.git",
      "rama": "main",
      "comment": "Core library for trading systems"
    }
  ],
  "hooks": {
    "post_install": []
  }
}

3. Clone & Install All Dependencies

# Install from repository URL
tsndep install https://github.com/yourorg/my-project.git main

# Or with custom path
tsndep install https://github.com/yourorg/my-project.git main --path_install custom\\path

This will:

  • Clone the main repository
  • Read its dependencies.json
  • Recursively clone all nested dependencies
  • Execute any pre/post hooks

4. Verify Everything is Installed

tsndep check

Shows status of each dependency:

  • [OK]: Repository cloned and ready
  • [FAIL]: Repository missing or not cloned

5. Visualize the Dependency Tree

# Show all dependencies (default depth: 10)
tsndep list

# Show only 3 levels deep
tsndep list --depth 3

Output:

MyProject/
├── my-core-lib/
│   ├── logger-lib/
│   └── config-lib/
└── data-processor/
    ├── pandas-wrapper/
    └── ml-models/

Common Commands

Add a New Dependency

tsndep add https://github.com/org/repo.git main \
  --name my-new-lib \
  --comment "Trading calculations library"

Remove a Dependency

tsndep remove my-new-lib

Update all repositories (from dependencies.json)

tsndep update

Pulls latest changes from all repositories.

Export Flat Dependency List

tsndep export --output all-deps.json

Creates a flattened list with all dependencies (useful for CI/CD).


Requirements

Python

Check Your Setup

python --version          # Should be 3.10+
git --version             # Should be installed
pip list | grep click     # Should show click installed

Documentation


License

Read Full License

By downloading or using this repository, you accept the license terms.


Contact and Support


Disclaimer

  • TSNDep is a dependency management tool, not trading software
  • Always test in development before production deployment
  • Ensure you have permissions for all repositories
  • Git operations may have security implications. review URLs carefully
  • The authors assume no liability for system failures or data loss

Copyright © 2026 TradeSystemsNique

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tsndep-1.0.2.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tsndep-1.0.2-py3-none-any.whl (15.9 kB view details)

Uploaded Python 3

File details

Details for the file tsndep-1.0.2.tar.gz.

File metadata

  • Download URL: tsndep-1.0.2.tar.gz
  • Upload date:
  • Size: 12.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.9

File hashes

Hashes for tsndep-1.0.2.tar.gz
Algorithm Hash digest
SHA256 b9fcafe5427f4c7f6169481442ba368e00d0fec6e2ce07a71249171b7f244669
MD5 56a0e18e8c83717d898c215cf972bfde
BLAKE2b-256 e5b94861063f2deb7423417ab6cfb0d1ad369042e32095fe38f61f6eb4d51df9

See more details on using hashes here.

File details

Details for the file tsndep-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: tsndep-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 15.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.9

File hashes

Hashes for tsndep-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 db2f850254285cd2ef6c56a09c900e7043414fe5549156c9d83bdd89b841dc0e
MD5 d54c42f562b51f4c70d880afbc5ab38c
BLAKE2b-256 78ca95e23323a1b39ef4a0888b77607329bd8fcef300f244c8baef0346aaa79b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page