1616_PACKAGES_PATH = os .path .join (PATH , "dbt_packages" )
1717
1818
19- def get_elementary_package_path ():
19+ def is_dbt_package_up_to_date () -> bool :
20+ installed_version = _get_installed_dbt_package_version ()
21+ if installed_version is None :
22+ return False
23+
24+ required_version = _get_required_dbt_package_version ()
25+ # We're using a non dbt Hub requirement, such as Git or local.
26+ if not required_version :
27+ return True
28+
29+ return installed_version == required_version
30+
31+
32+ def _get_elementary_package_path ():
2033 package_path = os .path .join (_PACKAGES_PATH , _DBT_PACKAGE_NAME )
2134 if os .path .exists (package_path ):
2235 return package_path
@@ -28,17 +41,8 @@ def get_elementary_package_path():
2841 return None
2942
3043
31- def is_dbt_package_up_to_date () -> bool :
32- installed_version = get_installed_dbt_package_version ()
33- if installed_version is None :
34- return False
35-
36- required_version = get_required_dbt_package_version ()
37- return installed_version == required_version
38-
39-
40- def get_installed_dbt_package_version () -> Optional [str ]:
41- package_path = get_elementary_package_path ()
44+ def _get_installed_dbt_package_version () -> Optional [str ]:
45+ package_path = _get_elementary_package_path ()
4246 if package_path is None :
4347 return None
4448
@@ -50,13 +54,15 @@ def get_installed_dbt_package_version() -> Optional[str]:
5054 return project_yaml_dict ["version" ]
5155
5256
53- def get_required_dbt_package_version () -> Optional [str ]:
57+ def _get_required_dbt_package_version () -> Optional [str ]:
5458 packages_file_path = os .path .join (PATH , _PACKAGES_FILENAME )
5559 packages_yaml = OrderedYaml ().load (packages_file_path )
5660
57- for requirement in packages_yaml ["packages" ]:
58- package_name = requirement ["package" ].split ("/" )[- 1 ]
61+ for requirement in packages_yaml .get ("packages" , []):
62+ package_id = requirement .get ("package" )
63+ if not package_id :
64+ continue
65+ package_name = package_id .split ("/" )[- 1 ]
5966 if package_name == _DBT_PACKAGE_NAME :
6067 return requirement ["version" ]
61-
6268 return None
0 commit comments