sequence-base 0.4.3__tar.gz → 0.4.4__tar.gz
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.
- {sequence_base-0.4.3 → sequence_base-0.4.4}/PKG-INFO +1 -1
- {sequence_base-0.4.3 → sequence_base-0.4.4}/pyproject.toml +1 -1
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/__init__.py +2 -2
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/contract/policy.py +2 -2
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/obs/log.py +6 -2
- sequence_base-0.4.4/sequence_base/obs/rid.py +64 -0
- sequence_base-0.4.3/sequence_base/obs/rid.py +0 -27
- {sequence_base-0.4.3 → sequence_base-0.4.4}/.gitignore +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/README.md +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/auth.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/codec/__init__.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/codec/image.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/constants/__init__.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/constants/headers.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/constants/version.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/contract/__init__.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/contract/accounts.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/contract/act.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/contract/benchmarks.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/contract/connect.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/contract/deployments.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/contract/errors.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/contract/eval.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/contract/flags.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/contract/io.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/contract/templates.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/contract/volumes.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/contract/wire.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/errors/__init__.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/errors/transport.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/obs/__init__.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/presets/__init__.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/presets/robot_arm.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schema_export.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/ActRequest.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/ActResponse.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/ActionChunk.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/ActionContract.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/ActionStep.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/AdapterTransform.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/AddLocal.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/Autoscaler.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/BenchmarkConditionSpec.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/BenchmarkRegisterRequest.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/BenchmarkSpec.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/BenchmarkStatusResponse.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/BootstrapResponse.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/Camera.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/ClampInfo.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/CodeBundle.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/Concurrency.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/Conditions.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/ConnectRequest.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/ConnectResponse.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/DeploymentAccepted.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/DeploymentPolicy.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/DeploymentRequest.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/DeploymentStatusResponse.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/Embodiment.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/ErrorBody.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/ErrorCodes.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/Estimate.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/EvalDryRunResponse.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/EvalReport.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/EvalRequest.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/EvalResponse.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/ImageFrame.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/ImageSpec.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/ImageStepAddLocal.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/ImageStepApt.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/ImageStepEnv.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/ImageStepRun.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/ImageStepTemplateFiles.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/ImageStepUvPip.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/InferParam.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/Lease.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/LossyTransform.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/MetricAgg.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/Observation.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/ObservationContract.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/PolicyRegistration.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/PolicySpec.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/Proprioception.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/RenderSpec.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/Resources.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/RolloutResult.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/SecretCreateRequest.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/SecretInfo.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/SecretRef.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/SeqFlags.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/Step.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/SuiteAgg.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/TaskAgg.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/TemplateFiles.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/Timeouts.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/UploadTarget.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/Variant.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/VolumeAttach.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/VolumeFile.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/VolumeInfo.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/VolumeMount.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/VolumeRef.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/VolumeUploadRequest.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/VolumeUploadResponse.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/WarmingError.json +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/telemetry/__init__.py +0 -0
- {sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/telemetry/events.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: sequence-base
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.4
|
|
4
4
|
Summary: Shared foundation for the Sequences platform — wire contract, correlation, error taxonomy, constants. Used by the robot SDK, gateway, and container harness.
|
|
5
5
|
Project-URL: Changelog, https://generalsequences.com/docs/changelog/
|
|
6
6
|
Requires-Python: >=3.10
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "sequence-base"
|
|
3
|
-
version = "0.4.
|
|
3
|
+
version = "0.4.4"
|
|
4
4
|
description = "Shared foundation for the Sequences platform — wire contract, correlation, error taxonomy, constants. Used by the robot SDK, gateway, and container harness."
|
|
5
5
|
requires-python = ">=3.10"
|
|
6
6
|
dependencies = ["pydantic>=2.0"]
|
|
@@ -105,7 +105,7 @@ from sequence_base.constants.version import CONTRACT_VERSION
|
|
|
105
105
|
|
|
106
106
|
|
|
107
107
|
from sequence_base.obs.log import Timer, enabled, log
|
|
108
|
-
from sequence_base.obs.rid import HEADER, clean, new_rid
|
|
108
|
+
from sequence_base.obs.rid import HEADER, clean, clean_text, new_rid, unescape_text
|
|
109
109
|
|
|
110
110
|
|
|
111
111
|
from sequence_base.errors.transport import (
|
|
@@ -152,7 +152,7 @@ __all__ = [
|
|
|
152
152
|
|
|
153
153
|
"ErrorCode", "ErrorBody", "WarmingError", "ERRORS", "ErrorSpec", "code_for_status", "CONTRACT_VERSION",
|
|
154
154
|
|
|
155
|
-
"HEADER", "new_rid", "clean", "log", "Timer", "enabled",
|
|
155
|
+
"HEADER", "new_rid", "clean", "clean_text", "unescape_text", "log", "Timer", "enabled",
|
|
156
156
|
|
|
157
157
|
"TransportUnavailable", "TransportWarming", "TransportRejected", "TransportOverloaded",
|
|
158
158
|
|
|
@@ -279,8 +279,8 @@ MAX_WEIGHTS_PARTS = 8
|
|
|
279
279
|
|
|
280
280
|
def check_weights_uri(v: str, what: str = "weights") -> str:
|
|
281
281
|
"""A weights origin the build can provision: an official template://, an hf:// repo or an uploaded vol://
|
|
282
|
-
volume.
|
|
283
|
-
|
|
282
|
+
volume. Weights from a storage bucket or a URL were removed in contract 0.5.0, after a release that warned for 7
|
|
283
|
+
days: their files are uploaded once as a volume."""
|
|
284
284
|
|
|
285
285
|
if v.startswith("template://"):
|
|
286
286
|
from sequence_base.contract.templates import parse_template
|
|
@@ -9,7 +9,11 @@ import os
|
|
|
9
9
|
import sys
|
|
10
10
|
import time
|
|
11
11
|
|
|
12
|
-
from sequence_base.obs.rid import clean
|
|
12
|
+
from sequence_base.obs.rid import clean, clean_text
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
TEXT_FIELDS = frozenset({"error"})
|
|
13
17
|
|
|
14
18
|
|
|
15
19
|
def enabled() -> bool:
|
|
@@ -24,7 +28,7 @@ def log(ev: str, rid: str | None = None, **fields: object) -> None:
|
|
|
24
28
|
parts = [f"seq ev={clean(ev)}"]
|
|
25
29
|
if rid:
|
|
26
30
|
parts.append(f"rid={clean(rid)}")
|
|
27
|
-
parts.extend(f"{k}={clean(v)}" for k, v in fields.items() if v is not None)
|
|
31
|
+
parts.extend(f"{k}={clean_text(v) if k in TEXT_FIELDS else clean(v)}" for k, v in fields.items() if v is not None)
|
|
28
32
|
print(" ".join(parts), file=sys.stdout, flush=True)
|
|
29
33
|
|
|
30
34
|
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Correlation id — one value threads a call through sdk → gateway → worker, so "what happened to that
|
|
3
|
+
call" is one grep instead of three log stores and a stopwatch. {from general-sequences obs.py}
|
|
4
|
+
"""
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
import re
|
|
8
|
+
import uuid
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
HEADER = "X-Seq-Request-Id"
|
|
13
|
+
|
|
14
|
+
_UNSAFE = re.compile(r"\s+")
|
|
15
|
+
_BREAK = re.compile(r"\r\n|\r|\n")
|
|
16
|
+
_SPACE = re.compile(r"\s")
|
|
17
|
+
_ESCAPED = re.compile(r"\\(.)|_")
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
FIELD_MAX = 200
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
TEXT_MAX = 4000
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def new_rid() -> str:
|
|
27
|
+
"""Short (read off a terminal, quoted in bug reports) + random (gateway instances don't
|
|
28
|
+
coordinate, so it must not collide)."""
|
|
29
|
+
return "r-" + uuid.uuid4().hex[:8]
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def clean(v: object, limit: int = FIELD_MAX) -> str:
|
|
33
|
+
"""Collapse whitespace and cap length. A value with a space would split into two log fields and
|
|
34
|
+
let anything user-supplied forge keys into the line; 200 chars keeps a real error readable."""
|
|
35
|
+
s = _UNSAFE.sub("_", str(v))
|
|
36
|
+
return s if len(s) <= limit else s[:limit - 3] + "..."
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def clean_text(v: object, limit: int = TEXT_MAX) -> str:
|
|
40
|
+
"""A long text - an error with its traceback - as one log field that reads back as it was (unescape_text): a
|
|
41
|
+
backslash written `\\\\`, an underscore `\\_`, a line break `\\n`, every other whitespace character `_` (read
|
|
42
|
+
back as a space, so a traceback keeps its indentation), cut at `limit`. It holds no whitespace, so like clean() it
|
|
43
|
+
can neither split the line nor forge a field into it.
|
|
44
|
+
|
|
45
|
+
WHY escaped and not collapsed: clean() writes a traceback's line breaks and spaces both as `_`, and a reader that
|
|
46
|
+
turns `_` back into spaces breaks every name with one in it (infer_chunk); a traceback is read for those names."""
|
|
47
|
+
s = "\\n".join(_SPACE.sub("_", line.replace("\\", "\\\\").replace("_", "\\_")) for line in _BREAK.split(str(v)))
|
|
48
|
+
if len(s) <= limit:
|
|
49
|
+
return s
|
|
50
|
+
s = s[:limit - 3]
|
|
51
|
+
if (len(s) - len(s.rstrip("\\"))) % 2:
|
|
52
|
+
s = s[:-1]
|
|
53
|
+
return s + "..."
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def unescape_text(s: str) -> str:
|
|
57
|
+
"""clean_text's field as the text it was: `\\n` a line break, `\\\\` a backslash, `\\_` an underscore, `_` a
|
|
58
|
+
space; any other backslash as written. One pass, left to right."""
|
|
59
|
+
def one(m: re.Match) -> str:
|
|
60
|
+
if m.group(1) is None:
|
|
61
|
+
return " "
|
|
62
|
+
return {"n": "\n", "\\": "\\", "_": "_"}.get(m.group(1), m.group(0))
|
|
63
|
+
|
|
64
|
+
return _ESCAPED.sub(one, s)
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Correlation id — one value threads a call through sdk → gateway → worker, so "what happened to that
|
|
3
|
-
call" is one grep instead of three log stores and a stopwatch. {from general-sequences obs.py}
|
|
4
|
-
"""
|
|
5
|
-
from __future__ import annotations
|
|
6
|
-
|
|
7
|
-
import re
|
|
8
|
-
import uuid
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
HEADER = "X-Seq-Request-Id"
|
|
13
|
-
|
|
14
|
-
_UNSAFE = re.compile(r"\s+")
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
def new_rid() -> str:
|
|
18
|
-
"""Short (read off a terminal, quoted in bug reports) + random (gateway instances don't
|
|
19
|
-
coordinate, so it must not collide)."""
|
|
20
|
-
return "r-" + uuid.uuid4().hex[:8]
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
def clean(v: object) -> str:
|
|
24
|
-
"""Collapse whitespace and cap length. A value with a space would split into two log fields and
|
|
25
|
-
let anything user-supplied forge keys into the line; 200 chars keeps a real error readable."""
|
|
26
|
-
s = _UNSAFE.sub("_", str(v))
|
|
27
|
-
return s if len(s) <= 200 else s[:197] + "..."
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/BenchmarkConditionSpec.json
RENAMED
|
File without changes
|
{sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/BenchmarkRegisterRequest.json
RENAMED
|
File without changes
|
|
File without changes
|
{sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/BenchmarkStatusResponse.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/DeploymentStatusResponse.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sequence_base-0.4.3 → sequence_base-0.4.4}/sequence_base/schemas/ImageStepTemplateFiles.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|