databricks-cli/libs
Pieter Noordhuis 26094f01a0
Define `dyn.Mapping` to represent maps (#1301)
## Changes

Before this change maps were stored as a regular Go map with string
keys. This didn't let us capture metadata (location information) for map
keys.

To address this, this change replaces the use of the regular Go map with
a dedicated type for a dynamic map. This type stores the `dyn.Value` for
both the key and the value. It uses a map to still allow O(1) lookups
and redirects those into a slice.

## Tests

* All existing unit tests pass (some with minor modifications due to
interface change).
* Equality assertions with `assert.Equal` no longer worked because the
new `dyn.Mapping` persists the order in which keys are set and is
therefore susceptible to map ordering issues. To fix this, I added a
`dynassert` package that forwards all assertions to `testify/assert` but
intercepts equality for `dyn.Value` arguments.
2024-03-25 11:01:09 +00:00
..
auth Propagate correct `User-Agent` for CLI (#1264) 2024-03-11 22:24:23 +00:00
cmdgroup Make sure grouped flags are added to the command flag set (#1180) 2024-02-07 10:27:13 +00:00
cmdio Use Go SDK Iterators when listing resources with the CLI (#1202) 2024-02-21 14:16:36 +00:00
databrickscfg Use Go SDK Iterators when listing resources with the CLI (#1202) 2024-02-21 14:16:36 +00:00
diag Rename libs/config -> libs/dyn (#1086) 2023-12-22 13:20:45 +00:00
dyn Define `dyn.Mapping` to represent maps (#1301) 2024-03-25 11:01:09 +00:00
env Fix `panic: $HOME is not set` (#1027) 2023-11-29 19:08:27 +00:00
errs Added ability for deferred mutator execution (#380) 2023-05-16 18:01:50 +02:00
exec Fixed building Python artifacts on Windows with WSL (#1249) 2024-03-01 15:59:47 +00:00
filer Add support for UC Volumes to the `databricks fs` commands (#1209) 2024-02-20 16:14:37 +00:00
fileset Added deployment state for bundles (#1267) 2024-03-18 14:41:58 +00:00
flags Add override to support YAML inputs for apps (#921) 2023-10-27 18:57:26 +00:00
folders Move folders package into libs (#1184) 2024-02-07 16:33:18 +00:00
git Move folders package into libs (#1184) 2024-02-07 16:33:18 +00:00
jsonschema Add support for `anyOf` to `skip_prompt_if` (#1133) 2024-01-25 10:09:42 +00:00
locker Correct name for force acquire deploy flag (#656) 2023-08-15 19:03:43 +00:00
log Rewrite the friendly log handler (#1038) 2023-12-01 12:17:04 +00:00
notebook Added `databricks bundle generate job` command (#1043) 2024-01-17 14:26:33 +00:00
process Stub out Python virtual environment installation for `labs` commands (#1057) 2023-12-11 16:30:19 +00:00
python Added `python.DetectInterpreters` and other utils (#805) 2023-10-03 10:47:09 +00:00
set Added support for sync.include and sync.exclude sections (#671) 2023-08-18 08:07:25 +00:00
sync Added deployment state for bundles (#1267) 2024-03-18 14:41:58 +00:00
tags Library to validate and normalize cloud specific tags (#819) 2023-09-29 08:49:08 +00:00
template Add integration test for mlops-stacks initialization (#1155) 2024-03-12 14:15:54 +00:00
terraform Add bundle destroy command (#300) 2023-04-06 12:54:58 +02:00
testfile Refactor and cover edge cases in sync integration tests (#160) 2023-01-10 13:16:30 +01:00
textutil Added `databricks bundle generate job` command (#1043) 2024-01-17 14:26:33 +00:00