tinybird-cli 3.8.1.dev1__tar.gz → 3.8.2.dev1__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.
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/PKG-INFO +7 -1
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/__cli__.py +2 -2
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/datafile.py +28 -14
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/tb_cli_modules/cli.py +2 -2
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird_cli.egg-info/PKG-INFO +7 -1
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/setup.cfg +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/ch_utils/constants.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/ch_utils/engine.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/check_pypi.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/client.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/config.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/connectors.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/context.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/datatypes.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/feedback_manager.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/git_settings.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/sql.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/sql_template.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/sql_template_fmt.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/sql_toolset.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/syncasync.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/tb_cli.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/tb_cli_modules/auth.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/tb_cli_modules/branch.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/tb_cli_modules/cicd.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/tb_cli_modules/common.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/tb_cli_modules/config.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/tb_cli_modules/connection.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/tb_cli_modules/datasource.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/tb_cli_modules/exceptions.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/tb_cli_modules/job.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/tb_cli_modules/pipe.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/tb_cli_modules/regions.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/tb_cli_modules/telemetry.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/tb_cli_modules/test.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/tb_cli_modules/tinyunit/tinyunit.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/tb_cli_modules/tinyunit/tinyunit_lib.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/tb_cli_modules/token.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/tb_cli_modules/workspace.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/tb_cli_modules/workspace_members.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/tornado_template.py +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird_cli.egg-info/SOURCES.txt +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird_cli.egg-info/dependency_links.txt +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird_cli.egg-info/entry_points.txt +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird_cli.egg-info/requires.txt +0 -0
- {tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird_cli.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: tinybird-cli
|
|
3
|
-
Version: 3.8.
|
|
3
|
+
Version: 3.8.2.dev1
|
|
4
4
|
Summary: Tinybird Command Line Tool
|
|
5
5
|
Home-page: https://www.tinybird.co/docs/cli/introduction.html
|
|
6
6
|
Author: Tinybird
|
|
@@ -19,6 +19,12 @@ Changelog
|
|
|
19
19
|
|
|
20
20
|
---------
|
|
21
21
|
|
|
22
|
+
3.8.1
|
|
23
|
+
************
|
|
24
|
+
|
|
25
|
+
- `Fixed` Avoid system vars evaluation when doing `tb fmt`
|
|
26
|
+
- `Fixed` environment variables substitution for Data Source engine parameters.
|
|
27
|
+
|
|
22
28
|
3.8.0
|
|
23
29
|
************
|
|
24
30
|
|
|
@@ -4,5 +4,5 @@ __description__ = 'Tinybird Command Line Tool'
|
|
|
4
4
|
__url__ = 'https://www.tinybird.co/docs/cli/introduction.html'
|
|
5
5
|
__author__ = 'Tinybird'
|
|
6
6
|
__author_email__ = 'support@tinybird.co'
|
|
7
|
-
__version__ = '3.8.
|
|
8
|
-
__revision__ = '
|
|
7
|
+
__version__ = '3.8.2.dev1'
|
|
8
|
+
__revision__ = 'f993ee3'
|
|
@@ -727,7 +727,9 @@ class Datafile:
|
|
|
727
727
|
return True
|
|
728
728
|
|
|
729
729
|
|
|
730
|
-
def parse_datasource(
|
|
730
|
+
def parse_datasource(
|
|
731
|
+
filename: str, replace_includes: bool = True, content: Optional[str] = None, skip_eval: bool = False
|
|
732
|
+
) -> Datafile:
|
|
731
733
|
basepath = ""
|
|
732
734
|
if not content:
|
|
733
735
|
with open(filename) as file:
|
|
@@ -737,7 +739,7 @@ def parse_datasource(filename: str, replace_includes: bool = True, content: Opti
|
|
|
737
739
|
s = content
|
|
738
740
|
|
|
739
741
|
try:
|
|
740
|
-
doc = parse(s, "default", basepath, replace_includes=replace_includes)
|
|
742
|
+
doc = parse(s, "default", basepath, replace_includes=replace_includes, skip_eval=skip_eval)
|
|
741
743
|
except ParseException as e:
|
|
742
744
|
raise click.ClickException(
|
|
743
745
|
FeedbackManager.error_parsing_file(filename=filename, lineno=e.lineno, error=e)
|
|
@@ -749,7 +751,9 @@ def parse_datasource(filename: str, replace_includes: bool = True, content: Opti
|
|
|
749
751
|
return doc
|
|
750
752
|
|
|
751
753
|
|
|
752
|
-
def parse_pipe(
|
|
754
|
+
def parse_pipe(
|
|
755
|
+
filename: str, replace_includes: bool = True, content: Optional[str] = None, skip_eval: bool = False
|
|
756
|
+
) -> Datafile:
|
|
753
757
|
basepath = ""
|
|
754
758
|
if not content:
|
|
755
759
|
with open(filename) as file:
|
|
@@ -760,7 +764,7 @@ def parse_pipe(filename: str, replace_includes: bool = True, content: Optional[s
|
|
|
760
764
|
|
|
761
765
|
try:
|
|
762
766
|
sql = ""
|
|
763
|
-
doc = parse(s, basepath=basepath, replace_includes=replace_includes)
|
|
767
|
+
doc = parse(s, basepath=basepath, replace_includes=replace_includes, skip_eval=skip_eval)
|
|
764
768
|
for node in doc.nodes:
|
|
765
769
|
sql = node.get("sql", "")
|
|
766
770
|
if sql.strip()[0] == "%":
|
|
@@ -795,7 +799,9 @@ def parse_pipe(filename: str, replace_includes: bool = True, content: Optional[s
|
|
|
795
799
|
return doc
|
|
796
800
|
|
|
797
801
|
|
|
798
|
-
def parse_token(
|
|
802
|
+
def parse_token(
|
|
803
|
+
filename: str, replace_includes: bool = True, content: Optional[str] = None, skip_eval: bool = False
|
|
804
|
+
) -> Datafile:
|
|
799
805
|
if not content:
|
|
800
806
|
with open(filename) as file:
|
|
801
807
|
s = file.read()
|
|
@@ -805,7 +811,7 @@ def parse_token(filename: str, replace_includes: bool = True, content: Optional[
|
|
|
805
811
|
|
|
806
812
|
try:
|
|
807
813
|
sql = ""
|
|
808
|
-
doc = parse(s, basepath=basepath, replace_includes=replace_includes)
|
|
814
|
+
doc = parse(s, basepath=basepath, replace_includes=replace_includes, skip_eval=skip_eval)
|
|
809
815
|
except ParseException as e:
|
|
810
816
|
raise click.ClickException(
|
|
811
817
|
FeedbackManager.error_parsing_file(
|
|
@@ -835,14 +841,20 @@ def _unquote(x: str):
|
|
|
835
841
|
return x
|
|
836
842
|
|
|
837
843
|
|
|
838
|
-
def eval_var(s: str) -> str:
|
|
844
|
+
def eval_var(s: str, skip: bool = False) -> str:
|
|
845
|
+
if skip:
|
|
846
|
+
return s
|
|
839
847
|
# replace ENV variables
|
|
840
848
|
# it's probably a bad idea to allow to get any env var
|
|
841
849
|
return Template(s).safe_substitute(os.environ)
|
|
842
850
|
|
|
843
851
|
|
|
844
852
|
def parse(
|
|
845
|
-
s: str,
|
|
853
|
+
s: str,
|
|
854
|
+
default_node: Optional[str] = None,
|
|
855
|
+
basepath: str = ".",
|
|
856
|
+
replace_includes: bool = True,
|
|
857
|
+
skip_eval: bool = False,
|
|
846
858
|
) -> Datafile: # noqa: C901
|
|
847
859
|
"""
|
|
848
860
|
Parses `s` string into a document
|
|
@@ -898,7 +910,7 @@ def parse(
|
|
|
898
910
|
def assign_var(v: str) -> Callable[[VarArg(str), KwArg(Any)], None]:
|
|
899
911
|
def _f(*args: str, **kwargs: Any):
|
|
900
912
|
s = _unquote((" ".join(args)).strip())
|
|
901
|
-
parser_state.current_node[v.lower()] = eval_var(s)
|
|
913
|
+
parser_state.current_node[v.lower()] = eval_var(s, skip=skip_eval)
|
|
902
914
|
|
|
903
915
|
return _f
|
|
904
916
|
|
|
@@ -1029,12 +1041,12 @@ def parse(
|
|
|
1029
1041
|
def set_engine(*args: str, **kwargs: Any) -> None:
|
|
1030
1042
|
__init_engine("ENGINE")
|
|
1031
1043
|
engine_type = _unquote((" ".join(args)).strip())
|
|
1032
|
-
parser_state.current_node["engine"]["type"] = engine_type
|
|
1044
|
+
parser_state.current_node["engine"]["type"] = eval_var(engine_type, skip=skip_eval)
|
|
1033
1045
|
|
|
1034
1046
|
def add_engine_var(v: str) -> Callable[[VarArg(str), KwArg(Any)], None]:
|
|
1035
1047
|
def _f(*args: str, **kwargs: Any):
|
|
1036
1048
|
__init_engine(f"ENGINE_{v}".upper())
|
|
1037
|
-
engine_arg = _unquote((" ".join(args)).strip())
|
|
1049
|
+
engine_arg = eval_var(_unquote((" ".join(args)).strip()), skip=skip_eval)
|
|
1038
1050
|
parser_state.current_node["engine"]["args"].append((v, engine_arg))
|
|
1039
1051
|
|
|
1040
1052
|
return _f
|
|
@@ -4470,11 +4482,12 @@ async def format_datasource(
|
|
|
4470
4482
|
replace_includes: bool = False,
|
|
4471
4483
|
datafile: Optional[Datafile] = None,
|
|
4472
4484
|
for_deploy_diff: bool = False,
|
|
4485
|
+
skip_eval: bool = False,
|
|
4473
4486
|
) -> str:
|
|
4474
4487
|
if datafile:
|
|
4475
4488
|
doc = datafile
|
|
4476
4489
|
else:
|
|
4477
|
-
doc = parse_datasource(filename, replace_includes=replace_includes)
|
|
4490
|
+
doc = parse_datasource(filename, replace_includes=replace_includes, skip_eval=skip_eval)
|
|
4478
4491
|
|
|
4479
4492
|
file_parts: List[str] = []
|
|
4480
4493
|
if for_diff:
|
|
@@ -4707,11 +4720,12 @@ async def format_pipe(
|
|
|
4707
4720
|
replace_includes: bool = False,
|
|
4708
4721
|
datafile: Optional[Datafile] = None,
|
|
4709
4722
|
for_deploy_diff: bool = False,
|
|
4723
|
+
skip_eval: bool = False,
|
|
4710
4724
|
) -> str:
|
|
4711
4725
|
if datafile:
|
|
4712
4726
|
doc = datafile
|
|
4713
4727
|
else:
|
|
4714
|
-
doc = parse_pipe(filename, replace_includes=replace_includes)
|
|
4728
|
+
doc = parse_pipe(filename, replace_includes=replace_includes, skip_eval=skip_eval)
|
|
4715
4729
|
|
|
4716
4730
|
file_parts: List[str] = []
|
|
4717
4731
|
format_sources(file_parts, doc)
|
|
@@ -4738,7 +4752,7 @@ async def format_pipe(
|
|
|
4738
4752
|
if "." in include_file
|
|
4739
4753
|
else eval_var(include_file)
|
|
4740
4754
|
)
|
|
4741
|
-
included_pipe = parse_pipe(include_file)
|
|
4755
|
+
included_pipe = parse_pipe(include_file, skip_eval=skip_eval)
|
|
4742
4756
|
pipe_nodes = doc.nodes.copy()
|
|
4743
4757
|
for included_node in included_pipe.nodes.copy():
|
|
4744
4758
|
unrolled_included_node = next(
|
|
@@ -797,9 +797,9 @@ async def fmt(
|
|
|
797
797
|
click.echo(filename)
|
|
798
798
|
extensions = Path(filename).suffixes
|
|
799
799
|
if is_file_a_datasource(filename):
|
|
800
|
-
result = await format_datasource(filename)
|
|
800
|
+
result = await format_datasource(filename, skip_eval=True)
|
|
801
801
|
elif (".pipe" in extensions) or (".incl" in extensions):
|
|
802
|
-
result = await format_pipe(filename, line_length)
|
|
802
|
+
result = await format_pipe(filename, line_length, skip_eval=True)
|
|
803
803
|
else:
|
|
804
804
|
click.echo("Unsupported file type. Supported files types are: .pipe, .incl and .datasource")
|
|
805
805
|
return None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: tinybird-cli
|
|
3
|
-
Version: 3.8.
|
|
3
|
+
Version: 3.8.2.dev1
|
|
4
4
|
Summary: Tinybird Command Line Tool
|
|
5
5
|
Home-page: https://www.tinybird.co/docs/cli/introduction.html
|
|
6
6
|
Author: Tinybird
|
|
@@ -19,6 +19,12 @@ Changelog
|
|
|
19
19
|
|
|
20
20
|
---------
|
|
21
21
|
|
|
22
|
+
3.8.1
|
|
23
|
+
************
|
|
24
|
+
|
|
25
|
+
- `Fixed` Avoid system vars evaluation when doing `tb fmt`
|
|
26
|
+
- `Fixed` environment variables substitution for Data Source engine parameters.
|
|
27
|
+
|
|
22
28
|
3.8.0
|
|
23
29
|
************
|
|
24
30
|
|
|
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
|
{tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/tb_cli_modules/tinyunit/tinyunit.py
RENAMED
|
File without changes
|
{tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/tb_cli_modules/tinyunit/tinyunit_lib.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird/tb_cli_modules/workspace_members.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tinybird-cli-3.8.1.dev1 → tinybird-cli-3.8.2.dev1}/tinybird_cli.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|