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.git
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
- pip (Python package manager)
- see: requirements.txt
Check Your Setup
python --version # Should be 3.10+
git --version # Should be installed
pip list | grep click # Should show click installed
Documentation
- Commands Reference: Detailed description of each command
- dependencies.json Format: Full dependencies.json specification
- Hooks Guide: Hook system and examples
License
By downloading or using this repository, you accept the license terms.
Contact and Support
- Platform: MQL5 Community
- Profile: https://www.mql5.com/es/users/nique_372
- Issues: For bug reports or questions
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
Metadata
Release files for tsndep 1.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| tsndep-1.0.5.tar.gz | 12.5 kB | Without provenance | Details for tsndep-1.0.5.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| tsndep-1.0.5-py3-none-any.whl | Python 3 | none | any | Details for tsndep-1.0.5-py3-none-any.whl |
Total release size: 28.7 kB
Release files / tsndep-1.0.5.tar.gz
| Download URL | tsndep-1.0.5.tar.gz |
|---|---|
| Size | 12.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
163ce6f7c8ae5d7899cdaa1be4b21ca5ad32779430340f0eb50747d258fe918e
|
|
BLAKE2b-256 checksum How to use checksums |
76530f12baea6ec5fbef352514f262175f3271f595b78d6316d3bafba53a2bf4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.9
|
Release files / tsndep-1.0.5-py3-none-any.whl
| Download URL | tsndep-1.0.5-py3-none-any.whl |
|---|---|
| Size | 16.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6a1bec75b02345e117e5a5bd7af4b2191375d93bd926396168f8731630810343
|
|
BLAKE2b-256 checksum How to use checksums |
b96f2a48b11e905de6325a240000f2f2e1a113f7c7d5e2dfc2d5444c49967d1d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.9
|
Security for tsndep 1.0.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.