lennybot 1.0.31__py3-none-any.whl → 1.0.32__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.
- lennybot/__init__.py +1 -1
- lennybot/actions/download_resources.py +2 -1
- lennybot/actions/update_json.py +3 -3
- lennybot/check/__init__.py +0 -1
- lennybot/check/docker_image_available.py +2 -1
- lennybot/config/config.py +17 -1
- lennybot/lennybot.py +4 -4
- lennybot/model/plan.py +1 -1
- lennybot/service/apply.py +0 -1
- lennybot/service/plan.py +1 -2
- lennybot/service/source/__init__.py +3 -0
- lennybot/service/source/source_github.py +0 -2
- lennybot/service/source/source_nodejs.py +57 -0
- lennybot-1.0.32.data/data/generic/version.txt +1 -0
- {lennybot-1.0.31.dist-info → lennybot-1.0.32.dist-info}/METADATA +1 -1
- lennybot-1.0.32.dist-info/RECORD +38 -0
- {lennybot-1.0.31.dist-info → lennybot-1.0.32.dist-info}/WHEEL +1 -1
- lennybot-1.0.31.data/data/generic/version.txt +0 -1
- lennybot-1.0.31.dist-info/RECORD +0 -37
- {lennybot-1.0.31.data → lennybot-1.0.32.data}/data/generic/README.md +0 -0
- {lennybot-1.0.31.data → lennybot-1.0.32.data}/data/generic/requirements.txt +0 -0
- {lennybot-1.0.31.dist-info → lennybot-1.0.32.dist-info}/LICENSE +0 -0
- {lennybot-1.0.31.dist-info → lennybot-1.0.32.dist-info}/entry_points.txt +0 -0
- {lennybot-1.0.31.dist-info → lennybot-1.0.32.dist-info}/top_level.txt +0 -0
lennybot/__init__.py
CHANGED
lennybot/actions/update_json.py
CHANGED
lennybot/check/__init__.py
CHANGED
|
@@ -5,7 +5,7 @@ from urllib.parse import urlencode
|
|
|
5
5
|
|
|
6
6
|
import requests
|
|
7
7
|
|
|
8
|
-
from ..config.config import LennyBotCheckConfig, LennyBotConfigContainerConfig
|
|
8
|
+
from ..config.config import LennyBotCheckConfig, LennyBotConfigContainerConfig
|
|
9
9
|
from .icheck import ICheck
|
|
10
10
|
|
|
11
11
|
PATTERN = r"(?:([\-\_\.\w]+)$)|(?:([\-\_\.\w]+)/([\-\_\.\w]+)$)|(?:([\-\.A-z0-9]+)/([\-\_\.\w]+)/([\-\_\.\w]+)$)|(?:([\-\.A-z0-9]+)/([\-\_\.\w]+)/([\-\_\.\w]+)/([\-\_\.\w]+)$)"
|
|
@@ -34,6 +34,7 @@ class WwwAuthenticateHeader:
|
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
class DockerImageAvailableCheck(ICheck):
|
|
37
|
+
# pylint: disable=too-many-positional-arguments
|
|
37
38
|
def __init__(
|
|
38
39
|
self,
|
|
39
40
|
application_name,
|
lennybot/config/config.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
import os
|
|
3
|
-
from typing import
|
|
3
|
+
from typing import Dict, List, Optional
|
|
4
4
|
|
|
5
5
|
import yaml
|
|
6
6
|
|
|
@@ -67,6 +67,7 @@ CONFIGURATION_OPTIONS = {
|
|
|
67
67
|
"required": True,
|
|
68
68
|
"attribute": "_repository",
|
|
69
69
|
},
|
|
70
|
+
"ltsOnly": {"type": "bool", "required": False, "attribute": "_lts_only"},
|
|
70
71
|
"regex": {"type": "string", "attribute": "_regex"},
|
|
71
72
|
},
|
|
72
73
|
},
|
|
@@ -92,6 +93,7 @@ CONFIGURATION_OPTIONS = {
|
|
|
92
93
|
"target": {"type": "string", "attribute": "_target"},
|
|
93
94
|
"targetFile": {"type": "string", "attribute": "_target_file"},
|
|
94
95
|
"yamlPath": {"type": "string", "attribute": "_yaml_path"},
|
|
96
|
+
"jsonPath": {"type": "string", "attribute": "_json_path"},
|
|
95
97
|
"valuePattern": {"type": "string", "attribute": "_value_pattern"},
|
|
96
98
|
},
|
|
97
99
|
},
|
|
@@ -105,6 +107,8 @@ class LennyBotSourceConfig:
|
|
|
105
107
|
self._type = None
|
|
106
108
|
self._repository = None
|
|
107
109
|
self._regex = None
|
|
110
|
+
self._source_url = None
|
|
111
|
+
self._lts_only = None
|
|
108
112
|
|
|
109
113
|
@property
|
|
110
114
|
def type(self) -> str:
|
|
@@ -118,6 +122,18 @@ class LennyBotSourceConfig:
|
|
|
118
122
|
def regex(self) -> str:
|
|
119
123
|
return str(self._regex)
|
|
120
124
|
|
|
125
|
+
@property
|
|
126
|
+
def source_url(self) -> str:
|
|
127
|
+
return str(self._source_url)
|
|
128
|
+
|
|
129
|
+
@property
|
|
130
|
+
def lts_only(self) -> bool:
|
|
131
|
+
return bool(self._lts_only)
|
|
132
|
+
|
|
133
|
+
@lts_only.setter
|
|
134
|
+
def lts_only(self, value: bool) -> None:
|
|
135
|
+
self._lts_only = value
|
|
136
|
+
|
|
121
137
|
|
|
122
138
|
class LennyBotCheckConfig:
|
|
123
139
|
def __init__(self) -> None:
|
lennybot/lennybot.py
CHANGED
|
@@ -47,7 +47,7 @@ class LennyBot:
|
|
|
47
47
|
pickle.dump(plan, file_ptr)
|
|
48
48
|
|
|
49
49
|
def ci_setup(self):
|
|
50
|
-
self._log.debug(
|
|
50
|
+
self._log.debug("Setup CI")
|
|
51
51
|
now = datetime.now().strftime("%Y%m%d%H%M%S")
|
|
52
52
|
self._branch_name = f"{self._config.github_pr.branch_prefix}"
|
|
53
53
|
if not self._branch_name.endswith("-"):
|
|
@@ -58,14 +58,14 @@ class LennyBot:
|
|
|
58
58
|
if result != 0:
|
|
59
59
|
self._log.error("Unexpected return code from git config")
|
|
60
60
|
self._repo = Repo("./", odbt=GitDB) # type: ignore
|
|
61
|
-
self._log.debug(
|
|
61
|
+
self._log.debug("Initialized repository")
|
|
62
62
|
head = self._repo.create_head(self._branch_name)
|
|
63
|
-
self._log.debug(
|
|
63
|
+
self._log.debug("Created Head")
|
|
64
64
|
head.checkout()
|
|
65
65
|
self._log.info(f"Working branch is {self._branch_name}")
|
|
66
66
|
|
|
67
67
|
def ci_finalize(self, plan: LennyBotPlan, result):
|
|
68
|
-
self._log.debug(
|
|
68
|
+
self._log.debug("Finalize CI")
|
|
69
69
|
if self._repo is None:
|
|
70
70
|
raise Exception("Repository is non, ci_setup was not called")
|
|
71
71
|
if not self._repo.index.diff(None) and not self._repo.untracked_files:
|
lennybot/model/plan.py
CHANGED
lennybot/service/apply.py
CHANGED
lennybot/service/plan.py
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
from typing import List
|
|
3
3
|
|
|
4
|
-
from ..check import create_check
|
|
5
|
-
|
|
6
4
|
from ..actions import IAction, create_action
|
|
5
|
+
from ..check import create_check
|
|
7
6
|
from ..config import LennyBotAppConfig, LennyBotConfig
|
|
8
7
|
from ..helper import semver_2_vc
|
|
9
8
|
from ..model import LennyBotPlan, LennyBotState
|
|
@@ -2,6 +2,7 @@ from ...config import LennyBotSourceConfig
|
|
|
2
2
|
from .isource import ISource
|
|
3
3
|
from .source_github import GithubSource
|
|
4
4
|
from .source_github_query import GithubQuerySource
|
|
5
|
+
from .source_nodejs import NodeJSVersionSource
|
|
5
6
|
|
|
6
7
|
|
|
7
8
|
def create_source(name, config: LennyBotSourceConfig, github) -> ISource:
|
|
@@ -10,4 +11,6 @@ def create_source(name, config: LennyBotSourceConfig, github) -> ISource:
|
|
|
10
11
|
return GithubSource(name, config, github)
|
|
11
12
|
if source_type == "github-query":
|
|
12
13
|
return GithubQuerySource(name, config, github)
|
|
14
|
+
if source_type == "nodejs-version":
|
|
15
|
+
return NodeJSVersionSource(name, config)
|
|
13
16
|
raise Exception(f"Unknown Source Type: {source_type}")
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
from typing import Any
|
|
2
|
+
|
|
3
|
+
import requests
|
|
4
|
+
|
|
5
|
+
from ...config import LennyBotSourceConfig
|
|
6
|
+
from .isource import ISource
|
|
7
|
+
|
|
8
|
+
NODEJS_ORG_VERSIONS_URL = "https://nodejs.org/dist/index.json"
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class NodeJSVersionNotFoundException(Exception):
|
|
12
|
+
def __init__(self, data: Any, *args: object) -> None:
|
|
13
|
+
super().__init__(*args)
|
|
14
|
+
self._data = data
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class NodeJSFormatException(Exception):
|
|
18
|
+
def __init__(self, *args: object) -> None:
|
|
19
|
+
super().__init__(*args)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class NodeJSVersionSource(ISource):
|
|
23
|
+
def __init__(self, name, config: LennyBotSourceConfig) -> None:
|
|
24
|
+
self._name = name
|
|
25
|
+
self._lts_only = config.lts_only
|
|
26
|
+
self._source_url = config.source_url
|
|
27
|
+
|
|
28
|
+
@property
|
|
29
|
+
def application(self) -> str:
|
|
30
|
+
return self._name
|
|
31
|
+
|
|
32
|
+
def latest_version(self) -> str:
|
|
33
|
+
headers = {"user-agent": "lennybot/0.0.1"}
|
|
34
|
+
response = requests.get(NODEJS_ORG_VERSIONS_URL, headers=headers)
|
|
35
|
+
response.raise_for_status()
|
|
36
|
+
|
|
37
|
+
releases = response.json()
|
|
38
|
+
sorted(releases, key=lambda x: x["version"])
|
|
39
|
+
for release in releases:
|
|
40
|
+
if not self._lts_only:
|
|
41
|
+
return self._extract_semver_version(release)
|
|
42
|
+
if release["lts"]:
|
|
43
|
+
return self._extract_semver_version(release)
|
|
44
|
+
|
|
45
|
+
raise NodeJSVersionNotFoundException(releases)
|
|
46
|
+
|
|
47
|
+
def _extract_semver_version(self, release) -> str:
|
|
48
|
+
if "version" not in release.keys():
|
|
49
|
+
raise NodeJSFormatException("Missing version field in release")
|
|
50
|
+
version = release["version"]
|
|
51
|
+
|
|
52
|
+
if not version.startswith("v"):
|
|
53
|
+
raise NodeJSFormatException("Invalid version format")
|
|
54
|
+
|
|
55
|
+
version = version.replace("v", "")
|
|
56
|
+
|
|
57
|
+
return version
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.0.32
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
lennybot/__init__.py,sha256=X5rwD93YiHnGhTfYKMx1r160P-wZAf2zVwYnPCP_YCg,2700
|
|
2
|
+
lennybot/__main__.py,sha256=iPpiz09xKqtAjrhONS99OYp6R2dQ6Anbhw1qPIN8ELo,80
|
|
3
|
+
lennybot/lennybot.py,sha256=oCVbCYqHOHuYq-ecN_p_0sWuBro0h0xyQ9oWBLctRNw,3786
|
|
4
|
+
lennybot/actions/__init__.py,sha256=3nR2DlivXdylqdTsccL9yvkHKqo0FO5JyczGvvKTXWI,1249
|
|
5
|
+
lennybot/actions/download_resources.py,sha256=uEpde1tz2IRjpN01CCZRPYVLcF9NaTjenpKF2ZBOMws,1768
|
|
6
|
+
lennybot/actions/iaction.py,sha256=KR2IkxSNYQc_bKsiKuJjxPr5VTj6dUfB7P1V_uA4yVI,428
|
|
7
|
+
lennybot/actions/remove_checksums.py,sha256=3GMo_6vDdeBYTG5AYlYHB0iEiqa9tMD4PfIOxOXZ3cE,1797
|
|
8
|
+
lennybot/actions/update_dockerfile.py,sha256=zkQEmKaIWpECmIwb27moonLJ_7Jr-BBnc6LMrGWo6Rk,1699
|
|
9
|
+
lennybot/actions/update_image_tag.py,sha256=1XQ40Ls47qDNDair2qyuRWtRYzSNV5tkHGC_yPKY40E,1689
|
|
10
|
+
lennybot/actions/update_json.py,sha256=vnfHC3gNo0-g0H7ssU8h69_Uqk_zB3o4GxO8ZAM8hJs,1697
|
|
11
|
+
lennybot/actions/update_yaml.py,sha256=o7qywAVvDgLcBCYCL4MirmYKduELNemkil7TLxon-BY,1919
|
|
12
|
+
lennybot/check/__init__.py,sha256=-lyJziRPmxBd7_OWBFwlzmp9x56CVryC_GkRPFuNYGY,485
|
|
13
|
+
lennybot/check/docker_image_available.py,sha256=ynrJkFoTTmvOjdNsAWMUpVqWuGygWb0tb2HAC2GWHro,8416
|
|
14
|
+
lennybot/check/icheck.py,sha256=sCMy1y_rrjVNrKh4vAiHH2QpiZIaUWaF06qkGnyC-N8,500
|
|
15
|
+
lennybot/config/__init__.py,sha256=L85iDCHQJ1zH6U3s8XJuY3bzpj_r8ZOLm_djv84pG-U,119
|
|
16
|
+
lennybot/config/config.py,sha256=WlT2eGY3-1aSIWHtWzZwnmF0JbaJN0VOCwITLqIhTik,12237
|
|
17
|
+
lennybot/helper/__init__.py,sha256=u_-EsBGjsXi5qXxEtFlMsRkh2ocxH17w3RfPH2j2QWU,221
|
|
18
|
+
lennybot/model/__init__.py,sha256=e_P6FXQooilrRoSKFdewkEUWL8x6k_45lH97yxL1rks,64
|
|
19
|
+
lennybot/model/plan.py,sha256=yCJt4Kr1bVFFXZQyK55iDoxhjiqhORRDX4kPLe8dKbw,1091
|
|
20
|
+
lennybot/model/state.py,sha256=UK9ALA3O5tGYQW5WCxQpybHeXrrwrQMgtvoZ4W_N9ok,1453
|
|
21
|
+
lennybot/service/__init__.py,sha256=jU103QJj6LHYY6-R7wYEdu1oiwRT0FfwLG4wgZYbMAo,96
|
|
22
|
+
lennybot/service/apply.py,sha256=8XdbyU4oMBobaPlrplGiyS6wPJoeqQsPmQsICqYM0N0,671
|
|
23
|
+
lennybot/service/github.py,sha256=6BHQiu30aRVKPe6Rc6O2ZWMPAvZTRW7rJZw_f9AhGLE,2973
|
|
24
|
+
lennybot/service/plan.py,sha256=rzEKoT9q4DMS9ic6ECS6xAhaSQNrEXKF_Ui373LSfYI,3434
|
|
25
|
+
lennybot/service/source/__init__.py,sha256=h7idvlw1BfeyBawAEDslnfgjIFHLhDWjcVKBJ9E13IY,639
|
|
26
|
+
lennybot/service/source/isource.py,sha256=s7T95siVMyKvCX2Ta4O7Jarc5BFAoYWfN74ocyLQiRM,253
|
|
27
|
+
lennybot/service/source/source_github.py,sha256=MMkg0bJZMWOTv6pr3tf5iLg7HnSe7lSc3iXWtrR8lXo,1056
|
|
28
|
+
lennybot/service/source/source_github_query.py,sha256=Dn764TBPw6PABhNa_A1JIGCfLoBhcvmScEBHHmCbEbI,1072
|
|
29
|
+
lennybot/service/source/source_nodejs.py,sha256=-N86ymk4LjtgBEI42SOe0WGCQvB4I8r9rhGtY0gmPnw,1711
|
|
30
|
+
lennybot-1.0.32.data/data/generic/README.md,sha256=80AiUnPW9CnHB3Iwa8qGggGQl2XXUe5tVNtAny-_1nk,9831
|
|
31
|
+
lennybot-1.0.32.data/data/generic/requirements.txt,sha256=ehp2P57fAPHl3tX8r5t3vyyPmW6tflMIKBBB0vKpvws,55
|
|
32
|
+
lennybot-1.0.32.data/data/generic/version.txt,sha256=lJlaFE-y4dFjsYr6jbTGb5uzUQ_dp_LO5e9G4R2TeMk,6
|
|
33
|
+
lennybot-1.0.32.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
34
|
+
lennybot-1.0.32.dist-info/METADATA,sha256=BtdWYvsMqcwag1DmyROAcKzV_tyf-Atih4VreGbQiys,11017
|
|
35
|
+
lennybot-1.0.32.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
|
36
|
+
lennybot-1.0.32.dist-info/entry_points.txt,sha256=TOjzBcHTJaiBU2arbNIMVr7_clYPAYjBZf5WqiZ8Uhw,43
|
|
37
|
+
lennybot-1.0.32.dist-info/top_level.txt,sha256=Hrq9FY_KliVyEMH7LEA9rhCumLFTpKOHdSaZqzfHxhw,9
|
|
38
|
+
lennybot-1.0.32.dist-info/RECORD,,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.0.31
|
lennybot-1.0.31.dist-info/RECORD
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
lennybot/__init__.py,sha256=xlswzbdsh3hj2f3UxHKUW7sZhQkS_7ONEtUIV9QJEy8,2696
|
|
2
|
-
lennybot/__main__.py,sha256=iPpiz09xKqtAjrhONS99OYp6R2dQ6Anbhw1qPIN8ELo,80
|
|
3
|
-
lennybot/lennybot.py,sha256=6Sm1cvzDkopeqtNEf1RsB-i9CttB94oj4UneZEm3oD4,3790
|
|
4
|
-
lennybot/actions/__init__.py,sha256=3nR2DlivXdylqdTsccL9yvkHKqo0FO5JyczGvvKTXWI,1249
|
|
5
|
-
lennybot/actions/download_resources.py,sha256=AuZoMdqxdl0VngHBMT6zc5phBnuaWjjGIwJyIBGod6w,1767
|
|
6
|
-
lennybot/actions/iaction.py,sha256=KR2IkxSNYQc_bKsiKuJjxPr5VTj6dUfB7P1V_uA4yVI,428
|
|
7
|
-
lennybot/actions/remove_checksums.py,sha256=3GMo_6vDdeBYTG5AYlYHB0iEiqa9tMD4PfIOxOXZ3cE,1797
|
|
8
|
-
lennybot/actions/update_dockerfile.py,sha256=zkQEmKaIWpECmIwb27moonLJ_7Jr-BBnc6LMrGWo6Rk,1699
|
|
9
|
-
lennybot/actions/update_image_tag.py,sha256=1XQ40Ls47qDNDair2qyuRWtRYzSNV5tkHGC_yPKY40E,1689
|
|
10
|
-
lennybot/actions/update_json.py,sha256=_aRO7fxxFjck5I9Z_j4pPDvGDjMtCS_yjqn9G_sbcqc,1740
|
|
11
|
-
lennybot/actions/update_yaml.py,sha256=o7qywAVvDgLcBCYCL4MirmYKduELNemkil7TLxon-BY,1919
|
|
12
|
-
lennybot/check/__init__.py,sha256=BurwXJzk8CQcAiEZh7BeHum2N0WbRCTpZbeE2ZbhdaI,486
|
|
13
|
-
lennybot/check/docker_image_available.py,sha256=Op2-n6U3Fkk0UOOaz3Koo21lqdErmItD-S01RBNLqV8,8397
|
|
14
|
-
lennybot/check/icheck.py,sha256=sCMy1y_rrjVNrKh4vAiHH2QpiZIaUWaF06qkGnyC-N8,500
|
|
15
|
-
lennybot/config/__init__.py,sha256=L85iDCHQJ1zH6U3s8XJuY3bzpj_r8ZOLm_djv84pG-U,119
|
|
16
|
-
lennybot/config/config.py,sha256=hrFDP5NM59BPH60vFmYiQxgvrDmpka3v8i0VoazbYBY,11741
|
|
17
|
-
lennybot/helper/__init__.py,sha256=u_-EsBGjsXi5qXxEtFlMsRkh2ocxH17w3RfPH2j2QWU,221
|
|
18
|
-
lennybot/model/__init__.py,sha256=e_P6FXQooilrRoSKFdewkEUWL8x6k_45lH97yxL1rks,64
|
|
19
|
-
lennybot/model/plan.py,sha256=KwITeVucCSxjM_SyetyUtGSw8hCXfZqO4yrY-330ba4,1096
|
|
20
|
-
lennybot/model/state.py,sha256=UK9ALA3O5tGYQW5WCxQpybHeXrrwrQMgtvoZ4W_N9ok,1453
|
|
21
|
-
lennybot/service/__init__.py,sha256=jU103QJj6LHYY6-R7wYEdu1oiwRT0FfwLG4wgZYbMAo,96
|
|
22
|
-
lennybot/service/apply.py,sha256=P-Nkp5zsGRIEt7vkYkNJ_QuBgoN463XvABd5mRUDM0o,695
|
|
23
|
-
lennybot/service/github.py,sha256=6BHQiu30aRVKPe6Rc6O2ZWMPAvZTRW7rJZw_f9AhGLE,2973
|
|
24
|
-
lennybot/service/plan.py,sha256=GclYDy3bqdEsS_KDWUgDF4125uTUuOSDJh2sUdQS6Z8,3435
|
|
25
|
-
lennybot/service/source/__init__.py,sha256=MX1dINBfsTIv7TDVbX-qbqiMsZN8XM6I4lhudcPnYlM,503
|
|
26
|
-
lennybot/service/source/isource.py,sha256=s7T95siVMyKvCX2Ta4O7Jarc5BFAoYWfN74ocyLQiRM,253
|
|
27
|
-
lennybot/service/source/source_github.py,sha256=z3xV4nH-opDagCGTgCKDjfeGHqbd4kdpmCvk0LCm04w,1073
|
|
28
|
-
lennybot/service/source/source_github_query.py,sha256=Dn764TBPw6PABhNa_A1JIGCfLoBhcvmScEBHHmCbEbI,1072
|
|
29
|
-
lennybot-1.0.31.data/data/generic/README.md,sha256=80AiUnPW9CnHB3Iwa8qGggGQl2XXUe5tVNtAny-_1nk,9831
|
|
30
|
-
lennybot-1.0.31.data/data/generic/requirements.txt,sha256=ehp2P57fAPHl3tX8r5t3vyyPmW6tflMIKBBB0vKpvws,55
|
|
31
|
-
lennybot-1.0.31.data/data/generic/version.txt,sha256=VmLTmBbOULW3noulizLqu_B8fqxN0ySSfEW-8f3y1Sk,6
|
|
32
|
-
lennybot-1.0.31.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
33
|
-
lennybot-1.0.31.dist-info/METADATA,sha256=_g63wg36lPVDPBn0doLjDH2nsojkzt67YHIum9cZFmw,11017
|
|
34
|
-
lennybot-1.0.31.dist-info/WHEEL,sha256=UvcQYKBHoFqaQd6LKyqHw9fxEolWLQnlzP0h_LgJAfI,91
|
|
35
|
-
lennybot-1.0.31.dist-info/entry_points.txt,sha256=TOjzBcHTJaiBU2arbNIMVr7_clYPAYjBZf5WqiZ8Uhw,43
|
|
36
|
-
lennybot-1.0.31.dist-info/top_level.txt,sha256=Hrq9FY_KliVyEMH7LEA9rhCumLFTpKOHdSaZqzfHxhw,9
|
|
37
|
-
lennybot-1.0.31.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|