pando-vcs 3.3.0__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.
- pando_vcs-3.3.0/.gitignore +5 -0
- pando_vcs-3.3.0/PKG-INFO +33 -0
- pando_vcs-3.3.0/README.md +17 -0
- pando_vcs-3.3.0/generate.sh +11 -0
- pando_vcs-3.3.0/pyproject.toml +24 -0
- pando_vcs-3.3.0/src/pando/__init__.py +5 -0
- pando_vcs-3.3.0/src/pando/_gen/__init__.py +0 -0
- pando_vcs-3.3.0/src/pando/_gen/pando_objects_pb2.py +48 -0
- pando_vcs-3.3.0/src/pando/_gen/pando_objects_pb2.pyi +75 -0
- pando_vcs-3.3.0/src/pando/_gen/pando_pb2.py +132 -0
- pando_vcs-3.3.0/src/pando/_gen/pando_pb2.pyi +326 -0
- pando_vcs-3.3.0/src/pando/_gen/pando_pb2_grpc.py +1230 -0
- pando_vcs-3.3.0/src/pando/client.py +138 -0
- pando_vcs-3.3.0/tests/test_client.py +43 -0
- pando_vcs-3.3.0/uv.lock +565 -0
pando_vcs-3.3.0/PKG-INFO
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: pando-vcs
|
|
3
|
+
Version: 3.3.0
|
|
4
|
+
Summary: Python client for Pando, source control for monorepos at agent scale
|
|
5
|
+
Project-URL: Homepage, https://kabirnarang39.github.io/pando/
|
|
6
|
+
Project-URL: Repository, https://github.com/kabirnarang39/pando
|
|
7
|
+
License-Expression: Apache-2.0
|
|
8
|
+
Keywords: grpc,monorepo,pando,source-control,version-control
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
10
|
+
Classifier: Topic :: Software Development :: Version Control
|
|
11
|
+
Requires-Python: >=3.10
|
|
12
|
+
Requires-Dist: blake3>=1.0
|
|
13
|
+
Requires-Dist: grpcio>=1.66
|
|
14
|
+
Requires-Dist: protobuf>=5.28
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
|
|
17
|
+
# pando (Python)
|
|
18
|
+
|
|
19
|
+
Python client for [Pando](https://github.com/kabirnarang39/pando): read files, list
|
|
20
|
+
directories, search, and inspect history at any revision without cloning.
|
|
21
|
+
|
|
22
|
+
```python
|
|
23
|
+
from pando import Client
|
|
24
|
+
|
|
25
|
+
repo = Client("http://127.0.0.1:7420", token=None)
|
|
26
|
+
print(repo.read_file("src/lib.rs").decode())
|
|
27
|
+
for cs in repo.log(path="src", limit=10):
|
|
28
|
+
print(cs.id[:12], cs.author, cs.summary)
|
|
29
|
+
print(repo.diff("main~1-id", "main")) # changeset ids or ref names
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Changeset contents are verified against their BLAKE3 ids (except changesets the server
|
|
33
|
+
redacted because of your read permissions, which are marked `redacted=True`).
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# pando (Python)
|
|
2
|
+
|
|
3
|
+
Python client for [Pando](https://github.com/kabirnarang39/pando): read files, list
|
|
4
|
+
directories, search, and inspect history at any revision without cloning.
|
|
5
|
+
|
|
6
|
+
```python
|
|
7
|
+
from pando import Client
|
|
8
|
+
|
|
9
|
+
repo = Client("http://127.0.0.1:7420", token=None)
|
|
10
|
+
print(repo.read_file("src/lib.rs").decode())
|
|
11
|
+
for cs in repo.log(path="src", limit=10):
|
|
12
|
+
print(cs.id[:12], cs.author, cs.summary)
|
|
13
|
+
print(repo.diff("main~1-id", "main")) # changeset ids or ref names
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Changeset contents are verified against their BLAKE3 ids (except changesets the server
|
|
17
|
+
redacted because of your read permissions, which are marked `redacted=True`).
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Regenerate gRPC/protobuf stubs from ../../crates/pando-proto/proto (run after protocol changes).
|
|
3
|
+
set -euo pipefail
|
|
4
|
+
cd "$(dirname "$0")"
|
|
5
|
+
OUT=src/pando/_gen
|
|
6
|
+
uv run --group dev python -m grpc_tools.protoc -I ../../crates/pando-proto/proto \
|
|
7
|
+
--python_out=$OUT --grpc_python_out=$OUT --pyi_out=$OUT \
|
|
8
|
+
pando.proto pando_objects.proto
|
|
9
|
+
# grpc_tools emits absolute imports; make them package-relative.
|
|
10
|
+
sed -i.bak 's/^import pando_pb2 as/from . import pando_pb2 as/' $OUT/pando_pb2_grpc.py && rm $OUT/*.bak
|
|
11
|
+
rm -f $OUT/pando_objects_pb2_grpc.py # message-only file, no services
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "pando-vcs"
|
|
3
|
+
version = "3.3.0"
|
|
4
|
+
description = "Python client for Pando, source control for monorepos at agent scale"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
license = "Apache-2.0"
|
|
7
|
+
requires-python = ">=3.10"
|
|
8
|
+
dependencies = ["grpcio>=1.66", "protobuf>=5.28", "blake3>=1.0"]
|
|
9
|
+
keywords = ["source-control", "version-control", "monorepo", "grpc", "pando"]
|
|
10
|
+
classifiers = ["Programming Language :: Python :: 3", "Topic :: Software Development :: Version Control"]
|
|
11
|
+
|
|
12
|
+
[project.urls]
|
|
13
|
+
Homepage = "https://kabirnarang39.github.io/pando/"
|
|
14
|
+
Repository = "https://github.com/kabirnarang39/pando"
|
|
15
|
+
|
|
16
|
+
[dependency-groups]
|
|
17
|
+
dev = ["pytest>=8", "grpcio-tools>=1.66"]
|
|
18
|
+
|
|
19
|
+
[build-system]
|
|
20
|
+
requires = ["hatchling"]
|
|
21
|
+
build-backend = "hatchling.build"
|
|
22
|
+
|
|
23
|
+
[tool.hatch.build.targets.wheel]
|
|
24
|
+
packages = ["src/pando"]
|
|
File without changes
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: pando_objects.proto
|
|
5
|
+
# Protobuf Python Version: 7.35.1
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
7,
|
|
15
|
+
35,
|
|
16
|
+
1,
|
|
17
|
+
'',
|
|
18
|
+
'pando_objects.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13pando_objects.proto\x12\x10pando.objects.v1\"K\n\tTreeEntry\x12\x0c\n\x04name\x18\x01 \x01(\t\x12$\n\x04mode\x18\x02 \x01(\x0e\x32\x16.pando.objects.v1.Mode\x12\n\n\x02id\x18\x03 \x01(\x0c\"4\n\x04Tree\x12,\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x1b.pando.objects.v1.TreeEntry\"N\n\nFileChange\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0c\n\x04\x62lob\x18\x02 \x01(\x0c\x12$\n\x04mode\x18\x03 \x01(\x0e\x32\x16.pando.objects.v1.Mode\"\x82\x01\n\tChangeset\x12\x0f\n\x07parents\x18\x01 \x03(\x0c\x12-\n\x07\x63hanges\x18\x02 \x03(\x0b\x32\x1c.pando.objects.v1.FileChange\x12\x0e\n\x06\x61uthor\x18\x03 \x01(\t\x12\x0f\n\x07message\x18\x04 \x01(\t\x12\x14\n\x0ctimestamp_ms\x18\x05 \x01(\x03\"#\n\x08\x43hunkRef\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x0b\n\x03len\x18\x02 \x01(\x04\"D\n\x08Manifest\x12\x0c\n\x04size\x18\x01 \x01(\x04\x12*\n\x06\x63hunks\x18\x02 \x03(\x0b\x32\x1a.pando.objects.v1.ChunkRef*0\n\x04Mode\x12\x08\n\x04\x46ILE\x10\x00\x12\x08\n\x04\x45XEC\x10\x01\x12\x0b\n\x07SYMLINK\x10\x02\x12\x07\n\x03\x44IR\x10\x03\x62\x06proto3')
|
|
28
|
+
|
|
29
|
+
_globals = globals()
|
|
30
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
31
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'pando_objects_pb2', _globals)
|
|
32
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
33
|
+
DESCRIPTOR._loaded_options = None
|
|
34
|
+
_globals['_MODE']._serialized_start=492
|
|
35
|
+
_globals['_MODE']._serialized_end=540
|
|
36
|
+
_globals['_TREEENTRY']._serialized_start=41
|
|
37
|
+
_globals['_TREEENTRY']._serialized_end=116
|
|
38
|
+
_globals['_TREE']._serialized_start=118
|
|
39
|
+
_globals['_TREE']._serialized_end=170
|
|
40
|
+
_globals['_FILECHANGE']._serialized_start=172
|
|
41
|
+
_globals['_FILECHANGE']._serialized_end=250
|
|
42
|
+
_globals['_CHANGESET']._serialized_start=253
|
|
43
|
+
_globals['_CHANGESET']._serialized_end=383
|
|
44
|
+
_globals['_CHUNKREF']._serialized_start=385
|
|
45
|
+
_globals['_CHUNKREF']._serialized_end=420
|
|
46
|
+
_globals['_MANIFEST']._serialized_start=422
|
|
47
|
+
_globals['_MANIFEST']._serialized_end=490
|
|
48
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
from google.protobuf.internal import containers as _containers
|
|
2
|
+
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
|
|
3
|
+
from google.protobuf import descriptor as _descriptor
|
|
4
|
+
from google.protobuf import message as _message
|
|
5
|
+
from collections.abc import Iterable as _Iterable, Mapping as _Mapping
|
|
6
|
+
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
|
|
7
|
+
|
|
8
|
+
DESCRIPTOR: _descriptor.FileDescriptor
|
|
9
|
+
|
|
10
|
+
class Mode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
11
|
+
__slots__ = ()
|
|
12
|
+
FILE: _ClassVar[Mode]
|
|
13
|
+
EXEC: _ClassVar[Mode]
|
|
14
|
+
SYMLINK: _ClassVar[Mode]
|
|
15
|
+
DIR: _ClassVar[Mode]
|
|
16
|
+
FILE: Mode
|
|
17
|
+
EXEC: Mode
|
|
18
|
+
SYMLINK: Mode
|
|
19
|
+
DIR: Mode
|
|
20
|
+
|
|
21
|
+
class TreeEntry(_message.Message):
|
|
22
|
+
__slots__ = ("name", "mode", "id")
|
|
23
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
24
|
+
MODE_FIELD_NUMBER: _ClassVar[int]
|
|
25
|
+
ID_FIELD_NUMBER: _ClassVar[int]
|
|
26
|
+
name: str
|
|
27
|
+
mode: Mode
|
|
28
|
+
id: bytes
|
|
29
|
+
def __init__(self, name: _Optional[str] = ..., mode: _Optional[_Union[Mode, str]] = ..., id: _Optional[bytes] = ...) -> None: ...
|
|
30
|
+
|
|
31
|
+
class Tree(_message.Message):
|
|
32
|
+
__slots__ = ("entries",)
|
|
33
|
+
ENTRIES_FIELD_NUMBER: _ClassVar[int]
|
|
34
|
+
entries: _containers.RepeatedCompositeFieldContainer[TreeEntry]
|
|
35
|
+
def __init__(self, entries: _Optional[_Iterable[_Union[TreeEntry, _Mapping]]] = ...) -> None: ...
|
|
36
|
+
|
|
37
|
+
class FileChange(_message.Message):
|
|
38
|
+
__slots__ = ("path", "blob", "mode")
|
|
39
|
+
PATH_FIELD_NUMBER: _ClassVar[int]
|
|
40
|
+
BLOB_FIELD_NUMBER: _ClassVar[int]
|
|
41
|
+
MODE_FIELD_NUMBER: _ClassVar[int]
|
|
42
|
+
path: str
|
|
43
|
+
blob: bytes
|
|
44
|
+
mode: Mode
|
|
45
|
+
def __init__(self, path: _Optional[str] = ..., blob: _Optional[bytes] = ..., mode: _Optional[_Union[Mode, str]] = ...) -> None: ...
|
|
46
|
+
|
|
47
|
+
class Changeset(_message.Message):
|
|
48
|
+
__slots__ = ("parents", "changes", "author", "message", "timestamp_ms")
|
|
49
|
+
PARENTS_FIELD_NUMBER: _ClassVar[int]
|
|
50
|
+
CHANGES_FIELD_NUMBER: _ClassVar[int]
|
|
51
|
+
AUTHOR_FIELD_NUMBER: _ClassVar[int]
|
|
52
|
+
MESSAGE_FIELD_NUMBER: _ClassVar[int]
|
|
53
|
+
TIMESTAMP_MS_FIELD_NUMBER: _ClassVar[int]
|
|
54
|
+
parents: _containers.RepeatedScalarFieldContainer[bytes]
|
|
55
|
+
changes: _containers.RepeatedCompositeFieldContainer[FileChange]
|
|
56
|
+
author: str
|
|
57
|
+
message: str
|
|
58
|
+
timestamp_ms: int
|
|
59
|
+
def __init__(self, parents: _Optional[_Iterable[bytes]] = ..., changes: _Optional[_Iterable[_Union[FileChange, _Mapping]]] = ..., author: _Optional[str] = ..., message: _Optional[str] = ..., timestamp_ms: _Optional[int] = ...) -> None: ...
|
|
60
|
+
|
|
61
|
+
class ChunkRef(_message.Message):
|
|
62
|
+
__slots__ = ("id", "len")
|
|
63
|
+
ID_FIELD_NUMBER: _ClassVar[int]
|
|
64
|
+
LEN_FIELD_NUMBER: _ClassVar[int]
|
|
65
|
+
id: bytes
|
|
66
|
+
len: int
|
|
67
|
+
def __init__(self, id: _Optional[bytes] = ..., len: _Optional[int] = ...) -> None: ...
|
|
68
|
+
|
|
69
|
+
class Manifest(_message.Message):
|
|
70
|
+
__slots__ = ("size", "chunks")
|
|
71
|
+
SIZE_FIELD_NUMBER: _ClassVar[int]
|
|
72
|
+
CHUNKS_FIELD_NUMBER: _ClassVar[int]
|
|
73
|
+
size: int
|
|
74
|
+
chunks: _containers.RepeatedCompositeFieldContainer[ChunkRef]
|
|
75
|
+
def __init__(self, size: _Optional[int] = ..., chunks: _Optional[_Iterable[_Union[ChunkRef, _Mapping]]] = ...) -> None: ...
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: pando.proto
|
|
5
|
+
# Protobuf Python Version: 7.35.1
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
7,
|
|
15
|
+
35,
|
|
16
|
+
1,
|
|
17
|
+
'',
|
|
18
|
+
'pando.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0bpando.proto\x12\x08pando.v1\"\x07\n\x05\x45mpty\"\x13\n\x05IdMsg\x12\n\n\x02id\x18\x01 \x01(\x0c\"\x15\n\x06IdList\x12\x0b\n\x03ids\x18\x01 \x03(\x0c\",\n\rObjectPayload\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x0f\n\x07payload\x18\x02 \x01(\x0c\"$\n\x12PutObjectsResponse\x12\x0e\n\x06stored\x18\x01 \x01(\r\"6\n\nFileChange\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0c\n\x04\x62lob\x18\x02 \x01(\x0c\x12\x0c\n\x04mode\x18\x03 \x01(\x05\"e\n\rChangesetInfo\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x11\n\troot_tree\x18\x02 \x01(\x0c\x12\x12\n\ngeneration\x18\x03 \x01(\x04\x12\x0f\n\x07\x65ncoded\x18\x04 \x01(\x0c\x12\x10\n\x08redacted\x18\x05 \x01(\x08\"\x87\x01\n\x16\x43reateChangesetRequest\x12\x0f\n\x07parents\x18\x01 \x03(\x0c\x12%\n\x07\x63hanges\x18\x02 \x03(\x0b\x32\x14.pando.v1.FileChange\x12\x0e\n\x06\x61uthor\x18\x03 \x01(\t\x12\x0f\n\x07message\x18\x04 \x01(\t\x12\x14\n\x0ctimestamp_ms\x18\x05 \x01(\x03\"\x1d\n\x0eResolveRequest\x12\x0b\n\x03rev\x18\x01 \x01(\t\"\x17\n\x07RefName\x12\x0c\n\x04name\x18\x01 \x01(\t\"&\n\x08RefValue\x12\x0e\n\x06\x65xists\x18\x01 \x01(\x08\x12\n\n\x02id\x18\x02 \x01(\x0c\"P\n\nCasRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x15\n\rexpect_exists\x18\x02 \x01(\x08\x12\x10\n\x08\x65xpected\x18\x03 \x01(\x0c\x12\x0b\n\x03new\x18\x04 \x01(\x0c\"\x1e\n\x0b\x43\x61sResponse\x12\x0f\n\x07swapped\x18\x01 \x01(\x08\"$\n\x08RefEntry\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\x0c\"+\n\x07RefList\x12 \n\x04refs\x18\x01 \x03(\x0b\x32\x12.pando.v1.RefEntry\"-\n\x0bLandRequest\x12\x0b\n\x03ref\x18\x01 \x01(\t\x12\x11\n\tchangeset\x18\x02 \x01(\x0c\"A\n\x0cLandResponse\x12\x0e\n\x06landed\x18\x01 \x01(\x0c\x12\x0f\n\x07rebased\x18\x02 \x01(\x08\x12\x10\n\x08\x61ttempts\x18\x03 \x01(\r\"6\n\nLogRequest\x12\x0b\n\x03rev\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\r\n\x05limit\x18\x03 \x01(\r\")\n\x0c\x42lameRequest\x12\x0b\n\x03rev\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\",\n\tBlameLine\x12\x11\n\tchangeset\x18\x01 \x01(\x0c\x12\x0c\n\x04text\x18\x02 \x01(\t\"3\n\rBlameResponse\x12\"\n\x05lines\x18\x01 \x03(\x0b\x32\x13.pando.v1.BlameLine\"\'\n\x0b\x44iffRequest\x12\x0c\n\x04\x66rom\x18\x01 \x01(\t\x12\n\n\x02to\x18\x02 \x01(\t\"5\n\x0c\x44iffResponse\x12%\n\x07\x63hanges\x18\x01 \x03(\x0b\x32\x14.pando.v1.FileChange\"(\n\x10MergeBaseRequest\x12\t\n\x01\x61\x18\x01 \x01(\t\x12\t\n\x01\x62\x18\x02 \x01(\t\".\n\x11MergeBaseResponse\x12\r\n\x05\x66ound\x18\x01 \x01(\x08\x12\n\n\x02id\x18\x02 \x01(\x0c\"*\n\rBrowseRequest\x12\x0b\n\x03rev\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"2\n\x08\x44irEntry\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04mode\x18\x02 \x01(\x05\x12\n\n\x02id\x18\x03 \x01(\x0c\"6\n\x0fListDirResponse\x12#\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x12.pando.v1.DirEntry\"=\n\x10ReadFileResponse\x12\x0f\n\x07\x63ontent\x18\x01 \x01(\x0c\x12\x0c\n\x04mode\x18\x02 \x01(\x05\x12\n\n\x02id\x18\x03 \x01(\x0c\":\n\x0b\x46indRequest\x12\x0b\n\x03rev\x18\x01 \x01(\t\x12\x0f\n\x07pattern\x18\x02 \x01(\t\x12\r\n\x05limit\x18\x03 \x01(\r\"0\n\x0c\x46indResponse\x12\r\n\x05paths\x18\x01 \x03(\t\x12\x11\n\ttruncated\x18\x02 \x01(\x08\"-\n\x0f\x43heckoutRequest\x12\x0b\n\x03rev\x18\x01 \x01(\t\x12\r\n\x05paths\x18\x02 \x03(\t\"S\n\rCheckoutPiece\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0c\n\x04mode\x18\x02 \x01(\x05\x12\n\n\x02id\x18\x03 \x01(\x0c\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12\x0c\n\x04last\x18\x05 \x01(\x08\"M\n\x0eWhoAmIResponse\x12\x11\n\tprincipal\x18\x01 \x01(\t\x12\x11\n\tfull_read\x18\x02 \x01(\x08\x12\x15\n\rread_prefixes\x18\x03 \x03(\t\"\x1b\n\x0bLockRequest\x12\x0c\n\x04path\x18\x01 \x01(\t\",\n\rUnlockRequest\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\"\"\n\x10ListLocksRequest\x12\x0e\n\x06prefix\x18\x01 \x01(\t\"=\n\x08LockInfo\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\r\n\x05owner\x18\x02 \x01(\t\x12\x14\n\x0clocked_at_ms\x18\x03 \x01(\x03\"-\n\x08LockList\x12!\n\x05locks\x18\x01 \x03(\x0b\x32\x12.pando.v1.LockInfo2\xac\x01\n\x07Objects\x12\x32\n\x03Get\x12\x10.pando.v1.IdList\x1a\x17.pando.v1.ObjectPayload0\x01\x12>\n\x03Put\x12\x17.pando.v1.ObjectPayload\x1a\x1c.pando.v1.PutObjectsResponse(\x01\x12-\n\x07Missing\x12\x10.pando.v1.IdList\x1a\x10.pando.v1.IdList2\x8b\x01\n\nChangesets\x12\x43\n\x06\x43reate\x12 .pando.v1.CreateChangesetRequest\x1a\x17.pando.v1.ChangesetInfo\x12\x38\n\x03Get\x12\x18.pando.v1.ResolveRequest\x1a\x17.pando.v1.ChangesetInfo2\x9f\x01\n\x04Refs\x12,\n\x03Get\x12\x11.pando.v1.RefName\x1a\x12.pando.v1.RefValue\x12=\n\x0e\x43ompareAndSwap\x12\x14.pando.v1.CasRequest\x1a\x15.pando.v1.CasResponse\x12*\n\x04List\x12\x0f.pando.v1.Empty\x1a\x11.pando.v1.RefList2=\n\x04Land\x12\x35\n\x04Land\x12\x15.pando.v1.LandRequest\x1a\x16.pando.v1.LandResponse2{\n\x07History\x12\x36\n\x03Log\x12\x14.pando.v1.LogRequest\x1a\x17.pando.v1.ChangesetInfo0\x01\x12\x38\n\x05\x42lame\x12\x16.pando.v1.BlameRequest\x1a\x17.pando.v1.BlameResponse2=\n\x04\x44iff\x12\x35\n\x04\x44iff\x12\x15.pando.v1.DiffRequest\x1a\x16.pando.v1.DiffResponse2Q\n\tMergeBase\x12\x44\n\tMergeBase\x12\x1a.pando.v1.MergeBaseRequest\x1a\x1b.pando.v1.MergeBaseResponse2\x81\x02\n\x06\x42rowse\x12=\n\x07ListDir\x12\x17.pando.v1.BrowseRequest\x1a\x19.pando.v1.ListDirResponse\x12?\n\x08ReadFile\x12\x17.pando.v1.BrowseRequest\x1a\x1a.pando.v1.ReadFileResponse\x12\x35\n\x04\x46ind\x12\x15.pando.v1.FindRequest\x1a\x16.pando.v1.FindResponse\x12@\n\x08\x43heckout\x12\x19.pando.v1.CheckoutRequest\x1a\x17.pando.v1.CheckoutPiece0\x01\x32=\n\x06\x41\x63\x63\x65ss\x12\x33\n\x06WhoAmI\x12\x0f.pando.v1.Empty\x1a\x18.pando.v1.WhoAmIResponse2\xa6\x01\n\x05Locks\x12\x31\n\x04Lock\x12\x15.pando.v1.LockRequest\x1a\x12.pando.v1.LockInfo\x12\x32\n\x06Unlock\x12\x17.pando.v1.UnlockRequest\x1a\x0f.pando.v1.Empty\x12\x36\n\x04List\x12\x1a.pando.v1.ListLocksRequest\x1a\x12.pando.v1.LockListb\x06proto3')
|
|
28
|
+
|
|
29
|
+
_globals = globals()
|
|
30
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
31
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'pando_pb2', _globals)
|
|
32
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
33
|
+
DESCRIPTOR._loaded_options = None
|
|
34
|
+
_globals['_EMPTY']._serialized_start=25
|
|
35
|
+
_globals['_EMPTY']._serialized_end=32
|
|
36
|
+
_globals['_IDMSG']._serialized_start=34
|
|
37
|
+
_globals['_IDMSG']._serialized_end=53
|
|
38
|
+
_globals['_IDLIST']._serialized_start=55
|
|
39
|
+
_globals['_IDLIST']._serialized_end=76
|
|
40
|
+
_globals['_OBJECTPAYLOAD']._serialized_start=78
|
|
41
|
+
_globals['_OBJECTPAYLOAD']._serialized_end=122
|
|
42
|
+
_globals['_PUTOBJECTSRESPONSE']._serialized_start=124
|
|
43
|
+
_globals['_PUTOBJECTSRESPONSE']._serialized_end=160
|
|
44
|
+
_globals['_FILECHANGE']._serialized_start=162
|
|
45
|
+
_globals['_FILECHANGE']._serialized_end=216
|
|
46
|
+
_globals['_CHANGESETINFO']._serialized_start=218
|
|
47
|
+
_globals['_CHANGESETINFO']._serialized_end=319
|
|
48
|
+
_globals['_CREATECHANGESETREQUEST']._serialized_start=322
|
|
49
|
+
_globals['_CREATECHANGESETREQUEST']._serialized_end=457
|
|
50
|
+
_globals['_RESOLVEREQUEST']._serialized_start=459
|
|
51
|
+
_globals['_RESOLVEREQUEST']._serialized_end=488
|
|
52
|
+
_globals['_REFNAME']._serialized_start=490
|
|
53
|
+
_globals['_REFNAME']._serialized_end=513
|
|
54
|
+
_globals['_REFVALUE']._serialized_start=515
|
|
55
|
+
_globals['_REFVALUE']._serialized_end=553
|
|
56
|
+
_globals['_CASREQUEST']._serialized_start=555
|
|
57
|
+
_globals['_CASREQUEST']._serialized_end=635
|
|
58
|
+
_globals['_CASRESPONSE']._serialized_start=637
|
|
59
|
+
_globals['_CASRESPONSE']._serialized_end=667
|
|
60
|
+
_globals['_REFENTRY']._serialized_start=669
|
|
61
|
+
_globals['_REFENTRY']._serialized_end=705
|
|
62
|
+
_globals['_REFLIST']._serialized_start=707
|
|
63
|
+
_globals['_REFLIST']._serialized_end=750
|
|
64
|
+
_globals['_LANDREQUEST']._serialized_start=752
|
|
65
|
+
_globals['_LANDREQUEST']._serialized_end=797
|
|
66
|
+
_globals['_LANDRESPONSE']._serialized_start=799
|
|
67
|
+
_globals['_LANDRESPONSE']._serialized_end=864
|
|
68
|
+
_globals['_LOGREQUEST']._serialized_start=866
|
|
69
|
+
_globals['_LOGREQUEST']._serialized_end=920
|
|
70
|
+
_globals['_BLAMEREQUEST']._serialized_start=922
|
|
71
|
+
_globals['_BLAMEREQUEST']._serialized_end=963
|
|
72
|
+
_globals['_BLAMELINE']._serialized_start=965
|
|
73
|
+
_globals['_BLAMELINE']._serialized_end=1009
|
|
74
|
+
_globals['_BLAMERESPONSE']._serialized_start=1011
|
|
75
|
+
_globals['_BLAMERESPONSE']._serialized_end=1062
|
|
76
|
+
_globals['_DIFFREQUEST']._serialized_start=1064
|
|
77
|
+
_globals['_DIFFREQUEST']._serialized_end=1103
|
|
78
|
+
_globals['_DIFFRESPONSE']._serialized_start=1105
|
|
79
|
+
_globals['_DIFFRESPONSE']._serialized_end=1158
|
|
80
|
+
_globals['_MERGEBASEREQUEST']._serialized_start=1160
|
|
81
|
+
_globals['_MERGEBASEREQUEST']._serialized_end=1200
|
|
82
|
+
_globals['_MERGEBASERESPONSE']._serialized_start=1202
|
|
83
|
+
_globals['_MERGEBASERESPONSE']._serialized_end=1248
|
|
84
|
+
_globals['_BROWSEREQUEST']._serialized_start=1250
|
|
85
|
+
_globals['_BROWSEREQUEST']._serialized_end=1292
|
|
86
|
+
_globals['_DIRENTRY']._serialized_start=1294
|
|
87
|
+
_globals['_DIRENTRY']._serialized_end=1344
|
|
88
|
+
_globals['_LISTDIRRESPONSE']._serialized_start=1346
|
|
89
|
+
_globals['_LISTDIRRESPONSE']._serialized_end=1400
|
|
90
|
+
_globals['_READFILERESPONSE']._serialized_start=1402
|
|
91
|
+
_globals['_READFILERESPONSE']._serialized_end=1463
|
|
92
|
+
_globals['_FINDREQUEST']._serialized_start=1465
|
|
93
|
+
_globals['_FINDREQUEST']._serialized_end=1523
|
|
94
|
+
_globals['_FINDRESPONSE']._serialized_start=1525
|
|
95
|
+
_globals['_FINDRESPONSE']._serialized_end=1573
|
|
96
|
+
_globals['_CHECKOUTREQUEST']._serialized_start=1575
|
|
97
|
+
_globals['_CHECKOUTREQUEST']._serialized_end=1620
|
|
98
|
+
_globals['_CHECKOUTPIECE']._serialized_start=1622
|
|
99
|
+
_globals['_CHECKOUTPIECE']._serialized_end=1705
|
|
100
|
+
_globals['_WHOAMIRESPONSE']._serialized_start=1707
|
|
101
|
+
_globals['_WHOAMIRESPONSE']._serialized_end=1784
|
|
102
|
+
_globals['_LOCKREQUEST']._serialized_start=1786
|
|
103
|
+
_globals['_LOCKREQUEST']._serialized_end=1813
|
|
104
|
+
_globals['_UNLOCKREQUEST']._serialized_start=1815
|
|
105
|
+
_globals['_UNLOCKREQUEST']._serialized_end=1859
|
|
106
|
+
_globals['_LISTLOCKSREQUEST']._serialized_start=1861
|
|
107
|
+
_globals['_LISTLOCKSREQUEST']._serialized_end=1895
|
|
108
|
+
_globals['_LOCKINFO']._serialized_start=1897
|
|
109
|
+
_globals['_LOCKINFO']._serialized_end=1958
|
|
110
|
+
_globals['_LOCKLIST']._serialized_start=1960
|
|
111
|
+
_globals['_LOCKLIST']._serialized_end=2005
|
|
112
|
+
_globals['_OBJECTS']._serialized_start=2008
|
|
113
|
+
_globals['_OBJECTS']._serialized_end=2180
|
|
114
|
+
_globals['_CHANGESETS']._serialized_start=2183
|
|
115
|
+
_globals['_CHANGESETS']._serialized_end=2322
|
|
116
|
+
_globals['_REFS']._serialized_start=2325
|
|
117
|
+
_globals['_REFS']._serialized_end=2484
|
|
118
|
+
_globals['_LAND']._serialized_start=2486
|
|
119
|
+
_globals['_LAND']._serialized_end=2547
|
|
120
|
+
_globals['_HISTORY']._serialized_start=2549
|
|
121
|
+
_globals['_HISTORY']._serialized_end=2672
|
|
122
|
+
_globals['_DIFF']._serialized_start=2674
|
|
123
|
+
_globals['_DIFF']._serialized_end=2735
|
|
124
|
+
_globals['_MERGEBASE']._serialized_start=2737
|
|
125
|
+
_globals['_MERGEBASE']._serialized_end=2818
|
|
126
|
+
_globals['_BROWSE']._serialized_start=2821
|
|
127
|
+
_globals['_BROWSE']._serialized_end=3078
|
|
128
|
+
_globals['_ACCESS']._serialized_start=3080
|
|
129
|
+
_globals['_ACCESS']._serialized_end=3141
|
|
130
|
+
_globals['_LOCKS']._serialized_start=3144
|
|
131
|
+
_globals['_LOCKS']._serialized_end=3310
|
|
132
|
+
# @@protoc_insertion_point(module_scope)
|