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.3.tar.gz (12.3 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.3-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: tsndep-1.0.3.tar.gz
  • Upload date:
  • Size: 12.3 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.3.tar.gz
Algorithm Hash digest
SHA256 e96fe304df8e9c6e535908386a49e39260cf34f1890d4dd85ecb9fc9d95cbbfa
MD5 b4c2cff9c6616d41bbd7a2149c9caaed
BLAKE2b-256 4c19e7a5a4d87232f1042f3319d74b0138f89507983fdbeec168ac1186c295c4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tsndep-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 16.0 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 28cce7d742ed368605cd8fe911cc8679a22383ababc4dc377062292b3622199f
MD5 8d2c3925de9a6a0c431cf17b87d370fc
BLAKE2b-256 d44606f742086348abe1e51eb0e8fa4df2fed93ce0f4dcae53f0f38aca8bb6d8

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