mtcli 2.4.0__tar.gz → 2.6.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mtcli-2.4.0 → mtcli-2.6.0}/PKG-INFO +1 -1
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/__init__.py +0 -2
- mtcli-2.6.0/mtcli/commands/conf.py +49 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/conf.py +0 -42
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/mt.py +13 -12
- mtcli-2.6.0/mtcli/plugin.py +9 -0
- mtcli-2.6.0/mtcli/plugins/volume_medio/tests/__init__.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/pyproject.toml +2 -1
- {mtcli-2.4.0 → mtcli-2.6.0}/LICENSE +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/README.md +0 -0
- {mtcli-2.4.0/mtcli/plugins → mtcli-2.6.0/mtcli/commands}/__init__.py +0 -0
- {mtcli-2.4.0/mtcli → mtcli-2.6.0/mtcli/commands}/bars.py +0 -0
- {mtcli-2.4.0/mtcli → mtcli-2.6.0/mtcli/commands}/logs.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/conecta.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/data/__init__.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/data/base.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/data/csv.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/data/mt5.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/logger.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/models/__init__.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/models/model_bar.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/models/model_bars.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/models/model_chart.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/models/model_conf.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/models/model_consecutive_bars.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/models/model_rates.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/models/model_signals.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/models/model_unconsecutive_bar.py +0 -0
- {mtcli-2.4.0/mtcli/plugins/media_movel/tests → mtcli-2.6.0/mtcli/plugins}/__init__.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/agressao/__init__.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/agressao/command.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/agressao/conf.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/agressao/models/__init__.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/agressao/models/model_agressao.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/agressao/views/__init__.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/agressao/views/view_agressao.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/media_movel/__init__.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/media_movel/command.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/media_movel/conf.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/media_movel/models/__init__.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/media_movel/models/model_media_movel.py +0 -0
- {mtcli-2.4.0/mtcli/plugins/range_medio → mtcli-2.6.0/mtcli/plugins/media_movel}/tests/__init__.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/media_movel/tests/test_mm.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/media_movel/tests/test_model_media_movel.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/range_medio/__init__.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/range_medio/command.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/range_medio/conf.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/range_medio/models/__init__.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/range_medio/models/model_average_range.py +0 -0
- {mtcli-2.4.0/mtcli/plugins/volume_medio → mtcli-2.6.0/mtcli/plugins/range_medio}/tests/__init__.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/range_medio/tests/test_rm.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/volume_medio/__init__.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/volume_medio/command.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/volume_medio/conf.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/volume_medio/models/__init__.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/volume_medio/models/model_average_volume.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/plugins/volume_medio/tests/test_vm.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/views/__init__.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/views/view_close.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/views/view_full.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/views/view_high.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/views/view_low.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/views/view_min.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/views/view_open.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/views/view_ranges.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/views/view_rates.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/views/view_vars.py +0 -0
- {mtcli-2.4.0 → mtcli-2.6.0}/mtcli/views/view_volumes.py +0 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"""Gerencia configurações registradas no mtcli.ini."""
|
|
2
|
+
|
|
3
|
+
import os
|
|
4
|
+
import click
|
|
5
|
+
import MetaTrader5 as mt5
|
|
6
|
+
from mtcli.conecta import conectar, shutdown
|
|
7
|
+
from mtcli.models.model_conf import ConfModel
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@click.command()
|
|
11
|
+
@click.option("--list", "list_", is_flag=True, help="Lista todas as configurações.")
|
|
12
|
+
@click.option("--set", "set_", nargs=2, help="Define o valor de uma configuração.")
|
|
13
|
+
@click.option("--get", help="Exibe o valor de uma configuração.")
|
|
14
|
+
@click.option("--reset", is_flag=True, help="Redefine as configurações padrão.")
|
|
15
|
+
def conf(list_, set_, get, reset):
|
|
16
|
+
"""Gerencia configurações registradas no mtcli.ini."""
|
|
17
|
+
conf = ConfModel("mtcli.ini")
|
|
18
|
+
config = conf.carregar()
|
|
19
|
+
|
|
20
|
+
if list_:
|
|
21
|
+
for key in config["DEFAULT"]:
|
|
22
|
+
click.echo(f"{key} = {config['DEFAULT'][key]}")
|
|
23
|
+
|
|
24
|
+
elif set_:
|
|
25
|
+
chave, valor = set_
|
|
26
|
+
config["DEFAULT"][chave] = valor
|
|
27
|
+
conf.salvar(config)
|
|
28
|
+
click.echo(f"Configuração '{chave}' definida como '{valor}'.")
|
|
29
|
+
|
|
30
|
+
elif get:
|
|
31
|
+
valor = config["DEFAULT"].get(get)
|
|
32
|
+
if valor is not None:
|
|
33
|
+
click.echo(f"{get} = {valor}")
|
|
34
|
+
else:
|
|
35
|
+
click.echo(f"Configuração '{get}' não encontrada.")
|
|
36
|
+
|
|
37
|
+
elif reset:
|
|
38
|
+
config["DEFAULT"].clear()
|
|
39
|
+
conf.salvar(config)
|
|
40
|
+
click.echo("Configurações redefinidas.")
|
|
41
|
+
|
|
42
|
+
else:
|
|
43
|
+
click.echo(
|
|
44
|
+
"Nenhuma opção fornecida. Use --help para ver as opções disponíveis."
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
if __name__ == "__main__":
|
|
49
|
+
conf()
|
|
@@ -102,45 +102,3 @@ timeframes = [
|
|
|
102
102
|
"m2",
|
|
103
103
|
"m1",
|
|
104
104
|
]
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
@click.command()
|
|
108
|
-
@click.option("--list", "list_", is_flag=True, help="Lista todas as configurações.")
|
|
109
|
-
@click.option("--set", "set_", nargs=2, help="Define o valor de uma configuração.")
|
|
110
|
-
@click.option("--get", help="Exibe o valor de uma configuração.")
|
|
111
|
-
@click.option("--reset", is_flag=True, help="Redefine as configurações padrão.")
|
|
112
|
-
def conf(list_, set_, get, reset):
|
|
113
|
-
"""Gerencia configurações registradas no mtcli.ini."""
|
|
114
|
-
conf = ConfModel("mtcli.ini")
|
|
115
|
-
config = conf.carregar()
|
|
116
|
-
|
|
117
|
-
if list_:
|
|
118
|
-
for key in config["DEFAULT"]:
|
|
119
|
-
click.echo(f"{key} = {config['DEFAULT'][key]}")
|
|
120
|
-
|
|
121
|
-
elif set_:
|
|
122
|
-
chave, valor = set_
|
|
123
|
-
config["DEFAULT"][chave] = valor
|
|
124
|
-
conf.salvar(config)
|
|
125
|
-
click.echo(f"Configuração '{chave}' definida como '{valor}'.")
|
|
126
|
-
|
|
127
|
-
elif get:
|
|
128
|
-
valor = config["DEFAULT"].get(get)
|
|
129
|
-
if valor is not None:
|
|
130
|
-
click.echo(f"{get} = {valor}")
|
|
131
|
-
else:
|
|
132
|
-
click.echo(f"Configuração '{get}' não encontrada.")
|
|
133
|
-
|
|
134
|
-
elif reset:
|
|
135
|
-
config["DEFAULT"].clear()
|
|
136
|
-
conf.salvar(config)
|
|
137
|
-
click.echo("Configurações redefinidas.")
|
|
138
|
-
|
|
139
|
-
else:
|
|
140
|
-
click.echo(
|
|
141
|
-
"Nenhuma opção fornecida. Use --help para ver as opções disponíveis."
|
|
142
|
-
)
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
if __name__ == "__main__":
|
|
146
|
-
conf()
|
|
@@ -2,11 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
import click
|
|
4
4
|
|
|
5
|
-
from mtcli.bars import bars
|
|
6
|
-
from mtcli.conf import conf
|
|
7
|
-
from mtcli.logs import logs
|
|
8
|
-
|
|
9
|
-
|
|
10
5
|
try:
|
|
11
6
|
from importlib.metadata import entry_points
|
|
12
7
|
except ImportError:
|
|
@@ -20,11 +15,6 @@ def mt():
|
|
|
20
15
|
pass
|
|
21
16
|
|
|
22
17
|
|
|
23
|
-
mt.add_command(bars, name="bars")
|
|
24
|
-
mt.add_command(conf, name="conf")
|
|
25
|
-
mt.add_command(logs, name="logs")
|
|
26
|
-
|
|
27
|
-
|
|
28
18
|
def load_plugins():
|
|
29
19
|
eps = entry_points()
|
|
30
20
|
plugins = (
|
|
@@ -32,9 +22,20 @@ def load_plugins():
|
|
|
32
22
|
if hasattr(eps, "select")
|
|
33
23
|
else eps.get("mtcli.plugins", [])
|
|
34
24
|
)
|
|
25
|
+
|
|
35
26
|
for ep in plugins:
|
|
36
|
-
|
|
37
|
-
|
|
27
|
+
plugin = ep.load()
|
|
28
|
+
|
|
29
|
+
# Caso seja uma função register(cli)
|
|
30
|
+
if callable(plugin) and not isinstance(plugin, click.Command):
|
|
31
|
+
plugin(mt) # chama register(cli)
|
|
32
|
+
# Caso seja um comando Click diretamente
|
|
33
|
+
elif isinstance(plugin, click.Command):
|
|
34
|
+
mt.add_command(plugin)
|
|
35
|
+
else:
|
|
36
|
+
raise TypeError(
|
|
37
|
+
f"Plugin {ep.name} inválido: não é um comando nem função register."
|
|
38
|
+
)
|
|
38
39
|
|
|
39
40
|
|
|
40
41
|
load_plugins()
|
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "mtcli"
|
|
3
|
-
version = "2.
|
|
3
|
+
version = "2.6.0"
|
|
4
4
|
description = "Aplicativo CLI para exibir gráficos do MetaTrader 5 em texto acessível ao leitor de telas"
|
|
5
5
|
authors = [
|
|
6
6
|
{name = "Valmir França da Silva",email = "vfranca3@gmail.com"}
|
|
@@ -24,6 +24,7 @@ issues = "https://github.com/vfranca/mtcli/issues"
|
|
|
24
24
|
mt = "mtcli.mt:mt"
|
|
25
25
|
|
|
26
26
|
[project.entry-points."mtcli.plugins"]
|
|
27
|
+
mtcli = "mtcli.plugin:register"
|
|
27
28
|
media_movel = "mtcli.plugins.media_movel:mm"
|
|
28
29
|
range_medio = "mtcli.plugins.range_medio:rm"
|
|
29
30
|
volume_medio = "mtcli.plugins.volume_medio:vm"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mtcli-2.4.0/mtcli/plugins/range_medio → mtcli-2.6.0/mtcli/plugins/media_movel}/tests/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mtcli-2.4.0/mtcli/plugins/volume_medio → mtcli-2.6.0/mtcli/plugins/range_medio}/tests/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|