vbase-api 0.1.1__tar.gz → 0.1.3__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.
@@ -0,0 +1 @@
1
+ include requirements.in
@@ -0,0 +1,84 @@
1
+ Metadata-Version: 2.4
2
+ Name: vbase-api
3
+ Version: 0.1.3
4
+ Summary: vBase REST API Python Client
5
+ Author-email: vBase <tech@vbase.com>
6
+ License-Expression: Apache-2.0
7
+ Project-URL: Homepage, https://github.com/validityBase/vbase-api-py
8
+ Project-URL: Documentation, https://docs.vbase.com/
9
+ Keywords: vbase,stamping,web3,blockchain,validation
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Operating System :: OS Independent
12
+ Requires-Python: >=3.8
13
+ Description-Content-Type: text/markdown
14
+ License-File: LICENSE.txt
15
+ License-File: NOTICE.txt
16
+ Requires-Dist: requests<3,>=2.7.0
17
+ Dynamic: license-file
18
+
19
+ # vbase-api-py
20
+
21
+ vBase REST API Python Client
22
+
23
+ See [documentation](https://docs.vbase.com/) and the [Swagger UI](https://app.vbase.com/swagger/) for more details.
24
+
25
+ ---
26
+
27
+ ## License
28
+
29
+ This project is licensed under the Apache 2.0 License - see the [LICENSE.txt](LICENSE.txt) file for details.
30
+
31
+ ## Introduction
32
+
33
+ vBase creates a global auditable record of when data was created, by whom, and how it has changed (collectively, “data provenance”). Data producers can prove the provenance of their data to any external party, increasing its value and marketability. Data consumers can ensure the integrity of historical data and any derivative calculations. The result is trustworthy information that can be put into production quickly without expensive and time-consuming trials.
34
+
35
+ Verifiable provenance establishes the credibility of data and calculations. For example, if you wish to prove investment skill, the recipient must be sure they are receiving a complete and accurate record of your timestamped trades or portfolios.
36
+
37
+ vBase resolves several expensive market failures common to financial data. Some of the areas that benefit include:
38
+ - Provably point-in-time datasets
39
+ - Auditable investing track records
40
+ - Sound backtests, historical simulations, and time-series modeling
41
+
42
+ vBase services do not require access to the data itself, assuring privacy. They also do not rely on centralized intermediaries, eliminating the technical, operating, and business risks of a trusted party controlling your data and its validation. vBase ensures data security and interoperability that is unattainable with legacy centralized systems. It does so by storing digital fingerprints of data, metadata, and revisions on secure public blockchains.
43
+
44
+ With vBase, creating and consuming provably correct data is as easy as pressing a button.
45
+
46
+ ## References
47
+ - [vBase Website](https://vbase.com)
48
+ - [vBase Documentation](https://docs.vbase.com/)
49
+ - [vBase Swagger UI](https://app.vbase.com/swagger/)
50
+ - [vBase API Python Client Issues](https://github.com/validityBase/vbase-api-py/issues)
51
+
52
+ ## Installation
53
+
54
+ Install the package using pip:
55
+
56
+ ```bash
57
+ pip install vbase-api
58
+ ```
59
+
60
+ ## Quick Start
61
+
62
+ ### Getting Your API Key
63
+
64
+ To use the vBase API, you'll need an API key (Bearer token). You can obtain this from your [vBase account settings](https://app.vbase.com/profile#account_settings).
65
+
66
+ ### Basic Usage
67
+
68
+ ```python
69
+ from vbase_api import VBaseAPIClient
70
+
71
+ # Initialize the client
72
+ client = VBaseAPIClient(api_key="your-bearer-token")
73
+
74
+ # Stamp some data
75
+ stamp = client.create_stamp(data="Important data to be stamped")
76
+ print(f"Stamped with CID: {stamp.commitment_receipt.object_cid}")
77
+
78
+ # List your collections
79
+ collections = client.get_collections()
80
+ for collection in collections:
81
+ print(f"{collection.name}: {collection.cid}")
82
+ ```
83
+
84
+
@@ -0,0 +1,66 @@
1
+ # vbase-api-py
2
+
3
+ vBase REST API Python Client
4
+
5
+ See [documentation](https://docs.vbase.com/) and the [Swagger UI](https://app.vbase.com/swagger/) for more details.
6
+
7
+ ---
8
+
9
+ ## License
10
+
11
+ This project is licensed under the Apache 2.0 License - see the [LICENSE.txt](LICENSE.txt) file for details.
12
+
13
+ ## Introduction
14
+
15
+ vBase creates a global auditable record of when data was created, by whom, and how it has changed (collectively, “data provenance”). Data producers can prove the provenance of their data to any external party, increasing its value and marketability. Data consumers can ensure the integrity of historical data and any derivative calculations. The result is trustworthy information that can be put into production quickly without expensive and time-consuming trials.
16
+
17
+ Verifiable provenance establishes the credibility of data and calculations. For example, if you wish to prove investment skill, the recipient must be sure they are receiving a complete and accurate record of your timestamped trades or portfolios.
18
+
19
+ vBase resolves several expensive market failures common to financial data. Some of the areas that benefit include:
20
+ - Provably point-in-time datasets
21
+ - Auditable investing track records
22
+ - Sound backtests, historical simulations, and time-series modeling
23
+
24
+ vBase services do not require access to the data itself, assuring privacy. They also do not rely on centralized intermediaries, eliminating the technical, operating, and business risks of a trusted party controlling your data and its validation. vBase ensures data security and interoperability that is unattainable with legacy centralized systems. It does so by storing digital fingerprints of data, metadata, and revisions on secure public blockchains.
25
+
26
+ With vBase, creating and consuming provably correct data is as easy as pressing a button.
27
+
28
+ ## References
29
+ - [vBase Website](https://vbase.com)
30
+ - [vBase Documentation](https://docs.vbase.com/)
31
+ - [vBase Swagger UI](https://app.vbase.com/swagger/)
32
+ - [vBase API Python Client Issues](https://github.com/validityBase/vbase-api-py/issues)
33
+
34
+ ## Installation
35
+
36
+ Install the package using pip:
37
+
38
+ ```bash
39
+ pip install vbase-api
40
+ ```
41
+
42
+ ## Quick Start
43
+
44
+ ### Getting Your API Key
45
+
46
+ To use the vBase API, you'll need an API key (Bearer token). You can obtain this from your [vBase account settings](https://app.vbase.com/profile#account_settings).
47
+
48
+ ### Basic Usage
49
+
50
+ ```python
51
+ from vbase_api import VBaseAPIClient
52
+
53
+ # Initialize the client
54
+ client = VBaseAPIClient(api_key="your-bearer-token")
55
+
56
+ # Stamp some data
57
+ stamp = client.create_stamp(data="Important data to be stamped")
58
+ print(f"Stamped with CID: {stamp.commitment_receipt.object_cid}")
59
+
60
+ # List your collections
61
+ collections = client.get_collections()
62
+ for collection in collections:
63
+ print(f"{collection.name}: {collection.cid}")
64
+ ```
65
+
66
+
@@ -1,36 +1,35 @@
1
- [build-system]
2
- requires = ["setuptools >= 77.0.3"]
3
- build-backend = "setuptools.build_meta"
4
-
5
- [project]
6
- name = "vbase-api" # This is the name on PyPI
7
- version = "0.1.1" # Must match __version__ above for now
8
- description = "vBase REST API Python Client"
9
- readme = "README.md"
10
- requires-python = ">=3.8"
11
- dependencies = [
12
- "requests>=2.7.0"
13
- ]
14
- license = "Apache-2.0"
15
- authors = [
16
- { name = "vBase", email = "tech@vbase.com" }
17
- ]
18
-
19
- keywords = ["vbase", "stamping", "web3", "blockchain", "validation"]
20
- classifiers = [
21
- "Programming Language :: Python :: 3",
22
- "Operating System :: OS Independent",
23
- ]
24
-
25
- [project.urls]
26
- Homepage = "https://github.com/validityBase/vbase-api-py"
27
- Documentation = "https://docs.vbase.com/"
28
-
29
- # This tells setuptools where to find the code
30
- [tool.setuptools]
31
- package-dir = {"" = "src"}
32
-
33
- [tool.setuptools.packages.find]
34
-
35
- where = ["src"]
36
-
1
+ [build-system]
2
+ requires = ["setuptools >= 77.0.3"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "vbase-api" # This is the name on PyPI
7
+ dynamic = ["version", "dependencies"]
8
+ description = "vBase REST API Python Client"
9
+ readme = "README.md"
10
+ requires-python = ">=3.8"
11
+ license = "Apache-2.0"
12
+ authors = [
13
+ { name = "vBase", email = "tech@vbase.com" }
14
+ ]
15
+
16
+ keywords = ["vbase", "stamping", "web3", "blockchain", "validation"]
17
+ classifiers = [
18
+ "Programming Language :: Python :: 3",
19
+ "Operating System :: OS Independent",
20
+ ]
21
+
22
+ [project.urls]
23
+ Homepage = "https://github.com/validityBase/vbase-api-py"
24
+ Documentation = "https://docs.vbase.com/"
25
+
26
+ # This tells setuptools where to find the code
27
+ [tool.setuptools]
28
+ package-dir = {"" = "src"}
29
+
30
+ [tool.setuptools.packages.find]
31
+ where = ["src"]
32
+
33
+ [tool.setuptools.dynamic]
34
+ version = {attr = "vbase_api._version.__version__"}
35
+ dependencies = {file = ["requirements.in"]}
@@ -0,0 +1 @@
1
+ requests>=2.7.0,<3
@@ -1,5 +1,6 @@
1
1
  # src/simplemath/__init__.py
2
2
 
3
+ from ._version import __version__
3
4
  from .vbase_api_client import VBaseAPIError, VBaseAPIClient
4
5
  from .vbase_api_models import (
5
6
  Collection,
@@ -10,6 +11,7 @@ from .vbase_api_models import (
10
11
  )
11
12
 
12
13
  __all__ = [
14
+ "__version__",
13
15
  "VBaseAPIClient",
14
16
  "VBaseAPIError",
15
17
  "Collection",
@@ -0,0 +1 @@
1
+ __version__ = "0.1.3"
@@ -13,6 +13,7 @@ import requests
13
13
  from pathlib import Path
14
14
  from typing import Dict, List, Optional, Any, BinaryIO, Union
15
15
 
16
+ from ._version import __version__
16
17
  from .vbase_api_models import (
17
18
  Collection,
18
19
  StampCreatedResponse,
@@ -48,9 +49,11 @@ class VBaseAPIClient:
48
49
  timeout: Request timeout in seconds (default: 30)
49
50
 
50
51
  Example:
51
- >>> client = VBaseAPIClient(api_key="your-bearer-token")
52
- >>> collections = client.list_collections()
53
- >>> stamp = client.create_stamp(data={"hello": "world"})
52
+ .. code-block:: python
53
+
54
+ client = VBaseAPIClient(api_key="your-bearer-token")
55
+ collections = client.list_collections()
56
+ stamp = client.create_stamp(data={"hello": "world"})
54
57
  """
55
58
 
56
59
  DEFAULT_BASE_URL = "https://app.vbase.com"
@@ -69,6 +72,7 @@ class VBaseAPIClient:
69
72
  self.session = requests.Session()
70
73
  self.session.headers.update({
71
74
  'Authorization': f'Bearer {api_key}',
75
+ 'User-Agent': f'vBase API Python Client v{__version__}',
72
76
  })
73
77
 
74
78
  def _get_url(self, endpoint: str) -> str:
@@ -144,9 +148,11 @@ class VBaseAPIClient:
144
148
  VBaseAPIError: If the request fails
145
149
 
146
150
  Example:
147
- >>> collections = client.get_collections(is_pinned=True)
148
- >>> for collection in collections:
149
- ... print(f"{collection.name}: {collection.cid}")
151
+ .. code-block:: python
152
+
153
+ collections = client.get_collections(is_pinned=True)
154
+ for collection in collections:
155
+ print(f"{collection.name}: {collection.cid}")
150
156
  """
151
157
  params = {}
152
158
  if user_address is not None:
@@ -185,13 +191,15 @@ class VBaseAPIClient:
185
191
  VBaseAPIError: If the request fails or collection already exists
186
192
 
187
193
  Example:
188
- >>> collection = client.create_collection(
189
- ... name="My Collection",
190
- ... cid="0x1234567890abcdef...",
191
- ... description="A sample collection",
192
- ... is_pinned=True
193
- ... )
194
- >>> print(f"Created: {collection.name}")
194
+ .. code-block:: python
195
+
196
+ collection = client.create_collection(
197
+ name="My Collection",
198
+ cid="0x1234567890abcdef...",
199
+ description="A sample collection",
200
+ is_pinned=True
201
+ )
202
+ print(f"Created: {collection.name}")
195
203
  """
196
204
  data = {
197
205
  'name': name,
@@ -250,17 +258,19 @@ class VBaseAPIClient:
250
258
  ValueError: If invalid parameters are provided
251
259
 
252
260
  Example:
253
- >>> # Stamp inline data
254
- >>> stamp = client.create_stamp(data={"hello": "world"})
255
- >>> print(f"Object CID: {stamp.commitment_receipt.object_cid}")
256
-
257
- >>> # Stamp a file
258
- >>> stamp = client.create_stamp(file="document.pdf", collection_name="Documents")
259
- >>> if stamp.file_object:
260
- ... print(f"File: {stamp.file_object.file_name}")
261
-
262
- >>> # Stamp an existing CID
263
- >>> stamp = client.create_stamp(data_cid="Qm...")
261
+ .. code-block:: python
262
+
263
+ # Stamp inline data
264
+ stamp = client.create_stamp(data={"hello": "world"})
265
+ print(f"Object CID: {stamp.commitment_receipt.object_cid}")
266
+
267
+ # Stamp a file
268
+ stamp = client.create_stamp(file="document.pdf", collection_name="Documents")
269
+ if stamp.file_object:
270
+ print(f"File: {stamp.file_object.file_name}")
271
+
272
+ # Stamp an existing CID
273
+ stamp = client.create_stamp(data_cid="Qm...")
264
274
  """
265
275
  if not any([file, data, data_cid]):
266
276
  raise ValueError("At least one of 'file', 'data', or 'data_cid' must be provided")
@@ -335,11 +345,13 @@ class VBaseAPIClient:
335
345
  VBaseAPIError: If validation fails or file not found in blockchain
336
346
 
337
347
  Example:
338
- >>> result = client.upload_stamped_file(
339
- ... collection_name="My Collection",
340
- ... file="stamped_document.pdf"
341
- ... )
342
- >>> print(f"Uploaded: {result.file_object.file_name}")
348
+ .. code-block:: python
349
+
350
+ result = client.upload_stamped_file(
351
+ collection_name="My Collection",
352
+ file="stamped_document.pdf"
353
+ )
354
+ print(f"Uploaded: {result.file_object.file_name}")
343
355
  """
344
356
  form_data = {
345
357
  'collection_name': collection_name
@@ -384,12 +396,14 @@ class VBaseAPIClient:
384
396
  VBaseAPIError: If the request fails
385
397
 
386
398
  Example:
387
- >>> result = client.verify_stamps(
388
- ... cids=["0xbd...1", "0xcd...2"],
389
- ... filter_by_user=True
390
- ... )
391
- >>> for stamp in result.stamp_list:
392
- ... print(f"Found stamp at {stamp.timestamp}")
399
+ .. code-block:: python
400
+
401
+ result = client.verify_stamps(
402
+ cids=["0xbd...1", "0xcd...2"],
403
+ filter_by_user=True
404
+ )
405
+ for stamp in result.stamp_list:
406
+ print(f"Found stamp at {stamp.timestamp}")
393
407
  """
394
408
  data = {
395
409
  'cids': cids,
@@ -419,8 +433,10 @@ class VBaseAPIClient:
419
433
  VBaseAPIError: If the request fails
420
434
 
421
435
  Example:
422
- >>> user = client.get_current_user()
423
- >>> print(f"User email: {user.email}")
436
+ .. code-block:: python
437
+
438
+ user = client.get_current_user()
439
+ print(f"User email: {user.email}")
424
440
  """
425
441
  response = self.session.get(
426
442
  self._get_url('users/me'),
@@ -443,8 +459,10 @@ class VBaseAPIClient:
443
459
  VBaseAPIError: If the request fails or user not found
444
460
 
445
461
  Example:
446
- >>> user = client.get_user("0x...")
447
- >>> print(f"User name: {user.name}")
462
+ .. code-block:: python
463
+
464
+ user = client.get_user("0x...")
465
+ print(f"User name: {user.name}")
448
466
  """
449
467
  response = self.session.get(
450
468
  self._get_url(f'users/{user_address}'),
@@ -484,7 +502,9 @@ def create_client(
484
502
  Configured VBaseAPIClient instance
485
503
 
486
504
  Example:
487
- >>> client = create_client(api_key="your-bearer-token")
488
- >>> collections = client.get_collections()
505
+ .. code-block:: python
506
+
507
+ client = create_client(api_key="your-bearer-token")
508
+ collections = client.get_collections()
489
509
  """
490
510
  return VBaseAPIClient(api_key=api_key, base_url=base_url, timeout=timeout)
@@ -0,0 +1,84 @@
1
+ Metadata-Version: 2.4
2
+ Name: vbase-api
3
+ Version: 0.1.3
4
+ Summary: vBase REST API Python Client
5
+ Author-email: vBase <tech@vbase.com>
6
+ License-Expression: Apache-2.0
7
+ Project-URL: Homepage, https://github.com/validityBase/vbase-api-py
8
+ Project-URL: Documentation, https://docs.vbase.com/
9
+ Keywords: vbase,stamping,web3,blockchain,validation
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Operating System :: OS Independent
12
+ Requires-Python: >=3.8
13
+ Description-Content-Type: text/markdown
14
+ License-File: LICENSE.txt
15
+ License-File: NOTICE.txt
16
+ Requires-Dist: requests<3,>=2.7.0
17
+ Dynamic: license-file
18
+
19
+ # vbase-api-py
20
+
21
+ vBase REST API Python Client
22
+
23
+ See [documentation](https://docs.vbase.com/) and the [Swagger UI](https://app.vbase.com/swagger/) for more details.
24
+
25
+ ---
26
+
27
+ ## License
28
+
29
+ This project is licensed under the Apache 2.0 License - see the [LICENSE.txt](LICENSE.txt) file for details.
30
+
31
+ ## Introduction
32
+
33
+ vBase creates a global auditable record of when data was created, by whom, and how it has changed (collectively, “data provenance”). Data producers can prove the provenance of their data to any external party, increasing its value and marketability. Data consumers can ensure the integrity of historical data and any derivative calculations. The result is trustworthy information that can be put into production quickly without expensive and time-consuming trials.
34
+
35
+ Verifiable provenance establishes the credibility of data and calculations. For example, if you wish to prove investment skill, the recipient must be sure they are receiving a complete and accurate record of your timestamped trades or portfolios.
36
+
37
+ vBase resolves several expensive market failures common to financial data. Some of the areas that benefit include:
38
+ - Provably point-in-time datasets
39
+ - Auditable investing track records
40
+ - Sound backtests, historical simulations, and time-series modeling
41
+
42
+ vBase services do not require access to the data itself, assuring privacy. They also do not rely on centralized intermediaries, eliminating the technical, operating, and business risks of a trusted party controlling your data and its validation. vBase ensures data security and interoperability that is unattainable with legacy centralized systems. It does so by storing digital fingerprints of data, metadata, and revisions on secure public blockchains.
43
+
44
+ With vBase, creating and consuming provably correct data is as easy as pressing a button.
45
+
46
+ ## References
47
+ - [vBase Website](https://vbase.com)
48
+ - [vBase Documentation](https://docs.vbase.com/)
49
+ - [vBase Swagger UI](https://app.vbase.com/swagger/)
50
+ - [vBase API Python Client Issues](https://github.com/validityBase/vbase-api-py/issues)
51
+
52
+ ## Installation
53
+
54
+ Install the package using pip:
55
+
56
+ ```bash
57
+ pip install vbase-api
58
+ ```
59
+
60
+ ## Quick Start
61
+
62
+ ### Getting Your API Key
63
+
64
+ To use the vBase API, you'll need an API key (Bearer token). You can obtain this from your [vBase account settings](https://app.vbase.com/profile#account_settings).
65
+
66
+ ### Basic Usage
67
+
68
+ ```python
69
+ from vbase_api import VBaseAPIClient
70
+
71
+ # Initialize the client
72
+ client = VBaseAPIClient(api_key="your-bearer-token")
73
+
74
+ # Stamp some data
75
+ stamp = client.create_stamp(data="Important data to be stamped")
76
+ print(f"Stamped with CID: {stamp.commitment_receipt.object_cid}")
77
+
78
+ # List your collections
79
+ collections = client.get_collections()
80
+ for collection in collections:
81
+ print(f"{collection.name}: {collection.cid}")
82
+ ```
83
+
84
+
@@ -1,12 +1,16 @@
1
1
  LICENSE.txt
2
+ MANIFEST.in
2
3
  NOTICE.txt
3
4
  README.md
4
5
  pyproject.toml
6
+ requirements.in
5
7
  src/vbase_api/__init__.py
8
+ src/vbase_api/_version.py
6
9
  src/vbase_api/vbase_api_client.py
7
10
  src/vbase_api/vbase_api_models.py
8
11
  src/vbase_api.egg-info/PKG-INFO
9
12
  src/vbase_api.egg-info/SOURCES.txt
10
13
  src/vbase_api.egg-info/dependency_links.txt
11
14
  src/vbase_api.egg-info/requires.txt
12
- src/vbase_api.egg-info/top_level.txt
15
+ src/vbase_api.egg-info/top_level.txt
16
+ tests/test_file_integrity_e2e.py
@@ -0,0 +1 @@
1
+ requests<3,>=2.7.0