logdetective 2.0.1__py3-none-any.whl → 2.11.0__py3-none-any.whl
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.
- logdetective/extractors.py +134 -23
- logdetective/logdetective.py +39 -23
- logdetective/models.py +26 -0
- logdetective/prompts-summary-first.yml +0 -2
- logdetective/prompts.yml +0 -3
- logdetective/server/compressors.py +7 -10
- logdetective/server/config.py +3 -2
- logdetective/server/database/base.py +31 -26
- logdetective/server/database/models/__init__.py +2 -2
- logdetective/server/database/models/exceptions.py +4 -0
- logdetective/server/database/models/koji.py +47 -30
- logdetective/server/database/models/merge_request_jobs.py +205 -186
- logdetective/server/database/models/metrics.py +87 -61
- logdetective/server/emoji.py +57 -55
- logdetective/server/exceptions.py +4 -0
- logdetective/server/gitlab.py +18 -11
- logdetective/server/llm.py +19 -10
- logdetective/server/metric.py +18 -13
- logdetective/server/models.py +65 -48
- logdetective/server/plot.py +13 -11
- logdetective/server/server.py +52 -30
- logdetective/server/templates/base_response.html.j2 +59 -0
- logdetective/server/templates/gitlab_full_comment.md.j2 +58 -53
- logdetective/server/templates/gitlab_short_comment.md.j2 +52 -47
- logdetective/server/utils.py +15 -27
- logdetective/utils.py +115 -49
- {logdetective-2.0.1.dist-info → logdetective-2.11.0.dist-info}/METADATA +95 -21
- logdetective-2.11.0.dist-info/RECORD +40 -0
- {logdetective-2.0.1.dist-info → logdetective-2.11.0.dist-info}/WHEEL +1 -1
- logdetective-2.0.1.dist-info/RECORD +0 -39
- {logdetective-2.0.1.dist-info → logdetective-2.11.0.dist-info}/entry_points.txt +0 -0
- {logdetective-2.0.1.dist-info → logdetective-2.11.0.dist-info/licenses}/LICENSE +0 -0
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: logdetective
|
|
3
|
-
Version: 2.0
|
|
3
|
+
Version: 2.11.0
|
|
4
4
|
Summary: Log using LLM AI to search for build/test failures and provide ideas for fixing these.
|
|
5
5
|
License: Apache-2.0
|
|
6
|
+
License-File: LICENSE
|
|
6
7
|
Author: Jiri Podivin
|
|
7
8
|
Author-email: jpodivin@gmail.com
|
|
8
9
|
Requires-Python: >=3.11,<4.0
|
|
@@ -15,28 +16,37 @@ Classifier: Programming Language :: Python :: 3
|
|
|
15
16
|
Classifier: Programming Language :: Python :: 3.11
|
|
16
17
|
Classifier: Programming Language :: Python :: 3.12
|
|
17
18
|
Classifier: Programming Language :: Python :: 3.13
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
18
20
|
Classifier: Topic :: Internet :: Log Analysis
|
|
19
21
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
20
22
|
Classifier: Topic :: Software Development :: Debuggers
|
|
21
23
|
Provides-Extra: server
|
|
22
24
|
Provides-Extra: server-testing
|
|
23
|
-
|
|
25
|
+
Provides-Extra: testing
|
|
26
|
+
Requires-Dist: aiohttp (>=3.7.4,<4.0.0)
|
|
24
27
|
Requires-Dist: aiolimiter (>=1.0.0,<2.0.0) ; extra == "server"
|
|
28
|
+
Requires-Dist: aioresponses (>=0.7.8,<0.8.0) ; extra == "testing"
|
|
25
29
|
Requires-Dist: alembic (>=1.13.3,<2.0.0) ; extra == "server" or extra == "server-testing"
|
|
30
|
+
Requires-Dist: asciidoc[testing] (>=10.2.1,<11.0.0) ; extra == "testing"
|
|
31
|
+
Requires-Dist: asyncpg (>=0.30.0,<1.0.0) ; extra == "server" or extra == "server-testing"
|
|
26
32
|
Requires-Dist: backoff (==2.2.1) ; extra == "server" or extra == "server-testing"
|
|
27
33
|
Requires-Dist: drain3 (>=0.9.11,<0.10.0)
|
|
28
|
-
Requires-Dist: fastapi (>=0.111.1) ; extra == "server" or extra == "server-testing"
|
|
29
|
-
Requires-Dist:
|
|
34
|
+
Requires-Dist: fastapi (>=0.111.1,<1.0.0) ; extra == "server" or extra == "server-testing"
|
|
35
|
+
Requires-Dist: flexmock (>=0.12.2,<0.13.0) ; extra == "testing"
|
|
36
|
+
Requires-Dist: huggingface-hub (>=0.23.0,<1.4.0)
|
|
30
37
|
Requires-Dist: koji (>=1.35.0,<2.0.0) ; extra == "server" or extra == "server-testing"
|
|
31
|
-
Requires-Dist: llama-cpp-python (>0.2.56,!=0.2.86)
|
|
38
|
+
Requires-Dist: llama-cpp-python (>0.2.56,!=0.2.86,<1.0.0)
|
|
32
39
|
Requires-Dist: matplotlib (>=3.8.4,<4.0.0) ; extra == "server" or extra == "server-testing"
|
|
33
40
|
Requires-Dist: numpy (>=1.26.0)
|
|
34
41
|
Requires-Dist: openai (>=1.82.1,<2.0.0) ; extra == "server" or extra == "server-testing"
|
|
35
|
-
Requires-Dist: psycopg2 (>=2.9.9,<3.0.0) ; extra == "server"
|
|
36
|
-
Requires-Dist: psycopg2-binary (>=2.9.9,<3.0.0) ; extra == "server-testing"
|
|
37
42
|
Requires-Dist: pydantic (>=2.8.2,<3.0.0)
|
|
43
|
+
Requires-Dist: pytest (>=8.4.1,<9.0.0) ; extra == "testing"
|
|
44
|
+
Requires-Dist: pytest-asyncio (>=1.1.0,<2.0.0) ; extra == "testing"
|
|
45
|
+
Requires-Dist: pytest-cov[testing] (>=7.0.0,<8.0.0) ; extra == "testing"
|
|
46
|
+
Requires-Dist: pytest-mock (>=3.14.1,<4.0.0) ; extra == "server-testing"
|
|
38
47
|
Requires-Dist: python-gitlab (>=4.4.0)
|
|
39
48
|
Requires-Dist: pyyaml (>=6.0.1,<7.0.0)
|
|
49
|
+
Requires-Dist: responses (>=0.25.7,<0.26.0) ; extra == "server-testing"
|
|
40
50
|
Requires-Dist: sentry-sdk[fastapi] (>=2.17.0,<3.0.0) ; extra == "server" or extra == "server-testing"
|
|
41
51
|
Requires-Dist: sqlalchemy (>=2.0.36,<3.0.0) ; extra == "server" or extra == "server-testing"
|
|
42
52
|
Project-URL: homepage, https://github.com/fedora-copr/logdetective
|
|
@@ -86,12 +96,13 @@ Usage
|
|
|
86
96
|
-----
|
|
87
97
|
|
|
88
98
|
To analyze a log file, run the script with the following command line arguments:
|
|
89
|
-
- `
|
|
90
|
-
- `--model` (optional, default: "Mistral-7B-Instruct-v0.
|
|
99
|
+
- `file` (required): The path or URL of the log file to be analyzed.
|
|
100
|
+
- `--model` (optional, default: "Mistral-7B-Instruct-v0.3-GGUF"): The path or Hugging space name of the language model for analysis. For models from Hugging Face, write them as `namespace/repo_name`. As we are using LLama.cpp we want this to be in the `gguf` format. If the model is already on your machine it will skip the download.
|
|
101
|
+
- `--filename_suffix` (optional, default "Q4_K.gguf"): You can specify which suffix of the file to use. This option is applied when specifying model using the Hugging Face repository.
|
|
91
102
|
- `--summarizer` DISABLED: LLM summarization option was removed. Argument is kept for backward compatibility only.(optional, default: "drain"): Choose between LLM and Drain template miner as the log summarizer. You can also provide the path to an existing language model file instead of using a URL.
|
|
92
103
|
- `--n_lines` DISABLED: LLM summarization option was removed. Argument is kept for backward compatibility only. (optional, default: 8): The number of lines per chunk for LLM analysis. This only makes sense when you are summarizing with LLM.
|
|
93
|
-
- `--n_clusters` (optional, default 8): Number of clusters for Drain to organize log chunks into. This only makes sense when you are summarizing with Drain
|
|
94
|
-
- `--skip_snippets` Path to patterns for skipping snippets.
|
|
104
|
+
- `--n_clusters` (optional, default 8): Number of clusters for Drain to organize log chunks into. This only makes sense when you are summarizing with Drain.
|
|
105
|
+
- `--skip_snippets` Path to patterns for skipping snippets (in YAML).
|
|
95
106
|
|
|
96
107
|
Example usage:
|
|
97
108
|
|
|
@@ -101,14 +112,10 @@ Or if the log file is stored locally:
|
|
|
101
112
|
|
|
102
113
|
logdetective ./data/logs.txt
|
|
103
114
|
|
|
104
|
-
|
|
115
|
+
Examples of using different models. Note the use of `--filename_suffix` (or `-F`) option, useful for models that were quantized:
|
|
105
116
|
|
|
106
|
-
logdetective https://example.com/logs.txt --model
|
|
107
|
-
logdetective https://
|
|
108
|
-
|
|
109
|
-
Example of different suffix (useful for models that were quantized)
|
|
110
|
-
|
|
111
|
-
logdetective https://kojipkgs.fedoraproject.org//work/tasks/3367/131313367/build.log --model 'fedora-copr/granite-3.2-8b-instruct-GGUF' -F Q4_K.gguf
|
|
117
|
+
logdetective https://example.com/logs.txt --model QuantFactory/Meta-Llama-3-8B-Instruct-GGUF --filename_suffix Q5_K_S.gguf
|
|
118
|
+
logdetective https://kojipkgs.fedoraproject.org//work/tasks/3367/131313367/build.log --model 'fedora-copr/granite-3.2-8b-instruct-GGUF' -F Q4_K_M.gguf
|
|
112
119
|
|
|
113
120
|
Example of altered prompts:
|
|
114
121
|
|
|
@@ -117,10 +124,24 @@ Example of altered prompts:
|
|
|
117
124
|
logdetective https://kojipkgs.fedoraproject.org//work/tasks/3367/131313367/build.log --prompts ~/my-prompts.yml
|
|
118
125
|
|
|
119
126
|
|
|
120
|
-
Note that streaming with some models (notably Meta-Llama-3
|
|
127
|
+
Note that streaming with some models (notably Meta-Llama-3) is broken and can be worked around by `no-stream` option:
|
|
128
|
+
|
|
129
|
+
logdetective https://example.com/logs.txt --model QuantFactory/Meta-Llama-3-8B-Instruct-GGUF --filename_suffix Q5_K_M.gguf --no-stream
|
|
130
|
+
|
|
131
|
+
Choice of LLM
|
|
132
|
+
-------------
|
|
121
133
|
|
|
122
|
-
|
|
134
|
+
While Log Detective is compatible with a wide range of LLMs, it does require an instruction tuned model to function properly.
|
|
123
135
|
|
|
136
|
+
Whether or not the model has been trained to work with instructions can be determined by examining the model card, or simply by checking if it has `instruct` in its name.
|
|
137
|
+
|
|
138
|
+
When deployed as a server, Log Detective uses `/chat/completions` API as defined by OpenAI. The API must support both `system` and `user` roles, in order to properly work with a system prompt.
|
|
139
|
+
|
|
140
|
+
Configuration fields `system_role` and `user_role` can be used to set role names for APIs with non-standard roles.
|
|
141
|
+
|
|
142
|
+
> **Note:**
|
|
143
|
+
> In cases when no system role is available, it is possible to set both fields to the same value. This will concatenate system and standard prompt.
|
|
144
|
+
> This may have negative impact coherence of response.
|
|
124
145
|
|
|
125
146
|
Real Example
|
|
126
147
|
------------
|
|
@@ -304,6 +325,32 @@ podman-compose up server
|
|
|
304
325
|
|
|
305
326
|
- Run Visual Stdio Code debug configuration named *Python Debug: Remote Attach*
|
|
306
327
|
|
|
328
|
+
Visual Studio Code CLI debugging
|
|
329
|
+
--------------------------------
|
|
330
|
+
|
|
331
|
+
When debugging the CLI application, the `./scripts/debug_runner.py` script can be used
|
|
332
|
+
as a stand in for stump script created during package installation.
|
|
333
|
+
|
|
334
|
+
Using `launch.json`, or similar alternative, arguments can be specified for testing.
|
|
335
|
+
|
|
336
|
+
Example:
|
|
337
|
+
|
|
338
|
+
```
|
|
339
|
+
{
|
|
340
|
+
"version": "0.2.0",
|
|
341
|
+
"configurations": [
|
|
342
|
+
{
|
|
343
|
+
"name": "Python: Debug Installed Module",
|
|
344
|
+
"type": "debugpy",
|
|
345
|
+
"request": "launch",
|
|
346
|
+
"console": "integratedTerminal",
|
|
347
|
+
"program": "${workspaceFolder}/scripts/debug_runner.py",
|
|
348
|
+
"args": [<URL_OF_A_LOG>]
|
|
349
|
+
}
|
|
350
|
+
]
|
|
351
|
+
}
|
|
352
|
+
```
|
|
353
|
+
|
|
307
354
|
Server
|
|
308
355
|
======
|
|
309
356
|
|
|
@@ -487,6 +534,33 @@ Example of a valid pattern definition file: `logdetective/skip_patterns.yml`,
|
|
|
487
534
|
can be used as a starting point and is used as a default if no other definition is provided.
|
|
488
535
|
|
|
489
536
|
|
|
537
|
+
Extracting snippets with csgrep
|
|
538
|
+
-------------------------------
|
|
539
|
+
|
|
540
|
+
When working with logs containing messages from GCC, it can be beneficial to employ
|
|
541
|
+
additional extractor based on `csgrep` tool, to ensure that the messages are kept intact.
|
|
542
|
+
Since `csgrep` is not available as a python package, it must be installed separately,
|
|
543
|
+
with a package manager or from [source](https://github.com/csutils/csdiff).
|
|
544
|
+
|
|
545
|
+
The binary is available as part of `csdiff` package on Fedora.
|
|
546
|
+
|
|
547
|
+
```
|
|
548
|
+
dnf install csdiff
|
|
549
|
+
```
|
|
550
|
+
|
|
551
|
+
When working with CLI Log Detective, the csgrep extractor can be activated using option `--csgrep`.
|
|
552
|
+
While in server mode, the `csgrep` field in `extractor` config needs to be set to `true`.
|
|
553
|
+
|
|
554
|
+
```
|
|
555
|
+
csgrep: true
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
Both options are disabled by default and error will be produced if the option is used,
|
|
559
|
+
but `csgrep` is not present in the $PATH.
|
|
560
|
+
|
|
561
|
+
The container images are built with `csdiff` installed.
|
|
562
|
+
|
|
563
|
+
|
|
490
564
|
License
|
|
491
565
|
-------
|
|
492
566
|
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
logdetective/__init__.py,sha256=VqRngDcuFT7JWms8Qc_MsOvajoXVOKPr-S1kqY3Pqhc,59
|
|
2
|
+
logdetective/constants.py,sha256=aCwrkBrDdS_kbNESK-Z-ewg--DSzodV2OMgwEq3UE38,2456
|
|
3
|
+
logdetective/drain3.ini,sha256=ni91eCT1TwTznZwcqWoOVMQcGEnWhEDNCoTPF7cfGfY,1360
|
|
4
|
+
logdetective/extractors.py,sha256=vT-je4NkDgSj9rRtSeLpqBU52gIUnnVgJPHFbVihpCw,5993
|
|
5
|
+
logdetective/logdetective.py,sha256=S0abGrAQH2oi0MRisCV64Sa1UXdQLIfXFBA4tYAYqhM,6896
|
|
6
|
+
logdetective/models.py,sha256=uczmQtWFgSp_ZGssngdTM4qzPF1o64dCy0469GoSbjQ,2937
|
|
7
|
+
logdetective/prompts-summary-first.yml,sha256=kmyMFQmqFXpojkz7p3CyCWCPxMpFLpfDdMGisB4YwL0,808
|
|
8
|
+
logdetective/prompts-summary-only.yml,sha256=8U9AMJV8ePW-0CoXOXlQoO92DAJDeutIT8ntSkkm6W0,470
|
|
9
|
+
logdetective/prompts.yml,sha256=i3z6Jcb4ScVi7LsxOpDlKiXrcvql3qO_JnLzkAKMn1c,3870
|
|
10
|
+
logdetective/remote_log.py,sha256=28QvdQiy7RBnd86EKCq_A75P21gSNlCbgxJe5XAe9MA,2258
|
|
11
|
+
logdetective/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
|
+
logdetective/server/compressors.py,sha256=y4aFYJ_9CbYdKuAI39Kc9GQSdPN8cSJ2c_VAz3T47EE,5249
|
|
13
|
+
logdetective/server/config.py,sha256=cKUmNCJyNyEid0bPTiUjr8CQuBYBab5bC79Axk2h0z8,2525
|
|
14
|
+
logdetective/server/database/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
+
logdetective/server/database/base.py,sha256=HSV2tgye7iYTDzJD1Q5X7_nlLuTMIFP-hRVQMYxngHQ,2073
|
|
16
|
+
logdetective/server/database/models/__init__.py,sha256=zoZMCt1_7tewDa6eEIIX_xrdN-tLegSiPNg5NiYaV3o,850
|
|
17
|
+
logdetective/server/database/models/exceptions.py,sha256=4ED7FSSA1liV9-7VIN2BwUiz6XlmP97Y1loKnsoNdD8,507
|
|
18
|
+
logdetective/server/database/models/koji.py,sha256=HNWxHYDxf4JN9K2ue8-V8dH-0XY5ZmxqH7Y9lAIbILA,6436
|
|
19
|
+
logdetective/server/database/models/merge_request_jobs.py,sha256=MxiAVKQIsQMbFylBsmYBmVXYvid-4_5mwwXLfWdp6_w,19965
|
|
20
|
+
logdetective/server/database/models/metrics.py,sha256=4xsUdbtlp5PI1-iJQc5Dd8EPDgVVplD9hJRWeRDn43k,15443
|
|
21
|
+
logdetective/server/emoji.py,sha256=zSaYtLpSkpRCXpjMWnHR1bYwkmobMJASZ7YNalrd85U,5274
|
|
22
|
+
logdetective/server/exceptions.py,sha256=WN715KLL3ya6FiZ95v70VSbNuVhGuHFzxm2OeEPWQCw,981
|
|
23
|
+
logdetective/server/gitlab.py,sha256=putpnf8PfGsCZJsqWZA1rMovRGnyagoQmgpKLqtA-aQ,16743
|
|
24
|
+
logdetective/server/koji.py,sha256=LG1pRiKUFvYFRKzgQoUG3pUHfcEwMoaMNjUSMKw_pBA,5640
|
|
25
|
+
logdetective/server/llm.py,sha256=bmA6LsV80OdO60q4WLoKuehuVDEYq-HhBAYcZeLfrv8,10150
|
|
26
|
+
logdetective/server/metric.py,sha256=wLOpgcAch3rwhPA5P2YWUeMNAPsvRGseRjH5HlTb7JM,4529
|
|
27
|
+
logdetective/server/models.py,sha256=AJyycAEEl2o6TH4eAqVMlt5woqAB5M8ze2L575leA_I,19835
|
|
28
|
+
logdetective/server/plot.py,sha256=8LERgY3vQckaHZV2PZfOrZT8CjCAiji57QCmRW24Rfo,14697
|
|
29
|
+
logdetective/server/server.py,sha256=JueU-5c8t9h1CZy4gtoEeT8VSEirpeS0K3wrfqTPvAc,25381
|
|
30
|
+
logdetective/server/templates/base_response.html.j2,sha256=BJGGV_Xb0Lnue8kq32oG9lI5CQDf9vce7HMYsP-Pvb4,2040
|
|
31
|
+
logdetective/server/templates/gitlab_full_comment.md.j2,sha256=4UujUzl3lmdbNEADsxn3HVrjfUiUu2FvUlp9MDFGXQI,2321
|
|
32
|
+
logdetective/server/templates/gitlab_short_comment.md.j2,sha256=2krnMlGqqju2V_6pE0UqUR1P674OFaeX5BMyY5htTOQ,2022
|
|
33
|
+
logdetective/server/utils.py,sha256=0BZ8WmzXNEtkUty1kOyFbBxDZWL0Icc8BUrxuHw9uvs,4015
|
|
34
|
+
logdetective/skip_snippets.yml,sha256=reGlhPPCo06nNUJWiC2LY-OJOoPdcyOB7QBTSMeh0eg,487
|
|
35
|
+
logdetective/utils.py,sha256=yalhySOF_Gzmqx_Ft9qad3TplAfZ6LOmauGXEJfKWiE,9803
|
|
36
|
+
logdetective-2.11.0.dist-info/METADATA,sha256=SdXBkYlSoiVXhgPiM23luYQa0Y_BCX_el_mxTdJc0Zw,23273
|
|
37
|
+
logdetective-2.11.0.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
38
|
+
logdetective-2.11.0.dist-info/entry_points.txt,sha256=3K_vXja6PmcA8sNdUi63WdImeiNhVZcEGPTaoJmltfA,63
|
|
39
|
+
logdetective-2.11.0.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
40
|
+
logdetective-2.11.0.dist-info/RECORD,,
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
logdetective/__init__.py,sha256=VqRngDcuFT7JWms8Qc_MsOvajoXVOKPr-S1kqY3Pqhc,59
|
|
2
|
-
logdetective/constants.py,sha256=aCwrkBrDdS_kbNESK-Z-ewg--DSzodV2OMgwEq3UE38,2456
|
|
3
|
-
logdetective/drain3.ini,sha256=ni91eCT1TwTznZwcqWoOVMQcGEnWhEDNCoTPF7cfGfY,1360
|
|
4
|
-
logdetective/extractors.py,sha256=gRiEcS1M_0Otu9zzT-tGm2ez3DoCKHYrQwJXZAZS0lk,1995
|
|
5
|
-
logdetective/logdetective.py,sha256=DECG4qnmYHlCcQ5Waj3Esr4wSb6LtM4m7qqtmZqYDX0,6151
|
|
6
|
-
logdetective/models.py,sha256=h01nagxgb8sR9Js_00DMoZv6GvwHjcOk0MeKttftDHk,2460
|
|
7
|
-
logdetective/prompts-summary-first.yml,sha256=3Zfp4NNOfaFYq5xBlBjeQa5PdjYfS4v17OtJqQ-DRpU,821
|
|
8
|
-
logdetective/prompts-summary-only.yml,sha256=8U9AMJV8ePW-0CoXOXlQoO92DAJDeutIT8ntSkkm6W0,470
|
|
9
|
-
logdetective/prompts.yml,sha256=Mq8RdWgJxxhrQYgammojJkXULJNpzSLU0N_BryOxKgc,3906
|
|
10
|
-
logdetective/remote_log.py,sha256=28QvdQiy7RBnd86EKCq_A75P21gSNlCbgxJe5XAe9MA,2258
|
|
11
|
-
logdetective/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
|
-
logdetective/server/compressors.py,sha256=qzrT-BPSksXY6F2L6ger04GGrgdBsGOfK2YuCFRs0Q4,5427
|
|
13
|
-
logdetective/server/config.py,sha256=Qg3Q15S-NPXEpSqGgAH41JVy4dheqKYUSEkzE-1Z05E,2478
|
|
14
|
-
logdetective/server/database/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
-
logdetective/server/database/base.py,sha256=1mcjEbhwLl4RalvT3oy6XVctjJoWIW3H9aI_sMWJBK8,1728
|
|
16
|
-
logdetective/server/database/models/__init__.py,sha256=GQ_4vC_jahwFrqhF4UUKLRo86_ulq1uSBAF3Je31DyA,878
|
|
17
|
-
logdetective/server/database/models/exceptions.py,sha256=AXQPZRgt-r2vboxP9SGYelngP6YIFpHlwELKcZ1FD3Y,384
|
|
18
|
-
logdetective/server/database/models/koji.py,sha256=vZN585FvOHM4z5o3oBBQsxWWJER1_giOMtZZPiU4q3w,5457
|
|
19
|
-
logdetective/server/database/models/merge_request_jobs.py,sha256=q4reSC7YnEfWBPpV-qNt5nvuq0drntisHnKkFOlQW0o,18614
|
|
20
|
-
logdetective/server/database/models/metrics.py,sha256=_UCaizcl9w4iX54EWvk5VvXeLcg2UfnQgXg4br3OLko,14214
|
|
21
|
-
logdetective/server/emoji.py,sha256=hV4O0yfL0l1a3kWLImvBsY4AJQauKs7okYOGBEtYVz0,4795
|
|
22
|
-
logdetective/server/exceptions.py,sha256=piV7wVKc-rw_pHrThbZbUjtmjuO5qUbjVNFwjdfcP3Q,864
|
|
23
|
-
logdetective/server/gitlab.py,sha256=MrAprXLTN6Q15qBC_Y2y42iKdtmIfed_pfjEt0gABvc,16422
|
|
24
|
-
logdetective/server/koji.py,sha256=LG1pRiKUFvYFRKzgQoUG3pUHfcEwMoaMNjUSMKw_pBA,5640
|
|
25
|
-
logdetective/server/llm.py,sha256=_JRbEpNHzXWy0BuwjFhhuwLdPzFi4yKikZHwoibWiek,9736
|
|
26
|
-
logdetective/server/metric.py,sha256=QrrX1FmMa7sc57av0P9UFOiCIFYVLs1opOWV3ObYo0s,4086
|
|
27
|
-
logdetective/server/models.py,sha256=CosUjUp-AbJC01TrBwrix-y5ZCuTIDpEo1kpLzDzrWk,19341
|
|
28
|
-
logdetective/server/plot.py,sha256=C98U9prGoPkp8_t4v2dovdZuwOhSbxXSeB_K9Q2r3NE,14607
|
|
29
|
-
logdetective/server/server.py,sha256=rpl5WtnesxPz_Zahy2bKN5wMIjbvdE1sM1ulvxvDiGw,24416
|
|
30
|
-
logdetective/server/templates/gitlab_full_comment.md.j2,sha256=H4NPjm3l8X5d0TNtfyZZZj_gHY1Y7hWEqY6RaVA8qt0,1947
|
|
31
|
-
logdetective/server/templates/gitlab_short_comment.md.j2,sha256=vPisU1c98LPKEwlKtMrtlqnEOlbykPZK96MpHAf-o88,1758
|
|
32
|
-
logdetective/server/utils.py,sha256=ixEXSc93Zdwy94YkExdNJ1vRCe90dNP7DQpy8XlFYRU,4288
|
|
33
|
-
logdetective/skip_snippets.yml,sha256=reGlhPPCo06nNUJWiC2LY-OJOoPdcyOB7QBTSMeh0eg,487
|
|
34
|
-
logdetective/utils.py,sha256=Ur4EPCAeuvymFcUO10SpbCBI2tdcZ33s-fjCn9pfgUY,7822
|
|
35
|
-
logdetective-2.0.1.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
36
|
-
logdetective-2.0.1.dist-info/METADATA,sha256=yxSjPsb8Zm-ptGo0YShBwuBvMR_R-eO6cuGIJjIqIDA,20104
|
|
37
|
-
logdetective-2.0.1.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
38
|
-
logdetective-2.0.1.dist-info/entry_points.txt,sha256=3K_vXja6PmcA8sNdUi63WdImeiNhVZcEGPTaoJmltfA,63
|
|
39
|
-
logdetective-2.0.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|