fm-weck 1.1.1__py3-none-any.whl → 1.1.2__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.
- fm_weck/__init__.py +1 -1
- fm_weck/cli.py +12 -9
- fm_weck/config.py +36 -4
- fm_weck/engine.py +204 -128
- fm_weck/image_mgr.py +11 -3
- fm_weck/resources/Containerfile +3 -2
- fm_weck/resources/fm_tools/bubaak-split.yml +8 -1
- fm_weck/resources/fm_tools/cbmc.yml +12 -1
- fm_weck/resources/fm_tools/coastal.yml +8 -3
- fm_weck/resources/fm_tools/concurrentwitness2test.yml +8 -1
- fm_weck/resources/fm_tools/coveriteam-verifier-algo-selection.yml +11 -4
- fm_weck/resources/fm_tools/coveriteam-verifier-parallel-portfolio.yml +11 -4
- fm_weck/resources/fm_tools/cpa-witness2test.yml +4 -4
- fm_weck/resources/fm_tools/cpachecker.yml +3 -8
- fm_weck/resources/fm_tools/cpv.yml +18 -7
- fm_weck/resources/fm_tools/key.yml +69 -0
- fm_weck/resources/fm_tools/predatorhp.yml +17 -1
- fm_weck/resources/fm_tools/proton.yml +8 -1
- fm_weck/resources/fm_tools/schema.yml +60 -9
- fm_weck/resources/fm_tools/symbiotic-witch.yml +12 -1
- fm_weck/resources/fm_tools/symbiotic.yml +41 -1
- fm_weck/resources/fm_tools/testcov.yml +1 -1
- fm_weck/resources/fm_tools/witch.yml +8 -1
- fm_weck/resources/run_with_overlay.sh +5 -1
- fm_weck/serve.py +22 -21
- {fm_weck-1.1.1.dist-info → fm_weck-1.1.2.dist-info}/METADATA +3 -2
- {fm_weck-1.1.1.dist-info → fm_weck-1.1.2.dist-info}/RECORD +29 -28
- {fm_weck-1.1.1.dist-info → fm_weck-1.1.2.dist-info}/WHEEL +0 -0
- {fm_weck-1.1.1.dist-info → fm_weck-1.1.2.dist-info}/entry_points.txt +0 -0
fm_weck/serve.py
CHANGED
|
@@ -16,10 +16,11 @@ from typing import Optional, Tuple
|
|
|
16
16
|
from fm_tools import FmData
|
|
17
17
|
from fm_tools.benchexec_helper import DataModel
|
|
18
18
|
|
|
19
|
-
from
|
|
20
|
-
|
|
19
|
+
from .config import Config, parse_fm_data
|
|
21
20
|
from .engine import Engine
|
|
22
21
|
|
|
22
|
+
logger = logging.getLogger(__name__)
|
|
23
|
+
|
|
23
24
|
|
|
24
25
|
def check_cache_entry(shelve_space: Path, checksum: str, config: Config) -> bool:
|
|
25
26
|
checksum_file = config.get_checksum_db()
|
|
@@ -34,7 +35,7 @@ def check_cache_entry(shelve_space: Path, checksum: str, config: Config) -> bool
|
|
|
34
35
|
# we use utf-8 encoding to ensure consistency
|
|
35
36
|
return db[shelve_space.name] == checksum.encode("utf-8")
|
|
36
37
|
except dbm.error:
|
|
37
|
-
|
|
38
|
+
logger.debug("Checksum file does not exist")
|
|
38
39
|
return False
|
|
39
40
|
|
|
40
41
|
|
|
@@ -46,23 +47,23 @@ def update_checksum(shelve_space: Path, checksum: str, config: Config):
|
|
|
46
47
|
checksum_file = str(checksum_file.resolve())
|
|
47
48
|
|
|
48
49
|
with dbm.open(checksum_file, "c") as db:
|
|
49
|
-
|
|
50
|
-
|
|
50
|
+
logger.debug("Updating checksum for %s", shelve_space.name)
|
|
51
|
+
logger.debug("Checksum: %s", checksum)
|
|
51
52
|
# dbm only stores bytes, so we need to encode the checksum
|
|
52
53
|
# we use utf-8 encoding to ensure consistency
|
|
53
54
|
db[shelve_space.name] = checksum.encode("utf-8")
|
|
54
55
|
|
|
55
56
|
|
|
56
57
|
def setup_fm_tool(
|
|
57
|
-
|
|
58
|
+
fm_tool: Path, version: Optional[str], configuration: Config, skip_download: bool = False
|
|
58
59
|
) -> Tuple[FmData, Path]:
|
|
59
60
|
fm_data = parse_fm_data(fm_tool, version)
|
|
60
61
|
|
|
61
62
|
shelve_space = configuration.get_shelve_space_for(fm_data)
|
|
62
|
-
|
|
63
|
+
logger.debug("Using shelve space %s", shelve_space)
|
|
63
64
|
|
|
64
65
|
if shelve_space.exists() and shelve_space.is_dir():
|
|
65
|
-
|
|
66
|
+
logger.debug("Shelve space already exists, testing checksum")
|
|
66
67
|
checksum = fm_data.archive_location.checksum()
|
|
67
68
|
skip_download = check_cache_entry(shelve_space, checksum, configuration)
|
|
68
69
|
|
|
@@ -77,14 +78,14 @@ def setup_fm_tool(
|
|
|
77
78
|
|
|
78
79
|
|
|
79
80
|
def run_guided(
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
81
|
+
fm_tool: Path,
|
|
82
|
+
version: Optional[str],
|
|
83
|
+
configuration: Config,
|
|
84
|
+
prop: Optional[Path],
|
|
85
|
+
program_files: list[Path],
|
|
86
|
+
additional_args: list[str],
|
|
87
|
+
data_model: Optional[DataModel] = None,
|
|
88
|
+
skip_download: bool = False,
|
|
88
89
|
):
|
|
89
90
|
property_path = None
|
|
90
91
|
if prop is not None:
|
|
@@ -95,7 +96,7 @@ def run_guided(
|
|
|
95
96
|
property_path = configuration.get_shelve_path_for_property(source_property_path)
|
|
96
97
|
shutil.copyfile(source_property_path, property_path)
|
|
97
98
|
except KeyError:
|
|
98
|
-
|
|
99
|
+
logger.error("Unknown property %s", prop)
|
|
99
100
|
return 1
|
|
100
101
|
|
|
101
102
|
configuration.make_script_available()
|
|
@@ -116,18 +117,18 @@ def run_guided(
|
|
|
116
117
|
)
|
|
117
118
|
os.chdir(current_dir)
|
|
118
119
|
|
|
119
|
-
|
|
120
|
+
logger.debug("Assembled command from fm-tools: %s", command)
|
|
120
121
|
|
|
121
122
|
engine.run("/home/weck_cache/.scripts/run_with_overlay.sh", shelve_space.name, *command)
|
|
122
123
|
|
|
123
124
|
|
|
124
125
|
def run_manual(
|
|
125
|
-
|
|
126
|
+
fm_tool: Path, version: Optional[str], configuration: Config, command: list[str], skip_download: bool = False
|
|
126
127
|
):
|
|
127
128
|
fm_data, shelve_space = setup_fm_tool(fm_tool, version, configuration, skip_download)
|
|
128
129
|
engine = Engine.from_config(fm_data, configuration)
|
|
129
130
|
|
|
130
131
|
executable = fm_data.get_executable_path(shelve_space)
|
|
131
|
-
|
|
132
|
-
|
|
132
|
+
logger.debug("Using executable %s", executable)
|
|
133
|
+
logger.debug("Assembled command %s", [executable, *command])
|
|
133
134
|
engine.run(executable, *command)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: fm-weck
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.2
|
|
4
4
|
Author-email: Henrik Wachowitz <henrik.wachowitz@ifi.lmu.de>
|
|
5
5
|
Maintainer-email: Henrik Wachowitz <henrik.wachowitz@ifi.lmu.de>
|
|
6
6
|
Classifier: Development Status :: 4 - Beta
|
|
@@ -10,9 +10,10 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
10
10
|
Classifier: Programming Language :: Python :: 3.11
|
|
11
11
|
Classifier: Programming Language :: Python :: 3.12
|
|
12
12
|
Requires-Python: >=3.10
|
|
13
|
-
Requires-Dist: fm-tools>=0.
|
|
13
|
+
Requires-Dist: fm-tools>=0.3.3
|
|
14
14
|
Requires-Dist: pyyaml>=6.0
|
|
15
15
|
Requires-Dist: tomli>=2.0; python_version <= '3.10'
|
|
16
|
+
Requires-Dist: yaspin>=3.0
|
|
16
17
|
Description-Content-Type: text/markdown
|
|
17
18
|
|
|
18
19
|
<!--
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
fm_weck/__init__.py,sha256=
|
|
1
|
+
fm_weck/__init__.py,sha256=1E-Lg-govulF5LWnCDMllOTz1s69LYKB4s0zfiimigk,351
|
|
2
2
|
fm_weck/__main__.py,sha256=E7z4-9t6To3hbIPjRPu6iW17YCrtqpDSbFSpd9pX4NA,350
|
|
3
|
-
fm_weck/cli.py,sha256=
|
|
4
|
-
fm_weck/config.py,sha256=
|
|
5
|
-
fm_weck/engine.py,sha256=
|
|
6
|
-
fm_weck/image_mgr.py,sha256=
|
|
7
|
-
fm_weck/serve.py,sha256=
|
|
8
|
-
fm_weck/resources/Containerfile,sha256=
|
|
3
|
+
fm_weck/cli.py,sha256=eeL3GbYO6W5af47ZgIR0mKYug0OrFsJn0Md1aVLDITI,10582
|
|
4
|
+
fm_weck/config.py,sha256=6f4R-iWmWehHghuhoU-UyCpNotYFec_oDelJB4A15BQ,4861
|
|
5
|
+
fm_weck/engine.py,sha256=nstV_H_vhBbBUik95mUotcaPQLsRiTu92YgrWmKJgeM,10102
|
|
6
|
+
fm_weck/image_mgr.py,sha256=kZxcZaMiv5orWO7bLsN7xaQRXjof8uOGud7sb57ZvRo,1655
|
|
7
|
+
fm_weck/serve.py,sha256=DpeAbq1A2mV7uuKZnPOUF4hjbilxaLAJtnLiz_Q0Erw,4646
|
|
8
|
+
fm_weck/resources/Containerfile,sha256=MltxP1of9klsQFNR8WyngRTJrPwxQTF4C9ennRxVqSo,391
|
|
9
9
|
fm_weck/resources/__init__.py,sha256=ewuOXBraX5Tb8XkWE6xrv0cwrxG4r5Ckj5n_tRjeRf4,946
|
|
10
|
-
fm_weck/resources/run_with_overlay.sh,sha256=
|
|
10
|
+
fm_weck/resources/run_with_overlay.sh,sha256=IOonRSjdoNoMj0tcrdZvqO-x6WZldjpOetvssP6qbSM,872
|
|
11
11
|
fm_weck/resources/properties/coverage-branches.prp,sha256=Gl2r1cgBFoh4M2laa8dVGhteHkL04oiBRLzxz_hbkEU,56
|
|
12
12
|
fm_weck/resources/properties/coverage-branches.prp.license,sha256=KzWZF1bpljIbdvwfzfWoP4DLMq6W1jXNN6WXWF0fxY0,214
|
|
13
13
|
fm_weck/resources/properties/coverage-conditions.prp,sha256=tj307UJBhj-PZqRxjijeNb0foWe2hWIc8CQP54gIUao,57
|
|
@@ -34,21 +34,21 @@ fm_weck/resources/fm_tools/2ls.yml,sha256=NWAbq4tz5M_rvt5gn8gMQNVByKLDv_THyK1OMt
|
|
|
34
34
|
fm_weck/resources/fm_tools/aise.yml,sha256=ZJZuvQwkllQwzoVYoP33ImfkkyRQnClFbL2qdH55xWk,1246
|
|
35
35
|
fm_weck/resources/fm_tools/aprove.yml,sha256=QmwxiB_BC66wt0WIVsDkMCzlEv5Bt0YsYvkMSjVAMUo,1299
|
|
36
36
|
fm_weck/resources/fm_tools/brick.yml,sha256=VJ8TuL2iyIJxjmc-YQyOsrRR6JvNLFuaq4lr9kBV94I,1655
|
|
37
|
-
fm_weck/resources/fm_tools/bubaak-split.yml,sha256=
|
|
37
|
+
fm_weck/resources/fm_tools/bubaak-split.yml,sha256=bjM_mGdHwe0Krnru7Vuv9XEhFrEClZ_dj9ToGMzANvo,1313
|
|
38
38
|
fm_weck/resources/fm_tools/bubaak.yml,sha256=58_Unt_JfnnSltkxesKOPrI3CfsT6fP2gK8GZn13hl4,1725
|
|
39
|
-
fm_weck/resources/fm_tools/cbmc.yml,sha256=
|
|
39
|
+
fm_weck/resources/fm_tools/cbmc.yml,sha256=gT9BjVnIfLkQxhihwy-Bkf3zxiBZoaJhDQGsr1gAzP8,1625
|
|
40
40
|
fm_weck/resources/fm_tools/cetfuzz.yml,sha256=mzA4_W5zqw3RsI-uMa_fkNkIgDvdWHPmP1w8sanjBWk,1481
|
|
41
|
-
fm_weck/resources/fm_tools/coastal.yml,sha256=
|
|
42
|
-
fm_weck/resources/fm_tools/concurrentwitness2test.yml,sha256=
|
|
43
|
-
fm_weck/resources/fm_tools/coveriteam-verifier-algo-selection.yml,sha256=
|
|
44
|
-
fm_weck/resources/fm_tools/coveriteam-verifier-parallel-portfolio.yml,sha256=
|
|
41
|
+
fm_weck/resources/fm_tools/coastal.yml,sha256=h0eihf_EzqF04yaFhmcFn4OAMrkqMEOAr9EHioaxjUg,1271
|
|
42
|
+
fm_weck/resources/fm_tools/concurrentwitness2test.yml,sha256=sJ3hVgyOLH2Cid3MgxSVudVpaHY5z5Yq8GLi0nIU7RU,1276
|
|
43
|
+
fm_weck/resources/fm_tools/coveriteam-verifier-algo-selection.yml,sha256=4dNi6WhHF4Ugla5UmiB5nj58Ur7y5xfAjq7clZoWKPc,1978
|
|
44
|
+
fm_weck/resources/fm_tools/coveriteam-verifier-parallel-portfolio.yml,sha256=2iwa_8dwHznrwzXvJbQhfUWwwIMo2aPzMCRZP9WrRyo,1958
|
|
45
45
|
fm_weck/resources/fm_tools/coveritest.yml,sha256=LPLz32SSrHz6k6vaZtuuUdGutD1lV05erNbks3DQmCg,1617
|
|
46
46
|
fm_weck/resources/fm_tools/cpa-bam-bnb.yml,sha256=_XUF1uv2uWRXJ69TwECWszYqzJ5xtpQeFwO4aoPlcd0,1326
|
|
47
47
|
fm_weck/resources/fm_tools/cpa-bam-smg.yml,sha256=llGQnewPpFEqKPUy-UIYGraiBXPTdpjO9Ii5Ttt3-Ko,1370
|
|
48
48
|
fm_weck/resources/fm_tools/cpa-lockator.yml,sha256=-qmAmhViAA4MItZ5mnT-Fir1Ad--sA0viS4wH_Jj9dE,1353
|
|
49
|
-
fm_weck/resources/fm_tools/cpa-witness2test.yml,sha256=
|
|
50
|
-
fm_weck/resources/fm_tools/cpachecker.yml,sha256=
|
|
51
|
-
fm_weck/resources/fm_tools/cpv.yml,sha256=
|
|
49
|
+
fm_weck/resources/fm_tools/cpa-witness2test.yml,sha256=UQElPJmloFdXxY-naYeX6sOh-cIg-dM19d3TDbPGFDQ,2688
|
|
50
|
+
fm_weck/resources/fm_tools/cpachecker.yml,sha256=TL0zuuwGHP5CJQq3u5L6lWbJlK8xJ_5fjHo9U4WrluE,7184
|
|
51
|
+
fm_weck/resources/fm_tools/cpv.yml,sha256=c8vlC35qt8QcoewcCpy9KGCSenfyzS32pHlRmXb3JEg,1529
|
|
52
52
|
fm_weck/resources/fm_tools/crux.yml,sha256=JG3NI1DWIHDsIdl2Dli8B9GBFhBsWZA7ondMyqVQbEE,1068
|
|
53
53
|
fm_weck/resources/fm_tools/cseq.yml,sha256=l7399biboHfcxJpicQQKr4ZoJEhqerske1ylgbXXtZw,1441
|
|
54
54
|
fm_weck/resources/fm_tools/dartagnan.yml,sha256=6LViNgd06p_jYdaEUWhNEMZusE9tuKO17j__IpCmJwE,2940
|
|
@@ -78,6 +78,7 @@ fm_weck/resources/fm_tools/jayhorn.yml,sha256=0UVLqkMkAbHKUpFvEsWtibVzBHVg_Hk3px
|
|
|
78
78
|
fm_weck/resources/fm_tools/jbmc.yml,sha256=1S6SCndHl2RYYwfFBzaWetz3y3ChOpo3XDYKnynmY4E,1799
|
|
79
79
|
fm_weck/resources/fm_tools/jcwit.yml,sha256=zX9_vN3k1LrDrWfmd74yVQH3a0dDwXR8asRUvGY6E8U,882
|
|
80
80
|
fm_weck/resources/fm_tools/jdart.yml,sha256=KPZQTzpkMJYaqb1V6MPQRGa7cJMuj5Q-EaWw_YHWulU,1149
|
|
81
|
+
fm_weck/resources/fm_tools/key.yml,sha256=iC-fBi-PUdTqa9dGYp3YLPA61WVCMxMKAVO6T-Zp5_k,2154
|
|
81
82
|
fm_weck/resources/fm_tools/klee.yml,sha256=DKysTqhiWXmgrWkrI8KDnGCtz5_8e-74rUYwyp0xElw,1202
|
|
82
83
|
fm_weck/resources/fm_tools/kleef.yml,sha256=ZFQHwMqsDTPLVnkTpCqPtihgI5AOMpepKwMh4ny2ym4,1092
|
|
83
84
|
fm_weck/resources/fm_tools/korn.yml,sha256=ivoGYXZS9q_QdRwZWpwZuOStnZLd56iyP3-TrfPo8iw,1751
|
|
@@ -95,18 +96,18 @@ fm_weck/resources/fm_tools/owic.yml,sha256=iEwN7Gh1AX03rDAwq54gclJIm_cV3jbqArW73
|
|
|
95
96
|
fm_weck/resources/fm_tools/pesco.yml,sha256=Sn6VXt1BAizYQsI87joHZHJeu6w7qHI4oD5AnifwjAs,1899
|
|
96
97
|
fm_weck/resources/fm_tools/pichecker.yml,sha256=8go2GTLyXukkHrth6VEBSbH304CKovAogMotbKSyNpI,1303
|
|
97
98
|
fm_weck/resources/fm_tools/pinaka.yml,sha256=82oADOZpZ_cXn_n-h4u_NAct6CvRr9dNzqqNQjia4rk,1308
|
|
98
|
-
fm_weck/resources/fm_tools/predatorhp.yml,sha256
|
|
99
|
-
fm_weck/resources/fm_tools/proton.yml,sha256=
|
|
99
|
+
fm_weck/resources/fm_tools/predatorhp.yml,sha256=-b6a0kbIG9gqBi3LvpRz976VLc9a4QouWlVk-8dEDYE,2155
|
|
100
|
+
fm_weck/resources/fm_tools/proton.yml,sha256=tov4hwob9ztEoEcooYHLlgV4UdfzYss8aPK3miP05Pk,1115
|
|
100
101
|
fm_weck/resources/fm_tools/prtest.yml,sha256=lBoCUtznXC2CaL4TlBZxid0veSQ7N0L4PLTDBTET6sc,1336
|
|
101
102
|
fm_weck/resources/fm_tools/relay-sv.yml,sha256=XU6m1WwpLwFolP-cVt1Ia_n2biSspvRMsqX2LA6ZTyA,1033
|
|
102
103
|
fm_weck/resources/fm_tools/rizzer.yml,sha256=qRp9hM26LabMFNcMoABHOciaJHao7bBxrvdvHlJJl60,1243
|
|
103
|
-
fm_weck/resources/fm_tools/schema.yml,sha256=
|
|
104
|
+
fm_weck/resources/fm_tools/schema.yml,sha256=7fzmmqBbh-FAD2LffFCEThJh3fLBo6YAYEDYhf4_bto,20470
|
|
104
105
|
fm_weck/resources/fm_tools/spf.yml,sha256=DVWM2iCDg3I0Sft4pnuMfmA8XqbBLd0YGHzcyPy-IW4,1326
|
|
105
106
|
fm_weck/resources/fm_tools/sv-sanitizers.yml,sha256=XsNjhdXK61JZG2S0tve1ChDLGDEbOT_kU1_GamA3Rsc,956
|
|
106
107
|
fm_weck/resources/fm_tools/swat.yml,sha256=S_avjdEaYil90ATqAzsxHDFzOaMhKEj8yiE2Sa7SyEc,1286
|
|
107
|
-
fm_weck/resources/fm_tools/symbiotic-witch.yml,sha256
|
|
108
|
-
fm_weck/resources/fm_tools/symbiotic.yml,sha256=
|
|
109
|
-
fm_weck/resources/fm_tools/testcov.yml,sha256=
|
|
108
|
+
fm_weck/resources/fm_tools/symbiotic-witch.yml,sha256=-JeF8RmxGjDuLrnzR9YtDh4xU9xi129qGIQSNg-eZ9M,1755
|
|
109
|
+
fm_weck/resources/fm_tools/symbiotic.yml,sha256=GGIjnY4oCSr62708bkQ1Rty6wjq9MFCnp5_66YPImxU,4315
|
|
110
|
+
fm_weck/resources/fm_tools/testcov.yml,sha256=bP1gj2Acvwq0z9HpFa8VQCpLsYAzANOnD6s21ewxIB0,2100
|
|
110
111
|
fm_weck/resources/fm_tools/theta.yml,sha256=cXca1VdvXkwaYxlL-lherGCvi6XUjlwWSbZf_EH8xaE,1734
|
|
111
112
|
fm_weck/resources/fm_tools/tracerx-wp.yml,sha256=KHDTtMlO8qgkzkKTTqlXbf6flN-zc_HIZ9KBkVqbAUU,1038
|
|
112
113
|
fm_weck/resources/fm_tools/tracerx.yml,sha256=TlDLEAX_fvqd6RKfsoBRJrbcPrkiaSsWeDJ1F_yACGk,1554
|
|
@@ -121,9 +122,9 @@ fm_weck/resources/fm_tools/verifuzz.yml,sha256=cGB62ku9F_RLkBtJayFBvw-I4oNEf5K6q
|
|
|
121
122
|
fm_weck/resources/fm_tools/verioover.yml,sha256=g1IYUaoUVTUGCvw5LP8Vi3q5PyNMFcrc3HovDJrX7ns,1019
|
|
122
123
|
fm_weck/resources/fm_tools/wasp-c.yml,sha256=NWEb2vpIBu75kZJdEq0am8Mpi2HFu5nhDI1edAMjUzk,1238
|
|
123
124
|
fm_weck/resources/fm_tools/wit4java.yml,sha256=SukwwE46DsDmZouAwHhr_aaOjxIaeOrIS7o7P4eDWX0,1243
|
|
124
|
-
fm_weck/resources/fm_tools/witch.yml,sha256=
|
|
125
|
+
fm_weck/resources/fm_tools/witch.yml,sha256=5d5aYmkrlG78M-RLdDbdi6EJWOfD0CskWtJWGXtwEyI,1152
|
|
125
126
|
fm_weck/resources/fm_tools/witnesslint.yml,sha256=Y6A2TXPyjVxZ9Fhmyd7GOKY7x1_jXjshvmrIM4uW96A,3085
|
|
126
|
-
fm_weck-1.1.
|
|
127
|
-
fm_weck-1.1.
|
|
128
|
-
fm_weck-1.1.
|
|
129
|
-
fm_weck-1.1.
|
|
127
|
+
fm_weck-1.1.2.dist-info/METADATA,sha256=yR302Kub6tHGgbImtPQaOupb1zCRy2HTF5Nme-GH09I,2771
|
|
128
|
+
fm_weck-1.1.2.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
|
|
129
|
+
fm_weck-1.1.2.dist-info/entry_points.txt,sha256=toWpKCSY1u593MPnI_xW5gnwlnkerP4AvmPQ1s2nPgY,50
|
|
130
|
+
fm_weck-1.1.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|