-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Cli update #1666
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Cli update #1666
Changes from 2 commits
f764627
055601f
f3f1872
995cfcc
89decfd
4edf52f
cba4e3f
4d49cff
cc72cec
d7f91ca
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
|
@@ -16,7 +16,7 @@ | |||||
from itertools import islice | ||||||
from logging import getLogger | ||||||
from pathlib import Path | ||||||
from typing import Optional, Union | ||||||
from typing import Any, Callable, Optional, Union | ||||||
|
||||||
from deeppavlov.core.commands.utils import import_packages, parse_config | ||||||
from deeppavlov.core.common.chainer import Chainer | ||||||
|
@@ -28,8 +28,13 @@ | |||||
log = getLogger(__name__) | ||||||
|
||||||
|
||||||
def build_model(config: Union[str, Path, dict], mode: str = 'infer', | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Revert unnecessary style changes here and below. If using black (I guess), we should use it on whole code base. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. UPD: make black line lenght 120, and commit black config |
||||||
load_trained: bool = False, install: bool = False, download: bool = False) -> Chainer: | ||||||
def build_model( | ||||||
config: Union[str, Path, dict], | ||||||
mode: str = "infer", | ||||||
load_trained: bool = False, | ||||||
install: bool = False, | ||||||
download: bool = False, | ||||||
) -> Chainer: | ||||||
"""Build and return the model described in corresponding configuration file.""" | ||||||
config = parse_config(config) | ||||||
|
||||||
|
@@ -38,66 +43,103 @@ def build_model(config: Union[str, Path, dict], mode: str = 'infer', | |||||
if download: | ||||||
deep_download(config) | ||||||
|
||||||
import_packages(config.get('metadata', {}).get('imports', [])) | ||||||
import_packages(config.get("metadata", {}).get("imports", [])) | ||||||
|
||||||
model_config = config['chainer'] | ||||||
model_config = config["chainer"] | ||||||
|
||||||
model = Chainer(model_config['in'], model_config['out'], model_config.get('in_y')) | ||||||
model = Chainer(model_config["in"], model_config["out"], model_config.get("in_y")) | ||||||
|
||||||
for component_config in model_config['pipe']: | ||||||
if load_trained and ('fit_on' in component_config or 'in_y' in component_config): | ||||||
for component_config in model_config["pipe"]: | ||||||
if load_trained and ( | ||||||
"fit_on" in component_config or "in_y" in component_config | ||||||
): | ||||||
try: | ||||||
component_config['load_path'] = component_config['save_path'] | ||||||
component_config["load_path"] = component_config["save_path"] | ||||||
except KeyError: | ||||||
log.warning('No "save_path" parameter for the {} component, so "load_path" will not be renewed' | ||||||
.format(component_config.get('class_name', component_config.get('ref', 'UNKNOWN')))) | ||||||
log.warning( | ||||||
'No "save_path" parameter for the {} component, so "load_path" will not be renewed'.format( | ||||||
component_config.get( | ||||||
"class_name", component_config.get("ref", "UNKNOWN") | ||||||
) | ||||||
) | ||||||
) | ||||||
|
||||||
component = from_params(component_config, mode=mode) | ||||||
|
||||||
if 'id' in component_config: | ||||||
model._components_dict[component_config['id']] = component | ||||||
if "id" in component_config: | ||||||
model._components_dict[component_config["id"]] = component | ||||||
|
||||||
if 'in' in component_config: | ||||||
c_in = component_config['in'] | ||||||
c_out = component_config['out'] | ||||||
in_y = component_config.get('in_y', None) | ||||||
main = component_config.get('main', False) | ||||||
if "in" in component_config: | ||||||
c_in = component_config["in"] | ||||||
c_out = component_config["out"] | ||||||
in_y = component_config.get("in_y", None) | ||||||
main = component_config.get("main", False) | ||||||
model.append(component, c_in, c_out, in_y, main) | ||||||
|
||||||
return model | ||||||
|
||||||
|
||||||
def end_repl_mode(function: Callable[..., Any]) -> Callable[..., Any]: | ||||||
"""Decorator for processing ctrl-c, ctrl-d pressing.""" | ||||||
|
"""Decorator for processing ctrl-c, ctrl-d pressing.""" | |
"""Decorator for processing Ctrl-C, Ctrl-D pressing.""" |
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
print("\nExit repl - type q and press enter, or press ctrl-c, or ctrl-d.") | |
print("\nExit repl - type q and press Enter, or press Ctrl-C, or Ctrl-D.") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Replace repl with something more understandable for regular user. What other app usually write?
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TypeError: 'type' object is not subscriptable
in Python <=3.8. Replace with typing.Tuple, add test of interact mode to tests/test_quick_start.py for one single model.
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove continue. We should allow user to remain some arguments blank.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After removing continue, code from input_data could be moved from separated function back
IgnatovFedor marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why? I would understand >>>
like in python, but where from ==>
?
Uh oh!
There was an error while loading. Please reload this page.