traverse-http 0.6.7__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,41 @@
1
+ /target
2
+ **/*.rs.bk
3
+ *.pdb
4
+ *.swp
5
+ *.swo
6
+ *~
7
+ .DS_Store
8
+ Thumbs.db
9
+
10
+ # IDE
11
+ .idea/
12
+ .vs/
13
+ .vscode/
14
+ *.iml
15
+
16
+ # Environment
17
+ .env
18
+ .env.*
19
+
20
+ # License keys (never commit)
21
+ .traverse-license
22
+ .traverse-license-cache
23
+ .traverse-trial
24
+
25
+ # Benchmark artifacts
26
+ /target/criterion
27
+ /benchmarks/data/
28
+ *.tvdb
29
+ __pycache__/
30
+ .venv/
31
+ .pytest_cache/
32
+ tck_*.txt
33
+
34
+ # Studio (Vue frontend)
35
+ studio/node_modules/
36
+ studio/dist/
37
+
38
+ # Coverage
39
+ /coverage
40
+ *.profraw
41
+ *.profdata
@@ -0,0 +1,196 @@
1
+ TRAVERSE END-USER LICENSE AGREEMENT (EULA)
2
+
3
+ Copyright (c) 2025-2026 Truespar. All rights reserved.
4
+
5
+ IMPORTANT — READ CAREFULLY: This End-User License Agreement ("Agreement") is a
6
+ legal agreement between you (either an individual or a single entity, "Licensee")
7
+ and Truespar ("Licensor") for the Traverse software,
8
+ including all source code, binaries, documentation, and associated files
9
+ (collectively, the "Software").
10
+
11
+ By downloading, installing, copying, or otherwise using the Software, you agree
12
+ to be bound by the terms of this Agreement. If you do not agree, do not use the
13
+ Software.
14
+
15
+ 1. GRANT OF LICENSE
16
+
17
+ Subject to the terms of this Agreement, Licensor grants Licensee a limited,
18
+ non-exclusive, non-transferable, revocable license to:
19
+
20
+ (a) Use the Software for internal purposes, including evaluation, development,
21
+ and production deployment.
22
+
23
+ (b) Create applications and services that interface with the Software through
24
+ its published APIs (Bolt protocol, FFI bindings, gRPC, and CLI).
25
+
26
+ 2. RESTRICTIONS
27
+
28
+ Licensee shall NOT:
29
+
30
+ (a) Modify, adapt, alter, translate, or create derivative works of the
31
+ Software or any part thereof.
32
+
33
+ (b) Reverse engineer, disassemble, decompile, or otherwise attempt to derive
34
+ the source code, underlying ideas, algorithms, data structures, or
35
+ non-public APIs of the Software. To the extent that applicable law
36
+ (including EU Directive 2009/24/EC) grants a non-waivable right to
37
+ decompile for interoperability purposes, Licensee must first provide
38
+ thirty (30) days' prior written notice to Licensor and may exercise such
39
+ right only to the minimum extent necessary to achieve interoperability
40
+ with independently created software.
41
+
42
+ (c) Redistribute, sublicense, lease, rent, loan, sell, or otherwise transfer
43
+ the Software or any rights therein to any third party.
44
+
45
+ (d) Remove, alter, or obscure any proprietary notices, labels, or marks on
46
+ the Software.
47
+
48
+ (e) Use the Software to operate a service bureau, outsourcing service, or
49
+ managed-service offering for the benefit of third parties, or to provide
50
+ database-as-a-service offerings based on the Software, without a separate
51
+ commercial agreement with the Licensor.
52
+
53
+ (f) Use the Software to build a product or service that competes with the
54
+ Software.
55
+
56
+ (g) Publish benchmark results, performance comparisons, or similar evaluations
57
+ of the Software without prior written consent of the Licensor.
58
+
59
+ 3. INTELLECTUAL PROPERTY
60
+
61
+ The Software is the intellectual property of the Licensor and is protected by
62
+ copyright law and international treaties. Licensor retains all right, title,
63
+ and interest in and to the Software, including all intellectual property rights
64
+ therein. This Agreement does not convey any ownership interest in the Software.
65
+
66
+ 4. FEEDBACK
67
+
68
+ If Licensee provides suggestions, ideas, enhancement requests, or other
69
+ feedback regarding the Software ("Feedback"), Licensor may freely use,
70
+ incorporate, modify, license, and distribute such Feedback without restriction,
71
+ attribution, or compensation to Licensee. Licensee hereby assigns to Licensor
72
+ all right, title, and interest in and to any Feedback.
73
+
74
+ 5. CONFIDENTIALITY
75
+
76
+ (a) "Confidential Information" means the source code, object code, algorithms,
77
+ data structures, architecture, internal APIs, performance characteristics,
78
+ and any other non-public technical or business information of the Licensor
79
+ disclosed to or accessed by Licensee, whether in written, electronic, or
80
+ other form.
81
+
82
+ (b) Licensee shall hold all Confidential Information in strict confidence,
83
+ using at least the same degree of care it uses to protect its own
84
+ confidential information, but no less than reasonable care.
85
+
86
+ (c) Licensee shall not disclose Confidential Information to any third party
87
+ without the prior written consent of Licensor, except to Licensee's
88
+ employees or contractors who have a need to know and are bound by
89
+ confidentiality obligations at least as protective as those herein.
90
+
91
+ (d) The obligations in this section do not apply to information that:
92
+ (i) is or becomes publicly available through no fault of Licensee;
93
+ (ii) was rightfully known to Licensee prior to disclosure by Licensor;
94
+ (iii) is independently developed by Licensee without use of or reference
95
+ to the Confidential Information; or (iv) is required to be disclosed by
96
+ law, provided Licensee gives Licensor prompt written notice and
97
+ cooperates to limit the scope of disclosure.
98
+
99
+ (e) These confidentiality obligations survive termination of this Agreement
100
+ for a period of five (5) years, or indefinitely for trade secrets for as
101
+ long as they remain trade secrets under applicable law.
102
+
103
+ 6. THIRD-PARTY COMPONENTS
104
+
105
+ The Software incorporates open-source components licensed under permissive
106
+ licenses (MIT, Apache-2.0, BSD, and similar). These components retain their
107
+ original licenses. A list of third-party components and their licenses is
108
+ provided in the THIRD-PARTY-NOTICES file included with the Software.
109
+
110
+ Nothing in this Agreement restricts, limits, or otherwise affects any rights
111
+ Licensee may have under the licenses of such third-party components.
112
+
113
+ 7. NO WARRANTY
114
+
115
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
116
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
117
+ FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. IN NO EVENT SHALL THE
118
+ LICENSOR BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN AN
119
+ ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF, OR IN
120
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
121
+
122
+ 8. LIMITATION OF LIABILITY
123
+
124
+ (a) IN NO EVENT SHALL LICENSOR'S TOTAL AGGREGATE LIABILITY TO LICENSEE FOR
125
+ ALL CLAIMS ARISING UNDER OR IN CONNECTION WITH THIS AGREEMENT EXCEED THE
126
+ GREATER OF: (I) THE TOTAL AMOUNT OF FEES ACTUALLY PAID BY LICENSEE TO
127
+ LICENSOR FOR THE SOFTWARE DURING THE TWELVE (12) MONTHS IMMEDIATELY
128
+ PRECEDING THE EVENT GIVING RISE TO THE CLAIM; OR (II) FIFTY US DOLLARS
129
+ (USD $50.00).
130
+
131
+ (b) IN NO EVENT SHALL LICENSOR BE LIABLE FOR ANY INDIRECT, INCIDENTAL,
132
+ SPECIAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES, INCLUDING BUT NOT LIMITED TO
133
+ LOSS OF PROFITS, DATA, BUSINESS, OR GOODWILL, REGARDLESS OF THE CAUSE OF
134
+ ACTION OR THE THEORY OF LIABILITY, EVEN IF LICENSOR HAS BEEN ADVISED OF
135
+ THE POSSIBILITY OF SUCH DAMAGES.
136
+
137
+ (c) THE LIMITATIONS IN SUBSECTIONS (a) AND (b) ABOVE SHALL NOT APPLY TO
138
+ LIABILITY ARISING FROM: (I) FRAUD OR FRAUDULENT MISREPRESENTATION;
139
+ (II) GROSS NEGLIGENCE OR WILLFUL MISCONDUCT; (III) LICENSEE'S BREACH OF
140
+ SECTIONS 2 (RESTRICTIONS) OR 5 (CONFIDENTIALITY); OR (IV) EITHER PARTY'S
141
+ INDEMNIFICATION OBLIGATIONS UNDER SECTION 9.
142
+
143
+ 9. INDEMNIFICATION
144
+
145
+ (a) Licensee shall defend, indemnify, and hold harmless Licensor and its
146
+ officers, directors, employees, and agents from and against any and all
147
+ third-party claims, damages, losses, liabilities, costs, and expenses
148
+ (including reasonable attorneys' fees) arising out of or related to:
149
+ (i) Licensee's breach of this Agreement, including but not limited to the
150
+ restrictions in Section 2 and the confidentiality obligations in
151
+ Section 5; (ii) Licensee's use of the Software in violation of applicable
152
+ law; or (iii) Licensee's gross negligence or willful misconduct.
153
+
154
+ (b) Licensor shall promptly notify Licensee of any such claim and provide
155
+ reasonable cooperation at Licensee's expense. Licensee shall have sole
156
+ control of the defense and settlement, provided that any settlement
157
+ requiring Licensor to admit liability or pay money shall require
158
+ Licensor's prior written consent.
159
+
160
+ 10. TERMINATION
161
+
162
+ (a) This Agreement is effective until terminated.
163
+
164
+ (b) Licensor may terminate this Agreement immediately upon written notice if
165
+ Licensee breaches Section 2 (Restrictions), Section 5 (Confidentiality),
166
+ or Section 9 (Indemnification).
167
+
168
+ (c) For any other material breach, the non-breaching party may terminate this
169
+ Agreement if the breaching party fails to cure such breach within thirty
170
+ (30) days of receiving written notice thereof.
171
+
172
+ (d) Upon termination, Licensee must immediately cease all use of the Software
173
+ and destroy all copies (including backups) in its possession or control
174
+ within five (5) business days. Upon Licensor's request, Licensee shall
175
+ certify such destruction in writing.
176
+
177
+ (e) Sections 2, 3, 4, 5, 7, 8, 9, 11, and 12 survive termination of this
178
+ Agreement.
179
+
180
+ 11. GOVERNING LAW
181
+
182
+ This Agreement shall be governed by and construed in accordance with the laws
183
+ of the State of Delaware, United States, without regard to its conflict-of-law
184
+ provisions. The United Nations Convention on Contracts for the International
185
+ Sale of Goods is expressly excluded. Any disputes arising under this Agreement
186
+ shall be resolved exclusively in the state or federal courts located in the
187
+ State of Delaware. Notwithstanding the foregoing, Licensor may seek injunctive
188
+ or other equitable relief in any court of competent jurisdiction to protect its
189
+ intellectual property rights or Confidential Information.
190
+
191
+ 12. ENTIRE AGREEMENT
192
+
193
+ This Agreement constitutes the entire agreement between the parties with
194
+ respect to the Software and supersedes all prior negotiations, representations,
195
+ or agreements relating thereto. No modification of this Agreement shall be
196
+ binding unless in writing and signed by both parties.
@@ -0,0 +1,93 @@
1
+ Metadata-Version: 2.4
2
+ Name: traverse-http
3
+ Version: 0.6.7
4
+ Summary: Official Python HTTP client for Traverse — Truespar's in-memory graph database. Cypher queries, schema introspection, CSV import, database management.
5
+ Project-URL: Homepage, https://truespar.com/traverse/docs
6
+ Project-URL: Documentation, https://truespar.com/traverse/docs
7
+ Author: Truespar
8
+ License-Expression: MIT
9
+ License-File: LICENSE
10
+ Keywords: cypher,database,graph,graph-database,traverse,truespar
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Topic :: Database :: Front-Ends
19
+ Classifier: Typing :: Typed
20
+ Requires-Python: >=3.10
21
+ Requires-Dist: requests>=2.28
22
+ Provides-Extra: dev
23
+ Requires-Dist: pytest>=7.0; extra == 'dev'
24
+ Description-Content-Type: text/markdown
25
+
26
+ # traverse-http
27
+
28
+ Official Python HTTP client for [Traverse](https://truespar.com/traverse/docs) — Truespar's in-memory graph database.
29
+
30
+ - Execute Cypher queries with parameterized values
31
+ - Database management (create, drop, rename, load, unload)
32
+ - Schema introspection (labels, types, properties, indexes, constraints)
33
+ - CSV and Cypher import with async task polling
34
+ - File management (upload, download, delete `.tvdb` files)
35
+ - User and alias management
36
+ - Typed response models with dataclass return types
37
+ - Python 3.10+, MIT licensed
38
+
39
+ ## Installation
40
+
41
+ ```bash
42
+ pip install traverse-http
43
+ ```
44
+
45
+ ## Quick Start
46
+
47
+ ```python
48
+ from traverse_http import TraverseHttpClient
49
+
50
+ client = TraverseHttpClient("http://localhost:7691", api_key="tvs_your_key")
51
+
52
+ # Execute a query
53
+ result = client.query("MATCH (n:Person) RETURN n.name, n.age LIMIT 10")
54
+ for row in result.rows:
55
+ print(row)
56
+
57
+ # List databases
58
+ databases = client.list_databases()
59
+ for db in databases:
60
+ print(f"{db.name}: {db.node_count} nodes, {db.edge_count} edges")
61
+
62
+ # Get schema
63
+ schema = client.schema()
64
+ print(schema.labels)
65
+ ```
66
+
67
+ ## Database Management
68
+
69
+ ```python
70
+ client.create_database("mydb")
71
+ client.rename_database("mydb", "production")
72
+ client.drop_database("production") # requires --allow-drop-database on server
73
+ ```
74
+
75
+ ## CSV Import
76
+
77
+ ```python
78
+ result = client.import_csv(
79
+ file_path="people.csv",
80
+ label="Person",
81
+ database="mydb",
82
+ )
83
+ print(f"Imported {result.nodes_created} nodes")
84
+ ```
85
+
86
+ ## Documentation
87
+
88
+ - [Traverse documentation](https://truespar.com/traverse/docs)
89
+ - [Python SDK reference](https://truespar.com/traverse/docs/v1/python-sdk)
90
+
91
+ ## License
92
+
93
+ MIT — see [LICENSE](LICENSE).
@@ -0,0 +1,68 @@
1
+ # traverse-http
2
+
3
+ Official Python HTTP client for [Traverse](https://truespar.com/traverse/docs) — Truespar's in-memory graph database.
4
+
5
+ - Execute Cypher queries with parameterized values
6
+ - Database management (create, drop, rename, load, unload)
7
+ - Schema introspection (labels, types, properties, indexes, constraints)
8
+ - CSV and Cypher import with async task polling
9
+ - File management (upload, download, delete `.tvdb` files)
10
+ - User and alias management
11
+ - Typed response models with dataclass return types
12
+ - Python 3.10+, MIT licensed
13
+
14
+ ## Installation
15
+
16
+ ```bash
17
+ pip install traverse-http
18
+ ```
19
+
20
+ ## Quick Start
21
+
22
+ ```python
23
+ from traverse_http import TraverseHttpClient
24
+
25
+ client = TraverseHttpClient("http://localhost:7691", api_key="tvs_your_key")
26
+
27
+ # Execute a query
28
+ result = client.query("MATCH (n:Person) RETURN n.name, n.age LIMIT 10")
29
+ for row in result.rows:
30
+ print(row)
31
+
32
+ # List databases
33
+ databases = client.list_databases()
34
+ for db in databases:
35
+ print(f"{db.name}: {db.node_count} nodes, {db.edge_count} edges")
36
+
37
+ # Get schema
38
+ schema = client.schema()
39
+ print(schema.labels)
40
+ ```
41
+
42
+ ## Database Management
43
+
44
+ ```python
45
+ client.create_database("mydb")
46
+ client.rename_database("mydb", "production")
47
+ client.drop_database("production") # requires --allow-drop-database on server
48
+ ```
49
+
50
+ ## CSV Import
51
+
52
+ ```python
53
+ result = client.import_csv(
54
+ file_path="people.csv",
55
+ label="Person",
56
+ database="mydb",
57
+ )
58
+ print(f"Imported {result.nodes_created} nodes")
59
+ ```
60
+
61
+ ## Documentation
62
+
63
+ - [Traverse documentation](https://truespar.com/traverse/docs)
64
+ - [Python SDK reference](https://truespar.com/traverse/docs/v1/python-sdk)
65
+
66
+ ## License
67
+
68
+ MIT — see [LICENSE](LICENSE).
@@ -0,0 +1,38 @@
1
+ [build-system]
2
+ requires = ["hatchling"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "traverse-http"
7
+ version = "0.6.7"
8
+ description = "Official Python HTTP client for Traverse — Truespar's in-memory graph database. Cypher queries, schema introspection, CSV import, database management."
9
+ readme = "README.md"
10
+ license = "MIT"
11
+ requires-python = ">=3.10"
12
+ dependencies = ["requests>=2.28"]
13
+ authors = [{ name = "Truespar" }]
14
+ keywords = ["graph", "database", "traverse", "truespar", "cypher", "graph-database"]
15
+ classifiers = [
16
+ "Development Status :: 4 - Beta",
17
+ "Intended Audience :: Developers",
18
+ "License :: OSI Approved :: MIT License",
19
+ "Programming Language :: Python :: 3.10",
20
+ "Programming Language :: Python :: 3.11",
21
+ "Programming Language :: Python :: 3.12",
22
+ "Programming Language :: Python :: 3.13",
23
+ "Topic :: Database :: Front-Ends",
24
+ "Typing :: Typed",
25
+ ]
26
+
27
+ [project.urls]
28
+ Homepage = "https://truespar.com/traverse/docs"
29
+ Documentation = "https://truespar.com/traverse/docs"
30
+
31
+ [project.optional-dependencies]
32
+ dev = ["pytest>=7.0"]
33
+
34
+ [tool.hatch.build.targets.wheel]
35
+ packages = ["src/traverse_http"]
36
+
37
+ [tool.pytest.ini_options]
38
+ testpaths = ["tests"]
@@ -0,0 +1,59 @@
1
+ from .client import TraverseHttpClient
2
+ from .models import (
3
+ HealthResponse,
4
+ HealthDatabase,
5
+ LicenseInfo,
6
+ LicenseLimits,
7
+ UpdateInfo,
8
+ DatabaseInfo,
9
+ TvdbFileInfo,
10
+ UploadResult,
11
+ AliasInfo,
12
+ SchemaResponse,
13
+ SchemaProperty,
14
+ IndexInfo,
15
+ ConstraintInfo,
16
+ LabelDetail,
17
+ QueryResponse,
18
+ QueryStats,
19
+ ImportResult,
20
+ ImportError,
21
+ CsvImportResult,
22
+ CsvImportError,
23
+ CsvEdgeImportResult,
24
+ ColumnMapping,
25
+ EdgeEndpoint,
26
+ TaskInfo,
27
+ UserInfo,
28
+ )
29
+ from .exceptions import TraverseHttpException
30
+
31
+ __all__ = [
32
+ "TraverseHttpClient",
33
+ "TraverseHttpException",
34
+ "HealthResponse",
35
+ "HealthDatabase",
36
+ "LicenseInfo",
37
+ "LicenseLimits",
38
+ "UpdateInfo",
39
+ "DatabaseInfo",
40
+ "TvdbFileInfo",
41
+ "UploadResult",
42
+ "AliasInfo",
43
+ "SchemaResponse",
44
+ "SchemaProperty",
45
+ "IndexInfo",
46
+ "ConstraintInfo",
47
+ "LabelDetail",
48
+ "QueryResponse",
49
+ "QueryStats",
50
+ "ImportResult",
51
+ "ImportError",
52
+ "CsvImportResult",
53
+ "CsvImportError",
54
+ "CsvEdgeImportResult",
55
+ "ColumnMapping",
56
+ "EdgeEndpoint",
57
+ "TaskInfo",
58
+ "UserInfo",
59
+ ]