diff --git a/docs/modules/chroma.md b/docs/modules/chroma.md index bb44b5d54c..4eb750e7f2 100644 --- a/docs/modules/chroma.md +++ b/docs/modules/chroma.md @@ -6,6 +6,11 @@ Since testcontainers-go -[Get the client](../../modules/chroma/examples_test.go) inside_block:createClient +[Get the client](../../modules/chroma/examples_test.go) inside_block:getClient ### Working with Collections @@ -80,5 +85,7 @@ Then, you can create a Chroma client using the Chroma module: [Create Collection](../../modules/chroma/examples_test.go) inside_block:createCollection [List Collections](../../modules/chroma/examples_test.go) inside_block:listCollections +[Add Data to Collection](../../modules/chroma/examples_test.go) inside_block:addData +[Query Collection](../../modules/chroma/examples_test.go) inside_block:queryCollection [Delete Collection](../../modules/chroma/examples_test.go) inside_block:deleteCollection \ No newline at end of file diff --git a/modules/chroma/chroma.go b/modules/chroma/chroma.go index 239e0e6fa0..e2ef604c99 100644 --- a/modules/chroma/chroma.go +++ b/modules/chroma/chroma.go @@ -16,7 +16,7 @@ type ChromaContainer struct { // RunContainer creates an instance of the Chroma container type func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*ChromaContainer, error) { req := testcontainers.ContainerRequest{ - Image: "chromadb/chroma:0.4.22", + Image: "chromadb/chroma:0.4.24", ExposedPorts: []string{"8000/tcp"}, WaitingFor: wait.ForAll( wait.ForListeningPort("8000/tcp"), diff --git a/modules/chroma/chroma_test.go b/modules/chroma/chroma_test.go index be6a1008a4..deea10be23 100644 --- a/modules/chroma/chroma_test.go +++ b/modules/chroma/chroma_test.go @@ -5,6 +5,9 @@ import ( "net/http" "testing" + chromago "github.com/amikos-tech/chroma-go" + "github.com/stretchr/testify/require" + "github.com/testcontainers/testcontainers-go" "github.com/testcontainers/testcontainers-go/modules/chroma" ) @@ -12,7 +15,7 @@ import ( func TestChroma(t *testing.T) { ctx := context.Background() - container, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.22.dev44")) + container, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.24")) if err != nil { t.Fatal(err) } @@ -43,4 +46,21 @@ func TestChroma(t *testing.T) { tt.Fatalf("unexpected status code: %d", resp.StatusCode) } }) + + t.Run("GetClient", func(tt *testing.T) { + // restEndpoint { + endpoint, err := container.RESTEndpoint(context.Background()) + if err != nil { + tt.Fatalf("failed to get REST endpoint: %s", err) // nolint:gocritic + } + chromaClient, err := chromago.NewClient(endpoint) + // } + if err != nil { + tt.Fatalf("failed to create client: %s", err) + } + + hb, err := chromaClient.Heartbeat(context.TODO()) + require.NoError(tt, err) + require.NotNil(tt, hb["nanosecond heartbeat"]) + }) } diff --git a/modules/chroma/examples_test.go b/modules/chroma/examples_test.go index 7dec6287b7..07bf04813c 100644 --- a/modules/chroma/examples_test.go +++ b/modules/chroma/examples_test.go @@ -4,11 +4,9 @@ import ( "context" "fmt" "log" - "os" chromago "github.com/amikos-tech/chroma-go" - "github.com/amikos-tech/chroma-go/openai" - chromaopenapi "github.com/amikos-tech/chroma-go/swagger" + "github.com/amikos-tech/chroma-go/types" "github.com/testcontainers/testcontainers-go" "github.com/testcontainers/testcontainers-go/modules/chroma" @@ -18,7 +16,7 @@ func ExampleRunContainer() { // runChromaContainer { ctx := context.Background() - chromaContainer, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.22")) + chromaContainer, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.24")) if err != nil { log.Fatalf("failed to start container: %s", err) } @@ -46,7 +44,7 @@ func ExampleChromaContainer_connectWithClient() { // createClient { ctx := context.Background() - chromaContainer, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.22")) + chromaContainer, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.24")) if err != nil { log.Fatalf("failed to start container: %s", err) } @@ -58,21 +56,13 @@ func ExampleChromaContainer_connectWithClient() { } }() - connectionStr, err := chromaContainer.RESTEndpoint(ctx) + endpoint, err := chromaContainer.RESTEndpoint(context.Background()) if err != nil { log.Fatalf("failed to get REST endpoint: %s", err) // nolint:gocritic } - - // create the client connection and confirm that we can access the server with it - configuration := chromaopenapi.NewConfiguration() - configuration.Servers = chromaopenapi.ServerConfigurations{ - { - URL: connectionStr, - Description: "Chromadb server url for this store", - }, - } - chromaClient := &chromago.Client{ - ApiClient: chromaopenapi.NewAPIClient(configuration), + chromaClient, err := chromago.NewClient(endpoint) + if err != nil { + log.Fatalf("failed to get client: %s", err) // nolint:gocritic } hbs, errHb := chromaClient.Heartbeat(context.Background()) @@ -91,7 +81,7 @@ func ExampleChromaContainer_connectWithClient() { func ExampleChromaContainer_collections() { ctx := context.Background() - chromaContainer, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.22")) + chromaContainer, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.24"), testcontainers.WithEnv(map[string]string{"ALLOW_RESET": "true"})) if err != nil { log.Fatalf("failed to start container: %s", err) } @@ -102,30 +92,28 @@ func ExampleChromaContainer_collections() { } }() - connectionStr, err := chromaContainer.RESTEndpoint(ctx) + // getClient { + // create the client connection and confirm that we can access the server with it + endpoint, err := chromaContainer.RESTEndpoint(context.Background()) if err != nil { log.Fatalf("failed to get REST endpoint: %s", err) // nolint:gocritic } - - // create the client connection and confirm that we can access the server with it - configuration := chromaopenapi.NewConfiguration() - configuration.Servers = chromaopenapi.ServerConfigurations{ - { - URL: connectionStr, - Description: "Chromadb server url for this store", - }, + chromaClient, err := chromago.NewClient(endpoint) + // } + if err != nil { + log.Fatalf("failed to get client: %s", err) // nolint:gocritic } - chromaClient := &chromago.Client{ - ApiClient: chromaopenapi.NewAPIClient(configuration), + // reset { + reset, err := chromaClient.Reset(context.Background()) + // } + if err != nil { + log.Fatalf("failed to reset: %s", err) // nolint:gocritic } + fmt.Printf("Reset successful: %v\n", reset) // createCollection { - // for testing purposes, the OPENAI_API_KEY environment variable can be empty - // therefore this test is expected to succeed even though the API key is not set. - embeddingFunction := openai.NewOpenAIEmbeddingFunction(os.Getenv("OPENAI_API_KEY")) - distanceFunction := chromago.L2 - - col, err := chromaClient.CreateCollection(context.Background(), "test-collection", map[string]any{}, true, embeddingFunction, distanceFunction) + // for testing we use a dummy hashing function NewConsistentHashEmbeddingFunction + col, err := chromaClient.CreateCollection(context.Background(), "test-collection", map[string]any{}, true, types.NewConsistentHashEmbeddingFunction(), types.L2) // } if err != nil { log.Fatalf("failed to create collection: %s", err) // nolint:gocritic @@ -133,20 +121,37 @@ func ExampleChromaContainer_collections() { fmt.Println("Collection created:", col.Name) + // addData { // verify it's possible to add data to the collection col1, err := col.Add( context.Background(), - [][]float32{{1, 2, 3}, {4, 5, 6}}, - []map[string]interface{}{}, - []string{"test-doc-1", "test-doc-2"}, - []string{"test-label-1", "test-label-2"}, + nil, // embeddings + []map[string]interface{}{}, // metadata + []string{"test-doc-1", "test-doc-2"}, // documents + []string{"test-label-1", "test-label-2"}, // ids ) + // } if err != nil { log.Fatalf("failed to add data to collection: %s", err) // nolint:gocritic } fmt.Println(col1.Count(context.Background())) + // queryCollection { + // verify it's possible to query the collection + queryResults, err := col1.QueryWithOptions( + context.Background(), + types.WithQueryTexts([]string{"test-doc-1"}), + types.WithInclude(types.IDocuments, types.IEmbeddings, types.IMetadatas), + types.WithNResults(1), + ) + // } + if err != nil { + log.Fatalf("failed to query collection: %s", err) // nolint:gocritic + } + + fmt.Printf("Result of query: %v\n", queryResults) + // listCollections { cols, err := chromaClient.ListCollections(context.Background()) // } @@ -166,8 +171,10 @@ func ExampleChromaContainer_collections() { fmt.Println(err) // Output: + // Reset successful: true // Collection created: test-collection // 2 + // Result of query: &{[[test-doc-1]] [[test-label-1]] [[map[]]] []} // 1 // } diff --git a/modules/chroma/go.mod b/modules/chroma/go.mod index ace626670a..78a530ca9b 100644 --- a/modules/chroma/go.mod +++ b/modules/chroma/go.mod @@ -3,19 +3,22 @@ module github.com/testcontainers/testcontainers-go/modules/chroma go 1.21 require ( - github.com/amikos-tech/chroma-go v0.0.1 + github.com/amikos-tech/chroma-go v0.1.2 + github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.29.1 ) require ( dario.cat/mergo v1.0.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect + github.com/Masterminds/semver v1.5.0 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/Microsoft/hcsshim v0.11.4 // indirect github.com/cenkalti/backoff/v4 v4.2.1 // indirect github.com/containerd/containerd v1.7.12 // indirect github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect @@ -28,6 +31,7 @@ require ( github.com/golang/protobuf v1.5.3 // indirect github.com/google/uuid v1.6.0 // indirect github.com/klauspost/compress v1.16.0 // indirect + github.com/kr/pretty v0.3.1 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/moby/patternmatcher v0.6.0 // indirect @@ -35,9 +39,11 @@ require ( github.com/moby/sys/user v0.1.0 // indirect github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect + github.com/oklog/ulid v1.3.1 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect @@ -56,6 +62,7 @@ require ( google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.33.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/chroma/go.sum b/modules/chroma/go.sum index 6eb214e235..199d77d223 100644 --- a/modules/chroma/go.sum +++ b/modules/chroma/go.sum @@ -4,12 +4,14 @@ github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9 github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= +github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= -github.com/amikos-tech/chroma-go v0.0.1 h1:yWgl6YUhM+kXuH82DR9Q8dWddcjgaFuFPk+MtWNreqE= -github.com/amikos-tech/chroma-go v0.0.1/go.mod h1:uJwgGN4rBUTMI88Rn68Xia+cTRogOo0/elcPvJYFtBU= +github.com/amikos-tech/chroma-go v0.1.2 h1:ECiJ4Gn0AuJaj/jLo+FiqrKRHBVDkrDaUQVRBsEMmEQ= +github.com/amikos-tech/chroma-go v0.1.2/go.mod h1:R/RUp0aaqCWdSXWyIUTfjuNymwqBGLYFgXNZEmisphY= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/containerd/containerd v1.7.12 h1:+KQsnv4VnzyxWcfO9mlxxELaoztsDEjOuCMPAuPqgU0= @@ -18,6 +20,7 @@ github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -54,12 +57,14 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= -github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= -github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= @@ -74,16 +79,21 @@ github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= +github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= @@ -185,6 +195,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=