SNOW-981371: key error connections.dev
Closed this issue · 2 comments
nyck33 commented
SnowCLI version
0.2.9
Python version
3.10.13
Platform
Linux-6.5.0-13-generic-x86_64-with-glibc2.38
What happened
Trying to do this course locally though not Github codespaces: https://quickstarts.snowflake.com/guide/data_engineering_pipelines_with_snowpark_python/index.html#6
@[CesarSegura] when I run it from the subdirectory I was supposed to run it from, I get a different error:
(snowflake) nyck33@nyck33-tt:~/Documents/DataEngineering/snowpark/sfguide-data-engineering-with-snowpark-python/steps/05_fahrenheit_to_celsius_udf$ snow function create
Resolving any requirements from requirements.txt...
Deployment package now ready: app.zip
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /home/nyck33/miniforge-pypy3/envs/snowflake/lib/python3.10/site-packages/snowcli/cli/function.py │
│ :98 in function_create │
│ │
│ 95 │ │ check_anaconda_for_pypi_deps, │
│ 96 │ │ package_native_libraries, # type: ignore[arg-type] │
│ 97 │ ) │
│ ❱ 98 │ snowpark_create( │
│ 99 │ │ type="function", │
│ 100 │ │ environment=environment, │
│ 101 │ │ name=name, │
│ │
│ ╭────────────────────────── locals ──────────────────────────╮ │
│ │ check_anaconda_for_pypi_deps = True │ │
│ │ environment = 'dev' │ │
│ │ file = PosixPath('app.zip') │ │
│ │ handler = 'app.main' │ │
│ │ input_parameters = '(temp_f float)' │ │
│ │ name = 'fahrenheit_to_celsius_udf' │ │
│ │ overwrite = True │ │
│ │ package_native_libraries = 'ask' │ │
│ │ pypi_download = 'ask' │ │
│ │ return_type = 'float' │ │
│ ╰────────────────────────────────────────────────────────────╯ │
│ │
│ /home/nyck33/miniforge-pypy3/envs/snowflake/lib/python3.10/site-packages/snowcli/cli/snowpark_sh │
│ ared.py:61 in snowpark_create │
│ │
│ 58 │ │ ) │
│ 59 │ │ raise typer.Abort() │
│ 60 │ if config.isAuth(): │
│ ❱ 61 │ │ config.connectToSnowflake() │
│ 62 │ │ deploy_dict = utils.getDeployNames( │
│ 63 │ │ │ env_conf["database"], │
│ 64 │ │ │ env_conf["schema"], │
│ │
│ ╭──────────────────────── locals ────────────────────────╮ │
│ │ env_conf = { │ │
│ │ │ 'database': 'HOL_DB', │ │
│ │ │ 'schema': 'ANALYTICS', │ │
│ │ │ 'warehouse': 'HOL_WH', │ │
│ │ │ 'role': 'HOL_ROLE', │ │
│ │ │ 'overwrite': True │ │
│ │ } │ │
│ │ environment = 'dev' │ │
│ │ execute_as_caller = False │ │
│ │ file = PosixPath('app.zip') │ │
│ │ handler = 'app.main' │ │
│ │ input_parameters = '(temp_f float)' │ │
│ │ install_coverage_wrapper = False │ │
│ │ name = 'fahrenheit_to_celsius_udf' │ │
│ │ overwrite = True │ │
│ │ return_type = 'float' │ │
│ │ type = 'function' │ │
│ ╰────────────────────────────────────────────────────────╯ │
│ │
│ /home/nyck33/miniforge-pypy3/envs/snowflake/lib/python3.10/site-packages/snowcli/config.py:49 in │
│ connectToSnowflake │
│ │
│ 46 │ # the one specified by configuration file │
│ 47 │ connection = connection or cfg.config.get("snowsql_connection_name") │
│ 48 │ │
│ ❱ 49 │ snowflake_connection = SnowflakeConnector( │
│ 50 │ │ snowsql_config, connection, overrides=overrides │
│ 51 │ ) │
│ 52 │
│ │
│ ╭───────────────────────────────────── locals ─────────────────────────────────────╮ │
│ │ cfg = <snowcli.config.AppConfig object at 0x7fb96e9de290> │ │
│ │ connection = 'dev' │ │
│ │ overrides = {} │ │
│ │ snowsql_config = <snowcli.snowsql_config.SnowsqlConfig object at 0x7fb96e9de7d0> │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ /home/nyck33/miniforge-pypy3/envs/snowflake/lib/python3.10/site-packages/snowcli/snow_connector. │
│ py:37 in __init__ │
│ │
│ 34 │ ): │
│ 35 │ │ self.snowsql_config = snowsql_config │
│ 36 │ │ self.connection_name = connection_name │
│ ❱ 37 │ │ self.connection_config: dict = snowsql_config.get_connection( │
│ 38 │ │ │ connection_name, │
│ 39 │ │ ) │
│ 40 │ │ if overrides: │
│ │
│ ╭──────────────────────────────────────── locals ────────────────────────────────────────╮ │
│ │ connection_name = 'dev' │ │
│ │ overrides = {} │ │
│ │ self = <snowcli.snow_connector.SnowflakeConnector object at 0x7fb96e9de5c0> │ │
│ │ snowsql_config = <snowcli.snowsql_config.SnowsqlConfig object at 0x7fb96e9de7d0> │ │
│ ╰────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ /home/nyck33/miniforge-pypy3/envs/snowflake/lib/python3.10/site-packages/snowcli/snowsql_config. │
│ py:16 in get_connection │
│ │
│ 13 │ │ self.config.read(os.path.expanduser(path)) │
│ 14 │ │
│ 15 │ def get_connection(self, connection_name): │
│ ❱ 16 │ │ connection = self.config["connections." + connection_name] │
│ 17 │ │ # Remap names to appropriate args in Python Connector API │
│ 18 │ │ connection = { │
│ 19 │ │ │ k.replace("name", ""): v.strip('"') for k, v in connection.items() │
│ │
│ ╭───────────────────────────────────── locals ──────────────────────────────────────╮ │
│ │ connection_name = 'dev' │ │
│ │ self = <snowcli.snowsql_config.SnowsqlConfig object at 0x7fb96e9de7d0> │ │
│ ╰───────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ /home/nyck33/miniforge-pypy3/envs/snowflake/lib/python3.10/configparser.py:965 in __getitem__ │
│ │
│ 962 │ │
│ 963 │ def __getitem__(self, key): │
│ 964 │ │ if key != self.default_section and not self.has_section(key): │
│ ❱ 965 │ │ │ raise KeyError(key) │
│ 966 │ │ return self._proxies[key] │
│ 967 │ │
│ 968 │ def __setitem__(self, key, value): │
│ │
│ ╭────────────────────────── locals ───────────────────────────╮ │
│ │ key = 'connections.dev' │ │
│ │ self = <configparser.ConfigParser object at 0x7fb96e9de4a0> │ │
│ ╰─────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
KeyError: 'connections.dev'
(snowflake) nyck33@nyck33-tt:~/Documents/DataEngineering/snowpark/sfguide-data-engineering-with-snowpark-python/steps/05_fahrenheit_to_celsius_udf$
I can shift-ctrl-F search the project open in VSCode which shows me two places connection.dev
appears.
In config and build_and_deployment.yaml.
Console output
see above
How to reproduce
fork project repo, go through tutorial locally. My conda list:
(snowflake) nyck33@nyck33-tt:~/Documents/DataEngineering/snowpark/sfguide-data-engineering-with-snowpark-python/steps/05_fahrenheit_to_celsius_udf$ conda list
# packages in environment at /home/nyck33/miniforge-pypy3/envs/snowflake:
#
# Name Version Build Channel
_libgcc_mutex 0.1 conda_forge conda-forge
_openmp_mutex 4.5 2_gnu conda-forge
asn1crypto 1.5.1 pypi_0 pypi
asttokens 2.4.1 pyhd8ed1ab_0 conda-forge
backports 1.0 pyhd8ed1ab_3 conda-forge
backports.functools_lru_cache 1.6.5 pyhd8ed1ab_0 conda-forge
bzip2 1.0.8 hd590300_5 conda-forge
ca-certificates 2023.11.17 hbcca054_0 conda-forge
certifi 2023.11.17 pypi_0 pypi
cffi 1.16.0 pypi_0 pypi
charset-normalizer 3.3.2 pypi_0 pypi
click 8.1.7 pypi_0 pypi
cloudpickle 2.0.0 pypi_0 pypi
comm 0.1.4 pyhd8ed1ab_0 conda-forge
coverage 7.3.2 pypi_0 pypi
cryptography 41.0.5 pypi_0 pypi
debugpy 1.8.0 py310hc6cd4ac_1 conda-forge
decorator 5.1.1 pyhd8ed1ab_0 conda-forge
exceptiongroup 1.1.3 pyhd8ed1ab_0 conda-forge
executing 2.0.1 pyhd8ed1ab_0 conda-forge
filelock 3.13.1 pypi_0 pypi
idna 3.4 pypi_0 pypi
importlib-metadata 6.8.0 pyha770c72_0 conda-forge
importlib_metadata 6.8.0 hd8ed1ab_0 conda-forge
ipykernel 6.26.0 pyhf8b6a83_0 conda-forge
ipython 8.17.2 pyh41d4057_0 conda-forge
jaraco-classes 3.3.0 pypi_0 pypi
jedi 0.19.1 pyhd8ed1ab_0 conda-forge
jeepney 0.8.0 pypi_0 pypi
jinja2 3.1.2 pypi_0 pypi
jupyter_client 8.6.0 pyhd8ed1ab_0 conda-forge
jupyter_core 5.5.0 py310hff52083_0 conda-forge
keyring 24.3.0 pypi_0 pypi
ld_impl_linux-64 2.40 h41732ed_0 conda-forge
libffi 3.4.2 h7f98852_5 conda-forge
libgcc-ng 13.2.0 h807b86a_3 conda-forge
libgomp 13.2.0 h807b86a_3 conda-forge
libnsl 2.0.1 hd590300_0 conda-forge
libsodium 1.0.18 h36c2ea0_1 conda-forge
libsqlite 3.44.0 h2797004_0 conda-forge
libstdcxx-ng 13.2.0 h7e041cc_3 conda-forge
libuuid 2.38.1 h0b41bf4_0 conda-forge
libzlib 1.2.13 hd590300_5 conda-forge
markdown-it-py 3.0.0 pypi_0 pypi
markupsafe 2.1.3 pypi_0 pypi
matplotlib-inline 0.1.6 pyhd8ed1ab_0 conda-forge
mdurl 0.1.2 pypi_0 pypi
more-itertools 10.1.0 pypi_0 pypi
ncurses 6.4 h59595ed_2 conda-forge
nest-asyncio 1.5.8 pyhd8ed1ab_0 conda-forge
numpy 1.26.2 pypi_0 pypi
openssl 3.1.4 hd590300_0 conda-forge
packaging 23.2 pyhd8ed1ab_0 conda-forge
pandas 2.0.3 pypi_0 pypi
parso 0.8.3 pyhd8ed1ab_0 conda-forge
pexpect 4.8.0 pyh1a96a4e_2 conda-forge
pickleshare 0.7.5 py_1003 conda-forge
pip 23.3.1 pyhd8ed1ab_0 conda-forge
platformdirs 3.11.0 pypi_0 pypi
prompt-toolkit 3.0.41 pyha770c72_0 conda-forge
prompt_toolkit 3.0.41 hd8ed1ab_0 conda-forge
psutil 5.9.5 py310h2372a71_1 conda-forge
ptyprocess 0.7.0 pyhd3deb0d_0 conda-forge
pure_eval 0.2.2 pyhd8ed1ab_0 conda-forge
pyarrow 14.0.1 pypi_0 pypi
pycparser 2.21 pypi_0 pypi
pygments 2.17.0 pyhd8ed1ab_0 conda-forge
pyjwt 2.8.0 pypi_0 pypi
pyopenssl 23.3.0 pypi_0 pypi
python 3.10.13 hd12c33a_0_cpython conda-forge
python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge
python-dotenv 1.0.0 pypi_0 pypi
python_abi 3.10 4_cp310 conda-forge
pytz 2023.3.post1 pypi_0 pypi
pyyaml 6.0.1 pypi_0 pypi
pyzmq 25.1.1 py310h795f18f_2 conda-forge
readline 8.2 h8228510_1 conda-forge
requests 2.31.0 pypi_0 pypi
requirements-parser 0.5.0 pypi_0 pypi
rich 13.7.0 pypi_0 pypi
secretstorage 3.3.3 pypi_0 pypi
setuptools 68.2.2 pyhd8ed1ab_0 conda-forge
six 1.16.0 pyh6c4a22f_0 conda-forge
snowflake-cli-labs 0.2.9 pypi_0 pypi
snowflake-connector-python 3.5.0 pypi_0 pypi
snowflake-snowpark-python 1.10.0 pypi_0 pypi
sortedcontainers 2.4.0 pypi_0 pypi
stack_data 0.6.2 pyhd8ed1ab_0 conda-forge
tk 8.6.13 noxft_h4845f30_101 conda-forge
toml 0.10.2 pypi_0 pypi
tomlkit 0.12.3 pypi_0 pypi
tornado 6.3.3 py310h2372a71_1 conda-forge
traitlets 5.13.0 pyhd8ed1ab_0 conda-forge
typer 0.9.0 pypi_0 pypi
types-setuptools 69.0.0.0 pypi_0 pypi
typing_extensions 4.8.0 pyha770c72_0 conda-forge
tzdata 2023.3 pypi_0 pypi
urllib3 1.26.18 pypi_0 pypi
wcwidth 0.2.10 pyhd8ed1ab_0 conda-forge
wheel 0.41.3 pyhd8ed1ab_0 conda-forge
xz 5.2.6 h166bdaf_0 conda-forge
zeromq 4.3.5 h59595ed_0 conda-forge
zipp 3.17.0 pyhd8ed1ab_0 conda-forge
(snowflake) nyck33@nyck33-tt:~/Documents/DataEngineering/snowpark/sfguide-data-engineering-with-snowpark-python/steps/05_fahrenheit_to_celsius_udf$
sfc-gh-astus commented
Guide is not up to date, we're working on it but for various reasons it can take some more time.
sfc-gh-turbaszek commented
Closing as the issue was fixed in current version.